Create 2.1 release branch.

llvm-svn: 41922
llvm-svn: 41921
diff --git a/core/ModuleInfo.txt b/core/ModuleInfo.txt
deleted file mode 100644
index 75c25e8..0000000
--- a/core/ModuleInfo.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-DepModule: support
-BuildCmd: echo "Core module doesn't build yet"
diff --git a/hlvm/CREDITS.txt b/hlvm/CREDITS.txt
deleted file mode 100644
index 16982be..0000000
--- a/hlvm/CREDITS.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Please go to docs/Credits.html for a list of the poeple who have
-contributed time, money, code or talent to the HLVM project.  You can always
-view this page at: http://hlvm.org/Credits.html.
diff --git a/hlvm/ChangeLog b/hlvm/ChangeLog
deleted file mode 100644
index b630868..0000000
--- a/hlvm/ChangeLog
+++ /dev/null
@@ -1,6 +0,0 @@
-2007.07.07 - Integrated HLVM into the LLVM family of projects.
-2006.06.13 - Release 0.1 of HLVM. This corresponds to revision 268 in the SVN
-             repository. This version correctly compiles the "Hello, World" test
-	     program. See the Release Notes in docs/ReleaseNotes.html
-2006.06.10 - HLVM runs its first "Hello, World" program
-2006.04.25 - Initial Subversion Repository Started
diff --git a/hlvm/LICENSE.txt b/hlvm/LICENSE.txt
deleted file mode 100644
index a2ccef8..0000000
--- a/hlvm/LICENSE.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-==============================================================================
-HLVM Release License
-==============================================================================
-University of Illinois/NCSA Open Source License
-
-Copyright (c) 2007 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
-    Reid Spencer
-
-    http://hlvm.org/
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-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:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimers.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimers in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the names of the LLVM Team, University of Illinois at
-      Urbana-Champaign, nor the names of its contributors may be used to
-      endorse or promote products derived from this Software without specific
-      prior written permission.
-
-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
-CONTRIBUTORS 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 WITH THE
-SOFTWARE.
-
-==============================================================================
-Copyrights and Licenses for Third Party Software Distributed with LLVM:
-==============================================================================
-The LLVM software contains code written by third parties.  Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the developers or the
-University of Illinois to endorse or promote products derived from this
-Software.
-
-The following pieces of software have additional or alternate copyrights,
-licenses, and/or restrictions:
diff --git a/hlvm/Makefile b/hlvm/Makefile
deleted file mode 100644
index 2525a28..0000000
--- a/hlvm/Makefile
+++ /dev/null
@@ -1,107 +0,0 @@
-#===- ./Makefile -------------------------------------------*- Makefile -*--===#
-# 
-#                     The High Level Virtual Machine
-#
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-# This makefile simply converts standard make targets into the equivalent 
-# scons invocation in order to retain compatibility for those who wish to use
-# make.
-#------------------------------------------------------------------------------#
-
-# Select the name of the build mode you want to build by default.
-MYMODE := Debug
-
-# Specify a path for where the 3rd party software is installed
-MYPATH := :/proj/llvm/hlvm/installed:/proj/install:
-
-# Specify where you want HLVM to be installed
-MYPREFIX := /proj/llvm/hlvm/installed
-
-# Specify where the llvm-gcc tools are located
-MYLLVMGCC := /proj/llvm/hlvm/installed/bin
-
-SCONSOPTS := -Q -j 2
-
-SUITES := normal
-
-CONFPATH=$(MYPATH):$(PATH)
-
-.PHONY: all debug Debug optimized Optimized release Release check clean \
-	install hlvm tools
-
-all:
-	scons $(SCONSOPTS) mode=$(MYMODE)
-
-debug Debug:
-	scons $(SCONSOPTS)  mode=Debug debug=1 assertions=1 optimized=0 \
-	inline=0 small=0 \
-	confpath=$(CONFPATH) prefix=$(MYPREFIX) \
-	with_llvmgcc=$(MYLLVMGCC)/llvm-gcc with_llvmgxx=$(MYLLVMGCC)/llvm-g++
-
-optimized Optimized:
-	scons $(SCONSOPTS)  mode=Optimized debug=0 assertions=1 optimized=1 \
-	inline=1 small=0 strip=0 \
-	confpath=$(CONFPATH) prefix=$(MYPREFIX) \
-	with_llvmgcc=$(MYLLVMGCC)/llvm-gcc with_llvmgxx=$(MYLLVMGCC)/llvm-g++
-
-release Release:
-	scons $(SCONSOPTS) mode=Release debug=0 assertions=0 optimized=1 \
-	inline=1 small=1 strip=1 \
-	confpath=$(CONFPATH) prefix=$(MYPREFIX) \
-	with_llvmgcc=$(MYLLVMGCC)/llvm-gcc with_llvmgxx=$(MYLLVMGCC)/llvm-g++
-
-profile Profile:
-	scons $(SCONSOPTS) mode=Profile debug=0 assertions=0 optimized=1  \
-	inline=1 small=0 strip=0 profile=1 \
-	confpath=$(CONFPATH) prefix=$(MYPREFIX) \
-	with_llvmgcc=$(MYLLVMGCC)/llvm-gcc with_llvmgxx=$(MYLLVMGCC)/llvm-g++
-
-check: 
-	scons -Q check mode=$(MYMODE) suites=$(SUITES)
-
-clean:
-	scons $(SCONSOPTS) --clean mode=$(MYMODE)
-
-install:
-	scons $(SCONSOPTS) install mode=$(MYMODE)
-
-doc:
-	scons $(SCONSOPTS) docs mode=$(MYMODE)
-
-hlvm:
-	cd hlvm ; scons $(SCONSOPTS) -u mode=$(MYMODE)
-
-tools:
-	cd tools ; scons $(SCONSOPTS) -u mode=$(MYMODE)
-
-runtime:
-	cd hlvm/Runtime ; scons $(SCONSOPTS) -u mode=$(MYMODE)
-codegen:
-	cd hlvm/CodeGen ; scons $(SCONSOPTS) -u mode=$(MYMODE)
-
-dist: exclusions
-	tar jcf hlvm-0.1-tar.bz2 -C .. --exclude-from exclusions hlvm
-
-exclusions: Makefile
-	echo exclusions > exclusions
-	echo .svn >> exclusions
-	echo '.*_options' >> exclusions
-	echo '*.pyc' >> exclusions
-	echo '*.tmp' >> exclusions
-	echo Debug >> exclusions
-	echo Optimized >> exclusions
-	echo Release >> exclusions
-	echo Profile >> exclusions
-	echo default >> exclusions
-	echo Library >> exclusions
-	echo hlvm-0.1-tar.bz2 >> exclusions
-	echo '*.swp' >> exclusions
-	echo 'config.log' >> exclusions
-
-build-for-llvm-top:
-	scons $(SCONSOPTS) mode=Debug debug=1 assertions=1 optimized=0 \
-	inline=0 small=0 confpath=$(LLVM_TOP)/installed:$$PATH \
-	prefix=$(LLVM_TOP)/install \
diff --git a/hlvm/ModuleInfo.txt b/hlvm/ModuleInfo.txt
deleted file mode 100644
index e5313ab..0000000
--- a/hlvm/ModuleInfo.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-DepModule: llvm llvm-gcc-4.0
-BuildCmd: make build-for-llvm-top 
-CleanCmd: make clean
-InstallCmd: make install
diff --git a/hlvm/README.txt b/hlvm/README.txt
deleted file mode 100644
index 58a77dd..0000000
--- a/hlvm/README.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-High Level Virtual Machine (HLVM)
-=================================
-
-This directory and its subdirectories contain source code for the High Level 
-Virtual Machine (HLVM). HLVM is a toolkit and a set of executables to assist 
-with the rapid construction of compilers and virtual machines for various
-languages.  It aims to foster domain specific languages, rapid compiler 
-development, and a common infrastructure upon which those languages can 
-be compiled, execute and inter-operate.
-
-HLVM is a module in the LLVM-based group of projects. LLVM provides HLVM with
-an optimizing compiler, native code generation, bytecode, and a basic 
-infrastructure on which to build.
-
-Licensing
-=========
-HLVM is open source software. You may freely distribute it under the terms of
-the license agreements found in the LICENSE.txt files, wherever they may be 
-found in the source tree. See the top level file, LICENSE.txt, for full details.
-
-Documentation
-=============
-HLVM comes with documentation in HTML format. These are provided in the docs 
-directory. Please visit http://llvm.org/docs/hlvm/ to get an index of the 
-documentation that is available. You will find conceptual guides as well as
-build and installation instructions there.
-
-Quick Build
-===========
-HLVM uses the SCons tool for software construction. However a compatible
-Makefile is also provided. One slight difference, there is no "configure" step
-for SCons. Your first build will configure HLVM for your environment, mostly
-automatically unless you have dependent packages installed in non-standard
-locations.
-
-The usual should work:
-    make 
-    make check
-    make install
diff --git a/hlvm/SConstruct b/hlvm/SConstruct
deleted file mode 100644
index d7c1681..0000000
--- a/hlvm/SConstruct
+++ /dev/null
@@ -1,12 +0,0 @@
-#===-- Build Script For HLVM ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-from build import hlvm
-env = hlvm.GetBuildEnvironment(COMMAND_LINE_TARGETS,ARGUMENTS)
-Export('env')
-hlvm.Dirs(env,['hlvm','tools','docs','test'])
diff --git a/hlvm/build/__init__.py b/hlvm/build/__init__.py
deleted file mode 100644
index 192131d..0000000
--- a/hlvm/build/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import os
-import glob
-import string
-__all__ = ["hlvm","check","configure","doxygen","filterbuilders"]
-__version__ = "0.1"
-__developer__ = "reid"
diff --git a/hlvm/build/bytecode.py b/hlvm/build/bytecode.py
deleted file mode 100644
index e21978e..0000000
--- a/hlvm/build/bytecode.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from SCons.Environment import Environment as Environment
-import re,fileinput,os
-from string import join as sjoin
-from os.path import join as pjoin
-
-def AsmFromBytecodeMessage(target,source,env):
-  return "Generating Native Assembly From LLVM Bytecode" + source[0].path
-
-def AsmFromBytecodeAction(target,source,env):
-  theAction = env.Action(env['with_llc'] + ' -f -fast -o ' + target[0].path +
-      ' ' + source[0].path)
-  env.Depends(target,env['with_llc'])
-  return env.Execute(theAction)
-
-def BytecodeFromAsmMessage(target,source,env):
-  return "Generating Bytecode From LLVM Assembly " + source[0].path
-
-def BytecodeFromAsmAction(target,source,env):
-  theAction = env.Action(env['with_llvmas'] + 
-      ' -f -o ' + target[0].path + ' ' + source[0].path + ' ' + 
-      env['LLVMASFLAGS'])
-  env.Depends(target,env['with_llvmas'])
-  return env.Execute(theAction);
-
-def BytecodeFromCppMessage(target,source,env):
-  return "Generating Bytecode From C++ Source " + source[0].path
-
-def BytecodeFromCppAction(target,source,env):
-  includes = ""
-  for inc in env['CPPPATH']:
-    if inc[0] == '#':
-      inc = env['AbsSrcRoot'] + inc[1:]
-    includes += " -I" + inc
-  defines = ""
-  for d in env['CPPDEFINES'].keys():
-    if env['CPPDEFINES'][d] == None:
-      defines += " -D" + d
-    else:
-      defines += " -D" + d + "=" + env['CPPDEFINES'][d]
-  src = source[0].path
-  tgt = target[0].path
-  theAction = env.Action(
-    env['with_llvmgxx'] + ' $CXXFLAGS ' + 
-    includes + defines + " -c -emit-llvm -g -O3 -x c++ " + src + " -o " + tgt )
-  env.Depends(target,env['with_llvmgxx'])
-  return env.Execute(theAction);
-
-def BytecodeArchiveMessage(target,source,env):
-  return "Generating Bytecode Archive From Bytecode Modules"
-
-def BytecodeArchiveAction(target,source,env):
-  sources = ''
-  for src in source:
-    sources += ' ' + src.path
-  theAction = env.Action(
-    env['with_llvmar'] + ' cr ' + target[0].path + sources)
-  env.Depends(target[0],env['with_llvmar'])
-  return env.Execute(theAction);
-
-def Bytecode(env):
-  bc2s = env.Action(AsmFromBytecodeAction,AsmFromBytecodeMessage)
-  ll2bc = env.Action(BytecodeFromAsmAction,BytecodeFromAsmMessage)
-  cpp2bc = env.Action(BytecodeFromCppAction,BytecodeFromCppMessage)
-  arch = env.Action(BytecodeArchiveAction,BytecodeArchiveMessage)
-  bc2s_bldr = env.Builder(action=bc2s,suffix='s',src_suffix='bc',
-              single_source=1)
-  ll2bc_bldr  = env.Builder(action=ll2bc,suffix='bc',src_suffix='ll',
-              single_source=1)
-  cpp2bc_bldr = env.Builder(action=cpp2bc,suffix='bc',src_suffix='cpp',
-              single_source=1)
-  arch_bldr = env.Builder(action=arch,suffix='bca',src_suffix='bc',
-      src_builder=[ cpp2bc_bldr,ll2bc_bldr])
-  env.Append(BUILDERS = {
-      'll2bc':ll2bc_bldr, 'cpp2bc':cpp2bc_bldr, 'bc2s':bc2s_bldr, 
-      'BytecodeArchive':arch_bldr
-  })
-  return 1
diff --git a/hlvm/build/check.py b/hlvm/build/check.py
deleted file mode 100644
index 9ca9bac..0000000
--- a/hlvm/build/check.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from SCons.Environment import Environment as Environment
-from SCons.Defaults import Mkdir
-import re,fileinput,os,glob
-from string import join as sjoin
-from os.path import join as pjoin
-from os.path import exists
-
-def getTestCases(dir,env):
-  context = pjoin(env['AbsSrcRoot'],'test',dir)
-  result = []
-  for d in glob.glob(pjoin(context,'*.*')):
-    if not os.path.isdir(d):
-      if not d == pjoin(context,'dg.exp'):
-        result.append(d)
-  return result
-
-def SiteExpAction(target,source,env):
-  tgtpath = pjoin(env['AbsObjRoot'],'test')
-  if not exists(tgtpath):
-    env.Execute(Mkdir(tgtpath))
-  outf = open(pjoin(tgtpath,'site.exp'),"w")
-  outf.write('## these variables are automatically generated by make ##\n')
-  outf.write('# Do not edit here.  If you wish to override these values\n')
-  outf.write('# edit the last section\n')
-  outf.write('set target_triplet "fubar-pc-noos"\n')
-  outf.write('set srcdir "' + env['AbsSrcRoot'] + '/test"\n')
-  outf.write('set objdir "' + env['AbsObjRoot'] + '/test"\n')
-  outf.write('set tmpdir "$objdir/tmp"\n')
-  outf.write('set srcrootdir "' + env['AbsSrcRoot'] + '"\n')
-  outf.write('set objrootdir "' + env['AbsObjRoot'] + '"\n')
-  outf.write('set LLVM_lib "' + env['LLVM_lib'] + '"\n')
-  outf.write('set LLVM_inc "' + env['LLVM_inc'] + '"\n')
-  outf.write('set LLVM_bin "' + env['LLVM_bin'] + '"\n')
-  outf.write('set LIBXML2_lib "' + env['LIBXML2_lib'] + '"\n')
-  outf.write('set LIBXML2_inc "' + env['LIBXML2_inc'] + '"\n')
-  outf.write('set APR_lib "' + env['APR_lib'] + '"\n')
-  outf.write('set APR_inc "' + env['APR_inc'] + '"\n')
-  outf.write('set APRU_lib "' + env['APRU_lib'] + '"\n')
-  outf.write('set APRU_inc "' + env['APRU_inc'] + '"\n')
-  outf.write('set llc "' + env['with_llc'] + '"\n')
-  outf.write('set llvm_ld "' + env['with_llvm_ld'] + '"\n')
-  outf.write('set gxx "' + env['with_gxx'] + '"\n')
-  outf.write('## All vars above are generated by scons. Do Not Edit!\n')
-  outf.close()
-  return 0
-
-def SiteExpMessage(target,source,env):
-  return "Building DejaGnu site.exp file"
-
-def CheckAction(target,source,env):
-  if env['with_runtest'] == None:
-    print "Testing was disabled because DejaGnu 'runtest' was not found"
-    return 0
-
-  context = os.path.basename(env.File(target[0]).path)
-  context = re.sub('(.*?)\..*','\\1',context)
-  os.system('cd ' + pjoin(env['BuildDir'],'test') +
-      '; DEJAGNU="'+pjoin(env['AbsObjRoot'],'test','site.exp')+'" '+
-      env['with_runtest'] + ' --tool ' + context)
-  return 0
-
-def CheckMessage(target,source,env):
-  return "Running DejaGNU Test Suite"
-
-def Check(env,dirs):
-  checkAction = env.Action(CheckAction,CheckMessage)
-  checkBuilder = env.Builder(action=checkAction,suffix='results')
-  sitexpAction = env.Action(SiteExpAction,SiteExpMessage)
-  sitexpBuilder = env.Builder(action=sitexpAction,suffix='exp')
-  env.Append(BUILDERS = {'Check':checkBuilder,'SiteExp':sitexpBuilder})
-  env.SiteExp('#test/site.exp',[])
-  env.SetOption('num_jobs',1)
-  for dir in dirs:
-    env.Check(['#test/' + dir + '.sum','#test/' + dir + '.log'],
-              getTestCases(dir,env)+['#test/site.exp'])
-    env.Alias('check','#test/' + dir + '.log')
-  return 1
diff --git a/hlvm/build/codegen.py b/hlvm/build/codegen.py
deleted file mode 100644
index 3239a94..0000000
--- a/hlvm/build/codegen.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from SCons.Environment import Environment as Environment
-import re,fileinput,os
-from string import join as sjoin
-from os.path import join as pjoin
-
-def CPP2LLVMCPPAction(target,source,env):
-  funcName = os.path.splitext(os.path.basename(source[0].path))[0]
-  src = source[0].path
-  tgt = target[0].path
-  theAction = env.Action(
-    "PATH='" + env['LLVM_bin'] + "' " + env['with_llvmgxx'] + env['CXXFLAGS'] +
-      " -c -emit-llvm -x c++ " + src + " -o - | " + 
-    env['with_llvm2cpp'] + " " + env['LLVM2CPPFLAGS'] + " -o " + tgt
-  )
-  env.Depends(tgt,env['with_llvm2cpp'])
-  env.Depends(tgt,env['with_llvmdis'])
-  env.Execute(theAction);
-  return 0
-
-def CPP2LLVMCPPMessage(target,source,env):
-  return "Generating LLVM IR C++ From C++ Input: " + source[0].path
-
-def Cpp2LLVMCpp(env):
-  a = env.Action(CPP2LLVMCPPAction,CPP2LLVMCPPMessage)
-  b = env.Builder(action=a,suffix='inc',src_suffix='h',single_source=1)
-  env.Append(BUILDERS = {'Cpp2LLVMCpp':b})
-  env['LLVM2CPPFLAGS'] = "";
-  return 1
diff --git a/hlvm/build/configfile.py b/hlvm/build/configfile.py
deleted file mode 100644
index ffeb0f2..0000000
--- a/hlvm/build/configfile.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from SCons.Environment import Environment as Environment
-import re,fileinput,os
-from string import join as sjoin
-from os.path import join as pjoin
-
-def BytecodeMessage(target,source,env):
-  return "Generating Bytecode From C++ Source"
-
-def BytecodeAction(target,source,env):
-  includes = ""
-  for inc in env['CPPPATH']:
-    if inc[0] == '#':
-      inc = env['AbsSrcRoot'] + inc[1:]
-    includes += " -I" + inc
-  defines = ""
-  for d in env['CPPDEFINES'].keys():
-    if env['CPPDEFINES'][d] == None:
-      defines += " -D" + d
-    else:
-      defines += " -D" + d + "=" + env['CPPDEFINES'][d]
-  src = source[0].path
-  tgt = target[0].path
-  theAction = env.Action(
-    "PATH='" + env['LLVM_bin'] + "' " + env['with_llvmgxx'] + ' -Wall' +
-      includes + defines + " -g -c -x c++ " + src + " -o " + tgt )
-  env.Depends(target,env['with_llvmgxx'])
-  return env.Execute(theAction);
-
diff --git a/hlvm/build/configure.py b/hlvm/build/configure.py
deleted file mode 100644
index 2051c20..0000000
--- a/hlvm/build/configure.py
+++ /dev/null
@@ -1,286 +0,0 @@
-from SCons.Environment import Environment as Environment
-from SCons.Script.SConscript import SConsEnvironment as SConsEnvironment
-from os.path import join as pjoin
-from os.path import isdir as isdir
-from os.path import isfile as isfile
-from os.path import exists as exists
-from os import environ as environ
-from string import join as sjoin
-
-def AskForDir(env,pkg):
-  response = raw_input('Enter directory containing %(pkg)s: ' % {'pkg':pkg })
-  if response == 'quit' or response == "exit":
-    print "Configuration terminated by user"
-    env.Exit(1)
-  if not isdir(response):
-    print "'" + response + "' is not a directory. Try again."
-    return AskForDir(env,pkg)
-  return response
-
-def FindPackage(ctxt,pkgname,varname,hdr,libs,code='main(argc,argv);',paths=[],
-                objs=[],hdrpfx='',progs=[]):
-  ctxt.Message('Checking for Package ' + pkgname + '...')
-  ctxt.env[pkgname + '_bin'] = ''
-  ctxt.env[pkgname + '_lib'] = ''
-  ctxt.env[pkgname + '_inc'] = ''
-  lastLIBS = ctxt.env['LIBS']
-  lastLIBPATH = ctxt.env['LIBPATH']
-  lastCPPPATH = ctxt.env['CPPPATH']
-  lastBINPATH = ctxt.env['BINPATH']
-  lastLINKFLAGS = ctxt.env['LINKFLAGS']
-  prog_template = """
-#include <%(include)s>
-int main(int argc, char **argv) { 
-  %(code)s
-  return 0;
-}
-"""
-  ctxt.env.AppendUnique(LIBS = libs)
-  if len(ctxt.env['confpath']) > 0:
-    paths = ctxt.env['confpath'].split(':') + paths
-  if len(ctxt.env[varname]) > 0:
-    paths = [ctxt.env[varname]] + paths
-  paths += [ '/opt/local','/opt/','/sw/local','/sw','/usr/local','/usr']
-  # Check each path
-  for p in paths:
-    # Clear old settings from previous iterations
-    libdir = ''
-    incdir = ''
-    bindir = None
-    objects = []
-    foundlib = 0
-    # Check various library directory names
-    for ldir in ['lib','libs','LIBS','Lib','Libs','Library','Libraries']:
-      libdir = pjoin(p,ldir)
-      # Skip this ldir if it doesn't exist
-      if not isdir(libdir):
-        continue
-
-      # Check each required library to make sure its a file
-      count = 0
-      for alib in libs:
-        library = pjoin(libdir,ctxt.env['LIBPREFIX'])
-        library += alib + ctxt.env['LIBSUFFIX']
-        if not isfile(library):
-          break
-        else:
-          count += 1
-
-      # if we didn't get them all then then try the next path
-      if count != len(libs):
-        continue
-
-      # If we were given some object files to check
-      if len(objs) > 0:
-        count = 0
-        # Check each of the required object files
-        for o in objs:
-          obj =  pjoin(libdir,ctxt.env['OBJPREFIX'])
-          obj += o + ctxt.env['OBJSUFFIX']
-          if not isfile(obj):
-            break
-          else:
-            count += 1
-            objects.append(obj)
-
-        # If we didn't find them all, try the next library path
-        if count != len(objs):
-          continue
-
-      # Otherwise we found the right library path
-      foundlib = 1
-      break
-    
-    if not foundlib:
-      continue
-
-    # At this point we have a valid libdir. Now check the various include 
-    # diretory names
-    count = 0
-    for incdir in ['include', 'inc', 'incl']:
-      hdrdir = pjoin(p,incdir)
-      if not isdir(hdrdir):
-        continue
-      if hdrpfx != '':
-        hdrdir = pjoin(hdrdir,hdrpfx)
-        if not isdir(hdrdir):
-          continue
-      header = pjoin(hdrdir,hdr)
-      if not isfile(header):
-        continue
-      else:
-        count += 1
-        break
-
-    # Check that we found the header file
-    if count != 1:
-      continue
-
-    # Check for programs
-    count = 0
-    for pr in progs:
-      bindir = pjoin(p,'bin')
-      if not exists(pjoin(bindir,pr)):
-        break
-      else:
-        count += 1
-
-    # If we didn't find all the programs, try the next path
-    if count != len(progs):
-      continue
-
-    # We found everything we're looking for, now test it out
-    ctxt.env.AppendUnique(LIBPATH = [libdir])
-    ctxt.env.AppendUnique(CPPPATH = [hdrdir])
-    ctxt.env.AppendUnique(BINPATH = [bindir])
-    ctxt.env.AppendUnique(LINKFLAGS = objects)
-    ret = ctxt.TryRun(
-      prog_template % {'include':hdr,'code':code},'.cpp'
-    )
-
-    # If the test failed, reset the variables and try next path
-    if not ret:
-      ctxt.env.Replace(LIBS=lastLIBS, LIBPATH=lastLIBPATH, 
-        CPPPATH=lastCPPPATH, BINPATH=lastBINPATH, LINKFLAGS=lastLINKFLAGS)
-      continue
-
-    # Otherwise, we've succeded, unset temporary environment settings and
-    # set up the the packages environment variables.
-
-    ctxt.env.Replace(LIBS=lastLIBS, LINKFLAGS=lastLINKFLAGS)
-    ctxt.env[varname] = p
-    ctxt.env[pkgname + '_bin'] = bindir
-    ctxt.env[pkgname + '_lib'] = libdir
-    ctxt.env[pkgname + '_inc'] = hdrdir
-    ctxt.Result('Found: (' + hdrdir + ',' + libdir + ')')
-    return 1
-
-  # After processing all paths, we didn't find it
-  ctxt.Result( 'Not Found' )
-
-  # We didn't find it. Lets ask for a directory name and call ourselves 
-  # again using that directory name
-  dir = AskForDir(ctxt.env,pkgname)
-  return FindPackage(ctxt,pkgname,varname,hdr,libs,code,[dir],objs,hdrpfx,progs)
-
-def FindLLVM(conf):
-  code = 'new llvm::Module("Name");'
-  conf.FindPackage('LLVM','with_llvm','llvm/Module.h',['LLVMCore','LLVMSystem'],
-    code,[],[],'',['llvm2cpp','llvm-as','llc'] )
-
-def FindAPR(conf):
-  code = 'apr_initialize();'
-  return conf.FindPackage('APR','with_apr',pjoin('apr-1','apr_general.h'),
-    ['apr-1'],code,[])
-
-def FindAPRU(conf):
-  code = 'apu_version_string();'
-  return conf.FindPackage('APRU','with_apru',pjoin('apr-1','apu_version.h'),
-    ['aprutil-1'],code,[])
-
-def FindLibXML2(conf):
-  code = 'xmlNewParserCtxt();'
-  return conf.FindPackage('LIBXML2','with_libxml2',pjoin('libxml','parser.h'),
-    ['xml2'],code,[],[],'libxml2',['xmllint'])
-
-def CheckProgram(ctxt,progname,varname,moredirs=[],critical=1):
-  ctxt.Message("Checking for Program " + progname + "...")
-  if ctxt.env[varname] is not None and exists(ctxt.env[varname]):
-    ret = 1
-  else:
-    paths = sjoin(moredirs,':') + ':' + ctxt.env['ENV']['PATH'] 
-    fname = ctxt.env.WhereIs(progname,paths)
-    ret = fname != None
-    if ret:
-      ctxt.env[varname] = fname
-    else:
-      ctxt.env[varname] = None
-  ctxt.Result(ret)
-  if critical and not ret:
-    print "Required Program '" + progname + "' is missing."
-    ctxt.env.Exit(1)
-  return ret
-
-def CheckCXXHdr(conf,hdr,critical=1):
-  ret = conf.CheckCXXHeader(hdr)
-  if critical and not ret:
-    print "Required C++ Header <" + hdr + "> is missing."
-    conf.env.Exit(1)
-  return ret
-
-def CheckCHdr(conf,hdr,critical=1):
-  ret = conf.CheckCHeader(hdr)
-  if critical and not ret:
-    print "Required C Header <" + hdr + "> is missing."
-    conf.env.Exit(1)
-  return ret
-    
-
-def CheckForHeaders(conf):
-  CheckCXXHdr(conf,'algorithm')
-  CheckCXXHdr(conf,'cassert')
-  CheckCXXHdr(conf,'ios')
-  CheckCXXHdr(conf,'iostream')
-  CheckCXXHdr(conf,'istream')
-  CheckCXXHdr(conf,'map')
-  CheckCXXHdr(conf,'memory')
-  CheckCXXHdr(conf,'new')
-  CheckCXXHdr(conf,'ostream')
-  CheckCXXHdr(conf,'string')
-  CheckCXXHdr(conf,'vector')
-  CheckCXXHdr(conf,'llvm/ADT/StringExtras.h')
-  CheckCXXHdr(conf,'llvm/System/Path.h')
-  CheckCHdr(conf,['apr-1/apr.h','apr-1/apr_pools.h'])
-  CheckCHdr(conf,['apr-1/apr.h','apr-1/apr_uri.h'])
-  CheckCHdr(conf,'libxml/parser.h')
-  CheckCHdr(conf,'libxml/relaxng.h')
-  CheckCHdr(conf,'libxml/xmlwriter.h')
-  return 1
-
-def CheckForPrograms(conf):
-  conf.CheckProgram('g++','with_gxx')
-  conf.CheckProgram('llc','with_llc',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm-dis','with_llvmdis',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm-as','with_llvmas',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm2cpp','with_llvm2cpp',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm-ar','with_llvmar',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm-ld','with_llvm_ld',[conf.env['LLVM_bin']])
-  conf.CheckProgram('llvm-gcc','with_llvmgcc')
-  conf.CheckProgram('llvm-g++','with_llvmgxx')
-  conf.CheckProgram('gperf','with_gperf')
-  conf.CheckProgram('pod2html','with_pod2html',[],0)
-  conf.CheckProgram('pod2man','with_pod2man',[],0)
-  conf.CheckProgram('xmllint','with_xmllint',['LIBXML2_bin'],0)
-  if not conf.CheckProgram('runtest','with_runtest',[],0):
-    print "*** TESTING DISABLED ***"
-  if not conf.CheckProgram('doxygen','with_doxygen',[],0):
-    print "*** DOXYGEN DISABLED ***"
-  if not conf.CheckProgram('xsltproc','with_xsltproc',[],0):
-    print "*** XSLTPROC DISABLED ***"
-  return 1
-
-def ConfigureHLVM(env):
-  save_path = env['ENV']['PATH']
-  conf = env.Configure(custom_tests = { 
-    'FindPackage':FindPackage, 'CheckProgram':CheckProgram },
-    conf_dir=pjoin(env['BuildDir'],'conftest'),
-    log_file=pjoin(env['BuildDir'],'config.log'),
-    config_h=pjoin(env['BuildDir'],'hlvm','Base','config.h')
-  )
-  rlist = []
-  for p in env['confpath'].split(':'):
-    if p != '' and exists(p):
-      env.PrependENVPath('PATH', p)
-      if exists(pjoin(p,'bin')):
-        env.PrependENVPath('PATH', pjoin(p,'bin'))
-
-  env['LIBS'] = ''
-
-  FindLLVM(conf)
-  FindLibXML2(conf)
-  FindAPR(conf)
-  FindAPRU(conf)
-  CheckForHeaders(conf)
-  CheckForPrograms(conf)
-  conf.Finish()
-  env['ENV']['PATH'] = save_path 
diff --git a/hlvm/build/documentation.py b/hlvm/build/documentation.py
deleted file mode 100644
index d5254b6..0000000
--- a/hlvm/build/documentation.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from SCons.Environment import Environment as Environment
-from SCons.Defaults import Mkdir
-from SCons.Defaults import Copy as Copy
-import re,fileinput,os,glob
-from string import join as sjoin
-from os.path import join as pjoin
-from os.path import exists
-import os.path as path
-
-def getHeaders(env):
-  context = pjoin(env['AbsSrcRoot'],'hlvm')
-  result = []
-  for d in glob.glob(pjoin(context,'*')):
-    if os.path.isdir(d):
-      for f in glob.glob(pjoin(context,d,'*.h')):
-        if not os.path.isdir(f):
-          result.append(f)
-  return result
-
-def DoxygenMessage(target,source,env):
-  return "Creating API Documentation With Doxygen (be patient)"
-
-def DoxygenAction(target,source,env):
-  if env['with_doxygen'] == None:
-    print "Documentation generation disabled because 'doxygen' was not found"
-    return 0
-  tgtdir = target[0].dir.path
-  srcpath = source[0].path
-  tgtpath = target[0].path
-  docsdir = target[0].dir.path
-  tarpath = pjoin(docsdir,'apis')
-
-  env.Depends(tgtpath,srcpath)
-  env.Depends(tgtpath,'doxygen.footer')
-  env.Depends(tgtpath,'doxygen.header')
-  env.Depends(tgtpath,'doxygen.intro')
-  env.Depends(tgtpath,'doxygen.css')
-  for f in getHeaders(env):
-    env.Depends(tgtpath,f)
-  if 0 == env.Execute(env['with_doxygen'] + ' ' + srcpath + ' >' + 
-      pjoin(tgtdir,'doxygen.out')):
-    return env.Execute(env['TAR'] + ' zcf ' + tgtpath + ' -C ' + tarpath + 
-    ' html')
-  return 0
-
-def Doxygen(env):
-  doxyAction = env.Action(DoxygenAction,DoxygenMessage)
-  doxygenBuilder = env.Builder(action=doxyAction)
-  env.Append(BUILDERS = {'Doxygen':doxygenBuilder} )
-  return 1
-
-def DoxygenInstallMessage(target,source,env):
-  return "Installing API Documentation Into Subversion"
-
-def DoxygenInstallAction(target,source,env):
-  tarfile = target[0].path
-  tgtdir  = target[0].dir.path
-  srcpath = source[0].path
-  if not env.Execute(Copy(tarfile,srcpath)):
-    return env.Execute(env['TAR'] + ' zxf ' + tarfile + ' -C ' + tgtdir )
-  return 1
-
-def DoxygenInstall(env):
-  doxyInstAction = env.Action(DoxygenInstallAction,DoxygenInstallMessage)
-  doxyInstBuilder = env.Builder(action=doxyInstAction)
-  env.Append(BUILDERS = {'DoxygenInstall':doxyInstBuilder} )
-  return 1;
-
-def XSLTMessage(target,source,env):
-  return "Creating " + target[0].path + " via XSLT from " + source[0].path
-
-def XSLTAction(target,source,env):
-  return env.Execute( env['with_xsltproc'] + ' ' + source[0].path + ' ' + 
-    source[1].path + ' >' + target[0].path )
-
-def XSLTproc(env):
-  xsltAction = env.Action(XSLTAction,XSLTMessage)
-  xsltBuilder = env.Builder(action=xsltAction)
-  env.Append(BUILDERS = {'XSLTproc':xsltBuilder} )
-
-def Pod2HtmlMessage(target,source,env):
-  return "Generating HTML From POD: " + source[0].path 
-  
-def Pod2HtmlAction(target,source,env):
-  title = path.splitext(path.basename(source[0].path))[0]
-  return env.Execute( env['with_pod2html'] + ' --css=man.css --htmlroot=.' +
-      ' --podpath=. --noindex --infile=' + source[0].path + 
-      ' --outfile=' + target[0].path + ' --title="' + title + ' command"')
-
-def Pod2ManMessage(target,source,env):
-  return "Generating MAN Page From POD: " + source[0].path 
-  
-def Pod2ManAction(target,source,env):
-  title = path.splitext(path.basename(source[0].path))[0]
-  return env.Execute( env['with_pod2man'] + ' --release=CVS' +
-    ' --center="HLVM Tools Manual" ' + source[0].path + ' ' + target[0].path )
-
-def PodGen(env):
-  p2hAction = env.Action(Pod2HtmlAction,Pod2HtmlMessage)
-  p2hBuildr = env.Builder(action=p2hAction,suffix='.html',src_suffix='.pod',
-      single_source=1)
-  p2mAction = env.Action(Pod2ManAction,Pod2ManMessage)
-  p2mBuildr = env.Builder(action=p2mAction,suffix='.1',src_suffix='.pod',
-      single_source=1)
-  env.Append(BUILDERS = {'Pod2Html':p2hBuildr, 'Pod2Man':p2mBuildr} )
diff --git a/hlvm/build/filterbuilders.py b/hlvm/build/filterbuilders.py
deleted file mode 100644
index 1ef4fb7..0000000
--- a/hlvm/build/filterbuilders.py
+++ /dev/null
@@ -1,156 +0,0 @@
-from SCons.Environment import Environment as Environment
-import re,fileinput,os
-from string import join as sjoin
-from os.path import join as pjoin
-
-def _sedit(input,output,substs):
-  res = []
-  f=open(output[0].path,'w')
-  for subst in substs:
-    res.append(re.compile(subst[0],re.MULTILINE|re.DOTALL))
-  lines =""
-  for line in fileinput.input(input[0].path):
-    lines+= line
-  count = 0
-  for r in res:
-    lines = res[count].sub(substs[count][1],lines,0)
-    count += 1
-  lines += '\n'
-  f.write(lines)
-  f.close()
-  return 0
-
-def QuoteSourceAction(target,source,env):
-  if env.Execute(env['with_xmllint'] + ' --relaxng ' + source[0].path + 
-      ' test/return0/helloworld.hlx >/dev/null'):
-    return 1
-  substs = [
-    ['<!--.*?-->',''],
-    ['<annotation>.*?</annotation>',''],
-    ['^[ \\t]*<','<'],
-    ['^[ \\t]*([^<])',' \\1'],
-    ['[\\\\]','\\\\\\\\'],
-    ['"','\\"'],
-    ['^([^\\n]*)$','"\\1"'],
-    ['^"[ \\t]*?"$\\n','']
-  ]
-  return _sedit(source,target,substs)
-
-def QuoteSourceMessage(target,source,env):
-  return "Converting %s to %s as quoted source" % (source[0],target[0])
-
-def RNGQuoteSource(env):
-  a = env.Action(QuoteSourceAction,QuoteSourceMessage)
-  b = env.Builder(action=a,suffix='inc',src_suffix='rng',single_source=1)
-  env.Append(BUILDERS = {'RNGQuoteSource':b})
-  return b
-
-def getSchemaTokens(fname):
-  elemPat = re.compile('<element[^>]*name[ ]*=[ ]*"([^"]*)"')
-  attrPat = re.compile('<attribute[^>]*name[ ]*=[ ]*"([^"]*)"')
-  valuPat = re.compile('<value>\s*([^<\s]*)')
-  subsPat = re.compile('[^A-Za-z0-9_]');
-  tokens = []
-  for line in fileinput.input(fname):
-    tokens += elemPat.findall(line)
-    tokens += attrPat.findall(line)
-    tokens += valuPat.findall(line)
-  dict = {}
-  for tok in tokens:
-    clean_tok = subsPat.sub('_',tok);
-    dict[clean_tok] = 1
-  result = list(dict.keys())
-  result.sort()
-  return result
-
-def processFile(preamble,tmplt,output,substs):
-  res = []
-  for subst in substs:
-    res.append(re.compile(subst[0]))
-  outf = open(output,"w")
-  for infile in [preamble,tmplt]:
-    for line in fileinput.input(infile):
-      count = 0
-      for r in res:
-        line = res[count].sub(substs[count][1],line,0)
-        count += 1
-      outf.write(line)
-  outf.close()
-
-def RNGTokenizerAction(target,source,env):
-  tgtDir = target[0].dir.path
-  ModulePath = re.sub(pjoin(env['BuildDir'],'hlvm','')+'(.*)','\\1',tgtDir)
-  Module = re.sub('[/\\\\]','_',ModulePath)
-  Schema = re.sub('.*/(.*).rng','\\1',source[0].path)
-  PreambleFile   = "utils/tmplt/Preamble_Code";
-  HeaderTemplate = "utils/tmplt/Tokenizer_Template.h";
-  SourceTemplate = "utils/tmplt/Tokenizer_Template.cpp";     
-  HeaderFile = pjoin(tgtDir,Schema) + "Tokenizer.h";
-  SourceFile = pjoin(tgtDir,Schema) + "Tokenizer.cpp";
-  TokenHashClass = Schema + "TokenHash";
-  TokenHashFile = pjoin(tgtDir,TokenHashClass) + ".i";
-  tokens = []
-  tokens = getSchemaTokens(source[0].path)
-  tknFilename = pjoin(tgtDir,Schema) + "Tokens.tmp"
-  tknFile = open(tknFilename,"w")
-  tknFile.write('struct TokenMap {\n')
-  tknFile.write('const char *name; HLVM_'+Module+'::'+Schema+'Tokens token;\n')
-  tknFile.write('};\n%%\n')
-  for tkn in tokens:
-    tknFile.write('"' + tkn + '", HLVM_'+Module+'::TKN_' + tkn + ',\n')
-  tknFile.write('%%\n')
-  tknFile.close()
-  gperfAction = env.Action(
-    env['with_gperf'] + " -tcDCIoGl --fast 0 -L C++ -Z " + TokenHashClass +
-    " -s 2 -S 1 -k '*' " + tknFilename + " >" + TokenHashFile)
-  if env.Execute(gperfAction):
-    return 1;
-  tokenList = ""
-  for tkn in tokens:
-    tokenList += "TKN_" + tkn + ",\n    "
-  from datetime import date
-  substs = [
-    ['%SCHEMA_NAME%',Schema],
-    ['%AUTHOR%','Generated By HLVM build system'],
-    ['%DATE%',date.today().strftime('%c')],
-    ['%MODULE%',Module],
-    ['%MODULE_PATH%',ModulePath],
-    ['%TOKEN_LIST%',tokenList]
-  ]
-  processFile(PreambleFile,HeaderTemplate,HeaderFile,substs)
-  processFile(PreambleFile,SourceTemplate,SourceFile,substs)
-  return 0
-
-def RNGTokenizerMessage(target,source,env):
-  return "Generating Perfect Hash Tokenizer For " + source[0].path
-
-def RNGTokenizer(env):
-  a = env.Action(RNGTokenizerAction,RNGTokenizerMessage)
-  b = env.Builder(action=a,suffix='h',src_suffix='rng',single_source=1)
-  env.Append(BUILDERS = {'RNGTokenizer':b})
-  return 1
-
-def ConfigFileMessage(target,source,env):
-  return "Generating Configuration File " + target[0].path
-
-def ConfigFileAction(target,source,env):
-  pat = re.compile('@([^@]+)@')
-  tgt = open(target[0].path,'w')
-  for line in fileinput.input(source[0].path):
-    matchobj = pat.search(line)
-    if None != matchobj:
-      var = matchobj.expand('\\1')
-      if env._dict.has_key(var):
-        substval = env[var]
-        if type(substval) != str:
-          substval = `env[var]`
-        line = pat.sub(substval,line)
-    tgt.write(line)
-    continue
-  tgt.close()
-
-def ConfigFile(env):
-  action  = env.Action(ConfigFileAction,ConfigFileMessage)
-  builder = env.Builder(action=action,src_suffix='.in',single_source=1)
-  env.Append(BUILDERS = {'ConfigFile':builder})
-  return 1
diff --git a/hlvm/build/hlvm.py b/hlvm/build/hlvm.py
deleted file mode 100644
index d54b7d7..0000000
--- a/hlvm/build/hlvm.py
+++ /dev/null
@@ -1,288 +0,0 @@
-from SCons.Options import Options as Options
-from SCons.Options import BoolOption as BoolOption
-from SCons.Options import PathOption as PathOption
-from SCons.Options import PackageOption as PackageOption
-from SCons.Script.SConscript import SConsEnvironment as SConsEnvironment
-from SCons.Script import COMMAND_LINE_TARGETS as COMMAND_LINE_TARGETS
-from SCons.Environment import Environment as Environment
-from SCons.Defaults import Mkdir as Mkdir
-from configure import ConfigureHLVM as ConfigureHLVM
-from os.path import join as pjoin
-from os.path import exists as exists
-from string import join as sjoin
-from string import replace as strrepl
-import glob
-import datetime
-
-def GetFiles(env,pat):
-  prefix = env.Dir('.').abspath
-  modprefix = strrepl(prefix,pjoin(env['BuildDir'],''),'',1)
-  files = glob.glob(pjoin(modprefix,pat))
-  result = []
-  for f in files:
-    result += [strrepl(f,modprefix,prefix,1)]
-  return result
-
-def GetAllCXXFiles(env):
-  return GetFiles(env,'*.cpp')
-
-def GetRNGQuoteSource(env):
-  from build import filterbuilders
-  return filterbuilders.RNGQuoteSource(env)
-
-def GetCpp2LLVMCpp(env):
-  from build import codegen
-  return codegen.Cpp2LLVMCpp(env)
-
-def GetRNGTokenizer(env):
-  from build import filterbuilders
-  return filterbuilders.RNGTokenizer(env)
-
-def GetBytecode(env):
-  from build import bytecode
-  return bytecode.Bytecode(env)
-
-def GetConfigFile(env):
-  from build import filterbuilders
-  return filterbuilders.ConfigFile(env)
-
-def GetDoxygen(env):
-  from build import documentation
-  return documentation.Doxygen(env)
-
-def GetDoxygenInstall(env):
-  from build import documentation
-  return documentation.DoxygenInstall(env)
-
-def GetXSLTproc(env):
-  from build import documentation
-  return documentation.XSLTproc(env)
-
-def GetPodGen(env):
-  from build import documentation
-  return documentation.PodGen(env)
-
-def Dirs(env,dirlist=[]):
-  dir = env.Dir('.').path
-  if (dir == env.Dir('#').path):
-    dir = '#' + env['BuildDir']
-  else:
-    dir = '#' + dir
-  for d in dirlist:
-    sconsfile = pjoin(dir,d,'SConscript')
-    env.SConscript(sconsfile)
-
-def InstallProgram(env,progs):
-  if 'install' in COMMAND_LINE_TARGETS:
-    dir = pjoin(env['prefix'],'bin')
-    if not exists(dir):
-      env.Execute(Mkdir(dir))
-    env.Install(dir=env.Dir(dir),source=progs)
-  if 'check' in COMMAND_LINE_TARGETS:
-    env.Depends('check',progs)
-  return 1
-
-def InstallLibrary(env,libs):
-  env.AppendUnique(LIBPATH=[env.Dir('.')])
-  if 'install' in COMMAND_LINE_TARGETS:
-    libdir = pjoin(env['prefix'],'lib')
-    if not exists(libdir):
-      env.Execute(Mkdir(libdir))
-    env.Install(dir=env.Dir(libdir),source=libs)
-  return 1
-
-def InstallHeader(env,hdrs):
-  if 'install' in COMMAND_LINE_TARGETS:
-    moddir = strrepl(env.Dir('.').path,pjoin(env['BuildDir'],''),'',1)
-    dir = pjoin(env['prefix'],'include',moddir)
-    if not exists(dir):
-      env.Execute(Mkdir(dir))
-    env.Install(dir=env.Dir(dir),source=hdrs)
-  return 1
-
-def InstallDocs(env,docs):
-  if 'install' in COMMAND_LINE_TARGETS:
-    moddir = strrepl(env.Dir('.').path,pjoin(env['BuildDir'],''),'',1)
-    dir = pjoin(env['prefix'],moddir)
-    if not exists(dir):
-      env.Execute(Mkdir(dir))
-    env.Install(dir=dir,source=docs)
-
-def InstallMan(env,mans):
-  if 'install' in COMMAND_LINE_TARGETS:
-    dir = pjoin(env['prefix'],'docs','man','man1')
-    if not exists(dir):
-      env.Execute(Mkdir(dir))
-    env.Install(dir=dir,source=mans)
-
-
-def GetBuildEnvironment(targets,arguments):
-  env = Environment();
-  env.EnsurePythonVersion(2,3)
-  env.EnsureSConsVersion(0,96)
-  env.SetOption('implicit_cache',1)
-  env.TargetSignatures('build')
-  if 'mode' in arguments:
-    buildname = arguments['mode']
-  else:
-    buildname = 'default'
-  options_file = '.' + buildname + '_options'
-  if not exists(options_file):
-    opts = Options('.options_cache',arguments)
-  else:
-    opts = Options(options_file,arguments)
-  opts.AddOptions(
-    BoolOption('assertions','Include assertions in the code',1),
-    BoolOption('debug','Build with debug options turned on',1),
-    BoolOption('inline','Cause inline code to be inline',0),
-    BoolOption('optimize','Build object files with optimization',0),
-    BoolOption('profile','Generate profiling aware code',0),
-    BoolOption('small','Generate smaller code rather than faster',0),
-    BoolOption('strip','Strip executables of their symbols',0),
-  )
-  opts.Add('confpath','Specify additional configuration dirs to search','')
-  opts.Add('prefix','Specify where to install HLVM','/usr/local')
-  opts.Add('suites','Specify a list of test suites to run')
-  opts.Add('with_llvm','Specify where LLVM is located','/usr/local')
-  opts.Add('with_apr','Specify where apr is located','/usr/local/apr')
-  opts.Add('with_apru','Specify where apr-utils is located','/usr/local/apr')
-  opts.Add('with_libxml2','Specify where LibXml2 is located','/usr/local')
-  opts.Add('with_gxx','Specify where the GCC C++ compiler is located',
-           '/usr/local/bin/g++')
-  opts.Add('with_llc','Specify where the LLVM compiler is located',
-           '/usr/local/bin/llc')
-  opts.Add('with_llvm_ld','Specify where the LLVM GCC Linker is located',
-           '/usr/local/bin/llvm-ld')
-  opts.Add('with_llvmdis','Specify where the LLVM disassembler is located',
-           '/usr/local/bin/llvm-dis')
-  opts.Add('with_llvmas','Specify where the LLVM assembler is located',
-           '/usr/local/bin/llvm-as')
-  opts.Add('with_llvmgcc','Specify where the LLVM C compiler is located',
-           '/usr/local/bin/llvm-gcc')
-  opts.Add('with_llvmgxx','Specify where the LLVM C++ compiler is located',
-           '/usr/local/bin/llvm-g++')
-  opts.Add('with_llvmar','Specify where the LLVM bytecode archiver is located',
-           '/usr/local/bin/llvm-g++')
-  opts.Add('with_llvm2cpp','Specify where the LLVM llvm2cpp program is located',
-           '/usr/local/bin/llvm2cpp')
-  opts.Add('with_gperf','Specify where the gperf program is located',
-           '/usr/local/bin/gperf')
-  opts.Add('with_runtest','Specify where DejaGnu runtest program is located',
-           '/usr/local/bin/runtest')
-  opts.Add('with_doxygen','Specify where the doxygen program is located',
-           '/usr/local/bin/doxygen')
-  opts.Add('with_xsltproc','Specify where the XSLT processor is located',
-           '/usr/local/bin/xsltproc')
-  opts.Add('with_pod2html','Specify where the POD to HTML generator is located',
-           '/usr/local/bin/pod2html')
-  opts.Add('with_pod2man','Specify where the POD to MAN generator is located',
-           '/usr/local/bin/pod2man')
-  opts.Add('with_xmllint','Specify where the xmllint program is located',
-           '/usr/local/bin/xmllint')
-  opts.Update(env)
-  env['HLVM_Copyright'] = 'Copyright (c) 2006 Reid Spencer'
-  env['HLVM_Maintainer'] = 'Reid Spencer <rspencer@reidspencer>'
-  env['HLVM_Version'] = '0.2svn'
-  env['HLVM_SO_CURRENT'] = '0'
-  env['HLVM_SO_REVISION'] = '1'
-  env['HLVM_SO_AGE'] = '0'
-  env['HLVM_SO_VERSION'] = env['HLVM_SO_CURRENT']+':'+env['HLVM_SO_REVISION']
-  env['HLVM_SO_VERSION'] += ':' + env['HLVM_SO_AGE']
-  env['CCFLAGS']  = ' -pipe -Wall -Wcast-align -Wpointer-arith -Wno-long-long'
-  env['CCFLAGS'] += ' -pedantic'
-  env['CXXFLAGS'] = ' -pipe -Wall -Wcast-align -Wpointer-arith -Wno-deprecated'
-  env['CXXFLAGS']+= ' -Wold-style-cast -Woverloaded-virtual -Wno-unused'
-  env['CXXFLAGS']+= ' -Wno-long-long -pedantic -fno-operator-names -ffor-scope'
-  env['CXXFLAGS']+= ' -fconst-strings'
-  env['CPPDEFINES'] = { '__STDC_LIMIT_MACROS':None, '_GNU_SOURCE':None }
-  VariantName=''
-  if env['small'] == 1:
-    VariantName='S'
-    env.Append(CCFLAGS=' -Os')
-    env.Append(CXXFLAGS=' -Os')
-  else :
-    VariantName='s'
-
-  if env['profile'] == 1:
-    VariantName+='P'
-    env.Append(CCFLAGS=' -pg')
-    env.Append(CXXFLAGS=' -pg')
-  else :
-    VariantName+='p'
-
-  if env['assertions'] == 1:
-    VariantName+='A'
-    env.Append(CPPDEFINES={'HLVM_ASSERT':None})
-  else :
-    VariantName+='a'
-
-  if env['debug'] == 1 :
-    VariantName += 'D'
-    env.Append(CCFLAGS=' -ggdb')
-    env.Append(CXXFLAGS=' -ggdb')
-    env.Append(CPPDEFINES={'HLVM_DEBUG':None})
-    env.Append(LINKFLAGS='-ggdb')
-  else :
-    VariantName+='d'
-
-  if env['inline'] == 1:
-    VariantName+='I'
-  else :
-    VariantName+='i'
-    env.Append(CXXFLAGS=' -fno-inline')
-
-  if env['optimize'] == 1 :
-    VariantName+='O'
-    env.Append(CCFLAGS=' -O3')
-    env.Append(CXXFLAGS=' -O3')
-    env.Append(LINKFLAGS='-O3')
-  else :
-    VariantName+='o'
-
-  if env['strip']:
-    VariantName +='T'
-    env['LINKFLAGS'] += ' -s'
-  else:
-    VariantName += 't'
-
-  BuildDir = buildname 
-  env['Variant'] = VariantName
-  env['BuildDir'] = BuildDir
-  env['AbsObjRoot'] = env.Dir('#' + BuildDir).abspath
-  env['AbsSrcRoot'] = env.Dir('#').abspath
-  env.Prepend(CPPPATH=[pjoin('#',BuildDir)])
-  env.Prepend(CPPPATH=['#'])
-  env['LIBPATH'] = []
-  env['BINPATH'] = []
-  env['LLVMASFLAGS'] = ''
-  env['LLVM2CPPFLAGS'] = ''
-  env['LLVMGXXFLAGS'] = ''
-  env['LLVMGCCFLAGS'] = ''
-  env.BuildDir(BuildDir,'#',duplicate=0)
-  env.SConsignFile(pjoin(BuildDir,'sconsign'))
-  if 'install' in COMMAND_LINE_TARGETS:
-    env.Alias('install',[
-      env.Dir(pjoin(env['prefix'],'bin')),
-      env.Dir(pjoin(env['prefix'],'lib')),
-      env.Dir(pjoin(env['prefix'],'include')),
-      env.Dir(pjoin(env['prefix'],'docs'))
-    ])
-
-  env.Help("""
-HLVM Build Environment
-
-Usage Examples:: 
-  scons             - to do a normal build
-  scons --clean     - to remove all derived (built) objects
-  scons check       - to run the DejaGnu test suite
-  scons install     - to install HLVM to a target directory
-  scons docs        - to generate the doxygen documentation
-
-Options:
-""" + opts.GenerateHelpText(env,sort=cmp))
-  print "HLVM BUILD MODE: " + VariantName + " (" + buildname + ")"
-  ConfigureHLVM(env)
-  now = datetime.datetime.utcnow();
-  env['HLVM_ConfigTime'] = now.ctime();
-  opts.Save(options_file,env)
-  return env
diff --git a/hlvm/build/main.py b/hlvm/build/main.py
deleted file mode 100644
index e89e01b..0000000
--- a/hlvm/build/main.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from SCons.Environment import Environment as Environment
-from environment import ProvisionEnvironment as ProvisionEnvironment
-from configure import ConfigureHLVM as ConfigureHLVM
-from os import path as path
-from string import join as sjoin
-from string import replace as strrepl
-import glob
-def GetBuildEnvironment(targets,arguments):
-  env = Environment();
-  env['HLVM_Copyright'] = 'Copyright (c) 2006 Reid Spencer'
-  env['HLVM_Maintainer'] = 'Reid Spencer <rspencer@reidspencer>'
-  env['HLVM_Version'] = '0.1svn'
-  env['HLVM_SO_CURRENT'] = '0'
-  env['HLVM_SO_REVISION'] = '1'
-  env['HLVM_SO_AGE'] = '0'
-  env['HLVM_SO_VERSION'] = env['HLVM_SO_CURRENT']+':'+env['HLVM_SO_REVISION']
-  env['HLVM_SO_VERSION'] += ':' + env['HLVM_SO_AGE']
-  ProvisionEnvironment(env,targets,arguments)
-  return ConfigureHLVM(env)
-
-def GetAllCXXFiles(env):
-  dir = env.Dir('.').abspath
-  dir = strrepl(dir,path.join(env['BuildDir'],''),'',1)
-  p1 = glob.glob(path.join(dir,'*.cpp'))
-  p2 = glob.glob(path.join(dir,'*.cxx'))
-  p3 = glob.glob(path.join(dir,'*.C'))
-  return env.Flatten([p1,p2,p3])
-
-def GetRNGQuoteSource(env):
-  from scons import filterbuilders
-  return filterbuilders.RNGQuoteSource(env)
-
-def GetRNGTokenizer(env):
-  from scons import filterbuilders
-  return filterbuilders.RNGTokenizer(env)
-
-def GetCheck(env):
-  from scons import check
-  return check.Check(env)
-
-def Dirs(env,dirlist=[]):
-  for d in dirlist:
-    env.SConscript(path.join(env['BuildDir'],d,'SConscript'))
-
-def join(one,two):
-  return path.join([one,two])
diff --git a/hlvm/docs/Credits.html b/hlvm/docs/Credits.html
deleted file mode 100644
index 9a0401a..0000000
--- a/hlvm/docs/Credits.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--#set var="title" value="Credits" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Credits</h1>
-<p>This document is a partial list of the people who have given their time, 
-talent, ideas, code, money, or other valuable resource to make HLVM a reality. 
-Without these people, HLVM would not exist.</p>
-<p>If you have contributed a patch or made some other contribution to the HLVM
-project, please submit a patch to this file and add yourself! We <em>want</em>
-you to get the credit for your contribution.</p>
-<h2>Developers</h2>
-<p>The High Level Virtual Machine is developed by:</p>
-<dl>
-  <dt><a href="http://reidspencer.com/">Reid Spencer</a></dt>
-  <dd>Project founder and primary architect.</dd>
-  <dt>Chandler Caruth</dt><dd></dd>
-  <dt>David Koontz</dt><dd></dd>
-  <dt>Owen Anderson</dt><dd></dd>
-  <dt>Saem Ghani</dt><dd></dd>
-</dl>
-<h2>Contributors</h2>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/DevelopersGuide.html b/hlvm/docs/DevelopersGuide.html
deleted file mode 100644
index c44f8b0..0000000
--- a/hlvm/docs/DevelopersGuide.html
+++ /dev/null
@@ -1,481 +0,0 @@
-<!--#set var="title" value="Developer's Guide" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1 class="title">HLVM Developer's Guide</h1>
-<div class="warning">CAUTION: This document is a work in progress.</div>
-<ol>
-  <li><a href="#intro">Introduction</a></li>
-  <li><a href="#build">Build System</a>
-    <ol>
-      <li><a href="#scons">About SCONS</a></li>
-      <li><a href="#config">Configuring</a></li>
-      <li><a href="#rules">Build Rules</a></li>
-      <li><a href="#sanity">Sane Build Environment</a></li>
-    </ol>
-  </li>
-  <li><a href="#style">Coding Style</a></li>
-</ol>
-
-<div class="author">
-  <p>Author: <a href="mailto:rspencer@reidspencer.com">Reid Spencer</a>.</p>
-</div>
-
-<h2><a name="intro">Introduction</a></h2>
-<div class="text">
-  <p>This document is a manual for developers who wish to contribute to the HLVM
-  project. It covers topics such as coding style, the build system and project 
-  rules. All the <a href="http://llvm.org/docs/DeveloperPolicy.html">policies 
-    of the LLVM project</a> apply here as well. This document just contains
-  things specific to HLVM.</p>
-</div>
-
-<h2><a name="build">Build System</a></h2>
-<div class="text">
-  <p>This section describes the HLVM build system.</p>
-</div>
-
-<h3><a name="scons">About SCONS</a></h3>
-<div class="text">
-  <p>The HLVM project uses the <a href="http://www.scons.org/">scons</a>
-  software construction tool to orchestrate its builds. This gives us superior
-  dependency checking and a much more flexible tool for developing the build
-  system. We started with "make" but were convinced of SCons superiority after
-  trying it for a week. If you're not familiar with it, please read up on it
-  and get a general understanding. You don't need detailed understanding because
-  all you will most likely need to do is follow the instructions in this
-  section.</p>
-</div>
-
-<h3><a name="config">Configuring</a></h3>
-<div class="text">
-  <h4>Configuration On Every Build</h4>
-  <p>Unlike some other build systems (e.g. autoconf/automake), the
-  configuration and construction phases of building are not separated with
-  scons. The configuration parameters are checked every time you build. While
-  you might think that will slow things down, it doesn't. The configuration
-  information is cached and proceeds quite quickly once your configuration is
-  stable. If something changes in your environment, only those pieces affected
-  will get re-configured. This saves a lot of time and hassle by telling you of
-  any configuration errors on the very next build.</p>
-  <h4>The Options Cache</h4>
-  <p>Configuration parameters are specified on the scons command line. The
-  values of these parameters are stored in the <i>options cache</i> which is
-  simply a file named .options_cache in the root source directory. If the file
-  doesn't exist, it will be created the first time you run scons. On subsequent
-  runs, the values are loaded from this cache and used unless new values are
-  given on the command line. In this way, you only need to specify your options
-  once and then they "stick" from that point forward.</p>
-  <h4>Configuration Options</h4>
-  <p>HLVM has a variety of options to assist with configuring HLVM for your
-  environment and build choices. Each option has a default that will work in
-  many environments but might need adjusting for your environment. The default
-  assumes various software packages are in <tt>/usr/local</tt> and that a fully
-  debuggable version of HLVM should be built. The table below provides the 
-  full list of options.</p>
-  <table>
-  <tr><th>Option</th><th>Description</th><th>Default</th></tr>
-  <tr>
-    <td>assertions</td>
-    <td>Include assertions in the code. This can be enabled or disabled separate
-    from the setting for debug.</td>
-    <td>1</td></tr>
-  <tr>
-    <td>debug</td>
-    <td>Build with debug options turned on. This includes #ifdef/#endif code as
-      well as instructing the compiler to include debug information (-g)</td>
-    <td>1</td></tr>
-  <tr>
-    <td>inline</td>
-    <td>Cause inline code to be inline. This causes inline functions to really
-      be inline. Its off by default for better debuggability.</td><td>0</td>
-  </tr>
-  <tr>
-    <td>optimize</td>
-    <td>Build object files with optimization. This turns on compiler
-      optimization (-O3) to make the code efficient.</td><td>0</td></tr>
-  <tr>
-    <td>profile</td>
-    <td>Generate profiling aware code. This causes the compiler to construct the
-      code so that it can be profiled (-pg on Unix).</td><td>0</td></tr>
-  <tr>
-    <td>small</td>
-    <td>Generate smaller code rather than faster. Instructs the code to favor
-      smaller object files and executables than faster ones. Might be useful for
-      memory constrained platforms.</td>
-    <td>0</td></tr>
-  <tr>
-    <td>strip</td>
-    <td>Strip executables of their symbols. This can significantly reduce the
-      size of the executable. Useful for release preparation when trying to
-      minimize the size of a tarball or RPM package.</td>
-    <td>0</td></tr>
-  <tr>
-    <td>prefix</td>
-    <td>Specify where to install HLVM. This is the root directory of where HLVM
-      will be installed when you run <tt>scons install</tt></td>
-    <td>/usr/local</td></tr>
-  <tr>
-    <td>confpath</td>
-    <td>Specify additional configuration dirs to search. This is a unix style
-      path (colon separate) of directories to include in the search for software
-      packages. These directories will be searched first. If you put your
-      software in a non-standard place like /proj (Reid) or /more (Saem) then
-      you'll want to use this option.</td>
-    <td>{empty}</td></tr>
-  <tr>
-    <td>with_llvm</td>
-    <td>Specify where LLVM is installed.</td>
-    <td>/usr/local</td></tr>
-  <tr>
-    <td>with_apr</td>
-    <td>Specify where apr is installed.</td>
-    <td>/usr/local/apr</td></tr>
-  <tr>
-    <td>with_apru</td>
-    <td>Specify where apr-utils is installed.</td>
-    <td>/usr/local/apr</td></tr>
-  <tr>
-    <td>with_libxml2</td>
-    <td>Specify where LibXml2 is installed.</td>
-    <td>/usr/local</td></tr>
-  <tr>
-    <td>with_gperf</td>
-    <td>Specify where the gperf program is installed.</td>
-    <td>/usr/local/bin/gperf</td></tr>
-  <tr>
-    <td>with_llc</td>
-    <td>Specify where the LLVM compiler is installed.</td>
-    <td>/usr/local/bin/llc</td></tr>
-  <tr>
-    <td>with_llvmdis</td>
-    <td>Specify where the LLVM disassembler is installed.</td>
-    <td>/usr/local/bin/llvm-dis</td></tr>
-  <tr>
-    <td>with_llvmas</td>
-    <td>Specify where the LLVM assembler is installed.</td>
-    <td>/usr/local/bin/llvm-as</td></tr>
-  <tr>
-    <td>with_llvmgcc</td>
-    <td>Specify where the LLVM C compiler is installed.</td>
-    <td>/usr/local/bin/llvm-gcc</td></tr>
-  <tr>
-    <td>with_llvmgxx</td>
-    <td>Specify where the LLVM C++ compiler is installed.</td>
-    <td>/usr/local/bin/llvm-g++</td></tr>
-  <tr>
-    <td>with_llvmar</td>
-    <td>Specify where the LLVM bytecode archiver is installed.</td>
-    <td>/usr/local/bin/llvm-g++</td></tr>
-  <tr>
-    <td>with_llvm2cpp</td>
-    <td>Specify where the LLVM llvm2cpp program is installed.</td>
-    <td>/usr/local/bin/llvm2cpp</td></tr>
-  <tr>
-    <td>with_runtest</td>
-    <td>Specify where DejaGnu runtest program is installed.</td>
-    <td>/usr/local/bin/runtest</td></tr>
-  <tr>
-    <td>with_doxygen</td>
-    <td>Specify where the doxygen program is installed.</td>
-    <td>/usr/local/bin/doxygen</td></tr>
-  <tr>
-    <td>with_xsltproc</td>
-    <td>Specify where the XSLT processor is installed.</td>
-    <td>/usr/local/bin/xsltproc</td>
-  </tr>
-  </table>
-  <h4>Configuration Prompts</h4>
-  <p>When you first run <tt>scons</tt> against HLVM, if you did not specify the
-  <tt>confpath</tt> option or the configuration code cannot otherwise find a
-  package it needs, you will be prompted to enter the applicable path names
-  manually. You only need to do this once as the values you enter will be
-  remembered in the <tt>.options_cache</tt> file. These prompts will repeat
-  until you enter a path in which the package is properly recognized. If you
-  wish to abort this, just enter <tt>exit</tt> or <tt>quit</tt> at any prompt.
-  </p>
-</div>
-
-<h3><a name="rules">Build Rules</a></h3>
-<div class="text">
-  <p>This subsection describes the various build rules and extensions to SCons
-  that HLVM uses.</p>
-  <h4>The <tt>build</tt> python module</h4>
-  <p>For convenience, and to unclutter the SConscript files, the top level
-  <tt>build</tt> directory contains a python module that provides the build
-  facilities for HLVM. This module manipulates an SCons environment to set the
-  variables and define the builder rules for HLVM. The public interface to this
-  library is in the <tt>hlvm.py</tt> module. No other module should be imported
-  into the SConscript files.</p>
-  <h4>HLVM Builder Rules</h4>
-  <p>HLVM requires some specialized build rules beyond what SCons provides.
-  While general construction of static libraries, shared libraries, and
-  executables use the standard SCons builders, several more are defined in the
-  <tt>build</tt> python module. The table below describes the HLVM specific
-  builders.</p>
-  <table>
-    <tr><th>Builder</th><th>Source</th><th>Target</th><th>Description</th></tr>
-    <tr>
-      <td>RNGTokenizer</td>
-      <td>Relax/NG Schema (.rng)</td>
-      <td>*Tokenizer.h, *Tokenizer.cpp, *TokenHash.cpp</td>
-      <td>This builder scans a Relax/NG Schema for element, attribute, and
-        enumerated value names. It then uses these tokens to build a perfect
-        hash function (via <tt>gperf</tt>) for quickly recognizing the tokens
-        and converting it to an enumeration value. This is provided to make
-        recognizing the element and attributes names of an XML document faster.
-      </td>
-    </tr>
-    <tr>
-      <td>RNGQuoteSource</td>
-      <td>Relax/NG Schema (.rng)</td>
-      <td>C++ Strings For Inclusion (.inc)</td>
-      <td>This builder converts a Relax/NG schema into a set of strings that can
-        be #included into a C++ program as a literal string. It strips out
-        comments, annotations, and converts special characters into the C++
-        equivalent. The purpose here is to allow a single source for the schema
-        to be incorporated directly into the software so that no file I/O is
-        necessaroy to access the schema.</td>
-    </tr>
-    <tr>
-      <td>Bytecode</td>
-      <td>C++ Source (.cpp)</td>
-      <td>LLVM Bytecode (.bc)</td>
-      <td>This builder compiles a C++ source file and produces an equivalent 
-        LLVM bytecode file. This allows us to incorporate C++ source into the 
-        Runtime as linkable bytecode.</td>
-    </tr>
-    <tr>
-      <td>BytecodeArchive</td>
-      <td>LLVM Bytecode (.bc)</td>
-      <td>LLVM Bytecode Archive (.bca)</td>
-      <td>This builder collects a group of LLVM Bytecode files together and
-        creates a bytecode archive from them using <tt>llvm-ar</tt></td>
-    </tr>
-    <tr>
-      <td>Cpp2LLVMCpp</td>
-      <td>C++ Source (.cxx)</td>
-      <td>C++ Source (.cpp)</td>
-      <td>This builder uses the <tt>llvm2cpp</tt> to turn source C++ into
-        equivalent C++ calls against the LLVM Intermediate Representation (IR)
-        to construct the same program or program fragment. The construction
-        environment variable LLVM2CPPFLAGS can be set to control what options
-        are passed to <tt>llvm2cpp</tt>. See the <tt>llvm2cpp</tt> manual page
-        for details. Examples are in the <tt>hlvm/CodeGen/SConscript</tt>
-        file.</td>
-    </tr>
-    <tr>
-      <td>Check</td>
-      <td>n/a</td>
-      <td>n/a</td>
-      <td>This builder is a little special. It is used to run the DejaGnu test
-        suite. It is aliased on the command line as the target "check" so that
-        the <tt>scons check</tt> command will invoke this build.</td>
-    </tr>
-    <tr>
-      <td>Doxygen</td>
-      <td>n/a</td>
-      <td>doxygen.tar.gz</td>
-      <td>This builder runs the doxygen documentation generator on the source
-        code and builds a gzipped tar file containing doxygen's output. This
-        allows the HLVM API documentation, generated from source code comments,
-        to be packged into a single file.</td>
-    </tr>
-  </table>
-</div>
-
-<h3><a name="sanity">A Sane Build Environment</a></h3>
-<div class="text">
-  <p>Building HLVM is no small feat. It depends on a lot of software that is
-  quite version dependent. To bring a little sanity to the process, here is a
-  step-by-step procedure we know to work.</p>
-  <h4>Build Separation</h4>
-  <p>In building HLVM, you'll be installing compilers and library that may
-  already exist on your system. You don't want to overwrite your system versions
-  of these things or it will wreak havoc on your system. So, we suggest that you
-  start with a fresh directory. In the discussion that follows, we'll call it
-  <tt>/proj</tt> (that's what Reid uses).  But, it could be anything you want, 
-  as long as its new.  <tt>~/hlvm</tt> would work just as well.</p>
-  <p<em class="warning">IMPORTANT: </em>Choosing the disk location for these
-  builds should not be taken lightly. You will need upwards of 40GB of storage 
-  on a 32-bit machine to build all this software. Don't assume your home 
-  directory has enough space!</p>
-  <p>Once you've found a suitable location for HLVM, create the following
-  directory structure:</p><pre>
-  cd /proj
-  mkdir gcc libxml2 apr apru gperf scons install</pre>
-  <p>In the following sections you will build each of these packages and install
-  them into <tt>/proj/install</tt> which will keep it separate from anything
-  else in your system.</p>
-  <h4>Build GCC 3.4.6</h4>
-  <p>First, start with obtaining GCC 3.4.6. This will be the compiler that you
-  use for all the remaining compilations. Use the following commands to obtain,
-  build and install GCC 3.4.6:</p><pre>
-  cd /proj/gcc
-  mkdir build
-  svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_3_4_6_release src
-  cd ../build
-  ../src/configure  --prefix=/proj/install
-  make 
-  make install</pre>
-  <h4>Set Environment</h4>
-  <p>Now that you have gcc installed in a separate location, you will need to
-  change your environment to ensure that that version of gcc is the one used in
-  subsequent builds. Details vary from platform to platform, but on Linux, the
-  following should work:</p><pre>
-  export PATH=/proj/install/bin:$PATH
-  export LD_LIBRARY_PATH=/proj/install/lib:$LD_LIBRARY_PATH</pre>
-  <p>The essential point is to change your environment so that programs and
-  libraries installed into /proj/install will be found first. You should do this
-  in any shell environment in which you'll be building HLVM related software.
-  </p>
-  <h4>Build gperf</h4>
-  <p>This package is used for generating perfect hash functions. It is used by
-  HLVM for fast recognition of XML element and attribute names. Its easy and
-  fast to build:</p><pre>
-  cd /proj/gperf
-  wget http://mirrors.kernel.org/gnu/gperf/gperf-2.7.2.tar.gz
-  tar zxf gperf-2.7.2.tar.gz
-  mkdir build
-  cd build
-  ../gperf-2.7.2/configure --prefix=/proj/install
-  make
-  make install</pre>
-  <p>You can probably use any version after 2.7. We know it works with 2.7.2 and
-  3.0.1.</p>
-  <h4>Build libxml2</h4>
-  <p>This package provides all XML services for HLVM. It is part of GNome and
-  many other packages and quite stable. It should build quickly and easily for
-  you. Use these commands:</p><pre>
-  cd /proj/libxml2
-  wget ftp://xmlsoft.org/libxml2/libxml2-2.6.24.tar.gz
-  tar zxf libxml2-2.6.24.tar.gz
-  mkdir build
-  cd build
-  ../libxml2-2.6.24/configure --prefix=/proj/install
-  make
-  make install</pre>
-  <h4>Build apr</h4>
-  <p>The Apache Portable Runtime is a portability layer used within the Apache
-  HTTP Server. Although it is still undergoing active development, stable
-  releases are available. HLVM uses APR for portability in the runtime. Build 
-  APR with the following commands:</p>
-  <pre>
-  cd /proj/apr
-  wget http://mirror.olnevhost.net/pub/apache/apr/apr-1.2.7.tar.gz
-  tar zxf apr-1.2.7.tar.gz
-  mkdir build
-  cd apr-1.2.7
-  ./buildconf
-  cd ../build
-  ../apr-1.2.7/configure --prefix=/proj/install --enable-debug \
-    --enable-threads --enable-other-child
-  make
-  make install</pre>
-  <h4>Build apr-util</h4>
-  <p>The apr-util package is some additional utilities that go with APR. Build 
-  apr-util with the following commands:</p>
-  <pre>
-  cd /proj/apru
-  wget http://mirror.olnevhost.net/pub/apache/apr/apr-util-1.2.7.tar.gz
-  tar zxf apr-1.2.7.tar.gz
-  mkdir build
-  cd apr-util-1.2.7
-  ./buildconf
-  cd ../build
-  ../apr-util-1.2.7/configure --prefix=/proj/install --enable-debug \
-    --enable-threads --enable-other-child
-  make
-  make install</pre>
-  <h4>Build LLVM</h4>
-  <p>For now, you must build LLVM from the CVS repository. Although LLVM is
-  actively being developed, it is generally stable and this is safe. If you get
-  tempted to use a release tarball, it will fail. HLVM depends on post-1.7
-  features of LLVM. When you build LLVM, use the "tools-only" target. This will
-  avoid building the "runtime" portion of LLVM which was necessary for an older
-  version of llvm-gcc (v3). Since we'll be using llvm-gcc4, this is unnecessary
-  and will eliminate some chicken-and-egg type problems.</p>
-  <pre>
-  cd /proj/llvm
-  cvs -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login
-  &lt;return&gt;
-  cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm co llvm
-  mkdir build
-  cd build
-  ../llvm/configure --prefix=/proj/install
-  make tools-only
-  make install
-  make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 tools-only</pre>
-  <h4>Build llvm-gcc4</h4>
-  <p>Apple provides a Subversion repository for llvm-gcc4. You need this latest
-  version because HLVM depends on some of the features. You might find this one
-  a bit tricky. See the README.LLVM file in the top source directory for
-  additional help and late breaking news.</p>
-  <pre>
-  cd /proj/llvm-gcc4
-  svn co svn://anonsvn.opensource.apple.com/svn/llvm cfe
-  mkdir build install
-  cd build
-  ../cfe/configure --prefix=/proj/llvm-gcc4/cfe/install \
-    --enable-llvm=/proj/llvm/build --enable-languages=c,c++ --disable-threads \
-    --program-prefix=llvm-
-  make
-  make install</pre>
-  <p>Note that the <tt>--disable-threads</tt> option is a temporary workaround
-  until LLVM's PR822 (supporting weak-external linkage) is implemented. This
-  should be fixed by September, 2006 at which time --disable-threads won't be
-  needed any more.</p>
-  <p><em class="warning">IMPORTANT: </em>You <em>MUST</em> install llvm-gcc4
-  into its own installation area. Do <em>NOT</em> be tempted to install it into
-  <tt>/proj/install</tt>. If you do, it will overwrite your gcc 3.4.6
-  installation and you will have corrupted your build environment. 
-  <i>You've been warned.</i></p>
-  <h4>Install SCons</h4>
-  <p>As noted earlier, HLVM uses the SCons tool for its builds. You need version
-  0.96.92. Install it like this:</p>
-  <pre>
-  cd /proj/scons
-  wget http://internap.dl.sourceforge.net/sourceforge/scons/scons-0.96.92.tar.gz
-  tar zxf scons-0.96.92.tar.gz
-  python config.py install</pre>
-  <p>Alternatively, you could use one of the SCons packages, such as:</p>
-  <pre>
-  cd /proj/scons
-  wget http://internap.dl.sourceforge.net/sourceforge/scons/scons-0.96.92-1.noarch.rpm
-  rpm --install scons-0.96.92-1.noarch.rpm</pre>
-
-  <h4>Build HLVM</h4>
-  <p>Note in the following that if you've actually used <tt>/proj</tt> as your
-  build area then you don't need to provide any arguments to <tt>make</tt> as
-  these paths are the default. Also note that the arguments are only needed the
-  first time you build HLVM. Subsequently, these options will be remembered. See
-  the description of SCons above.</p>
-  <pre>
-  cd /proj/hlvm
-  svn co svn://hlvm.org/hlvm hlvm
-  cd hlvm
-  make debug MYMODE=Debug MYPREFIX=/proj/install MYPATH=/proj/install \
-    MYLLVMGCC=/proj/llvm/cfe/install/bin</pre>
-</div>
-
-<h2><a name="style">Coding Style</a></h2>
-<div class="text">
-  <p>Contributions to HLVM must meet the following Coding Style
-  requirements:</p>
-  <ul>
-    <li>Each file must start with the comment section common to other files in
-    HLVM. This comment section starts with a line describing the file, followed
-    by the HLVM title line, and a statement about the author and the 
-    copyright holder (UIUC).</li>
-    <li>Source code that is to be part of an HLVM library or executable must be
-    written in C++. We know this isn't the greatest language in the world, but 
-    it is the most compatible for meeting HLVM's integration and platform 
-    support requirements. Its also necessary for integration with LLVM.</li>
-    <li>Utility programs should be written in python, especially if they are
-    build related.</li>
-    <li>Files must not exceed 80 columns in width</li>
-    <li>Indentation is 2 spaces (no tabs).</li>
-    <li>Doxygen documentation must be provided in header files, at the very
-    least.</li>
-  </ul>
-</div>
-
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/Doxyfile.in b/hlvm/docs/Doxyfile.in
deleted file mode 100644
index 70793db..0000000
--- a/hlvm/docs/Doxyfile.in
+++ /dev/null
@@ -1,1008 +0,0 @@
-# Doxyfile 1.3-rc2
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = "HLVM API"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = "@HLVM_Version@"
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @AbsObjRoot@/docs/apis
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, 
-# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en 
-# (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, 
-# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these class will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = YES
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if 
-# those members were ordinary class members. Constructors, destructors and 
-# assignment operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH        = 
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower case letters. If set to YES upper case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# reimplements.
-
-INHERIT_DOCS           = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 2
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consist of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 0
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
-# only. Doxygen will then generate output that is more tailored for Java. 
-# For instance namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text.
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = @AbsSrcRoot@/hlvm @AbsObjRoot@/hlvm @AbsSrcRoot@/docs/doxygen.intro
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
-# *.h++ *.idl *.odl
-
-FILE_PATTERNS          = *.cpp *.c *.cxx *.h *.inc
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
-# that are symbolic links (a Unix filesystem feature) are excluded from the input.
-
-EXCLUDE_SYMLINKS       = YES
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories.
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.
-
-INPUT_FILTER           = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 3
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = @AbsSrcRoot@/docs/doxygen.header
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = @AbsSrcRoot@/docs/doxygen.footer
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet
-
-HTML_STYLESHEET        = @AbsSrcRoot@/docs/doxygen.css
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output dir.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non empty doxygen will try to run 
-# the html help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the Html help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 3
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
-# or Internet explorer 4.0+). Note that for large projects the tree generation 
-# can take a very long time. In such cases it is better to disable this feature. 
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimised for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assigments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_XML           = NO
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = @AbsSrcRoot@ @AbsObjRoot@
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = *.h
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed.
-
-PREDEFINED             = _GNU_SOURCE __STDC_LIMIT_MACROS HLVM_DEBUG HLVM_ASSERT
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse the 
-# parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = NO
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. Note that this 
-# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
-# recommended to install and use dot, since it yield more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = gif
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 800
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 600
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermedate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
-
diff --git a/hlvm/docs/FAQ.html b/hlvm/docs/FAQ.html
deleted file mode 100644
index c965cdc..0000000
--- a/hlvm/docs/FAQ.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--#set var="title" value="FAQ" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Frequently Asked Questions</h1>
-<p>Here's the list of questions we get frequently. Unlike many FAQ's, this is 
-not a marketing tool. These really are the questions we keep answering.</p>
-<p>Didn't find your question? 
-<a href="http://hlvm.org/Feedback.php">Submit a new one!</a></p> 
-<h2>Question Index</h2>
-<table>
-  <tr>
-    <td style="width:50%">
-      <ul>
-        <li><a href="#compare">How does HLVM compare to other VMs?</a></li>
-      </ul>
-    </td>
-    <td style="width:50%">
-    </td>
-  </tr>
-</table>
-<h2>Answers</h2>
-<h3><a name="compare">How does HLVM compare to other VMs?</a></h3>
-<p>The table below provides a comparison of various virtual machines</p>
-<table>
-  <tr><th>Feature</th><th>HLVM</th><th>Parrot</th><th>Mono (CLR)</th><th>JVM</th></tr>
-  <tr><td>Language Support</td>
-    <td>None, yet, but designed to targets any language; focusing first on
-      dynamic languages like Python and Ruby</td>
-    <td>Perl mainly, possibly Python and Tcl in the future.</td>
-    <td>C# mainly, but other languages possible</td>
-    <td>Java almost exclusively: very hard to use JVM for other languages</td>
-  </tr>
-  <tr><td>Execution Models</td>
-    <td>HLVM will be able to execute a program in any of the following models:
-      <ul>
-        <li>Interpretation of AST quickly compiled from source (coming).</li>
-        <li>JIT compilation from bytecode (already implemented by LLVM).</li>
-        <li>Native, optimized, binary execution (works now).</li>
-      </ul>
-    </td>
-    <td>TBD</td>
-    <td>TBD</td>
-    <td>TBD</td>
-  </tr>
-  <tr><td>Optimization</td>
-    <td>Offers a wide range of optimization levels from "none" to "life long".
-      Most of this is provided by LLVM and works today. LLVM is "state of the
-      art" for optimizing compilers. The amount of optimization applied can be
-      specified by the user or inferred from the program's usage and workload.
-    </td>
-    <td>TBD</td>
-    <td>TBD</td>
-    <td>TBD</td>
-  </tr>
-  <tr><td>Language Interoperability</td>
-    <td>AST</td>
-    <td>PIR</td>
-    <td>IL</td>
-    <td>JVM Bytecode</td>
-  </tr>
-  <tr><td>License</td>
-    <td>LGPL</td>
-    <td>?</td>
-    <td>Mono:? CLR:Proprietary</td>
-    <td>?</td>
-  </tr>
-</table>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/GettingStarted.html b/hlvm/docs/GettingStarted.html
deleted file mode 100644
index d5cce82..0000000
--- a/hlvm/docs/GettingStarted.html
+++ /dev/null
@@ -1,617 +0,0 @@
-<!--#set var="title" value="Getting Started with HLVM" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Getting Started with HLVM</h1>
-<ol>
-  <li><a href="#quickstart">Quick Start (For The Impatient)</a></li>
-  <li><a href="#overview">Overview</a></li>
-  <li><a href="#requirements">Requirements</a>
-    <ol>
-      <li><a href="#hardware">Hardware</a></li>
-      <li><a href="#software">Software</a></li>
-    </ol>
-  </li>
-  <li><a href="#other_packages">Building Other Packages</a>
-    <ol>
-      <li><a href="#SSIA">Single Separate Install Area</a></li>
-      <li><a href="#apr">apr</a></li>
-      <li><a href="#apr-util">apr-util</a></li>
-      <li><a href="#llvm">llvm</a></li>
-      <li><a href="#llvm-gcc4">llvm-gcc4</a></li>
-      <li><a href="#gperf">gperf</a></li>
-      <li><a href="#deja-gnu">deja-gnu/</a></li>
-    </ol>
-  </li>
-  <li><a href="#building">Building HLVM With SCons</a>
-    <ol>
-      <li><a href="#quick">Quick Start</a></li>
-      <li><a href="#about_scons">About SCons And HLVM</a></li>
-      <li><a href="#scons_options">SCons Options Supported</a></li>
-      <li><a href="#targets">Build Targets</a></li>
-    </ol>
-  </li>
-  <li><a href="#make">Building HLVM With Make</a>
-    <ol>
-      <li><a href="#make_targets">Targets Supported</a></li>
-      <li><a href="#tipsntricks">Tips And Tricks</a></li>
-    </ol>
-  </li>
-</ol>
-
-<div class="author">
-  <p>Author: <a href="mailto:rspencer@reidspencer.com">Reid Spencer</a>.</p>
-</div>
-
-<h2><a name="quickstart"><b>Quick Start (For The Impatient)</b></a></h2>
-<div class="text">
-<p>Here's the quick start for getting up and running quickly with HLVM. Note
-that this is for experts and the impatient only.</p>
-<ol>
-  <li>Read the documentation.</li>
-  <li>Read the documentation.</li>
-  <li>Remember that you were warned twice about reading the documentation.</li>
-  <li>Obtain, build, and install the dependent packages. You need llvm, 
-  llvm-gcc4, apr, apr-util, libxml2, scons, gperf, gcc, dejagnu, python, tcl,
-  and expect.</li>
-  <li>Obtain the HLVM Source Code
-  (<a href="http://llvm.org/svn/llvm-project/hlvm/trunk">http://llvm.org/svn/llvm-project/hlvm/trunk</a>).</li>
-  <li>Build hlvm with: <tt>scons -Q mode=debug confpath=/paths/to/pkgs</tt></li>
-  <li>The configuration utility might ask you where your 3rd party software is
-  located. Please enter the paths appropriately.</li>
-  <li>Run the test suite with: <tt>scons -Q check</tt></li>
-  <li>Install hlvm with: <tt>scons -Q mode=debug install 
-    prefix=/path/to/put/hlvm</tt></li>
-</ol>
-</div>
-
-<h2><a name="overview"><b>Overview</b></a></h2>
-<div class="text">
-<p>Welcome to HLVM! This document shows you how to get started with the High
-Level Virtual Machine. Before you do that, lets get some questions answered up
-front to make sure you actually want to get started with HLVM.</p>
-<dl>
-  <dt>What is HLVM?</dt>
-  <dd>HLVM is a toolkit for building virtual machines for dynamic languages. Its
-  not something everyone is going to want to mess with. Generally, it is highly
-  technical and doesn't really do much for an end user. On the other hand, if
-  you're developing your own dynamic programming language, HLVM is <em>just</em>
-  the ticket.</dd>
-  <dt>Who uses HLVM?</dt>
-  <dd>Generally, programming language researchers and software tool vendors 
-  use HLVM.</dd>
-  <dt>What does HLVM do?</dt>
-  <dd>HLVM doesn't really <em>do</em> anything. While it provides a few
-  executables, these are ancillary in nature. Most of HLVM's capabilities are
-  provided through a set of code libraries that can be incorporated into other
-  programs. HLVM does provide a virtual machine executable but without a program
-  to run (one that has been compiled by HLVM based tools), the virtual machine
-  won't do anything. So, if you're an end user of software, HLVM probably isn't
-  for you. If you're a developer, however, we think you'll find HLVM quite
-  spiffy.</dd>
-  <dt>How hard is HLVM to build?</dt>
-  <dd>Although we've tried to make building HLVM dead simple, it is a
-  complicated system and you must understand some of those complexities to get
-  it right. One of its major complexities is that it incorporates many other
-  packages that are not distributed with HLVM. You must build and install those
-  packages yourself.</dd>
-</dl>
-<p>Okay, if you're still interested in HLVM, then we have a few more
-introductory things to cover:</p>
-<ol>
-  <li>HLVM provides a suite of libraries and a few tools. These are statically
-  linked (archive files and object files) so that you can incorporate the
-  appropriate pieces into your project. This was done purposefully since we
-  don't believe that creating a monolithic shared library (DLL) is particularly
-  useful. This architecture gives you the freedom to construct your own
-  libraries by picking the appropriate things from the palette that HLVM offers.
-  </li>
-  <li>Although HLVM provides several tools, these are ancillary in nature. They
-  are provided to help either with testing HLVM or to help you use HLVM. The
-  <tt>hlvm</tt> program (the actual virtual machine) is a reference
-  implementation. You may choose to implement it differently (with the help of
-  HLVM's runtime libraries, of course).</li>
-</ol>
-</div>
-
-<h2><a name="requirements"><b>Requirements</b></a></h2>
-<div class="text">
-  <p>Before you attempt to build HLVM, you need to understand its requirements.
-  HLVM is non-trivial and depends on a number of other software packages. These
-  packages will be required before you can build HLVM. Taking
-  a moment to familiarize yourself with HLVM's requirements may save you some 
-  time in the long run.</p>
-  <p>The table below shows the software that HLVM depends on. You <b>must</b> 
-  obtain and build these packages yourself if they are not already present on 
-  your system. HLVM won't compile or run without them.</p>
-
-  <h3><a name="hardware">Hardware</a></h3>
-  <p>HLVM supports whatever hardware LLVM supports. For details, please see
-  <a href="http://llvm.org/docs/GettingStarted.html#hardware">LLVM's documentation</a></p>
-
-  <h3><a name="software">Software</a></h3>
-  <p>Compiling HLVM requires that you have several software packages installed. 
-  The table below lists those required packages. The Package column is the usual
-  name for the software package that HLVM depends on. The Version column 
-  provides "known to work" versions of the package. The Notes column describes 
-  how HLVM uses the package and provides other details.</p>
-  <table>
-    <tr><th>Package</th><th>Version</th><th>Notes</th></tr>
-    <tr>
-      <td><a href="http://gcc.gnu.org">gcc</a></td>
-      <td>&ge;3.4.6 (4.1 recommended)</td>
-      <td>C/C++ compiler for compiling HLVM.</td>
-    </tr>
-    <tr>
-      <td><a href="http://llvm.org/">llvm</a>
-        <a href="#sf1"><sup>1</sup></a></td>
-      <td>1.8cvs</td>
-      <td>Low Level Virtual Machine. This compler infrastructure provides the
-        low level code generation and optimization, linking, bytecode, JIT,
-        and other facilities HLVM needs.  LLVM is HLVM's sister project. 
-        It handles all the low level details for</td>
-    </tr>
-    <tr>
-      <td><a href="http://llvm.org/">llvm-gcc4</a>
-        <a href="#sf1"><sup>1</sup></a></td>
-      <td>4</td>
-    <td>LLVM C/C++ Frontend, Version 4. This is a full GCC (Gnu Compiler 
-      Collection) compiler but with extensions for generating code via LLVM 
-      instead of GCC's normal RTL-based backend. This tool can compile C, C++,
-      Objective-C and Objective-C++ languages into either native binary or
-      LLVM bytecode. In either case, it utilizes LLVM's suite of passes for code
-      optimization.</td>
-    </tr>
-    <tr>
-      <td><a href="http://apr.apache.org/">apr</a></td>
-      <td>1.2.7</td>
-      <td>Apache Portable Runtime. APR is used as the portability layer to
-        abstract away differences between the various operating systems that
-        HLVM runs on. This simplifies the HLVM Runtime library implementation
-        and also endows it with some robustness. It handles various OS 
-        abstraction such as file I/O, threading, locking, loading, etc.</td>
-    </tr>
-    <tr>
-      <td><a href="http://apr.apache.org/">apr-util</a></td>
-      <td>1.2.7</td>
-      <td>Apache Portable Runtime Utilities. Additional runtime utilities for
-      DBM database access, code set conversion (iconv) and miscellaneous other
-      utilities.</td>
-    </tr>
-    <tr>
-      <td><a href="http://xmlsoft.org/downloads.html">libxml2</a></td>
-      <td>2.6.24</td>
-      <td>XML parsing and validation toolkit. This is used for reading and
-        writing XML forms of the Abstract Syntax Tree. </td>
-    </tr>
-    <tr>
-      <td><a href="http://www.gnu.org/software/gperf/">gperf</a></td>
-      <td>2.7.2 (3.0.1 won't work)</td>
-      <td>GNU Perfect Hash Function Generator. This is used for recognizing 
-        element and attribute names in XML documents.</td>
-    </tr>
-    <tr>
-      <td><a href="http://subversion.tigris.org/">subversion</a></td>
-      <td>&ge;1.1</td>
-      <td>Subversion source Subversion access to HLVM source repository.</td>
-    </tr>
-    <tr>
-      <td><a href="http://scons.org/download.php">scons</a></td>
-      <td>0.96.92</td>
-      <td>Software Construction system used for HLVM's build system.</td>
-    </tr>
-    <tr>
-      <td><a href="http://python.org/">python</a></td>
-      <td>2.3</td>
-      <td>Python programming language, required by scons</td>
-    </tr>
-    <tr>
-      <td><a href="http://savannah.gnu.org/projects/dejagnu">dejagnu</a></td>
-      <td>1.4.2</td>
-      <td>Test suite automation package. You only need this if you want to
-        run the automated test suite.</td>
-    </tr>
-    <tr>
-      <td><a href="http://expect.nist.gov/">expect</a></td>
-      <td>5.38.0</td>
-      <td>Test scripting language. DejaGnu is based on this. You only need
-        this if you want to run the automated test suite.</td>
-    </tr>
-    <tr>
-      <td><a href="http://www.tcl.tk/software/tcltk/">tcl</a></td>
-      <td>8.3, 8.4</td>
-      <td>Test Control Language. Expect is based on this. You only need this if
-      you want to run the automated test suite.</td>
-    </tr>
-    <tr>
-      <td><a href="http://www.stack.nl/~dimitri/doxygen/">doxygen</a></td>
-      <td>&ge;1.4.4<a href="#sf3"><sup>3</sup></a></td>
-      <td>C/C++ automated documentation generator for building the XHTML
-        documentation from the comments in the HLVM header files. You only need
-      this if you intend to build the documentation.</td>
-    </tr>
-    <tr>
-      <td><a href="http://xmlsoft.org/XSLT/xsltproc2.html">xsltproc</a></td>
-      <td>&ge;2.6.24<a href="#sf3"><sup>3</sup></a></td>
-      <td>XSLT Processor (comes with libxml2). This is used to transform the
-        Relax NG schema for the HLVM Abstract Syntax Tree (AST) into 
-        documentation that describes the AST. You only need this if you intend
-        to build the documentation.</td>
-    </tr>
-  </table>
-
-  <p><b>Notes:</b></p>
-  <div class="notes">
-  <ol>
-    <li><a name="sf1"></a>Certain LLVM tools are being modified to accommodate 
-    HLVM as it progresses. Until this situation stabilizes you will be required
-      to have a very fresh (recent) version of LLVM from the CVS sources.  At 
-      some point in the future, an LLVM release will contain all the features 
-      that HLVM needs and this notice will be removed. Until then, you should 
-      obtain and build LLVM from CVS and keep it up to date regularly.</li>
-  </ol>
-  </div>
-  
-  <p>Additionally, your compilation host is expected to have the usual Unix 
-  utilities, specifically:</p>
-  <ul>
-    <li><b>ar</b> - archive library builder</li>
-    <li><b>gzip*</b> - gzip command for distribution generation</li>
-    <li><b>gunzip*</b> - gunzip command for distribution checking</li>
-    <li><b>ranlib</b> - symbol table builder for archive libraries</li>
-    <li><b>tar</b> - tape archive for distribution generation</li>
-  </ul>
-</div>
-
-<!-- *********************************************************************** -->
-<h2><a name="other_packages">Building Other Packages</a></h2>
-<!-- *********************************************************************** -->
-<div class="text">
-  <h3><a name="SSIA">Single Separate Install Area</a></h3>
-  <p>It is suggested that you keep a separate installation area for building the
-  things upon which HLVM depends. This is the location in your file system where
-  you will install the built packages. It is the parameter to the 
-  <tt>--prefix</tt> options to the configure programs of those packages. By 
-  using a separate install area, you ensure that the HLVM version of required 
-  packages doesn't interfere with any of your system installed packages.</p>
-  <h3><a name="libxml2">libxml2</a></h3>
-  <ul>
-    <li>If your system doesn't already have a modern version of libxml2, you can
-    generally build this quite painlessly as it doesn't depend on much
-    else.</li>
-    <li>You need a modern version of this package, in the 2.6 series, in order
-    to successfully build HLVM. HLVM uses the Relax/NG validator that was added
-    and improved in the 2.6 series of releases. Reid used 2.6.24 to develop HLVM
-    and you are advised to use that version or a later one.</li>
-    <li>See the <tt>README</tt> file in the libxml2 root directory.</li>
-    <li>Build with:<pre>
-    ./configure --prefix=/where/to/install 
-    make 
-    make install</pre></li>
-    <li>Use <tt>./configure --help</tt> to get a full list of libxml2's
-    configuration options; it has many. Not everything libxml2 provides is
-    needed. We need the parser, the textwriter and the relaxng validator.</li>
-  </ul>
-  <h3><a name="apr">apr</a></h3>
-  <ul>
-    <li>This package builds quite easily as well and doesn't depend on 
-    anything other than your operating system.</li>
-    <li>You need version 1.2.7 or later.</li>
-    <li>See the <tt>README.dev</tt> for build instructions.</li>
-    <li>Build with:<pre>
-    ./buildconf    #generates the configure script
-    ./configure --prefix=/where/to/install --enable-threads --enable-other-child
-    make
-    make install</pre></li>
-    <li>Optionally use the <tt>--enable-debug</tt> configure flag for making
-    debugging easier (and your HLVM programs run slower).</li>
-  </ul>
-  <h3><a name="apr-util">apr-util</a></h3>
-  <ul>
-    <li>This package builds quite easily and doesn't depend on much.</li>
-    <li>Build with:<pre>
-    ./buildconf    #generates the configure script
-    ./configure --prefix=/where/to/install --with-apr=/path/to/apr
-    make
-    make install</pre></li>
-    <li>apr-util provides ldap, dbm, and iconv services all of which HLVM will
-    eventually use. apr-util's <tt>configure</tt> script will generally be able
-    to figure out what your system has and use it. However, if it can't you
-    might want to use the various <tt>--with-*</tt> options to tell apr-util
-    where your packages are located.</li>
-  </ul>
-  <h3><a name="llvm">llvm</a></h3>
-  <ul>
-    <li>You <em>must</em> use the latest CVS version of LLVM. LLVM is HLVM's 
-    sister project and the two are intricately connected. Consequently, patches
-    are made to LLVM in order to satisfy HLVM's requirements. At some point,
-    this restriction will be lifted as a released version of LLVM will contain
-    all of HLVM's requirements. However, while in development you should
-    checkout the latest version of LLVM and keep it up to date.</li>
-    <li>Build with:<pre>
-    cd /path/to/llvm/
-    mkdir ../build
-    cd ../build
-    ../llvm/configure --prefix=/install/dir --with-llvmgccdir=/path/to/llvmgcc
-    make ENABLE_OPTIMIZED=1 tools-only
-    make tools-only
-    make install</pre></li>
-    <li><em>Note:</em> that you are actually building two copies of LLVM here. 
-    The first one is built with ENABLE_OPTIMIZED=1. This is for llvm-gcc4 to 
-    use and is optimized for quick compiles. The llvm-gcc4 configuration will 
-    know how to find the build targets of this optimized release version. The 
-    second build is a debug build for linking with HLVM. This ensures that you 
-    can debug into LLVM, should you need to.</li>
-    <li><em>Note:</em> that we only build the <tt>tools-only</tt> target. This
-    saves us from building the llvm-gcc3 runtime libraries and examples that we
-    won't use. It also gets around a chicken-and-egg problem where the LLVM
-    runtime libraries depend on llvm-gcc3 but llvm-gcc3 depends on the LLVM
-    tools being built. Use of llvm-gcc4 completely gets around this problem and
-    so it is only necessary to build the LLVM tools and not the runtime library.
-    </li>
-  </ul>
-  <h3><a name="llvm-gcc4">llvm-gcc4</a></h3>
-  <ul>
-    <li>You <em>must</em> use version 4 of llvm-gcc, not version 3. Version 4 is
-    much better integrated with LLVM, supports more languages, builds native
-    object files by default, and otherwise looks and acts more like a full gcc
-    compiler than did llvm-gcc3.</li>
-    <li>Obtain llvm-gcc4 source from 
-    <a href="http://nondot.org/sabre/2006-06-01-llvm-gcc-4.tar.gz">
-      http://nondot.org/sabre/2006-06-01-llvm-gcc-4.tar.gz</a></li>
-    <li>Alternatively, you can obtain a binary version of llvm-gcc4 for
-    x86 Linux (Fedora Core 3) from
-    <a href="http://llvm.org/2006-06-01-llvm-gcc4-linux-x86-binary.tar.gz">
-      http://llvm.org/2006-06-01-llvm-gcc4-linux-x86-binary.tar.gz</a></li>
-    <li>You <em>must</em> install llvm-gcc4 into an installation area that
-    is not used by any other software, particularly gcc. This is required
-    because you might clobber your compiler's runtime libraries and tools
-    otherwise. Just pick an installation directory where no other software is
-    installed.</li>
-    <li>See the <tt>README.LLVM</tt> in the top of the llvm-gcc4 source tree
-    if you're inclined to build llvm-gcc4 on your own. It isn't hard but there
-    are a few things you need to do correctly.</li>
-    <li>Basic build steps:<pre>
-    mkdir llvm-gcc
-    cd llvm-gcc
-    tar zxf llvm-gcc4-x.y.source.tar.gz
-    mkdir obj
-    mkdir install
-    cd obj
-    ../llvm-gcc4-x.y.source/configure --prefix=`pwd`/../install/ \
-      -enable-llvm=$LLVMOBJDIR --enable-languages=c,c++,objc,obj-c++
-    make
-    make install</pre></li>
-    <li><em>Note:</em> that the -enable-llvm option should specify the root of
-    the build directory in which LLVM was built. If you built LLVM according to
-    the instructions above, this directory will contain directories named
-    <tt>Release</tt> and <tt>Debug</tt>. llvm-gcc4 will look for its tools in
-    the <tt>Release</tt> directory.</li>
-    <li><em>Note:</em> that the --enable-languages option shown above provides
-    the complete list of languages that could be built with llvm-gcc4. However,
-    HLVM only needs C and C++ so you can shorten the build for llvm-gcc4 a
-    little by dropping <tt>,objc,obj-c++</tt> from this option.</li>
-  </ul>
-  <h3><a name="gperf">gperf</a></h3>
-  <ul>
-    <li>Pretty simple tool to build.</li>
-    <li>You need version 2.7.2. HLVM hasn't been tried with any other
-    version.</li>
-    <li>Build with:<pre>
-    ./configure --prefix=/install/path
-    make
-    make install</pre></li>
-  </ul>
-  <h3><a name="deja-gnu">deja-gnu/</a></h3>
-  <ul>
-    <li>Simple tool to build</li>
-    <li>You need version 1.4.4 or later</li>
-    <li>Build with:<pre>
-    ./configure --prefix=/install/path
-    make
-    make install</pre></li>
-  </ul>
-</div>
-
-<h2><a name="building">Building HLVM With SCons</a></h2>
-<div class="text">
-  <h3><a name="quick">Quick Start</a></h3>
-  <p>If you took our advice and built all dependent packages (except llvm-gcc4)
-  into a separate install area, then you can build HLVM quickly by using this
-  command:</p><pre>
-  scons -Q mode=debug confpath=/path/to/llvm-gcc4/install:/path/to/install</pre>
-  <p>The <tt>confpath</tt> option indicates to the HLVM build system some 
-  additional places to search for software. The first path should be the 
-  location in which the llmv-gcc4 software was installed. The second path should
-  be the <a href="#SSIA">Single Separate Install Area</a> where you installed 
-  all the other packages such as llvm, apr, apr-util, etc.</p>
-
-  <h3><a name="about_scons">About SCons And HLVM</a></h3>
-  <p>HLVM uses the SCons tool for software construction. While <tt>make</tt> 
-  and the various <tt>auto*</tt> tools were originally used, the full
-  programming language support of SCons (Python) was attractive because of the
-  platform support and the need to do intricate things to build HLVM. HLVM's
-  use of SCons departs a bit from the norm because SCons doesn't provide
-  everything that HLVM needs.  If you
-  are not familiar with SCons, we recommend you take a quick peek at the
-  <a href="http://www.scons.org/doc/0.96.92/HTML/scons-user.html">SCons User 
-    Manual</a>. While an in depth knowledge is not needed to build HLVM, having
-  some understanding of scons will definitely help.</p>
-  <p>The details on using scons for HLVM can be found in the 
-  <a href="DevelopersGuide.html">Developer's Guide</a>, but here's a precis to
-  help you get started:</p>
-  <ul>
-    <li>You can still use <tt>make</tt> as the <tt>Makefile</tt> in the top
-    level has the customary targets that will invoke the corresponding
-    <tt>scons</tt> command.</li>
-    <li>HLVM uses a number of customizations to the facilities provided in order
-    to keep the SConstruct and SConscript files minimized. These facilities are
-    provided in a Python module named <tt>build</tt> at the root directory. This
-    departure was necessary in order to hide the implementation details of many
-    of the build rules and configuration details that HLVM requires.</li>
-    <li>An important thing to know is that configuration is done on every build.
-    However, if the dependencies haven't changed, the result is cached and this
-    runs quite quickly. This is a huge help to the project because it
-    automatically detects environment changes and reconfigures HLVM accordingly
-    which saves time and also catches problems very early.</li>
-    <li>There are numerous configuration options available. You should use the
-    <tt>scons -Q --help</tt> option to get a description of all of them.</li>
-    <li>Configuration options are saved in cache files so you don't have to keep
-    repeating them on each invocation of <tt>scons</tt></li>
-  </ul>
-  <h3><a name="scons_options">SCons Options Supported</a></h3>
-  <p>The important options that may be given on the scons command line are:</p>
-  <ul>
-    <li><em>-Q</em>. Normally scons is quite verbose about all the
-    configuration checks it is doing. This option just tells scons to be quiet
-    about such things.</li>
-    <li><em>--prefx=/path/to/install/dir</em>. This option tells the build
-    system where HLVM should be installed. The default is <tt>/usr/local</tt>.
-    </li>
-    <li><em>confpath=&lt;path&gt;</em>. This option provides a colon (:)
-    separated list of paths to search when configuring HLVM. This is handy if
-    you normally install your software in an unusual place. For example, some
-    of our developers install software to <tt>/proj/install</tt> or 
-    <tt>/more/install</tt>. By using this option, the configuration code will
-    search the paths for the packages and tools that it is looking for.
-    Furthermore, it will give priority to the <tt>confpath</tt> paths over the
-    regular places that it looks.</li>
-    <li><em>mode=&lt;mode_name&gt;</em>. This gives a name to your
-    configuration. You can replace <tt>&lt;mode_name&gt;</tt> with any name
-    you like.  For example you might think of your configuration as
-    "debug" or "optimized". When you name a configuration this way, your
-    configuration parameters will be saved in a file named
-    <tt>.&lt;mode_name&gt;_options</tt>. To repeat the options specified the
-    first time, simply issue the command <tt>scons mode=&lt;mode_name&gt;</tt>
-    and all your configuration options will be read from the cache file.</li>
-    <li><em>debug=0|1</em>. This turns debug mode on and off. Debug mode
-    causes the compiler to emit debug symbols and turns on the HLVM_DEBUG
-    pre-processor symbol so that debug code can be included.</li>
-    <li><em>assertions=0|1</em>. This turns assertions on or off. This is
-    separate from debug because we might want to have a release or optimized
-    version that includes assertions but not debug code.</li>
-    <li><em>inline=0|1</em>. This controls whether the compiler should emit
-    inline functions as real functions or attempt to inline them. When
-    building a version you intend to debug with <tt>gdb</tt>, it is often
-    handy to turn this off. You pay a performance penalty but it is also much
-    easier to debug the code.</li>
-    <li><em>optimize</em>. This option tells the compiler to optimize the
-    generated code. This may make it difficult to debug the resulting program.
-    However, it will also make the program run much faster.</li>
-    <li><em>with_*</em>. There are a variety of options that are prefixed with
-    <tt>with_</tt>, for example <tt>with_llvm</tt> or <tt>with_apr</tt>. Thise
-    options allow you to tell scons where a specific package is located on
-    your system. See the <tt>scons -Q --help</tt> output for a full list of
-    these options.</li>
-  </ul>
-  <h3><a name="targets">Build Targets</a></h3>
-  <p>The default build target will simply build all the libraries and tools. 
-  There are additional pseudo-targets (<i>aliases</i> in SCons lingo) that you 
-  can build:</p>
-  <ul>
-    <li><em>check</em>. This will run the Deja-Gnu test suite located in the
-    <tt>test</tt> directory. If you're making changes to HLVM, it is handy to
-    run this frequently to ensure that you haven't caused any regressions.
-    Patches that do not pass this test suite will not be accepted.</li>
-    <li><em>install</em>. This alias will install the HLVM header files,
-    libraries, tools and documentation to the install directory (which was
-    specified with the <tt>--prefix=</tt> configuration option).</li>
-    <li><em>docs</em>. By default, documentation is not built because it is
-    time consuming and not necessary for each build. When this alias is used,
-    the doxygen and XSLT generated documentation will be built.</li>
-  </ul>
-</div>
-
-<!-- *********************************************************************** -->
-<div class="section"><a name="make">Building HLVM With Make</a></div>
-<!-- *********************************************************************** -->
-<div class="text">
-  <p>If you don't want to learn how to use SCons, HLVM provides a 
-  <tt>Makefile</tt> that will invoke it for you. All the usual targets are 
-  provided.  To use this facility, simply do a local edit of the Makefile
-  and adjust the three variables:</p>
-  <dl>
-    <dt>MYMODE</dt>
-    <dd>Indicates the name of the build mode you want to build by default. This
-    can be any string, but it will be more useful if it is one of these:
-    <ul>
-      <li><em>Debug</em> - specifies a debug build with assertions turned on and
-      inline functions turned off. Initialize this build mode with 
-      <tt>make Debug</tt>.</li>
-      <li><em>Optimized</em> - specifies an optimized build with debug turned
-      off, inline turned on, and assertions turned on.  Initialize this build
-      mode with <tt>make Optimized</tt>.</li>
-      <li><em>Release</em> - specifies an optimized build with assertions turned
-      off and symbols stripped. Initialize this build with 
-      <tt>make Release</tt>.</li>
-      <li><em>Profile</em> - specifies an optimized profiling build with 
-      assertions turned off, inline turned on and with profiling options
-      suitable for profiling the tools with gmon. Initialize this build with 
-      <tt>make Profile</tt>.</li>
-    </ul></dd>
-    <dt>MYPATH</dt>
-    <dd>This provides a path for the 3rd party software that HLVM depends on.
-    You should change this path to match your local environment. If you don't
-    get this right then the first time you run scons, it will ask you to
-    manually enter paths for things like the APR library and LLVM.</dd>
-    <dt>MYPREFIX</dt>
-    <dd>This provides the directory into which HLVM will be installed. If it is
-    not specifed, the default will be /usr/local.</dd>
-  </dl>
-  <p>Once you've made these adjustments you can use the various targets in the
-  Makefile to build HLVM. Note that these targets just convert the target into
-  the appropriate invocation of the <tt>scons</tt> command.</p>
-  <h3><a name="make_targets">Targets Supported</a></h3>
-  <p>You can use the following targets to build HLVM in various ways:</p>
-  <dl>
-    <dt>all</dt>
-    <dd>Builds HLVM in the default mode, as specified by <em>MYMODE</em>.
-    Typically this is a Debug build.</dd>
-    <dt>debug Debug</dt>
-    <dd>This builds HLVM in a mode named "Debug" and sets the various options
-    appropriately for a debug build. You should use this target the first time 
-    you want a Debug build.</dd>
-    <dt>optimized Optimized</dt>
-    <dd>This builds HLVM in a mode named "Optimized" and sets the various 
-    options appropriately for an optimized build. You should use this target 
-    the first time you want an Optimized build.</dd>
-    <dt>release Release</dt>
-    <dd>This builds HLVM in a mode named "Release" and sets the various options
-    appropriately for a release build. You should use this target the first
-    time you want a Release build.</dd>
-    <dt>profile Profile</dt>
-    <dd>This builds HLVM in a mode named "Profile" and sets the various options
-    appropriately for an profiled build. You should use this target the first
-    time you want an Profile build.</dd>
-    <dt>check</dt>
-    <dd>This doesn't build HLVM but instead invokes the test suite via dejagnu.
-    Use this to make sure that your local modifications haven't caused any
-    regressions.</dd>
-    <dt>clean</dt>
-    <dd>This removes all the build targets that were previously built. The next
-    time you build the <tt>all</tt> target, everything will be rebuilt.</dd>
-    <dt>doc</dt>
-    <dd>This builds the documentation for HLVM. It will run doxygen and xsltproc
-    to build the generated portion of the documentation.</dd>
-    <dt>hlvm</dt>
-    <dd>This provides a partial build of HLVM. It descends into the 
-    <tt>hlvm</tt> directory and builds only the libraries located there.</dd>
-    <dt>install</dt>
-    <dd>This will installed HLVM libraries, headers and executable tools into 
-    the directory named by the <em>MYPREFIX</em> variable.</dd>
-    <dt>tools</dt>
-    <dd>This provides a partial build of HLVM. It skips building the libraries 
-    in the <tt>hlvm</tt> directory and instead descends into the <tt>tools</tt>
-    and builds the executable tools there.</dd>
-  </dl>
-  <h3><a name="tipsntricks">Tips And Tricks</a></h3>
-  <ul>
-    <li><em>Override MYMODE</em>. On the <tt>make</tt> command line you can
-    override the value of <tt>MYMODE</tt> makefile variable. This allows you to
-    use any of the usual targets with a different build mode. For example,
-    suppose your <tt>Makefile</tt> specifies a value of "Debug" for
-    <tt>MYMODE</tt>. This situation indicates that the "Debug" configuration
-    will be used for all regular builds. However, if you want to install the
-    Release version, say, you could issue this command:<pre>
-    make install MYMODE=Release</pre></li>
-  </ul>
-</div>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/OpenProjects.html b/hlvm/docs/OpenProjects.html
deleted file mode 100644
index e1b973f..0000000
--- a/hlvm/docs/OpenProjects.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!--#set var="title" value="Open Projects" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Open HLVM Projects</h1>
-<ul>
-  <li><a href="#what">What is this?</a></li>
-  <li><a href="#code">Coding Projects</a></li>
-  <li><a href="#cleanup">Cleanup Projects</a></li>
-  <li><a href="#doc">Documentation Projects</a></li>
-  <li><a href="#test">Testing Projects</a></li>
-  <li><a href="#misc">Miscellaneous Projects</a></li>
-</ul>
-
-<h2><a name="what">What is this?</a></h2>
-<div class="text">
-<p>This document is a "TODO" list for HLVM.  Each project in this document is 
-something that would be useful for HLVM to have, and would also be a great way 
-to get familiar with the system.  Some of these projects are small and 
-self-contained, which may be implemented in a couple of days. Others are 
-larger.  In any case, we welcome all contributions.</p>
-
-<p>If you are thinking about tackling one of these projects, please send a mail
-to the <a href="/hlvm-dev.shtml">HLVM Developer's</a> mailing 
-list, so that we know the project is being worked on.  Additionally this is a 
-good way to get more information about a specific project or to suggest other 
-projects to add to this page.</p>
-</div>
-
-<h2><a name="code">Coding Projects</a></h2>
-<div class="text">
-  <p>Projects in the list below are related to working on software code</p>
-  <ol>
-    <li><em>ANTLR Front End</em>. We need to investigate the use of
-    <a href="http://www.antlr.org/">ANTLR</a> (ANother Tool for Language
-    Recognition) as a possible front end lexer/parser for HLVM. Ideally I would
-    like to see a set of C++ constructs to make mapping from a source language
-    to the HLVM AST very simple. For example, a simple set of macros or
-    functions that build an HLVM AST could be used as the semantic actions for a
-    grammar. This task is to analyze the suitability of ANTLR for HLVM.</li>
-    <li><em>RNG->XHTML XSLT Stylesheet</em>. We will use the Relax/NG grammar
-    for the XML version of the AST to document the AST. However, the Relax/NG
-    specification is not particularly user friendly. What we need is a way to
-    publish (in XHTML) the specification with descriptive documentation. A
-    fairly straightforward XSLT stylsheet to translate Relax/NG to XHTML should
-    do nicely. This is a nice self-contained project for someone who knows
-    XSLT and can understand Relax/NG.</li>
-    <li><em>APR Abstractions</em>. The runtime portion of HLVM will use APR
-    as its portability layer. However, APR is written in C and not particularly
-    object-oriented. We need some of the things APR supports to be wrapped in
-    simple C++ classes that take care of the book keeping such as deleting APR
-    objects at the right time.  Abstracts we need to wrap, currently, are Pool
-    and File. These should go in HLVM's "base" library.</li>
-    <li><em>Yaml Reader/Writer</em>. We intend to support a reader and
-    writer of the AST in Yaml syntax. Some people just don't like XML and having
-    an alternate way to build the AST from a nicer-to-read source would be
-    useful in helping some people comprehend HLVM. The design should be very
-    similar to the XML Reader/Writer and be based on the Syck library.</li>
-    <li><em>Range Check Code Gen</em>. This is a well contained project having
-    to do with emitting LLVM code to do range checking for RangeType
-    variables. RangeType's are currently treated like integers without range
-    checking.</li>
-    <li><em>Use Google hashmaps</em>. We would like to convert HLVM away from
-    the slow and bulky STL maps currently being used to google's open source
-    maps such as <tt>dense_hash_map</tt> and <tt>sparse_hash_map</tt>. However,
-    to do this, several things need to be resolved: 
-    <ol>
-      <li>Do we incorporate the code into HLVM, or build it separately and
-      reference it when configuring HLVM? Its just a few header files, so the
-      former approach seems okay, but this needs to be investigated.</li>
-      <li>The google code exposes its "config.h" which will conflict with 
-      ours. It defines several macros from the config.h info and uses them
-      in <tt>sparsetable</tt> as well as other places.</li>
-      <li>Deciding whether to use sparse or dense versions of the hash maps
-      needs to be decided on a case-by-case basis. In general, where the map is
-      not expected to be large (like MultiOperator), dense should give us good
-      performance. In cases where the content could be large (like SymbolTable),
-      it might be wiser to use the sparse version. Same for the various maps
-      used in LLVMGenerator.cpp and LLVMEmitter.cpp.</li>
-      <li>Consider writing wrappers for these classes. Since we're going to
-      compile HLVM with LLVM (eventually), the wrappers would get discarded by
-      LLVM's inliner so the performance loss wouldn't be great.</li>
-    </ol>
-    </li>
-  </ol>
-</div>
-
-<h2><a name="cleanup">Cleanup Projects</a></h2>
-<div class="text">
-  <p>Projects in the list below are things that are missing or need to be
-  fixed.</p>
-  <ol>
-    <li><em>Enumerator Documentation</em>. Right now enumerators are simple
-    string values in the EnumerationType. This prevents documentation from being
-    associated with the Enumerators. This needs to be fixed so that
-    documentation can be associated with the enumerators.</li>
-  </ol>
-</div>
-<h2><a name="doc">Documentation Projects</a></h2>
-<div class="text">
-  <p>Projects in the list below are related to working on the projects
-  documentation.</p>
-  <ol>
-    <li><em>API Documentation</em>. Documenting the HLVM AST API is very
-    important. Currently it needs some work. Someone who knows Doxygen and 
-    would like to keep the documentation up to date would be very helpful.</li>
-    <li><em>Tool Documentation</em>. As HLVM produces tools, those tools need to
-    be documented in a POD file. Also, the packaging of the generated HTML and
-    INFO files leaves a little to be desired. In particular these file should be
-    available through the public web site</li>
-    <li><em>General Documentation</em>. General documentation about HLVM needs
-    to be written.</li>
-  </ol>
-</div>
-
-<h2><a name="test">Testing Projects</a></h2>
-<div class="text">
-  <p>Projects in the list below are related to testing software.</p>
-  <ol>
-    <li><em>AST Construction Tests</em>. In order to explore and test the AST 
-    node construction, we need to develop test cases that exercise these 
-    aspects of HLVM. These test cases are in the <tt>tests/xml2xml</tt>
-    directory.  They are snippets of XML to test construction of the
-    AST by using the hlvm-xml2xml program. Many of these test cases will
-    explore ideas for what should or shouldn't be in the AST.</li>
-    <li><em>Code Gen Tests</em>. In order to verify program correctness, a wide
-    variety of tests to check for correct code generation are needed. These test
-    are found in the <tt>tests/return0</tt> directory.  These are full HLVM 
-    programs written in the AST XML language that should return from main with 
-    a value of 0 if the test succeeds. They are intended to check control flow,
-    arithmetic, and other aspects of runtime behavior of the HLVM code 
-    generator and runtime system.</li>
-    <li><em>Negative Tests</em>. These are tests that provide invalid input to
-    HLVM to ensure that it doesn't crash but instead generates a nice error
-    message. There are no tests in this class yet. Help!</li>
-  </ol>
-</div>
-
-<h2><a name="misc">Miscellaneous Projects</a></h2>
-<div class="text">
-  <p>Here are some other things that need to get done.</p>
-  <ol>
-    <li>Add HLVM project to SourceForge.net</li>
-    <li>Add HLVM project to collab.net</li>
-    <li>Create a logo for the project</li>
-  </ol>
-</div>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/ReleaseNotes.html b/hlvm/docs/ReleaseNotes.html
deleted file mode 100644
index 7c0f3b7..0000000
--- a/hlvm/docs/ReleaseNotes.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--#set var="title" value="Release Notes" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Release Notes</h1>
-<ol>
-  <li><a href="#introduction">Introduction</a>
-  <li><a href="#new">What's New</a>
-  <ol>
-    <li><a href="#features">New Features</a></li>
-    <li><a href="#changes">Significant Changes</a></li>
-    <li><a href="#platforms">Platform Support</a></li>
-  </ol></li>
-  <li><a href="#problems">Known Problems</a></li>
-  <li><a href="#install">Installation Notes</a></li>
-</ol>
-
-<div class="author">
-  <p>Author: <a href="mailto:rspencer@reidspencer.com">Reid Spencer</a>.</p>
-</div>
-
-<h2><a name="introduction">Introduction</a></h2>
-<div class="text">
-  <p>Welcome to the High Level Virtual Machine (HLVM). This document contains 
-  the release notes for HLVM. Here we describe what's new, what changed, what
-  platforms are supported, known problems, and installation notes.</p>
-  <p>This document can be updated as things are discovered after the software 
-  is released. If you are reading this from the release files, you should go
-  to the <a href="/releases/">HLVM Releases Site</a>
-  to read the most recent version. If you are reading this from the SVN sources,
-  the release notes apply to the <i>next</i> release of HLVM, not the most
-  recent release.</p>
-  <p>For information on upcoming releases and future plans, please refer to the
-  <a href="/Plans.shtml">HLVM Release Plans</a> page.
-  <p>For more information on HLVM, please visit the main
-  <a href="/">HLVM web site</a>. If you have questions or
-  comments, you should send them to the 
-  <a href="/hlvm-dev.shtml">HLVM Developers List</a>
-</div>
-
-<h2><a name="new"><b>What's New</b></a></h2>
-<div class="text">
-  <p>This is the second public release of the High Level Virtual Machine. This 
-  is a very early pre-release, version 0.2. That is, HLVM is not complete yet 
-  and it doesn't do very much yet.  The main goal for this release is to get 
-  HLVM to be "Turing Complete".</p>
-  <h2><a name="features">New Features In HLVM 0.2</a></h2>
-  <p>Here are the main things accomplished in this release:</p>
-  <ol>
-    <li><em>hlvm-gentestcase</em>. This new tool will automatically generate XML
-    test cases for HLVM. This tool is incorporated into the test suite and will
-    randomly select 100 test cases of varying complexity and size.</li>
-  </ol>
-  <h2><a name="changes">Significant Changes in HLVM 0.2</a></h2>
-  <p>
-  <p>Here are things that have changed since the last release:</p>
-  <ol>
-    <li><em>Aliases Removed</em>. The original intent behind aliases was to
-    support some kind of "typedef" feature and provide alternate names for
-    types. However, since every type in HLVM is required to have an explicit
-    name and type identification is done by name, the alias feature was
-    redundant and not well aligned with the other types. Consequently it has
-    been removed.</li>
-  </ol>
-  <h2><a name="platforms">Platform Support</a></h2>
-  <p>HLVM is known to work on the following platforms:</p>
-  <ol>
-    <li>x86 machines running Linux (FC3, FC5, SuSE)</li>
-    <li>PPC machines running Mac OS/X (10.4 Tiger)</li>
-  </ol>
-  <p>HLVM probably runs on many other operating systems and hardware but the
-  developers have not yet tried them. If you are successful in bulding HLVM on
-  another platform, <i>please let us know!</i></p>
-</div>
-
-<h2><a name="problems"><b>Known Problems</b></a></h2>
-<div class="text">
-  <p>The main known problem with this release is that there isn't enough of HLVM
-  implemented to be useful in any significant way.</p>
-</div>
-
-<h2><a name="install"><b>Installation Notes</b></a></h2>
-<div class="text">
-  <p>Please see the <a href="GettingStarted.html">Getting Started Guide</a> that
-  accompanies these relese notes. </p>
-</div>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/ReleasePlans.html b/hlvm/docs/ReleasePlans.html
deleted file mode 100644
index f660965..0000000
--- a/hlvm/docs/ReleasePlans.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!--#set var="title" value="Release Plans" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Release Plans</h1>
-<div class="warning">
-WARNING: This document is <em>always</em> a work in progress.
-</div>
-<ol>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#releases">Release Index</a>
-    <ol>
-      <li><a href="#upcoming">Upcoming Releases</a></li>
-      <li><a href="#completed">Completed Releases</a></li>
-    </ol>
-  </li>
-  <li><a href="#status">Release Status</a>
-    <ol>
-      <li><a href="#current">Current Release</a></li>
-      <li><a href="#previous">Previous Releases</a></li>
-    </ol>
-  </li>
-  <li><a href="#features">Feature Definitions</a></li>
-</ol>
-
-<div class="author">
-  <p>Author: <a href="mailto:rspencer@reidspencer.com">Reid Spencer</a>.</p>
-</div>
-
-<h2><a name="introduction">Introduction</a></h2>
-<div class="text">
-  <p>This document contains the Release plans for HLVM. Each release is broken
-  down into a set of high-level features that we are intending to implement in
-  that release. For each release, we describe the features and provide a
-  completion matrix to help you track the progress.</p>
-  <p>One of the reasons we publish this information is so that developers can
-  see where they might be able to help. If you have an interest in implementing
-  one of the features, please contact us.</p>
-  <p><b class="warning">NOTE: </b>
-  This document is ephemeral. We change it all the time. It gets updated 
-  with our current plans for the definition of a release. As such, referring 
-  to it often will help you understand where HLVM is going in upcoming 
-  releases.  However, <em>nothing</em> within these plans should be relied 
-  upon or taken as a committment from the developers. Open Source projects 
-  proceed as time and talent permits and this one is no exception. We are 
-  simply trying to provide you with information about what is likely to 
-  occur in the next few releases.</p>
-</div>
-
-<h2><a name="releases"></a>Release Index</h2>
-<div class="text">
-  <table>
-    <tr>
-      <th style="width:15%">Release</th>
-      <th style="width:60%">Description</th>
-      <th style="width:10%">Status</th>
-      <th style="width:15%">Links</th>
-    </tr>
-    <tr>
-      <td>0.1</td>
-      <td>Hello World, AST Construction, Build System</td>
-      <td>100%</td>
-      <td><a href="#f0_1">Features</a>&nbsp;<a href="#s0_1">Status</a></td>
-    </tr>
-    <tr>
-      <td>0.2</td>
-      <td>Turing Complete, JIT Execution</td>
-      <td>55%</td>
-      <td><a href="#f0_2">Features</a>&nbsp;<a href="#current">Status</a></td>
-    </tr>
-    <tr>
-      <td>0.3</td>
-      <td>Front End Library, Object Model, Interpreted Execution</td>
-      <td>1%</td>
-      <td><a href="#f0_3">Features</a></td>
-    </tr>
-    <tr>
-      <td>0.4</td>
-      <td>Ruby Front End</td>
-      <td>0%</td>
-      <td><a href="#f0_4">Features</a></td>
-    </tr>
-    <tr>
-      <td>0.5</td>
-      <td>Scheme Front End</td>
-      <td>0%</td>
-      <td><a href="#f0_5">Features</a></td>
-    </tr>
-    <tr>
-      <td>0.6</td>
-      <td>Python Front End</td>
-      <td>0%</td>
-      <td><a href="#f0_6">Features</a></td>
-    </tr>
-    <tr>
-      <td>0.9</td>
-      <td>Quality Enhancements, Pre-Beta Touchups</td>
-      <td>0%</td>
-      <td><a href="#f0_9">Features</a></td>
-    </tr>
-  </table>
-</div>
-
-<h2><a name="status">Release Status</a></h2>
-<div class="text">
-  <p>This section provides the status for the current and previous releases.</p>
-</div>
-
-<h3><a name="current">Current Status (Release 0.2)</a></h3>
-<div class="text">
-  <p>The table below shows the status of the current release. Click the feature
-  name to get a complete description of the feature.</p>
-  <table>
-    <tr><th>Feature</th><th>Feature</th><th>Feature</th></tr>
-    <tr>
-      <td><a href="#integer">Integer Arithmetic Operators</a><br/>Done.</td>
-      <td><a href="#boolean">Boolean Arithmetic Operators</a><br/>Done.</td>
-      <td><a href="#floating">Floating Point Arithmetic Operators</a><br/>
-        Done except for code generation to integrate with runtime.</td>
-    </tr><tr>
-      <td><a href="#controlflow">Control Flow Operators</a><br/>Done.</td>
-      <td><a href="#blocknest">Block Nesting</a><br/>Done.</td>
-      <td><a href="#aggrconst">Aggregate Constants</a><br/>Done.</td>
-    </tr><tr>
-    <td><a href="#textops">Text Operators</a><br/>
-      String operators defined. Text operators to follow.</td>
-      <td><a href="#args">Program Arguments</a><br/>Changed to argc/argv.</td>
-      <td><a href="#jit">JIT Compilation</a><br/>Not Started.</td>
-    </tr><tr>
-      <td><a href="#tcgen">Test Case Generator</a><br/>
-        85% A few generation bugs remain.</td>
-      <td></td>
-      <td></td>
-    </tr>
-  </table>
-</div>
-
-<h3><a name="released">Previous Releases</a></h3>
-<div class="text">
-  <p>This section lists the final status information for previous releases.</p>
-</div>
-<h4><a name="s0_1">Release 0.1 (Hello World)</a></h4>
-<div class="text">
-  <table>
-    <tr><th>Feature</th><th>Feature</th><th>Feature</th></tr>
-    <tr>
-      <td><a href="#buildenv">Build Environment</a>
-        <br/>SCons is working well. All targets necessary for building, testing,
-        document generation, and installation are completed.
-      </td>
-      <td><a href="#testharn">Test Harness</a>
-        <br/>Dejagnu test harness implemented with 2 types of tests based on
-        available tools. This will grow as HLVM grows.
-      </td>
-      <td><a href="#ASTNodes">AST Nodes</a>
-        <br/>61 node classes implemented. The type system is complete. More
-        operators are defined than code generation permits.
-      </td>
-    </tr><tr>
-      <td><a href="#XMLReader">XML Reader</a>
-        <br/>Correctly reads and validates all 61 AST node classes implemented 
-        so far.
-      </td>
-      <td><a href="#XMLWriter">XML Writer</a>
-        <br/>Correctly generates XML for all 61 AST node classes implemente so
-        far.</td>
-      <td><a href="#xml2xml">hlvm-xml2xml</a>
-        <br/>Done. This tool will gain functionality as the XML Reader and XML
-        Writer libraries implement more node types to read/write.
-      </td>
-    </tr><tr>
-      <td><a href="#compiler">hlvm-compiler</a>
-        <br/>Sufficient code generation capabilities for "Hello, World"
-      </td> 
-      <td><a href="#vm">hlvm</a>
-        <br/>Provides output for "Hello World". Provides options processing.
-      </td>
-      <td><a href="#ASTsuite">AST Test Suite</a>
-        <br/>16 tests written in 2 categories.
-      </td>
-    </tr><tr>
-      <td colspan="3"><a href="#HelloWorld">Hello World</a><br/>Done.</td>
-    </tr>
-  </table>
-</div>
-
-<h2><a name="features">Feature Definitions</a></h2>
-<div class="text">
-  <p>This section defines the individual features for all releases.</p>
-</div>
-
-<h3><a name="f0_1">Release 0.1 Features (Hello World)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="buildenv"><em>Build Environment</em></a>. 
-    A multi-platform build system so software can be compiled properly.</li>
-    <li><a name="testharn"><em>Test Harness</em></a>. 
-    A deja-gnu based test framework to manage and execute the large number of 
-    test cases needed to verify that the HLVM system is working correctly.</li>
-    <li><a name="ASTNodes"><em>AST Nodes</em></a>.
-    Define and implement several (not all) AST nodes. The most fundamental 
-    nodes should be implemented: structuring, functions, blocks, arithmetic 
-    operators, constants, etc. The list will be expanded in subsequent releases.
-    </li>
-    <li><a name="XMLReader"><em>XML Reader</em></a>.
-    A library to read in an XML representation of the AST and generate the AST
-    C++ Nodes.</li>
-    <li><a name="XMLWriter"><em>XML Writer</em></a>.
-    A library to write out an XML representation of the Abstract Syntax
-    Tree.</li>
-    <li><a name="xml2xml"><em>hlvm-xml2xml</em></a>.
-    A program to convert XML AST documents back into XML. This tests the correct
-    construction of the AST as well as the pass management features.</li>
-    <li><a name="ASTsuite"><em>AST Test Suite</em></a>.
-    A suite of XML based test files need to be developed for use with the
-    hlvm_xml2xml program. All implemented aspects of the AST must be covered by
-    one or more test cases.</li>
-    <li><a name="compiler"><em>hlvm-compiler</em></a>.
-    A program to compile HLVM sources into something executable. This release
-    0.1 vesion will read in XML AST files and produce LLVM bytecode. Other 
-    options will be added in the future.</li>
-    <li><a name="vm"><em>hlvm machine</em></a>.
-    This program provides the runtime environment for executing HLVM
-    programs. This 0.1 version will read an LLVM bytecode file and JIT execute 
-    it. More features later.</li>
-    <li><a name="HelloWorld"><em>Hello World</em></a>.
-    Sufficient capabilities will be added to the runtime and compiler in order
-    to get the "Hello, World" program running.</li>
-  </ol>
-</div>
-
-<h3><a name="f0_2">Release 0.2 Features (Turing Complete)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="integer"><em>Integer Operators</em></a>. Extend the AST
-    library to support all the integer arithmetic operators 
-    such as add, subtract, multiply, divide, modulo, increment, decrement, 
-    bitwise operations, etc. Provide LLVM code generation support for these
-    operators.</li>
-    <li><a name="boolean"><em>Boolean Operators</em></a>. Extend the AST
-    library to support all the boolean operators such as and, or, not, and
-    the six comparison operators. Provide LLVM code generation support for these
-    operators.</li>
-    <li><a name="floating"><em>Floating Point Operators</em></a>. Extend the AST
-    library to support all the floating point arithmetic operators such as add,
-    subtract, multiply, divide, etc. Also include the operators that imply
-    library functions or LLVM intrinsics such as sqrt, power, etc.  Provide LLVM
-    code generation support for these operators.</li>
-    <li><a name="controlflow"><em>Control Flow Operators</em></a>. Extend the
-    AST library to support a set of control flow operators (if,while,for,switch)
-    and provide LLVM code generation for them.</li>
-    <li><a name="#blocknest"><em>Block Nesting</em></a><br/>Implement correct
-    code generation for nested blocks, block results, function results, return
-    operator, control flow operators with nested blocks, etc.</li>
-    <li><a name="#aggrconst"><em>Aggregate Constants</em></a><br/>Complete the
-    implementation of literal constants to include the aggregate constants for
-    pointers, arrays, vectors, structures and continuations. Also implement 
-    literal constants for the missing simple types: enumerator, any, range, 
-    octet, character, etc.</li>
-    <li><a name="textops"><em>Text Operators</em></a>. Extend the AST
-    library to provide a complete set of operators for manipulating strings of
-    text and the LLVM code generation for them.</li>
-    <li><a name="validate"><em>Validate Pass</em></a>. Finish the implementation
-    of the ValidatePass so that AST trees can be fully validated after
-    construction.</li>
-    <li><a name="args"><em>Program Arguments</em></a>. Extend the Runtime
-    library to correctly pass an HLVM program's arguments as an HLVM array of
-    text.</li>
-    <li><a name="tcgen"><em>Test Case Generator</em></a>. Write a test case
-    generator program that randomly generates test cases based on specifications
-    of operator complexity, type complexity, and size. Integrate this generator
-    with the dejagnu test framework to check a few random cases on each run of
-    the "check" target.</li>
-    <li><a name="jit"><em>JIT Compilation</em></a>. Extend the Runtime library
-    to support just-in-time compilation and execution via LLVM's JIT 
-    facilities.</li>
-  </ol>
-</div>
-
-<h3><a name="f0_3">Release 0.3 Features (Front End)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="frontend"><em>Front End Library</em></a>.
-    Add a new library to make it easy to build front end languages. The library
-    will assist with: lexical analysis, parsing, AST node generation, etc.</li> 
-    <li><a name="interp"><em>Interpreter</em></a>.
-    We will introduce the HLVM interpreter in this release. It will interpret
-    AST nodes directly and execute them.</li>
-  </ol>
-</div>
-
-<h3><a name="f0_4">Release 0.4 Features (Ruby)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="ruby"><em>Ruby Features</em></a>.
-    Add sufficient nodes to the system to support the language features of
-    Ruby.</li>
-    <li><a name="rubytest"><em>Ruby Tests</em></a>.
-    Add test cases that exercise the features added for Ruby. These are XML
-    based test cases, not Ruby source</li>
-  </ol>
-</div>
-
-<h3><a name="f0_5">Release 0.5 Features (Scheme)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="scheme"><em>Scheme Features</em></a>.
-    Add sufficient nodes to the system to support the language features of
-    Scheme.</li>
-    <li><a name="schemetest"><em>Scheme Tests</em></a>.
-    Add test cases that exercise the features added for Scheme. These are XML
-    based test cases, not Ruby source</li>
-  </ol>
-</div>
-
-<h3><a name="f0_6">Release 0.6 Features (Python)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="python"><em>Python Features</em></a>.
-    Add sufficient nodes to the system to support the language features of
-    Python.</li>
-    <li><a name="pythontest"><em>Python Tests</em></a>.
-    Add test cases that exercise the features added for Scheme. These are XML
-    based test cases, not Python source</li>
-  </ol>
-</div>
-
-<h3><a name="f0_9">Release 0.9 Features (Quality)</a></h3>
-<div class="text">
-  <ol>
-    <li><a name="refactor"><em>Refactoring</em></a>.
-    Review the entire HLVM source base and re-factor to common components
-    with the goal of software reuse and shrinkage of library sizes.</li>
-    <li><a name="fulltest"><em>Full Test Suite</em></a>.
-    Ensure that HLVM is covered by a full test suite that tests every aspect of
-    its functionality.</li>
-    <li><a name="quality"><em>Quality</em></a>.
-    Improve quality of HLVM at both compile and run times. This feature ensures
-    that HLVM will properly handle corner conditions, error situations,
-    exceptions, etc.</li>
-    <li><a name="optimize"><em>Performance Optimization</em></a>.
-    Analyze the compile and run time environments to ensure they are running at
-    optimal speeds. Ensure that the generated code can be optimized to run
-    efficiently.</li>
-    <li><a name="docs"><em>Documentation</em></a>.
-    Write sufficient documentation to cover usage of HLVM and programming with
-    HLVM</li>
-  </ol>
-</div>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/RngToXHTML.xsl b/hlvm/docs/RngToXHTML.xsl
deleted file mode 100644
index cffee0f..0000000
--- a/hlvm/docs/RngToXHTML.xsl
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?><!--*- XML -*-->
-
-<xsl:transform
-  version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:rng="http://relaxng.org/ns/structure/1.0"
-  xmlns:local="http://www.pantor.com/ns/local"
-  xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
-  exclude-result-prefixes="rng local a"
->
-<xsl:output method="xml" index="yes" encoding="utf-8" omit-xml-declaration="no"
-  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-  doctype-public="//W3C//DTD XHTML 1.0 Strict//EN"
-/>
-<xsl:template match="/">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <title>Relax NG Grammar Documentation</title>
-    <link rel="stylesheet" href="relaxng.css" type="text/css"/>
-  </head>
-  <body>
-    <h1>$X Grammar</h1>
-    <xsl:apply-templates/>
-  </body>
-</html>
-</xsl:template>
-
-<xsl:template match="/grammar">
-  <div class="contents">
-    <ul>
-      <xsl:for-each select="start">
-        <li><a href="#{@name}"><xsl:value-of select="@name"/></a></li>
-      </xsl:for-each>
-      <xsl:for-each select="define">
-        <li><a href="#{@name}"><xsl:value-of select="@name"/></a></li>
-      </xsl:for-each>
-    </ul>
-  </div>
-  <div class="descriptions">
-    <xsl:apply-templates name="start"/>
-    <xsl:apply-templates select="define"/>
-  </div>
-</xsl:template>
-
-<xsl:template match="start">
-  <h2>Start Pattern: <xsl:value-of select="@name"/></h2>
-</xsl:template>
-
-<xsl:template name="toc" match="//define">
-  <li><a href="#{@name}"><xsl:value-of select="@name"/></a></li>
-</xsl:template>
-
-<xsl:template name="define" match="//define">
-</xsl:template>
-
-</xsl:transform>
diff --git a/hlvm/docs/SConscript b/hlvm/docs/SConscript
deleted file mode 100644
index e96c1eb..0000000
--- a/hlvm/docs/SConscript
+++ /dev/null
@@ -1,44 +0,0 @@
-#===-- Build Script For docs ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-from os.path import join as pjoin
-Import('env')
-if 'install' in COMMAND_LINE_TARGETS:
-  hlvm.GetDoxygen(env)
-  hlvm.GetConfigFile(env)
-  hlvm.GetXSLTproc(env)
-  hlvm.InstallDocs(env,hlvm.GetFiles(env,'*.html')+['hlvm.css'])
-  env.XSLTproc('HLVM.rng.html',['RngToXHTML.xsl','#hlvm/Reader/HLVM.rng'])
-  hlvm.InstallDocs(env,'HLVM.rng.html')
-  env.ConfigFile('Doxyfile','Doxyfile.in')
-  env.Doxygen('doxygen.tar.gz','Doxyfile')
-  hlvm.InstallDocs(env,'doxygen.tar.gz')
-
-if 'doxy-install' in COMMAND_LINE_TARGETS:
-  hlvm.GetDoxygenInstall(env)
-  installtgt = '/var/www/sites/hlvm/apis/doxygen.tar.gz'
-  installsrc = 'doxygen.tar.gz'
-  env.DoxygenInstall(installtgt,installsrc)
-  env.Alias('doxy-install',installtgt)
-
-hlvm.Dirs(env,['tools'])
diff --git a/hlvm/docs/doxygen.css b/hlvm/docs/doxygen.css
deleted file mode 100644
index e240ead..0000000
--- a/hlvm/docs/doxygen.css
+++ /dev/null
@@ -1,85 +0,0 @@
-BODY { background: white; color: black; font-family: Verdana,Arial,sans-serif; }
-H1 { text-align: center; }
-H2 { text-align: center; }
-H3 { text-align: center; }
-CAPTION { font-weight: bold }
-A.qindex {}
-A.qindexRef {}
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-A:link {
-        cursor: pointer;
-        text-decoration: none;
-        font-weight: bolder;
-}
-A:visited {
-        cursor: pointer;
-        text-decoration: underline;
-        font-weight: bolder;
-}
-A:hover {
-        cursor: pointer;
-        text-decoration: underline;
-        font-weight: bolder;
-}
-A:active {
-        cursor: pointer;
-        text-decoration: underline;
-        font-weight: bolder;
-        font-style: italic;
-}
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #eeeeee;
-  font-size:95%; }
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: #f2f2ff; font-weight: bold; }
-TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
-TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
-TD.indexkey { 
-   background-color: #eeeeff; 
-   font-weight: bold; 
-   padding-right  : 10px; 
-   padding-top    : 2px; 
-   padding-left   : 10px; 
-   padding-bottom : 2px; 
-   margin-left    : 0px; 
-   margin-right   : 0px; 
-   margin-top     : 2px; 
-   margin-bottom  : 2px  
-}
-TD.indexvalue { 
-   background-color: #eeeeff; 
-   font-style: italic; 
-   padding-right  : 10px; 
-   padding-top    : 2px; 
-   padding-left   : 10px; 
-   padding-bottom : 2px; 
-   margin-left    : 0px; 
-   margin-right   : 0px; 
-   margin-top     : 2px; 
-   margin-bottom  : 2px  
-}
-span.keyword       { color: #008000 }
-span.keywordtype   { color: #604020 }
-span.keywordflow   { color: #e08000 }
-span.comment       { color: #800000 }
-span.preprocessor  { color: #806020 }
-span.stringliteral { color: #002080 }
-span.charliteral   { color: #008080 }
-
-.footer {
-        font-size: 80%;
-        font-weight: bold;
-        text-align: center;
-        vertical-align: middle;
-}
-.title {
-    font-size: 105%
-    font-weight: bold;
-    text-decoration: underline;
-    text-align: center;
-}
diff --git a/hlvm/docs/doxygen.footer b/hlvm/docs/doxygen.footer
deleted file mode 100644
index 02e048c..0000000
--- a/hlvm/docs/doxygen.footer
+++ /dev/null
@@ -1,7 +0,0 @@
-<hr/>
-<p class="footer">
-Generated on $datetime for $projectname version $projectnumber by
-<a href="http://www.doxygen.org/index.html">doxygen $doxygenversion</a><br/>
-Copyright &copy; 2006, Reid Spencer. All Rights Reserved.<br/>
-<a href="http://hlvm.llvm.org/" onmouseover="window.status='Go To HLVM Home Page';return true;" title="HLVM Home Page">HLVM Home Page</a>
-</p></body></html>
diff --git a/hlvm/docs/doxygen.header b/hlvm/docs/doxygen.header
deleted file mode 100644
index 583752b..0000000
--- a/hlvm/docs/doxygen.header
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
-  <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
-  <meta name="keywords" content="C++,HLVM,doxygen,High Level Virtual Machine,API,documentation"/>
-  <meta name="description" content="C++ source code API documentation for the High Level Virtual Machine (HLVM)."/>
-  <title>HLVM $projectnumber : $title </title>
-  <link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<p class="title">HLVM API Documentation</p>
diff --git a/hlvm/docs/doxygen.intro b/hlvm/docs/doxygen.intro
deleted file mode 100644
index c0c9537..0000000
--- a/hlvm/docs/doxygen.intro
+++ /dev/null
@@ -1,52 +0,0 @@
-//------------------------------------------------------------------------------
-// Copyright (C) 2002 eXtensible Systems, Inc. All Rights Reserved.
-//
-// This program is open source software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License (GPL) as published by
-// the Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version. You should have received a copy of the GPL in a
-// file named COPYING that was included with this program; if not, you can 
-// obtain a copy of the license through the Internet at http://www.fsf.org/
-// 
-// 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.
-//
-////////////////////////////////////////////////////////////////////////////////
-/// @file docs/doxygen.intro
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @brief HLVM documentation introduction.
-////////////////////////////////////////////////////////////////////////////////
-
-/// @mainpage HLVM: High Level Virtual Machine
-///
-/// @section main_intro Introduction
-/// Welcome to the High Level Virtual Machine (HLVM). 
-///
-/// This documentation describes the @b internal software that makes 
-/// up HLVM, not the @b external use of HLVM. There are no instructions
-/// here on how to use HLVM, only how to develop it. For usage instructions 
-/// please obtain the programmer's guide or user's guide for HLVM.
-///
-/// @section main_caveat Caveat
-/// This documentation is generated directly from the source code with doxygen. 
-/// Since HLVM is constantly under active development, what you're about to
-/// read is out of date! However, it may still be useful since  certain 
-/// portions of HLVM are relatively stable. When HLVM reaches 
-/// full stability (around release 0.9), this caveat will be removed and the 
-/// documentation will pertain to a specific release of the software. Until 
-/// then, refer back often to this page as it is updated between releases as 
-/// significant changes are made.
-///
-/// @section main_overview Overview
-/// HLVM is a comprehensive compiler development toolkit that targets dynamic
-/// languages and uses LLVM (Low Level Virtual Machine) for code generation. Its
-/// primary goal is to make it easier to develop a dynamic language by providing
-/// compilation tools, code generation, and the runtime environment.
-/// 
-/// We look forward to your future contributions.
-///
-/// @section main_changelog Change Log
-/// - Original Introduction written 4/05/2006 by Reid Spencer
diff --git a/hlvm/docs/hlvm.css b/hlvm/docs/hlvm.css
deleted file mode 100644
index f0d127a..0000000
--- a/hlvm/docs/hlvm.css
+++ /dev/null
@@ -1,182 +0,0 @@
-/* HLVM website style sheet */
-A:link {
-  color: #0000CC;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:visited {
-  color: #0000CC;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:hover {
-  color: #8888FF;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:active {
-  color: #8888FF;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-  font-style: italic;
-}
-ADDRESS IMG { 
-  float: right; 
-  width: 88px; 
-  height: 31px; 
-}
-ADDRESS { 
-  clear: right; 
-}
-B { font-weight: bolder; }
-BODY {
-  background: #f4f4f4;
-  color: #000000;
-  text-align: left;
-  line-height: normal;
-  letter-spacing: normal;
-  word-spacing: normal;
-  font-family: "Verdana,Arial,sans";
-  font-size: medium;
-  font-style: normal;
-  font-weight: normal;
-  font-variant: normal;
-  position: relative;
-  margin-left: 0em;
-  min-width: 400px;
-  width: 100%;
-  margin: 2px 2px 2px 2px;
-  padding: 0 0 0 0;
-  border: none;
-}
-DT { margin-top: 0.75em; font-weight: bold; color: #0000DD; }
-EM { color: #0000DD; font-style: italic; }
-H1 {
-  background: url("img/lines.png");
-  color: #EEEEFF;
-  border-top: 1px solid #CCEEFF;
-  border-bottom: 1px solid #CCEEFF;
-  text-align: center;
-  vertical-align: middle;
-  font-size: 140%;
-  font-weight: bold;
-  padding: 0.1em 0.1em 0.1em 0.1em; 
-  width: 100%;
-  margin-bottom: 0.3em; 
-}
-H2 {
-  border-top: 1px solid #000088;
-  border-bottom: 1px solid #000088;
-  background-color: #000088;
-  color: #EEEEFF;
-  text-align: left;  
-  font-size: 120%;
-  font-weight: bold;
-  width:60%;
-}
-H3 {
-  color: #EEEEFF;
-  background-color: #4444AA;
-  text-align: left;
-  text-decoration: underline;
-  font-size: 110%;
-  font-weight: bold;
-}
-H4 {
-  color: #EEEEFF;
-  text-align: left;
-  font-size: 105%;
-  font-weight: bold;
-}
-HR    { color: #0000AA; }
-I     { font-style: italic; }
-LI    { margin-top: 0.25em; }
-STRONG{ color: #0000FF; font-weight: bold }
-PRE   { font-size: 80%; }
-TABLE {
-  width: 95%;
-  font-size: 95%;
-  table-layout: auto;
-  border-collapse: collapse;
-  text-align: left;
-  vertical-align: top;
-  border: 2px dotted #0000AA;
-  margin: 4px;
-}
-TH {
-  color: #EEEEFF;
-  font-size: 105%;
-  font-weight: bold;
-  border: 2px solid #0000AA;
-  padding: 0px 4px 1px 4px;
-  text-align: left;
-  vertical-align: top;
-  background: url("img/lines.png");
-}
-TD {
-  margin: 4px;
-  border: 2px solid #0000AA;
-  text-align: left;
-  vertical-align: top;
-  padding: 0px 4px 1px 4px;
-}
-.author  { text-align: left; font-weight: bold; padding-left: 20pt }
-.warning { color: red; font-weight: bold; }
-.text    { text-align: left; padding-left: 20pt; padding-right: 10pt }
-.hilite  { color: blue; font-weight: bold; }
-.notes   { background: #fafafa; border: 1px solid #cecece; padding: 0.5em }
-.title,.section { 
-  margin-left: 0.1em;
-  margin-top: 24pt;
-  font-size: 20pt; 
-  text-align: center; 
-  font-weight: bold; 
-  background: url("img/lines.png");
-  border: 2px solid #0000AA;
-  color: #EEEEFF;
-}
-.section {
-  width: 80%;
-  text-align: left;
-}
-.sectiontitle, .subsection {
-  border-width: 1px;
-  border-style: solid none solid none;
-  text-align: center;
-  vertical-align: middle;
-  font-weight: bold; 
-  font-size: 16pt;
-  background-color: #000088;
-  color: #eeeeff;
-  padding: 0.1em 0.1em 0.1em .1em; 
-  width: 100%;
-  margin-bottom: 0.2em; 
-  margin-top: 0.3em;
-  margin-left: 0.5em;
-}
-.subsection {
-  width: 75%;
-  text-align: left;  
-  font-size: 13pt; 
-}
-.subsubsection { 
-  margin: 1.0em 0.5em 0.5em 0.5em;
-  font-weight: bold; font-style: oblique;
-  border-bottom: 1px solid #999999; font-size: 12pt;
-  width: 75%; 
-}
-.code { 
-  border: solid 1px gray; background: #eeeeee;
-  margin: 0 1em 0 1em; 
-  padding: 0 1em 0 1em;
-  display: table; 
-}
-.footer { 
-  text-align: center; 
-  font-size: 85%;
-  padding: 0 0 0 0 
-}
diff --git a/hlvm/docs/img/lines.png b/hlvm/docs/img/lines.png
deleted file mode 100644
index c9e6f36..0000000
--- a/hlvm/docs/img/lines.png
+++ /dev/null
Binary files differ
diff --git a/hlvm/docs/index.html b/hlvm/docs/index.html
deleted file mode 100644
index c4ff89e..0000000
--- a/hlvm/docs/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--#set var="title" value="Documentation Index" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1 class="title">HLVM Documentation Index</h1>
-<p>Below is the master index for all HLVM Documentation.</p>
-<table>
-  <tr><th>Users</th><th>Developers</th></tr>
-  <tr>
-    <td>
-      <ul>
-        <li><a href="DevelopersGuide.html#LGPL">License (LGPL)</a></li>
-        <li><a href="FAQ.html">Frequently Asked Questions</a></li>
-        <li><a href="ReleasePlans.html">Release Plans</a></li>
-        <li><a href="status/index.html">Status Updates</a></li>
-        <li><a href="Credits.html">Meet The Contributors</a></li>
-      </ul>
-    </td>
-    <td>
-      <ul>
-        <li><a href="GettingStarted.html">Getting Started Guide</a></li>
-        <li><a href="DevelopersGuide.html">Developer's Guide</a></li>
-        <li><a href="ReleaseNotes.html">Release Notes</a></li>
-        <li><a href="OpenProjects.html">Open Projects</a></li>
-      </ul>
-    </td>
-  </tr>
-</table>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/status/2006-04-25.html b/hlvm/docs/status/2006-04-25.html
deleted file mode 100644
index fbf7a25..0000000
--- a/hlvm/docs/status/2006-04-25.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--#set var="title" value="Status As Of April 25, 2006" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Status As Of April 25,2006</h1>
-<p>HLVM is just getting started. The idea was generated from some discussion on
-the LLVM IRC channel. There is much that needs to be done in order to get LLVM
-fully coherent as a virtual machine. While LLVM provides the raw materials, HLVM
-will provide the finished product.</p>
-<p>Current, we have been collecting resources. As of today, we have:</p>
-<ul>
-  <li>Four interested developers</li>
-  <li>Reserved hlvm.org domain name</li>
-  <li>Brought up a Subversion repository for the code</li>
-  <li>Built a <a href="/wiki/">wiki</a></li>
-  <li>Built an introductory web site</li>
-  <li>Discussed many ideas about what HLVM should be</li>
-  <li>Documented some architecture and data flow in the wiki</li>
-</ul>
-<p><a href="/docs/status/index.html">Back To Status Index</a></p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/status/2006-05-25.html b/hlvm/docs/status/2006-05-25.html
deleted file mode 100644
index 5d6f3e9..0000000
--- a/hlvm/docs/status/2006-05-25.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--#set var="title" value="Status As Of May 25, 2006" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Status As Of May 25, 2006</h1>
-<p>HLVM is moving along nicely. We have accomplished much in our first
-month:</p>
-<ul>
-  <li>A few new people became interested in HLVM (Hi laurence and Slant).</li>
-  <li>Everyone participated in making some design documentation in the wiki 
-  site. It was populated with some designs and a mind map.</li>
-  <li>Implemented 43 node types for the 
-  <a href="/apis/html/classhlvm_1_1AST.html">Abstract Syntax Tree (AST)</a>in 
-  C++. These represent the various program constructs (
-  <a href="/apis/html/classhlvm_1_1Bundle.html">Bundle</a>, 
-  <a href="/apis/html/classhlvm_1_1Program.html">Program</a>,
-  <a href="/apis/html/classhlvm_1_1Function.html">Function</a>,
-  <a href="/apis/html/classhlvm_1_1Variable.html">Type</a>,
-  <a href="/apis/html/classhlvm_1_1Variable.html">Value</a>,
-  <a href="/apis/html/classhlvm_1_1Variable.html">Variable</a>,
-  <a href="/apis/html/classhlvm_1_1Block.html">Block</a>,
-  <a href="/apis/html/classhlvm_1_1Operator.html">Operator</a>, etc.) that can 
-  be defined by a source language. There are also a few super-classes 
-  (
-  <a href="/apis/html/classhlvm_1_1Node.html">Node</a>, 
-  <a href="/apis/html/classhlvm_1_1Documentable.html">Documentable</a>,
-  <a href="/apis/html/classhlvm_1_1LinkageItem.html">LinkageItem</a>) to allow 
-  identification of categories of the AST nodes. See the 
-  <a href="/apis/html/hierarchy.html">class hierarchy</a> for more details.
-  A simple model for AST construction was adopted, that of "setParent".
-  To insert a node, you simply tell it which node is its parent. The parent
-  node then "owns" that child node.</li>
-  <li>Implemented an 
-  <a href="/apis/html/classhlvm_1_1XMLReader.html">XMLReader</a> based on 
-  libxml2 to convert XML into AST nodes. This library uses the 
-  <a href="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng">HLVM grammar</a> to
-  validate an XML document that corresponds to the structure of the Abstract
-  Syntax Tree.
-  This is how we populate the AST in memory.</li>
-  <li>Implemented a 
-  <a href="/apis/html/classhlvm_1_1Pass.html">Pass</a> and 
-  <a href="/apis/html/classhlvm_1_1PassManager.html">PassManager</a> 
-  infrastructure for traversals through the AST. Passes can ask for pre-order, 
-  post-order and both-order calls as the PassManager traverses the tree. This 
-  gives us a single location in which the logic for walking the HLVM AST is 
-  implemented.</li>
-  <li>Implemented an 
-  <a href="/apis/html/classhlvm_1_1XMLWriter.html">XMLWriter</a> based on 
-  libxml2 to convert AST nodes into XML. This is the converse of the reader. 
-  It takes an in-memory AST and generates XML output. The XMLWriter uses an 
-  HLVM Pass to walk the tree.</li>
-  <li>Implemented the 
-  <a href="/src/tools/hlvm-xml2xml/hlvm-xml2xml.cpp">hlvm-xml2xml</a> tool to 
-  convert XML -&gt; AST -&gt; XML. This is simply a combination of the 
-  XMLReader, AST, and XMLWriter. Its purpose is to provide the means for 
-  testing AST construction and validation.</li>
-  <li>Implemented the beginnings of a validation pass to validate the AST
-  nodes. This pass is now invoked from the hlvm-xml2xml program to validate that
-  what was read is a legal AST.</li>
-  <li>Started an implementation of a type resolving pass to assist with forward
-  references in the tree and resolve them to their actual types.</li>
-  <li>Implemented 12 test cases via deja-gnu to exercise AST construction with 
-  the hlvm-xml2xml program. These implement an identity test where the output
-  must match the input exactly. All tests pass as of this date.</li>
-  <li>David began preparing additional test cases, as XML documents, to explore
-  the AST nodes that are needed in HLVM, based on a review of Ruby.</li>
-  <li>Completely rewrote the build system to use scons. The Makefile system,
-  although working, was difficult to maintain and modify. scons gives us much
-  more flexibility and some new capabilities as well.</li>
-  <li>Got the doxygen documentation to auto-build and generated it to the public
-  web site.</li>
-  <li>David started work on documenting the AST specification in the HLVM.rng
-  grammar (Relax/NG grammar for the Abstract Syntax Tree). We'll use XSLT to 
-  convert this to HTML so we have one source for specifying and documenting 
-  the AST nodes.</li>
-  <li>David got HLVM to build on Mac OS/X.</li>
-  <li>Saem got HLVM to build on SuSE Linux.</li>
-  <li>Reid got HLVM to build on Fedora Core 3</li>
-</ul>
-<p><a href="/docs/status/index.html">Back To Status Index</a></p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/status/2006-06-30.html b/hlvm/docs/status/2006-06-30.html
deleted file mode 100644
index 517baa5..0000000
--- a/hlvm/docs/status/2006-06-30.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--#set var="title" value="Status As Of June 30, 2006" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Status As Of June 30, 2006</h1>
-<p>HLVM has made significant progress in the last month. Here is the
-status of HLVM as of Subversion revision #358.</p>
-<h2>General Update</h2>
-<ul>
-  <li>The first release (0.1) was made on June 13th, 2006. This release 
-   provided the "Hello World" functionality. For details, please see the 
-  <a href="/releases/0.1/docs/ReleaseNotes.html">Release Notes</a>.</li>
-  <li>Since the release we've been working on making HLVM "Turing Complete"
-  (using the usual loose definition).</li>
-  <li>We are now about half way through the 0.2 functionality set.</li>
-</ul>
-<h2>Functionality Changes</h2>
-<ul>
-  <li>There are now 138 node types in the AST. Most of these are the new
-  arithmetic and Boolean operators.</li>
-  <li>A full set of arithmetic operators for both integer and floating point 
-  arithmetic was implemented.</li>
-  <li>Constant values for simple types are implemented, but not yet for
-  container types.</li>
-  <li>A full set of Boolean operators for comparisons and other logic was
-  implemented.</li>
-  <li>There are now four types of loop operators, a select (if) operator,
-  automatic variables and function call.</li>
-  <li>Nested blocks and loops are correctly handled including the use of the
-  <tt>break</tt> and <tt>continue</tt> operators.</li>
-  <li>The "void" type was removed in favor of just using a null type pointer as
-  necessary. This gets around issues with "type has no size" problems. Without
-  void, all types have a size.</li>
-  <li>The HLVM run-time is now only dependent on APR. Previously it depended on
-  LLVM as well but this turned out to be problematic for linking.</li>
-  <li>A new <tt>hlvm-config</tt> program was written as the beginnings for a
-  standard <tt>*-config</tt> program. Currently it can dump out the Node IDs
-  (useful for debugging) and a few of the configured variables.</li>
-  <li>The validation pass is now much more discerning with significant
-  improvements in the checking it does.</li>
-</ul>
-<h2>Test Case Changes</h2>
-<ul>
-  <li>There is a new test suite named "invalid" which tests to make sure that
-  HLVM tools will generate appropriate error messages on invalid input and not
-  let invalid trees be used. There are 21 test cases in this new suite.</li>
-  <li>The number of xml2xml test cases increased to 29 in order to test the 
-  construction of the new AST nodes for arithmetic and looping.</li>
-  <li>The number of "return0" test cases increased to 16 to test code generation
-  for more situations.</li>
-  <li>There is now a new "suites" option available to scons and "SUITES" for the
-  Makefile. This controls which test suites you want to run. For example, the
-  command <tt>make check SUITES=return0</tt> will run just the <tt>return0</tt>
-  test suite. Similarly for the scons invocation except with "suites".</li>
-</ul>
-<h2>Documentation Changes</h2>
-<ul>
-  <li>Saem is working on an XSLT program for translating Relax/NG grammars 
-  with annotations into XHTML. This will be how we document that AST in the
-  future.</li>
-  <li>Much of the documentation that was on the public web site has now been
-  incorporated into the <tt>docs</tt> directory of the HLVM source repository.
-  This makes it auto-update, keeps it included in releases, and removes the need
-  to use frames in the main web site.</li>
-  <li>The build system was significantly enhanced and documented. The
-  <a href="../../DevelopersGuide.html">Developers Guide</a> now contains a
-  complete list of commands used to build a "sane" development environment
-  including all the dependent software packages.</li>
-  <li>Doxygen generation was implemented using SCons.</li>
-  <li>A new FAQ was started to describe the differences between HLVM and other
-  virtual machines. It sill has some significant holes in it. Suggests would be
-  welcome.</li>
-</ul>
-<h2>Platform Support Changes</h2>
-<ul>
-  <li>Several new users got HLVM building on Mac OS/X.</li>
-  <li>Reid got HLVM to build on Fedora Core 5.</li>
-</ul>
-<h2>Other Changes and News</h2>
-<ul>
-  <li>David started working on a Lisp -&gt; AST program to explore ideas about
-  how to create the front end lexical and grammatical analysis portions of
-  HLVM.</li>
-  <li>The source directory structure was flattened out so that there is only
-  one level of directories under the <tt>hlvm</tt> source directory.</li>
-  <li>HLVM is now built with the GCC -pedantic flag ensuring the code can be
-  compiled on many compilers.</li>
-  <li>The build system now places all object files in the build directory. This
-  keeps the source directory nice and clean and makes it possible to get rid of
-  all generated output by removing the build directory.</li>
-</ul>
-<p><a href="/docs/status/index.html">Back To Status Index</a></p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/status/2006-08-01.html b/hlvm/docs/status/2006-08-01.html
deleted file mode 100644
index 9e0c78c..0000000
--- a/hlvm/docs/status/2006-08-01.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--#set var="title" value="Status As Of August 1, 2006" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Status As Of August 1, 2006</h1>
-<p>HLVM is steadily progressing towards release 0.2. Here is the 
-status of HLVM between revisions #359 and #438.</p>
-<h2>General Update</h2>
-<ul>
-  <li>Work is steadily progressing towards the 0.2 release. We are now about
-  75% done for the 0.2 release.</li>
-  <li>Most of the 0.2 milestones have already been accomplished. What remains 
-  is to finish up the real number arithmetic operators, finish the test case 
-  generator (and any bugs it turns up), and implement JIT execution via
-  LLVM.</li>
-  <li>Lines Of Code in HLVM: 31044</li>
-  <li>Lines Of Doc  in HLVM: 3282</li>
-  <li>Code Productivity: 443 loc/day</li>
-  <li>Total Productivity: 490 lines/day</li>
-  <li>Progress slowed a bit in July as Reid had to attend to an out-of-town
-  consulting engagement for two weeks.</li>
-</ul>
-<h2>Functionality Changes</h2>
-<ul>
-  <li>There are now 127 node types in the AST. This is down a bit from the
-  previous status update since the intrinsics were removed as separate node
-  types. Instead, they are just named instances of other node types.
-  </li>
-  <li>There is now an intrinsic type name tokenizer. The RNG file is in the
-  <tt>hlvm/AST/Intrinsics.rng</tt> file.
-  <li>All ConstantValue classes except ConstantExpression are implemented. It 
-  is now possible to represent a constant of all the types HLVM currently 
-  supports.</li>
-  <li>Resolved confusion about Arguments, Parameters, NamedTypes, NamedValues,
-  etc.</li>
-  <li>Removed the Alias type as it wasn't useful. Each type definition is an
-  alias for a type.</li>
-  <li>Removed the "atom" element from the XML syntax. It was redundant as we
-  now just use "intrinsic" directly.</li>
-  <li>Octet types and their literal constants are now implemented.</li>
-  <li>Bundles may no longer have empty content.</li>
-  <li>Significant improvements were made to the validation of AST trees.</li>
-  <li>The LLVMGenerator.cpp file got simplified by splitting out the LLVMEmitter
-  class which handles the LLVM instantiation and code generation state.</li>
-  <li>Linkables are now Constants because the address of a linkable (variable
-  or function) is constant (after linking).</li>
-  <li>Type resolution was re-implemented. It now handles recursive types
-  properly and is somewhat transparent.</li>
-  <li>The node dumper was vastly improved. It now uses new interfaces in the
-  PassManager to allow dumping of individual nodes (types, variables, functions,
-  operators, etc). You can access it from the debugger via 
-  <tt>hlvm::dump(Node*)</tt> function.</li>
-  <li>The IndexOp operator was broken into a two operators: GetIndexOp and 
-  GetFieldOp. The former for UniformContainerTypes, the latter for 
-  DisparateContainerTypes. This simplifies the whole business of indexing the
-  container types.</li>
-  <li>The ReferenceOp was renamed to GetOp since it is so frequently and the
-  word "get" more accurately describes its function.</li>
-  <li>Function argument handling is now implemented.</li>
-  <li>There is a new ConvertOp for type conversion of first-class values. It is
-  akin to the LLVM CastInst. Code generation for non-first-class values has not
-  yet been implemented.</li>
-  <li>The NInf, PInf, and NaN operators have been removed. There is no need to
-  provide operators for these values. Instead the IsPInf, IsNInf, and isNan
-  operators can be used to determine if a floating point value is one of the
-  special values.</li>
-</ul>
-<h2>Test Case Changes</h2>
-<ul>
-  <li>The main focus in the past month has been to get the automated test case
-  generator to generate better test cases. It now generates HLVM programs that
-  use most of the defined operators and types. Not all of them, however, result
-  in compilable tests. This will be remedied soon.</li>
-  <li>Numerous bugs have been found and fixed as a result of the test case
-  generator</li>
-</ul>
-<h2>Documentation Changes</h2>
-<ul>
-  <li>Not much progress here. Although it looks like I will be writing the
-  reference manual for the AST nodes soon.</li>
-  <li>One significant change: Chandler Carruth validated the "sanity" build
-  instructions in the Developer's Guide. He made several suggestions and
-  corrections to the documentation to ensure correct building of HLVM and all
-  its dependent software.</li>
-</ul>
-<h2>Other Changes and News</h2>
-<ul>
-  <li>None.</li>
-</ul>
-<p><a href="/docs/status/index.html">Back To Status Index</a></p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/status/index.html b/hlvm/docs/status/index.html
deleted file mode 100644
index 9742b47..0000000
--- a/hlvm/docs/status/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--#set var="title" value="Status Updates" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Status Updates</h1>
-<ul>
-  <li><a href="/docs/status/2006-08-01.html">August 1, 2006</a> - release 0.2 is
-  about 75% complete.</li>
-  <li><a href="/docs/status/2006-06-30.html">June 30, 2006</a> - released 0.1, 
-  HLVM on its way to being a full procedural language.</li>
-  <li><a href="/docs/status/2006-05-25.html">May 25, 2006</a> - implemented 
-  xml2xml and a test suite for testing AST construction</li>
-  <li><a href="/docs/status/2006-04-25.html">April 25, 2006</a> - basic web and 
-  svn framework completed so team can get work done.</li>
-</ul>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/docs/tools/SConscript b/hlvm/docs/tools/SConscript
deleted file mode 100644
index e9aeacd..0000000
--- a/hlvm/docs/tools/SConscript
+++ /dev/null
@@ -1,33 +0,0 @@
-#===-- Build Script For docs ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-from os.path import join as pjoin
-Import('env')
-if 'install' in COMMAND_LINE_TARGETS:
-  hlvm.GetPodGen(env)
-  srcs = hlvm.GetFiles(env,'*.pod')
-  htmls = env.Pod2Html(source=srcs)
-  mans = env.Pod2Man(source=srcs)
-  hlvm.InstallDocs(env,htmls)
-  hlvm.InstallDocs(env,'man.css')
-  hlvm.InstallMan(env,mans)
diff --git a/hlvm/docs/tools/hlvm.pod b/hlvm/docs/tools/hlvm.pod
deleted file mode 100644
index 3fbc4cd..0000000
--- a/hlvm/docs/tools/hlvm.pod
+++ /dev/null
@@ -1,43 +0,0 @@
-=pod
-
-=head1 NAME
-
-hlvm - HLVM Virtual Machine
-
-=head1 SYNOPSIS
-
-B<hlvm> [I<options>] I<program> I<program-options>
-
-=head1 DESCRIPTION
-
-B<hlvm> is the virtual machine tool for the High Level Virtual Machine. The
-I<program> parameter specifies the name of the program to run. The
-I<program-options> provide options to that program, not the B<hlvm> runtime. The
-I<options> control various aspects of how the program is run. These options are
-described below.
-
-=head1 OPTIONS
-
-=over
-
-=item B<--help> or B<-h>
-
-Show the usage help for this tool.
-
-=item B<--version> or B<-v>
-
-Show the version number of this tool.
-
-=back
-
-=head1 EXIT STATUS
-
-The B<hlvm> tool will return the exit code of the program that it runs. If a
-hard runtime error occurs, it will return the error number corresponding to that
-error (see hlvm/Runtime/Errors.h). 
-
-=head1 AUTHORS
-
-Written by Reid Spencer (L<http://hlvm.org>).
-
-=cut
diff --git a/hlvm/docs/tools/man.css b/hlvm/docs/tools/man.css
deleted file mode 100644
index b200343..0000000
--- a/hlvm/docs/tools/man.css
+++ /dev/null
@@ -1,256 +0,0 @@
-/* Based on http://www.perldoc.com/css/perldoc.css */
-
-@import url("../llvm.css");
-
-body { font-family: Arial,Helvetica; }
-
-blockquote { margin: 10pt;  }
-
-h1, a { color: #336699; }
-
-
-/*** Top menu style ****/
-.mmenuon { 
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #ff6600; font-size: 10pt;
- }
-.mmenuoff { 
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #ffffff; font-size: 10pt;
-}	  
-.cpyright {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #ffffff; font-size: xx-small;
-}
-.cpyrightText {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #ffffff; font-size: xx-small;
-}
-.sections { 
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: 11pt;
-}	 
-.dsections { 
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: 12pt;
-}	
-.slink { 
- font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
- color: #000000; font-size: 9pt;
-}	 
-
-.slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; }	 
-
-.maintitle { 
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: 18pt;
-}	 
-.dblArrow {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: small;
-}
-.menuSec {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: small;
-}
-
-.newstext {
- font-family: Arial,Helvetica; font-size: small;
-}
-
-.linkmenu {
- font-family: Arial,Helvetica; color: #000000; font-weight: bold;
- text-decoration: none;
-}
-
-P {
- font-family: Arial,Helvetica;
-}
-
-PRE {
-    font-size: 10pt;
-}
-.quote { 
- font-family: Times; text-decoration: none;
- color: #000000; font-size: 9pt; font-style: italic;
-}	
-.smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } 
-.std { font-family: Arial,Helvetica; color: #000000; } 
-.meerkatTitle { 
- font-family: sans-serif; font-size: x-small;  color: black;    }
-
-.meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black }
-.meerkatCategory { 
- font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; 
- color: brown; }
-.meerkatChannel { 
- font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; }
-.meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; }
-
-.tocTitle {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #333333; font-size: 10pt;
-}
-
-.toc-item {
- font-family: Arial,Helvetica; font-weight: bold; 
- color: #336699; font-size: 10pt; text-decoration: underline;
-}
-
-.perlVersion {
- font-family: Arial,Helvetica; font-weight: bold; 
- color: #336699; font-size: 10pt; text-decoration: none;
-}
-
-.podTitle {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #000000;
-}
-
-.docTitle {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #000000; font-size: 10pt;
-}
-.dotDot {
- font-family: Arial,Helvetica; font-weight: bold; 
- color: #000000; font-size: 9pt;
-}
-
-.docSec {
- font-family: Arial,Helvetica; font-weight: normal; 
- color: #333333; font-size: 9pt;
-}
-.docVersion {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: 10pt;
-}
-
-.docSecs-on {
- font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
- color: #ff0000; font-size: 10pt;
-}
-.docSecs-off {
- font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
- color: #333333; font-size: 10pt;
-}
-
-h2 {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: medium;
-}
-h1 {
- font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: large;
-}
-
-DL {
- font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
- color: #333333; font-size: 10pt;
-}
-
-UL > LI > A {
- font-family: Arial,Helvetica; font-weight: bold;
- color: #336699; font-size: 10pt;
-}
-
-.moduleInfo {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #333333; font-size: 11pt;
-}
-
-.moduleInfoSec {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
- color: #336699; font-size: 10pt;
-}
-
-.moduleInfoVal {
- font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline;
- color: #000000; font-size: 10pt;
-}
-
-.cpanNavTitle {
- font-family: Arial,Helvetica; font-weight: bold; 
- color: #ffffff; font-size: 10pt;
-}
-.cpanNavLetter {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; 
- color: #333333; font-size: 9pt;
-}
-.cpanCat {
- font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; 
- color: #336699; font-size: 9pt;
-}
-
-.bttndrkblue-bkgd-top {
-	background-color: #225688;
-	background-image: url(/global/mvc_objects/images/bttndrkblue_bgtop.gif);
-}
-.bttndrkblue-bkgd-left {
-	background-color: #225688;
-	background-image: url(/global/mvc_objects/images/bttndrkblue_bgleft.gif);
-}
-.bttndrkblue-bkgd {
-	padding-top: 0px;
-	padding-bottom: 0px;
-	margin-bottom: 0px;
-	margin-top: 0px;
-	background-repeat: no-repeat;
-	background-color: #225688;
-	background-image: url(/global/mvc_objects/images/bttndrkblue_bgmiddle.gif);
-	vertical-align: top;
-}
-.bttndrkblue-bkgd-right {
-	background-color: #225688;
-	background-image: url(/global/mvc_objects/images/bttndrkblue_bgright.gif);
-}
-.bttndrkblue-bkgd-bottom {
-	background-color: #225688;
-	background-image: url(/global/mvc_objects/images/bttndrkblue_bgbottom.gif);
-}
-.bttndrkblue-text a {
-	color: #ffffff;
-	text-decoration: none;
-}
-a.bttndrkblue-text:hover {
-	color: #ffDD3C;
-	text-decoration: none;
-}
-.bg-ltblue {
-	background-color: #f0f5fa;
-} 
-
-.border-left-b {
-	background: #f0f5fa url(/i/corner-leftline.gif) repeat-y;
-} 
-
-.border-right-b {
-	background: #f0f5fa url(/i/corner-rightline.gif) repeat-y;
-} 
-
-.border-top-b {
-	background: #f0f5fa url(/i/corner-topline.gif) repeat-x;
-} 
-
-.border-bottom-b {
-	background: #f0f5fa url(/i/corner-botline.gif) repeat-x;
-} 
-
-.border-right-w {
-	background: #ffffff url(/i/corner-rightline.gif) repeat-y;
-} 
-
-.border-top-w {
-	background: #ffffff url(/i/corner-topline.gif) repeat-x;
-} 
-
-.border-bottom-w {
-	background: #ffffff url(/i/corner-botline.gif) repeat-x;
-} 
-
-.bg-white {
-	background-color: #ffffff;
-} 
-
-.border-left-w {
-	background: #ffffff url(/i/corner-leftline.gif) repeat-y;
-} 
diff --git a/hlvm/hlvm/AST/AST.cpp b/hlvm/hlvm/AST/AST.cpp
deleted file mode 100644
index e09e422..0000000
--- a/hlvm/hlvm/AST/AST.cpp
+++ /dev/null
@@ -1,1485 +0,0 @@
-//===-- hlvm/AST/AST.cpp - AST Container Class ------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/AST.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::AST.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Locator.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/Documentation.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/Block.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/AST/SymbolTable.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/Base/Pool.h>
-#include <llvm/Support/Casting.h>
-
-using namespace hlvm;
-
-namespace hlvm 
-{
-
-AST::AST() 
-  : Node(TreeTopID), sysid(), pubid(), bundles(), pool(0)
-{
-  pool = Pool::create("ASTPool",0,false,1024,4,0);
-}
-
-AST::~AST()
-{
-}
-
-void 
-AST::insertChild(Node* child)
-{
-  hlvmAssert(llvm::isa<Bundle>(child) && "Can't insert that here");
-#ifdef HLVM_ASSERT
-  for (const_iterator I = begin(), E = end(); I != E; ++I)
-    hlvmAssert((*I) != child && "Attempt to duplicate insertion of child");
-#endif
-  bundles.push_back(llvm::cast<Bundle>(child));
-}
-
-void 
-AST::removeChild(Node* child)
-{
-  hlvmAssert(llvm::isa<Bundle>(child) && "Can't remove that here");
-  //FIXME: bundles.erase(llvm::cast<Bundle>(child));
-}
-
-void
-AST::setParent(Node* n)
-{
-  hlvmAssert(!"Can't set parent of root node (AST)!");
-}
-
-AST* 
-AST::create()
-{
-  return new AST();
-}
-
-void
-AST::destroy(AST* ast)
-{
-  delete ast;
-}
-
-URI* 
-AST::new_URI(const std::string& uri)
-{
-  URI* result = URI::create(uri,getPool());
-  return result;
-}
-
-Locator*
-AST::new_Locator(const URI* uri, uint32_t line, uint32_t col, uint32_t line2,
-    uint32_t col2)
-{
-  hlvmAssert(uri != 0);
-  if (line != 0)
-    if (col != 0)
-      if (line2 != 0 && col2 != 0)
-        return new RangeLocator(uri,line,col,line2,col2);
-      else
-        return new LineColumnLocator(uri,line,col);
-    else 
-      return new LineLocator(uri,line);
-  else
-    return new URILocator(uri);
-  hlvmDeadCode("Invalid Locator construction");
-  return 0;
-}
-
-Documentation* 
-AST::new_Documentation(const Locator* loc)
-{
-  Documentation* result = new Documentation();
-  result->setLocator(loc);
-  return result;
-}
-
-Bundle*
-AST::new_Bundle(const std::string& id, const Locator* loc)
-{
-  Bundle* result = new Bundle();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(this);
-  return result;
-}
-
-Import*
-AST::new_Import(const std::string& pfx, const Locator* loc)
-{
-  Import* result = new Import();
-  result->setLocator(loc);
-  result->setPrefix(pfx);
-  return result;
-}
-
-IntegerType* 
-AST::new_IntegerType(
-  const std::string& id, 
-  Bundle* bundle,
-  uint16_t bits, 
-  bool isSigned,
-  const Locator* loc)
-{
-  IntegerType* result = new IntegerType(bits,isSigned);
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-RangeType* 
-AST::new_RangeType(
-  const std::string& id, 
-  Bundle* bundle,
-  int64_t min, int64_t max, const Locator* loc)
-{
-  RangeType* result = new RangeType(min,max);
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-EnumerationType* 
-AST::new_EnumerationType(
-  const std::string& id,
-  Bundle* bundle,
-  const Locator* loc)
-{
-  EnumerationType* result = new EnumerationType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-RealType* 
-AST::new_RealType(
-  const std::string& id,  
-  Bundle* bundle,
-  uint32_t mantissa, 
-  uint32_t exponent,
-  const Locator* loc)
-{
-  RealType* result = new RealType();
-  result->setMantissa(mantissa);
-  result->setExponent(exponent);
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-AnyType* 
-AST::new_AnyType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  AnyType* result = new AnyType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-StringType* 
-AST::new_StringType(
-  const std::string& id, 
-  Bundle* bundle,
-  const std::string& encoding,
-  const Locator* loc)
-{
-  StringType* result = new StringType(encoding);
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-BooleanType* 
-AST::new_BooleanType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  BooleanType* result = new BooleanType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-BufferType* 
-AST::new_BufferType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  BufferType* result = new BufferType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-TextType* 
-AST::new_TextType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  TextType* result = new TextType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-StreamType* 
-AST::new_StreamType(
-  const std::string& id,  
-  Bundle* bundle,
-  const Locator* loc)
-{
-  StreamType* result = new StreamType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-CharacterType* 
-AST::new_CharacterType(
-  const std::string& id, 
-  Bundle* bundle,
-  const std::string& encoding,
-  const Locator* loc)
-{
-  CharacterType* result = new CharacterType(encoding);
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-PointerType* 
-AST::new_PointerType(
-  const std::string& id,
-  Bundle* bundle,
-  const Type* target,
-  const Locator* loc)
-{
-  PointerType* result = new PointerType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setElementType(target);
-  result->setParent(bundle);
-  return result;
-}
-
-ArrayType* 
-AST::new_ArrayType(
-  const std::string& id,
-  Bundle* bundle,
-  Type* elemType,
-  uint64_t maxSize,
-  const Locator* loc)
-{
-  ArrayType* result = new ArrayType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setElementType(elemType);
-  result->setMaxSize(maxSize);
-  result->setParent(bundle);
-  return result;
-}
-
-VectorType* 
-AST::new_VectorType(
-  const std::string& id,
-  Bundle* bundle,
-  Type* elemType,
-  uint64_t size,
-  const Locator* loc)
-{
-  VectorType* result = new VectorType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setElementType(elemType);
-  result->setSize(size);
-  result->setParent(bundle);
-  return result;
-}
-
-NamedType* 
-AST::new_NamedType(
-  const std::string& name, 
-  const Type* type,
-  const Locator* loc
-)
-{
-  NamedType* result = new NamedType();
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType(type);
-  return result;
-}
-
-StructureType*
-AST::new_StructureType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  StructureType* result = new StructureType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-ContinuationType*
-AST::new_ContinuationType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Locator* loc)
-{
-  ContinuationType* result = new ContinuationType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-SignatureType*
-AST::new_SignatureType(
-  const std::string& id, 
-  Bundle* bundle,
-  const Type* ty, 
-  bool isVarArgs,
-  const Locator* loc)
-{
-  SignatureType* result = new SignatureType();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setResultType(ty);
-  result->setParent(bundle);
-  return result;
-}
-
-OpaqueType*
-AST::new_OpaqueType(
-  const std::string& id, 
-  bool is_unresolved,
-  Bundle* bundle,
-  const Locator* loc)
-{
-  OpaqueType* result = new OpaqueType(id);
-  result->setLocator(loc);
-  if (is_unresolved)
-    result->setIsUnresolved(true);
-  else {
-    result->setIsUnresolved(false);
-    result->setParent(bundle);
-  }
-  return result;
-}
-
-ConstantAny* 
-AST::new_ConstantAny(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  ConstantValue* val,
-  const Locator* loc)
-{
-  ConstantAny* result = new ConstantAny(val);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantBoolean* 
-AST::new_ConstantBoolean(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  bool t_or_f, 
-  const Locator* loc)
-{
-  ConstantBoolean* result = new ConstantBoolean(t_or_f);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantCharacter* 
-AST::new_ConstantCharacter(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  const std::string& val,
-  const Locator* loc)
-{
-  ConstantCharacter* result = new ConstantCharacter(val);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType( type );
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantEnumerator* 
-AST::new_ConstantEnumerator(
-  const std::string& name,///< The name of the constant
-  Bundle* bundle,
-  const Type* Ty,         ///< The type of the enumerator
-  const std::string& val, ///< The value for the constant
-  const Locator* loc      ///< The source locator
-)
-{
-  ConstantEnumerator* result = new ConstantEnumerator(val);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType(Ty);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantInteger*
-AST::new_ConstantInteger(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  const std::string&  v, 
-  uint16_t base, 
-  const Locator* loc)
-{
-  ConstantInteger* result = new ConstantInteger(base);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setValue(v);
-  result->setBase(base);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantReal*
-AST::new_ConstantReal(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  const std::string& v, 
-  const Locator* loc)
-{
-  ConstantReal* result = new ConstantReal();
-  result->setLocator(loc);
-  result->setName(name);
-  result->setValue(v);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantString*
-AST::new_ConstantString(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  const std::string& v, 
-  const Locator* loc)
-{
-  ConstantString* result = new ConstantString();
-  result->setLocator(loc);
-  result->setName(name);
-  result->setValue(v);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantPointer* 
-AST::new_ConstantPointer(
-  const std::string& name,
-  Bundle* bundle,
-  const Type* type,
-  Constant* referent,
-  const Locator* loc
-)
-{
-  ConstantPointer* result = new ConstantPointer(referent);
-  result->setLocator(loc);
-  result->setName(name);
-  result->setType(type);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantArray* 
-AST::new_ConstantArray(
-  const std::string& name,
-  Bundle* bundle,
-  const ArrayType* AT,
-  const std::vector<ConstantValue*>& vals,
-  const Locator* loc
-)
-{
-  ConstantArray* result = new ConstantArray();
-  result->setLocator(loc);
-  result->setName(name);
-  for (std::vector<ConstantValue*>::const_iterator I = vals.begin(),
-       E = vals.end(); I != E; ++I ) 
-  {
-    result->addConstant(*I);
-  }
-  result->setType(AT);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantVector* 
-AST::new_ConstantVector(
-  const std::string& name,
-  Bundle* bundle,
-  const VectorType* VT,
-  const std::vector<ConstantValue*>& vals,
-  const Locator* loc
-)
-{
-  ConstantVector* result = new ConstantVector();
-  result->setLocator(loc);
-  result->setName(name);
-  for (std::vector<ConstantValue*>::const_iterator I = vals.begin(),
-       E = vals.end(); I != E; ++I ) 
-  {
-    result->addConstant(*I);
-  }
-  result->setType(VT);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantStructure* 
-AST::new_ConstantStructure(
-  const std::string& name,
-  Bundle* bundle,
-  const StructureType* ST,
-  const std::vector<ConstantValue*>& vals,
-  const Locator* loc
-)
-{
-  ConstantStructure* result = new ConstantStructure();
-  result->setLocator(loc);
-  result->setName(name);
-  hlvmAssert(ST->size() == vals.size());
-  StructureType::const_iterator STI = ST->begin();
-  for (std::vector<ConstantValue*>::const_iterator I = vals.begin(),
-       E = vals.end(); I != E; ++I ) 
-  {
-    hlvmAssert(STI != ST->end());
-    result->addConstant(*I);
-    ++STI;
-  }
-  result->setType(ST);
-  result->setParent(bundle);
-  return result;
-}
-
-ConstantContinuation* 
-AST::new_ConstantContinuation(
-  const std::string& name,
-  Bundle* bundle,
-  const ContinuationType* ST,
-  const std::vector<ConstantValue*>& vals,
-  const Locator* loc
-)
-{
-  ConstantContinuation* result = new ConstantContinuation();
-  result->setLocator(loc);
-  result->setName(name);
-  hlvmAssert(ST->size() == vals.size());
-  ContinuationType::const_iterator STI = ST->begin();
-  for (std::vector<ConstantValue*>::const_iterator I = vals.begin(),
-       E = vals.end(); I != E; ++I ) 
-  {
-    hlvmAssert(STI != ST->end());
-    result->addConstant(*I);
-    ++STI;
-  }
-  result->setType(ST);
-  result->setParent(bundle);
-  return result;
-}
-
-Variable*
-AST::new_Variable(
-  const std::string& id, 
-  Bundle* B,
-  const Type* Ty, 
-  const Locator* loc)
-{
-  Variable* result = new Variable();
-  result->setName(id);
-  result->setType(Ty);
-  result->setLocator(loc);
-  result->setParent(B);
-  return result;
-}
-
-Argument*
-AST::new_Argument(
-  const std::string& name, const Type* Ty, const Locator* loc)
-{
-  Argument* result = new Argument();
-  result->setName(name);
-  result->setType(Ty);
-  result->setLocator(loc);
-  return result;
-}
-
-Function*
-AST::new_Function(
-  const std::string& id, 
-  Bundle* B,
-  const SignatureType* ty, 
-  const Locator* loc)
-{
-  Function* result = new Function();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setType(ty);
-  for (SignatureType::const_iterator I = ty->begin(), E = ty->end(); 
-       I != E; ++I ) 
-  {
-    const Type* Ty = (*I)->getType();
-    assert(Ty && "Arguments can't be void type");
-    Argument* arg = new_Argument((*I)->getName(),Ty,loc);
-    result->addArgument(arg);
-  }
-  result->setParent(B);
-  return result;
-}
-
-Program*
-AST::new_Program(
-  const std::string& id, 
-  Bundle* B,
-  const Locator* loc)
-{
-  SignatureType* ty = B->getProgramType();
-  Program* result = new Program();
-  result->setLocator(loc);
-  result->setName(id);
-  result->setType(ty);
-  result->setLinkageKind(ExternalLinkage);
-  for (SignatureType::const_iterator I = ty->begin(), E = ty->end(); 
-       I != E; ++I ) 
-  {
-    const Type* Ty = (*I)->getType();
-    assert(Ty && "Arguments can't be void type");
-    Argument* arg = new_Argument((*I)->getName(),Ty,loc);
-    result->addArgument(arg);
-  }
-  result->setParent(B);
-  return result;
-}
-
-Block* 
-AST::new_Block( const Locator* loc)
-{
-  Block* result = new Block();
-  result->setLocator(loc);
-  return result;
-}
-
-AutoVarOp*
-AST::new_AutoVarOp(
-    const std::string& name, 
-    const Type* Ty, 
-    const Locator* loc)
-{
-  hlvmAssert(Ty != 0 && "AutoVarOp must have a Type!");
-  AutoVarOp* result = new AutoVarOp();
-  result->setType(Ty);
-  result->setLocator(loc);
-  result->setName(name);
-  return result;
-}
-
-GetOp* 
-AST::new_GetOp(const Value* V, const Locator*loc)
-{
-  hlvmAssert(V != 0 && "GetOp must have a Value to reference");
-  GetOp* result = new GetOp();
-  if (llvm::isa<AutoVarOp>(V) || 
-      llvm::isa<Argument>(V) ||
-      llvm::isa<Constant>(V)) {
-    result->setType(llvm::cast<Value>(V)->getType());
-  } else
-    hlvmAssert(!"Invalid referent type");
-  result->setLocator(loc);
-  result->setReferent(V);
-  result->setType(V->getType());
-  return result;
-}
-
-GetFieldOp* 
-AST::new_GetFieldOp(
-  Operator* op,
-  const std::string& name,
-  const Locator* loc
-)
-{
-  GetFieldOp* result = new GetFieldOp();
-  result->setLocator(loc);
-  result->setOperand(0,op);
-  result->setFieldName(name);
-  result->setType(result->getFieldType());
-  return result;
-}
-
-GetIndexOp* 
-AST::new_GetIndexOp(
-  Operator* op1,
-  Operator* op2,
-  const Locator* loc
-)
-{
-  GetIndexOp* result = new GetIndexOp();
-  result->setLocator(loc);
-  result->setOperand(0,op1);
-  result->setOperand(1,op2);
-  result->setType(result->getIndexedType());
-  return result;
-}
-
-ConvertOp*
-AST::new_ConvertOp(Operator* V, const Type* Ty, const Locator* loc)
-{
-  hlvmAssert(V != 0 && "ConvertOp must have a Value to convert");
-  hlvmAssert(Ty != 0 && "ConvertOp must have a type to convert the value");
-  ConvertOp* result = new ConvertOp();
-  result->setType(Ty);
-  result->setOperand(0,V);
-  result->setLocator(loc);
-  return result;
-}
-
-template<class OpClass> OpClass* 
-AST::new_NilaryOp(
-  const Type* Ty,    ///< Result type of the operator
-  const Locator* loc ///< The source locator
-)
-{
-  OpClass* result = new OpClass();
-  result->setLocator(loc);
-  result->setType(Ty);
-  return result;
-}
-
-template<class OpClass> OpClass* 
-AST::new_NilaryOp(
-  Bundle* bundle,    ///< Bundle, for type resolution
-  const Locator* loc ///< The source locator
-)
-{
-  return new_NilaryOp<OpClass>(static_cast<Type*>(0),loc);
-}
-
-/// Provide a template function for creating a unary operator
-template<class OpClass> OpClass* 
-AST::new_UnaryOp(
-  const Type* Ty,    ///< Result type of the operator
-  Operator* oprnd1,  ///< The first operand
-  const Locator* loc ///< The source locator
-)
-{
-  hlvmAssert(oprnd1 != 0 && "Invalid Operand for UnaryOp");
-  OpClass* result = new OpClass();
-  result->setLocator(loc);
-  result->setType(Ty);
-  result->setOperand(0,oprnd1);
-  return result;
-}
-
-template<class OpClass> OpClass* 
-AST::new_UnaryOp(
-  Operator* oprnd1,     ///< The first operand
-  Bundle* B,         ///< The bundle, for type lookup
-  const Locator* loc ///< The source locator
-)
-{
-  return new_UnaryOp<OpClass>(oprnd1->getType(),oprnd1,loc);
-}
-
-/// Provide a template function for creating a binary operator
-template<class OpClass> OpClass* 
-AST::new_BinaryOp(
-  const Type* Ty,    ///< Result type of the operator
-  Operator* oprnd1,  ///< The first operand
-  Operator* oprnd2,  ///< The second operand
-  const Locator* loc ///< The source locator
-)
-{
-  hlvmAssert(oprnd1 != 0 && "Invalid Operand for BinaryOp");
-  hlvmAssert(oprnd2 != 0 && "Invalid Operand for BinaryOp");
-  OpClass* result = new OpClass();
-  result->setLocator(loc);
-  result->setType(Ty);
-  result->setOperand(0,oprnd1);
-  result->setOperand(1,oprnd2);
-  return result;
-}
-
-/// Provide a template function for creating a binary operator
-template<class OpClass> OpClass* 
-AST::new_BinaryOp(
-  Operator* oprnd1,  ///< The first operand
-  Operator* oprnd2,  ///< The second operand
-  Bundle* B,         ///< The bundle, for type lookup
-  const Locator* loc ///< The source locator
-)
-{
-  return new_BinaryOp<OpClass>(oprnd1->getType(),oprnd1,oprnd2,loc);
-}
-
-/// Provide a template function for creating a ternary operator
-template<class OpClass> OpClass* 
-AST::new_TernaryOp(
-  const Type* Ty,    ///< Result type of the operator
-  Operator* oprnd1,     ///< The first operand
-  Operator* oprnd2,     ///< The second operand
-  Operator* oprnd3,     ///< The third operand
-  const Locator* loc ///< The source locator
-)
-{
-  hlvmAssert(oprnd1 != 0 && "Invalid Operand for TernaryOp");
-  hlvmAssert(oprnd2 != 0 && "Invalid Operand for TernUnaryOp");
-  hlvmAssert(oprnd3 != 0 && "Invalid Operand for TernUnaryOp");
-  OpClass* result = new OpClass();
-  result->setLocator(loc);
-  result->setType(Ty);
-  result->setOperand(0,oprnd1);
-  result->setOperand(1,oprnd2);
-  result->setOperand(2,oprnd3);
-  return result;
-}
-
-template<class OpClass> OpClass* 
-AST::new_TernaryOp(
-  Operator* oprnd1,     ///< The first operand
-  Operator* oprnd2,     ///< The second operand
-  Operator* oprnd3,     ///< The third operand
-  Bundle* B,
-  const Locator* loc ///< The source locator
-)
-{
-  return new_TernaryOp<OpClass>(oprnd1->getType(),oprnd1,oprnd2,oprnd3,loc);
-}
-
-template<class OpClass> OpClass* 
-AST::new_MultiOp(
-  const Type* Ty,         ///< Result type of the operator
-  const std::vector<Operator*>& oprnds,
-  const Locator* loc
-) 
-{
-  OpClass* result = new OpClass();
-  result->setLocator(loc);
-  result->setType(Ty);
-  result->addOperands(oprnds);
-  return result;
-}
-
-template<class OpClass> OpClass* 
-AST::new_MultiOp(
-  const std::vector<Operator*>& oprnds,
-  Bundle* B,
-  const Locator* loc
-)
-{
-  hlvmAssert(!oprnds.empty() && "No operands?");
-  return new_MultiOp<OpClass>(oprnds[0]->getType(),oprnds,loc);
-}
-
-// Arithmetic Operators
-template NegateOp*
-AST::new_UnaryOp<NegateOp>(
-    const Type* Ty, Operator* op1, const Locator* loc);
-template NegateOp*
-AST::new_UnaryOp<NegateOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template ComplementOp*
-AST::new_UnaryOp<ComplementOp>(
-    const Type* Ty, Operator* op1, const Locator* loc);
-template ComplementOp*
-AST::new_UnaryOp<ComplementOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template PreIncrOp*
-AST::new_UnaryOp<PreIncrOp>(
-    const Type* Ty, Operator* op1, const Locator* loc);
-template<> PreIncrOp*
-AST::new_UnaryOp<PreIncrOp>(Operator* op1, Bundle* B, const Locator* loc)
-{
-  const Type* Ty = llvm::cast<GetOp>(op1)->getReferentType();
-  return new_UnaryOp<PreIncrOp>(Ty,op1,loc);
-}
-
-template PreDecrOp*
-AST::new_UnaryOp<PreDecrOp>(
-    const Type* Ty, Operator* op1, const Locator* loc);
-template<> PreDecrOp*
-AST::new_UnaryOp<PreDecrOp>(Operator* op1, Bundle* B, const Locator* loc)
-{
-  const Type* Ty = llvm::cast<GetOp>(op1)->getReferentType();
-  return new_UnaryOp<PreDecrOp>(Ty,op1,loc);
-}
-
-template PostIncrOp*
-AST::new_UnaryOp<PostIncrOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template<> PostIncrOp*
-AST::new_UnaryOp<PostIncrOp>(Operator* op1, Bundle* B, const Locator* loc)
-{
-  const Type* Ty = llvm::cast<GetOp>(op1)->getReferentType();
-  return new_UnaryOp<PostIncrOp>(Ty,op1,loc);
-}
-
-template PostDecrOp*
-AST::new_UnaryOp<PostDecrOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template<> PostDecrOp*
-AST::new_UnaryOp<PostDecrOp>(Operator* op1, Bundle* B, const Locator* loc)
-{
-  const Type* Ty = llvm::cast<GetOp>(op1)->getReferentType();
-  return new_UnaryOp<PostDecrOp>(Ty,op1,loc);
-}
-
-template SizeOfOp*
-AST::new_UnaryOp<SizeOfOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template SizeOfOp*
-AST::new_UnaryOp<SizeOfOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template LengthOp*
-AST::new_UnaryOp<LengthOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template LengthOp*
-AST::new_UnaryOp<LengthOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template AddOp*
-AST::new_BinaryOp<AddOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template AddOp*
-AST::new_BinaryOp<AddOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template SubtractOp*
-AST::new_BinaryOp<SubtractOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template SubtractOp*
-AST::new_BinaryOp<SubtractOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template MultiplyOp*
-AST::new_BinaryOp<MultiplyOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template MultiplyOp*
-AST::new_BinaryOp<MultiplyOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template DivideOp*
-AST::new_BinaryOp<DivideOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template DivideOp*
-AST::new_BinaryOp<DivideOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template ModuloOp*
-AST::new_BinaryOp<ModuloOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template ModuloOp*
-AST::new_BinaryOp<ModuloOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template BAndOp*
-AST::new_BinaryOp<BAndOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template BAndOp*
-AST::new_BinaryOp<BAndOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template BOrOp*
-AST::new_BinaryOp<BOrOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template BOrOp*
-AST::new_BinaryOp<BOrOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template BXorOp*
-AST::new_BinaryOp<BXorOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template BXorOp*
-AST::new_BinaryOp<BXorOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template BNorOp*
-AST::new_BinaryOp<BNorOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template BNorOp*
-AST::new_BinaryOp<BNorOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-// Real Operators
-template IsPInfOp*
-AST::new_UnaryOp<IsPInfOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template IsPInfOp*
-AST::new_UnaryOp<IsPInfOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template IsNInfOp*
-AST::new_UnaryOp<IsNInfOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template IsNInfOp*
-AST::new_UnaryOp<IsNInfOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template IsNanOp*
-AST::new_UnaryOp<IsNanOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template IsNanOp*
-AST::new_UnaryOp<IsNanOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template TruncOp*
-AST::new_UnaryOp<TruncOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template TruncOp*
-AST::new_UnaryOp<TruncOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template RoundOp*
-AST::new_UnaryOp<RoundOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template RoundOp*
-AST::new_UnaryOp<RoundOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template FloorOp*
-AST::new_UnaryOp<FloorOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template FloorOp*
-AST::new_UnaryOp<FloorOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template CeilingOp*
-AST::new_UnaryOp<CeilingOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template CeilingOp*
-AST::new_UnaryOp<CeilingOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template LogEOp*
-AST::new_UnaryOp<LogEOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template LogEOp*
-AST::new_UnaryOp<LogEOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template Log2Op*
-AST::new_UnaryOp<Log2Op>(const Type* Ty, Operator* op1, const Locator* loc);
-template Log2Op*
-AST::new_UnaryOp<Log2Op>(Operator* op1, Bundle* B, const Locator* loc);
-
-template Log10Op*
-AST::new_UnaryOp<Log10Op>(const Type* Ty, Operator* op1, const Locator* loc);
-template Log10Op*
-AST::new_UnaryOp<Log10Op>(Operator* op1, Bundle* B, const Locator* loc);
-
-template SquareRootOp*
-AST::new_UnaryOp<SquareRootOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template SquareRootOp*
-AST::new_UnaryOp<SquareRootOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template CubeRootOp*
-AST::new_UnaryOp<CubeRootOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template CubeRootOp*
-AST::new_UnaryOp<CubeRootOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template FactorialOp*
-AST::new_UnaryOp<FactorialOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template FactorialOp*
-AST::new_UnaryOp<FactorialOp>(Operator* op1, Bundle* B, const Locator* loc);
-
-template PowerOp*
-AST::new_BinaryOp<PowerOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template PowerOp*
-AST::new_BinaryOp<PowerOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template RootOp*
-AST::new_BinaryOp<RootOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template RootOp*
-AST::new_BinaryOp<RootOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template GCDOp*
-AST::new_BinaryOp<GCDOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template GCDOp*
-AST::new_BinaryOp<GCDOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-template LCMOp*
-AST::new_BinaryOp<LCMOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template LCMOp*
-AST::new_BinaryOp<LCMOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-// Boolean Operators
-template NotOp*
-AST::new_UnaryOp<NotOp>(const Type* Ty, Operator* op1, const Locator* loc);
-template<> NotOp*
-AST::new_UnaryOp<NotOp>(Operator* op1, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_UnaryOp<NotOp>(Ty,op1,loc);
-}
-
-template AndOp*
-AST::new_BinaryOp<AndOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> AndOp*
-AST::new_BinaryOp<AndOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<AndOp>(Ty,op1,op2,loc);
-}
-
-template OrOp*
-AST::new_BinaryOp<OrOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> OrOp*
-AST::new_BinaryOp<OrOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<OrOp>(Ty,op1,op2,loc);
-}
-
-template NorOp*
-AST::new_BinaryOp<NorOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> NorOp*
-AST::new_BinaryOp<NorOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<NorOp>(Ty,op1,op2,loc);
-}
-
-template XorOp*
-AST::new_BinaryOp<XorOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> XorOp*
-AST::new_BinaryOp<XorOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<XorOp>(Ty,op1,op2,loc);
-}
-
-template LessThanOp*
-AST::new_BinaryOp<LessThanOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> LessThanOp*
-AST::new_BinaryOp<LessThanOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<LessThanOp>(Ty,op1,op2,loc);
-}
-
-template GreaterThanOp* 
-AST::new_BinaryOp<GreaterThanOp>(
-    const Type* Ty, Operator* op1, Operator* op2,const Locator* loc);
-template<> GreaterThanOp* 
-AST::new_BinaryOp<GreaterThanOp>(Operator* op1, Operator* op2,Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<GreaterThanOp>(Ty,op1,op2,loc);
-}
-
-template LessEqualOp* 
-AST::new_BinaryOp<LessEqualOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> LessEqualOp* 
-AST::new_BinaryOp<LessEqualOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<LessEqualOp>(Ty,op1,op2,loc);
-}
-
-template GreaterEqualOp* 
-AST::new_BinaryOp<GreaterEqualOp>(
-    const Type* Ty, Operator* op1,Operator* op2, const Locator* loc);
-template<> GreaterEqualOp* 
-AST::new_BinaryOp<GreaterEqualOp>(Operator* op1,Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<GreaterEqualOp>(Ty,op1,op2,loc);
-}
-
-template EqualityOp*
-AST::new_BinaryOp<EqualityOp>(
-    const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> EqualityOp*
-AST::new_BinaryOp<EqualityOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<EqualityOp>(Ty,op1,op2,loc);
-}
-
-template InequalityOp*
-AST::new_BinaryOp<InequalityOp>(
-    const Type* Ty, Operator* op1,Operator* op2,const Locator* loc);
-template<> InequalityOp*
-AST::new_BinaryOp<InequalityOp>(Operator* op1,Operator* op2,Bundle* B, const Locator* loc)
-{
-  Type* Ty = B->getIntrinsicType(boolTy);
-  return AST::new_BinaryOp<InequalityOp>(Ty,op1,op2,loc);
-}
-
-// String Operators
-template StrInsertOp*
-AST::new_TernaryOp<StrInsertOp>(const Type* Ty, Operator*op1,Operator*op2,Operator*op3,const Locator* loc);
-template StrInsertOp*
-AST::new_TernaryOp<StrInsertOp>(Operator*op1,Operator*op2,Operator*op3,Bundle* B,const Locator* loc);
-
-template StrEraseOp*
-AST::new_TernaryOp<StrEraseOp>(const Type* Ty, Operator*op1,Operator*op2,Operator*op3,const Locator* loc);
-template StrEraseOp*
-AST::new_TernaryOp<StrEraseOp>(Operator*op1,Operator*op2,Operator*op3,Bundle* B,const Locator* loc);
-
-template StrReplaceOp* 
-AST::new_MultiOp<StrReplaceOp>(
-    const Type* Ty, const std::vector<Operator*>& ops, const Locator*loc);
-template StrReplaceOp* 
-AST::new_MultiOp<StrReplaceOp>(const std::vector<Operator*>& ops, Bundle* B, const Locator*loc);
-
-template StrConcatOp*
-AST::new_BinaryOp<StrConcatOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template StrConcatOp*
-AST::new_BinaryOp<StrConcatOp>(Operator* op1, Operator* op2, Bundle* B, const Locator* loc);
-
-// Control Flow Operators
-template Block* 
-AST::new_MultiOp<Block>(
-    const Type* Ty, const std::vector<Operator*>& ops, const Locator*loc);
-template Block* 
-AST::new_MultiOp<Block>(const std::vector<Operator*>& ops, Bundle* B, const Locator*loc);
-
-template SelectOp*
-AST::new_TernaryOp<SelectOp>(
-    const Type* Ty, Operator*op1,Operator*op2,Operator*op3,const Locator* loc);
-template<> SelectOp*
-AST::new_TernaryOp<SelectOp>(Operator*op1,Operator*op2,Operator*op3,Bundle* B,const Locator* loc)
-{
-  return new_TernaryOp<SelectOp>(op2->getType(),op1,op2,op3,loc);
-}
-
-template WhileOp*
-AST::new_BinaryOp<WhileOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> WhileOp*
-AST::new_BinaryOp<WhileOp>(Operator* op1, Operator* op2,Bundle* B, const Locator* loc)
-{
-  return new_BinaryOp<WhileOp>(op2->getType(),op1,op2,loc);
-}
-
-template UnlessOp*
-AST::new_BinaryOp<UnlessOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template<> UnlessOp*
-AST::new_BinaryOp<UnlessOp>(Operator* op1, Operator* op2,Bundle* B, const Locator* loc)
-{
-  return new_BinaryOp<UnlessOp>(op2->getType(),op1,op2,loc);
-}
-
-template UntilOp*
-AST::new_BinaryOp<UntilOp>(const Type* Ty, Operator* op1, Operator* op2, const Locator* loc);
-template UntilOp*
-AST::new_BinaryOp<UntilOp>(Operator* op1, Operator* op2,Bundle* B, const Locator* loc);
-
-template LoopOp*
-AST::new_TernaryOp<LoopOp>(const Type* Ty, Operator*op1,Operator*op2,Operator*op3,const Locator* loc);
-
-template<> LoopOp*
-AST::new_TernaryOp<LoopOp>(Operator*op1,Operator*op2,Operator*op3,Bundle* B,const Locator* loc)
-{
-  const Type* Ty = op2->getType();
-  if (Ty && llvm::isa<Block>(Ty))
-    Ty = llvm::cast<Block>(op2)->getType();
-  return new_TernaryOp<LoopOp>(Ty,op1,op2,op3,loc);
-}
-
-template SwitchOp*
-AST::new_MultiOp<SwitchOp>(
-    const Type* Ty, const std::vector<Operator*>& ops, const Locator* loc);
-template<> SwitchOp*
-AST::new_MultiOp<SwitchOp>(const std::vector<Operator*>& ops, Bundle* B,const Locator* loc)
-{
-  hlvmAssert(ops.size() >= 2 && "Too few operands for SwitchOp");
-  const Type* Ty = ops[1]->getType();
-  if (Ty && llvm::isa<Block>(Ty))
-    Ty = llvm::cast<Block>(ops[1])->getType();
-  return new_MultiOp<SwitchOp>(Ty, ops, loc);
-}
-
-template BreakOp* 
-AST::new_NilaryOp<BreakOp>(const Type*Ty, const Locator*loc);
-template BreakOp* 
-AST::new_NilaryOp<BreakOp>(Bundle* B, const Locator*loc);
-
-template ContinueOp* 
-AST::new_NilaryOp<ContinueOp>(const Type* Ty, const Locator*loc);
-template ContinueOp* 
-AST::new_NilaryOp<ContinueOp>(Bundle* B, const Locator*loc);
-
-template ReturnOp* 
-AST::new_NilaryOp<ReturnOp>(const Type*Ty, const Locator*loc);
-template ReturnOp* 
-AST::new_NilaryOp<ReturnOp>(Bundle* B, const Locator*loc);
-
-template ResultOp* 
-AST::new_UnaryOp<ResultOp>(const Type*Ty, Operator*op1,const Locator*loc);
-template ResultOp* 
-AST::new_UnaryOp<ResultOp>(Operator*op1,Bundle* B, const Locator*loc);
-
-template CallOp* 
-AST::new_MultiOp<CallOp>(const Type*Ty, const std::vector<Operator*>& ops, const Locator*loc);
-template<> CallOp* 
-AST::new_MultiOp<CallOp>(const std::vector<Operator*>& ops, Bundle* B,const Locator* loc)
-{
-  GetOp* get = llvm::cast<GetOp>(ops[0]);
-  const Function* F = llvm::cast<Function>(get->getReferent());
-  return new_MultiOp<CallOp>(F->getResultType(),ops,loc);
-}
-
-// Memory Operators
-template StoreOp*  
-AST::new_BinaryOp<StoreOp>(const Type*, Operator*op1,Operator*op2,const Locator*loc);
-template StoreOp*  
-AST::new_BinaryOp<StoreOp>(Operator*op1,Operator*op2,Bundle* B, const Locator*loc);
-
-template LoadOp*   
-AST::new_UnaryOp<LoadOp>(const Type* Ty, Operator*op1,const Locator*loc);
-template<> LoadOp*   
-AST::new_UnaryOp<LoadOp>(Operator*op1,Bundle* B, const Locator*loc)
-{
-  const PointerType* PT = llvm::cast<PointerType>(op1->getType());
-  return new_UnaryOp<LoadOp>(PT->getElementType(),op1,loc);
-}
-
-// Input/Output Operators
-template OpenOp* 
-AST::new_UnaryOp<OpenOp>(const Type* Ty, Operator*op1,const Locator*loc);
-template<> OpenOp* 
-AST::new_UnaryOp<OpenOp>(Operator*op1,Bundle* B, const Locator*loc)
-{
-  Type* Ty = B->getIntrinsicType(streamTy);
-  return new_UnaryOp<OpenOp>(Ty,op1,loc);
-}
-
-template WriteOp* 
-AST::new_BinaryOp<WriteOp>(
-  const Type* Ty, Operator*op1,Operator*op2, const Locator*loc);
-template<> WriteOp* 
-AST::new_BinaryOp<WriteOp>(Operator*op1,Operator*op2,Bundle* B, const Locator*loc)
-{
-  Type* Ty = B->getIntrinsicType(u64Ty);
-  return new_BinaryOp<WriteOp>(Ty,op1,op2,loc);
-}
-
-template CloseOp* 
-AST::new_UnaryOp<CloseOp>(const Type* Ty, Operator*op1,const Locator*loc);
-template<> CloseOp* 
-AST::new_UnaryOp<CloseOp>(Operator*op1,Bundle* B, const Locator*loc)
-{
-  return new_UnaryOp<CloseOp>(0,op1,loc);
-}
-
-Type* 
-AST::new_IntrinsicType(
- const std::string& id,  ///< The name for the new type
- Bundle* bundle,         ///< The bundle to put the new type into
- IntrinsicTypes it,      ///< The type of intrinsic to create
- const Locator* loc      ///< The source locator
-) 
-{
-  Type* result = 0;
-  switch (it) 
-  {
-    case boolTy:   result = new BooleanType(); break;
-    case bufferTy: result = new BufferType(); break;
-    case charTy:   result = new CharacterType("utf-8"); break;
-    case doubleTy: result = new RealType(52,11); break;
-    case f32Ty:    result = new RealType(23,8); break;
-    case f44Ty:    result = new RealType(32,11); break;
-    case f64Ty:    result = new RealType(52,11); break;
-    case f80Ty:    result = new RealType(64,15); break;
-    case f96Ty:    result = new RealType(112,15); break;
-    case f128Ty:   result = new RealType(112,15); break;
-    case floatTy:  result = new RealType(23,8); break;
-    case intTy:    result = new IntegerType(32,true); break;
-    case longTy:   result = new IntegerType(64,true); break;
-    case octetTy:  result = new IntegerType(8,false); break;
-    case qs16Ty:   result = new RationalType(true,8,8); break;
-    case qs32Ty:   result = new RationalType(true,16,16); break;
-    case qs64Ty:   result = new RationalType(true,32,32); break;
-    case qs128Ty:  result = new RationalType(true,64,64); break;
-    case qu16Ty:   result = new RationalType(false,8,8); break;
-    case qu32Ty:   result = new RationalType(false,16,16); break;
-    case qu64Ty:   result = new RationalType(false,32,32); break;
-    case qu128Ty:  result = new RationalType(false,64,64); break;
-    case r8Ty:     result = new RangeType(INT8_MIN,INT8_MAX); break;
-    case r16Ty:    result = new RangeType(INT16_MIN,INT16_MAX); break;
-    case r32Ty:    result = new RangeType(INT32_MIN,INT32_MAX); break;
-    case r64Ty:    result = new RangeType(INT64_MIN,INT64_MAX); break;
-    case s8Ty:     result = new IntegerType(8,true); break;
-    case s16Ty:    result = new IntegerType(16,true); break;
-    case s32Ty:    result = new IntegerType(32,true); break;
-    case s64Ty:    result = new IntegerType(64,true); break;
-    case s128Ty:   result = new IntegerType(128,true); break;
-    case textTy:   result = new TextType(); break;
-    case shortTy:  result = new IntegerType(16,true); break;
-    case streamTy: result = new StreamType(); break;
-    case stringTy: result = new StringType("utf-8"); break;
-    case u8Ty:     result = new IntegerType(8,false); break;
-    case u16Ty:    result = new IntegerType(16,false); break;
-    case u32Ty:    result = new IntegerType(32,false); break;
-    case u64Ty:    result = new IntegerType(64,false); break;
-    case u128Ty:   result = new IntegerType(128,false); break;
-    case voidTy:   result = new OpaqueType(id); break;
-    default:
-      hlvmDeadCode("Invalid Intrinsic");
-      break;
-  }
-  result->setName(id);
-  result->setParent(bundle);
-  return result;
-}
-
-void 
-AST::old(Node* to_be_deleted)
-{
-  delete to_be_deleted;
-}
-
-}
diff --git a/hlvm/hlvm/AST/AST.h b/hlvm/hlvm/AST/AST.h
deleted file mode 100644
index 2b81ec2..0000000
--- a/hlvm/hlvm/AST/AST.h
+++ /dev/null
@@ -1,631 +0,0 @@
-//===-- AST Container Class -------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/AST.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::AST
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_AST_H
-#define HLVM_AST_AST_H
-
-#include <hlvm/AST/Node.h>
-#include <hlvm/AST/Type.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/RuntimeType.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/Bundle.h>
-#include <string>
-#include <vector>
-
-/// This namespace is for all HLVM software. It ensures that HLVM software does
-/// not collide with any other software. Hopefully "hlvm" is not a namespace 
-/// used elsewhere.
-namespace hlvm
-{
-
-class Documentation;
-class Block;
-class Argument;
-class Function; 
-class Program; 
-class Locator; 
-class Variable; 
-class Pool;
-class Operator;
-class AutoVarOp;
-class GetOp;
-class GetFieldOp;
-class GetIndexOp;
-class ConvertOp;
-class URI;
-
-/// This class is used to hold or contain an Abstract Syntax Tree. It forms the
-/// root node of a multi-way tree of other nodes. As such, its parent node is
-/// null and this is only true of the AST node.  AST provides a number of 
-/// facilities for management of the tree as a whole. It also provides all the 
-/// factory functions for creating AST nodes.  
-/// @brief AST Tree Root Class
-class AST : public Node
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<Bundle*> BundleList;
-    typedef BundleList::iterator   iterator;
-    typedef BundleList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  public:
-    static AST* create();
-    static void destroy(AST* ast);
-
-  protected:
-    AST(); 
-    ~AST();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getSystemID() const { return sysid; }
-    const std::string& getPublicID() const { return pubid; }
-    Pool* getPool() const { return pool; }
-    /// Provide support for isa<X> and friends
-    static inline bool classof(const AST*) { return true; }
-    static inline bool classof(const Node* N) 
-    { return N->is(TreeTopID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setSystemID(const std::string& id) { sysid = id; }
-    void setPublicID(const std::string& id) { pubid = id; }
-    void addBundle(Bundle* b) { bundles.push_back(b); }
-    virtual void setParent(Node* parent);
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    /// Bundle Iteration
-    iterator           begin()       { return bundles.begin(); }
-    const_iterator     begin() const { return bundles.begin(); }
-    iterator           end  ()       { return bundles.end(); }
-    const_iterator     end  () const { return bundles.end(); }
-    size_t             size () const { return bundles.size(); }
-    bool               empty() const { return bundles.empty(); }
-    Bundle*            front()       { return bundles.front(); }
-    const Bundle*      front() const { return bundles.front(); }
-    Bundle*            back()        { return bundles.back(); }
-    const Bundle*      back()  const { return bundles.back(); }
-
-  /// @}
-  /// @name Factories
-  /// @{
-  public:
-    /// Create a new URI object. URIs indicate the source file from which the
-    /// AST is being constructued. They are used by locators and bundles to
-    /// identify source locations.
-    URI* new_URI(const std::string& uri);
-
-    /// Create a new Locator object. Locators indicate where in the source
-    /// a particular AST node is located. Locators can be very general (just
-    /// the URI) or very specific (the exact range of bytes in the file). The
-    /// Locator returned can be used with any of the other factory methods 
-    /// in this class.
-    Locator* new_Locator(
-      const URI* uri,        ///< The URI of the source
-      uint32_t line = 0,     ///< The line number of the location
-      uint32_t col = 0,      ///< The column number of the location
-      uint32_t line2 =0,     ///< The ending line number of the location range
-      uint32_t col2 = 0      ///< The ending column number of the location range
-    );
-
-    /// Create a new Documentation node. A documentation node contains the
-    /// documentation that accompanies the program. 
-    Documentation* new_Documentation(
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Create a new Bundle node. A bundle is the general container of other AST
-    /// nodes. Bundles are also the unit of loading and linking.
-    Bundle* new_Bundle(
-      const std::string& id, ///< The name of the bundle
-      const Locator* loc = 0 ///< The source locator
-    );
-    /// Create a new Import node. An import node may be attached to a bundle to
-    /// indicate that the declarations of some external bundle are needed in
-    /// order to satisfy the definitions of the current bundle.
-    Import* new_Import(
-      const std::string& id,  ///< The name of the import
-      const Locator* loc = 0 ///< 
-    );
-    /// Create a new
-    Argument* new_Argument(
-      const std::string& name, /// The argument name
-      const Type* Ty,          /// The type of the argument
-      const Locator* loc = 0   /// The source locator
-    ); 
-    /// Create a new Function node. 
-    Function* new_Function(
-      const std::string& id, ///< The name of the function
-      Bundle* B,             ///< The bundle this function goes in
-      const SignatureType* type,   ///< The type of the function
-      const Locator* loc = 0 ///< The source locator
-    );
-    /// Create a new Program node. Programs are like functions except that their
-    /// signature is fixed and they represent the entry point to a complete
-    /// program. Unlike other languages, you can have multiple Program nodes
-    /// (entry points) in the same compilation unit.
-    Program* new_Program(
-      const std::string& id, ///< The name of the program
-      Bundle* B,             ///< The bundle this program goes in
-      const Locator* loc = 0 ///< The source locator
-    );
-    Type* new_IntrinsicType(
-      const std::string& id,  ///< The name for the new type
-      Bundle* bundle,         ///< The bundle to put the new type into
-      IntrinsicTypes it,      ///< The node ID for the primitive to create
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new IntegerType node. This is a general interface for creating
-    /// integer types. By default it creates a signed 32-bit integer.
-    IntegerType* new_IntegerType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      uint16_t bits = 32,     ///< The number of bits
-      bool isSigned = true,   ///< The signedness
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new RangeType node. RangeType nodes are integer nodes that
-    /// perform range checking to ensure the assigned values are kept in range
-    RangeType* new_RangeType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      int64_t min,            ///< The minimum value accepted in range
-      int64_t max,            ///< The maximum value accepted in range
-      const Locator*loc = 0   ///< The locator of the declaration
-    );
-    /// Create a new EnumerationType node. EnumerationType nodes are RangeType
-    /// nodes that associate specific enumerated names for the values of the
-    /// enumeration.
-    EnumerationType* new_EnumerationType(
-      const std::string& id,   ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator*loc = 0    ///< The locator of the declaration
-    );
-    /// Create a new RealType node. This is the generalized interface for 
-    /// construction real number types. By default it creates a 64-bit double
-    /// precision floating point type.
-    RealType* new_RealType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      uint32_t mantissa = 52, ///< The bits in the mantissa (fraction)
-      uint32_t exponent = 11, ///< The bits in the exponent
-      const Locator* loc = 0   ///< The locator 
-    );
-    /// Create a new AnyType node. An AnyType node is a type that can hold a
-    /// value of any other HLVM type. 
-    AnyType* new_AnyType(
-      const std::string& id, ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator 
-    );
-    /// Create a new BooleanType node. A BooleanType has a simple binary value,
-    /// true or false.
-    BooleanType* new_BooleanType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new BufferType node. A BufferType is a runtime type that is
-    /// used to buffer input and output.
-    BufferType* new_BufferType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new TextType node. A TextType is a runtime type that is
-    /// used to represent unicode strings of text.
-    TextType* new_TextType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new StreamType node. A StreamType is a runtime type that is
-    /// used as a handle for input/output streams.
-    StreamType* new_StreamType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new CharacterType node. A CharacterType represents a single 
-    /// textual character in UTF-16 encoding.
-    CharacterType* new_CharacterType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const std::string& enc, ///< The name of the encoding for the character
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new StringType node. A StringType node is a type that holds a
-    /// sequence of UTF-8 encoded characters.
-    StringType* new_StringType(
-      const std::string& id,  ///< The name of the type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const std::string& enc, ///< The name of the encoding for the string
-      const Locator* loc = 0  ///< The source locator 
-    );
-    /// Create a new PointerType node. A PointerType just refers to a location
-    /// of some other type.
-    PointerType* new_PointerType(
-      const std::string& id,  ///< The name of the pointer type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* target,     ///< The referent type
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new ArrayType node. An ArrayType is a sequential arrangement of
-    /// memory locations of uniform type. Arrays can be dynamically expanded
-    /// or shrunk, but not beyond the maxSize parameter. 
-    ArrayType* new_ArrayType(
-      const std::string& id,  ///< The name of the array type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      Type* elemType,         ///< The element type
-      uint64_t maxSize,       ///< The maximum number of elements in the array
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new VectorType node. A VectorType is a sequential arrangement
-    /// of memory locations of uniform type and constant size. Unlike Arrays,
-    /// a vector's size is always constant.
-    VectorType* new_VectorType(
-      const std::string& id,  ///< The name of the vector type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      Type* elemType,         ///< The element type
-      uint64_t size,          ///< The number of elements in the vector
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new NamedType node. A NamedType is used as the field of a
-    /// structure or the parameter of a signature. It associates a type with
-    /// a name.
-    NamedType* new_NamedType(
-      const std::string& name, /// The field/parameter name
-      const Type* type,        /// The type of the field/parameter
-      const Locator* loc = 0   /// The source locator
-    );
-    inline Parameter* new_Parameter(
-      const std::string& name, /// The parameter name
-      const Type* type,        /// The type of the parameter
-      const Locator* loc = 0   /// The source locator
-    ) {
-      return new_NamedType(name,type,loc);
-    }
-    inline Field* new_Field(
-      const std::string& name, /// The field name
-      const Type* type,        /// The type of the field
-      const Locator* loc = 0   /// The source locator
-    ) {
-      return new_NamedType(name,type,loc);
-    }
-    /// Create a new StructureType node. A StructureType is a type that is an
-    /// ordered sequential arrangement of memory locations of various but 
-    /// definite types.
-    StructureType* new_StructureType(
-      const std::string& id,  ///< The name of the structure type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new ContinuationType node. A ContinuationType is a type that 
-    /// is an ordered sequential arrangement of memory locations of various but 
-    /// definite types combined with the data necessary to make a continuation.
-    ContinuationType* new_ContinuationType(
-      const std::string& id,  ///< The name of the structure type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new SignatureType node. A SignatureType specifies the type of
-    /// a Function. It identifies the names and types of the arguments of a
-    /// function and the type of its result value.
-    SignatureType* new_SignatureType(
-      const std::string& id,  ///< The name of the function signature type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type *resultType, ///< The result type of the function
-      bool isVarArgs = false, ///< Indicates variable number of arguments
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new OpaqueType node. An OpaqueType is used as a place holder
-    /// for situations where the full type is either not known or should not
-    /// be exposed. You cannot create an object of OpaqueType but you can 
-    /// obtain its location.
-    OpaqueType* new_OpaqueType(
-      const std::string& id,  ///< The name of the opaque type
-      bool is_unresolved,     ///< Indicates whether this is an unresolved type
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new Variable node. A Variable node represents a storage
-    /// location. Variables can be declared in Bundles, Functions and Blocks.
-    /// Their life span is the lifespan of the container in which they are
-    /// declared.
-    Variable* new_Variable(
-      const std::string& id,  ///< The name of the variable
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* ty,         ///< The type of the variable
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Createa new ConstantAny node
-    ConstantAny* new_ConstantAny(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      ConstantValue* val,     ///< The value for the constant
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Createa new ConstantBoolean node
-    ConstantBoolean* new_ConstantBoolean(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      bool t_or_f,            ///< The value for the constant
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Createa new ConstantCharacter node
-    ConstantCharacter* new_ConstantCharacter(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      const std::string& val, ///< The value for the constant
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Createa new ConstantEnumerator node
-    ConstantEnumerator* new_ConstantEnumerator(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      const std::string& val, ///< The value for the constant
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new ConstantInteger node.
-    ConstantInteger* new_ConstantInteger(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      const std::string& val, ///< The value of the ConstantInteger
-      uint16_t base,          ///< The numeric base the value is encoded in
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new ConstantReal node.
-    ConstantReal* new_ConstantReal(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      const std::string& val, ///< The value of the ConstantReal
-      const Locator* loc = 0  ///< The source locator
-    );
-    /// Create a new ConstantString node.
-    ConstantString* new_ConstantString(
-      const std::string& name,///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const Type* Ty,         ///< The type for this constant
-      const std::string& value, ///< The value of the ConstantText
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a new ConstantPointer node.
-    ConstantPointer* new_ConstantPointer(
-      const std::string& name,  ///< The name of the constant
-      Bundle* bundle,           ///< The bundle to insert the type into
-      const Type* type,         ///< The type of the constant pointer
-      Constant* referent,       ///< The value pointed to
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a new ConstantArray node.
-    ConstantArray* new_ConstantArray(
-      const std::string& name,  ///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const ArrayType* Ty,      ///< The type of the array
-      const std::vector<ConstantValue*>& elems, ///< The elements of the array
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a new ConstantVector node.
-    ConstantVector* new_ConstantVector(
-      const std::string& name,  ///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const VectorType* Ty,     ///< The type of the array
-      const std::vector<ConstantValue*>& elems, ///< The elements of the array
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a new ConstantStructure node.
-    ConstantStructure* new_ConstantStructure(
-      const std::string& name,  ///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const StructureType* Ty,  ///< The type of the array
-      const std::vector<ConstantValue*>& elems, ///< The elements of the array
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a new ConstantContinuation node.
-    ConstantContinuation* new_ConstantContinuation(
-      const std::string& name,  ///< The name of the constant
-      Bundle* bundle,         ///< The bundle to insert the type into
-      const ContinuationType* Ty,  ///< The type of the array
-      const std::vector<ConstantValue*>& elems, ///< The elements of the array
-      const Locator* loc = 0    ///< The source locator
-    );
-    /// Create a unary ConstantExpression Node.
-    Constant* new_UnaryCE(
-      NodeIDs id,            ///< The operator for the constant expression
-      Constant* C,           ///< The constant operand of the unary operator
-      const Locator* loc = 0 ///< The source locator
-    );
-    /// Create a binary ConstantExpression Node.
-    Constant* new_BinaryCE(
-      NodeIDs id,            ///< The operator for the constant expression
-      Constant* C1,          ///< The first operand of the binary operator
-      Constant* C2,          ///< The second operand of the binary operator
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Create a new Block. You can also create Blocks with new_MulitOp<Block>
-    /// interface. This one allows you to create the block before creating its
-    /// content, for situations where that matters (like XML parsing).
-    Block* new_Block(
-      const Locator* loc  ///< The source locator
-    );
-    /// Create a new AutoVarOp. This one is a little unusual because it
-    /// requires the user to know the type. Other operators can deduce the
-    /// type from the operands.
-    AutoVarOp* new_AutoVarOp(
-      const std::string& name, ///< Name of the autovar in its scope
-      const Type* Ty,          ///< Type of the autovar
-      const Locator* loc       ///< The source locator
-    );
-
-    /// Create a new GetOp.
-    GetOp* new_GetOp(
-      const Value* V,          ///< The value being referenced
-      const Locator*loc = 0    ///< The source locator
-    );
-
-    GetFieldOp* new_GetFieldOp(
-      Operator* op,            ///< The thing to be indexed
-      const std::string& nm,   ///< The name of the field to index
-      const Locator* loc = 0   ///< The source locator
-    );
-
-    GetIndexOp* new_GetIndexOp(
-      Operator* op1,           ///< The thing to be indexed
-      Operator* op2,           ///< The index
-      const Locator* loc = 0   ///< The source locator
-    );
-
-    /// Create a new ConvertOp.
-    ConvertOp* new_ConvertOp(
-      Operator* oprnd,    ///< The operand to be converted
-      const Type* Ty,     ///< The Type to convert \p V to
-      const Locator* loc  ///< THe source locator
-    );
-
-    /// Provide a template function for creating standard nilary operators
-    template<class OpClass>
-    OpClass* new_NilaryOp(
-      Bundle* bundle,        ///< The bundle, for type lookup
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Provide a template function for creating standard unary operators
-    template<class OpClass>
-    OpClass* new_UnaryOp(
-      Operator* oprnd1,         ///< The first operand
-      Bundle* bundle,        ///< The bundle, for type lookup
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Provide a template function for creating standard binary operators
-    template<class OpClass>
-    OpClass* new_BinaryOp(
-      Operator* oprnd1,         ///< The first operand
-      Operator* oprnd2,         ///< The second operand
-      Bundle* bundle,        ///< The bundle, for type lookup
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Provide a template function for creating standard ternary operators
-    template<class OpClass>
-    OpClass* new_TernaryOp(
-      Operator* oprnd1,         ///< The first operand
-      Operator* oprnd2,         ///< The second operand
-      Operator* oprnd3,         ///< The third operand
-      Bundle* bundle,        ///< The bundle, for type lookup
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// Provide a template function for creating standard multi-operand
-    /// operators
-    template<class OpClass>
-    OpClass* new_MultiOp(
-      const std::vector<Operator*>& o, ///< The list of operands
-      Bundle* bundle,        ///< The bundle, for type lookup
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    /// A function to remove an old node. The to_be_deleted node will no longer
-    /// be available after this call.
-    void old(Node* to_be_deleted);
-
-  protected:
-    template<class OpClass>
-    OpClass* new_NilaryOp(
-      const Type* Ty,        ///< Result type of the operator
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    template<class OpClass>
-    OpClass* new_UnaryOp(
-      const Type* Ty,        ///< Result type of the operator
-      Operator* oprnd1,         ///< The first operand
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    template<class OpClass>
-    OpClass* new_BinaryOp(
-      const Type* Ty,        ///< Result type of the operator
-      Operator* oprnd1,         ///< The first operand
-      Operator* oprnd2,         ///< The second operand
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    template<class OpClass>
-    OpClass* new_TernaryOp(
-      const Type* Ty,        ///< Result type of the operator
-      Operator* oprnd1,         ///< The first operand
-      Operator* oprnd2,         ///< The second operand
-      Operator* oprnd3,         ///< The third operand
-      const Locator* loc = 0 ///< The source locator
-    );
-
-    template<class OpClass>
-    OpClass* new_MultiOp(
-      const Type* Ty,         ///< Result type of the operator
-      const std::vector<Operator*>& o, ///< The list of operands
-      const Locator* loc = 0
-    );
-
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string sysid;
-    std::string pubid;
-    BundleList bundles;
-    Pool* pool;
-  /// @}
-};
-
-} // env hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/Arithmetic.cpp b/hlvm/hlvm/AST/Arithmetic.cpp
deleted file mode 100644
index 1babaf2..0000000
--- a/hlvm/hlvm/AST/Arithmetic.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//===-- AST Arithemetic Operators Implementation ----------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Arithmetic.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Implements the AST Arithmentic Operators 
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/Type.h>
-#include <llvm/Support/Casting.h>
-
-namespace hlvm 
-{
-
-NegateOp::~NegateOp() {}
-ComplementOp::~ComplementOp() {}
-PreIncrOp::~PreIncrOp() {}
-PostIncrOp::~PostIncrOp() {}
-PreDecrOp::~PreDecrOp() {}
-PostDecrOp::~PostDecrOp() {}
-SizeOfOp::~SizeOfOp() {}
-LengthOp::~LengthOp() {}
-ConvertOp::~ConvertOp() {}
-AddOp::~AddOp() {}
-SubtractOp::~SubtractOp() {}
-MultiplyOp::~MultiplyOp() {}
-DivideOp::~DivideOp() {}
-ModuloOp::~ModuloOp() {}
-BAndOp::~BAndOp() {}
-BOrOp::~BOrOp() {}
-BXorOp::~BXorOp() {}
-BNorOp::~BNorOp() {}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/AST/Arithmetic.h b/hlvm/hlvm/AST/Arithmetic.h
deleted file mode 100644
index 043a393..0000000
--- a/hlvm/hlvm/AST/Arithmetic.h
+++ /dev/null
@@ -1,461 +0,0 @@
-//===-- AST Arithemetic Operators Interface ---------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Arithmetic.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Declares the AST Arithmentic Operators 
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_ARITHMETIC_H 
-#define HLVM_AST_ARITHMETIC_H 
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a negation
-/// operator. The NegateOpID is a unary operator that negates its operand and
-/// returns that value. 
-/// @brief AST Negate Operator Node   
-class NegateOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    NegateOp() : UnaryOperator(NegateOpID)  {}
-    virtual ~NegateOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const NegateOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(NegateOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a
-/// complement operator. The ComplementOpID is a unary operator that complements
-/// its operand and returns that value. 
-/// @brief AST Complement Operator Node   
-class ComplementOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ComplementOp() : UnaryOperator(ComplementOpID)  {}
-    virtual ~ComplementOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ComplementOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ComplementOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a
-/// pre-increment operator. The PreIncrOpID is a unary operator that increments
-/// its operand and returns the incremented value. 
-/// @brief AST Pre-Increment Operator Node   
-class PreIncrOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PreIncrOp() : UnaryOperator(PreIncrOpID)  {}
-    virtual ~PreIncrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const PreIncrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(PreIncrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// post-increment operator. The PostIncrOpID is a unary operator that returns
-/// its operand and arranges for that operand to be incremented some time after
-/// the value has been used. 
-/// @brief AST Post-Increment Operator Node   
-class PostIncrOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PostIncrOp() : UnaryOperator(PostIncrOpID)  {}
-    virtual ~PostIncrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const PostIncrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(PostIncrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// pre-decrement operator. The PreDecrOp is a unary operator that decrements 
-/// the value of its operand and returns that decremented value.
-/// @brief AST Pre-Decrement Operator Node   
-class PreDecrOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PreDecrOp() : UnaryOperator(PreDecrOpID)  {}
-    virtual ~PreDecrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const PreDecrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(PreDecrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// post-decrement operator. The PostDecrOp is a unary operator that 
-/// returns the value of its operand and then arranges for that value to be 
-/// decremented after it has been used.
-/// @brief AST Post-Decrement Operator Node   
-class PostDecrOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PostDecrOp() : UnaryOperator(PostDecrOpID)  {}
-    virtual ~PostDecrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const PostDecrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(PostDecrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// SizeOf operator. The SizeOfOp is a unary operator that returns the size, in
-/// bytes, of its operand. The value returned is a constant s32
-/// @brief AST SizeOf Operator Node   
-class SizeOfOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SizeOfOp() : UnaryOperator(SizeOfOpID)  {}
-    virtual ~SizeOfOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const SizeOfOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(SizeOfOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// length operator. The LengthOp is a unary operator that returns the logical
-/// length of its operand. The value returned is a u64. This operator may be
-/// applied to any type of object. For most types, it returns 1. For arrays,
-/// it returns the actual (dynamic) size of the array. Same for Text and String
-/// type objects. For Structures it returns the number of fields.
-/// @brief AST SizeOf Operator Node   
-class LengthOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LengthOp() : UnaryOperator(LengthOpID)  {}
-    virtual ~LengthOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LengthOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LengthOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// conversion operator. The ConvertOp is a binary operator that converts its
-/// first operand to the type provided in its second operand (which must be
-/// a reference operator to the type).
-/// @brief AST Conversion Operator Node   
-class ConvertOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConvertOp() : UnaryOperator(ConvertOpID)  {}
-    virtual ~ConvertOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConvertOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ConvertOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to add two quantities. The AddOp is a binary operator that
-/// computes the sum of its two operands and returns that value.
-/// @brief AST Add Operator Node   
-class AddOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    AddOp() : BinaryOperator(AddOpID)  {}
-    virtual ~AddOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const AddOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(AddOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to subtract two quantities. The SubractOp is a binary operator that
-/// computes the difference of its two operands and returns that value.
-/// @brief AST Subtract Operator Node   
-class SubtractOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SubtractOp() : BinaryOperator(SubtractOpID)  {}
-    virtual ~SubtractOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const SubtractOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(SubtractOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to multiply two quantities. The MultiplyOp is a binary operator that
-/// computes the product of its two operands and returns that value.
-/// @brief AST Multiply Operator Node   
-class MultiplyOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    MultiplyOp() : BinaryOperator(MultiplyOpID)  {}
-    virtual ~MultiplyOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const MultiplyOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(MultiplyOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to divide two quantities. The DivideOp is a binary operator that
-/// computes the dividend of its two operands and returns that value.
-/// @brief AST Divide Operator Node   
-class DivideOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    DivideOp() : BinaryOperator(DivideOpID)  {}
-    virtual ~DivideOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const DivideOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(DivideOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a modulo
-/// operator. The ModuloOp is a binary operator that computes the remainder 
-/// when its operands are divided and returns that value.
-/// @brief AST Modulo Operator Node   
-class ModuloOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ModuloOp() : BinaryOperator(ModuloOpID)  {}
-    virtual ~ModuloOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ModuloOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ModuloOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a bitwise
-/// and operator. The BAndOp is a binary operator that computes a bitwise and on
-/// its two operands and returns that value. BAndOp can only be used with
-/// integral types. 
-/// @brief AST Bitwise And Operator Node   
-class BAndOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BAndOp() : BinaryOperator(BAndOpID)  {}
-    virtual ~BAndOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BAndOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BAndOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a bitwise
-/// or operator.  The BOrOp is a binary operator that computes the bitwise or
-/// of its two operands and returns that value. 
-/// @brief AST Bitwise Or Operator Node   
-class BOrOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BOrOp() : BinaryOperator(BOrOpID)  {}
-    virtual ~BOrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BOrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BOrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a bitwise
-/// exclusive or operator. The BXorOp is a binary operator that computes the
-/// bitwise exclusive or of its two operands and returns that value.
-/// @brief AST Bitwise Exclusive Or Operator Node   
-class BXorOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BXorOp() : BinaryOperator(BXorOpID)  {}
-    virtual ~BXorOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BXorOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BXorOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a bitwise
-/// not or operator. The BNorOp is a binary operator that computes the
-/// bitwise nor of its two operands and returns that value.
-/// @brief AST Bitwise Nor Operator Node   
-class BNorOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BNorOp() : BinaryOperator(BNorOpID)  {}
-    virtual ~BNorOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BNorOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BNorOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/AST/Block.cpp b/hlvm/hlvm/AST/Block.cpp
deleted file mode 100644
index 8aa18cb..0000000
--- a/hlvm/hlvm/AST/Block.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- hlvm/AST/Block.cpp - AST Block Node Class ---------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Block.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Block.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Block.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/Base/Assert.h>    
-#include <hlvm/AST/Linkables.h>    
-#include <llvm/Support/Casting.h>
-
-namespace hlvm {
-
-Block::~Block()
-{
-}
-
-void 
-Block::insertChild(Node* child)
-{
-  hlvmAssert(llvm::isa<Operator>(child));
-  MultiOperator::insertChild(child);
-  if (llvm::isa<AutoVarOp>(child)) {
-    AutoVarOp* av = llvm::cast<AutoVarOp>(child);
-    autovars[av->getName()] = av;
-  } else if (llvm::isa<ResultOp>(child)) {
-    result = llvm::cast<Operator>(child);
-    type = result->getType();
-  }
-}
-
-void 
-Block::removeChild(Node* child)
-{
-  hlvmAssert(llvm::isa<Operator>(child));
-  if (llvm::isa<AutoVarOp>(child)) {
-    AutoVarOp* av = llvm::cast<AutoVarOp>(child);
-    autovars.erase(av->getName());
-  }
-  MultiOperator::removeChild(child);
-}
-
-AutoVarOp*   
-Block::getAutoVar(const std::string& name) const
-{
-  AutoVarMap::const_iterator I = autovars.find(name);
-  if (I == autovars.end())
-    return 0;
-  return I->second;
-}
-
-Block* 
-Block::getParentBlock() const
-{
-  Node* p = getParent();
-  while (p && !llvm::isa<Function>(p)) {
-    if (llvm::isa<Block>(p))
-      return llvm::cast<Block>(p);
-    p = p->getParent();
-  }
-  return 0;
-}
-
-ResultOp::~ResultOp() {}
-}
diff --git a/hlvm/hlvm/AST/Block.h b/hlvm/hlvm/AST/Block.h
deleted file mode 100644
index b7b8bed..0000000
--- a/hlvm/hlvm/AST/Block.h
+++ /dev/null
@@ -1,125 +0,0 @@
-//===-- AST Function Class --------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Block.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Block
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_BLOCK_H
-#define HLVM_AST_BLOCK_H
-
-#include <hlvm/AST/Operator.h>
-#include <map>
-
-namespace hlvm 
-{
-
-class AutoVarOp;
-
-/// This class represents an block of operators in the HLVM Abstract Syntax 
-/// Tree.  A block is simply a sequential list of Operator nodes that are
-/// executed in sequence. Block itself is an operator. Its result value is
-/// is provided by a ResultOp operator. This approach allows processing to
-/// continue after a result for the block has been determined. Blocks can be
-/// nested within other blocks and used as the operands of other operators.
-/// @see ResultOp
-/// @brief AST Block Node
-class Block : public MultiOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Block() : MultiOperator(BlockID), label(), result(0), autovars() {}
-    virtual ~Block();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const Type* getType() const { return (result?result->getType():0); }
-    const std::string& getLabel() const { return label; }
-    AutoVarOp* getAutoVar(const std::string& name) const; 
-    const Operator* getResult() const { return result; }
-    Block* getParentBlock() const;
-    bool isTerminated() const { 
-      if (empty()) return false; 
-      return back()->isTerminator();
-    }
-    static inline bool classof(const Block*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BlockID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setLabel(const std::string& l) { label = l; }
-
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    typedef std::map<std::string,AutoVarOp*> AutoVarMap;
-    std::string label;
-    Operator* result;
-    AutoVarMap  autovars;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that indicates the result
-/// of a Block operator. The result operator may be utilized anywhere in the 
-/// block. The last such result executed provides the value for the block.
-/// @see Block
-/// @brief AST Result Operator Node
-class ResultOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ResultOp() : UnaryOperator(ResultOpID)  {}
-    virtual ~ResultOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    Operator* getResult() { return UnaryOperator::op1; }
-    static inline bool classof(const ResultOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ResultOpID); }
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    void setResult(Operator* op) { op->setParent(this); }
-  /// @}
-  friend class AST;
-};
-
-} // hlvm 
-#endif
diff --git a/hlvm/hlvm/AST/BooleanOps.cpp b/hlvm/hlvm/AST/BooleanOps.cpp
deleted file mode 100644
index 353f18d..0000000
--- a/hlvm/hlvm/AST/BooleanOps.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//===-- AST Boolean Operators Implementation --------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/BooleanOps.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Implements the AST Boolean Operators 
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/BooleanOps.h>
-
-namespace hlvm 
-{
-
-NotOp::~NotOp() {}
-AndOp::~AndOp() {}
-OrOp::~OrOp() {}
-NorOp::~NorOp() {}
-XorOp::~XorOp() {}
-LessThanOp::~LessThanOp() {}
-GreaterThanOp::~GreaterThanOp() {}
-LessEqualOp::~LessEqualOp() {}
-GreaterEqualOp::~GreaterEqualOp() {}
-EqualityOp::~EqualityOp() {}
-InequalityOp::~InequalityOp() {}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/AST/BooleanOps.h b/hlvm/hlvm/AST/BooleanOps.h
deleted file mode 100644
index 525f9ed..0000000
--- a/hlvm/hlvm/AST/BooleanOps.h
+++ /dev/null
@@ -1,302 +0,0 @@
-//===-- AST Boolean Operators Interface -------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/BooleanOps.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Declares the AST Boolean Operators 
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_BOOLEANOPS_H 
-#define HLVM_AST_BOOLEANOPS_H 
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a not
-/// operator. The NotOp is a unary operator that returns false if its operand is
-/// is non-zero and true if its operand is zero.
-/// @brief AST Not Operator Node   
-class NotOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    NotOp() : UnaryOperator(NotOpID)  {}
-    virtual ~NotOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const NotOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(NotOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to compute the logical and of two quantities. The AndOp is a binary operator
-/// that returns true if both its operands are non-zero and returns false
-/// otherwise. 
-/// @brief AST And Operator Node   
-class AndOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    AndOp() : BinaryOperator(AndOpID)  {}
-    virtual ~AndOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const AndOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(AndOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to compute the logical or of two quantities. The OrOp is a binary operator
-/// that returns false if both its operands are zero and returns true otherwise.
-/// @brief AST Or Operator Node   
-class OrOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    OrOp() : BinaryOperator(OrOpID)  {}
-    virtual ~OrOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const OrOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(OrOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to compute the logical nor of two quantities. The NorOp is a binary operator
-/// that returns true if both its operands are zero and returns false
-/// otherwise. 
-/// @brief AST And Operator Node   
-class NorOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    NorOp() : BinaryOperator(NorOpID)  {}
-    virtual ~NorOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const NorOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(NorOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// to compute the logical exclusive or of two quantities. The XorOp is a 
-/// binary operator that returns true if either of its operands are non-zero 
-/// and returns false if both operands are zero or non-zero.
-/// @brief AST Xor Operator Node   
-class XorOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    XorOp() : BinaryOperator(XorOpID)  {}
-    virtual ~XorOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const XorOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(XorOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing less-than test. The LessThanOp compares its operands and if 
-/// the first operand is less than the second operand it returns true, otherwise
-/// it returns false.
-/// @brief AST Less-Than Operator Node   
-class LessThanOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LessThanOp() : BinaryOperator(LessThanOpID)  {}
-    virtual ~LessThanOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LessThanOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LessThanOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing greater-than test. The GreaterThanOp compares its operands 
-/// and if the first operand is greater than the second operand it returns true,
-/// otherwise it returns false.
-/// @brief AST Less-Than Operator Node   
-class GreaterThanOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GreaterThanOp() : BinaryOperator(GreaterThanOpID)  {}
-    virtual ~GreaterThanOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const GreaterThanOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(GreaterThanOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing less-equal test. The LessEqualOp compares its operands and 
-/// if the first operand is less than or equal to the second operand it returns
-/// true, otherwise it returns false.
-/// @brief AST Less-Equal Operator Node   
-class LessEqualOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LessEqualOp() : BinaryOperator(LessEqualOpID)  {}
-    virtual ~LessEqualOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LessEqualOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LessEqualOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing greater-equal test. The GreaterEqualOp compares its operands
-/// and if the first operand is less than or equal to the second operand it 
-/// returns true, otherwise it returns false.
-/// @brief AST Less-Equal Operator Node   
-class GreaterEqualOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GreaterEqualOp() : BinaryOperator(GreaterEqualOpID)  {}
-    virtual ~GreaterEqualOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const GreaterEqualOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(GreaterEqualOpID);}
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing equality test. The EqualsOp compares its operands
-/// and if the first operand is equal to the second operand it 
-/// returns true, otherwise it returns false.
-/// @brief AST Equality Operator Node   
-class EqualityOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    EqualityOp() : BinaryOperator(EqualityOpID)  {}
-    virtual ~EqualityOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const EqualityOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(EqualityOpID);}
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for performing inequality test. The InequalityOp  compares its operands
-/// and if the first operand is less than or equal to the second operand it 
-/// returns true, otherwise it returns false.
-/// @brief AST Inequality Operator Node   
-class InequalityOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    InequalityOp() : BinaryOperator(InequalityOpID)  {}
-    virtual ~InequalityOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const InequalityOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(InequalityOpID);}
-
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/AST/Bundle.cpp b/hlvm/hlvm/AST/Bundle.cpp
deleted file mode 100644
index 22cc0b2..0000000
--- a/hlvm/hlvm/AST/Bundle.cpp
+++ /dev/null
@@ -1,287 +0,0 @@
-//===-- hlvm/AST/Bundle.cpp - AST Bundle Class ------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Bundle.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Bundle.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/IntrinsicTypesTokenizer.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-using namespace llvm; 
-
-namespace hlvm {
-
-Bundle::~Bundle() { }
-
-void 
-Bundle::insertChild(Node* kid)
-{
-  hlvmAssert(kid && "Null child!");
-  if (Type* ty = dyn_cast<Type>(kid)) {
-    if (Type* n = unresolvedTypes.lookup(ty->getName())) {
-      OpaqueType* ot = llvm::cast<OpaqueType>(n);
-      // FIXME: we should really keep a use list in the type object so this is
-      // more efficient, but it will do for now.
-      for (tlist_iterator I = tlist_begin(), E = tlist_end(); I != E; ++I) {
-        (*I)->resolveTypeTo(ot,ty);
-      }
-      for (clist_iterator I = clist_begin(), E = clist_end(); I != E; ++I ) {
-        (*I)->resolveTypeTo(ot,ty);
-      }
-      unresolvedTypes.erase(ot);
-      // getRoot()->old(ot);
-    }
-    if (!ttable.lookup(ty->getName())) {
-      tlist.push_back(ty);
-      ttable.insert(ty);
-    }
-  } else if (Constant* C = dyn_cast<Constant>(kid)) {
-    clist.push_back(C);
-    // Constants without names are permitted, but not Linkables
-    if (isa<Linkable>(C) || C->hasName())
-      ctable.insert(C);
-  } else
-    hlvmAssert("Don't know how to insert that in a Bundle");
-}
-
-void
-Bundle::removeChild(Node* kid)
-{
-  hlvmAssert(kid && "Null child!");
-  if (const Type* Ty = dyn_cast<Type>(kid)) {
-    for (tlist_iterator I = tlist_begin(), E = tlist_end(); I != E; ++I )
-      if (*I == Ty) { tlist.erase(I); break; }
-    ttable.erase(Ty->getName());
-  } else if (Constant* C = dyn_cast<Constant>(kid)) {
-    // This is sucky slow, but we probably won't be removing nodes that much.
-    for (clist_iterator I = clist_begin(), E = clist_end(); I != E; ++I )
-      if (*I == C) { clist.erase(I); break; }
-    ctable.erase(C->getName());
-  } else 
-    hlvmAssert(!"That node isn't my child");
-}
-
-SignatureType* 
-Bundle::getProgramType()
-{
-  Type *type = getType("ProgramType");
-  if (!type) {
-    AST* ast = getRoot();
-    Type* intType = getIntrinsicType(s32Ty);
-    SignatureType* sig = 
-      ast->new_SignatureType("ProgramType",this,intType,false);
-    sig->setIsIntrinsic(true);
-    Parameter* argc = ast->new_Parameter("argc",intType);
-    PointerType* arg_type = getPointerTo(getIntrinsicType(stringTy));
-    arg_type->setIsIntrinsic(true);
-    PointerType* argv_type = getPointerTo(arg_type);
-    argv_type->setIsIntrinsic(true);
-    Parameter* argv = ast->new_Parameter("argv",argv_type);
-    sig->addParameter(argc);
-    sig->addParameter(argv);
-    return sig;
-  } else if (SignatureType* sig = llvm::dyn_cast<SignatureType>(type))
-    return sig;
-  else
-    hlvmAssert(!"Invalid use of ProgramType");
-}
-
-IntrinsicTypes 
-Bundle::getIntrinsicTypesValue(const std::string& name)
-{
-  int token = HLVM_AST::IntrinsicTypesTokenizer::recognize(name.c_str());
-  if (token == HLVM_AST::TKN_NONE)
-    return NoIntrinsicType;
-  switch (token) {
-    case HLVM_AST::TKN_bool:            return boolTy; break;
-    case HLVM_AST::TKN_buffer:          return bufferTy; break;
-    case HLVM_AST::TKN_char:            return charTy; break;
-    case HLVM_AST::TKN_double:          return doubleTy; break;
-    case HLVM_AST::TKN_f32:             return f32Ty; break;
-    case HLVM_AST::TKN_f44:             return f44Ty; break;
-    case HLVM_AST::TKN_f64:             return f64Ty; break;
-    case HLVM_AST::TKN_f80:             return f80Ty; break;
-    case HLVM_AST::TKN_f96:             return f96Ty; break;
-    case HLVM_AST::TKN_f128:            return f128Ty; break;
-    case HLVM_AST::TKN_float:           return floatTy; break;
-    case HLVM_AST::TKN_int:             return intTy; break;
-    case HLVM_AST::TKN_long:            return longTy; break;
-    case HLVM_AST::TKN_octet:           return octetTy; break;
-    case HLVM_AST::TKN_qs16:            return qs16Ty; break;
-    case HLVM_AST::TKN_qs32:            return qs32Ty; break;
-    case HLVM_AST::TKN_qs64:            return qs64Ty; break;
-    case HLVM_AST::TKN_qs128:           return qs128Ty; break;
-    case HLVM_AST::TKN_qu16:            return qu16Ty; break;
-    case HLVM_AST::TKN_qu32:            return qu32Ty; break;
-    case HLVM_AST::TKN_qu64:            return qu64Ty; break;
-    case HLVM_AST::TKN_qu128:           return qu128Ty; break;
-    case HLVM_AST::TKN_r8:              return r8Ty; break;
-    case HLVM_AST::TKN_r16:             return r16Ty; break;
-    case HLVM_AST::TKN_r32:             return r32Ty; break;
-    case HLVM_AST::TKN_r64:             return r64Ty; break;
-    case HLVM_AST::TKN_s8:              return s8Ty; break;
-    case HLVM_AST::TKN_s16:             return s16Ty; break;
-    case HLVM_AST::TKN_s32:             return s32Ty; break;
-    case HLVM_AST::TKN_s64:             return s64Ty; break;
-    case HLVM_AST::TKN_s128:            return s128Ty; break;
-    case HLVM_AST::TKN_short:           return shortTy; break;
-    case HLVM_AST::TKN_stream:          return streamTy; break;
-    case HLVM_AST::TKN_string:          return stringTy; break;
-    case HLVM_AST::TKN_text:            return textTy; break;
-    case HLVM_AST::TKN_u8:              return u8Ty; break;
-    case HLVM_AST::TKN_u16:             return u16Ty; break;
-    case HLVM_AST::TKN_u32:             return u32Ty; break;
-    case HLVM_AST::TKN_u64:             return u64Ty; break;
-    case HLVM_AST::TKN_u128:            return u128Ty; break;
-    case HLVM_AST::TKN_void:            return voidTy; break;
-    default:  return NoIntrinsicType;
-  }
-}
-
-void
-Bundle::getIntrinsicName(IntrinsicTypes id, std::string& name)
-{
-  switch (id) 
-  {
-    case boolTy:            name = "bool" ; break;
-    case bufferTy:          name = "buffer"; break;
-    case charTy:            name = "char"; break;
-    case doubleTy:          name = "double"; break;
-    case f32Ty:             name = "f32"; break;
-    case f44Ty:             name = "f44" ; break;
-    case f64Ty:             name = "f64" ; break;
-    case f80Ty:             name = "f80"; break;
-    case f96Ty:             name = "f96"; break;
-    case f128Ty:            name = "f128"; break;
-    case floatTy:           name = "float"; break;
-    case intTy:             name = "int"; break;
-    case longTy:            name = "long"; break;
-    case octetTy:           name = "octet"; break;
-    case qs16Ty:            name = "qs16"; break;
-    case qs32Ty:            name = "qs32"; break;
-    case qs64Ty:            name = "qs64"; break;
-    case qs128Ty:           name = "qs128"; break;
-    case qu16Ty:            name = "qs16"; break;
-    case qu32Ty:            name = "qu32"; break;
-    case qu64Ty:            name = "qu64"; break;
-    case qu128Ty:           name = "qs128"; break;
-    case r8Ty:              name = "r8"; break;
-    case r16Ty:             name = "r16"; break;
-    case r32Ty:             name = "r32"; break;
-    case r64Ty:             name = "r64"; break;
-    case s8Ty:              name = "s8"; break;
-    case s16Ty:             name = "s16"; break;
-    case s32Ty:             name = "s32"; break;
-    case s64Ty:             name = "s64"; break;
-    case s128Ty:            name = "s128"; break;
-    case shortTy:           name = "short"; break;
-    case streamTy:          name = "stream"; break;
-    case stringTy:          name = "string"; break;
-    case textTy:            name = "text"; break;
-    case u8Ty:              name = "u8"; break;
-    case u16Ty:             name = "u16"; break;
-    case u32Ty:             name = "u32"; break;
-    case u64Ty:             name = "u64"; break;
-    case u128Ty:            name = "u128"; break;
-    case voidTy:            name = "void"; break;
-    default:
-      hlvmDeadCode("Invalid Primitive");
-      name = "unknown";
-      break;
-  }
-}
-
-Type* 
-Bundle::getIntrinsicType(IntrinsicTypes id)
-{
-  std::string name;
-  getIntrinsicName(id, name);
-  Type* Ty = getType(name);
-  if (!Ty) {
-    Ty = getRoot()->new_IntrinsicType(name, this, id);
-    Ty->setIsIntrinsic(true);
-  }
-  return Ty;
-}
-
-Type*
-Bundle::getIntrinsicType(const std::string& name)
-{
-  IntrinsicTypes it = getIntrinsicTypesValue(name);
-  if (it == NoIntrinsicType)
-    return 0;
-  return getIntrinsicType(it);
-}
-
-PointerType* 
-Bundle::getPointerTo(const Type* Ty)
-{
-  hlvmAssert(Ty != 0);
-  std::string ptr_name = Ty->getName() + "*";
-  Type* t = getType(ptr_name);
-  if (!t || !llvm::isa<PointerType>(t))
-    t = getRoot()->new_PointerType(ptr_name,this,Ty);
-  return llvm::cast<PointerType>(t);
-}
-
-Type*
-Bundle::getType(const std::string& name)
-{
-  if (Type* t = ttable.lookup(name))
-    return t;
-  if (Type* t = unresolvedTypes.lookup(name))
-    return t;
-  return 0;
-}
-
-Type*
-Bundle::getOrCreateType(const std::string& name)
-{
-  Type* t = getType(name);
-  if (!t) {
-    t = getRoot()->new_OpaqueType(name,true,this);
-    unresolvedTypes.insert(t);
-  }
-  return t;
-}
-
-Constant*  
-Bundle::getConst(const std::string& name) const
-{
-  if (Constant* result = ctable.lookup(name))
-    return llvm::cast<Constant>(result);
-  return 0;
-}
-
-Import::~Import()
-{
-}
-
-}
diff --git a/hlvm/hlvm/AST/Bundle.h b/hlvm/hlvm/AST/Bundle.h
deleted file mode 100644
index 241dd64..0000000
--- a/hlvm/hlvm/AST/Bundle.h
+++ /dev/null
@@ -1,269 +0,0 @@
-//===-- AST Bundle Class ----------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Bundle.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Bundle
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_BUNDLE_H
-#define HLVM_AST_BUNDLE_H
-
-#include <hlvm/AST/Node.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/SymbolTable.h>
-
-namespace hlvm 
-{ 
-
-class Type;
-class Linkable;
-
-/// This type enumerates the intrinsic types. Intrinsic types are those which
-/// are intrinsic to HLVM. They are well known, have immutable names, and are
-/// generally fundamental in character.
-/// @brief AST Intrinsic Types Enum
-enum IntrinsicTypes {
-  NoIntrinsicType, ///< This is used for errors, etc.
-  boolTy,     ///< The boolean type
-  FirstIntrinsicType = boolTy,
-  bufferTy,   ///< The memory buffer type
-  charTy,     ///< The UTF-8 character type
-  doubleTy,   ///< 64-bit IEEE 754 double precision
-  f32Ty,      ///< 32-bit IEEE 754 single precision 
-  f44Ty,      ///< 43-bit IEEE 754 extended single precision 
-  f64Ty,      ///< 64-bit IEEE 754 double precision
-  f80Ty,      ///< 80-bit IEEE 754 extended double precision
-  f96Ty,      ///< 96-bit IEEE 754 long extended double precision
-  f128Ty,     ///< 128-bit IEEE 754 quad precision
-  floatTy,    ///< 32-bit IEEE 754 single precision
-  intTy,      ///< Signed 32-bit integer quantity
-  longTy,     ///< Signed 64-bit integer quantity
-  octetTy,    ///< Unsigned 8-bit integer quantity, not computable
-  qs16Ty,     ///< Signed 16-bit rational quantity
-  qs32Ty,     ///< Signed 32-bit rational quantity
-  qs64Ty,     ///< Signed 64-bit rational quantity
-  qs128Ty,    ///< Signed 8-bit rational quantity
-  qu16Ty,     ///< Unsigned 16-bit rational quantity
-  qu32Ty,     ///< Unsigned 32-bit rational quantity
-  qu64Ty,     ///< Unsigned 64-bit rational quantity
-  qu128Ty,    ///< Unsigned 8-bit rational quantity
-  r8Ty,       ///< Range checked signed 8-bit integer quantity
-  r16Ty,      ///< Range checked signed 16-bit integer quantity
-  r32Ty,      ///< Range checked signed 32-bit integer quantity
-  r64Ty,      ///< Range checked signed 64-bit integer quantity
-  s8Ty,       ///< Signed 8-bit integer quantity
-  s16Ty,      ///< Signed 16-bit integer quantity
-  s32Ty,      ///< Signed 32-bit integer quantity
-  s64Ty,      ///< Signed 64-bit integer quantity
-  s128Ty,     ///< Signed 128-bit integer quantity
-  shortTy,    ///< Signed 16-bit integer quantity
-  streamTy,   ///< The I/O stream type
-  stringTy,   ///< The UTF-8 string type
-  textTy,     ///< The UTF-8 text type
-  u8Ty,       ///< Unsigned 8-bit integer quantity
-  u16Ty,      ///< Unsigned 16-bit integer quantity
-  u32Ty,      ///< Unsigned 32-bit integer quantity
-  u64Ty,      ///< Unsigned 64-bit integer quantity
-  u128Ty,     ///< Unsigned 128-bit integer quantity
-  voidTy,     ///< OpaqueType, 0-bits, non-readable, non-writable
-  LastIntrinsicType = u128Ty
-};
-
-/// This class is simply a collection of definitions. Things that can be 
-/// defined in a bundle include types, global variables, functions, classes,
-/// etc. A bundle is the unit of linking and loading. A given compilation unit 
-/// may define as many bundles as it desires. When a bundle is loaded, all of 
-/// its definitions become active.  Only those things defined in a bundle 
-/// participate in linking A Bundle's parent is always the AST node. Each 
-/// Bundle has a name and that name forms a namespace for the definitions 
-/// within the bundle. Bundles cannot be nested. 
-/// @brief AST Bundle Node
-class Bundle : public Documentable
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<Type*> TypeList;
-    typedef TypeList::iterator tlist_iterator;
-    typedef TypeList::const_iterator tlist_const_iterator;
-
-    typedef SymbolTable<Type> TypeTable;
-    typedef TypeTable::iterator ttable_iterator;
-    typedef TypeTable::const_iterator ttable_const_iterator;
-
-    typedef std::vector<Constant*> ConstantList;
-    typedef ConstantList::iterator clist_iterator;
-    typedef ConstantList::const_iterator clist_const_iterator;
-
-    typedef SymbolTable<Constant> ConstantTable;
-    typedef ConstantTable::iterator ctable_iterator;
-    typedef ConstantTable::const_iterator ctable_const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    Bundle() 
-      : Documentable(BundleID), name(), tlist(), ttable(), clist(), ctable() {}
-    virtual ~Bundle();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getName() const { return name; }
-    static inline bool classof(const Bundle*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BundleID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setName(const std::string& n) { name = n; }
-    virtual void insertChild(Node* kid);
-    virtual void removeChild(Node* kid);
-
-  /// @}
-  /// @name Type Management
-  /// @{
-  public:
-    /// Return the type of a program, named ProgramType
-    SignatureType* getProgramType();
-
-    /// Get the Intrinsic Id from the intrinsic's name
-    IntrinsicTypes getIntrinsicTypesValue(const std::string& name);
-
-    /// Get the standard name of one of the primitive types
-    void getIntrinsicName(IntrinsicTypes ty, std::string& name);
-
-    /// Get one of the intrinsic types directly by its identifier
-    Type* getIntrinsicType(IntrinsicTypes ty);
-
-    /// Get one of the intrinsic types by its name
-    Type* getIntrinsicType(const std::string& name);
-
-    /// Get a standard pointer type to the element type Ty.
-    PointerType* getPointerTo(const Type* Ty);
-
-    /// Resolve a type name into a Type and allow for forward referencing.
-    Type* getOrCreateType(const std::string& name);
-
-    /// Get an existing type by name or 0 if there is no such type
-    Type*      getType(const std::string& n);
-
-    /// Get an existing constant by name or 0 if there is no such constant
-    Constant*  getConst(const std::string& n) const;
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    // Type Insertion Order Iteration
-    tlist_iterator          tlist_begin()       { return tlist.begin(); }
-    tlist_const_iterator    tlist_begin() const { return tlist.begin(); }
-    tlist_iterator          tlist_end  ()       { return tlist.end(); }
-    tlist_const_iterator    tlist_end  () const { return tlist.end(); }
-    size_t                  tlist_size () const { return tlist.size(); }
-    bool                    tlist_empty() const { return tlist.empty(); }
-
-    /// Type Symbol Table Iteration
-    ttable_iterator         ttable_begin()       { return ttable.begin(); }
-    ttable_const_iterator   ttable_begin() const { return ttable.begin(); }
-    ttable_iterator         ttable_end  ()       { return ttable.end(); }
-    ttable_const_iterator   ttable_end  () const { return ttable.end(); }
-    size_t                  ttable_size () const { return ttable.size(); }
-    bool                    ttable_empty() const { return ttable.empty(); }
-
-    /// Value Insertion Order Iteration
-    clist_iterator          clist_begin()       { return clist.begin(); }
-    clist_const_iterator    clist_begin() const { return clist.begin(); }
-    clist_iterator          clist_end  ()       { return clist.end(); }
-    clist_const_iterator    clist_end  () const { return clist.end(); }
-    size_t                  clist_size () const { return clist.size(); }
-    bool                    clist_empty() const { return clist.empty(); }
-
-    /// Value Symbol Table Iteration
-    ctable_iterator         ctable_begin()       { return ctable.begin(); }
-    ctable_const_iterator   ctable_begin() const { return ctable.begin(); }
-    ctable_iterator         ctable_end  ()       { return ctable.end(); }
-    ctable_const_iterator   ctable_end  () const { return ctable.end(); }
-    size_t                  ctable_size () const { return ctable.size(); }
-    bool                    ctable_empty() const { return ctable.empty(); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string   name;      ///< The name for this bundle
-    TypeList      tlist;     ///< The list of types
-    TypeTable     ttable;    ///< The list of types
-    TypeTable     unresolvedTypes; ///< The list of forward referenced types
-    ConstantList  clist;    ///< The list of values in insertion order
-    ConstantTable ctable;
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an Import 
-/// of one Bundle into another. An Import encapsulates two data items: the URI
-/// of the Bundle that is to be imported, and a prefix by which items in that
-/// Bundle can be referenced. For example, if Bundle "Fooness" contains a 
-/// definition named "foo" then another bundle specifying an import of "Fooness"
-/// with prefix "F" can refer to "foo" in "Fooness" with "F:foo".
-/// @see Bundle
-/// @brief AST Import Node
-class Import : public Documentable
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Import() : Documentable(ImportID) {}
-    virtual ~Import();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const Import*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ImportID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setPrefix(const std::string& pfx) { prefix = pfx; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string prefix;
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/Constants.cpp b/hlvm/hlvm/AST/Constants.cpp
deleted file mode 100644
index edd8421..0000000
--- a/hlvm/hlvm/AST/Constants.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//===-- AST Constant Expression Operators -----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Constants.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Implements the classes that provide constant expressions
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/Type.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-namespace hlvm {
-
-Constant::~Constant() { }
-ConstantValue::~ConstantValue() { }
-ConstantAny::~ConstantAny() { }
-ConstantBoolean::~ConstantBoolean() { }
-ConstantCharacter::~ConstantCharacter() { }
-ConstantEnumerator::~ConstantEnumerator() { }
-ConstantInteger::~ConstantInteger() { }
-ConstantReal::~ConstantReal() { }
-ConstantString::~ConstantString() { }
-ConstantPointer::~ConstantPointer() { }
-ConstantAggregate::~ConstantAggregate() { }
-
-void 
-ConstantAggregate::insertChild(Node* n)
-{
-  hlvmAssert(llvm::isa<ConstantValue>(n));
-  ConstantValue* CV = llvm::cast<ConstantValue>(n);
-  elems.push_back(CV);
-}
-
-void 
-ConstantAggregate::removeChild(Node* n)
-{
-  hlvmAssert(llvm::isa<ConstantValue>(n));
-  ConstantValue* CV = llvm::cast<ConstantValue>(n);
-  for (ElementsList::iterator I = elems.begin(), E = elems.end(); I != E; ++I)
-    if (*I == CV) {
-      elems.erase(I);
-      break;
-    }
-}
-
-ConstantArray::~ConstantArray() { }
-
-const Type* 
-ConstantArray::getElementType() const
-{
-  const ArrayType* AT = llvm::cast<ArrayType>(this->getType());
-  return AT->getElementType();
-}
-
-ConstantVector::~ConstantVector() { }
-ConstantStructure::~ConstantStructure() { }
-ConstantContinuation::~ConstantContinuation() { }
-
-}
diff --git a/hlvm/hlvm/AST/Constants.h b/hlvm/hlvm/AST/Constants.h
deleted file mode 100644
index 3fe7d86..0000000
--- a/hlvm/hlvm/AST/Constants.h
+++ /dev/null
@@ -1,548 +0,0 @@
-//===-- AST Constant Values -------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Constants.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/25
-/// @since 0.1.0
-/// @brief Declares the AST Constant Expression Operators 
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_CONSTANTS_H
-#define HLVM_AST_CONSTANTS_H
-
-#include <hlvm/AST/Node.h>
-
-namespace hlvm 
-{
-
-/// This abstract base class represents a constant value in the HLVM Abstract 
-/// Syntax Tree.  All Constants are immutable values of a specific type. 
-/// Constants do not have a storage location nor an address nor do they
-/// participate in linking.  However, as they are values they may be used as 
-/// the operand of instructions or as the initializers of variables. Constants
-/// do not participate in linking and are always internal to the bundle in which
-/// they appear. To create a linkable constant, declare a variable that is 
-/// constant and initialize it with a Constant.  There are many kinds of 
-/// constants including simple literal values (numbers an text), complex 
-/// constant expressions (constant computations), and aggregate constants that
-/// represent constant arrays, vectors, pointers and structures.
-/// @see hlvm/AST/Constants.h
-/// @brief AST Abstract Constant Node
-class Constant : public Value
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Constant(NodeIDs id) : Value(id), name() {}
-    virtual ~Constant();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the name of the Constant
-    const std::string& getName() const { return name; }
-    bool hasName() const { return !name.empty(); }
-    static inline bool classof(const Constant*) { return true; }
-    static inline bool classof(const Node* N) { return N->isConstant(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Set the name of the Constant
-    void setName(const std::string& n) { name = n; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name; ///< The name of this value.
-
-  /// @}
-  friend class AST;
-};
-
-/// This is an abstract base class in the Abstract Syntax Tree that represents
-/// a constant value used in the program.
-/// @brief AST Constant Value Node
-class ConstantValue: public Constant
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantValue(NodeIDs id) : Constant(id) {}
-    virtual ~ConstantValue();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantValue*) { return true; }
-    static inline bool classof(const Node* N) { return N->isConstantValue(); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a 
-/// constant any value. 
-/// @brief AST Constant Any Value Node
-class ConstantAny: public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantAny(ConstantValue* val) : ConstantValue(ConstantAnyID) {
-      value = val; }
-    virtual ~ConstantAny();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    ConstantValue* getValue() const { return value; }
-    static inline bool classof(const ConstantAny*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantAnyID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    ConstantValue* value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a 
-/// constant boolean value. 
-/// @brief AST Constant Boolean Node
-class ConstantBoolean: public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantBoolean(bool val) : ConstantValue(ConstantBooleanID) {
-      flags = val; }
-    virtual ~ConstantBoolean();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    bool getValue() const { return flags != 0; }
-    static inline bool classof(const ConstantBoolean*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantBooleanID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a 
-/// constant character value. 
-/// @brief AST Constant Character Node
-class ConstantCharacter: public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantCharacter(const std::string& val) 
-      : ConstantValue(ConstantCharacterID) { value = val; }
-    virtual ~ConstantCharacter();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getValue() const { return value; }
-    static inline bool classof(const ConstantCharacter*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantCharacterID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a 
-/// constant octet value. 
-/// @brief AST Constant Octet Node
-class ConstantEnumerator: public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantEnumerator(const std::string& val) 
-      : ConstantValue(ConstantEnumeratorID) { value = val; }
-    virtual ~ConstantEnumerator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getValue() const { return value; }
-    static inline bool classof(const ConstantEnumerator*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantEnumeratorID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a 
-/// constant integer value. This kind of constant can represent integer valued
-/// constants of any of the signed or unsigned integer types of any bitsize.
-/// @see IntegerType
-/// @brief AST Constant Integer Node
-class ConstantInteger: public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantInteger(uint16_t base) : ConstantValue(ConstantIntegerID) {}
-    virtual ~ConstantInteger();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getValue() const { return value; }
-    uint16_t getBase() const { return flags; }
-    static inline bool classof(const ConstantInteger*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantIntegerID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setValue(const std::string& v) { value = v; }
-    void setBase(uint16_t base) { flags = base; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant
-/// real number value. This kind of constant can represent a constant real
-/// number value of any mantissa or exponent size. 
-/// @see RealType
-/// @brief AST Constant Real Node
-class ConstantReal : public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantReal() : ConstantValue(ConstantRealID)  {}
-    virtual ~ConstantReal();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getValue() const { return value; }
-    static inline bool classof(const ConstantReal*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantRealID); }
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    void setValue(const std::string& v ) { value = v; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// string value. The constant value is encoded in UTF-8 with a null terminator.
-/// @see StringType
-/// @brief AST Constant String Node
-class ConstantString : public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantString() : ConstantValue(ConstantStringID)  {}
-    virtual ~ConstantString();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string&  getValue() const{ return value; }
-    static inline bool classof(const ConstantString*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantStringID); }
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    void setValue(const std::string& v ) { value = v; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// pointer value. 
-/// @brief AST Constant Pointer Node
-class ConstantPointer : public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantPointer(const Constant* cv) 
-      : ConstantValue(ConstantPointerID)  { value = cv; }
-    virtual ~ConstantPointer();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Constant* getValue() const { return value; }
-    static inline bool classof(const ConstantPointer*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantPointerID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    const Constant* value;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant
-/// aggregate. This can be used to specify constant values of aggregate types
-/// such as arrays, vectors, structures and continuations. It simply contains 
-/// a list of other elements which themselves must be constants.
-/// @brief AST Constant Array Node.
-class ConstantAggregate : public ConstantValue
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<const ConstantValue*> ElementsList;
-    typedef ElementsList::iterator iterator;
-    typedef ElementsList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantAggregate(NodeIDs id) : ConstantValue(id), elems()  {}
-    virtual ~ConstantAggregate();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantAggregate*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->isConstantAggregate(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void addConstant(const ConstantValue* val) { elems.push_back(val); }
-
-  protected:
-    virtual void insertChild(Node* n);
-    virtual void removeChild(Node* n);
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    iterator             begin()       { return elems.begin(); }
-    const_iterator       begin() const { return elems.begin(); }
-    iterator             end  ()       { return elems.end(); }
-    const_iterator       end  () const { return elems.end(); }
-    size_t               size () const { return elems.size(); }
-    bool                 empty() const { return elems.empty(); }
-    const ConstantValue* front() const { return elems.front(); }
-    const ConstantValue* back()  const { return elems.back(); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    ElementsList elems; ///< The contained types
-  /// @}
-
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// array value. 
-/// @brief AST Constant Array Node
-class ConstantArray : public ConstantAggregate
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantArray() : ConstantAggregate(ConstantArrayID) {}
-    virtual ~ConstantArray();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Type* getElementType() const;
-    static inline bool classof(const ConstantArray*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ConstantArrayID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// array value. 
-/// @brief AST Constant Vector Node
-class ConstantVector : public ConstantAggregate
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantVector() : ConstantAggregate(ConstantVectorID) {}
-    virtual ~ConstantVector();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantVector*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ConstantVectorID);}
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// array value. 
-/// @brief AST Constant Vector Node
-class ConstantStructure : public ConstantAggregate
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantStructure() : ConstantAggregate(ConstantStructureID) {}
-    virtual ~ConstantStructure();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantStructure*) { return true; }
-    static inline bool classof(const Node* N) { 
-      return N->is(ConstantStructureID);
-    }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant 
-/// continuation value. 
-/// @brief AST Constant Vector Node
-class ConstantContinuation : public ConstantAggregate
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantContinuation() : ConstantAggregate(ConstantContinuationID) {}
-    virtual ~ConstantContinuation();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantContinuation*) { return true; }
-    static inline bool classof(const Node* N) { 
-      return N->is(ConstantContinuationID);
-    }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that yields a constant
-/// expression. The expression uses a limited set of operator identifiers that
-/// can yield constants such as arithmetic or comparison operators. 
-/// @brief AST Constant Expression Node.
-class ConstantExpression : public ConstantValue
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ConstantExpression(NodeIDs exprOp) : ConstantValue(ConstantExpressionID)
-      { flags = exprOp; }
-    virtual ~ConstantExpression();
-  public:
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ConstantExpression*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(ConstantExpressionID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/AST/ContainerType.cpp b/hlvm/hlvm/AST/ContainerType.cpp
deleted file mode 100644
index 3880b79..0000000
--- a/hlvm/hlvm/AST/ContainerType.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//===-- hlvm/AST/ContainerType.cpp - AST ContainerType Class ----*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/ContainerType.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Implements the functions of the various AST container types
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/ADT/StringExtras.h>
-
-using namespace llvm;
-
-namespace hlvm {
-
-UniformContainerType::~UniformContainerType() { }
-
-const char* 
-UniformContainerType::getPrimitiveName() const
-{
-  hlvmDeadCode("getPrimitiveName called on a container type");
-  return 0;
-}
-
-void 
-UniformContainerType::resolveTypeTo(const Type* from, const Type* to)
-{
-  hlvmAssert(isa<OpaqueType>(from) && !isa<OpaqueType>(to));
-  if (elemType == from)
-    elemType = to;
-}
-
-PointerType::~PointerType() { }
-ArrayType::~ArrayType() { }
-VectorType::~VectorType() { }
-NamedType::~NamedType() {}
-
-void 
-NamedType::resolveTypeTo(const Type* from, const Type* to)
-{
-  hlvmAssert(isa<OpaqueType>(from) && !isa<OpaqueType>(to));
-  if (type == from)
-    type = to;
-}
-
-DisparateContainerType::~DisparateContainerType() { }
-
-const char* 
-DisparateContainerType::getPrimitiveName() const
-{
-  hlvmDeadCode("getPrimitiveName called on a container type");
-  return 0;
-}
-
-void
-DisparateContainerType::resolveTypeTo(const Type* from, const Type* to)
-{
-  hlvmAssert(isa<OpaqueType>(from) && !isa<OpaqueType>(to));
-  for (iterator I = begin(), E = end(); I != E; ++I)
-    if ((*I)->getType() == from)
-      (*I)->setType(to);
-}
-
-unsigned 
-DisparateContainerType::getFieldIndex(const std::string& fldname) const
-{
-for (const_iterator I = begin(), E = end(); I != E; ++I )
-  if ((*I)->getName() == fldname)
-    return I - begin() + 1;
-return 0;
-}
-
-const Type*
-DisparateContainerType::getFieldType(const std::string& fldname) const
-{
-for (const_iterator I = begin(), E = end(); I != E; ++I )
-  if ((*I)->getName() == fldname)
-    return (*I)->getType();
-return 0;
-}
-
-StructureType::~StructureType() {}
-ContinuationType::~ContinuationType() {}
-SignatureType::~SignatureType() {}
-
-void SignatureType::resolveTypeTo(const Type* from, const Type* to)
-{
-  DisparateContainerType::resolveTypeTo(from,to);
-  if (result == from)
-    result = to;
-}
-
-}
diff --git a/hlvm/hlvm/AST/ContainerType.h b/hlvm/hlvm/AST/ContainerType.h
deleted file mode 100644
index 2309dde..0000000
--- a/hlvm/hlvm/AST/ContainerType.h
+++ /dev/null
@@ -1,433 +0,0 @@
-//===-- AST ContainerType Class ---------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/ContainerType.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::ContainerType
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_CONTAINERTYPE_H
-#define HLVM_AST_CONTAINERTYPE_H
-
-#include <hlvm/AST/Type.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a uniform
-/// container type.  Uniform container types are those types that reference 
-/// another type. They may have multiple elements but all elements are of the
-/// same type, hence they are uniform.  This is true of types such as 
-/// PointerType, ArrayType, and VectorTYpe.
-/// @brief AST Abstract Uniform Container Type Node
-class UniformContainerType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    UniformContainerType(NodeIDs id) : Type(id), elemType(0) {}
-    virtual ~UniformContainerType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Type* getElementType() const { return elemType; }
-    virtual const char* getPrimitiveName() const; // asserting override
-    /// Methods to support type inquiry via isa, cast, dyn_cast
-    static inline bool classof(const UniformContainerType*) { return true; }
-    static inline bool classof(const Type* T) { 
-      return T->isUniformContainerType(); 
-    }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-    void setElementType(const Type* t) { elemType = t; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    const Type* elemType; ///< The contained types
-  /// @}
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a storage 
-/// location that is a pointer to another storage location of a specific type.
-/// PointerType is a UniformContainerType meaning that the referrent object is
-/// of only one type.
-/// @brief AST Pointer Type Node
-class PointerType : public UniformContainerType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PointerType() : UniformContainerType(PointerTypeID) {}
-    virtual ~PointerType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const PointerType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(PointerTypeID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree note that represents an array of
-/// some type.  An array is a sequential layout of multiple elements all of the
-/// same type. Arrays in HLVM are dynamically resizeable but the type 
-/// specification can indicate a maximum size beyond which the array cannot
-/// grow.  Setting the maximum size to 0 indicates that the size of the array
-/// is unbounded and it may grow to the limits of available memory. This 
-/// usage is discouraged as knowing the maximum memory size can make the 
-/// implementation of the array more efficient in its use of memory and limit
-/// the amount of reallocation necessary when the array changes size. An
-/// ArrayType is a UniformContainerType because it contains a number of elements
-/// all of uniform type.
-/// @brief AST Array Type Node
-class ArrayType : public UniformContainerType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ArrayType() : UniformContainerType(ArrayTypeID), maxSize(0) {}
-    virtual ~ArrayType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the maximum size the array can grow to.
-    uint64_t getMaxSize()  const { return maxSize; }
-
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const ArrayType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(ArrayTypeID); }
-    
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Set the maximum size the array can grow to.
-    void setMaxSize(uint64_t max) { maxSize = max; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint64_t maxSize; ///< The maximum number of elements in the array
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree Node that represents a fixed 
-/// size, packed vector of some other type. Some languages call this an "array"
-/// but arrays in HLVM can be dynamically resized. Vectors, however, cannot 
-/// be resized.  Where possible, HLVM will attempt to generate code that makes 
-/// use of a machines vector instructions to process vector types. Except for
-/// the fixed size, VectorType objects are identical in functionality to 
-/// ArrayType objects. VectorType is a UniformContainerType because it
-/// represents a container of uniformly typed elements.
-/// @brief AST Vector Type Node
-class VectorType : public UniformContainerType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    VectorType() : UniformContainerType(VectorTypeID), size(0) {}
-    virtual ~VectorType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the maximum size the array can grow to.
-    uint64_t getSize()  const { return size; }
-
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const VectorType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(VectorTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Set the size of the vector.
-    void setSize(uint64_t max) { size = max; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint64_t size; ///< The (fixed) size of the vector
-  /// @}
-  friend class AST;
-};
-
-/// This typedef is used to associate a name with a type. Although types have 
-/// names, this provides another name such as used in the fields of a structure
-/// or the formal parameters of a function.
-/// @see Type
-/// @see StructureType
-/// @see SignatureType
-/// @see DisparateContainerType
-/// @brief A Named Type
-class NamedType : public Documentable
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    NamedType() : Documentable(NamedTypeID), name(), type(0) {}
-    virtual ~NamedType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the maximum size the array can grow to.
-    const std::string& getName()  const { return name; }
-    bool hasName() const { return !name.empty(); }
-    const Type* getType() const { return type; }
-
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const NamedType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(NamedTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Set the size of the vector.
-    void setName(const std::string& N) { name = N; }
-    void setType(const Type* Ty) { type = Ty; }
-    void resolveTypeTo(const Type* from, const Type* to);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name;
-    const Type* type;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a Type that
-/// contains elements of potentially disparate other types. 
-/// @see ContinuationType
-/// @see StructureType
-/// @see SignatureType
-/// @brief AST Abstract Disparate Container Type Node
-class DisparateContainerType : public Type
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<NamedType*> ContentsList;
-    typedef ContentsList::iterator iterator;
-    typedef ContentsList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    DisparateContainerType(NodeIDs id) : Type(id), contents() {}
-    virtual ~DisparateContainerType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    const NamedType* getField(unsigned index) const { return contents[index]; }
-
-    /// Return the index of a named field starting at 1. If the field is not
-    /// found, returns 0.
-    unsigned getFieldIndex(const std::string& fldname) const;
-    const Type* getFieldType(const std::string& fldname) const;
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const DisparateContainerType*) { return true; }
-    static inline bool classof(const Node* N) { 
-      return N->isDisparateContainerType(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-    void setTypes(const std::vector<NamedType*>& Types) { contents = Types; }
-    void addType(NamedType* NT )
-      { contents.push_back(NT); }
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    iterator         begin()       { return contents.begin(); }
-    const_iterator   begin() const { return contents.begin(); }
-    iterator         end  ()       { return contents.end(); }
-    const_iterator   end  () const { return contents.end(); }
-    size_t           size () const { return contents.size(); }
-    bool             empty() const { return contents.empty(); }
-    NamedType*       front()       { return contents.front(); }
-    const NamedType* front() const { return contents.front(); }
-    NamedType*       back()        { return contents.back(); }
-    const NamedType* back()  const { return contents.back(); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    ContentsList contents; ///< The contained types
-  /// @}
-};
-
-/// A convenience typedef so we can call NamedTypes as "Fields"
-typedef NamedType Field;
-
-/// This class provides an Abstract Syntax Tree node that represents an 
-/// sequence type. A sequence type is a type that lays out its elements in 
-/// sequential memory locations. Unlike ArrayType, SequenceType allows its 
-/// elements to be of disparate type. Consequently, StructureType is a
-/// DisparateContainerType.  
-/// @brief AST Structure Type Node
-class StructureType : public DisparateContainerType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StructureType(NodeIDs id = StructureTypeID ) : DisparateContainerType(id) {}
-    virtual ~StructureType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const StructureType*) { return true; }
-    static inline bool classof(const Node* T) 
-      { return T->is(StructureTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setFields(const std::vector<Field*>& fields) { setTypes(fields); }
-    void addField(Field* Fld ) { addType(Fld); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents data held
-/// for a continuation.  A ContinutationType is a StructureType because it has
-/// the same semantics as a structure. It allows the programmer to store various
-/// bits of information that are to be restored at a later time, when the 
-/// continuation is called. In addition, HLVM will (transparently) associate
-/// the runtime context for the continutation with the programmer's 
-/// ContinuationType.  
-/// @brief AST Continuation Type Node
-class ContinuationType : public StructureType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ContinuationType() : StructureType(ContinuationTypeID) {}
-    virtual ~ContinuationType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const ContinuationType*) { return true; }
-    static inline bool classof(const Node* T) 
-      { return T->is(ContinuationTypeID); }
-  /// @}
-
-  friend class AST;
-};
-
-/// A convenience typedef so we can call NamedTypes as Parameters
-typedef NamedType Parameter;
-
-/// This class provides an Abstract Syntax Tree node that represents the call
-/// signature of an HLVM function. A SignatureType encapsulates the
-/// of varying type. 
-/// @see Function
-/// @brief AST Signature Type Node
-class SignatureType : public DisparateContainerType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SignatureType() 
-      : DisparateContainerType(SignatureTypeID), result(0) {}
-    virtual ~SignatureType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Type* getResultType() const { return result; }
-    bool  isVarArgs() const { return flags & IsVarArgsTF; }
-
-    /// Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const SignatureType*) { return true; }
-    static inline bool classof(const Node* T) 
-      { return T->is(SignatureTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setResultType(const Type* ty) { result = ty; }
-    void setIsVarArgs(bool is) { 
-      if (is) flags |= IsVarArgsTF; else  flags &= ~IsVarArgsTF; }
-    void setParameters(const std::vector<Parameter*>& param) { setTypes(param);}
-    void addParameter(Parameter* param) { addType(param); }
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    const Type* result;  ///< The result type of the function signature
-  /// @}
-  friend class AST;
-};
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/ControlFlow.cpp b/hlvm/hlvm/AST/ControlFlow.cpp
deleted file mode 100644
index 71ee126..0000000
--- a/hlvm/hlvm/AST/ControlFlow.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//===-- AST Control Flow Nodes ----------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/ControlFlow.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Implements the classes that provide program control flow
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-using namespace llvm;
-
-namespace hlvm {
-
-SelectOp::~SelectOp() {}
-SwitchOp::~SwitchOp() {}
-WhileOp::~WhileOp() {}
-const Type* 
-WhileOp::getType() const
-{
-  hlvmAssert(getNumOperands() == 2);
-  Operator* op2 = getOperand(1);
-  return op2->getType();
-}
-
-UnlessOp::~UnlessOp() {}
-const Type* 
-UnlessOp::getType() const
-{
-  hlvmAssert(getNumOperands() == 2);
-  Operator* op2 = getOperand(1);
-  return op2->getType();
-}
-
-UntilOp::~UntilOp() {}
-const Type* 
-UntilOp::getType() const
-{
-  hlvmAssert(getNumOperands() == 2);
-  Operator* op1 = getOperand(0);
-  return op1->getType();
-}
-
-LoopOp::~LoopOp() {}
-
-const Type* 
-LoopOp::getType() const
-{
-  hlvmAssert(getNumOperands() == 3);
-  Operator* op2 = getOperand(1);
-  return op2->getType();
-}
-
-ReturnOp::~ReturnOp() { }
-BreakOp::~BreakOp() {}
-ContinueOp::~ContinueOp() {}
-CallOp::~CallOp() {}
-
-Function* 
-CallOp::getCalledFunction() const
-{
-  hlvmAssert(isa<GetOp>(getOperand(0)));
-  GetOp* refop = cast<GetOp>(getOperand(0));
-  const Documentable* referent = refop->getReferent();
-  hlvmAssert(isa<Function>(referent));
-  return const_cast<Function*>(cast<Function>(referent));
-}
-
-const Type* 
-CallOp::getType() const 
-{
-  Function* F = getCalledFunction();
-  hlvmAssert(F && "Call With No Function?");
-  return F->getSignature()->getResultType();
-}
-
-}
diff --git a/hlvm/hlvm/AST/ControlFlow.h b/hlvm/hlvm/AST/ControlFlow.h
deleted file mode 100644
index c64db41..0000000
--- a/hlvm/hlvm/AST/ControlFlow.h
+++ /dev/null
@@ -1,335 +0,0 @@
-//===-- AST Control Flow Operators ------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/ControlFlow.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/25
-/// @since 0.1.0
-/// @brief Declares the AST Control flow classes (Loop, If, Call, Return, etc.)
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_CONTROLFLOW_H
-#define HLVM_AST_CONTROLFLOW_H
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a select 
-/// operator. The select operator is a ternary operator that evaluates its first
-/// operand as a boolean. If the result is true, the second operand is evaluated
-/// and its result is the result of the select operator. If the result of the
-/// first operand is false, the third operand is evaluated and its result is the
-/// result of the select operator. This is similar to the ternary operator in
-/// other languages, such as ?: in C.  It also fulfills the purpose of an "if"
-/// statement except it is more generalized because the operator has a result
-/// value whereas most "if" statements do not. The second and third operands 
-/// can be any type but they must both be the same type. If the second and 
-/// third operands are blocks, and neither contains a result operator, the
-/// result of those blocks has type "void" and consequently so does the result
-/// of the select operator.
-/// @brief AST Select Operator Node
-class SelectOp : public TernaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SelectOp() : TernaryOperator(SelectOpID)  {}
-    virtual ~SelectOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const SelectOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(SelectOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a switch
-/// statement. THis is one of the more complicated operators in HLVM. The switch
-/// operator can have an unlimited number of operands. Its first operand is an
-/// expression to evaluate of any simple or primary type. This is the control
-/// expression. The remaining operands must be in pairs. The first operand of 
-/// the pair is an operator to match agains the control expression. The second
-/// operand of the pair is an operator to execute if the first operand of the 
-/// pair matched. This is very analagous to a switch statement in other 
-/// languages except that it has fewer restrictions. It is not limited to 
-/// integer types, but only to those types with a collation order. Its "case 
-/// statements" are not limited to constant values but can be full expressions 
-/// or even blocks of operators. Of course, constant values will execute faster.
-/// @brief AST Switch Operator Node
-class SwitchOp : public MultiOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SwitchOp() : MultiOperator(SwitchOpID)  {}
-    virtual ~SwitchOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const SwitchOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(SwitchOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class prvoides an Abstract Syntax Tree node that represents a loop
-/// construct with two operands. The first operand is a boolean expression 
-/// that is tested before each iteration. If the expression evaluates to false,
-/// the loop terminates. The second operand is the expression or block to be 
-/// executed on each iteration. This is similar to a "while" loop in other 
-/// languages, hence the name. If the second operand declares a result, then
-/// the value of that result on the final iteration is the value of the loop.
-/// Otherwise the WhileOp may not be used as a value (has type void).
-/// @brief AST While Loop Operator Node
-class WhileOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    WhileOp() : BinaryOperator(WhileOpID) {}
-    virtual ~WhileOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const Type* getType() const;
-    static inline bool classof(const WhileOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(WhileOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class prvoides an Abstract Syntax Tree node that represents a loop
-/// construct with two operands. The first operand is a boolean expression 
-/// that is tested before each iteration. If the expression evaluates to true, 
-/// the loop terminates. The second operand is the expression or block to be 
-/// executed on each iteration. This is similar to a "while" loop in other 
-/// languages, except the logic of the control expression is inverted. If the 
-/// second operand declares a result, then the value of that result on the 
-/// final iteration is the value of the loop.  Otherwise the UnlessOp may 
-/// not be used as a value (has type void).
-/// @brief AST Unless Loop Operator Node
-class UnlessOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    UnlessOp() : BinaryOperator(UnlessOpID) {}
-    virtual ~UnlessOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const Type* getType() const;
-    static inline bool classof(const UnlessOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(UnlessOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class prvoides an Abstract Syntax Tree node that represents a loop
-/// construct with two operands. The second operand is a boolean expression 
-/// that is tested after each iteration. If the expression evaluates to true, 
-/// the loop terminates. The first operand is the expression or block to be 
-/// executed on each iteration. This is similar to a "do" loop in other 
-/// languages. If the first operand declares a result, then the value of that 
-/// result on the final iteration is the value of the loop.  Otherwise the 
-/// UntilOp may not be used as a value (has type void).
-/// @brief AST Unless Loop Operator Node
-class UntilOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    UntilOp() : BinaryOperator(UntilOpID) {}
-    virtual ~UntilOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const Type* getType() const;
-    static inline bool classof(const UntilOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(UntilOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a
-/// generalized loop construct for HLVM. The LoopOp takes three operands, as
-/// follows:
-/// -# a boolean expression to be evaluated before each iteration begins that 
-///    controls loop termination 
-/// -# an operator (typically a block) to be evaluated on each iteration of the
-///    loop. This is the main body of the loop
-/// -# a boolean expression to be evaluated after each iteration ends that 
-///    controls loop termination
-/// This construct is similar to combining a WhileOp with an UntilOp.
-/// @brief AST Loop Operator Node
-class LoopOp : public TernaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LoopOp() : TernaryOperator(LoopOpID)  {}
-    virtual ~LoopOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const Type* getType() const;
-    static inline bool classof(const LoopOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LoopOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a return 
-/// operator. The return operator returns from the function that contains it.
-/// The ReturnOp takes one operand which is the value to return to the caller
-/// of the Function.
-/// @brief AST Return Operator Node
-class ReturnOp : public NilaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ReturnOp() : NilaryOperator(ReturnOpID)  {}
-    virtual ~ReturnOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ReturnOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ReturnOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a break
-/// operator. A BreakOp causes control to flow to the operator immediately
-/// following the enclosing block. The enclosing block can be any kind of block.
-/// If a BreakOp occurs in the main block of a function, it is equivalent to 
-/// returning void from that function. If the function doesn't return void, it
-/// is an error.
-/// @brief AST Break Operator Node
-class BreakOp : public NilaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BreakOp() : NilaryOperator(BreakOpID)  {}
-    virtual ~BreakOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BreakOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(BreakOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a continue
-/// operator. A ContinueOp causes control to flow back to the start of the 
-/// the enclosing block. The enclosing block is not required to be a loop. If
-/// the enclosing block is a loop, continuation first evaluates any exit
-/// criteria, then evaluates any entry criteria, and finally re-enters the body
-/// of the loop. This ensures that loop termination conditions are checked
-/// before continuing.
-/// @brief AST Continue Operator Node
-class ContinueOp : public NilaryOperator
-{
-  /// @name Constructors
-  /// @{
-  public:
-    static ContinueOp* create();
-
-  protected:
-    ContinueOp() : NilaryOperator(ContinueOpID)  {}
-    virtual ~ContinueOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ContinueOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ContinueOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a function
-/// call operator. A CallOp invokes a function, possibly passing it arguments,
-/// and obtains the result of that function. The value of the CallOp becomes the
-/// result of the called function. 
-/// @brief AST Call Operator Node
-class CallOp : public MultiOperator
-{
-  /// @name Constructors
-  /// @{
-  public:
-    static CallOp* create();
-
-  protected:
-    CallOp() : MultiOperator(CallOpID)  {}
-    virtual ~CallOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Returns the type of the value of the call. This is the same as the
-    /// result type of the function's signature.
-    const Type* getType() const; 
-    Function* getCalledFunction() const;
-    static inline bool classof(const CallOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(CallOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/AST/Documentation.cpp b/hlvm/hlvm/AST/Documentation.cpp
deleted file mode 100644
index 1546d46..0000000
--- a/hlvm/hlvm/AST/Documentation.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//===-- AST Documentation Classes -------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Documentation.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/19
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Documentation.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Documentation.h>
-
-namespace hlvm {
-
-}
diff --git a/hlvm/hlvm/AST/Documentation.h b/hlvm/hlvm/AST/Documentation.h
deleted file mode 100644
index 4d119ca..0000000
--- a/hlvm/hlvm/AST/Documentation.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- AST Documentation Classes -------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Documentation.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/19
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Documentation
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_DOCUMENTATION_H
-#define HLVM_AST_DOCUMENTATION_H
-
-#include <hlvm/AST/Node.h>
-
-namespace hlvm 
-{
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/InputOutput.cpp b/hlvm/hlvm/AST/InputOutput.cpp
deleted file mode 100644
index 6cc14e3..0000000
--- a/hlvm/hlvm/AST/InputOutput.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-//===-- AST Input and Output Nodes ------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/InputOutput.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::InputOutput.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/InputOutput.h>
-
-namespace hlvm {
-
-OpenOp::~OpenOp()
-{
-}
-
-CloseOp::~CloseOp()
-{
-}
-
-ReadOp::~ReadOp()
-{
-}
-
-WriteOp::~WriteOp()
-{
-}
-
-}
diff --git a/hlvm/hlvm/AST/InputOutput.h b/hlvm/hlvm/AST/InputOutput.h
deleted file mode 100644
index f0728bc..0000000
--- a/hlvm/hlvm/AST/InputOutput.h
+++ /dev/null
@@ -1,157 +0,0 @@
-//===-- AST Input/Output Operators Interface --------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/InputOutput.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/25
-/// @since 0.1.0
-/// @brief Declares the AST Input/Output classes (Open, Close, Write, Read,etc.)
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_INPUTOUTPUT_H
-#define HLVM_AST_INPUTOUTPUT_H
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a stream 
-/// open operation. Streams can be files, sockets, or any other kind of 
-/// sequential media. This operator takes one operand which is a URI indicating
-/// what should be opened. The URI specifies the resource and any parameters to
-/// indicate how the resource should be opened. The operator returns a value of
-/// type StreamType which is a built-in runtime defined opaque type.
-/// @see CloseOp
-/// @see StreamType
-/// @brief AST Open Stream Operator
-class OpenOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    OpenOp() : UnaryOperator(OpenOpID)  {}
-    virtual ~OpenOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const OpenOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(OpenOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a stream 
-/// close operation. This operator takes one operand which must be the stream
-/// to be closed. The operand's type is StreamType which must have been 
-/// previously returned by the OpenOp operator. The operator causes all 
-/// buffers written to the stream to be flushed. After the operator completes, 
-/// the stream will no longer be available for input/output operations. This 
-/// operator has no result value
-/// @see OpenOp
-/// @see StreamType
-/// @brief AST Close Stream Operator
-class CloseOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    CloseOp() : UnaryOperator(CloseOpID)  {}
-    virtual ~CloseOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const CloseOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(CloseOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a stream 
-/// read operation. There are two operands: [1] the stream from which data will
-/// be read and [2] the BufferType or TextType into which the data should be
-/// placed. The first operand must be of type StreamType and previously opened
-/// with the OpenOp operator. The second operand may be of BufferType or 
-/// TextType. The value of the second operand will be replaced with the data
-/// read. The previous value of the second operand, if any, is consequently
-/// discarded by this operation.
-/// @see OpenOp
-/// @see StreamType
-/// @see BufferType
-/// @see TextType
-/// @brief AST Stream Write Operator
-class ReadOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    ReadOp() : BinaryOperator(ReadOpID)  {}
-    virtual ~ReadOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const ReadOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ReadOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Asbstract Syntax Tree node that represents a stream 
-/// write operation. There are two operands: [1] the stream to write, and [2]
-/// the data buffer or text to write. The second operands can be either a
-/// BufferType object or a TextType object. The entire buffer or text value is
-/// written to the stream. The result of this operator is an integer value of
-/// type u64 which indicates the number of bytes actually written to the stream.
-/// @see StreamType
-/// @see BufferType
-/// @see TextType
-/// @brief AST Stream Write Operator
-class WriteOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    WriteOp() : BinaryOperator(WriteOpID)  {}
-    virtual ~WriteOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const WriteOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(WriteOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // hlvm 
-#endif
diff --git a/hlvm/hlvm/AST/IntrinsicTypes.rng b/hlvm/hlvm/AST/IntrinsicTypes.rng
deleted file mode 100644
index 0d82fb4..0000000
--- a/hlvm/hlvm/AST/IntrinsicTypes.rng
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--=========================================================================-->
-<!-- Copyright (C) 2006 Reid Spencer. All Rights Reserved.                   -->
-<!--                                                                         -->
-<!-- This software is free software; you can redistribute it and/or modify it-->
-<!-- under the terms of the GNU Lesser General Public License as published by-->
-<!-- the Free Software Foundation; either version 2.1 of the License, or (at -->
-<!-- your option) any later version.                                         -->
-<!--                                                                         -->
-<!-- This software is distributed in the hope that it will be useful, but    -->
-<!-- WITHOUT ANY WARRANTY; without even the implied warranty of              -->
-<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser-->
-<!-- General Public License for more details.                                -->
-<!--                                                                         -->
-<!-- You should have received a copy of the GNU Lesser General Public License-->
-<!-- along with this library in the file named LICENSE.txt; if not, write to -->
-<!-- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,    -->
-<!-- Boston, MA 02110-1301 USA                                               -->
-<!--                                                                         -->
-<!--=========================================================================-->
-<!-- @file hlvm/AST/IntrinsicsTypes.rng                                      -->
-<!-- @author Reid Spencer <rspencer@reidspencer.com> (original author)       -->
-<!-- @date 2006/05/13                                                        -->
-<!-- @since 0.1.0                                                            -->
-<!-- @brief Defines the HLVM Intrinsic Type names                            -->
-<!--=========================================================================-->
-<!-- HLVM Intrinsic Types                                                    -->
-<!--                                                                         -->
-<!-- This file contains a Relax/NG schema that simply defines the HLVM       -->
-<!-- Intrinsic type names. These types are, essentially, pre-defined in HLVM.-->
-<!-- They can be used in HLVM XML programs without defining them. This file  -->
-<!-- is provided here instead of with the Reader because the AST Bundle class-->
-<!-- needs to use the Tokenizer based on this file to quickly identify the   -->
-<!-- names.                                                                  -->
-<!--                                                                         -->
-<!--=========================================================================-->
-
-<grammar 
-  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-  xmlns ="http://relaxng.org/ns/structure/1.0"
-  xmlns:a="http://relaxng.org/ns/annotation/1.0"
-  ns="http://hlvm.org/src/hlvm/AST/IntrinsicTypes.rng">
-
-  <define name="IntrinsicTypes.type">
-    <choice>
-      <value>any</value>
-      <value>bool</value>
-      <value>buffer</value>
-      <value>char</value>
-      <value>double</value>
-      <value>f32</value>
-      <value>f44</value>
-      <value>f64</value>
-      <value>f80</value>
-      <value>f96</value>
-      <value>f128</value>
-      <value>float</value>
-      <value>int</value>
-      <value>long</value>
-      <value>octet</value>
-      <value>qs16</value>
-      <value>qs32</value>
-      <value>qs64</value>
-      <value>qs128</value>
-      <value>qu16</value>
-      <value>qu32</value>
-      <value>qu64</value>
-      <value>qu128</value>
-      <value>r8</value>
-      <value>r16</value>
-      <value>r32</value>
-      <value>r64</value>
-      <value>r128</value>
-      <value>s8</value>
-      <value>s16</value>
-      <value>s32</value>
-      <value>s64</value>
-      <value>s128</value>
-      <value>short</value>
-      <value>stream</value>
-      <value>string</value>
-      <value>text</value>
-      <value>u8</value>
-      <value>u16</value>
-      <value>u32</value>
-      <value>u64</value>
-      <value>u128</value>
-      <value>void</value>
-    </choice>
-  </define>
-</grammar>
diff --git a/hlvm/hlvm/AST/Linkables.cpp b/hlvm/hlvm/AST/Linkables.cpp
deleted file mode 100644
index d720294..0000000
--- a/hlvm/hlvm/AST/Linkables.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//===-- AST Linkables Implementation ----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Linkables.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the subclasses of Linkable
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Block.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-using namespace llvm;
-
-namespace hlvm {
-
-Linkable::~Linkable() { }
-Variable::~Variable() { }
-Argument::~Argument() { }
-unsigned 
-Argument::getArgNum() const
-{
-  Node* P = getParent();
-  if (!P || !isa<Function>(P))
-    return 0;
-  return cast<Function>(P)->getArgNum(this);
-}
-
-Function::~Function() { }
-
-Argument* 
-Function::getArgument(const std::string& name) const
-{
-  for (const_iterator I = begin(), E = end(); I != E ; ++I )
-    if ((*I)->getName() == name)
-      return (*I);
-  return 0;
-}
-
-Argument* 
-Function::getArgument(unsigned argNum ) const
-{
-  hlvmAssert(argNum < size());
-  return args[argNum];
-}
-
-unsigned
-Function::getArgNum(const Argument* arg) const
-{
-  unsigned num = 1;
-  for (const_iterator I = begin(), E = end(); I != E ; ++I )
-    if ((*I) == arg)
-      return num;
-    else
-      num++;
-  return 0;
-}
-
-void 
-Function::insertChild(Node* kid)
-{
-  if (isa<Block>(kid)) {
-    if (block)
-      block->setParent(0);
-    block = cast<Block>(kid);
-  } else {
-    hlvmAssert(!"Can't insert one of those here");
-  }
-}
-
-void 
-Function::removeChild(Node* kid)
-{
-  if (isa<Block>(kid) && kid == block) {
-    block = 0;
-  } else {
-    hlvmAssert(!"Can't remove one of those here");
-  }
-}
-
-void 
-Function::resolveTypeTo(const Type* from, const Type* to)
-{
-  Linkable::resolveTypeTo(from,to);
-  for (iterator I = begin(), E = end(); I != E; ++I) {
-    (*I)->resolveTypeTo(from,to);
-  }
-  block->resolveTypeTo(from,to);
-}
-
-Program::~Program() { }
-
-}
diff --git a/hlvm/hlvm/AST/Linkables.h b/hlvm/hlvm/AST/Linkables.h
deleted file mode 100644
index 45506b4..0000000
--- a/hlvm/hlvm/AST/Linkables.h
+++ /dev/null
@@ -1,299 +0,0 @@
-//===-- AST Linkables Interface ---------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Linkables.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/10
-/// @since 0.1.0
-/// @brief Declares the interface to all subclasses of Linkable
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_LINKABLE_H
-#define HLVM_AST_LINKABLE_H
-
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Block.h>
-
-namespace hlvm 
-{
-
-/// This enumeration is used to specify the kinds of linkage that are
-/// permitted for a Linkable.
-/// @brief Enumeration of ways to link bundles
-enum LinkageKinds {
-  ExternalLinkage   = 1, ///< Externally visible item
-  LinkOnceLinkage   = 2, ///< Keep one copy of item when linking (inline)
-  WeakLinkage       = 3, ///< Keep one copy of item when linking (weak)
-  AppendingLinkage  = 4, ///< Append item to an array of similar items
-  InternalLinkage   = 5  ///< Rename collisions when linking (static funcs)
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an item
-/// which can be linked with other Bundles. Linkabe is an abstract base 
-/// class and cannot be instantiated. All Linkables are Constant values
-/// because they represents a runtime value that is a constant address. The
-/// value pointed to by the Linkable may be mutable or immutable depending
-/// on its type and options.  As the name suggests, Linkables participate
-/// in linkage. A Bundle referring to a name in another Bundle will only link
-/// with a Linkable and nothing else. There are several ways in which 
-/// Linkables can be linked together, specified by the LinkageKinds value.
-/// @see LinkageKinds
-/// @see Bundle
-/// @see Constant
-/// @brief AST Bundle Node
-class Linkable : public Constant
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Linkable( NodeIDs id ) : Constant(id) { setLinkageKind(InternalLinkage);}
-    virtual ~Linkable();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    inline LinkageKinds getLinkageKind() const { 
-      return LinkageKinds(flags & 0x0007); }
-    static inline bool classof(const Linkable*) { return true; }
-    static inline bool classof(const Node* N) { return N->isLinkable(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-    void setLinkageKind(LinkageKinds k) { 
-      flags &= 0xFFF8; flags |= uint16_t(k); 
-    }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a 
-/// global Variable.  A Variable can only be declared as a component of a 
-/// Bundle. It is visible throughout the Bundle that declares it and may 
-/// be a candidate for linkage with other Bundles. A Variable is a storage 
-/// location, with an address, of a specific type. Global variables may have
-/// a constant value in which case HLVM will ensure that the value of the
-/// global variable is immutable. Variables can be of any type.
-/// @see Linkable
-/// @see Bundle
-/// @brief AST Variable Node
-class Variable : public Linkable
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Variable() : Linkable(VariableID), init(0) {}
-    virtual ~Variable();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    bool isConstant() const { return flags & 0x0008; }
-    Constant* getInitializer() const { return init; }
-    bool hasInitializer() const { return init != 0; }
-    bool isZeroInitialized() const { return init == 0; }
-    static inline bool classof(const Variable*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(VariableID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setIsConstant(bool v) { flags |= 0x0008; }
-    void setInitializer(Constant* C) { init = C; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Constant* init;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an argument
-/// to a Function. An Argument is simply a Value that has a name. Arguments can
-/// be used within a function's blocks to access the value of the argument.
-/// @see Value
-/// @see Function
-/// @brief AST Argument Node
-class Argument : public Value
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Argument() : Value(ArgumentID), name() {}
-    virtual ~Argument();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getName() const { return name; }
-    /// Return the 1-based index of this in this function it belongs to. 
-    /// If this is not an argument of any function, returns 0;
-    unsigned getArgNum() const;
-    static inline bool classof(const Argument*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ArgumentID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setName(const std::string& nm) { name = nm; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a Function.
-/// A Function is a callable block of code that accepts parameters and 
-/// returns a result.  This is the basic unit of code in HLVM. A Function
-/// has a name, a set of formal arguments, a return type, and, optionally, a 
-/// Block of code to execute. The name of a function is used for linking 
-/// purposes. The formal arguments and return type are encapsulated in the
-/// Function's associated SignatureType. If a Block is associated with the
-/// Function then the function is defined and the Block defines the computation
-/// the Function provides. If a Block is not associated with the Function, then
-/// the function is undefined and serves as a reference to a function in another
-/// Bundle.
-/// @see Block
-/// @see Bundle
-/// @see SignatureType
-/// @brief AST Function Node
-class Function : public Linkable
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<Argument*> ArgumentList;
-    typedef ArgumentList::iterator iterator;
-    typedef ArgumentList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    Function(NodeIDs id = FunctionID) : Linkable(id), block(0), args() {}
-    virtual ~Function();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    bool hasBlock() const { return block != 0; }
-    Block* getBlock() const { return block; }
-    const SignatureType* getSignature() const 
-      { return static_cast<const SignatureType*>(type); }
-    const Type* getResultType() const 
-      { return getSignature()->getResultType();}
-    Argument* getArgument(const std::string& name) const;
-    Argument* getArgument(unsigned argnum) const;
-
-    /// Return the 1-based index of the \p arg in this function. If \p arg
-    /// is not an argument of this function, returns 0;
-    unsigned getArgNum(const Argument* arg) const;
-
-    static inline bool classof(const Function*) { return true; }
-    static inline bool classof(const Node* N) { return N->isFunction(); }
-
-  /// @}
-  /// @name Argument Iteration
-  /// @{
-  public:
-    iterator         begin()       { return args.begin(); }
-    const_iterator   begin() const { return args.begin(); }
-    iterator         end  ()       { return args.end();   }
-    const_iterator   end  () const { return args.end();   }
-    size_t           size () const { return args.size();  }
-    bool             empty() const { return args.empty(); }
-    Argument*        front()       { return args.front(); }
-    const Argument*  front() const { return args.front(); }
-    Argument*        back()        { return args.back();  }
-    const Argument*  back()  const { return args.back();  }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void insertChild(Node* kid);
-    virtual void removeChild(Node* kid);
-    void setBlock(Block* blk) { blk->setParent(this); }
-    void addArgument(Argument* arg) { args.push_back(arg); }
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Block * block;                   ///< The code block to be executed
-    ArgumentList args;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a Program 
-/// in HLVM. A Program is an entry point for running HLVM programs. It is 
-/// simply a Function with a specific signature. It represents the first
-/// function to be executed by the runtime after option processing.  To be
-/// executable, a Bundle must have at least one Program node in it. 
-/// The Program node exists to simply ensure that the signature of the function
-/// is correct and to serve as a way to identify Program's quickly.
-/// @see Function
-/// @see Bundle
-/// @see SignatureType
-/// @brief AST Program Node
-class Program : public Function
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Program() : Function(ProgramID) {}
-    virtual ~Program();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const Program*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(ProgramID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    Linkable::setLinkageKind;
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/Locator.cpp b/hlvm/hlvm/AST/Locator.cpp
deleted file mode 100644
index 2bbea6e..0000000
--- a/hlvm/hlvm/AST/Locator.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//===-- AST Locator Classes Implementation ----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Locator.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Defines the methods of class hlvm::AST::Locator and friends
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Locator.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/ADT/StringExtras.h>
-
-namespace hlvm
-{
-
-Locator::~Locator() {}
-URILocator::~URILocator() {}
-LineLocator::~LineLocator() {}
-LineColumnLocator::~LineColumnLocator() {}
-RangeLocator::~RangeLocator() {}
-
-bool 
-URILocator::equals(const Locator& that) const
-{
-  if (this == &that)
-    return true;
-  if (that.id() >= this->SubclassID)
-    return this->uri == static_cast<const URILocator&>(that).uri;
-  return false;
-}
-
-void 
-URILocator::getLocation(std::string& ref) const
-{
-  hlvmAssert(uri != 0);
-  ref = uri->as_string();
-}
-
-uint32_t URILocator::getLine() const { return 0; }
-uint32_t URILocator::getColumn() const { return 0; }
-uint32_t URILocator::getEndLine() const { return 0; }
-uint32_t URILocator::getEndColumn() const { return 0; }
-
-void 
-LineLocator::getLocation(std::string& ref) const
-{
-  URILocator::getLocation(ref);
-  ref += ":" + llvm::utostr(line);
-}
-
-bool 
-LineLocator::equals(const Locator& that) const
-{
-  if (this == &that)
-    return true;
-  if (that.id() >= this->SubclassID)
-    return URILocator::equals(that) && 
-      this->line == static_cast<const LineLocator&>(that).line;
-  return false;
-}
-
-uint32_t LineLocator::getLine() const { return line; }
-uint32_t LineLocator::getColumn() const { return 0; }
-uint32_t LineLocator::getEndLine() const { return line; }
-uint32_t LineLocator::getEndColumn() const { return 0; }
-
-void
-LineColumnLocator::getLocation(std::string& ref) const
-{
-  LineLocator::getLocation(ref);
-  ref += ":" + llvm::utostr(col);
-}
-
-uint32_t LineColumnLocator::getLine() const { return line; }
-uint32_t LineColumnLocator::getColumn() const { return col; }
-uint32_t LineColumnLocator::getEndLine() const { return line; }
-uint32_t LineColumnLocator::getEndColumn() const { return col; }
-
-bool
-LineColumnLocator::equals(const Locator& that) const
-{
-  if (this == &that)
-    return true;
-  if (that.id() >= this->SubclassID)
-    return LineLocator::equals(that) && 
-      this->col == static_cast<const LineColumnLocator&>(that).line;
-  return false;
-}
-
-void
-RangeLocator::getLocation(std::string& ref) const
-{
-  URILocator::getLocation(ref);
-  ref += "(" + llvm::utostr(line) + ":" + llvm::utostr(col) + "," 
-             + llvm::utostr(line2) + ":" + llvm::utostr(col2) + ")"; 
-}
-
-uint32_t RangeLocator::getLine() const { return line; }
-uint32_t RangeLocator::getColumn() const { return col; }
-uint32_t RangeLocator::getEndLine() const { return line2; }
-uint32_t RangeLocator::getEndColumn() const { return col2; }
-
-bool
-RangeLocator::equals(const Locator& that) const
-{
-  if (this == &that)
-    return true;
-  if (that.id() >= this->SubclassID)
-    return LineColumnLocator::equals(that) && 
-      this->line2 == static_cast<const RangeLocator&>(that).line2 &&
-      this->col2 == static_cast<const RangeLocator&>(that).col2 ;
-  return false;
-}
-} // hlvm
diff --git a/hlvm/hlvm/AST/Locator.h b/hlvm/hlvm/AST/Locator.h
deleted file mode 100644
index d89be7d..0000000
--- a/hlvm/hlvm/AST/Locator.h
+++ /dev/null
@@ -1,209 +0,0 @@
-//===-- AST Locator Class ---------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Locator.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Locator and friends
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_LOCATOR_H
-#define HLVM_AST_LOCATOR_H
-
-#include <hlvm/AST/URI.h>
-#include <string>
-
-namespace hlvm
-{
-
-/// This abstract base class is the superclass of the various Locator classes
-/// that are used to associate a source code location with a node in the 
-/// AST. Locators are not Abstract Syntax Tree nodes,  but they are referenced 
-/// as a value of any Node subclass. These classes are retained separately from
-/// the Node class so that multiple nodes can share an instance of a Locator.
-/// This can occur frequently when a single line of source code produces several
-/// AST operator nodes. By keeping the Locator as a separate object, the memory
-/// consumption of the AST is reduced. This abstrat base class provides a single
-/// virtual method, getReference, which should produce a string that identifies
-/// the source code location. This will be used in error messages, etc.
-/// @brief Source Code Location Abstract Base Class
-class Locator
-{
-  /// @name Constructors
-  protected:
-    Locator() : SubclassID(0) {}
-    virtual ~Locator();
-  /// @name Accessors
-  /// @{
-  public:
-    virtual void getLocation(std::string& ref) const = 0;
-    virtual uint32_t getLine() const = 0;
-    virtual uint32_t getColumn() const = 0;
-    virtual uint32_t getEndLine() const = 0;
-    virtual uint32_t getEndColumn() const = 0;
-    virtual bool equals(const Locator& that) const = 0;
-    bool operator==(const Locator& that) { return this->equals(that); }
-    unsigned short id() const { return SubclassID; }
-  /// @}
-  protected:
-    unsigned short SubclassID;
-};
-
-/// This Locator subclass provides a locator that specifies the location as
-/// simply being some resource (URI). While this usually isn't sufficient, it
-/// may be useful in some contexts and also serves as the base class of other
-/// Locator classes.
-/// @see Locator
-/// @brief Locator that contains just a URI
-class URILocator : public Locator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    URILocator(const URI* u) : Locator(), uri(u) { SubclassID = 1; }
-    virtual ~URILocator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual void getLocation(std::string& ref) const;
-    virtual uint32_t getLine() const;
-    virtual uint32_t getColumn() const;
-    virtual uint32_t getEndLine() const;
-    virtual uint32_t getEndColumn() const;
-    virtual bool equals(const Locator& that) const;
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    const URI* uri;
-  /// @}
-  friend class AST;
-};
-
-/// This Locator can be used to locate a specific line within some resource. It
-/// is a URILocator sublcass.
-/// @see Locator
-/// @brief Locator with URI (file) and line number.
-class LineLocator : public URILocator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LineLocator(const URI* u, uint32_t l) : URILocator(u), line(l) {
-      SubclassID = 2; 
-    }
-    virtual ~LineLocator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual void getLocation(std::string& ref) const;
-    virtual uint32_t getLine() const;
-    virtual uint32_t getColumn() const;
-    virtual uint32_t getEndLine() const;
-    virtual uint32_t getEndColumn() const;
-    virtual bool equals(const Locator& that) const;
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint32_t line;           ///< Line number of source location
-  /// @}
-  friend class AST;
-};
-
-/// This class provides a locator that specifies a specific column on a specific
-/// line of a given URI (file). 
-/// @brief Locator with File, Line and Column
-class LineColumnLocator : public LineLocator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LineColumnLocator(const URI* u, uint32_t l, uint32_t c) 
-      : LineLocator(u,l), col(c) { SubclassID = 3; }
-    virtual ~LineColumnLocator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual void getLocation(std::string& ref) const;
-    virtual uint32_t getLine() const;
-    virtual uint32_t getColumn() const;
-    virtual uint32_t getEndLine() const;
-    virtual uint32_t getEndColumn() const;
-    virtual bool equals(const Locator& that) const;
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint32_t col;            ///< Column number of source location
-  /// @}
-  friend class AST;
-};
-
-/// This class provides a Locator that identifies a range of text in a source
-/// location. The range is specified by a pair of Line/Column pairs. That is,
-/// the range specifies a starting line and column number and an ending line and
-/// column number.
-/// @see Locator
-/// @brief Locator for specifying a range of text in a source file.
-class RangeLocator : public LineColumnLocator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RangeLocator(const URI* u, uint32_t l, uint32_t c, uint32_t l2, uint32_t c2)
-      : LineColumnLocator(u,l,c), line2(l2), col2(c2) { SubclassID = 4; }
-    virtual ~RangeLocator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual void getLocation(std::string& ref) const;
-    virtual uint32_t getLine() const;
-    virtual uint32_t getColumn() const;
-    virtual uint32_t getEndLine() const;
-    virtual uint32_t getEndColumn() const;
-    virtual bool equals(const Locator& that) const;
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint32_t line2;           ///< Column number of source location
-    uint32_t col2;            ///< Column number of source location
-  /// @}
-  friend class AST;
-};
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/MemoryOps.cpp b/hlvm/hlvm/AST/MemoryOps.cpp
deleted file mode 100644
index 934c740..0000000
--- a/hlvm/hlvm/AST/MemoryOps.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//===-- HLVM AST Memory Operators -------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/MemoryOps.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Implements the various AST memory operators
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Constants.h>
-#include <llvm/Support/Casting.h>
-
-namespace hlvm {
-
-LoadOp::~LoadOp() {}
-StoreOp::~StoreOp() {}
-AutoVarOp::~AutoVarOp() {}
-
-GetOp::~GetOp() {}
-
-const Type*
-GetOp::getReferentType() const
-{
-  const Value* ref = getReferent();
-  if (const AutoVarOp* avo = llvm::dyn_cast<AutoVarOp>(ref))
-    return avo->getType();
-  else if (const Variable* var = llvm::dyn_cast<Variable>(ref))
-    return var->getType();
-  else if (const Function* func = llvm::dyn_cast<Function>(ref))
-    return func->getResultType();
-  else if (const Constant* cnst = llvm::dyn_cast<Constant>(ref))
-    return cnst->getType();
-  return ref->getType();
-}
-
-GetFieldOp::~GetFieldOp() {}
-
-const Type* 
-GetFieldOp::getFieldType() const
-{
-  if (const DisparateContainerType* DCTy = 
-      llvm::dyn_cast<DisparateContainerType>(op1->getType()))
-    return DCTy->getFieldType(fieldName);
-  return 0;
-}
-
-GetIndexOp::~GetIndexOp() {}
-
-const Type* 
-GetIndexOp::getIndexedType() const
-{
-  if (const UniformContainerType* UCTy =
-      llvm::dyn_cast<UniformContainerType>(ops[0]->getType()))
-    return UCTy->getElementType();
-  return 0;
-}
-
-}
diff --git a/hlvm/hlvm/AST/MemoryOps.h b/hlvm/hlvm/AST/MemoryOps.h
deleted file mode 100644
index 448741e..0000000
--- a/hlvm/hlvm/AST/MemoryOps.h
+++ /dev/null
@@ -1,310 +0,0 @@
-//===-- HLVM AST Memory Operations Interface --------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/MemoryOps.h
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Provides the interface to the HLVM memory operations.
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_MEMORYOPS_H
-#define HLVM_AST_MEMORYOPS_H
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm
-{
-
-class Variable;
-class Constant;
-class ConstantValue;
-class Function;
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for allocating memory from the heap. The type of this operator indicates the
-/// element size for the allocation. The single operand must be of an integral
-/// type and indicates the number of elements to allocate.
-/// @brief AST Memory Allocation Operator
-class AllocateOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    AllocateOp() : UnaryOperator(AllocateOpID) {}
-    virtual ~AllocateOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const AllocateOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(AllocateOpID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for deallocating memory from the heap. This operator requires one operand
-/// which must be the value returned from a previous AllocateOp.
-/// @brief AST Memory Deallocation Operator
-class DeallocateOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    DeallocateOp() : UnaryOperator(DeallocateOpID) {}
-    virtual ~DeallocateOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const DeallocateOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(DeallocateOpID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for loading a value from a memory location. This operator takes a single
-/// operand which must resolve to the address of a memory location, either 
-/// global or local (stack). The result of the operator is the value of the
-/// memory object, whatever type it may be.
-/// @brief AST Memory Load Operator
-class LoadOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LoadOp() : UnaryOperator(LoadOpID) {}
-    virtual ~LoadOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LoadOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LoadOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for storing a value into a memory location. The first operand 
-/// resolves to the storage location into which the value is stored. The second
-/// operand provides the value to store. The operator returns the value stored.
-/// @brief AST Memory Set Operator
-class StoreOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StoreOp() : BinaryOperator(StoreOpID) {}
-    virtual ~StoreOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StoreOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(StoreOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for defining an automatic (local) variable on a function's stack. The scope
-/// of such a variable is the block that contains it from the point at which
-/// the declaration occurs, onward.  Automatic variables are allocated
-/// automatically on a function's stack. When execution leaves the block in 
-/// which the variable is defined, the variable is automatically deallocated. 
-/// Automatic variables are not Linkables and do not participate in linkage
-/// at all. They don't exist until a Function is activated. Automatic variables
-/// are operators because they provide the value of their initializer. Automatic
-/// variables may be declared to be constant in which case they must have an
-/// initializer and their value is immutable.
-/// @brief AST Automatic Variable Operator
-class AutoVarOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    AutoVarOp() : UnaryOperator(AutoVarOpID), name() {}
-    virtual ~AutoVarOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getName() const { return name; }
-    bool hasInitializer() const { return getOperand(0) != 0; }
-    Operator* getInitializer() const { return getOperand(0); }
-    bool isZeroInitialized() const { return getOperand(0) == 0; }
-    static inline bool classof(const AutoVarOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(AutoVarOpID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setName(const std::string& n) { name = n; }
-    void setInitializer(Operator* init) { setOperand(0,init); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for getting a value. The operator has no operands but has a property 
-/// that is the Documentable to be retrieved. The retrieved object must be a
-/// Type, or Linkable (Variable, Constant, Function). This operator bridges
-/// bridges between non-operator Documentables and Operators. The result of this
-/// operator is the address of the object.  Typically this operator is
-/// used as the operand of a LoadOp or StoreOp.
-/// @see Variable AutoVarOp Operator Value Linkable LoadOp StoreOp
-/// @brief AST Reference Operator
-class GetOp : public NilaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GetOp() : NilaryOperator(GetOpID) {}
-    virtual ~GetOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Type* getReferentType() const;
-    const Value* getReferent() const { return referent; }
-    static inline bool classof(const GetOp*) { return true; }
-    static inline bool classof(const Node* N) { 
-      return N->is(GetOpID); 
-    }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setReferent(const Value* ref) { referent = ref; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    const Value* referent;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for getting the address of a field of a StructureType value. The GetFieldOp
-/// takes two operands, a pointer to a memory location that must be of
-/// StructureType type and a string that names the field of the structure. The
-/// second operand does not have to be a constant value, but if it is not, a 
-/// performance penalty is incurred to look up the field.  The GetFieldOp can
-/// be used against a value of any StructureType subclass.  The resulting value
-/// of the operator is the address of the memory location corresponding to the
-/// named field of the structure value.
-/// @brief AST GetFieldOp Operator
-class GetFieldOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GetFieldOp() : UnaryOperator(GetFieldOpID), fieldName() {}
-    virtual ~GetFieldOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getFieldName() const { return fieldName; }
-    const Type* getFieldType() const;
-    static inline bool classof(const GetFieldOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(GetFieldOpID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setFieldName(const std::string& nm) { fieldName = nm; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string fieldName;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an operator
-/// for getting the address of a field of an ArrayType or VectorType value. 
-/// The GetIndexOp takes two operands, a pointer to a memory location that 
-/// must be of ArrayType or VectorType and an integer value that indexes into 
-/// the array or vector.  The resulting value of the operator is the address of
-/// the indexed memory location. 
-/// @brief AST GetIndexOp Operator
-class GetIndexOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GetIndexOp() : BinaryOperator(GetIndexOpID) {}
-    virtual ~GetIndexOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const Type* getIndexedType() const;
-    static inline bool classof(const GetIndexOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(GetIndexOpID); }
-
-  /// @}
-  friend class AST;
-};
-} // hlvm
-
-#endif
-namespace hlvm {
-
-}
diff --git a/hlvm/hlvm/AST/Node.cpp b/hlvm/hlvm/AST/Node.cpp
deleted file mode 100644
index d75535f..0000000
--- a/hlvm/hlvm/AST/Node.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//===-- hlvm/AST/Node.cpp - AST Abstract Node Class -------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Node.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Node.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Node.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-using namespace llvm;
-
-namespace hlvm {
-
-Node::~Node()
-{
-}
-
-AST*
-Node::getRoot()
-{
-  Node* p = parent, *last = this; 
-  while (p!=0) { 
-    last = p; 
-    p = p->parent; 
-  }
-  if (isa<AST>(last))
-    return cast<AST>(last);
-  return 0;
-}
-
-Bundle*
-Node::getContainingBundle() const
-{
-  Node* p = getParent();
-  while (p && !p->is(BundleID)) p = p->getParent();
-  if (!p)
-    return 0;
-  return cast<Bundle>(p);
-}
-
-void 
-Node::insertChild(Node* child)
-{
-  hlvmNotImplemented("Node::insertChild");
-}
-
-void 
-Node::removeChild(Node* child)
-{
-  hlvmNotImplemented("Node::insertChild");
-}
-
-void 
-Node::setParent(Node* p)
-{
-  if (parent != 0)
-  {
-    parent->removeChild(this);
-  }
-  parent = p;
-  if (parent != 0)
-  {
-    parent->insertChild(this);
-  }
-}
-
-Documentation::~Documentation()
-{
-}
-
-Documentable::~Documentable()
-{
-}
-
-Value::~Value()
-{
-}
-
-void 
-Value::resolveTypeTo(const Type* from, const Type* to)
-{
-  if (type == from)
-    type = to;
-}
-
-}
diff --git a/hlvm/hlvm/AST/Node.h b/hlvm/hlvm/AST/Node.h
deleted file mode 100644
index c8e3340..0000000
--- a/hlvm/hlvm/AST/Node.h
+++ /dev/null
@@ -1,562 +0,0 @@
-//===-- Abstract Node Class Interface ---------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Node.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Node and basic subclasses
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_NODE_H
-#define HLVM_AST_NODE_H
-
-#include <llvm/Support/Casting.h>
-#include <hlvm/AST/Locator.h>
-#include <vector>
-
-namespace hlvm
-{
-
-class Type;
-class AST;
-class Bundle;
-
-/// This enumeration is used to identify the various kinds of Abstract Syntax
-/// Tre nodes. Its organization is very specific and dependent on the class 
-/// hierarchy. In order to use these values as ranges for class identification 
-/// (classof methods), we need to group things by inheritance rather than by 
-/// function. Items beginning with "First" or "Last" identify a useful range
-/// of node types and do not introduce any value of their own.
-/// @brief Identifiers of th AST Node Types.
-enum NodeIDs 
-{
-  NoNodeID = 0,            ///< Use this for an invalid node ID.
-
-  // SUBCLASSES OF NODE
-  TreeTopID,               ///< The AST node which is always root of the tree
-FirstNodeID = TreeTopID,
-  DocumentationID,         ///< XHTML Documentation Node
-  NamedTypeID,             ///< An association of a name with a type
-FirstDocumentableID = NamedTypeID,
-  BundleID,                ///< The Bundle Node (a group of other declarations)
-  ImportID,                ///< A bundle's Import declaration
-
-  // SUBCLASSES OF TYPE
-  // Basic Types 
-  AnyTypeID,               ///< The Any Type (Union of any type)
-FirstTypeID          = AnyTypeID,
-  BooleanTypeID,           ///< The Boolean Type (A simple on/off boolean value)
-  CharacterTypeID,         ///< The Character Type (UTF-8 encoded character)
-  EnumerationTypeID,       ///< The Enumeration Type (set of enumerated ids)
-  IntegerTypeID,           ///< The Integer Type (A # of bits of integer data)
-  OpaqueTypeID,            ///< A placeholder for unresolved types
-  RangeTypeID,             ///< The Range Type (A Range of Integer Values)
-  RealTypeID,              ///< The Real Number Type (Any Real Number)
-  RationalTypeID,          ///< The Rational Number Type (p/q type number)
-  StringTypeID,            ///< A string of characters type
-
-  // Uniform Container Types
-  PointerTypeID,           ///< The Pointer Type (Pointer To object of Type)
-FirstContainerTypeID = PointerTypeID,
-FirstUniformContainerTypeID = PointerTypeID,
-  ArrayTypeID,             ///< The Array Type (Linear array of some type)
-  VectorTypeID,            ///< The Vector Type (Packed Fixed Size Vector)
-LastUniformContainerTypeID = VectorTypeID,
-
-  // Disparate Container Types
-  StructureTypeID,         ///< The Structure Type (Sequence of various types)
-FirstDisparateContainerTypeID = StructureTypeID,
-  SignatureTypeID,         ///< The Function Signature Type
-  ContinuationTypeID,      ///< A Continuation Type (data to continuations)
-LastDisparateContainerTypeID  = ContinuationTypeID,
-LastContainerTypeID = ContinuationTypeID,
-
-  // Runtime Types
-  BufferTypeID,            ///< A buffer of octets for I/O
-FirstRuntimeTypeID = BufferTypeID,
-  StreamTypeID,            ///< A stream handle
-  TextTypeID,              ///< A UTF-8 or UTF-16 encoded text string
-LastRuntimeTypeID = TextTypeID,
-LastTypeID = TextTypeID,
-
-  // Class Constructs (TBD)
-  InterfaceID,             ///< The Interface Type (set of Signatures)
-  ClassID,                 ///< The Class Type (OO Class Definition)
-  MethodID,                ///< The Method Node (define a method)
-  ImplementsID,            ///< Specifies set of Interfaces implemented by class
-
-  // SUBCLASSES OF VALUE
-  ArgumentID,              ///< An argument to a function
-FirstValueID = ArgumentID,
-
-  // Constants
-  ConstantAnyID,           ///< A constant any value
-FirstConstantID = ConstantAnyID,
-FirstConstantValueID = ConstantAnyID,
-  ConstantBooleanID,       ///< A constant boolean value
-  ConstantCharacterID,     ///< A constant UTF-8 character value
-  ConstantEnumeratorID,    ///< A constant enumeration value
-  ConstantIntegerID,       ///< A constant integer value
-  ConstantRealID,          ///< A constant real value
-  ConstantStringID,        ///< A constant string value
-  ConstantPointerID,       ///< A constant pointer value
-  ConstantArrayID,         ///< A constant array value
-FirstConstantAggregateID = ConstantArrayID,
-  ConstantVectorID,        ///< A constant vector value
-  ConstantStructureID,     ///< A constant structure value
-  ConstantContinuationID,  ///< A constant continuation value
-LastConstantAggregateID = ConstantContinuationID,
-  ConstantExpressionID,    ///< A constant expression
-LastConstantValueID = ConstantExpressionID,
-
-  // Linkage Items
-  VariableID,              ///< The Variable Node (a storage location)
-FirstLinkableID = VariableID,
-  FunctionID,              ///< The Function Node (a callable function)
-  ProgramID,               ///< The Program Node (a program starting point)
-LastLinkableID = ProgramID,
-LastConstantID = ProgramID,
-
-  // Operator
-  BlockID,                 ///< A Block Of Operators
-FirstOperatorID = BlockID,
-
-  // Nilary Operators (those taking no operands)
-  BreakOpID,               ///< Break out of the enclosing block
-FirstNilaryOperatorID = BreakOpID,
-  ContinueOpID,            ///< Continue from start of enclosing loop
-  ReturnOpID,              ///< Return to the function's caller
-  GetOpID,                 ///< Obtain value of Variable/Function/Constant
-LastNilaryOperatorID = GetOpID,
-
-  // Control Flow Unary Operators
-  ResultOpID,              ///< Specify the result of a block or function
-FirstUnaryOperatorID = ResultOpID,
-  ThrowOpID,               ///< Throw an exception out of the function
-
-  // Integer Arithmetic Unary Operators
-  NotOpID,                 ///< Not Unary Boolean Operator
-  NegateOpID,              ///< Negation Unary Integer Operator
-  ComplementOpID,          ///< Bitwise Complement Unary Integer Operator
-  PreIncrOpID,             ///< Pre-Increment Unary Integer Operator
-  PostIncrOpID,            ///< Post-Increment Unary Integer Operator
-  PreDecrOpID,             ///< Pre-Decrement Unary Integer Operator
-  PostDecrOpID,            ///< Post-Decrement Unary Integer Operator
-  SizeOfOpID,              ///< Size of a constant
-  ConvertOpID,             ///< Convert one type to another
-
-  // Real Arithmetic Unary Operators
-  IsPInfOpID,              ///< Real Number Positive Infinity Test Operator
-  IsNInfOpID,              ///< Real Number Negative Infinity Test Operator
-  IsNanOpID,               ///< Real Number Not-A-Number Test Operator
-  TruncOpID,               ///< Real Number Truncation Operator
-  RoundOpID,               ///< Real Number Rounding Operator
-  FloorOpID,               ///< Real Number Floor Operator
-  CeilingOpID,             ///< Real Number Ceiling Operator
-  LogEOpID,                ///< Real Number Base e (Euler's Number) logarithm 
-  Log2OpID,                ///< Real Number Base 2 logarithm Operator
-  Log10OpID,               ///< Real Number Base 10 logarithm Operator
-  SquareRootOpID,          ///< Real Number Square Root Operator
-  CubeRootOpID,            ///< Real Number Cube Root Operator
-  FactorialOpID,           ///< Real Number Factorial Operator
-
-  // Memory Unary Operators
-  LoadOpID,                ///< The Load Operator (load a value from a location)
-  AllocateOpID,            ///< The Allocate Memory Operator 
-  DeallocateOpID,          ///< The Deallocate Memory Operator
-  AutoVarOpID,             ///< Declaration of an automatic (stack) variable
-
-  // Input/Output Unary Operators
-  TellOpID,                ///< Tell the position of a stream
-  CloseOpID,               ///< Close a stream previously opened.
-
-  // Other Unary Operators
-  LengthOpID,              ///< Extract Length of a Text/Array/Vector
-LastUnaryOperatorID = LengthOpID,
-
-  // Arithmetic Binary Operators
-  AddOpID,                 ///< Addition Binary Operator
-FirstBinaryOperatorID = AddOpID,
-  SubtractOpID,            ///< Subtraction Binary Operator
-  MultiplyOpID,            ///< Multiplcation Binary Operator
-  DivideOpID,              ///< Division Binary Operator
-  ModuloOpID,              ///< Modulus Binary Operator
-  BAndOpID,                ///< Bitwise And Binary Operator
-  BOrOpID,                 ///< Bitwise Or Binary Operator
-  BXorOpID,                ///< Bitwise XOr Binary Operator
-  BNorOpID,                ///< Bitwise Nor Binary Operator
-
-  // Boolean Binary Operators
-  AndOpID,                 ///< And Binary Boolean Operator
-  OrOpID,                  ///< Or Binary Boolean Operator
-  NorOpID,                 ///< Nor Binary Boolean Operator
-  XorOpID,                 ///< Xor Binary Boolean Operator
-  LessThanOpID,            ///< <  Binary Comparison Operator
-  GreaterThanOpID,         ///< >  Binary Comparison Operator
-  LessEqualOpID,           ///< <= Binary Comparison Operator
-  GreaterEqualOpID,        ///< >= Binary Comparison Operator
-  EqualityOpID,            ///< == Binary Comparison Operator
-  InequalityOpID,          ///< != Binary Comparison Operator
-
-  // Real Arithmetic Binary Operators
-  PowerOpID,               ///< Real Number Power Operator
-  RootOpID,                ///< Real Number Arbitrary Root Operator
-  GCDOpID,                 ///< Real Number Greatest Common Divisor Operator
-  LCMOpID,                 ///< Real Number Least Common Multiplicator Operator
-  
-  // Memory Binary Operators
-  ReallocateOpID,          ///< The Reallocate Memory Operator 
-  StoreOpID,               ///< The Store Operator (store a value to a location)
-  GetIndexOpID,            ///< The GetIndex Operator for indexing an array
-  GetFieldOpID,            ///< The GetField Operator for indexing an structure
-
-  // Binary Control Flow Operators
-  WhileOpID,               ///< While expression is true loop
-  UnlessOpID,              ///< Unless expression is true loop
-  UntilOpID,               ///< Do block until expression is true loop
-
-  // Other Binary Operators
-  OpenOpID,                ///< Open a stream from a URL
-  ReadOpID,                ///< Read from a stream
-  WriteOpID,               ///< Write to a stream
-  CreateContOpID,          ///< The Create Continutation Operator
-LastBinaryOperatorID = CreateContOpID,
-
-  // Ternary Operators
-  SelectOpID,                  ///< The select an alternate operator
-FirstTernaryOperatorID = SelectOpID,
-  StrInsertOpID,           ///< Insert(str1,where,str2)
-  StrEraseOpID,            ///< Erase(str,at,len)
-  StrReplaceOpID,          ///< Replace(str,at,len,what)
-  StrConcatOpID,           ///< str3 = Concat(str1,str2)
-  PositionOpID,            ///< Position a stream (stream,where,relative-to)
-  LoopOpID,                ///< The General Purpose Loop Operator
-LastTernaryOperatorID = LoopOpID,
-
-  // Multi Operators
-  CallOpID,                ///< The Call Operator (n operands)
-FirstMultiOperatorID = CallOpID,
-  InvokeOpID,              ///< The Invoke Operator (n operands)
-  DispatchOpID,            ///< The Object Method Dispatch Operator (n operands)
-  CallWithContOpID,        ///< The Call with Continuation Operator (n operands)
-  SwitchOpID,              ///< The Switch Operator (n operands)
-LastMultiOperatorID = SwitchOpID,
-LastOperatorID = SwitchOpID,
-LastValueID = SwitchOpID,
-LastDocumentableID = SwitchOpID,
-LastNodeID = SwitchOpID,
-
-  NumNodeIDs               ///< The number of node identifiers in the enum
-};
-
-/// This class is the abstract base class of all the Abstract Syntax Tree (AST)
-/// node types. All other AST nodes are subclasses of this class. This class
-/// must only provide functionality that is common to all AST Node subclasses.
-/// It provides for class identification, insertion of nodes, management of a
-/// set of flags, 
-/// @brief Abstract Base Class of All HLVM AST Nodes
-class Node
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Node(NodeIDs ID) : id(ID), flags(0), parent(0), loc(0) {}
-  public:
-    virtual ~Node();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the AST root node that this Node is part of.
-    AST* getRoot(); 
-
-    /// Return the bundle that contains this Node.
-    Bundle* getContainingBundle() const;
-
-    /// Get the type of node
-    NodeIDs getID() const { return NodeIDs(id); }
-
-    /// Get the parent node
-    Node* getParent() const { return parent; }
-
-    /// Get the flags
-    unsigned getFlags() const { return flags; }
-
-    /// Get the Locator
-    const Locator* getLocator() const { return loc; }
-
-    /// Determine if the node is a specific kind
-    bool is(NodeIDs kind) const { return id == unsigned(kind); }
-
-    /// Determine if the node is a Type
-    bool isType() const {
-      return id >= FirstTypeID && 
-             id <= LastTypeID; }
-
-    bool isIntegralType()  const { 
-      return (id == IntegerTypeID) || (id == RangeTypeID) || 
-        (id == EnumerationTypeID) || (id == BooleanTypeID) ||
-        (id == CharacterTypeID); }
-
-    bool isNumericType() const {
-      return isIntegralType() || id == RealTypeID; }
-
-    /// Determine if the node is a uniform container type
-    bool isUniformContainerType() const {
-      return id >= FirstUniformContainerTypeID && 
-             id <= LastUniformContainerTypeID;
-    }
-
-    /// Determine if the node is a disparate container type
-    bool isDisparateContainerType() const {
-      return id >= FirstDisparateContainerTypeID && 
-             id <= LastDisparateContainerTypeID; }
-
-    /// Determine if the node is a runtime type
-    bool isRuntimeType() const {
-      return id >= FirstRuntimeTypeID &&
-             id <= LastRuntimeTypeID; }
-
-    /// Determine if the node is a container type
-    bool isContainerType() const {
-      return id >= FirstContainerTypeID && id <= LastContainerTypeID;
-    }
-    /// Determine if the node is one of the Constant values.
-    bool isConstant() const {
-      return id >= FirstConstantID && id <= LastConstantID; }
-
-    /// Determine if the node is one of the Constant values.
-    bool isConstantValue() const {
-      return id >= FirstConstantValueID && id <= LastConstantValueID; }
-
-    /// Determine if the node is one of the ConstantAggregate values.
-    bool isConstantAggregate() const {
-      return id >= FirstConstantAggregateID && id <= LastConstantAggregateID; }
-
-    /// Determine if the node is a Linkable
-    bool isLinkable() const {
-      return id >= FirstLinkableID && id <= LastLinkableID; }
-
-    /// Determine if the node is any of the Operators
-    bool isOperator() const { 
-      return id >= FirstOperatorID && id <= LastOperatorID; }
-
-    bool isTerminator() const {
-      return (id >= BreakOpID && id <= ReturnOpID) || (id == ThrowOpID); }
-
-    bool isLoop() const {
-      return id == LoopOpID || (id >= WhileOpID && id <= UntilOpID); }
-
-    bool isNilaryOperator() const {
-      return id >= FirstNilaryOperatorID && id <= LastNilaryOperatorID; }
-
-    bool isUnaryOperator() const {
-      return id >= FirstUnaryOperatorID && id <= LastUnaryOperatorID; }
-
-    bool isBinaryOperator() const {
-      return id >= FirstBinaryOperatorID && id <= LastBinaryOperatorID; }
-
-    bool isTernaryOperator() const {
-      return id >= FirstTernaryOperatorID && id <= LastTernaryOperatorID; }
-
-    bool isMultiOperator() const {
-      return id >= FirstMultiOperatorID && id <= LastMultiOperatorID; }
-
-    /// Determine if the node is a Documentable Node
-    bool isDocumentable() const { 
-      return id >= FirstDocumentableID && id <= LastDocumentableID; }
-
-    /// Determine if the node is a Value
-    bool isValue() const { 
-      return id >= FirstValueID && id <= LastValueID; }
-
-    bool isFunction() const 
-      { return id == FunctionID || id == ProgramID; }
-
-    /// Provide support for isa<X> and friends
-    static inline bool classof(const Node*) { return true; }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setLocator(const Locator* l) { loc = l; }
-    void setFlags(uint16_t f) { flags = f; }
-    virtual void setParent(Node* parent);
-
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint16_t id;         ///< Really a value in NodeIDs
-    uint16_t flags;      ///< 16 flags, subclass dependent interpretation
-    Node* parent;        ///< The node that owns this node.
-    const Locator* loc;  ///< The source location corresponding to node.
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents program
-/// documentation. Documentation nodes may be attached to any Documentable which
-/// is an abstract base class of nearly every type of AST node. This construct
-/// permits documentation (not just comments) to be included directly into the
-/// nodes of the Abstract Syntax Tree as first class objects, not just addenda.
-/// Each Documentation node simply contains a block of text that provides the
-/// documentation for the Documentable to which the Documentation is attached.
-/// The intended use is that the text contain XHTML markup. In this way, an 
-/// automated documentation facility can translate the AST into XHTML 
-/// documentation with great accuracy in associating documentation with the
-/// nodes of the AST. Since the documentation node can be associated with 
-/// nearly any kind of node, this affords a complete system for documenting 
-/// HLVM programs with XHTML markup. There is, however, no firm requirement 
-/// that XHTML be used for the documentation. Any kind of documentation that is
-/// expressible in UTF-8 notation can be accommodated including other markup
-/// languages or simple ASCII text.
-/// @see Documentable
-/// @brief AST Documentation Node
-class Documentation : public Node
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Documentation() : Node(DocumentationID) {}
-    virtual ~Documentation();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getDoc() const { return doc; }
-    static inline bool classof(const Documentation*) { return true; }
-    static inline bool classof(const Node* N) 
-    { return N->is(DocumentationID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setDoc(const std::string& d) { doc = d; }
-    void addDoc(const std::string& d) { doc += d; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string doc;
-  /// @}
-  friend class AST;
-};
-
-/// This class is an abstract base class in the Abstract Syntax Tree for any 
-/// node type that can be documented. That is, it provides a facility for
-/// attaching a Documentation node. This is the base class of most definitions
-/// in the AST. 
-/// @see Documentation
-/// @brief AST Documentable Node
-class Documentable : public Node
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Documentable(NodeIDs id) : Node(id), doc(0) {}
-  public:
-    virtual ~Documentable();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the name of the node
-    inline Documentation* getDoc() const { 
-      return const_cast<Documentation*>(doc); }
-
-    static inline bool classof(const Documentable*) { return true; }
-    static inline bool classof(const Node* N) { return N->isDocumentable(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setDoc(Documentation* d) { doc = d; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Documentation* doc;///< All named nodes can have documentation
-  /// @}
-  friend class AST;
-};
-
-/// This class is an abstract base class in the Abstract Syntax Tree for things
-/// that have a value at runtime. Every Value has a Type. All Operators, and
-/// Linkables are Values.
-/// @see Type
-/// @see Linkable
-/// @see Operator
-/// @brief AST Value Node
-class Value : public Documentable
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Value(NodeIDs id) : Documentable(id), type(0)  {}
-  public:
-    virtual ~Value();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    // Get the type of the value
-    virtual const Type* getType() const { return type; }
-    template<class C>
-    bool typeis() const { return llvm::isa<C>(type); }
-    const Type* getConcreteType() const;
-
-    static inline bool classof(const Value*) { return true; }
-    static inline bool classof(const Node* N) { return N->isValue(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setType(const Type* t) { type = t; }
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    const Type* type; ///< The type of this value.
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/Operator.cpp b/hlvm/hlvm/AST/Operator.cpp
deleted file mode 100644
index 035df0b..0000000
--- a/hlvm/hlvm/AST/Operator.cpp
+++ /dev/null
@@ -1,354 +0,0 @@
-//===-- hlvm/AST/Operator.cpp - AST Operator Class --------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Operator.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Operator.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Operator.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/Support/Casting.h>
-
-using namespace llvm;
-
-namespace hlvm {
-
-Operator::~Operator()
-{
-}
-
-Function* 
-Operator::getContainingFunction() const
-{
-  Node* p = getParent();
-  while (p && !p->isFunction()) p = p->getParent();
-  if (!p)
-    return 0;
-  return cast<Function>(p);
-}
-
-Block*
-Operator::getContainingBlock() const
-{
-  Node* p = getParent();
-  while (p && !isa<Block>(p)) p = p->getParent();
-  if (!p)
-    return 0;
-  return cast<Block>(p);
-}
-
-Operator*
-Operator::getContainingLoop() const
-{
-  Node* p = getParent();
-  while (p && !p->isLoop()) p = p->getParent();
-  if (!p)
-    return 0;
-  return cast<Operator>(p);
-}
-
-NilaryOperator::~NilaryOperator()
-{
-}
-
-Operator*
-NilaryOperator::getOperand(unsigned idx) const
-{
-  hlvmAssert(!"Can't get operands from a NilaryOperator");
-  return 0;
-}
-
-size_t  
-NilaryOperator::getNumOperands() const
-{
-  return 0;
-}
-
-void
-NilaryOperator::setOperand(unsigned opnum, Operator* operand)
-{
-  hlvmAssert(!"Can't set operands on a NilaryOperator!");
-}
-
-void 
-NilaryOperator::insertChild(Node* child)
-{
-  hlvmAssert(!"NilaryOperators don't accept children");
-}
-
-void 
-NilaryOperator::removeChild(Node* child)
-{
-  hlvmAssert(!"Can't remove from a NilaryOperator");
-}
-
-UnaryOperator::~UnaryOperator()
-{
-}
-
-Operator*
-UnaryOperator::getOperand(unsigned idx) const
-{
-  assert(idx == 0 && "Operand index out of range");
-  return op1;
-}
-
-size_t  
-UnaryOperator::getNumOperands() const
-{
-  return op1 != 0;
-}
-
-void
-UnaryOperator::setOperand(unsigned opnum, Operator* operand)
-{
-  hlvmAssert(opnum == 0 && "Operand Index out of range for UnaryOperator!");
-  operand->setParent(this);
-}
-
-void 
-UnaryOperator::insertChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  hlvmAssert(child != op1 && "Re-insertion of child");
-  if (!op1)
-    op1 = cast<Operator>(child);
-  else
-    hlvmAssert("UnaryOperator full");
-}
-
-void 
-UnaryOperator::removeChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  if (op1 == child) {
-    op1 = 0;
-  } else
-    hlvmAssert(!"Can't remove child from UnaryOperator");
-}
-
-void 
-UnaryOperator::resolveTypeTo(const Type* from, const Type* to)
-{
-  Operator::resolveTypeTo(from,to);
-  if(op1)
-    op1->resolveTypeTo(from,to);
-}
-
-BinaryOperator::~BinaryOperator()
-{
-}
-
-Operator*
-BinaryOperator::getOperand(unsigned idx) const
-{
-  assert(idx <= 1 && "Operand index out of range");
-  return ops[idx];
-}
-
-size_t  
-BinaryOperator::getNumOperands() const
-{
-  return (ops[0] ? 1 : 0) + (ops[1] ? 1 : 0);
-}
-
-void
-BinaryOperator::setOperand(unsigned opnum, Operator* operand)
-{
-  hlvmAssert(opnum <= 1 && "Operand Index out of range for BinaryOperator!");
-  operand->setParent(this);
-}
-
-void 
-BinaryOperator::insertChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  hlvmAssert(child != ops[0] && child != ops[1] && "Re-insertion of child");
-  if (!ops[0])
-    ops[0] = cast<Operator>(child);
-  else if (!ops[1])
-    ops[1] = cast<Operator>(child);
-  else
-    hlvmAssert(!"BinaryOperator full!");
-}
-
-void 
-BinaryOperator::removeChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  if (ops[0] == child)
-    ops[0] = 0;
-  else if (ops[1] == child)
-    ops[1] = 0;
-  else
-    hlvmAssert(!"Can't remove child from BinaryOperator");
-}
-
-void 
-BinaryOperator::resolveTypeTo(const Type* from, const Type* to)
-{
-  Operator::resolveTypeTo(from,to);
-  if(ops[0])
-    ops[0]->resolveTypeTo(from,to);
-  if(ops[1])
-    ops[1]->resolveTypeTo(from,to);
-
-}
-
-TernaryOperator::~TernaryOperator()
-{
-}
-
-Operator*
-TernaryOperator::getOperand(unsigned idx) const
-{
-  assert(idx <= 2 && "Operand index out of range");
-  return ops[idx];
-}
-
-size_t  
-TernaryOperator::getNumOperands() const
-{
-  return (ops[0] ? 1 : 0) + (ops[1] ? 1 : 0) + (ops[2] ? 1 : 0);
-}
-
-void
-TernaryOperator::setOperand(unsigned opnum, Operator* operand)
-{
-  hlvmAssert(opnum <= 2 && "Operand Index out of range for TernaryOperator!");
-  operand->setParent(this);
-}
-
-void 
-TernaryOperator::insertChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  hlvmAssert(child != ops[0] && child != ops[1] && child != ops[2] && 
-             "Re-insertion of child");
-  if (!ops[0])
-    ops[0] = cast<Operator>(child);
-  else if (!ops[1])
-    ops[1] = cast<Operator>(child);
-  else if (!ops[2])
-    ops[2] = cast<Operator>(child);
-  else
-    hlvmAssert(!"TernaryOperator full!");
-}
-
-void 
-TernaryOperator::removeChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  if (ops[0] == child)
-    ops[0] = 0;
-  else if (ops[1] == child)
-    ops[1] = 0;
-  else if (ops[2] == child)
-    ops[2] = 0;
-  else
-    hlvmAssert(!"Can't remove child from TernaryOperator!");
-}
-
-void 
-TernaryOperator::resolveTypeTo(const Type* from, const Type* to)
-{
-  Operator::resolveTypeTo(from,to);
-  if(ops[0])
-    ops[0]->resolveTypeTo(from,to);
-  if(ops[1])
-    ops[1]->resolveTypeTo(from,to);
-  if(ops[2])
-    ops[2]->resolveTypeTo(from,to);
-
-}
-
-MultiOperator::~MultiOperator()
-{
-}
-
-Operator*
-MultiOperator::getOperand(unsigned idx) const
-{
-  assert(idx <= ops.size() && "Operand index out of range");
-  return ops[idx];
-}
-
-size_t  
-MultiOperator::getNumOperands() const
-{
-  return ops.size();
-}
-
-void
-MultiOperator::setOperand(unsigned opnum, Operator* operand)
-{
-  if (ops.capacity() < opnum + 1)
-    ops.resize(opnum+1);
-  operand->setParent(this);
-}
-
-void 
-MultiOperator::addOperands(const OprndList& oprnds) 
-{
-  for (const_iterator I = oprnds.begin(), E = oprnds.end(); I != E; ++I )
-  {
-    hlvmAssert(isa<Operator>(*I));
-    (*I)->setParent(this);
-  }
-}
-
-void 
-MultiOperator::insertChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-#ifdef HLVM_ASSERT
-  for (const_iterator I = begin(), E = end(); I != E; ++I)
-    hlvmAssert((*I) != child && "Re-insertion of child");
-#endif
-  ops.push_back(cast<Operator>(child));
-}
-
-void 
-MultiOperator::removeChild(Node* child)
-{
-  hlvmAssert(isa<Operator>(child));
-  for (iterator I = begin(), E = end(); I != E; ++I ) {
-      if (*I == child) { ops.erase(I); return; }
-  }
-}
-
-void 
-MultiOperator::resolveTypeTo(const Type* from, const Type* to)
-{
-  Operator::resolveTypeTo(from,to);
-  for (iterator I = begin(), E = end(); I != E; ++I )
-    (*I)->resolveTypeTo(from,to);
-}
-
-}
diff --git a/hlvm/hlvm/AST/Operator.h b/hlvm/hlvm/AST/Operator.h
deleted file mode 100644
index e0b50d6..0000000
--- a/hlvm/hlvm/AST/Operator.h
+++ /dev/null
@@ -1,322 +0,0 @@
-//===-- AST Operator Class --------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Operator.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Operator
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_OPERATOR_H
-#define HLVM_AST_OPERATOR_H
-
-#include <hlvm/AST/Node.h>
-
-namespace hlvm 
-{
-
-class Type; 
-class Bundle;
-class Function;
-class Block;
-class LoopOp;
-
-/// This class is the abstract base class in the Abstract Syntax Tree for all
-/// operators. An Operator is an instruction to the virtual machine to take
-/// some action. Operators form the content of a Block.  As this is the base
-/// class of all operators, the Operator class only provides the functionality
-/// that is common to all operators: getting the number of operands
-/// (getNumOperands), getting the Value of an operand (getOperand), and  
-/// setting 
-/// the Value of an operand (setOperand). Since Operand is a Value, this implies
-/// two things: (1) Operators can be the operand of other operators and (2) eery
-/// Operator has a type.
-/// @see Value
-/// @see Block
-/// @brief AST Abstract Operator Node
-class Operator : public Value
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Operator(NodeIDs opID) : Value(opID)  {}
-    virtual ~Operator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the number of operands in this operator
-    virtual size_t  getNumOperands() const = 0;
-
-    /// Get a specific operand of this operator.
-    virtual Operator* getOperand(unsigned opnum) const = 0;
-
-    /// Return the function containing this operator
-    Function* getContainingFunction() const;
-
-    /// Return the block containing this operator
-    Block* getContainingBlock() const;
-
-    /// Return the loop operator containing this operator. This can return
-    /// any of the loop constructs (Loop, While, Unless, etc.) so its result
-    /// type is Operator*.
-    Operator* getContainingLoop() const;
-
-    /// Determine if this is a classof some other type.
-    static inline bool classof(const Operator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isOperator(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd) = 0;
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree base class for all Operators
-/// that have no operands.
-/// @brief AST Operator With No Operands
-class NilaryOperator : public Operator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    NilaryOperator(NodeIDs opID ) : Operator(opID) {}
-    virtual ~NilaryOperator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual size_t  getNumOperands() const;
-    virtual Operator* getOperand(unsigned opnum) const;
-    static inline bool classof(const NilaryOperator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isNilaryOperator(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd);
-
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree base class for Operators that 
-/// take a single operand.
-/// @brief AST Operator With One Operand
-class UnaryOperator : public Operator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    UnaryOperator(NodeIDs opID) : Operator(opID), op1(0) {}
-    virtual ~UnaryOperator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    Operator* getOperand() const { return op1; }
-    virtual size_t  getNumOperands() const;
-    virtual Operator* getOperand(unsigned opnum) const;
-    static inline bool classof(const UnaryOperator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isUnaryOperator(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd);
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-    virtual void setOperand(Operator* oprnd) { op1 = oprnd; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Operator* op1;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree base class for all operators
-/// that have two operands. The operands may be of any Type.
-/// @brief AST Operator With Two Operands
-class BinaryOperator : public Operator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BinaryOperator(NodeIDs opID) : Operator(opID) { ops[0] = ops[1] = 0; }
-    virtual ~BinaryOperator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual size_t  getNumOperands() const;
-    virtual Operator* getOperand(unsigned opnum) const;
-    static inline bool classof(const BinaryOperator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isBinaryOperator(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd);
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Operator* ops[2];
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree base class for all operators
-/// that have three operands. The operands may be of any Type.
-/// @brief AST Operator With Three Operands
-class TernaryOperator : public Operator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    TernaryOperator(NodeIDs opID) : Operator(opID)
-    { ops[0] = ops[1] = ops[2] = 0; }
-    virtual ~TernaryOperator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual size_t  getNumOperands() const;
-    virtual Operator* getOperand(unsigned opnum) const;
-    static inline bool classof(const TernaryOperator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isTernaryOperator(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd);
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    Operator* ops[3];
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree base class for all operators
-/// that have multiple operands. The operands may be of any Type. Although the
-/// interface to this class permits any number of operands, in practice the
-/// number of allowed operands for a given MultiOperator subclass is limited. 
-/// The subclass's insertChild and removeChild method overrides will enforce
-/// the correct arity for that subclass. 
-/// @brief AST Operator With Multiple Operands
-class MultiOperator : public Operator
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<Operator*> OprndList;
-    typedef OprndList::iterator iterator;
-    typedef OprndList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    MultiOperator(NodeIDs opID) : Operator(opID), ops() {}
-    virtual ~MultiOperator();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual size_t  getNumOperands() const;
-    virtual Operator* getOperand(unsigned opnum) const;
-    static inline bool classof(const MultiOperator*) { return true; }
-    static inline bool classof(const Node* N) { return N->isMultiOperator(); }
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    iterator        begin()       { return ops.begin(); }
-    const_iterator  begin() const { return ops.begin(); }
-    iterator        end  ()       { return ops.end(); }
-    const_iterator  end  () const { return ops.end(); }
-    size_t          size () const { return ops.size(); }
-    bool            empty() const { return ops.empty(); }
-    Operator*       front()       { return ops.front(); }
-    const Operator* front() const { return ops.front(); }
-    Operator*       back()        { return ops.back(); }
-    const Operator* back()  const { return ops.back(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    virtual void setOperand(unsigned opnum, Operator* oprnd);
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-    void addOperand(Operator* v) { v->setParent(this); }
-    void addOperands(const OprndList& new_ops); 
-  protected:
-    virtual void insertChild(Node* child);
-    virtual void removeChild(Node* child);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    OprndList ops; ///< The operands of this Operator
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/RealMath.cpp b/hlvm/hlvm/AST/RealMath.cpp
deleted file mode 100644
index 7194cca..0000000
--- a/hlvm/hlvm/AST/RealMath.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- AST Real Math Operators Implementation ------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/RealMath.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Implements the AST Real Math Operators 
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/RealMath.h>
-
-namespace hlvm {
-
-IsPInfOp::~IsPInfOp() {}
-IsNInfOp::~IsNInfOp() {}
-IsNanOp::~IsNanOp() {}
-TruncOp::~TruncOp() {}
-RoundOp::~RoundOp() {}
-FloorOp::~FloorOp() {}
-CeilingOp::~CeilingOp() {}
-LogEOp::~LogEOp() {}
-Log2Op::~Log2Op() {}
-Log10Op::~Log10Op() {}
-SquareRootOp::~SquareRootOp() {}
-CubeRootOp::~CubeRootOp() {}
-FactorialOp::~FactorialOp() {}
-PowerOp::~PowerOp() {}
-RootOp::~RootOp() {}
-GCDOp::~GCDOp() {}
-LCMOp::~LCMOp() {}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/AST/RealMath.h b/hlvm/hlvm/AST/RealMath.h
deleted file mode 100644
index 19fe11d..0000000
--- a/hlvm/hlvm/AST/RealMath.h
+++ /dev/null
@@ -1,437 +0,0 @@
-//===-- AST Real Math Operators Interface -----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/RealMath.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/14
-/// @since 0.2.0
-/// @brief Declares the AST Real Math Operators 
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_REALMATH_H
-#define HLVM_AST_REALMATH_H
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree node that represents a test
-/// for positive infinity on a real value.  The IsPInOp  is a unary operator 
-/// that determines if its real number typed operand is the postive infinity 
-/// value or not. A Boolean value is returned.
-/// @brief AST Positive Infinity Test Operator Node   
-class IsPInfOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    IsPInfOp() : UnaryOperator(IsPInfOpID)  {}
-    virtual ~IsPInfOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const IsPInfOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(IsPInfOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a test
-/// for negative infinity on a real value.  The IsNInOp  is a unary operator 
-/// that determines if its real number typed operand is the negative infinity 
-/// value or not. A Boolean value is returned.
-/// @brief AST Negative Infinity Test Operator Node   
-class IsNInfOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    IsNInfOp() : UnaryOperator(IsNInfOpID)  {}
-    virtual ~IsNInfOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const IsNInfOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(IsNInfOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a test
-/// for not-a-number (NaN) on a real value.  The IsNaNOp  is a unary operator 
-/// that determines if its real number typed operand is the not-a-number
-/// value or not. A Boolean value is returned.
-/// @brief AST Not-A-Number Test Operator Node   
-class IsNanOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    IsNanOp() : UnaryOperator(IsNanOpID)  {}
-    virtual ~IsNanOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const IsNanOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(IsNanOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a real 
-/// number truncation operator. The TruncOp removes the fractional portion of
-/// its real number operand and returns that truncated value.
-/// @brief AST Truncate Operator Node   
-class TruncOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    TruncOp() : UnaryOperator(TruncOpID)  {}
-    virtual ~TruncOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const TruncOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(TruncOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a real 
-/// number rounding operator. The TruncOp rounds its real number operand towards
-/// the nearest integer, but rounds halfway cases away from zero. The rounded
-/// value is returned. This follows the C99 standard for rounding floating point
-/// numbers.
-/// @brief AST Rounding Operator Node   
-class RoundOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RoundOp() : UnaryOperator(RoundOpID)  {}
-    virtual ~RoundOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const RoundOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(RoundOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a real 
-/// number rounding operator. The FloorOp rounds its real number down to the
-/// nearest integer. 
-/// @brief AST Floor Operator Node   
-class FloorOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    FloorOp() : UnaryOperator(FloorOpID)  {}
-    virtual ~FloorOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const FloorOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(FloorOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a real 
-/// number rounding operator. The CeilingOp rounds its real number operand 
-/// upwards to the nearest integer. The rounded value is returned.
-/// @brief AST Ceiling Operator Node   
-class CeilingOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    CeilingOp() : UnaryOperator(CeilingOpID)  {}
-    virtual ~CeilingOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const CeilingOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(CeilingOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an 
-/// natural logarithm operator.  The LogEOp is a unary operator that computes 
-/// the natural (base e, Euler's number) logarithm of its operand and returns
-/// the result.
-/// @brief AST Natural Logarithm Operator Node   
-class LogEOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LogEOp() : UnaryOperator(LogEOpID)  {}
-    virtual ~LogEOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LogEOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LogEOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a base 
-/// two logarithm operator.  The Log2Op is a unary operator that computes 
-/// the base 2 logaritm of its operand and returns the result. 
-/// @brief AST Base 2 Logarithm Operator Node   
-class Log2Op : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Log2Op() : UnaryOperator(Log2OpID)  {}
-    virtual ~Log2Op();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const Log2Op*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(Log2OpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a base 
-/// ten logarithm operator.  The Log10Op is a unary operator that computes 
-/// the base 10 logaritm of its operand and returns the result. 
-/// @brief AST Base 10 Logarithm Operator Node   
-class Log10Op : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Log10Op() : UnaryOperator(Log10OpID)  {}
-    virtual ~Log10Op();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const Log10Op*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(Log10OpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a square 
-/// root operator.  The SquareRootOp is a unary operator that computes 
-/// the square root of its operand and returns the result. 
-/// @brief AST Squar Root Operator Node   
-class SquareRootOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    SquareRootOp() : UnaryOperator(SquareRootOpID)  {}
-    virtual ~SquareRootOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const SquareRootOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(SquareRootOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a cube 
-/// root operator.  The CubeRootOp is a unary operator that computes 
-/// the cube root of its operand and returns the result. 
-/// @brief AST Squar Root Operator Node   
-class CubeRootOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    CubeRootOp() : UnaryOperator(CubeRootOpID)  {}
-    virtual ~CubeRootOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const CubeRootOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(CubeRootOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a factorial
-/// operator.  The FactorialOp is a unary operator that computes 
-/// the factorial of its operand and returns the result. 
-/// @brief AST Factorial Operator Node   
-class FactorialOp : public UnaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    FactorialOp() : UnaryOperator(FactorialOpID)  {}
-    virtual ~FactorialOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const FactorialOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(FactorialOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an power
-/// operator.  The PowerOp is a binary operator that raises the value of its
-/// first operand to the power of its second operand and returns the result.
-/// @brief AST Power Operator Node   
-class PowerOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    PowerOp() : BinaryOperator(PowerOpID)  {}
-    virtual ~PowerOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const PowerOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(PowerOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an root
-/// operator.  The RootOp is a binary operator that determines the root of its
-/// first operand as a base of its second operand and returns the result.
-/// @brief AST Root Operator Node   
-class RootOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RootOp() : BinaryOperator(RootOpID)  {}
-    virtual ~RootOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const RootOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(RootOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a greatest
-/// common denominator operator.  The GCDOp is a unary operator that computes 
-/// the greatest common denominator of its operands and returns the result. 
-/// @brief AST Factorial Operator Node   
-class GCDOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    GCDOp() : BinaryOperator(GCDOpID)  {}
-    virtual ~GCDOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const GCDOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(GCDOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a least
-/// common multiple operator. The LCMOp is a binary operator that computes the
-/// least common multiple of its operands and returns the result.
-/// @brief AST Least Common Multiple Operator Node   
-class LCMOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LCMOp() : BinaryOperator(LCMOpID)  {}
-    virtual ~LCMOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const LCMOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(LCMOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/AST/RuntimeType.cpp b/hlvm/hlvm/AST/RuntimeType.cpp
deleted file mode 100644
index efcb15a..0000000
--- a/hlvm/hlvm/AST/RuntimeType.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//===-- AST Runtime Type Implementation -------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/RuntimeType.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Implements the functions of the runtime types
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/RuntimeType.h>
-#include <hlvm/Base/Assert.h>
-
-namespace hlvm {
-
-
-const char* 
-RuntimeType::getPrimitiveName() const
-{
-  hlvmDeadCode("RuntimeTypes don't have primitive names");
-  return "";
-}
-
-RuntimeType::~RuntimeType()
-{
-}
-
-TextType::~TextType()
-{
-}
-
-StreamType::~StreamType()
-{
-}
-
-BufferType::~BufferType()
-{
-}
-
-}
diff --git a/hlvm/hlvm/AST/RuntimeType.h b/hlvm/hlvm/AST/RuntimeType.h
deleted file mode 100644
index 1efbc44..0000000
--- a/hlvm/hlvm/AST/RuntimeType.h
+++ /dev/null
@@ -1,138 +0,0 @@
-//===-- AST Runtime Type Interfaces -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/RuntimeType.h   
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares types for the objects that the runtime manipulates.
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_RUNTIMETYPE_H  
-#define HLVM_AST_RUNTIMETYPE_H  
-
-#include <hlvm/AST/Type.h>
-
-namespace hlvm 
-{
-
-/// This class provides an Abstract Syntax Tree base class for the various types
-/// that are manipulated by the HLVM runtime.  In general, a RuntimeType is
-/// simply a pointer (handle) to some internal data structure of the runtime.
-/// The subclasses of RuntimeType exist to differentiate between the different
-/// kinds of objects the runtime manipulates.  The Runtime then is able to 
-/// define what the actualy types are without breaking compatibility across
-/// releases. Runtime types are disginguished by their names.
-class RuntimeType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RuntimeType(NodeIDs id, const std::string& n) : Type(id) { setName(n); }
-    virtual ~RuntimeType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const; // asserting override
-    // Methods to support type inquiry via isa, cast, dyn_cast
-    static inline bool classof(const RuntimeType*) { return true; }
-    static inline bool classof(const Type* T) { return T->isRuntimeType(); }
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a Text Type
-/// object. TextType objects are unicode strings of either variable or constant
-/// value. Internall, the encoding of a TextType string is UTF-8. However, the
-/// string can be converted to any of a number of Unicode encodings.
-/// @brief AST Unicode Text Type
-class TextType : public RuntimeType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    TextType() : RuntimeType(TextTypeID,"text") {}
-    virtual ~TextType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const TextType*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(TextTypeID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a stream 
-/// type. A StreamType is used for input and output. The StreamType represents
-/// a handle that the HLVM runtime uses to identify the source of the program's
-/// input or the destination of a program's output.
-/// @brief AST Input Output Stream Type
-class StreamType : public RuntimeType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StreamType() : RuntimeType(StreamTypeID,"stream") {}
-    virtual ~StreamType();
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StreamType*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(StreamTypeID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a data 
-/// buffer in the HLVM runtime. A buffer is logically the combination of an 
-/// area of memory and an integer length for the size of that memory area.
-/// @brief AST Buffer Type
-class BufferType : public RuntimeType
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BufferType() : RuntimeType(BufferTypeID,"buffer") {}
-    virtual ~BufferType();
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const BufferType*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(BufferTypeID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/SConscript b/hlvm/hlvm/AST/SConscript
deleted file mode 100644
index 71fc508..0000000
--- a/hlvm/hlvm/AST/SConscript
+++ /dev/null
@@ -1,31 +0,0 @@
-#===-- Build Script For hlvm/AST ------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.GetRNGTokenizer(env)
-env.RNGTokenizer('IntrinsicTypesTokenizer.cpp','IntrinsicTypes.rng')
-env.Depends('Bundle.o','IntrinsicTypesTokenizer.cpp')
-lib = env.StaticLibrary('HLVMAST',
-  hlvm.GetAllCXXFiles(env)+['IntrinsicTypesTokenizer.cpp'])
-hlvm.InstallLibrary(env,lib)
-hlvm.InstallHeader(env,hlvm.GetFiles(env,'*.h'))
diff --git a/hlvm/hlvm/AST/StringOps.cpp b/hlvm/hlvm/AST/StringOps.cpp
deleted file mode 100644
index e612ce1..0000000
--- a/hlvm/hlvm/AST/StringOps.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- HLVM AST String Operators -------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/StringOps.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Implements the various AST string operators.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/StringOps.h>
-
-namespace hlvm {
-
-StrInsertOp::~StrInsertOp() {}
-StrEraseOp::~StrEraseOp() {}
-StrReplaceOp::~StrReplaceOp() {}
-StrConcatOp::~StrConcatOp() {}
-
-}
diff --git a/hlvm/hlvm/AST/StringOps.h b/hlvm/hlvm/AST/StringOps.h
deleted file mode 100644
index d6ed120..0000000
--- a/hlvm/hlvm/AST/StringOps.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//===-- HLVM AST String Operations ------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/StringOps.h
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Provides the interface to class hlvm::AST::StringOps.
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_STRINGOPS_H
-#define HLVM_AST_STRINGOPS_H
-
-#include <hlvm/AST/Operator.h>
-
-namespace hlvm
-{
-
-/// Represents an Abstract Syntax Tree node for a string insert operator. This
-/// operator provides editing on a string value. It takes three arguments that
-/// specify the string to be modified, the location of the insertion, and the
-/// string to insert.
-/// @brief HLVM AST String Insert Node
-class StrInsertOp : public TernaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StrInsertOp() : TernaryOperator(StrInsertOpID) {}
-    virtual ~StrInsertOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StrInsertOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(StrInsertOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// Represents an Abstract Syntax Tree node for a string insert operator. This
-/// operator provides editing on a string value. It takes three arguments that
-/// specify the string to be modified, the location of the insertion, and the
-/// string to insert.
-/// @brief HLVM AST String Insert Node
-class StrEraseOp : public TernaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StrEraseOp() : TernaryOperator(StrEraseOpID) {}
-    virtual ~StrEraseOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StrEraseOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(StrEraseOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// Represents an Abstract Syntax Tree node for a string insert operator. This
-/// operator provides editing on a string value. It takes four arguments that
-/// specify the string to be modified, the location of the replacement, and the
-/// replacement string.
-/// @brief HLVM AST String Replace Node
-class StrReplaceOp : public MultiOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StrReplaceOp() : MultiOperator(StrReplaceOpID) {}
-    virtual ~StrReplaceOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StrReplaceOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(StrReplaceOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-/// Represents an Abstract Syntax Tree node for a string concatentation 
-/// operator. This operator creates a new string that is the concatenation of
-/// its two operand strings. 
-/// @brief HLVM AST String Concatenation Node
-class StrConcatOp : public BinaryOperator
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StrConcatOp() : BinaryOperator(StrConcatOpID) {}
-    virtual ~StrConcatOp();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    static inline bool classof(const StrConcatOp*) { return true; }
-    static inline bool classof(const Node* N) { return N->is(StrConcatOpID); }
-
-  /// @}
-  friend class AST;
-};
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/SymbolTable.cpp b/hlvm/hlvm/AST/SymbolTable.cpp
deleted file mode 100644
index df48ebf..0000000
--- a/hlvm/hlvm/AST/SymbolTable.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//===-- AST SymbolTable Class -----------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/SymbolTable.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::SymbolTable.
-//===----------------------------------------------------------------------===//
-
-#include "hlvm/AST/SymbolTable.h"
-#include "hlvm/AST/Type.h"
-#include "hlvm/AST/Linkables.h"
-#include "hlvm/Base/Assert.h"
-#include "llvm/ADT/StringExtras.h"
-#include <iostream>
-#include <algorithm>
-
-namespace hlvm {
-
-// lookup a node by name - returns null on failure
-template<class ElemType>
-ElemType* SymbolTable<ElemType>::lookup(const std::string& name) const {
-  const_iterator TI = map_.find(&name);
-  if (TI != map_.end())
-    return const_cast<ElemType*>(TI->second);
-  return 0;
-}
- 
-template<class ElemType> bool 
-SymbolTable<ElemType>::erase(const std::string& name) 
-{
-  iterator I = map_.find(&name);
-  if (I == map_.end())
-    return false;
-  map_.erase(I);
-  return true;
-}
-
-// Erase a specific type from the symbol table
-template<class ElemType>
-bool SymbolTable<ElemType>::erase(ElemType *N) {
-  for (iterator TI = map_.begin(), TE = map_.end(); TI != TE; ++TI) {
-    if (TI->second == N) {
-      this->erase(TI);
-      return true;
-    }
-  }
-  return false;
-}
-
-// remove - Remove a node from the symbol table...
-template<class ElemType>
-ElemType* SymbolTable<ElemType>::erase(iterator Entry) {
-  hlvmAssert(Entry != map_.end() && "Invalid entry to remove!");
-  const ElemType* Result = Entry->second;
-  map_.erase(Entry);
-  return const_cast<ElemType*>(Result);
-}
-
-// insert - Insert a node into the symbol table with the specified name...
-template<class ElemType>
-void SymbolTable<ElemType>::insert(ElemType* N) {
-  hlvmAssert(N && "Can't insert null node into symbol table!");
-
-  // It is an error to reuse a name
-  hlvmAssert(0 == lookup(N->getName()));
-
-  // Insert the map entry
-  map_.insert(make_pair(&N->getName(), N));
-}
-
-/// rename - Given a value with a non-empty name, remove its existing entry
-/// from the symbol table and insert a new one for Name.  This is equivalent to
-/// doing "remove(V), V->Name = Name, insert(V)", but is faster, and will not
-/// temporarily remove the symbol table plane if V is the last value in the
-/// symtab with that name (which could invalidate iterators to that plane).
-template<class ElemType>
-bool SymbolTable<ElemType>::rename(ElemType *N, const std::string &name) {
-  iterator TI = map_.find(&name);
-  if (TI != map_.end()) {
-    map_.erase(TI);
-    N->setName(name);
-    this->insert(N);
-    return true;
-  }
-  return false;
-}
-
-// instantiate for Types and Linkabes
-template class SymbolTable<Type>;
-template class SymbolTable<Constant>;
-
-}
diff --git a/hlvm/hlvm/AST/SymbolTable.h b/hlvm/hlvm/AST/SymbolTable.h
deleted file mode 100644
index 87f0bfc..0000000
--- a/hlvm/hlvm/AST/SymbolTable.h
+++ /dev/null
@@ -1,141 +0,0 @@
-//===-- AST SymbolTable Class -----------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/SymbolTable.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::SymbolTable
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_SYMBOLTABLE_H
-#define HLVM_AST_SYMBOLTABLE_H
-
-#include <map>
-#include <string>
-
-namespace hlvm 
-{
-
-/// This class provides a symbol table of name/node pairs with operations to
-/// support constructing, searching and iterating over the symbol table.
-template<class ElemType>
-class SymbolTable
-{
-/// @name Types
-/// @{
-public:
-  struct StringPointerLess {
-    bool operator()(const std::string* A, const std::string* B) const {
-      return *A < *B;
-    }
-  };
-
-  /// @brief A mapping of names to nodes.
-  typedef typename 
-    std::map<const std::string*, ElemType*, StringPointerLess> NodeMap;
-
-  /// @brief An iterator over the NodeMap.
-  typedef typename NodeMap::iterator iterator;
-
-  /// @brief A const_iterator over the NodeMap.
-  typedef typename NodeMap::const_iterator const_iterator;
-
-/// @}
-/// @name Constructors
-/// @{
-public:
-  SymbolTable() {}
-  ~SymbolTable() {}
-
-/// @}
-/// @name Accessors
-/// @{
-public:
-  /// This method finds the node with the given \p name in the node map
-  /// and returns it.
-  /// @returns null if the name is not found, otherwise the ElemType
-  /// associated with the \p name.
-  /// @brief Lookup a node by name.
-  ElemType* lookup(const std::string& name) const;
-
-  /// @returns true iff the symbol table is empty.
-  /// @brief Determine if the symbol table is empty
-  inline bool empty() const { return map_.empty(); }
-
-  /// @returns the size of the symbol table
-  /// @brief The number of name/node pairs is returned.
-  inline unsigned size() const { return unsigned(map_.size()); }
-
-/// @}
-/// @name Iteration
-/// @{
-public:
-  /// Get an iterator to the start of the symbol table
-  inline iterator begin() { return map_.begin(); }
-
-  /// @brief Get a const_iterator to the start of the symbol table
-  inline const_iterator begin() const { return map_.begin(); }
-
-  /// Get an iterator to the end of the symbol talbe. 
-  inline iterator end() { return map_.end(); }
-
-  /// Get a const_iterator to the end of the symbol table.
-  inline const_iterator end() const { return map_.end(); }
-
-/// @}
-/// @name Mutators
-/// @{
-public:
-  /// Inserts a node into the symbol table with the specified name. There can
-  /// be a many-to-one mapping between names and nodes. This method allows a 
-  /// node with an existing entry in the symbol table to get a new name.
-  /// @brief Insert a node under a new name.
-  void insert(ElemType *N);
-
-  /// Remove a node at the specified position in the symbol table.
-  /// @returns the removed ElemType.
-  /// @returns the ElemType that was erased from the symbol table.
-  ElemType* erase(iterator TI);
-
-  /// Remove a node using a specific key
-  bool erase(const std::string& name);
-
-  /// Remove a specific ElemType from the symbol table. This isn't fast, linear
-  /// search, O(n), algorithm.
-  /// @returns true if the erase was successful (TI was found)
-  bool erase(ElemType* TI);
-
-  /// Rename a node. This ain't fast, we have to linearly search for it first.
-  /// @returns true if the rename was successful (node was found)
-  bool rename(ElemType* T, const std::string& new_name);
-
-/// @}
-/// @name Internal Data
-/// @{
-private:
-  NodeMap map_; ///< This is the mapping of names to types.
-/// @}
-};
-
-} // End hlvm namespace
-#endif
diff --git a/hlvm/hlvm/AST/Type.cpp b/hlvm/hlvm/AST/Type.cpp
deleted file mode 100644
index 987c469..0000000
--- a/hlvm/hlvm/AST/Type.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-//===-- AST Type Class ------------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Type.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::AST::Type.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Type.h>
-#include <hlvm/Base/Assert.h>
-
-namespace hlvm {
-
-Type::~Type()
-{
-}
-
-void
-Type::insertChild(Node* n)
-{
-  hlvmAssert(!"This Type doesn't accept children!");
-}
-
-const char*
-Type::getPrimitiveName() const
-{
-  return 0;
-}
-
-void 
-Type::resolveTypeTo(const Type* from, const Type* to)
-{
-  // Do nothing, no nested types
-}
-
-AnyType::~AnyType()
-{
-}
-
-const char* 
-AnyType::getPrimitiveName() const
-{
-  return "any";
-}
-
-StringType::~StringType()
-{
-}
-
-const char*
-StringType::getPrimitiveName() const
-{
-  return "string";
-}
-
-BooleanType::~BooleanType()
-{
-}
-
-const char* 
-BooleanType::getPrimitiveName() const
-{
-  return "bool";
-}
-
-CharacterType::~CharacterType()
-{
-}
-
-const char* 
-CharacterType::getPrimitiveName() const
-{
-  return "char";
-}
-
-IntegerType::~IntegerType()
-{
-}
-
-const char* 
-IntegerType::getPrimitiveName() const
-{
-  int16_t numBits = getBits();
-  if (numBits > 128)
-    return 0;
-
-  if (isSigned()) {
-    if (numBits > 64)
-      return "s128";
-    else if (numBits > 32)
-      return "s64";
-    else if (numBits > 16)
-      return "s32";
-    else if (numBits > 8)
-      return "s16";
-    else
-      return "s8";
-  } else {
-    if (numBits > 64)
-      return "u128";
-    else if (numBits > 32)
-      return "u64";
-    else if (numBits > 16)
-      return "u32";
-    else if (numBits > 8)
-      return "u16";
-    else
-      return "u8";
-  }
-  hlvmDeadCode("Primitive Name");
-}
-
-RangeType::~RangeType()
-{
-}
-
-const char* 
-RangeType::getPrimitiveName() const
-{
-  if (min < 0) {
-    if (min >= 0 && max <= 255U)
-      return "u8";
-    else if (min >= 0 && max <= 65535U)
-      return "u16";
-    else if (min >= 0 && max <= 4294967295U)
-      return "u32";
-    else if (min >= 0 && max <= 9223372036854775807LL)
-      return "u64";
-    else
-      // FIXME: handle u128 case
-      return 0;
-  } else {
-    if (min >= -127 && max <= 127)
-      return "s8";
-    else if (min >= -32767 && max <= 32767)
-      return "s16";
-    else if (min >= -2147483647 && max <= 2147483647)
-      return "s32";
-    else if (min >= -9223372036854775807LL && max <= 9223372036854775807LL)
-      return "s64";
-    else
-      // FIXME: handle s128 case
-      return 0;
-  }
-  return 0;
-}
-
-EnumerationType::~EnumerationType()
-{
-}
-
-bool 
-EnumerationType::getEnumValue(const std::string& name, uint64_t& val) const
-{
-  val = 0;
-  for (const_iterator I = begin(), E = end(); I != E; ++I ) { 
-    if (*I == name)
-      return true;
-    val++;
-  }
-  val = 0;
-  return false;
-}
-
-const char* 
-EnumerationType::getPrimitiveName() const
-{
-  if (size() < 4294967295U)
-    return "u32";
-  return 0;
-}
-
-RealType::~RealType()
-{
-}
-
-const char* 
-RealType::getPrimitiveName() const
-{
-  switch (mantissa) {
-    case 23:
-      if (exponent  == 8)
-        return "f32";
-      break;
-    case 32:
-      if (exponent == 11)
-        return "f44";
-      break;
-    case 52:
-      if (exponent == 11) 
-        return "f64";
-      break;
-    case 64:
-      if (exponent == 15) 
-        return "f80";
-      break;
-    case 112:
-      if (exponent == 15)
-        return "f128";
-      break;
-    default:
-      break;
-  }
-  return 0;
-}
-
-RationalType::~RationalType()
-{
-}
-
-const char* 
-RationalType::getPrimitiveName() const
-{
-  if (numer_bits == 32 && denom_bits == 32) {
-    if (isSigned())
-      return "qs64";
-    else
-      return "qu64";
-  } else if (numer_bits == 16 && denom_bits == 16) {
-    if (isSigned())
-      return "qs32";
-    else
-      return "qu32";
-  } else if (numer_bits == 8 && denom_bits == 8) {
-    if (isSigned())
-      return "qs16";
-    else
-      return "qu16";
-  } else if (numer_bits == 64 && denom_bits == 64) {
-    if (isSigned())
-      return "qs128";
-    else
-      return "qu128";
-  }
-  return 0;
-}
-
-OpaqueType::~OpaqueType()
-{
-}
-
-}
diff --git a/hlvm/hlvm/AST/Type.h b/hlvm/hlvm/AST/Type.h
deleted file mode 100644
index aad2713..0000000
--- a/hlvm/hlvm/AST/Type.h
+++ /dev/null
@@ -1,570 +0,0 @@
-//===-- AST Type Class ------------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/Type.h
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::AST::Type
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_TYPE_H
-#define HLVM_AST_TYPE_H
-
-#include <hlvm/AST/Node.h>
-
-namespace hlvm 
-{
-
-enum TypeFlags {
-  IntrinsicTF    = 0x0001, ///< Set if the type is intrinsic
-  SignedTF       = 0x0002, ///< Set if IntegerType is signed
-  IsVarArgsTF    = 0x0004, ///< Set if Signature is variable argument length
-  UnresolvedTF   = 0x0008  ///< Set if the type is unresolved (OpaqueType)
-};
-
-/// This class provides the Abstract Syntax Tree base class for all Types. A
-/// Type describes the memory layout of a Value. There are many subclasses of
-/// of Type, each with a particular way of describing memory layout. In HLVM,
-/// Type resolution is done by name. That is, two types with identical layout
-/// but different names are not equivalent.
-/// @brief HLVM AST Type Node
-class Type : public Documentable
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    Type( NodeIDs id ) : Documentable(id)  {}
-    virtual ~Type();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    bool isIntrinsic() const { return flags & IntrinsicTF; }
-    const std::string& getName() const { return name; }
-    bool hasName() const { return !name.empty(); }
-    virtual const char* getPrimitiveName() const;
-    bool isPrimitive() const { return getPrimitiveName() != 0; }
-
-    /// @brief Return the signedness of this type (integers)
-    bool isSigned() const { return flags & SignedTF; }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  protected:
-    void setIsIntrinsic(bool is) { 
-      if (is) flags |= IntrinsicTF; else flags &= ~IntrinsicTF; }
-    virtual void resolveTypeTo(const Type* from, const Type* to);
-
-  /// @}
-  /// @name Type Identification
-  /// @{
-  public:
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const Type*) { return true; }
-    static inline bool classof(const Documentable* n) { return n->isType(); }
-    static inline bool classof(const Node* n) { return n->isType(); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    // We override receiveChild generically here to produce an error. Most
-    // Type subclasses can't receive children. Those that do, can override
-    // again.
-    virtual void insertChild(Node* n);
-
-    virtual void setName(const std::string n) { name = n; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name;
-  /// @}
-  friend class AST;
-  friend class Bundle;
-};
-
-/// This class provides an Abstract Syntax Tree node for describing a type that
-/// can accept any type of Value. The AnyType can be used to represent
-/// dynamically typed variables and it, essentially, bypasses the HLVM type 
-/// system but in a type-safe way.  The AnyType instances will, internally,
-/// carry a type identifier with the value. If the value changes to a new type,
-/// then the type identifier changes with it. In this way, the correct type for
-/// whatever is assigned to an AnyType is maintained by the runtime so that it
-/// cannot be mis-used.
-/// @brief AST Dynamically Typed Type
-class AnyType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    AnyType() : Type(AnyTypeID) {}
-    virtual ~AnyType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const AnyType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(AnyTypeID); }
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node to represent the boolean
-/// type. Booleans have a simple true-or-false value and could be represented by
-/// a single bit.
-/// @brief AST Boolean Type
-class BooleanType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    BooleanType() : Type(BooleanTypeID) {}
-    virtual ~BooleanType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const BooleanType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(BooleanTypeID); }
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node to represent the character
-/// type. A Character is a UTF-16 encoded value. It is sixteen bits long and
-/// interpreted with the UTF-16 codeset. 
-/// @brief AST Character Type
-class CharacterType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    CharacterType(const std::string& E) : Type(CharacterTypeID), encoding(E) {}
-    virtual ~CharacterType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    const std::string& getEncoding() const { return encoding; }
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const CharacterType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(CharacterTypeID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string encoding;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node for describing a character
-/// string type. The StringType value is a sequence of unicode characters. Each
-/// String type specifies the encoding to use for the characters. Strings treat
-/// their content as a single unit. It is not possible to manipulate the 
-/// individual characters of which the string is composed. String-typed
-/// locations can be assigned new string-typed values but the strings are
-/// treated as atomic units. To edit sequential characters, use a Text type.
-/// @see Text
-/// @see Character
-/// @brief AST String Type
-class StringType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    StringType(const std::string& E) : Type(StringTypeID), encoding(E) {}
-    virtual ~StringType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    const std::string& getEncoding() const { return encoding; }
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const StringType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(StringTypeID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    std::string encoding;
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an integer
-/// type in HLVM. An integer is simply a sequence of bits, of specific length,
-/// that is interpreted to be an integer value.  An integer type declares the
-/// the minimum number of bits that are required to store the integer type. The
-/// runtime may, for pragmatic reason, choose to store the type in more bits 
-/// than specified by the type. There are a number of "primitive" integer types
-/// of specific size, that line up with the natural word sizes of an underlying
-/// machines. Such types are preferred because they imply less translation and
-/// a more efficient computation.  If the number of bits is specified as zero,
-/// it implies infinite precision integer arithmetic. Integer types may be
-/// declared as either signed or unsigned. The maximum number of bits for an 
-/// integer type that may be specified is 32,767. Larger integer types should
-/// use infinite precision (number of bits = 0).
-class IntegerType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    IntegerType(
-      uint16_t bits = 32, ///< The number of bits in this integer type
-      bool sign = true ///< Indicates if this is a signed integer type, or not.
-    ) : Type(IntegerTypeID) {
-      setBits(bits);
-      setSigned(sign); 
-    }
-    virtual ~IntegerType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// Get the primitive name for this type. That is, if this type conforms to
-    /// one of the primitive integer types, then return that primitive's name.
-    virtual const char* getPrimitiveName() const;
-
-    /// @brief Return the number of bits in this integer type
-    uint16_t getBits()  const { return bits; }
-
-    /// @brief Methods to support type inquiry via isa, cast, dyn_cast
-    static inline bool classof(const IntegerType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(IntegerTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// @brief Set the number of bits for this integer type
-    void setBits(uint16_t numBits) { bits = numBits; }
-
-    /// @brief Set the signedness of the type
-    void setSigned(bool isSigned) { 
-      if (isSigned) flags |= SignedTF; else flags &= ~SignedTF; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  public:
-    uint32_t bits;
-  /// @}
-  friend class AST;
-};
-
-/// This class specifies an Abstract Syntax Tree node that represents a range
-/// type. A RangeType is an integral type that constricts the set of allowed 
-/// values for the integer to be within an inclusive range. The number of bits
-/// required to represent the range is selected by HLVM. The selected integer
-/// size will contain sufficient bits to represent the requested range. Range
-/// types are limited to values within the limits of a signed 64-bit integer.
-/// The use of RangeType implies range checking whenever the value of a 
-/// RangeType variable is assigned.
-class RangeType: public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RangeType(int64_t n, int64_t x) : Type(RangeTypeID), min(n), max(x) {}
-    virtual ~RangeType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    /// Get min value of range
-    int64_t getMin() const { return min; }
-
-    /// Get max value of range
-    int64_t getMax() const { return max; }
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const RangeType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(RangeTypeID); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    int64_t min; ///< Lowest value accepted
-    int64_t max; ///< Highest value accepted
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an 
-/// enumeration of names. Enumerations consist of a set of enumerators. An
-/// enumerator is simply a name that uniquely identifies one of the possible
-/// values of the EnumerationType.  Enumerators are not integers as in some 
-/// other languages. HLVM will select a representation that is efficient based 
-/// on the characteristics of the EnumerationType. The enumerators define, by 
-/// their order of insertion into the enumeration, a collation order for the
-/// enumerators. This collation order can be used to test enumeration values
-/// for equivalence or inequivalence using the equality and inequality 
-/// operators. 
-/// @brief AST Enumeration Type
-class EnumerationType : public Type
-{
-  /// @name Types
-  /// @{
-  public:
-    typedef std::vector<std::string> EnumeratorList;
-    typedef EnumeratorList::iterator iterator;
-    typedef EnumeratorList::const_iterator const_iterator;
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    EnumerationType() : Type(EnumerationTypeID), enumerators() {}
-    virtual ~EnumerationType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    bool getEnumValue(const std::string& enum_name, uint64_t& val) const;
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const EnumerationType*) { return true; }
-    static inline bool classof(const Node* T) 
-      { return T->is(EnumerationTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void addEnumerator(const std::string& en) { enumerators.push_back(en); }
-
-  /// @}
-  /// @name Iterators
-  /// @{
-  public:
-    iterator          begin()       { return enumerators.begin(); }
-    const_iterator    begin() const { return enumerators.begin(); }
-    iterator          end  ()       { return enumerators.end(); }
-    const_iterator    end  () const { return enumerators.end(); }
-    size_t            size () const { return enumerators.size(); }
-    bool              empty() const { return enumerators.empty(); }
-    std::string       front()       { return enumerators.front(); }
-    const std::string front() const { return enumerators.front(); }
-    std::string       back()        { return enumerators.back(); }
-    const std::string back()  const { return enumerators.back(); }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    EnumeratorList enumerators; ///< The list of the enumerators
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a real
-/// number. All floating point and real number arithmetic is done using values
-/// of this type. The precision and mantissa are specified as a number of 
-/// binary digits to be provided as a minimum.  HLVM will use the machine's 
-/// natural floating point representation for those RealTypes that can fit 
-/// within the precision and mantissa lengths supported by the machine. 
-/// Otherwise, if a machine floating point type cannot meet the requirements of
-/// the RealType, infinite precision floating point arithmetic will be utilized.
-/// @brief AST Real Number Type
-class RealType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RealType(uint32_t m=52, uint32_t x=11) 
-      : Type(RealTypeID), mantissa(m), exponent(x) {}
-    virtual ~RealType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-    /// Get the mantissa bits
-    uint32_t getMantissa() const { return mantissa; }
-
-    /// Get the exponent bits
-    uint32_t getExponent() const { return exponent; }
-
-    /// Get the total number of bits
-    uint32_t getBits() const { 
-      return 1 + getMantissa() + getExponent();
-    }
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const RealType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(RealTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Set the mantissa bits
-    void setMantissa(uint32_t bits) { mantissa = bits; }
-
-    /// Set the exponent bits
-    void setExponent(uint32_t bits) { exponent = bits; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint32_t mantissa; ///< Number of bits in mantissa
-    uint32_t exponent; ///< Number of bits of precision
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents a rational
-/// number. All rational numbers are represented by a pair of integers, one for
-/// the numerator and one for the denominator. All integer arithmetic operations
-/// are available on rational numbers. This provides an alternate (and perhaps
-/// more accurate) form of dealing with the subset of real numbers that are
-/// rational.
-/// @brief AST Rational Number Type
-class RationalType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    RationalType(bool isSigned = true, uint16_t numer=32, uint16_t denom=32) 
-      : Type(RationalTypeID), numer_bits(numer), denom_bits(denom) 
-    {
-      setSigned(isSigned);
-    }
-    virtual ~RationalType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    virtual const char* getPrimitiveName() const;
-
-    /// @brief Return the signedness of this type
-    bool isSigned() const { return flags & SignedTF; }
-
-    /// Get the number of numerator bits
-    uint16_t getNumeratorBits() const { return numer_bits; }
-
-    /// Get the number of denominator bits
-    uint16_t getDenominatorBits() const { return denom_bits; }
-
-    /// Get the total number of bits
-    uint32_t getBits() const { 
-      return getNumeratorBits() + getDenominatorBits();
-    }
-
-    // Methods to support type inquiry via is, cast, dyn_cast
-    static inline bool classof(const RationalType*) { return true; }
-    static inline bool classof(const Node* T) { return T->is(RationalTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// @brief Set the signedness of the type
-    void setSigned(bool isSigned) { 
-      if (isSigned) flags |= SignedTF; else flags &= ~SignedTF; }
-
-    /// Set the mantissa bits
-    void setNumeratorBits(uint16_t bits) { numer_bits = bits; }
-
-    /// Set the exponent bits
-    void setDenominatorBits(uint16_t bits) { denom_bits = bits; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    uint16_t numer_bits; ///< Number of bits in numerator
-    uint16_t denom_bits; ///< Number of bits in denominator
-  /// @}
-  friend class AST;
-};
-
-/// This class provides an Abstract Syntax Tree node that represents an opaque
-/// type. Opaque types are those whose definition is not known. Opaque types are
-/// used to handle forward type references and recursion within container types.
-/// HLVM will automatically resolve OpaqueTypes whose definition is later 
-/// discovered. It can also be used as the element type of a PointerType to 
-/// effectively hide the implementation details of a given type. This helps
-/// libraries to retain control over the implementation details of a type that
-/// is to be treated as generic by the library's users.
-/// @see PointerType
-/// @brief AST Opaque Type
-class OpaqueType : public Type
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    OpaqueType(const std::string& nm) : 
-      Type(OpaqueTypeID) { this->setName(nm); }
-    virtual ~OpaqueType();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    bool isUnresolved() { return flags & UnresolvedTF; }
-    static inline bool classof(const OpaqueType*) { return true; }
-    static inline bool classof(const Node* N) 
-      { return N->is(OpaqueTypeID); }
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    void setIsUnresolved(bool B) {
-      if (B) flags |= UnresolvedTF; else flags &= ~UnresolvedTF; }
-  /// @}
-  friend class AST;
-};
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/AST/URI.cpp b/hlvm/hlvm/AST/URI.cpp
deleted file mode 100644
index 8237713..0000000
--- a/hlvm/hlvm/AST/URI.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//===-- Uniform Resource Identifier -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/URI.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Base::URI
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/URI.h>
-#include <hlvm/Base/Pool.h>
-#include <apr-1/apr_uri.h>
-#include <apr-1/apr_pools.h>
-#include <iostream>
-
-namespace 
-{
-
-class URIImpl : public hlvm::URI 
-{
-  apr_pool_t* pool;
-  apr_uri_t uri_;
-
-public:
-  URIImpl(hlvm::Pool* p) 
-    : pool(reinterpret_cast<apr_pool_t*>(p->getAprPool())) {}
-
-  virtual const char* const scheme() const { return uri_.scheme; }
-  virtual const char* const password() const { return uri_.password; }
-  virtual const char* const user() const { return uri_.user; }
-  virtual const char* const hostname() const { return uri_.hostname; }
-  virtual uint32_t port() const { return atoi(uri_.port_str); }
-  virtual const char* const path() const { return uri_.path; }
-  virtual const char* const query() const { return uri_.query; }
-  virtual const char* const fragment() const { return uri_.fragment; }
-
-  virtual hlvm::URI& assign( const hlvm::URI& that ) {
-    this->uri_ = reinterpret_cast<const URIImpl&>(that).uri_;
-    return *this;
-  }
-
-  virtual const char* const hostinfo() const { return ""; }
-  virtual bool equals(const hlvm::URI& uri) const { 
-    if (&uri == this)
-      return true;
-    return uri.as_string() == this->as_string();
-  }
-
-  virtual void assign( const std::string& that ) {
-    apr_uri_parse(pool, that.c_str(), &uri_);
-  }
-  virtual void clear( void ) {}
-  virtual void scheme( const char* const scheme ) {}
-  virtual void opaque( const char* const opaque ) {}
-  virtual void authority( const char* const authority ) {}
-  virtual void user( const char* const user ) {}
-  virtual void server( const char* const server ) {}
-  virtual void port( uint32_t portnum ) {}
-
-  virtual std::string as_string( void ) const {
-    const char* result = apr_uri_unparse(pool, &uri_, 0);
-    return std::string( result );
-  }
-
-  void get_string(std::string& str) const {
-    str = apr_uri_unparse(pool, &uri_, 0);
-  }
-
-  std::string resolveToFile() const {
-    const char* scheme = this->scheme();
-    if (scheme)
-    {
-      if (strncmp("file",this->scheme(),4) == 0)
-      {
-        return this->path();
-      }
-    }
-    return "";
-  }
-};
-
-}
-
-namespace hlvm {
-
-URI::~URI ( void )
-{
-}
-
-URI*
-URI::create( const std::string& str, Pool* p)
-{
-  URIImpl* result = new URIImpl(p);
-  result->assign(str);
-  return result;
-}
-
-}
diff --git a/hlvm/hlvm/AST/URI.h b/hlvm/hlvm/AST/URI.h
deleted file mode 100644
index 7edc159..0000000
--- a/hlvm/hlvm/AST/URI.h
+++ /dev/null
@@ -1,177 +0,0 @@
-//===-- Uniform Resource Identifier Interface -------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/AST/URI.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Base::URI
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_URI_H
-#define HLVM_AST_URI_H
-
-#include <string>
-#include <stdint.h>
-
-namespace hlvm {
-
-// Forward References
-class AST; 
-class Pool;
-
-/// A class to represent Uniform Resource Identifiers (URIs). This class can
-/// also support URLs and URNs. HLVM uses URIs to uniquely identify bundles and
-/// as the operand of OpenOp operators to specify the resource to be opened.
-/// HLVM defines its own namespace, "hlvm", in which certain classes of 
-/// resources can be specified.
-/// @see RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax
-/// @see RFC 1034 HEMS Variable Definitions (Section 3, Hostname Syntax)
-/// @see RFC 1123 Requirements for Internet Hosts (Section 2.1, Hostnames)
-/// @see RFC 1738 Uniform Resource Locators (URL)
-/// @see RFC 1808 Relative Uniform Resource Locators
-/// @see RFC 2111 Content-ID and Message-ID Uniform Resource Locators
-/// @see RFC 3305 URI/URL/URN Clarifications and Recommendations
-/// @see RFC 3406 URN Namespace Definition Mechanisms
-/// @see RFC 3508 H.323 URL Scheme Registration 
-/// @brief HLVM Uniform Resource Identifier Class
-class URI
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    // This is an abstract class, don't allow construction or copying
-    URI () {}
-    URI ( const URI & that ) {}
-    /// @brief Parsing constructor builds uri by parsing the string parameter
-    static URI* create( const std::string& uriStr, Pool* p);
-    virtual ~URI ( void );
-
-  /// @}
-  /// @name Operators
-  /// @{
-  public:
-    /// @brief Equality Operator.
-    bool operator == ( const URI & that ) const;
-
-    /// @brief Assignment Operator.
-    URI & operator = ( const URI & that );
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-
-    /// @brief Return the URI as a string (escaped). Caller must
-    /// free the returned string.
-    virtual std::string as_string( void ) const = 0;
-
-    /// @brief Set a string to the value of the URI with escapes.
-    virtual void get_string( std::string& str_to_fill ) const = 0;
-
-    /// @brief Return the scheme of the URI
-    virtual const char* const scheme() const = 0;
-
-    /// @brief Return the password part of the URI
-    virtual const char* const password() const = 0;
-
-    /// @brief Return the user part of the URI
-    virtual const char* const user() const = 0;
-
-    /// @brief Return the host name from the URI
-    virtual const char* const hostname() const = 0;
-
-    /// @brief Return the combined [user[:password]\@host:port/ part of the URI
-    virtual const char* const hostinfo() const = 0;
-
-    /// @brief Return the port part of the URI
-    virtual uint32_t port() const = 0;
-
-    /// @brief Return the path part of the URI
-    virtual const char* const path() const = 0;
-
-    /// @brief Return the query part of the URI
-    virtual const char* const query() const = 0;
-
-    /// @brief Return the fragment identifier part of the URI
-    virtual const char* const fragment() const = 0;
-
-    /// @brief Determines if two URIs are equal
-    virtual bool equals( const URI& that ) const = 0;
-
-    virtual std::string resolveToFile() const = 0;
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// @brief Assignment of one URI to another
-    virtual URI& assign( const URI& that ) = 0;
-
-    /// @brief Assignment of an std::string to a URI. 
-    virtual void assign( const std::string& that ) = 0;
-
-    /// @brief Clears the URI, releases memory.
-    virtual void clear( void ) = 0;
-
-    /// @brief Sets the scheme
-    virtual void scheme( const char* const scheme ) = 0;
-
-    /// @brief Set the opaque part of the URI
-    virtual void opaque( const char* const opaque ) = 0;
-
-    /// @brief Sets the authority.
-    virtual void authority( const char* const authority ) = 0;
-
-    /// @brief Sets the user.
-    virtual void user( const char* const user ) = 0;
-
-    /// @brief Sets the server.
-    virtual void server( const char* const server ) = 0;
-
-    /// @brief Sets the port.
-    virtual void port( uint32_t portnum ) = 0;
-
-  /// @}
-  /// @name Functions
-  /// @{
-  public:
-    static uint32_t port_for_scheme( const char* scheme );
-  /// @}
-
-  friend class AST;
-};
-
-inline URI & 
-URI::operator = ( const URI & that )
-{
-  return this->assign(that);
-}
-
-inline bool 
-URI::operator == ( const URI & that ) const
-{
-  return this->equals(that);
-}
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/Base/Assert.h b/hlvm/hlvm/Base/Assert.h
deleted file mode 100644
index 06d9a58..0000000
--- a/hlvm/hlvm/Base/Assert.h
+++ /dev/null
@@ -1,117 +0,0 @@
-//===-- Various CPP Macros For Doing Assertions -----------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Assert.h
-/// @author Reid Spencer <rspencer@reidspencer.com>
-/// @date 2006/05/20
-/// @since 0.1
-/// @brief Assertion and error checking macros.
-///
-/// This file provides various preprocessor macros that can be used to assist
-/// the programmer to check assertions, handle dead code locations, do range
-/// checking, etc. These are intended to be used to check class invariants,
-/// function arguments, and other points in the logic where an assertion
-/// can be made to ensure the program is operating within its parameters.
-/// Note that if an assertion macro is triggered, it results in an
-/// exception being thrown. Make sure that your code can exit cleanly in
-/// the face of the assertion being thrown. Generally this means that
-/// you should place all your assertions at the beginning of a function
-/// so that you don't attempt to operate on the parameters or objects
-/// that are outside of the specified limits. Also note that these macros
-/// can be turned off with the HLVM_ASSERT configuration variable. Ensure
-/// that no needed side effects are encapsulated in the arguments to these
-/// macros as those side effects will disappear when building without the
-/// HLVM_ASSERT configuration. Assertions should only be used to check
-/// validity of logic that should always be true (such as parameter ranges)
-/// but not for end user error messages.
-////////////////////////////////////////////////////////////////////////////////
-
-#ifndef HLVM_BASE_ASSERT_H
-#define HLVM_BASE_ASSERT_H
-
-#ifdef HLVM_ASSERT
-#include <cassert>
-#endif
-/// This  macro enforces any expression that the programmer cares to
-/// assert at the point in the program where the macro is used. The argument
-/// can be any valid logical expression that can be used with the ! operator.
-/// Note that the exception thrown will contain the text of the expression so
-/// that it will be easier to identify which condition failed. Watch out for
-/// side effects of the expression! Do all assignments before the assertion!
-/// @param expr Any logic expression to be tested. The macro throws if the expression evaluates to false.
-/// @brief Check an arbitrary expression for truth.
-#ifdef HLVM_ASSERT
-#define hlvmAssert( expr ) assert(expr)
-#else
-#define hlvmAssert( expr ) {}
-#endif
-
-/// The DEAD_CODE macro is intended to be used to signify locations in the 
-/// code that should never be reached. It serves as a sentinel in the software 
-/// and will \em always throw an exception when it is encountered. Use this to 
-/// place some code in the \p default label of a switch statement that should 
-/// not be reached or at the end of a function that should normally return 
-/// through some other execution path.
-/// @param msg Provides a message that will become part of the exception 
-/// object thrown.
-/// @brief Identify locations in the code that should not be reached.
-#ifdef HLVM_ASSERT
-#define hlvmDeadCode( msg ) assert(! "Dead Code:" msg)
-#else
-#define hlvmDeadCode( msg ) {}
-#endif
-
-/// This macro can be utilized to state that a function is not implemented. It
-/// throws a "Not Implemented" exception that indicates the name of the function
-/// that has not been implemented. This can be used as the sole content of any 
-/// to ensure that unimplemented functionality is recognized. You should use 
-/// this macro in every function when you are doing rapid prototyping.
-/// @param msg Provides a message that will become part of the exception 
-/// object thrown.
-/// @brief Identify unimplemented functionality
-#ifdef HLVM_ASSERT
-#define hlvmNotImplemented( msg ) assert(! "Not Implemented:" msg)
-#else
-#define hlvmNotImplemented(msg) {}
-#endif
-
-/// This macro allows the programmer to make a range assertion about the 
-/// \p value argument when compared with the \p min and \p max arguments. The 
-/// \p value can be anything that is compatible with the \c < and \c > 
-/// operators.  Note that the range being checked is inclusive of both \p min 
-/// and \p max.
-/// @param value The value checked against the \p min and \p max parameters.
-/// @param min The (inclusive) minimum value to be checked.
-/// @param max The (inclusive) maximum value to be checked.
-/// @brief Check numerical range of a value.
-#ifdef HLVM_ASSERT
-#define hlvmRangeCheck( value, min, max ) \
-  assert(((value)>=(min) || (value)<=(max)) && "Range Error!")
-#else
-#define hlvmRangeCheck(value,min,max) {}
-#endif
-
-namespace hlvm {
-void panic(const char* msg);
-}
-
-#endif
diff --git a/hlvm/hlvm/Base/Configuration.h.in b/hlvm/hlvm/Base/Configuration.h.in
deleted file mode 100644
index 99b2b40..0000000
--- a/hlvm/hlvm/Base/Configuration.h.in
+++ /dev/null
@@ -1,100 +0,0 @@
-//===-- HLVM Configuration Template -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Configuration.h.in
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Template header for capturing configuration data
-//===----------------------------------------------------------------------===//
-
-/// Expands to the time at which HLVM was configured in Universal Time
-#define HLVM_ConfigTime    "@HLVM_ConfigTime@ UTC"
-/// Expands to the copyright notice for HLVM.
-#define HLVM_Copyright     "@HLVM_Copyright@"
-
-/// Expands to the email address of the maintainer for HLVM.
-#define HLVM_Maintainer    "@HLVM_Maintainer@"
-
-/// Expands to the version number of HLVM.
-#define HLVM_Version       "@HLVM_Version@"
-
-/// Expands to a 0 or 1 value indicating if the "debug" option was used.
-#define HLVM_debug         (@debug@)
-/// Expands to a 0 or 1 value indicating if the "assertions" option was used.
-#define HLVM_assertions    (@assertions@)
-/// Expands to a 0 or 1 value indicating if the "optimize" option was used.
-#define HLVM_optimize      (@optimize@)
-/// Expands to a 0 or 1 value indicating if the "small" option was used.
-#define HLVM_small         (@small@)
-/// Expands to a 0 or 1 value indicating if the "profile" option was used.
-#define HLVM_profile       (@profile@)
-/// Expands to a 0 or 1 value indicating if the "inline" option was used.
-#define HLVM_inline        (@inline@)
-/// Expands to the directory path in which HLVM will be installed.
-#define HLVM_prefix        "@prefix@"
-/// Expands to the paths used for finding configured programs and libraries.
-#define HLVM_confpath      "@confpath@"
-/// Expands to the path of where the LLVM package was found
-#define HLVM_with_llvm     "@with_llvm@"
-/// Expands to the path of where APR package was found
-#define HLVM_with_apr      "@with_apr@"
-/// Expands to the path of where the APR Utils package was found
-#define HLVM_with_apru     "@with_apru@"
-/// Expands to the path of where the libXML2 package was found
-#define HLVM_with_xml2     "@with_xml2@"
-/// Expands to the path of where gperf program was found
-#define HLVM_with_gperf    "@with_gperf@"
-/// Expands to the path of where LLVM's llc tool was found
-#define HLVM_with_llc      "@with_llc@"
-/// Expands to the path of where LLVM's llvm-dis tool was found
-#define HLVM_with_llvmdis  "@with_llvmdis@"
-/// Expands to the path of where LLVM's llvm-as tool was found
-#define HLVM_with_llvmas   "@with_llvmas@"
-/// Expands to the path of where LLVM's llvm-gcc tool was found
-#define HLVM_with_llvmgcc  "@with_llvmgcc@"
-/// Expands to the path of where LLVM's llvm-gxx tool was found
-#define HLVM_with_llvmgxx  "@with_llvmgxx@"
-/// Expands to the path of where LLVM's llvm-ar tool was found
-#define HLVM_with_llvmar   "@with_llvmar@"
-/// Expands to the path of where LLVM's llvm2cpp tool was found
-#define HLVM_with_llvm2cpp "@with_llvm2cpp@"
-/// Expands to the path of where the DejaGnu runtest tool was found
-#define HLVM_with_runtest  "@with_runtest@"
-/// Expands to the path of where the Doxygen document generation tool was found
-#define HLVM_with_doxygen  "@with_doxygen@"
-/// Expands to the path of where the XSLT processor was found.
-#define HLVM_with_xsltproc "@with_xsltproc@"
-/// Expands to the shared object "current" number
-#define HLVM_SO_CURRENT    "@HLVM_SO_CURRENT@"
-/// Expands to the shared object "revision" number
-#define HLVM_SO_REVISION   "@HLVM_SO_REVISION@"
-/// Expands to the shared object "age" number
-#define HLVM_SO_AGE        "@HLVM_SO_AGE@"
-/// Expands to the shared object version triple
-#define HLVM_SO_VERSION    "@HLVM_SO_VERSION@"
-/// Expands to the build variant used to build this copy of HLVM.
-#define HLVM_Variant       "@Variant@"
-/// The absolute root of where this build's object files are located.
-#define HLVM_AbsObjRoot    "@AbsObjRoot@"
-/// The absolute root of where this build's source files are located.
-#define HLVM_AbsSrcRoot    "@AbsSrcRoot@"
diff --git a/hlvm/hlvm/Base/Memory.cpp b/hlvm/hlvm/Base/Memory.cpp
deleted file mode 100644
index 044db41..0000000
--- a/hlvm/hlvm/Base/Memory.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-//===-- HLVM Memory Facilities ----------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Memory.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1
-/// @brief Declares the HLVM Memory Facilities
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Memory.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/Base/Configuration.h>
-#include <apr-1/apr_general.h>
-#include <memory>
-#include <new>
-#include <iostream>
-
-namespace hlvm {
-
-// The following provides a 64KByte emergency memory reserve for the program 
-// heap.  Application writers are encouraged to use the memory facilities 
-// provided in this module but XPS itself can utilize the heap with  
-// malloc/free and new/delete.  This memory reserve helps to avoid situations 
-// where new/delete might fail.
-
-static char * _memory_reserve = 0;
-
-static void
-the_new_handler( void )
-{
-  if ( _memory_reserve )
-  {
-    delete [] _memory_reserve;
-    _memory_reserve = 0;
-  }
-  else
-  {
-    panic("No memory");
-  }
-}
-
-static void
-the_unexpected_handler( void )
-{
-  hlvmNotImplemented("Unexpected Handler");
-}
-
-static void
-the_terminate_handler( void )
-{
-  hlvmNotImplemented("Terminate Handler");
-}
-
-static void
-ensure_emergency_reserve( void )
-{
-  if ( _memory_reserve == 0 )
-  {
-    _memory_reserve = ::new char [ 64 * 1024 ];
-  }
-}
-
-bool
-memory_is_low( void )
-{
-  return _memory_reserve == 0;
-}
-
-static bool initialized = false;
-
-void
-initialize(int& /*argc*/, char** /*argv*/)
-{
-  if ( ! initialized )
-  {
-    try
-    {
-      // Reserve memory for emergencies
-      ensure_emergency_reserve();
-
-      // Specify the new_handler for C++ memory allocation
-      std::set_new_handler( the_new_handler );
-
-      // Specify the unexpected handler for unexpected C++ exceptions
-      std::set_unexpected( the_unexpected_handler );
-
-      // Specify the terminate handler for abnormal terminations
-      std::set_terminate( the_terminate_handler );
-
-      // Initialize APR
-      if (APR_SUCCESS != apr_initialize())
-        hlvmAssert(!"Can't initialize APR");
-
-    }
-    catch ( ... )
-    {
-      hlvmAssert(!"Unexpected exception during initialization.");
-    }
-
-    if (0 != atexit(terminate))
-      hlvmAssert(!"Can't register termination at exit");
-
-    // We've made it through initialization .. indicate that.
-    initialized = true;
-  }
-}
-
-void
-terminate( void )
-{
-  if (initialized)
-  {
-    // Terminate APR
-    apr_terminate();
-
-    // Release the memory reserve
-    ::delete [] _memory_reserve;
-
-    // Done.
-    initialized = false;
-  }
-}
-
-void
-panic(const char* msg)
-{
-  std::cerr << "HLVM PANIC: " << msg << "\n";
-  exit(99);
-}
-
-void print_version()
-{
-  std::cout << "HLVM " << HLVM_Version << " (see http://hlvm.org)\n";
-}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/Base/Memory.h b/hlvm/hlvm/Base/Memory.h
deleted file mode 100644
index f8624c0..0000000
--- a/hlvm/hlvm/Base/Memory.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- HLVM Memory Facilities ----------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Memory.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares memory facilities for HLVM
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_BASE_MEMORY_H
-#define HLVM_BASE_MEMORY_H
-
-namespace hlvm {
-
-/// Determine if emergency memory reserve has been exhausted.
-/// @brief Detemine if heap memory is low.
-extern bool memory_is_low( void );
-
-void initialize(int& argc, char**argv );
-void terminate();
-void print_version();
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/Base/Pool.cpp b/hlvm/hlvm/Base/Pool.cpp
deleted file mode 100644
index d28b206..0000000
--- a/hlvm/hlvm/Base/Pool.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-//===-- HLVM Memory Pool Implementation -------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Pool.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/01
-/// @since 0.1.0
-/// @brief Defines the hlvm::Pool class 
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Pool.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/ADT/StringExtras.h>
-
-// Set up the maximum amount of APR pool debugging if we're in debug mode
-// This must be set before including apr_pools.h
-#ifdef HLVM_DEBUG
-#define APR_POOL_DEBUG 0xFF
-#endif
-#include <apr-1/apr_pools.h>
-
-namespace {
-
-/// Base class for all pool implementations
-class PoolBase : public hlvm::Pool {
-  protected:
-    PoolBase(
-      const std::string& name, Pool* parent, const char * where 
-    )
-      : Pool(name,parent)
-    {
-      if (parent)
-        allocator = 0;
-      else
-        if (APR_SUCCESS != apr_allocator_create(&allocator))
-          hlvm::panic("Can't create APR allocator");
-
-#ifdef HLVM_DEBUG
-      if (APR_SUCCESS != apr_pool_create_ex_debug(&pool,
-          (parent?static_cast<const PoolBase*>(parent->getParent())->pool:0), 
-           aborter, allocator, where))
-#else
-      if (APR_SUCCESS != apr_pool_create_ex(&pool,
-          (parent?static_cast<const PoolBase*>(parent->getParent())->pool:0), 
-           aborter, allocator))
-#endif
-        hlvm::panic("Can't create APR pool");
-    }
-    virtual void* getAprPool() {
-      return pool;
-    }
-  protected:
-    static int aborter(int retcode) {
-      std::string msg("Pool abort: retcode=");
-      msg += llvm::itostr(retcode);
-      hlvm::panic(msg.c_str());
-      return 0;
-    }
-
-  protected:
-    apr_pool_t* pool;
-    apr_allocator_t* allocator;
-};
-
-/// A non-deallocating pool. This is fast, but should only be used for pools
-/// where it doesn't matter if the objects in the pool can be deallocated. 
-class ConstPool : public PoolBase {
-  /// @name Constructors
-  /// @{
-  public:
-    ConstPool(const std::string& name, Pool* parent, const char * where)
-      : PoolBase(name,parent,where)
-    {
-    }
-  /// @}
-  /// @name Allocators
-  /// @{
-  public:
-    virtual void* allocate(size_t block_size, const char* where) {
-      return 0;
-    }
-
-    virtual void* callocate(size_t block_siz, const char* where ) {
-      return 0;
-    }
-
-    virtual void deallocate(void* block, const char* where) {
-    }
-
-    virtual void clear(const char* where) {
-    }
-  /// @}
-};
-
-/// A very efficient pool for creating lots of small objects in a range of
-/// sizes from tiny to moderate. This re-uses deallocated blocks of a similar
-/// size so a new allocation is not needed. Handles memory churn of small 
-/// objects well.
-class SmallPool : public PoolBase {
-  /// @name Constructors
-  /// @{
-  public:
-    SmallPool(const std::string& name, Pool* parent, 
-              uint32_t max_size, uint32_t increment, const char * where)
-      : PoolBase(name,parent,where)
-    {
-    }
-  /// @}
-  /// @name Allocators
-  /// @{
-  public:
-    virtual void* allocate(size_t block_size, const char* where) {
-      return 0;
-    }
-
-    virtual void* callocate(size_t block_siz, const char* where ) {
-      return 0;
-    }
-
-    virtual void deallocate(void* block, const char* where) {
-    }
-
-    virtual void clear(const char* where) {
-    }
-  /// @}
-};
-
-/// A simple allocator/deallocator similar to malloc. General purpose, nothing
-/// fancy.
-class SimplePool : public PoolBase {
-  /// @name Constructors
-  /// @{
-  public:
-    SimplePool(const std::string& name, Pool* parent, const char * where)
-      : PoolBase(name,parent,where)
-    {
-    }
-  /// @}
-  /// @name Allocators
-  /// @{
-  public:
-    virtual void* allocate(size_t block_size, const char* where) {
-      return 0;
-    }
-
-    virtual void* callocate(size_t block_siz, const char* where ) {
-      return 0;
-    }
-
-    virtual void deallocate(void* block, const char* where) {
-    }
-
-    virtual void clear(const char* where) {
-    }
-  /// @}
-};
-
-} // end anonymous namespace
-
-namespace hlvm {
-
-// Just to get the vtable in this file
-Pool::~Pool()
-{
-}
-
-// The interface to creating one of the pool classes
-Pool*
-Pool::create(
-  const std::string& name,
-  Pool* parent,
-  bool no_dealloc,
-  uint32_t max_elem_size,
-  uint32_t increment,
-  const char* where
-)
-{
-  // If they don't want to deallocate, they always get a ConstPool
-  if (no_dealloc)
-    return new ConstPool(name,parent,where);
-
-  // If they've specified an elem size and increment then if that combination
-  // yields a table of less than 16K entries the we allocate a SmallPool. This
-  // keeps the SmallPool's entry table under 64KBytes on a 32-bit machine.
-  if (max_elem_size > 0 && increment > 0 && max_elem_size / increment <= 16384)
-    return new SmallPool(name,parent,max_elem_size,increment,where);
-
-  // Just use a standard pool
-  return new SimplePool(name,parent,where);
-}
-
-void Pool::destroy(Pool* p, const char* where)
-{
-  p->clear(where);
-  delete p;
-}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/Base/Pool.h b/hlvm/hlvm/Base/Pool.h
deleted file mode 100644
index cff7c7f..0000000
--- a/hlvm/hlvm/Base/Pool.h
+++ /dev/null
@@ -1,128 +0,0 @@
-//===-- HLVM Memory Pool Facilities -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Pool.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/01
-/// @since 0.1.0
-/// @brief Declares the hlvm::Pool class and memory pooling facilities for HLVM
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_BASE_POOL_H
-#define HLVM_BASE_POOL_H
-
-#ifdef HLVM_DEBUG
-#define HLVM_STRINGIZE(X) #X
-#define HLVM_NEW(pool,type,args) \
-  (::new(pool,__FILE__ ":" HLVM_STRINGIZE(__LINE__)) type args )
-#else
-#define HLVM_NEW(pool,type,args) \
-  (::new(pool) type args )
-#endif
-
-#include <llvm/Support/DataTypes.h>
-#include <string>
-
-namespace hlvm {
-
-/// A memory pool abstraction. This is the is is the master pool of all XPS
-/// allocated pools and generally the one used to allocate APRish stuff into.
-/// Note that this doesn't exist until after the call to initialize()
-/// @brief The memory pool for HLVM.
-class Pool {
-
-  /// @name Constructors
-  /// @{
-  protected:
-    Pool(const std::string& name, Pool* parent) {}
-    virtual ~Pool();
-  public:
-    static Pool* create(
-      const std::string& name = "", ///< name for the pool
-      Pool* parent = 0,             ///< parent pool, 0 = root pool
-      bool no_dealloc = false,      ///< allow deallocations?
-      uint32_t max_elem_size = 0,   ///< maximum allocation size, 0=max
-      uint32_t increment = 8,       ///< min difference between alloc sizes
-      const char * where = 0        ///< location of the pool creation
-    );
-
-    static void destroy(Pool* p, const char* where = 0);
-
-  /// @}
-  /// @name Allocators
-  /// @{
-  public:
-    /// Allocate a block of data of size block_size and return it
-    virtual void* allocate(size_t block_size, const char* where = 0) = 0;
-
-    /// Allocate a block of data of size block_size, zero its content  and 
-    /// return it
-    virtual void* callocate(size_t block_siz, const char* where = 0 ) = 0;
-
-    /// Deallocate a block of data
-    virtual void deallocate(void* block, const char* where = 0) = 0;
-
-    /// Clear all memory in the pool and any sub-pools
-    virtual void clear(const char* where = 0) = 0; 
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    const std::string& getName() { return name; }
-    const Pool* getParent() { return parent; }
-    virtual void* getAprPool() = 0;
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    std::string name;
-    Pool* parent;
-  /// @}
-};
-
-} // end hlvm namespace
-
-#ifdef HLVM_DEBUG
-inline void* operator new(size_t size, hlvm::Pool* p, const char* where)
-{
-  return p->callocate(size,where);
-}
-
-inline void* operator new[](size_t size, hlvm::Pool* p, const char* where)
-{
-  return p->callocate(size,where);
-}
-#else
-inline void* operator new(size_t size, hlvm::Pool* p)
-{
-  return p->callocate(size);
-}
-
-inline void* operator new[](size_t size, hlvm::Pool* p)
-{
-  return p->callocate(size);
-}
-#endif
-
-#endif
diff --git a/hlvm/hlvm/Base/SConscript b/hlvm/hlvm/Base/SConscript
deleted file mode 100644
index dfa6939..0000000
--- a/hlvm/hlvm/Base/SConscript
+++ /dev/null
@@ -1,30 +0,0 @@
-#===-- Build Script For hlvm/Base -----------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.GetBytecode(env)
-hlvm.GetConfigFile(env)
-env.ConfigFile(source=['Configuration.h.in'])
-env.BytecodeArchive('HLVMBase',hlvm.GetAllCXXFiles(env))
-lib = env.Library('HLVMBase',hlvm.GetAllCXXFiles(env))
-hlvm.InstallLibrary(env,lib)
diff --git a/hlvm/hlvm/Base/Source.cpp b/hlvm/hlvm/Base/Source.cpp
deleted file mode 100644
index 5ba33e4..0000000
--- a/hlvm/hlvm/Base/Source.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-//===-- AST Abstract Data Source Class --------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Source.cpp
-/// @author Reid Spencer <reid@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Defines the class hlvm::Source
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Source.h>
-#include <hlvm/AST/URI.h>
-#include <llvm/System/MappedFile.h>
-#include <iostream>
-#include <ios>
-
-using namespace hlvm;
-
-namespace 
-{
-
-class MappedFileSource : public Source 
-{
-public:
-  MappedFileSource(llvm::sys::MappedFile& mf)
-    : mf_(mf), at_(0), end_(0), was_mapped_(false), read_len_(0)
-  {
-  }
-
-  virtual void prepare(intptr_t block_len) 
-  {
-    was_mapped_ = mf_.isMapped();
-    if (!was_mapped_)
-      mf_.map();
-    at_ = mf_.charBase();
-    end_ = at_ + mf_.size();
-    read_len_ = block_len;
-  }
-
-  virtual bool more()
-  {
-    return at_ < end_;
-  }
-
-  virtual const char* read(intptr_t& actual_len)
-  {
-    if (at_ >= end_) {
-      actual_len = 0;
-      return 0;
-    }
-    const char* result = at_;
-    if (read_len_ < end_ - at_) {
-      actual_len = read_len_;
-      at_ += read_len_;
-    } else {
-      actual_len = end_ - at_;
-      at_ = end_;
-    }
-    return result;
-  }
-
-  virtual void finish()
-  {
-    if (!was_mapped_)
-      mf_.unmap();
-    at_ = 0;
-    end_ = 0;
-    was_mapped_ = false;
-    read_len_ = 0;
-  }
-
-  virtual std::string systemId() const
-  {
-    return mf_.path().toString();
-  }
-
-  virtual std::string publicId() const
-  {
-    return "file://" + systemId();
-  }
-
-private:
-  llvm::sys::MappedFile& mf_;
-  const char* at_;
-  const char* end_;
-  bool was_mapped_;
-  intptr_t read_len_;
-};
-
-class StreamSource : public Source 
-{
-public:
-  StreamSource(std::istream& strm, std::string sysId, size_t bsize) : s_(strm) 
-  {
-    s_.seekg(0, std::ios::end);
-    len_ = s_.tellg();
-    s_.seekg(0, std::ios::beg);
-    if (bsize > 1024*1024)
-      buffSize = 1024*1024;
-    else 
-      buffSize = bsize;
-    buffer = new char[buffSize+1];
-  }
-
-  virtual ~StreamSource()
-  {
-    delete buffer;
-  }
-
-  virtual void prepare(intptr_t block_len)
-  {
-    s_.seekg(0,std::ios::beg);
-  }
-
-  virtual bool more()
-  {
-    return ! s_.bad() && !s_.eof();
-  }
-
-  virtual const char* read(intptr_t& actual_len)
-  {
-    if (more())
-    {
-      size_t pos = s_.tellg();
-      if (len_ - pos > buffSize)
-        actual_len = buffSize;
-      else
-        actual_len = len_ - pos;
-      s_.read(buffer, actual_len);
-      buffer[actual_len] = 0;
-      return buffer;
-    }
-    else
-    {
-      buffer[0] = 0;
-      actual_len = 0;
-      return buffer;
-    }
-  }
-
-  virtual void finish()
-  {
-  }
-
-  virtual std::string systemId() const
-  {
-    return sysId;
-  }
-
-  virtual std::string publicId() const
-  {
-    return "file:///" + systemId();
-  }
-
-private:
-  std::string sysId;
-  std::istream& s_;
-  size_t len_;
-  char* buffer;
-  size_t buffSize;
-};
-
-class URISource : public Source 
-{
-private:
-  const hlvm::URI* uri_;
-  llvm::sys::MappedFile* mf_;
-  MappedFileSource* mfs_;
-public:
-  URISource(const URI* uri ) 
-    : uri_(uri) 
-    , mf_(0)
-    , mfs_(0)
-  {
-    mf_ = new llvm::sys::MappedFile();
-    mf_->open(llvm::sys::Path(uri_->resolveToFile()));
-    mfs_ = new MappedFileSource(*mf_);
-  }
-  virtual ~URISource() {}
-  virtual void prepare(intptr_t block_len) { mfs_->prepare(block_len); }
-  virtual bool more() { return mfs_->more(); }
-  virtual const char* read(intptr_t& actual_len) 
-  { return mfs_->read(actual_len); }
-  virtual void finish() { mfs_->finish(); }
-  virtual std::string systemId() const { return mfs_->systemId(); }
-  virtual std::string publicId() const { return "file://" + mfs_->systemId(); }
-};
-
-}
-
-namespace hlvm {
-
-Source::~Source() 
-{
-}
-
-Source* 
-new_MappedFileSource(llvm::sys::MappedFile& mf)
-{
-  return new MappedFileSource(mf);
-}
-
-
-Source* 
-new_StreamSource(std::istream& strm, std::string sysId, size_t bSize)
-{
-  return new StreamSource(strm, sysId, bSize);
-}
-
-Source* 
-new_URISource(const URI* uri)
-{
-  return new URISource(uri);
-}
-
-} // end hlvm namespace
diff --git a/hlvm/hlvm/Base/Source.h b/hlvm/hlvm/Base/Source.h
deleted file mode 100644
index b374c06..0000000
--- a/hlvm/hlvm/Base/Source.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//===-- AST Abstract Input Source Class -------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Base/Source.h
-/// @author Reid Spencer <reid@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Base::Source
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_BASE_SOURCE_H
-#define HLVM_BASE_SOURCE_H
-
-#include <llvm/System/MappedFile.h>
-#include <istream>
-
-namespace hlvm {
-
-class URI;
-
-/// This class is the base class of a family of input source classes that can
-/// be used to provide input to some parsing facility. This abstracts away
-/// the details of how the input is acquired. Four functions must be 
-/// implemented by subclasses: prepare, more, read, and finish.
-/// @brief Abstract Input Source Class
-class Source
-{
-/// @name Methods
-/// @{
-public:
-  /// @brief This destructor does nothing, but declared virtual for subclasses
-  virtual ~Source();
-
-  /// @brief Tells the source to prepare to be read
-  virtual void prepare(intptr_t block_len) = 0;
-
-  /// @brief Requests a block of data.
-  virtual const char* read(intptr_t& actual_len) = 0;
-
-  /// @brief Indicates if more data waits
-  virtual bool more() = 0;
-
-  /// @brief Tells the source to finish up.
-  virtual void finish() = 0;
-
-  /// @brief Get the system identifier of the source
-  virtual std::string systemId() const = 0;
-
-  /// @brief Get the public identifier of the source
-  virtual std::string publicId() const = 0;
-
-/// @}
-};
-
-Source* new_MappedFileSource(llvm::sys::MappedFile& mf);
-Source* new_StreamSource(std::istream&, std::string sysId = "<istream>", 
-    size_t bSize = 65536);
-Source* new_URISource(const URI* uri);
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/CodeGen/LLVMEmitter.cpp b/hlvm/hlvm/CodeGen/LLVMEmitter.cpp
deleted file mode 100644
index 1cfc91a..0000000
--- a/hlvm/hlvm/CodeGen/LLVMEmitter.cpp
+++ /dev/null
@@ -1,2048 +0,0 @@
-//===-- LLVM Code Emitter Implementation ------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/CodeGen/LLVMEmitter.cpp
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/07/08
-/// @since 0.2.0
-/// @brief Provides the implementation of the LLVM Code Emitter
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/CodeGen/LLVMEmitter.h>
-#include <hlvm/Base/Assert.h>
-
-using namespace llvm;
-
-namespace {
-
-class LLVMEmitterImpl : public hlvm::LLVMEmitter
-{
-  /// @name Data
-  /// @{
-  private:
-    // Caches of things to interface with the HLVM Runtime Library
-    PointerType*  hlvm_text;          ///< Opaque type for text objects
-    Function*     hlvm_text_create;   ///< Create a new text object
-    Function*     hlvm_text_delete;   ///< Delete a text object
-    Function*     hlvm_text_to_buffer;///< Convert text to a buffer
-    PointerType*  hlvm_buffer;        ///< Pointer To octet
-    Function*     hlvm_buffer_create; ///< Create a new buffer object
-    Function*     hlvm_buffer_delete; ///< Delete a buffer
-    PointerType*  hlvm_stream;        ///< Pointer to stream type
-    Function*     hlvm_stream_open;   ///< Function for stream_open
-    Function*     hlvm_stream_read;   ///< Function for stream_read
-    Function*     hlvm_stream_write_buffer; ///< Write buffer to stream
-    Function*     hlvm_stream_write_text;   ///< Write text to stream
-    Function*     hlvm_stream_write_string; ///< Write string to stream
-    Function*     hlvm_stream_close;  ///< Function for stream_close
-    Function*     hlvm_f32_ispinf;
-    Function*     hlvm_f32_isninf ;
-    Function*     hlvm_f32_isnan ;
-    Function*     hlvm_f32_trunc ;
-    Function*     hlvm_f32_round ;
-    Function*     hlvm_f32_floor ;
-    Function*     hlvm_f32_ceiling ;
-    Function*     hlvm_f32_loge ;
-    Function*     hlvm_f32_log2 ;
-    Function*     hlvm_f32_log10 ;
-    Function*     hlvm_f32_squareroot ;
-    Function*     hlvm_f32_cuberoot ;
-    Function*     hlvm_f32_factorial ;
-    Function*     hlvm_f32_power ;
-    Function*     hlvm_f32_root ;
-    Function*     hlvm_f32_gcd ;
-    Function*     hlvm_f32_lcm;
-    Function*     hlvm_f64_ispinf;
-    Function*     hlvm_f64_isninf ;
-    Function*     hlvm_f64_isnan ;
-    Function*     hlvm_f64_trunc ;
-    Function*     hlvm_f64_round ;
-    Function*     hlvm_f64_floor ;
-    Function*     hlvm_f64_ceiling ;
-    Function*     hlvm_f64_loge ;
-    Function*     hlvm_f64_log2 ;
-    Function*     hlvm_f64_log10 ;
-    Function*     hlvm_f64_squareroot ;
-    Function*     hlvm_f64_cuberoot ;
-    Function*     hlvm_f64_factorial ;
-    Function*     hlvm_f64_power ;
-    Function*     hlvm_f64_root ;
-    Function*     hlvm_f64_gcd ;
-    Function*     hlvm_f64_lcm;
-
-    FunctionType* hlvm_program_signature; ///< The llvm type for programs
-
-    // Caches of LLVM Intrinsic functions
-    Function*     llvm_memcpy;         ///< llvm.memcpy.i64
-    Function*     llvm_memmove;        ///< llvm.memmove.i64
-    Function*     llvm_memset;         ///< llvm.memset.i64
-
-  /// @}
-  /// @name Constructor
-  /// @{
-  public:
-    LLVMEmitterImpl() : hlvm::LLVMEmitter(), 
-      hlvm_text(0), hlvm_text_create(0), hlvm_text_delete(0),
-      hlvm_text_to_buffer(0), 
-      hlvm_buffer(0), hlvm_buffer_create(0), hlvm_buffer_delete(0),
-      hlvm_stream(0), hlvm_stream_open(0), hlvm_stream_read(0),
-      hlvm_stream_write_buffer(0), hlvm_stream_write_text(0), 
-      hlvm_stream_write_string(0), hlvm_stream_close(0), 
-      hlvm_f32_ispinf(0), hlvm_f32_isninf(0), hlvm_f32_isnan(0),
-      hlvm_f32_trunc(0), hlvm_f32_round(0), hlvm_f32_floor (0),
-      hlvm_f32_ceiling(0), hlvm_f32_loge(0), hlvm_f32_log2(0),
-      hlvm_f32_log10(0), hlvm_f32_squareroot(0), hlvm_f32_cuberoot(0),
-      hlvm_f32_factorial(0), hlvm_f32_power(0), hlvm_f32_root(0),
-      hlvm_f32_gcd(0), hlvm_f32_lcm(0), hlvm_f64_ispinf(0), hlvm_f64_isninf(0),
-      hlvm_f64_isnan(0), hlvm_f64_trunc(0), hlvm_f64_round(0),
-      hlvm_f64_floor(0), hlvm_f64_ceiling(0), hlvm_f64_loge(0),
-      hlvm_f64_log2(0), hlvm_f64_log10(0), hlvm_f64_squareroot(0),
-      hlvm_f64_cuberoot(0), hlvm_f64_factorial(0), hlvm_f64_power(0),
-      hlvm_f64_root(0), hlvm_f64_gcd(0), hlvm_f64_lcm(0),
-      hlvm_program_signature(0),
-      llvm_memcpy(0), llvm_memmove(0), llvm_memset(0)
-    { 
-    }
-
-  /// @}
-  /// @name Methods
-  /// @{
-  public:
-    const Type* get_hlvm_size() { return Type::Int64Ty; }
-
-    PointerType* get_hlvm_text()
-    {
-      if (! hlvm_text) {
-        // An hlvm_text is a variable length array of signed bytes preceded by
-        // an
-        // Arglist args;
-        // args.push_back(Type::Int32Ty);
-        // args.push_back(ArrayType::Get(Type::Int8Ty,0));
-        OpaqueType* opq = OpaqueType::get();
-        TheModule->addTypeName("hlvm_text_obj", opq);
-        hlvm_text = PointerType::get(opq);
-        TheModule->addTypeName("hlvm_text", hlvm_text);
-      }
-      return hlvm_text;
-    }
-
-    Function* get_hlvm_text_create()
-    {
-      if (! hlvm_text_create) {
-        Type* result = get_hlvm_text();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(PointerType::get(Type::Int8Ty));
-        FunctionType* FT = 
-          FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_text_create",FT);
-        hlvm_text_create = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_text_create", TheModule);
-      }
-      return hlvm_text_create;
-    }
-
-    CallInst* call_hlvm_text_create(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_text_create();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "buffer"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_text_delete()
-    {
-      if (! hlvm_text_delete) {
-        Type* result = get_hlvm_text();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_text());
-        FunctionType* FT = 
-          FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_text_delete",FT);
-        hlvm_text_delete = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_text_delete", TheModule);
-      }
-      return hlvm_text_delete;
-    }
-
-    CallInst* call_hlvm_text_delete(const hlvm::ArgList& args)
-    {
-      Function* F = get_hlvm_text_delete();
-      return new CallInst(F, args.begin(), args.end(), "hlvm_text_delete", 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_text_to_buffer()
-    {
-      if (! hlvm_text_to_buffer) {
-        Type* result = get_hlvm_buffer();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_text());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_text_to_buffer_signature",FT);
-        hlvm_text_to_buffer = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_text_to_buffer", TheModule);
-      }
-      return hlvm_text_to_buffer;
-    }
-
-    CallInst* call_hlvm_text_to_buffer(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_text_to_buffer();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "buffer"), 
-                          TheBlock);
-    }
-
-    PointerType* get_hlvm_buffer()
-    {
-      if (! hlvm_buffer) {
-        OpaqueType* opq = OpaqueType::get();
-        TheModule->addTypeName("hlvm_buffer_obj", opq);
-        hlvm_buffer = PointerType::get(opq);
-        TheModule->addTypeName("hlvm_buffer", hlvm_buffer);
-      }
-      return hlvm_buffer;
-    }
-
-    Function* get_hlvm_buffer_create()
-    {
-      if (! hlvm_buffer_create) {
-        Type* result = get_hlvm_buffer();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_size());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_buffer_create",FT);
-        hlvm_buffer_create = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_buffer_create", TheModule);
-      }
-      return hlvm_buffer_create;
-    }
-
-    CallInst* call_hlvm_buffer_create(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_buffer_create();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "buffer"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_buffer_delete()
-    {
-      if (! hlvm_buffer_delete) {
-        Type* result = get_hlvm_buffer();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_buffer());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_buffer_delete",FT);
-        hlvm_buffer_delete = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_buffer_delete", TheModule);
-      }
-      return hlvm_buffer_delete;
-    }
-
-    CallInst* call_hlvm_buffer_delete(const hlvm::ArgList& args)
-    {
-      Function* F = get_hlvm_buffer_delete();
-      return new CallInst(F, args.begin(), args.end(), "", TheBlock);
-    }
-
-    PointerType* get_hlvm_stream()
-    {
-      if (! hlvm_stream) {
-        OpaqueType* opq = OpaqueType::get();
-        TheModule->addTypeName("hlvm_stream_obj", opq);
-        hlvm_stream = PointerType::get(opq);
-        TheModule->addTypeName("hlvm_stream", hlvm_stream);
-      }
-      return hlvm_stream;
-    }
-
-    Function* get_hlvm_stream_open()
-    {
-      if (!hlvm_stream_open) {
-        Type* result = get_hlvm_stream();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(PointerType::get(Type::Int8Ty));
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_open_signature",FT);
-        hlvm_stream_open = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-            "hlvm_stream_open", TheModule);
-      }
-      return hlvm_stream_open;
-    }
-
-    CallInst* call_hlvm_stream_open(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_stream_open();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "stream"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_stream_read()
-    {
-      if (!hlvm_stream_read) {
-        const Type* result = get_hlvm_size();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_stream());
-        arg_types.push_back(get_hlvm_buffer());
-        arg_types.push_back(get_hlvm_size());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_read_signature",FT);
-        hlvm_stream_read = 
-          new Function(FT, GlobalValue::ExternalLinkage,
-          "hlvm_stream_read", TheModule);
-      }
-      return hlvm_stream_read;
-    }
-
-    CallInst* call_hlvm_stream_read(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_stream_read();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "readlen"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_stream_write_buffer()
-    {
-      if (!hlvm_stream_write_buffer) {
-        const Type* result = get_hlvm_size();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_stream());
-        arg_types.push_back(get_hlvm_buffer());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_write_buffer_signature",FT);
-        hlvm_stream_write_buffer = 
-          new Function(FT, GlobalValue::ExternalLinkage,
-          "hlvm_stream_write_buffer", TheModule);
-      }
-      return hlvm_stream_write_buffer;
-    }
-
-    CallInst* call_hlvm_stream_write_buffer(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_stream_write_buffer();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "writelen"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_stream_write_string()
-    {
-      if (!hlvm_stream_write_string) {
-        const Type* result = get_hlvm_size();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_stream());
-        arg_types.push_back(PointerType::get(Type::Int8Ty));
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_write_string_signature",FT);
-        hlvm_stream_write_string = 
-          new Function(FT, GlobalValue::ExternalLinkage,
-          "hlvm_stream_write_string", TheModule);
-      }
-      return hlvm_stream_write_string;
-    }
-
-    CallInst* call_hlvm_stream_write_string(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_stream_write_string();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "writelen"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_stream_write_text()
-    {
-      if (!hlvm_stream_write_text) {
-        const Type* result = get_hlvm_size();
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_stream());
-        arg_types.push_back(get_hlvm_text());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_write_text_signature",FT);
-        hlvm_stream_write_text = 
-          new Function(FT, GlobalValue::ExternalLinkage,
-          "hlvm_stream_write_text", TheModule);
-      }
-      return hlvm_stream_write_text;
-    }
-
-    CallInst* call_hlvm_stream_write_text(const hlvm::ArgList& args, const char* nm)
-    {
-      Function* F = get_hlvm_stream_write_text();
-      return new CallInst(F, args.begin(), args.end(), (nm ? nm : "writelen"), 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_stream_close()
-    {
-      if (!hlvm_stream_close) {
-        const Type* result = Type::VoidTy;
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(get_hlvm_stream());
-        FunctionType* FT = FunctionType::get(result,arg_types,false);
-        TheModule->addTypeName("hlvm_stream_close_signature",FT);
-        hlvm_stream_close = 
-          new Function(FT, GlobalValue::ExternalLinkage,
-          "hlvm_stream_close", TheModule);
-      }
-      return hlvm_stream_close;
-    }
-
-    CallInst* call_hlvm_stream_close(const hlvm::ArgList& args)
-    {
-      Function* F = get_hlvm_stream_close();
-      return new CallInst(F, args.begin(), args.end(), "", TheBlock);
-    }
-
-    FunctionType* get_hlvm_program_signature()
-    {
-      if (!hlvm_program_signature) {
-        // Get the type of function that all entry points must have
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::Int32Ty);
-        arg_types.push_back(
-          PointerType::get(PointerType::get(Type::Int8Ty)));
-        hlvm_program_signature = 
-          FunctionType::get(Type::Int32Ty,arg_types,false);
-        TheModule->addTypeName("hlvm_program_signature",hlvm_program_signature);
-      }
-      return hlvm_program_signature;
-    }
-
-    Function* get_llvm_memcpy()
-    {
-      if (!llvm_memcpy) {
-        const Type *SBP = PointerType::get(Type::Int8Ty);
-        llvm_memcpy = cast<Function>(TheModule->getOrInsertFunction(
-          "llvm.memcpy.i64", Type::VoidTy, SBP, SBP, Type::Int64Ty,
-          Type::Int32Ty, NULL));
-      }
-      return llvm_memcpy;
-    }
-
-    Function* get_llvm_memmove()
-    {
-      if (!llvm_memmove) {
-        const Type *SBP = PointerType::get(Type::Int8Ty);
-        llvm_memmove = cast<Function>(TheModule->getOrInsertFunction(
-          "llvm.memmove.i64", Type::VoidTy, SBP, SBP, Type::Int64Ty, 
-          Type::Int32Ty, NULL));
-      }
-      return llvm_memmove;
-    }
-
-    Function* get_llvm_memset()
-    {
-      if (!llvm_memset) {
-        const Type *SBP = PointerType::get(Type::Int8Ty);
-        llvm_memset = cast<Function>(TheModule->getOrInsertFunction(
-          "llvm.memset.i64", Type::VoidTy, SBP, Type::Int8Ty, Type::Int64Ty, 
-          Type::Int32Ty, NULL));
-      }
-      return llvm_memset;
-    }
-
-    Function* get_hlvm_f32_ispinf()
-    {
-      if (! hlvm_f32_ispinf) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_ispinf",FT);
-        hlvm_f32_ispinf = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_ispinf", TheModule);
-      }
-      return hlvm_f32_ispinf;
-    }
-
-    Function* get_hlvm_f32_isninf()
-    {
-      if (! hlvm_f32_isninf) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_isninf",FT);
-        hlvm_f32_isninf = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_isninf", TheModule);
-      }
-      return hlvm_f32_isninf;
-    }
-
-    Function* get_hlvm_f32_isnan()
-    {
-      if (! hlvm_f32_isnan) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_isnan",FT);
-        hlvm_f32_isnan = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_isnan", TheModule);
-      }
-      return hlvm_f32_isnan;
-    }
-
-    Function* get_hlvm_f32_trunc()
-    {
-      if (! hlvm_f32_trunc) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_trunc",FT);
-        hlvm_f32_trunc = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_trunc", TheModule);
-      }
-      return hlvm_f32_trunc;
-    }
-
-    Function* get_hlvm_f32_round()
-    {
-      if (! hlvm_f32_round) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_round",FT);
-        hlvm_f32_round = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_round", TheModule);
-      }
-      return hlvm_f32_round;
-    }
-
-    Function* get_hlvm_f32_floor()
-    {
-      if (! hlvm_f32_floor) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_floor",FT);
-        hlvm_f32_floor = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_floor", TheModule);
-      }
-      return hlvm_f32_floor;
-    }
-
-    Function* get_hlvm_f32_ceiling()
-    {
-      if (! hlvm_f32_ceiling) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_ceiling",FT);
-        hlvm_f32_ceiling = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_ceiling", TheModule);
-      }
-      return hlvm_f32_ceiling;
-    }
-
-    Function* get_hlvm_f32_loge()
-    {
-      if (! hlvm_f32_loge) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_loge",FT);
-        hlvm_f32_loge = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_loge", TheModule);
-      }
-      return hlvm_f32_loge;
-    }
-
-    Function* get_hlvm_f32_log2()
-    {
-      if (! hlvm_f32_log2) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_log2",FT);
-        hlvm_f32_log2 = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_log2", TheModule);
-      }
-      return hlvm_f32_log2;
-    }
-
-    Function* get_hlvm_f32_log10()
-    {
-      if (! hlvm_f32_log10) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_log10",FT);
-        hlvm_f32_log10 = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_log10", TheModule);
-      }
-      return hlvm_f32_log10;
-    }
-
-    Function* get_hlvm_f32_squareroot()
-    {
-      if (! hlvm_f32_squareroot) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_squareroot",FT);
-        hlvm_f32_squareroot = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_squareroot", TheModule);
-      }
-      return hlvm_f32_squareroot;
-    }
-
-    Function* get_hlvm_f32_cuberoot()
-    {
-      if (! hlvm_f32_cuberoot) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_cuberoot",FT);
-        hlvm_f32_cuberoot = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_cuberoot", TheModule);
-      }
-      return hlvm_f32_cuberoot;
-    }
-
-    Function* get_hlvm_f32_factorial()
-    {
-      if (! hlvm_f32_factorial) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_factorial",FT);
-        hlvm_f32_factorial = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_factorial", TheModule);
-      }
-      return hlvm_f32_factorial;
-    }
-
-    Function* get_hlvm_f32_power()
-    {
-      if (! hlvm_f32_power) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_power",FT);
-        hlvm_f32_power = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_power", TheModule);
-      }
-      return hlvm_f32_ispinf;
-    }
-
-    Function* get_hlvm_f32_root()
-    {
-      if (! hlvm_f32_root) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_root",FT);
-        hlvm_f32_root = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_root", TheModule);
-      }
-      return hlvm_f32_ispinf;
-    }
-
-    Function* get_hlvm_f32_gcd()
-    {
-      if (! hlvm_f32_gcd) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_gcd",FT);
-        hlvm_f32_gcd = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_gcd", TheModule);
-      }
-      return hlvm_f32_ispinf;
-    }
-
-    Function* get_hlvm_f32_lcm()
-    {
-      if (! hlvm_f32_lcm) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::FloatTy);
-        arg_types.push_back(Type::FloatTy);
-        FunctionType* FT = FunctionType::get(Type::FloatTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f32_lcm",FT);
-        hlvm_f32_lcm = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f32_lcm", TheModule);
-      }
-      return hlvm_f32_ispinf;
-    }
-
-    CallInst* call_hlvm_f32_ispinf(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_ispinf(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_isninf(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_isninf(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_isnan(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_isnan(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_trunc(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_trunc(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_round(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_round(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_floor(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_floor(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_ceiling(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_ceiling(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_loge(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_loge(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_log2(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_log2(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_log10(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_log10(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_squareroot(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_squareroot(), args.begin(), args.end(), 
-                          "", TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_cuberoot(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_cuberoot(), args.begin(), args.end(), 
-                          "", TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_factorial(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_factorial(), args.begin(), args.end(), 
-                          "", TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_power(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_power(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_root(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_root(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_gcd(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_gcd(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f32_lcm(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f32_lcm(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    Function* get_hlvm_f64_ispinf()
-    {
-      if (! hlvm_f64_ispinf) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_ispinf",FT);
-        hlvm_f64_ispinf = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_ispinf", TheModule);
-      }
-      return hlvm_f64_ispinf;
-    }
-
-    Function* get_hlvm_f64_isninf()
-    {
-      if (! hlvm_f64_isninf) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_isninf",FT);
-        hlvm_f64_isninf = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_isninf", TheModule);
-      }
-      return hlvm_f64_isninf;
-    }
-
-    Function* get_hlvm_f64_isnan()
-    {
-      if (! hlvm_f64_isnan) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_isnan",FT);
-        hlvm_f64_isnan = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_isnan", TheModule);
-      }
-      return hlvm_f64_isnan;
-    }
-
-    Function* get_hlvm_f64_trunc()
-    {
-      if (! hlvm_f64_trunc) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_trunc",FT);
-        hlvm_f64_trunc = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_trunc", TheModule);
-      }
-      return hlvm_f64_trunc;
-    }
-
-    Function* get_hlvm_f64_round()
-    {
-      if (! hlvm_f64_round) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_round",FT);
-        hlvm_f64_round = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_round", TheModule);
-      }
-      return hlvm_f64_round;
-    }
-
-    Function* get_hlvm_f64_floor()
-    {
-      if (! hlvm_f64_floor) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_floor",FT);
-        hlvm_f64_floor = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_floor", TheModule);
-      }
-      return hlvm_f64_floor;
-    }
-
-    Function* get_hlvm_f64_ceiling()
-    {
-      if (! hlvm_f64_ceiling) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_ceiling",FT);
-        hlvm_f64_ceiling = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_ceiling", TheModule);
-      }
-      return hlvm_f64_ceiling;
-    }
-
-    Function* get_hlvm_f64_loge()
-    {
-      if (! hlvm_f64_loge) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_loge",FT);
-        hlvm_f64_loge = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_loge", TheModule);
-      }
-      return hlvm_f64_loge;
-    }
-
-    Function* get_hlvm_f64_log2()
-    {
-      if (! hlvm_f64_log2) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_log2",FT);
-        hlvm_f64_log2 = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_log2", TheModule);
-      }
-      return hlvm_f64_log2;
-    }
-
-    Function* get_hlvm_f64_log10()
-    {
-      if (! hlvm_f64_log10) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_log10",FT);
-        hlvm_f64_log10 = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_log10", TheModule);
-      }
-      return hlvm_f64_log10;
-    }
-
-    Function* get_hlvm_f64_squareroot()
-    {
-      if (! hlvm_f64_squareroot) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_squareroot",FT);
-        hlvm_f64_squareroot = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_squareroot", TheModule);
-      }
-      return hlvm_f64_squareroot;
-    }
-
-    Function* get_hlvm_f64_cuberoot()
-    {
-      if (! hlvm_f64_cuberoot) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_cuberoot",FT);
-        hlvm_f64_cuberoot = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_cuberoot", TheModule);
-      }
-      return hlvm_f64_cuberoot;
-    }
-
-    Function* get_hlvm_f64_factorial()
-    {
-      if (! hlvm_f64_factorial) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_factorial",FT);
-        hlvm_f64_factorial = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_factorial", TheModule);
-      }
-      return hlvm_f64_factorial;
-    }
-
-    Function* get_hlvm_f64_power()
-    {
-      if (! hlvm_f64_power) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_power",FT);
-        hlvm_f64_power = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_power", TheModule);
-      }
-      return hlvm_f64_ispinf;
-    }
-
-    Function* get_hlvm_f64_root()
-    {
-      if (! hlvm_f64_root) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_root",FT);
-        hlvm_f64_root = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_root", TheModule);
-      }
-      return hlvm_f64_ispinf;
-    }
-
-    Function* get_hlvm_f64_gcd()
-    {
-      if (! hlvm_f64_gcd) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_gcd",FT);
-        hlvm_f64_gcd = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_gcd", TheModule);
-      }
-      return hlvm_f64_ispinf;
-    }
-
-    Function* get_hlvm_f64_lcm()
-    {
-      if (! hlvm_f64_lcm) {
-        std::vector<const Type*> arg_types;
-        arg_types.push_back(Type::DoubleTy);
-        arg_types.push_back(Type::DoubleTy);
-        FunctionType* FT = FunctionType::get(Type::DoubleTy,arg_types,false);
-        TheModule->addTypeName("hlvm_f64_lcm",FT);
-        hlvm_f64_lcm = 
-          new Function(FT, GlobalValue::ExternalLinkage, 
-          "hlvm_f64_lcm", TheModule);
-      }
-      return hlvm_f64_ispinf;
-    }
-
-    CallInst* call_hlvm_f64_ispinf(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_ispinf(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_isninf(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_isninf(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_isnan(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_isnan(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_trunc(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_trunc(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_round(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_round(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_floor(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_floor(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_ceiling(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_ceiling(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_loge(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_loge(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_log2(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_log2(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_log10(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_log10(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_squareroot(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_squareroot(), args.begin(), args.end(), 
-                          "", TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_cuberoot(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_cuberoot(), args.begin(), args.end(), "",
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_factorial(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_factorial(), args.begin(), args.end(), 
-                          "", TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_power(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_power(), args.begin(), args.end(), "",
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_root(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_root(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_gcd(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_gcd(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-    CallInst* call_hlvm_f64_lcm(const hlvm::ArgList& args)
-    {
-      return new CallInst(get_hlvm_f64_lcm(), args.begin(), args.end(), "", 
-                          TheBlock);
-    }
-
-  /// @}
-};
-
-}
-
-namespace hlvm {
-
-LLVMEmitter::LLVMEmitter()
-  : TheModule(0), TheFunction(0), TheEntryBlock(0), TheExitBlock(0), 
-    EntryInsertionPoint(0), TheBlock(0)
-{
-}
-
-LLVMEmitter* 
-new_LLVMEmitter()
-{
-  return new LLVMEmitterImpl();
-}
-
-Module*
-LLVMEmitter::StartModule(const std::string& ID)
-{
-  hlvmAssert(TheModule == 0);
-  return TheModule = new Module(ID);
-}
-
-Module*
-LLVMEmitter::FinishModule()
-{
-  hlvmAssert(TheModule != 0);
-  Module* result = TheModule;
-  TheModule = 0;
-  return result;
-}
-
-void
-LLVMEmitter::StartFunction(Function* F)
-{
-  hlvmAssert(F != 0 && "Null function?");
-  hlvmAssert(F->empty() && "Function already emitted!");
-
-  // Ensure previous state is cleared
-  // operands.clear();
-  // enters.clear();
-  // exits.clear();
-  blocks.clear();
-  breaks.clear();
-  continues.clear();
-  // lvars.clear();
-
-  // Set up for new function
-  TheFunction = F;
-
-  // Instantiate an entry block for the alloca'd variables. This block
-  // is only used for such variables. By placing the alloca'd variables in
-  // the entry block, their allocation is free since the stack pointer 
-  // must be adjusted anyway, all that happens is that it gets adjusted
-  // by a larger amount. 
-  TheBlock = TheEntryBlock = new BasicBlock("entry",F);
-
-  // Instantiate a no-op as an insertion point for the entry point stuff such
-  // as the alloca variables and argument setup. This allows us to fill and
-  // terminate the entry block as usual while still retaining a point for 
-  // insertion in the entry block that retains declaration order.
-  EntryInsertionPoint = 
-    new BitCastInst(Constant::getNullValue(Type::Int32Ty),Type::Int32Ty,
-        "entry_point", TheEntryBlock);
-
-  // Create a new block for the return node, but don't insert it yet.
-  // TheExitBlock = new BasicBlock("exit");
-}
-
-void
-LLVMEmitter::FinishFunction()
-{
-  // The entry block was created to hold the automatic variables. We now
-  // need to terminate the block by branching it to the first active block
-  // in the function.
-  Function::iterator I = TheFunction->begin();
-  ++I;
-  new BranchInst(&*I, &TheFunction->front());
-  hlvmAssert(blocks.empty());
-  hlvmAssert(breaks.empty());
-  hlvmAssert(continues.empty());
-}
-
-BasicBlock*
-LLVMEmitter::pushBlock(const std::string& name)
-{
-  TheBlock = new BasicBlock(name,TheFunction);
-  blocks.push_back(TheBlock);
-  return TheBlock;
-}
-
-BasicBlock* 
-LLVMEmitter::popBlock()
-{
-  BasicBlock* result = blocks.back();
-  blocks.pop_back();
-  if (blocks.empty())
-    TheBlock = 0;
-  else
-    TheBlock = blocks.back();
-  return result;
-}
-
-BasicBlock*
-LLVMEmitter::newBlock(const std::string& name)
-{
-  blocks.pop_back();
-  TheBlock = new BasicBlock(name,TheFunction);
-  blocks.push_back(TheBlock);
-  return TheBlock;
-}
-
-Value* 
-LLVMEmitter::ConvertToBoolean(Value* V) const
-{
-  const Type* Ty = V->getType();
-  if (Ty == Type::Int1Ty)
-    return V;
-
-  if (Ty->isInteger() || Ty->isFloatingPoint()) {
-    Constant* CI = Constant::getNullValue(V->getType());
-    return new ICmpInst(ICmpInst::ICMP_NE, V, CI, "i2b", TheBlock);
-  } else if (isa<GlobalValue>(V)) {
-    // GlobalValues always have non-zero constant address values, so always true
-    return ConstantInt::getTrue();
-  }
-  hlvmAssert(!"Don't know how to convert V into bool");
-  return ConstantInt::getTrue();
-}
-
-Value* 
-LLVMEmitter::Pointer2Value(Value* V) const
-{
-  if (!isa<PointerType>(V->getType()))
-    return V;
-
-  // GetElementPtrInst* GEP = new GetElementPtrIns(V,
-  //    ConstantInt::get(Type::Int32Ty,0),
-  //    ConstantInt::get(Type::Int32Ty,0),
-  //    "ptr2Value", TheBlock);
-  return new LoadInst(V,"ptr2Value", TheBlock);
-}
-
-bool
-LLVMEmitter::IsNoopCast(Value* V, const Type* Ty)
-{
-  // check signed to unsigned
-  const Type *VTy = V->getType();
-  if (VTy->canLosslesslyBitCastTo(Ty)) 
-    return true;
-  
-  // Constant int to anything, to work around stuff like: "xor short X, int 1".
-  if (isa<ConstantInt>(V)) 
-    return true;
-  
-  return false;
-}
-
-/// CastToType - Cast the specified value to the specified type if it is
-/// not already that type.
-Value *
-LLVMEmitter::CastToType(Value *V, bool srcIsSigned, const Type *Ty, 
-                        bool destIsSigned, const std::string& newName) 
-{
-  // If they are the same type, no cast needed
-  if (V->getType() == Ty) 
-    return V;
-
-  // Get the opcode necessary for the cast.
-  Instruction::CastOps Opcode = 
-    CastInst::getCastOpcode(V, srcIsSigned, Ty, destIsSigned);
-
-  // If its a constant then we want a constant cast
-  if (Constant *C = dyn_cast<Constant>(V))
-    return ConstantExpr::getCast(Opcode, C, Ty);
-  
-  // If its a cast instruction and we're casting back to the original type, 
-  // which is bool, then just get the operand of the cast instead of emitting 
-  // duplicate cast instructions. This is just an optimization of a frequently
-  // occurring case.
-  if (CastInst *CI = dyn_cast<CastInst>(V))
-    if (Ty == Type::Int1Ty && CI->getOperand(0)->getType() == Type::Int1Ty)
-      return CI->getOperand(0);
-
-  // Otherwise, just issue the cast
-  return CastInst::create(Opcode, V, Ty, 
-                          (newName.empty() ? V->getName() : newName), TheBlock);
-}
-
-void 
-LLVMEmitter::ResolveBreaks(BasicBlock* exit)
-{
-  for (BranchList::iterator I = breaks.begin(), E = breaks.end(); I != E; ++I) {
-    (*I)->setOperand(0,exit);
-  }
-  breaks.clear();
-}
-
-void 
-LLVMEmitter::ResolveContinues(BasicBlock* entry)
-{
-  for (BranchList::iterator I = continues.begin(), E = continues.end(); 
-       I != E; ++I) {
-    (*I)->setOperand(0,entry);
-  }
-  continues.clear();
-}
-
-/// Return the number of elements in the specified type that will need to be 
-/// loaded/stored if we copy this one element at a time.
-unsigned 
-LLVMEmitter::getNumElements(const Type *Ty) 
-{
-  if (Ty->isFirstClassType()) return 1;
-
-  if (const StructType *STy = dyn_cast<StructType>(Ty)) {
-    unsigned NumElts = 0;
-    for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i)
-      NumElts += getNumElements(STy->getElementType(i));
-    return NumElts;
-  } else if (const ArrayType *ATy = dyn_cast<ArrayType>(Ty)) {
-    return ATy->getNumElements() * getNumElements(ATy->getElementType());
-  } else if (const VectorType* VTy = dyn_cast<VectorType>(Ty)) {
-    return VTy->getNumElements() * getNumElements(VTy->getElementType());
-  } else
-    hlvmAssert(!"Don't know how to count elements of this type");
-  return 0;
-}
-
-Constant*
-LLVMEmitter::getFirstElement(GlobalVariable* GV)
-{
-  ArgList indices;
-  TwoZeroIndices(indices);
-  return ConstantExpr::getGetElementPtr(GV, &indices[0], 2);
-}
-
-FunctionType*
-LLVMEmitter::getFunctionType(
-  const std::string& name, const Type* resultTy, 
-  const TypeList& args, bool varargs)
-{
-  // The args might contain non-first-class typed arguments. We build a
-  // new argument list the contains the argument types after conversion.
-  TypeList Params;
-
-  // We can't have results that are not first class so we use the
-  // first argument to point to where the result should be stored and
-  // switch the result type to VoidTy.
-  if (!resultTy->isFirstClassType()) {
-    Params.push_back(getFirstClassType(resultTy));
-    resultTy = Type::VoidTy;
-  }
-
-  for (TypeList::const_iterator I = args.begin(), E = args.end(); I != E; ++I ) 
-  {
-    if ((*I)->isFirstClassType())
-      Params.push_back(*I);
-    else 
-      Params.push_back(getFirstClassType(*I));
-  }
-
-  FunctionType* result = FunctionType::get(resultTy, Params, varargs);
-  if (!name.empty())
-    TheModule->addTypeName(name,result);
-  return result;
-}
-
-Type*
-LLVMEmitter::getTextType()
-{
-  return static_cast<LLVMEmitterImpl*>(this)->get_hlvm_text();
-}
-
-Type*
-LLVMEmitter::getStreamType()
-{
-  return static_cast<LLVMEmitterImpl*>(this)->get_hlvm_stream();
-}
-
-Type*
-LLVMEmitter::getBufferType()
-{
-  return static_cast<LLVMEmitterImpl*>(this)->get_hlvm_buffer();
-}
-
-FunctionType* 
-LLVMEmitter::getProgramType()
-{
-  return static_cast<LLVMEmitterImpl*>(this)->get_hlvm_program_signature();
-}
-
-llvm::CmpInst* LLVMEmitter::emitNE(llvm::Value* V1, llvm::Value* V2){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_ONE, V1, V2, "ne",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_NE,  V1, V2, "ne",TheBlock);
-}
-
-llvm::CmpInst* LLVMEmitter::emitEQ(llvm::Value* V1, llvm::Value* V2){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_OEQ, V1, V2, "eq",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_EQ,  V1, V2, "eq",TheBlock);
-}
-
-llvm::CmpInst* LLVMEmitter::emitLT(llvm::Value* V1, llvm::Value* V2, bool sign){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_OLT, V1, V2,"olt",TheBlock);
-  else if (sign)
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_ULT, V1, V2,"ult",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_SLT, V1, V2,"slt",TheBlock);
-}
-
-llvm::CmpInst* LLVMEmitter::emitGT(llvm::Value* V1, llvm::Value* V2, bool sign){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_OGT, V1, V2,"ogt",TheBlock);
-  else if (sign)
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_SGT, V1, V2,"sgt",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_UGT, V1, V2,"ugt",TheBlock);
-}
-
-llvm::CmpInst* LLVMEmitter::emitLE(llvm::Value* V1, llvm::Value* V2, bool sign){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_OLE, V1, V2,"ole",TheBlock);
-  else if (sign)
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_ULE, V1, V2,"ule",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_SLE, V1, V2,"sle",TheBlock);
-}
-
-llvm::CmpInst* LLVMEmitter::emitGE(llvm::Value* V1, llvm::Value* V2, bool sign){
-  if (V1->getType()->isFloatingPoint())
-    return new llvm::FCmpInst(llvm::FCmpInst::FCMP_OGE, V1, V2,"oge",TheBlock);
-  else if (sign)
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_SGE, V1, V2,"sge",TheBlock);
-  else
-    return new llvm::ICmpInst(llvm::ICmpInst::ICMP_UGE, V1, V2,"uge",TheBlock);
-}
-
-void
-LLVMEmitter::emitAssign(Value* dest, Value* src)
-{
-  // If the destination is a load instruction then its the result of a previous
-  // nested block so just get the first operand as the real destination.
-  if (isa<LoadInst>(dest))
-    dest = cast<LoadInst>(dest)->getOperand(0);
-
-  // The destination must be a pointer type
-  hlvmAssert(isa<PointerType>(dest->getType()));
-
-  // Get the type of the destination and source
-  const Type* destTy = cast<PointerType>(dest->getType())->getElementType();
-  const Type* srcTy = src->getType();
-
-  if (destTy->isFirstClassType()) {
-    // Can't store an aggregate to a first class type
-    hlvmAssert(srcTy->isFirstClassType());
-    if (destTy == srcTy) {
-      // simple case, the types match and they are both first class types, 
-      // just emit a store instruction
-      emitStore(src,dest);
-    } else if (const PointerType* srcPT = dyn_cast<PointerType>(srcTy)) {
-      // The source is a pointer to the value to return so just get a
-      // pointer to its first element and store it since its pointing to
-      // a first class type. Assert that this is true.
-      hlvmAssert( srcPT->getElementType() == destTy );
-      ArgList idx;
-      TwoZeroIndices(idx);
-      GetElementPtrInst* GEP = 
-        new GetElementPtrInst(src, &idx[0], 2, "", TheBlock);
-      emitStore(GEP,dest);
-    } else {
-      // they are both first class types and the source is not a pointer, so 
-      // just cast them. FIXME: signedness
-      Value* V = CastToType(src, false, destTy, false, src->getName());
-      emitStore(V, dest);
-    }
-  } 
-  else if (const PointerType* srcPT = dyn_cast<PointerType>(srcTy)) 
-  {
-    // We have an aggregate to copy
-    emitAggregateCopy(dest,src);
-  } 
-  else if (Constant* srcC = dyn_cast<Constant>(src)) 
-  {
-    // We have a constant aggregate to move into an aggregate gvar. We must
-    // create a temporary gvar based on the constant in order to copy it.
-    GlobalVariable* GVar = NewGConst(srcTy, srcC, srcC->getName());
-    // Now we can aggregate copy it
-    emitAggregateCopy(dest, GVar);
-  }
-}
-
-/// Recursively traverse the potientially aggregate src/dest ptrs, copying all 
-/// of the elements from src to dest.
-static void 
-CopyAggregate(
-  Value *DestPtr, 
-  bool DestVolatile, 
-  Value *SrcPtr, 
-  bool SrcVolatile,
-  BasicBlock *BB) 
-{
-  assert(DestPtr->getType() == SrcPtr->getType() &&
-         "Cannot copy between two pointers of different type!");
-  const Type *ElTy = cast<PointerType>(DestPtr->getType())->getElementType();
-  if (ElTy->isFirstClassType()) {
-    Value *V = new LoadInst(SrcPtr, "tmp", SrcVolatile, BB);
-    new StoreInst(V, DestPtr, DestVolatile, BB);
-  } else if (const StructType *STy = dyn_cast<StructType>(ElTy)) {
-    Constant *Zero = ConstantInt::get(Type::Int32Ty, 0);
-    for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
-      Constant *Idx = ConstantInt::get(Type::Int32Ty, i);
-      Value *DElPtr = new GetElementPtrInst(DestPtr, Zero, Idx, "tmp", BB);
-      Value *SElPtr = new GetElementPtrInst(SrcPtr, Zero, Idx, "tmp", BB);
-      CopyAggregate(DElPtr, DestVolatile, SElPtr, SrcVolatile, BB);
-    }
-  } else {
-    const ArrayType *ATy = cast<ArrayType>(ElTy);
-    Constant *Zero = ConstantInt::get(Type::Int32Ty, 0);
-    for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) {
-      Constant *Idx = ConstantInt::get(Type::Int32Ty, i);
-      Value *DElPtr = new GetElementPtrInst(DestPtr, Zero, Idx, "tmp", BB);
-      Value *SElPtr = new GetElementPtrInst(SrcPtr, Zero, Idx, "tmp", BB);
-      CopyAggregate(DElPtr, DestVolatile, SElPtr, SrcVolatile, BB);
-    }
-  }
-}
-
-/// EmitAggregateCopy - Copy the elements from SrcPtr to DestPtr, using the
-/// GCC type specified by GCCType to know which elements to copy.
-void 
-LLVMEmitter::emitAggregateCopy(
-  Value *DestPtr,
-  Value *SrcPtr )
-{
-  // Make sure we're not mixing apples and oranges
-  hlvmAssert(DestPtr->getType() == SrcPtr->getType());
-
-  // Degenerate case, same pointer
-  if (DestPtr == SrcPtr)
-    return;  // noop copy.
-
-  // If the type has just a few elements, then copy the elements directly 
-  // using load/store. Otherwise use the llvm.memcpy.i64 intrinsic. This just
-  // saves a function call for really small structures and arrays. 
-  const Type* Ty = SrcPtr->getType();
-  if (getNumElements(Ty) <= 8) 
-    CopyAggregate(DestPtr, false, SrcPtr, false, TheBlock);
-  else 
-    emitMemCpy(DestPtr, SrcPtr, ConstantExpr::getSizeOf(Ty));
-}
-
-ReturnInst*
-LLVMEmitter::emitReturn(Value* retVal)
-{
-  // First deal with the degenerate case, a void return
-  if (retVal == 0) {
-    hlvmAssert(getReturnType() == Type::VoidTy);
-    return new ReturnInst(0,TheBlock);
-  }
-
-  // Now, deal with first class result types. Becasue of the way function
-  // types are generated, a void type at this point indicates an aggregate
-  // result. If we don't have a void type, then it must be a first class result.
-  const Type* resultTy = retVal->getType();
-  if (getReturnType() != Type::VoidTy) {
-    Value* result = 0;
-    if (const PointerType* PTy = dyn_cast<PointerType>(resultTy)) {
-      // must be an autovar or global var, just load the value
-      hlvmAssert(PTy->getElementType() == getReturnType());
-      result = emitLoad(retVal,getBlockName() + "_result");
-    } else if (resultTy != getReturnType()) {
-      hlvmAssert(resultTy->isFirstClassType());
-      // FIXME: signedness
-      result = CastToType(retVal, false, getReturnType(), false, 
-                          getBlockName()+"_result");
-    } else {
-      hlvmAssert(resultTy->isFirstClassType());
-      result = retVal;
-    }
-    hlvmAssert(result && "No result for function");
-    return new ReturnInst(result,TheBlock);
-  }
-
-  // Now, deal with the aggregate result case. At this point the function return
-  // type must be void and the first argument must be a pointer to the storage
-  // area for the result.
-  hlvmAssert(getReturnType() == Type::VoidTy);
-
-  // Get the first argument.
-  hlvmAssert(!TheFunction->arg_empty());
-  Argument* result_arg = TheFunction->arg_begin();
-
-  // Both the first argument and the result should have the same type which
-  // both should be pointer to the aggregate
-  hlvmAssert(result_arg->getType() == resultTy);
-
-  // Copy the aggregate result
-  emitAggregateCopy(result_arg, retVal);
-
-  // Emit the void return
-  return new ReturnInst(0, TheBlock);
-}
-
-CallInst* 
-LLVMEmitter::emitCall(Function* F, const ArgList& args) 
-{
-  // Detect the aggregate result case
-  if ((F->getReturnType() == Type::VoidTy) &&
-      (args.size() == F->arg_size() - 1)) {
-    const Type* arg1Ty = F->arg_begin()->getType();
-    if (const PointerType* PTy = dyn_cast<PointerType>(arg1Ty))
-    {
-      // This is the case where the result is a temporary variable that
-      // holds the aggregate and is passed as the first argument
-      const Type* elemTy = PTy->getElementType();
-      hlvmAssert(!elemTy->isFirstClassType());
-
-      // Get a temporary for the result
-      AllocaInst* result = NewAutoVar(elemTy, F->getName() + "_result");
-
-      // Install the temporary result area into a new arg list
-      ArgList newArgs;
-      newArgs.push_back(result);
-
-      // Copy the other arguments
-      for (ArgList::const_iterator I = args.begin(), E = args.end(); 
-           I != E; ++I)
-        if (isa<Constant>(*I) && !isa<GlobalValue>(*I) && 
-            !(*I)->getType()->isFirstClassType())
-          newArgs.push_back(NewGConst((*I)->getType(), 
-            cast<Constant>(*I), (*I)->getName()));
-        else
-          newArgs.push_back(*I);
-
-      // Generate the call
-      return new CallInst(F, newArgs.begin(), newArgs.end(), "", TheBlock);
-    }
-  }
-
-  // The result must be a first class type at this point, ensure it
-  hlvmAssert(F->getReturnType()->isFirstClassType());
-
-  // Copy the other arguments
-  ArgList newArgs;
-  for (ArgList::const_iterator I = args.begin(), E = args.end(); 
-       I != E; ++I)
-    if (isa<Constant>(*I) && !isa<GlobalValue>(*I) && 
-        !(*I)->getType()->isFirstClassType())
-      newArgs.push_back(NewGConst((*I)->getType(), 
-        cast<Constant>(*I), (*I)->getName()));
-    else
-      newArgs.push_back(*I);
-  return new CallInst(F, newArgs.begin(), newArgs.end(), 
-                      F->getName() + "_result", TheBlock);
-}
-
-void 
-LLVMEmitter::emitMemCpy(
-  Value *dest, 
-  Value *src, 
-  Value *size
-)
-{
-  const Type *SBP = PointerType::get(Type::Int8Ty);
-  ArgList args;
-  args.push_back(CastToType(dest, false, SBP, false, ""));
-  args.push_back(CastToType(src, false, SBP, false, ""));
-  args.push_back(size);
-  args.push_back(ConstantInt::get(Type::Int32Ty, 0u));
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  new CallInst(emimp->get_llvm_memcpy(), args.begin(), args.end(), "", 
-               TheBlock);
-}
-
-/// Emit an llvm.memmove.i64 intrinsic
-void 
-LLVMEmitter::emitMemMove(
-  Value *dest,
-  Value *src, 
-  Value *size
-)
-{
-  const Type *SBP = PointerType::get(Type::Int8Ty);
-  ArgList args;
-  args.push_back(CastToType(dest, false, SBP, false, ""));
-  args.push_back(CastToType(src, false, SBP, false, ""));
-  args.push_back(size);
-  args.push_back(ConstantInt::get(Type::Int32Ty, 0u));
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  new CallInst(emimp->get_llvm_memmove(), args.begin(), args.end(), "", 
-               TheBlock);
-}
-
-/// Emit an llvm.memset.i64 intrinsic
-void 
-LLVMEmitter::emitMemSet(
-  Value *dest, 
-  Value *val, 
-  Value *size 
-)
-{
-  const Type *SBP = PointerType::get(Type::Int8Ty);
-  ArgList args;
-  args.push_back(CastToType(dest, false, SBP, false, ""));
-  args.push_back(CastToType(val, false, Type::Int8Ty, false, ""));
-  args.push_back(size);
-  args.push_back(ConstantInt::get(Type::Int32Ty, 0u));
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  new CallInst(emimp->get_llvm_memset(), args.begin(), args.end(), "", 
-               TheBlock);
-}
-
-CallInst* 
-LLVMEmitter::emitOpen(llvm::Value* strm)
-{
-  std::vector<llvm::Value*> args;
-  if (const llvm::PointerType* PT = 
-      llvm::dyn_cast<llvm::PointerType>(strm->getType())) 
-  {
-    const llvm::Type* Ty = PT->getElementType();
-    if (Ty == llvm::Type::Int8Ty) {
-      args.push_back(strm);
-    } else if (llvm::isa<ArrayType>(Ty) && 
-             cast<ArrayType>(Ty)->getElementType() == Type::Int8Ty) {
-      ArgList indices;
-      this->TwoZeroIndices(indices);
-      args.push_back(this->emitGEP(strm,indices));
-    } else
-      hlvmAssert(!"Array element type is not Int8Ty");
-  } else
-    hlvmAssert(!"OpenOp parameter is not a pointer");
-
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  return emimp->call_hlvm_stream_open(args,"open");
-}
-
-CallInst* 
-LLVMEmitter::emitClose(llvm::Value* strm)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(strm);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  return emimp->call_hlvm_stream_close(args);
-}
-
-CallInst* 
-LLVMEmitter::emitRead(llvm::Value* strm,llvm::Value* arg2, llvm::Value* arg3)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(strm);
-  args.push_back(arg2);
-  args.push_back(arg3);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  return emimp->call_hlvm_stream_read(args,"read");
-}
-
-CallInst* 
-LLVMEmitter::emitWrite(llvm::Value* strm,llvm::Value* arg2)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(strm);
-  args.push_back(arg2);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  CallInst* result = 0;
-  if (llvm::isa<llvm::PointerType>(arg2->getType()))
-    if (llvm::cast<llvm::PointerType>(arg2->getType())->getElementType() ==
-        llvm::Type::Int8Ty)
-      result = emimp->call_hlvm_stream_write_string(args,"write");
-  if (arg2->getType() == emimp->get_hlvm_text())
-    result = emimp->call_hlvm_stream_write_text(args,"write");
-  else if (arg2->getType() == emimp->get_hlvm_buffer())
-    result = emimp->call_hlvm_stream_write_buffer(args,"write");
-  return result;
-}
-
-CallInst*
-LLVMEmitter::emitIsPInf(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_ispinf(args);
-  return emimp->call_hlvm_f64_ispinf(args);
-}
-
-CallInst* 
-LLVMEmitter::emitIsNInf(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_isninf(args);
-  return emimp->call_hlvm_f64_isninf(args);
-}
-
-CallInst* 
-LLVMEmitter::emitIsNan(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_isnan(args);
-  return emimp->call_hlvm_f64_isnan(args);
-}
-
-CallInst* 
-LLVMEmitter::emitTrunc(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_trunc(args);
-  return emimp->call_hlvm_f64_trunc(args);
-}
-
-CallInst* 
-LLVMEmitter::emitRound(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_round(args);
-  return emimp->call_hlvm_f64_round(args);
-}
-
-CallInst* 
-LLVMEmitter::emitFloor(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_floor(args);
-  return emimp->call_hlvm_f64_floor(args);
-}
-
-CallInst* 
-LLVMEmitter::emitCeiling(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_ceiling(args);
-  return emimp->call_hlvm_f64_ceiling(args);
-}
-
-CallInst* 
-LLVMEmitter::emitLogE(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_loge(args);
-  return emimp->call_hlvm_f64_loge(args);
-}
-
-CallInst* 
-LLVMEmitter::emitLog2(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_log2(args);
-  return emimp->call_hlvm_f64_log2(args);
-}
-
-CallInst* 
-LLVMEmitter::emitLog10(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_log10(args);
-  return emimp->call_hlvm_f64_log10(args);
-}
-
-CallInst* 
-LLVMEmitter::emitSquareRoot(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_squareroot(args);
-  return emimp->call_hlvm_f64_squareroot(args);
-}
-
-CallInst* 
-LLVMEmitter::emitCubeRoot(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_cuberoot(args);
-  return emimp->call_hlvm_f64_cuberoot(args);
-}
-
-CallInst* 
-LLVMEmitter::emitFactorial(Value* V)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V->getType()->isFloatingPoint());
-  if (Type::FloatTy == V->getType())
-    return emimp->call_hlvm_f32_factorial(args);
-  return emimp->call_hlvm_f64_factorial(args);
-}
-
-CallInst* 
-LLVMEmitter::emitPower(Value* V1,Value*V2)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V1);
-  args.push_back(V2);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V1->getType()->isFloatingPoint());
-  hlvmAssert(V2->getType()->isFloatingPoint());
-  if (Type::FloatTy == V1->getType())
-    return emimp->call_hlvm_f32_power(args);
-  return emimp->call_hlvm_f64_power(args);
-}
-
-CallInst* 
-LLVMEmitter::emitRoot(Value* V1,Value*V2)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V1);
-  args.push_back(V2);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V1->getType()->isFloatingPoint());
-  hlvmAssert(V2->getType()->isFloatingPoint());
-  if (Type::FloatTy == V1->getType())
-    return emimp->call_hlvm_f32_root(args);
-  return emimp->call_hlvm_f64_root(args);
-}
-
-CallInst* 
-LLVMEmitter::emitGCD(Value* V1,Value*V2)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V1);
-  args.push_back(V2);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V1->getType()->isFloatingPoint());
-  hlvmAssert(V2->getType()->isFloatingPoint());
-  if (Type::FloatTy == V1->getType())
-    return emimp->call_hlvm_f32_gcd(args);
-  return emimp->call_hlvm_f64_gcd(args);
-}
-
-CallInst* 
-LLVMEmitter::emitLCM(Value* V1,Value*V2)
-{
-  std::vector<llvm::Value*> args;
-  args.push_back(V1);
-  args.push_back(V2);
-  LLVMEmitterImpl* emimp = static_cast<LLVMEmitterImpl*>(this);
-  hlvmAssert(V1->getType()->isFloatingPoint());
-  hlvmAssert(V2->getType()->isFloatingPoint());
-  if (Type::FloatTy == V1->getType())
-    return emimp->call_hlvm_f32_lcm(args);
-  return emimp->call_hlvm_f64_lcm(args);
-}
-
-}
diff --git a/hlvm/hlvm/CodeGen/LLVMEmitter.h b/hlvm/hlvm/CodeGen/LLVMEmitter.h
deleted file mode 100644
index f75028e..0000000
--- a/hlvm/hlvm/CodeGen/LLVMEmitter.h
+++ /dev/null
@@ -1,505 +0,0 @@
-//===-- LLVM Code Emitter Interface -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/CodeGen/LLVMEmitter.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/07/09
-/// @since 0.2.0
-/// @brief Declares the interface for emitting LLVM code
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_CODEGEN_LLVMEMITTER_H
-#define HLVM_CODEGEN_LLVMEMITTER_H
-
-// Include the LLVM classes that we use
-#include <llvm/Module.h>
-#include <llvm/PassManager.h>
-#include <llvm/BasicBlock.h>
-#include <llvm/Function.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/TypeSymbolTable.h>
-#include <llvm/Constants.h>
-#include <llvm/CallingConv.h>
-#include "llvm/Support/DataTypes.h"
-#include <vector>
-
-namespace hlvm {
-
-/// A simple list of LLVM Modules
-typedef std::vector<llvm::Module*> ModuleList;
-
-/// A List of LLVM Branch Instructions. These are used to record unconditional
-/// branches that need to be fixed up later with LLVMEmitter::ResolveBranches.
-typedef std::vector<llvm::BranchInst*> BranchList;
-
-/// A list of LLVM Blocks, presumably used in a push/pop stack fashion.
-typedef std::vector<llvm::BasicBlock*> BlockStack;
-
-/// A list of LLVM Values, used for argument lists
-typedef std::vector<llvm::Value*> ArgList;
-
-/// A list of LLVM types, used for function types
-typedef std::vector<const llvm::Type*> TypeList;
-
-/// This class provides utility functions for emitting LLVM code. It has no
-/// concept of how to translate HLVM into LLVM, that logic is in LLVMGenerator
-/// class. This class just keeps track of things in the LLVM world and provides
-/// a group of methods to take care of the details of emitting LLVM code. The
-/// main purpose for this class is simply to unclutter LLVMGenerator.
-class LLVMEmitter 
-{
-  /// @name Constructors
-  /// @{
-  protected:
-    LLVMEmitter();
-
-  /// @}
-  /// @name Function Emission
-  /// @{
-  public:
-
-    // Start a new modules
-    llvm::Module* StartModule(const std::string& ID);
-
-    // Finish the started module
-    llvm::Module* FinishModule();
-
-    /// Start a new function. This sets up the context of the emitter to start
-    /// generating code for function \p F.
-    void StartFunction(llvm::Function* F);
-
-    /// Finish the function previously started. This must be called after a call
-    /// to StartFunction. Mostly this just checks that the generated function is
-    /// sane.
-    void FinishFunction();
-
-    /// Add a type to the module
-    void AddType(const llvm::Type* Ty, const std::string& name)
-    {
-      TheModule->addTypeName(name, Ty);
-    }
-
-    /// Add a Function to the module
-    llvm::Function* NewFunction(
-      const llvm::FunctionType* Ty, 
-      llvm::GlobalValue::LinkageTypes LT,
-      const std::string& name) 
-    { 
-      return new llvm::Function(Ty, LT, name, TheModule); 
-    }
-
-    /// Add a global variable to the module
-    llvm::GlobalVariable* NewGVar(
-      const llvm::Type* Ty, 
-      llvm::GlobalValue::LinkageTypes LT,
-      llvm::Constant* init, 
-      const std::string& name)
-    {
-      return new llvm::GlobalVariable(Ty, false, LT, init, name, TheModule);
-    }
-    /// Add a global constant to the module
-    llvm::GlobalVariable* NewGConst(
-      const llvm::Type* Ty, 
-      llvm::Constant* init, 
-      const std::string& name)
-    {
-      return new llvm::GlobalVariable(Ty, true,
-         llvm::GlobalValue::InternalLinkage, init, name, TheModule);
-    }
-
-    /// Create a new AllocaInst in the entry block with the given name and type.
-    /// The Type must have a fixed/constant size.
-    llvm::AllocaInst* NewAutoVar(const llvm::Type* Ty, const std::string& name)
-    {
-      return new llvm::AllocaInst(Ty, 0, name, EntryInsertionPoint);
-    }
-
-    /// Add the specified basic block to the end of the function.  If
-    /// the previous block falls through into it, add an explicit branch.  Also,
-    /// manage fixups for EH info.
-    void EmitBlock(llvm::BasicBlock *BB);
-    
-    /// Create a new LLVM block with the given \p name and push it onto the
-    /// block stack.
-    llvm::BasicBlock* pushBlock(const std::string& name);
-
-    /// Pop a block off the block stack and return it.
-    llvm::BasicBlock* popBlock();
-
-    /// Replace the top of the block stack with a new block with the given
-    /// \p name
-    llvm::BasicBlock* newBlock(const std::string& name);
-
-  /// @}
-  /// @name Simple Helper Functions
-  /// @{
-  public: 
-    /// Get the current module we're building
-    llvm::Module* getModule() const { return TheModule; }
-
-    /// Get the current function we're building
-    llvm::Function* getFunction() const { return TheFunction; }
-
-    /// Get the current block we are filling
-    llvm::BasicBlock* getBlock() const { return TheBlock; }
-
-    /// Get the name of the current block we're inserting into
-    std::string getBlockName() const { 
-      return TheBlock->getName(); 
-    }
-    // Get the terminating instruction of the current block
-    llvm::Instruction* getBlockTerminator() const { 
-      return TheBlock->getTerminator();
-    }
-    // Get the return type of the current function
-    const llvm::Type* getReturnType() const {
-      return TheFunction->getReturnType();
-    }
-
-    /// Return the total number of elements in the Type, examining recursively,
-    /// any nested aggregate types.
-    unsigned getNumElements(const llvm::Type *Ty);
-
-    /// Return a constant expression for indexing into the first element of
-    /// a constant global variable.
-    llvm::Constant* getFirstElement(llvm::GlobalVariable* GV);
-
-    /// If V is a PointerType then load its value unless the referent type is
-    /// not first class type
-    llvm::Value* Pointer2Value(llvm::Value* V) const;
-
-    /// Convert the value V into a Boolean value.
-    llvm::Value* ConvertToBoolean(llvm::Value* V) const;
-
-    /// Run through the \p list and set the first operand of each branch
-    /// instruction found there to the \p exit block. This presumes that the
-    /// branch instruction is unconditional.
-    void ResolveBreaks(llvm::BasicBlock* exit);
-    void ResolveContinues(llvm::BasicBlock* entry);
-
-    /// Return true if a cast from V to Ty does not change any bits.
-    static bool IsNoopCast(llvm::Value *V, const llvm::Type *Ty);
-
-    /// Cast the \p V  to \p Ty if it is not already that type.
-    llvm::Value *CastToType(llvm::Value *V, bool isSigned, 
-                            const llvm::Type *Ty, bool isSigned,
-                            const std::string& newName);
-
-    static void TwoZeroIndices(ArgList& indices) {
-      indices.clear();
-      indices.push_back(llvm::ConstantInt::getNullValue(llvm::Type::Int32Ty));
-      indices.push_back(llvm::ConstantInt::getNullValue(llvm::Type::Int32Ty));
-    }
-
-    /// Convert a non-first-class type into a first-class type by constructing
-    /// a pointer to the original type.
-    const llvm::Type* getFirstClassType(const llvm::Type* Ty) {
-      if (!Ty->isFirstClassType())
-        return llvm::PointerType::get(Ty);
-      return Ty;
-    }
-
-    /// Get an LLVM FunctionType for the corresponding arguments. This handles
-    /// the details of converting non-first-class arguments and results into
-    /// the appropriate pointers to those types and making the first function
-    /// argument a pointer to the result storage, if necessary.
-    llvm::FunctionType* getFunctionType(
-      const std::string& name,       ///< The name to give the function type
-      const llvm::Type* resultTy,    ///< The type of the function's result
-      const TypeList& args,          ///< The list of the function's arguments
-      bool varargs                   ///< Whether its a varargs function or not
-    );
-
-    llvm::Type* getTextType();
-    llvm::Type* getStreamType();
-    llvm::Type* getBufferType();
-    llvm::FunctionType* getProgramType();
-
-  /// @}
-  /// @name Simple Value getters
-  /// @{
-  public:
-    llvm::Constant* getTrue() const  { return llvm::ConstantInt::getTrue(); }
-    llvm::Constant* getFalse() const { return llvm::ConstantInt::getFalse(); }
-    llvm::Constant* getZero() const { 
-      return llvm::ConstantInt::getNullValue(llvm::Type::Int32Ty);
-    }
-    llvm::Constant* getFOne() const { 
-      return llvm::ConstantFP::get(llvm::Type::FloatTy,1.0);
-    }
-    llvm::Constant* getDOne() const { 
-      return llvm::ConstantFP::get(llvm::Type::DoubleTy,1.0);
-    }
-    llvm::Constant* getFPOne(const llvm::Type* Ty) const {
-      return llvm::ConstantFP::get(Ty,1.0);
-    }
-    llvm::Constant* getOne(const llvm::Type* Ty) const {
-      return llvm::ConstantInt::get(Ty,1);
-    }
-    llvm::Constant* getSVal(const llvm::Type* Ty, int64_t val) const {
-      return llvm::ConstantInt::get(Ty,val);
-    }
-    llvm::Constant* getUVal(const llvm::Type* Ty, uint64_t val) const {
-      return llvm::ConstantInt::get(Ty,val);
-    }
-    llvm::Constant* getNullValue(const llvm::Type* Ty) const { 
-      return llvm::Constant::getNullValue(Ty);
-    }
-    llvm::Constant* getAllOnes(const llvm::Type* Ty) const {
-      return llvm::ConstantInt::getAllOnesValue(Ty);
-    }
-  /// @}
-  /// @name Simple emitters
-  /// @{
-  public:
-    llvm::CmpInst* emitNE(llvm::Value* V1, llvm::Value* V2);
-    llvm::CmpInst* emitEQ(llvm::Value* V1, llvm::Value* V2);
-    llvm::CmpInst* emitLT(llvm::Value* V1, llvm::Value* V2, bool sign = false);
-    llvm::CmpInst* emitGT(llvm::Value* V1, llvm::Value* V2, bool sign = false);
-    llvm::CmpInst* emitLE(llvm::Value* V1, llvm::Value* V2, bool sign = false);
-    llvm::CmpInst* emitGE(llvm::Value* V1, llvm::Value* V2, bool sign = false);
-
-    llvm::LoadInst* emitLoad(llvm::Value* V, const std::string& name) const {
-      return new llvm::LoadInst(V, name, TheBlock);
-    }
-    llvm::StoreInst* emitStore(llvm::Value* from, llvm::Value* to) const {
-      return new llvm::StoreInst(from, to, TheBlock);
-    }
-    llvm::BinaryOperator* emitNeg(llvm::Value* V) const {
-      return llvm::BinaryOperator::createNeg(V,"neg",TheBlock);
-    }
-    llvm::BinaryOperator* emitCmpl(llvm::Value* V) const {
-      return llvm::BinaryOperator::create(llvm::Instruction::Xor,
-        V, getAllOnes(V->getType()), "cmpl", TheBlock);
-    }
-    llvm::Constant* emitSizeOf(llvm::Value* V1) {
-      return llvm::ConstantExpr::getSizeOf(V1->getType());
-    }
-    llvm::Constant* emitSizeof(llvm::Type* Ty) {
-      return llvm::ConstantExpr::getSizeOf(Ty);
-    }
-    llvm::BinaryOperator* emitAdd(llvm::Value* V1, llvm::Value* V2) {
-      return llvm::BinaryOperator::createAdd(V1, V2, "add", TheBlock);
-    }
-    llvm::BinaryOperator* emitSub(llvm::Value* V1, llvm::Value* V2) {
-      return llvm::BinaryOperator::createSub(V1, V2, "sub", TheBlock);
-    }
-    llvm::BinaryOperator* emitMul(llvm::Value* V1, llvm::Value* V2) {
-      return llvm::BinaryOperator::createMul(V1, V2, "mul", TheBlock);
-    }
-    llvm::BinaryOperator* emitSDiv(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createSDiv(V1, V2, "div", TheBlock);
-    }
-    llvm::BinaryOperator* emitUDiv(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createUDiv(V1, V2, "div", TheBlock);
-    }
-    llvm::BinaryOperator* emitSRem(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createSRem(V1, V2, "mod", TheBlock);
-    }
-    llvm::BinaryOperator* emitURem(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createURem(V1, V2, "mod", TheBlock);
-    }
-    llvm::BinaryOperator* emitBAnd(llvm::Value*V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createAnd(V1, V2, "band", TheBlock);
-    }
-    llvm::BinaryOperator* emitBOr(llvm::Value*V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createOr(V1, V2, "bor", TheBlock);
-    }
-    llvm::BinaryOperator* emitBXor(llvm::Value*V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::createXor(V1, V2, "bxor", TheBlock);
-    }
-    llvm::BinaryOperator* emitBNor(llvm::Value* V1, llvm::Value* V2) const {
-      llvm::BinaryOperator* bor = 
-        llvm::BinaryOperator::createOr(V1, V2, "bnor", TheBlock);
-      return llvm::BinaryOperator::createNot(bor,"bnor",TheBlock);
-    }
-    llvm::BinaryOperator* emitNot(llvm::Value* V1) const {
-      return llvm::BinaryOperator::createNot(
-        ConvertToBoolean(V1),"not",TheBlock);
-    }
-    llvm::BinaryOperator* emitAnd(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::create(llvm::Instruction::And, 
-        ConvertToBoolean(V1), ConvertToBoolean(V2), "and", TheBlock);
-    }
-    llvm::BinaryOperator* emitOr(llvm::Value* V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::create(llvm::Instruction::Or, 
-        ConvertToBoolean(V1), ConvertToBoolean(V2), "or", TheBlock);
-    }
-    llvm::BinaryOperator* emitXor(llvm::Value*V1, llvm::Value* V2) const {
-      return llvm::BinaryOperator::create(llvm::Instruction::Xor, 
-        ConvertToBoolean(V1), ConvertToBoolean(V2), "xor", TheBlock);
-    }
-    llvm::BinaryOperator* emitNor(llvm::Value* V1, llvm::Value* V2) const {
-      llvm::BinaryOperator* op = llvm::BinaryOperator::create(
-        llvm::Instruction::Or, ConvertToBoolean(V1), ConvertToBoolean(V2), 
-        "nor", TheBlock);
-      return llvm::BinaryOperator::createNot(op,"nor",TheBlock);
-    }
-    llvm::SelectInst* emitSelect(llvm::Value* V1, llvm::Value* V2, 
-      llvm::Value* V3, const std::string& name) {
-      return new llvm::SelectInst(V1,V2,V3,name,TheBlock);
-    }
-    llvm::BranchInst* emitBranch(llvm::BasicBlock* blk) {
-      return new llvm::BranchInst(blk,TheBlock);
-    }
-    llvm::BranchInst* emitBreak() {
-      llvm::BranchInst* brnch = new llvm::BranchInst(TheBlock,TheBlock);
-      breaks.push_back(brnch);
-      return brnch;
-    }
-    llvm::BranchInst* emitContinue() {
-      llvm::BranchInst* brnch = new llvm::BranchInst(TheBlock,TheBlock);
-      continues.push_back(brnch);
-      return brnch;
-    }
-
-    llvm::ReturnInst* emitReturn(llvm::Value* V);
-
-    llvm::CallInst* emitCall(llvm::Function* F, const ArgList& args); 
-
-    llvm::GetElementPtrInst* emitGEP(llvm::Value* V, const ArgList& indices) {
-      return new llvm::GetElementPtrInst(V, &indices[0], indices.size(), "",
-                                         TheBlock);
-    }
-
-    llvm::GetElementPtrInst* emitGEP(llvm::Value* V, llvm::Value* index) {
-      llvm::Value* indices[2];
-      indices[0] = llvm::Constant::getNullValue(llvm::Type::Int32Ty);
-      indices[1] = index;
-      return new llvm::GetElementPtrInst(V, indices, 2, "",TheBlock);
-    }
-
-    /// This method implements an assignment of a src value to a pointer to a
-    /// destination value. It handles all cases from a simple store instruction
-    /// for first class types, to construction of temporary global variables 
-    /// for assignment of constant aggregates to variables.
-    void emitAssign(llvm::Value* dest, llvm::Value* src);
-
-    /// Copy one aggregate to another. This method will use individual load and
-    /// store instructions for small aggregates or the llvm.memcpy intrinsic for
-    /// larger ones.
-    void emitAggregateCopy(
-      llvm::Value *DestPtr,  ///< Pointer to destination aggregate
-      llvm::Value *SrcPtr    ///< Pointer to source aggregate
-    );
-
-    /// Emit an llvm.memcpy.i64 intrinsic
-    void emitMemCpy(
-      llvm::Value *dest,  ///< A Pointer type value to receive the data
-      llvm::Value *src,   ///< A Pointer type value that is the data source
-      llvm::Value *size   ///< A ULong Type value to specify # of bytes to copy
-    );
-
-    /// Emit an llvm.memmove.i64 intrinsic
-    void emitMemMove(
-      llvm::Value *dest,  ///< A Pointer type value to receive the data
-      llvm::Value *src,   ///< A Pointer type value that is the data source
-      llvm::Value *size   ///< A ULong Type value to specify # of bytes to move
-    );
-
-    /// Emit an llvm.memset.i64 intrinsic
-    void emitMemSet(
-      llvm::Value *dest,  ///< A Pointer type value to receive the data
-      llvm::Value *val,   ///< An integer type that specifies the byte to set
-      llvm::Value *size   ///< A ULong Type value to specif # of bytes to set
-    );
-
-  /// @}
-  /// @name Emitters for Stream Operations
-  /// @{
-  public:
-    llvm::CallInst* emitOpen(llvm::Value* strm);
-    llvm::CallInst* emitClose(llvm::Value* strm);
-    llvm::CallInst* emitRead(llvm::Value* strm,llvm::Value* V2,llvm::Value* V3);
-    llvm::CallInst* emitWrite(llvm::Value* strm,llvm::Value*V2);
-
-  /// @}
-  /// @name Emitters for Math functions
-  /// @{
-  public:
-    llvm::CallInst* emitIsPInf(llvm::Value* V);
-    llvm::CallInst* emitIsNInf(llvm::Value* V);
-    llvm::CallInst* emitIsNan(llvm::Value* V);
-    llvm::CallInst* emitTrunc(llvm::Value* V);
-    llvm::CallInst* emitRound(llvm::Value* V);
-    llvm::CallInst* emitFloor(llvm::Value* V);
-    llvm::CallInst* emitCeiling(llvm::Value* V);
-    llvm::CallInst* emitLogE(llvm::Value* V);
-    llvm::CallInst* emitLog2(llvm::Value* V);
-    llvm::CallInst* emitLog10(llvm::Value* V);
-    llvm::CallInst* emitSquareRoot(llvm::Value* V);
-    llvm::CallInst* emitCubeRoot(llvm::Value* V);
-    llvm::CallInst* emitFactorial(llvm::Value* V);
-    llvm::CallInst* emitPower(llvm::Value* V1,llvm::Value*V2);
-    llvm::CallInst* emitRoot(llvm::Value* V1,llvm::Value*V2);
-    llvm::CallInst* emitGCD(llvm::Value* V1,llvm::Value*V2);
-    llvm::CallInst* emitLCM(llvm::Value* V1,llvm::Value*V2);
-
-  /// @}
-  /// @name Other miscellaneous functions
-  /// @{
-  public:
-
-    /// Return the unique ID of the specified basic
-    /// block for uses that take the address of it.
-    llvm::Constant *getIndirectGotoBlockNumber(llvm::BasicBlock *BB);
-    
-    /// Get (and potentially lazily create) the indirect
-    /// goto block.
-    llvm::BasicBlock *getIndirectGotoBlock();
-    
-    /// Zero the elements of DestPtr.
-    void EmitAggregateZero(llvm::Value *DestPtr);
-                           
-    /// Emit an unconditional branch to the specified basic block, running 
-    /// cleanups if the branch exits scopes.  The argument specify
-    /// how to handle these cleanups.
-    void EmitBranchInternal(llvm::BasicBlock *Dest, bool IsExceptionEdge);
-
-    /// Add the specified unconditional branch to the fixup list for the 
-    /// outermost exception scope, merging it if there is already a fixup that 
-    /// works.
-    void AddBranchFixup(llvm::BranchInst *BI, bool isExceptionEdge);
-
-  /// @}
-  /// @name Data Members
-  /// @{
-  protected:
-    BlockStack blocks;              ///< The stack of nested blocks 
-    BranchList breaks;              ///< The list of breaks to fix up later
-    BranchList continues;           ///< The list of continues to fix up later
-    llvm::Module *TheModule;        ///< The module that we are compiling into.
-    llvm::Function * TheFunction;   ///< The function we're constructing
-    llvm::BasicBlock* TheEntryBlock;///< The function's entry block
-    llvm::BasicBlock* TheExitBlock; ///< The function's exit (return) block
-    llvm::Instruction* EntryInsertionPoint; ///< Insertion point for entry stuff
-    llvm::BasicBlock* TheBlock;     ///< The current block we're building
-  /// @}
-};
-
-extern LLVMEmitter* new_LLVMEmitter();
-
-} // end hlvm namespace
-
-#endif
diff --git a/hlvm/hlvm/CodeGen/LLVMGenerator.cpp b/hlvm/hlvm/CodeGen/LLVMGenerator.cpp
deleted file mode 100644
index 1dd9069..0000000
--- a/hlvm/hlvm/CodeGen/LLVMGenerator.cpp
+++ /dev/null
@@ -1,2147 +0,0 @@
-//===-- HLVM to LLVM Code Generator -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/CodeGen/LLVMGenerator.cpp
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the implementation of the HLVM -> LLVM Code Generator
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/CodeGen/LLVMGenerator.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/Documentation.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/Pass/Pass.h>
-#include <hlvm/CodeGen/LLVMEmitter.h>
-#include <llvm/Linker.h>
-#include <llvm/PassManager.h>
-#include <llvm/Analysis/LoadValueNumbering.h>
-#include <llvm/Analysis/LoopPass.h>
-#include <llvm/Analysis/Verifier.h>
-#include <llvm/Assembly/Parser.h>
-#include <llvm/Bitcode/ReaderWriter.h>
-#include <llvm/Target/TargetData.h>
-#include <llvm/Transforms/IPO.h>
-#include <llvm/Transforms/Scalar.h>
-#include <llvm/Analysis/Dominators.h>
-#include <llvm/Assembly/PrintModulePass.h>
-#include <llvm/Support/CommandLine.h>
-
-namespace llvm {
-  void dump(llvm::Value* V) {
-    V->dump();
-  }
-  void dumpType(llvm::Type* T) {
-    T->dump();
-  }
-}
-
-namespace 
-{
-
-using namespace hlvm;
-
-class LLVMGeneratorPass : public hlvm::Pass
-{
-  LLVMEmitter* em;
-  typedef std::map<const hlvm::Operator*,llvm::Value*> OperandMap;
-  typedef std::map<const hlvm::Block*,llvm::BasicBlock*> BlockMap;
-  typedef std::map<const hlvm::Operator*,llvm::BasicBlock*> LoopMap;
-  typedef std::map<const hlvm::Block*,llvm::Instruction*> ResultsMap;
-  typedef std::map<const hlvm::Variable*,llvm::Value*> VariableMap;
-  typedef std::map<const hlvm::AutoVarOp*,llvm::Value*> AutoVarMap;
-  typedef std::map<const hlvm::Constant*,llvm::Constant*> ConstantMap;
-  typedef std::map<const hlvm::Function*,llvm::Function*> FunctionMap;
-  ModuleList modules;           ///< The list of modules we construct
-  OperandMap operands;          ///< The current list of instruction operands
-  BlockMap enters;              ///< Map of Block to entry BasicBlock
-  BlockMap exits;               ///< Map of Block to exit BasicBlock
-  BlockStack blocks;            ///< The stack of blocks we're constructing
-  BranchList breaks;            ///< The list of break instructions to fix up
-  BranchList continues;         ///< The list of continue instructions to fix up
-  VariableMap gvars;            ///< Map of HLVM -> LLVM gvars
-  AutoVarMap lvars;             ///< Map of HLVM -> LLVM auto vars
-  llvm::TypeSymbolTable ltypes; ///< The cached LLVM types we've generated
-  ConstantMap consts;           ///< The cached LLVM constants we've generated
-  FunctionMap funcs;            ///< The cached LLVM constants we've generated
-  const AST* ast;               ///< The current Tree we're traversing
-  const Bundle* bundle;         ///< The current Bundle we're traversing
-  const hlvm::Function* function;  ///< The current Function we're traversing
-  const Block* block;           ///< The current Block we're traversing
-  std::vector<llvm::Function*> progs; ///< The list of programs to emit
-
-  public:
-    LLVMGeneratorPass(const AST* tree)
-      : Pass(0,Pass::PreAndPostOrderTraversal), em(),
-      modules(), operands(), blocks(), breaks(), 
-      continues(),
-      gvars(), lvars(), ltypes(), consts(), funcs(),
-      ast(tree), bundle(0), function(0), block(0)
-      { 
-        em = new_LLVMEmitter();
-      }
-    ~LLVMGeneratorPass() { }
-
-  /// Conversion functions
-  const llvm::Type* getType(const hlvm::Type* ty);
-  inline const llvm::Type* getFirstClassType(const hlvm::Type* ty);
-  llvm::Constant* getConstant(const hlvm::Constant* C);
-  llvm::Value* getVariable(const hlvm::Variable* V);
-  llvm::Function* getFunction(const hlvm::Function* F);
-  llvm::Argument* getArgument(const hlvm::Argument* arg);
-  inline llvm::GlobalValue::LinkageTypes getLinkageTypes(LinkageKinds lk);
-  inline std::string getLinkageName(const Linkable* li);
-  inline llvm::Value* getReferent(hlvm::GetOp* r);
-  inline llvm::Value* toBoolean(llvm::Value* op);
-  inline llvm::Value* ptr2Value(llvm::Value* op);
-  inline llvm::Value* coerce(llvm::Value* op);
-  inline void pushOperand(llvm::Value* v, const Operator* op);
-  inline llvm::Value* popOperand(const Operator*op);
-  inline llvm::Value* popOperandAsBlock(
-    const Operator* op, const std::string&,
-    llvm::BasicBlock*& entry_block, llvm::BasicBlock*& exit_block);
-  inline llvm::Value* popOperandAsCondition(
-    const Operator* op, const std::string&,
-    llvm::BasicBlock*& entry_block, llvm::BasicBlock*& exit_block);
-  inline llvm::BasicBlock* newBlock(const std::string& name);
-  inline llvm::BasicBlock* pushBlock(const std::string& name);
-  inline llvm::BasicBlock* popBlock(llvm::BasicBlock* curBlock);
-  inline bool hasResult(hlvm::Block* B) const;
-  llvm::AllocaInst* getOperatorResult(Operator* op, const std::string& name);
-  llvm::Value* getBlockResult(Block* blk);
-  inline void branchIfNotTerminated(
-    llvm::BasicBlock* to, llvm::BasicBlock* from);
-
-  inline void startNewFunction(llvm::Function* f);
-
-  /// Generator
-  template <class NodeClass>
-  inline void gen(NodeClass *nc);
-
-  void genProgramLinkage();
-
-  virtual void handleInitialize(AST* tree);
-  virtual void handle(Node* n,Pass::TraversalKinds mode);
-  virtual void handleTerminate();
-
-  inline llvm::Module* linkModules();
-};
-
-std::string
-LLVMGeneratorPass::getLinkageName(const Linkable* lk)
-{
-  // if (lk->isProgram())
-    // return std::string("_hlvm_entry_") + lk->getName();
-  // FIXME: This needs to incorporate the bundle name
-  return lk->getName();
-}
-
-const llvm::Type*
-LLVMGeneratorPass::getType(const hlvm::Type* ty)
-{
-  // First, lets see if its cached already
-  const llvm::Type* result = ltypes.lookup(ty->getName());
-  if (result)
-    return result;
-
-  // Okay, we haven't seen this type before so let's construct it
-  switch (ty->getID()) {
-    case BooleanTypeID:            result = llvm::Type::Int1Ty; break;
-    case CharacterTypeID:          result = llvm::Type::Int32Ty; break;
-    case AnyTypeID:
-      hlvmNotImplemented("Any Type");
-      break;
-    case StringTypeID:              
-      result = llvm::PointerType::get(llvm::Type::Int8Ty);
-      break;
-    case EnumerationTypeID:
-      result = llvm::Type::Int32Ty;
-      break;
-    case IntegerTypeID:
-    {
-      const hlvm::IntegerType* IT = llvm::cast<hlvm::IntegerType>(ty);
-      uint16_t bits = IT->getBits();
-      if (bits <= 8)
-        result = (IT->isSigned() ? llvm::Type::Int8Ty : llvm::Type::Int8Ty);
-      else if (bits <= 16)
-        result = (IT->isSigned() ? llvm::Type::Int16Ty : llvm::Type::Int16Ty);
-      else if (bits <= 32)
-        result = (IT->isSigned() ? llvm::Type::Int32Ty : llvm::Type::Int32Ty);
-      else if (bits <= 64)
-        result = (IT->isSigned() ? llvm::Type::Int64Ty : llvm::Type::Int64Ty);
-      else if (bits <= 128)
-        hlvmNotImplemented("128-bit integer");
-      else
-        hlvmNotImplemented("arbitrary precision integer");
-      break;
-    }
-    case RangeTypeID:
-    {
-      const RangeType* RT = llvm::cast<hlvm::RangeType>(ty);
-      if (RT->getMin() < 0) {
-        if (RT->getMin() >= SHRT_MIN && RT->getMax() <= SHRT_MAX)
-          return llvm::Type::Int16Ty;
-        else if (RT->getMin() >= INT_MIN && RT->getMax() <= INT_MAX)
-          return llvm::Type::Int32Ty;
-        else
-          return llvm::Type::Int64Ty;
-      } else {
-        if (RT->getMax() <= USHRT_MAX)
-          return llvm::Type::Int16Ty;
-        else if (RT->getMax() <= UINT_MAX)
-          return llvm::Type::Int32Ty;
-        else
-          return llvm::Type::Int64Ty;
-      }
-    }
-    case RationalTypeID:
-      hlvmNotImplemented("RationalType");
-      break;
-    case RealTypeID:
-    {
-      const RealType *RT = llvm::cast<hlvm::RealType>(ty);
-      uint16_t bits = RT->getBits();
-      if (bits <= 32)
-        result = llvm::Type::FloatTy;
-      else if (bits <= 64)
-        result = llvm::Type::DoubleTy;
-      else
-        hlvmNotImplemented("arbitrary precision real");
-      break;
-    }
-    case TextTypeID:
-      result = em->getTextType();
-      break;
-    case StreamTypeID: 
-      result = em->getStreamType();
-      break;
-    case BufferTypeID: 
-      result = em->getBufferType();
-      break;
-    case PointerTypeID: 
-    {
-      const hlvm::Type* hElemType = 
-        llvm::cast<hlvm::PointerType>(ty)->getElementType();
-      const llvm::Type* lElemType = getType(hElemType);
-      result = llvm::PointerType::get(lElemType);
-
-      // If the element type is opaque then we need to add a type name for this
-      // pointer type because all opaques are unique unless named similarly.
-      if (llvm::isa<llvm::OpaqueType>(lElemType))
-        em->AddType(result, ty->getName());
-      break;
-    }
-    case VectorTypeID: {
-      const hlvm::VectorType* VT = llvm::cast<hlvm::VectorType>(ty);
-      const llvm::Type* elemType = getType(VT->getElementType());
-      result = llvm::ArrayType::get(elemType, VT->getSize());
-      break;
-    }
-    case ArrayTypeID: {
-      const hlvm::ArrayType* AT = llvm::cast<hlvm::ArrayType>(ty);
-      const llvm::Type* elemType = getType(AT->getElementType());
-      std::vector<const llvm::Type*> Fields;
-      Fields.push_back(llvm::Type::Int32Ty);
-      Fields.push_back(llvm::PointerType::get(elemType));
-      result = llvm::StructType::get(Fields);
-      break;
-    }
-    case StructureTypeID: {
-      const hlvm::StructureType* ST = llvm::cast<hlvm::StructureType>(ty);
-      std::vector<const llvm::Type*> Fields;
-      for (StructureType::const_iterator I = ST->begin(), E = ST->end(); 
-           I != E; ++I)
-        Fields.push_back(getType((*I)->getType()));
-      result = llvm::StructType::get(Fields);
-      break;
-    }
-    case SignatureTypeID:
-    {
-      TypeList params;
-      const SignatureType* st = llvm::cast<SignatureType>(ty);
-      // Now, push the arguments onto the argument list
-      for (SignatureType::const_iterator I = st->begin(), E = st->end(); 
-           I != E; ++I)
-        params.push_back(getType((*I)->getType()));
-      // Get the Result Type
-      const llvm::Type* resultTy = getType(st->getResultType());
-      result = 
-        em->getFunctionType(st->getName(), resultTy, params, st->isVarArgs());
-      break;
-    }
-    case OpaqueTypeID: {
-      return llvm::OpaqueType::get();
-      break;
-    }
-    default:
-      hlvmDeadCode("Invalid type code");
-      break;
-  }
-  if (result)
-    ltypes.insert(ty->getName(),result);
-  return result;
-}
-
-const llvm::Type*
-LLVMGeneratorPass::getFirstClassType(const hlvm::Type* ty)
-{
-  const llvm::Type* Ty = getType(ty);
-  if (!Ty->isFirstClassType())
-    return llvm::PointerType::get(Ty);
-  return Ty;
-}
-
-llvm::Constant*
-LLVMGeneratorPass::getConstant(const hlvm::Constant* C)
-{
-  hlvmAssert(C!=0);
-  hlvmAssert(C->isConstantValue());
-
-  // First, lets see if its cached already
-  ConstantMap::iterator I = 
-    consts.find(const_cast<hlvm::Constant*>(C));
-  if (I != consts.end())
-    return I->second;
-
-  const hlvm::Type* hType = C->getType();
-  const llvm::Type* lType = getType(hType);
-  llvm::Constant* result = 0;
-  switch (C->getID()) 
-  {
-    case ConstantBooleanID:
-    {
-      const ConstantBoolean* CI = llvm::cast<const ConstantBoolean>(C);
-      result = llvm::ConstantInt::get(llvm::Type::Int1Ty, CI->getValue());
-      break;
-    }
-    case ConstantCharacterID:
-    {
-      const ConstantCharacter* CE = llvm::cast<ConstantCharacter>(C);
-      const std::string& cVal = CE->getValue();
-      hlvmAssert(!cVal.empty() && "Empty constant character?");
-      uint32_t val = 0;
-      if (cVal[0] == '#') {
-        const char* startptr = &cVal.c_str()[1];
-        char* endptr = 0;
-        val = strtoul(startptr,&endptr,16);
-        hlvmAssert(startptr != endptr);
-      } else {
-        val = cVal[0];
-      }
-      result = em->getUVal(llvm::Type::Int32Ty,val);
-      break;
-    }
-    case ConstantEnumeratorID:
-    {
-      const ConstantEnumerator* CE = llvm::cast<ConstantEnumerator>(C);
-      const EnumerationType* eType = llvm::cast<EnumerationType>(C->getType());
-      uint64_t val = 0;
-      bool gotEnumValue = eType->getEnumValue( CE->getValue(), val );
-      hlvmAssert(gotEnumValue && "Enumerator not valid for type");
-      result = em->getUVal(lType,val);
-      break;
-    }
-    case ConstantIntegerID:
-    {
-      const ConstantInteger* CI = llvm::cast<const ConstantInteger>(C);
-      if (const hlvm::IntegerType* iType = 
-          llvm::dyn_cast<hlvm::IntegerType>(hType)) {
-        if (iType->isSigned()) {
-          int64_t val = strtoll(CI->getValue().c_str(),0,CI->getBase());
-          result = em->getSVal(lType,val);
-        }
-        else {
-          uint64_t val = strtoull(CI->getValue().c_str(),0,CI->getBase());
-          result = em->getUVal(lType,val);
-        }
-      } else if (const RangeType* rType = llvm::dyn_cast<RangeType>(hType)) {
-        int64_t val = strtoll(CI->getValue().c_str(),0,CI->getBase());
-        result = em->getSVal(lType,val);
-      }
-      break;
-    }
-    case ConstantRealID:
-    {
-      const ConstantReal* CR = llvm::cast<const ConstantReal>(C);
-      double  val = strtod(CR->getValue().c_str(),0);
-      result = llvm::ConstantFP::get(lType, val);
-      break;
-    }
-    case ConstantStringID:
-    {
-      const hlvm::ConstantString* CT = llvm::cast<hlvm::ConstantString>(C);
-      llvm::Constant* CA = llvm::ConstantArray::get(CT->getValue(), true);
-      llvm::GlobalVariable* GV  = em->NewGConst(CA->getType(), CA, C->getName());
-      std::vector<llvm::Constant*> indices;
-      indices.push_back(llvm::Constant::getNullValue(llvm::Type::Int32Ty));
-      indices.push_back(llvm::Constant::getNullValue(llvm::Type::Int32Ty));
-      result = llvm::ConstantExpr::getGetElementPtr(GV, &indices[0], 2);
-      break;
-    }
-    case ConstantPointerID:
-    {
-      const hlvm::ConstantPointer* hCT = llvm::cast<hlvm::ConstantPointer>(C);
-      const hlvm::Constant* hC = hCT->getValue();
-      const llvm::Type* Ty = getType(hC->getType());
-      llvm::Constant* Init = getConstant(hC);
-      result = em->NewGConst(Ty,Init, hCT->getName());
-      break;
-    }
-    case ConstantArrayID:
-    {
-      const hlvm::ConstantArray* hCA = llvm::cast<hlvm::ConstantArray>(C);
-      const llvm::Type* elemType = getType(hCA->getElementType());
-      const llvm::ArrayType* lAT = llvm::ArrayType::get(elemType,hCA->size());
-      std::vector<llvm::Constant*> elems;
-      for (hlvm::ConstantArray::const_iterator I = hCA->begin(), E = hCA->end();
-           I != E; ++I )
-        elems.push_back(getConstant(*I));
-      llvm::Constant* lCA = llvm::ConstantArray::get(lAT,elems);
-      llvm::GlobalVariable* lGV = em->NewGConst(lAT,lCA,hCA->getName()+"_init");
-      llvm::Constant* lCE = em->getFirstElement(lGV);
-      const llvm::StructType* Ty = 
-        llvm::cast<llvm::StructType>(getType(hCA->getType()));
-      elems.clear();
-      elems.push_back(em->getUVal(llvm::Type::Int32Ty,hCA->size()));
-      elems.push_back(lCE);
-      result = llvm::ConstantStruct::get(Ty,elems);
-      break;
-    }
-    case ConstantVectorID:
-    {
-      const hlvm::ConstantVector* hCA = llvm::cast<hlvm::ConstantVector>(C);
-      const llvm::ArrayType* Ty =
-        llvm::cast<llvm::ArrayType>(getType(hCA->getType()));
-      std::vector<llvm::Constant*> elems;
-      for (hlvm::ConstantArray::const_iterator I = hCA->begin(), E = hCA->end();
-           I != E; ++I )
-        elems.push_back(getConstant(*I));
-      result = llvm::ConstantArray::get(Ty,elems);
-      break;
-    }
-    case ConstantStructureID:
-    {
-      const ConstantStructure* hCS = llvm::cast<ConstantStructure>(C);
-      const llvm::StructType* Ty = 
-        llvm::cast<llvm::StructType>(getType(hCS->getType()));
-      std::vector<llvm::Constant*> fields;
-      for (ConstantStructure::const_iterator I = hCS->begin(), E = hCS->end(); 
-           I != E; ++I)
-        fields.push_back(getConstant(*I));
-      result = llvm::ConstantStruct::get(Ty,fields);
-      break;
-    }
-    case ConstantContinuationID:
-    {
-      const ConstantContinuation* hCC = llvm::cast<ConstantContinuation>(C);
-      const llvm::StructType* Ty = 
-        llvm::cast<llvm::StructType>(getType(hCC->getType()));
-      std::vector<llvm::Constant*> fields;
-      for (ConstantStructure::const_iterator I = hCC->begin(), E = hCC->end(); 
-           I != E; ++I)
-        fields.push_back(getConstant(*I));
-      // FIXME: Need to add extra fields required for Continuation
-      result = llvm::ConstantStruct::get(Ty,fields);
-      break;
-    }
-    default:
-      break;
-  }
-  if (result)
-    consts[const_cast<hlvm::Constant*>(C)] = result;
-  else
-    hlvmDeadCode("Didn't find constant");
-  return result;
-}
-
-llvm::Value*
-LLVMGeneratorPass::getVariable(const hlvm::Variable* V) 
-{
-  hlvmAssert(V != 0);
-  hlvmAssert(V->is(VariableID));
-
-  // First, lets see if its cached already
-  VariableMap::iterator I = 
-    gvars.find(const_cast<hlvm::Variable*>(V));
-  if (I != gvars.end())
-    return I->second;
-
-  // Not found, create it
-  llvm::Constant* Initializer = 0;
-  if (V->hasInitializer())
-    Initializer = getConstant(V->getInitializer());
-  else
-    Initializer = llvm::Constant::getNullValue(getType(V->getType()));
-
-  llvm::Value* gv = em->NewGVar(
-    /*Ty=*/ getType(V->getType()),
-    /*Linkage=*/ getLinkageTypes(V->getLinkageKind()), 
-    /*Initializer=*/ Initializer,
-    /*Name=*/ getLinkageName(V)
-  );
-  gvars[V] = gv;
-  return gv;
-}
-
-llvm::Function*
-LLVMGeneratorPass::getFunction(const hlvm::Function* F)
-{
-  hlvmAssert(F != 0);
-  hlvmAssert(F->is(FunctionID));
-
-  // First, lets see if its cached already
-  FunctionMap::iterator I = funcs.find(const_cast<hlvm::Function*>(F));
-  if (I != funcs.end())
-    return I->second;
-
-  return funcs[F] = em->NewFunction(
-    /*Type=*/ llvm::cast<llvm::FunctionType>(getType(F->getType())),
-    /*Linkage=*/ getLinkageTypes(F->getLinkageKind()), 
-    /*Name=*/ getLinkageName(F)
-  );
-}
-
-llvm::Argument*
-LLVMGeneratorPass::getArgument(const hlvm::Argument* arg)
-{
-  unsigned argNum = arg->getArgNum();
-  hlvmAssert(argNum != 0);
-  argNum--;
-  hlvm::Function* hF = llvm::cast<hlvm::Function>(arg->getParent());
-  llvm::Function* lF = getFunction(hF);
-  llvm::Function::ArgumentListType& arglist = lF->getArgumentList();
-  // Bump the argument number to accommodate the first argument being
-  // a pointer to the result, if the type of the result is not first-class.
-  if (!getType(hF->getResultType())->isFirstClassType())
-    argNum++;
-  llvm::Function::arg_iterator I = lF->arg_begin(), E = lF->arg_end();
-  for (; I != E && argNum; ++I, --argNum)
-    ;
-  hlvmAssert(I != E);
-  return I;
-}
-
-llvm::GlobalValue::LinkageTypes
-LLVMGeneratorPass::getLinkageTypes(LinkageKinds lk)
-{
-  switch (lk) {
-    case hlvm::ExternalLinkage : return llvm::GlobalValue::ExternalLinkage; 
-    case hlvm::LinkOnceLinkage : return llvm::GlobalValue::LinkOnceLinkage; 
-    case hlvm::WeakLinkage     : return llvm::GlobalValue::WeakLinkage; 
-    case hlvm::AppendingLinkage: return llvm::GlobalValue::AppendingLinkage; 
-    case hlvm::InternalLinkage : return llvm::GlobalValue::InternalLinkage; 
-    default:
-      hlvmAssert(!lk && "Bad LinkageKinds");
-  }
-  return llvm::GlobalValue::InternalLinkage;
-}
-
-llvm::Value* 
-LLVMGeneratorPass::getReferent(hlvm::GetOp* r)
-{
-  const hlvm::Value* referent = r->getReferent();
-  llvm::Value* v = 0;
-  if (llvm::isa<AutoVarOp>(referent)) {
-    AutoVarMap::const_iterator I = 
-      lvars.find(llvm::cast<AutoVarOp>(referent));
-    hlvmAssert(I != lvars.end());
-    v = I->second;
-  } else if (llvm::isa<ConstantValue>(referent)) {
-    const hlvm::ConstantValue* cval = llvm::cast<ConstantValue>(referent);
-    llvm::Constant* C = getConstant(cval);
-    hlvmAssert(C && "Can't generate constant?");
-    v = C;
-  } else if (llvm::isa<Variable>(referent)) {
-    llvm::Value* V = getVariable(llvm::cast<hlvm::Variable>(referent));
-    hlvmAssert(V && "Variable not found?");
-    v = V;
-  } else if (llvm::isa<hlvm::Function>(referent)) {
-    llvm::Function* F = getFunction(llvm::cast<hlvm::Function>(referent));
-    hlvmAssert(F && "Function not found?");
-    v = F;
-  } else if (llvm::isa<hlvm::Argument>(referent)) {
-    llvm::Argument* arg = getArgument(llvm::cast<hlvm::Argument>(referent));
-    hlvmAssert(arg && "Argument not found?");
-    v = arg;
-  } else
-    hlvmDeadCode("Referent not a linkable or autovar?");
-  return v;
-}
-
-llvm::Value* 
-LLVMGeneratorPass::toBoolean(llvm::Value* V)
-{
-  const llvm::Type* Ty = V->getType();
-  if (Ty == llvm::Type::Int1Ty)
-    return V;
-
-  if (Ty->isInteger() || Ty->isFloatingPoint()) {
-    llvm::Constant* C = llvm::Constant::getNullValue(V->getType());
-    return em->emitNE(V,C);
-  } else if (llvm::isa<llvm::GlobalValue>(V)) {
-    // GlobalValues always have non-zero constant address values, so always true
-    return em->getTrue(); 
-  }
-  hlvmAssert(!"Don't know how to convert V into bool");
-  return em->getTrue();
-}
-
-llvm::Value* 
-LLVMGeneratorPass::ptr2Value(llvm::Value* V)
-{
-  if (!llvm::isa<llvm::PointerType>(V->getType()))
-    return V;
-
-  return em->emitLoad(V,"ptr2Value");
-}
-
-void 
-LLVMGeneratorPass::pushOperand(llvm::Value* v, const Operator* op)
-{
-  hlvmAssert(v && "No value to push for operand?");
-  hlvmAssert(op && "No operator for value to be pushed?");
-  operands[op] = v;
-}
-
-llvm::Value*
-LLVMGeneratorPass::popOperand(const Operator* op)
-{
-  hlvmAssert(op && "No operator to pop?");
-  OperandMap::iterator I = operands.find(op);
-  if (I == operands.end())
-    return 0;
-  llvm::Value* result = I->second;
-  operands.erase(I);
-  return result;
-}
-
-llvm::Value*
-LLVMGeneratorPass::popOperandAsBlock(
-  const Operator* op, const std::string& name,
-  llvm::BasicBlock*& entry_block, llvm::BasicBlock*& exit_block)
-{
-  llvm::Value* result = 0;
-  llvm::Value* operand = popOperand(op);
-
-  if (const hlvm::Block* B = llvm::dyn_cast<hlvm::Block>(op)) {
-    // Get the corresponding entry and exit blocks for B1
-    entry_block = enters[B];
-    hlvmAssert(entry_block && "No entry block?");
-    exit_block = exits[B];
-    hlvmAssert(exit_block && "No exit block?");
-    // Set the name of the entry block to match its purpose here
-    if (entry_block != exit_block) {
-      entry_block->setName(name + "_entry");
-      exit_block->setName(name + "_exit");
-    } else {
-      entry_block->setName(name);
-    }
-    result = operand;
-  } else {
-    hlvmAssert(operand && "No operand for operator?");
-    entry_block = exit_block = new llvm::BasicBlock(name,em->getFunction()); 
-    llvm::Value* V = operand;
-    hlvmAssert(V && "No value for operand?");
-    if (llvm::Instruction* ins = llvm::dyn_cast<llvm::Instruction>(V)) {
-      ins->removeFromParent();
-      entry_block->getInstList().push_back(ins);
-      result = ins;
-    } else {
-      // Its just a value or a constant or something, just cast it to itself
-      // so we can get its value
-      result = 
-        new llvm::BitCastInst(V, V->getType(), "", entry_block);
-    }
-  }
-
-  if (result && result->getType() != llvm::Type::VoidTy)
-    result->setName(name + "_rslt");
-  return result;
-}
-
-llvm::Value*
-LLVMGeneratorPass::popOperandAsCondition(
-  const Operator* op, const std::string& name,
-  llvm::BasicBlock*& entry_block, llvm::BasicBlock*& exit_block)
-{
-  llvm::Value* result = 
-    popOperandAsBlock(op,name+"_cond",entry_block,exit_block);
-  hlvmAssert(result);
-  hlvmAssert(result->getType() == llvm::Type::Int1Ty);
-
-  return result;
-}
-
-llvm::AllocaInst* 
-LLVMGeneratorPass::getOperatorResult(Operator* op, const std::string& name)
-{
-  llvm::AllocaInst* result = 0;
-  if (!llvm::isa<Block>(op->getParent())) {
-    const llvm::Type* Ty = getType(op->getType());
-    result = em->NewAutoVar(Ty, name + "_var");
-    em->emitAssign(result,em->getNullValue(Ty));
-  }
-  return result;
-}
-
-llvm::Value* 
-LLVMGeneratorPass::getBlockResult(Block* B)
-{
-  if (B->getResult() && !em->getBlockTerminator()) {
-    llvm::Value* result = operands[B];
-    if (llvm::isa<llvm::LoadInst>(result))
-      result = llvm::cast<llvm::LoadInst>(result)->getOperand(0);
-    result = em->emitLoad(result,em->getBlockName()+"_result");
-    pushOperand(result,B);
-    return result;
-  }
-  return 0;
-}
-
-void 
-LLVMGeneratorPass::branchIfNotTerminated(
-  llvm::BasicBlock* to, llvm::BasicBlock* from )
-{
-  if (!from->getTerminator())
-    new llvm::BranchInst(to,from);
-}
-
-void
-LLVMGeneratorPass::startNewFunction(llvm::Function* F)
-{
-  em->StartFunction(F);
-  // Clear the function related variables
-  operands.clear();
-  enters.clear();
-  exits.clear();
-  blocks.clear();
-  lvars.clear();
-}
-
-template<> void
-LLVMGeneratorPass::gen(AutoVarOp* av)
-{
-  // Emit an automatic variable. Note that this is inserted into the entry 
-  // block, not the current block, for efficiency. This makes automatic 
-  // variables zero cost as well as safeguarding against stack growth if the
-  // alloca is in a block that is in a loop.
-  const llvm::Type* elemType = getType(av->getType());
-  llvm::Value* alloca = em->NewAutoVar(elemType,av->getName()); 
-  llvm::Value* init = 0;
-  if (av->hasInitializer())
-    init = popOperand(av->getInitializer());
-  else
-    init = em->getNullValue(elemType);
-  em->emitAssign(alloca,init);
-  pushOperand(alloca,av);
-  lvars[av] = alloca;
-}
-
-
-template<> void
-LLVMGeneratorPass::gen(NegateOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  hlvmAssert((operand->getType()->isInteger() || 
-            operand->getType()->isFloatingPoint()) && 
-            "Can't negate non-numeric");
-  pushOperand(em->emitNeg(operand),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ComplementOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  operand = ptr2Value(operand);
-  const llvm::Type* lType = operand->getType();
-  hlvmAssert(lType->isInteger() && "Can't complement non-integral type");
-  pushOperand(em->emitCmpl(operand),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(PreIncrOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  const llvm::Type* lType = operand->getType();
-  hlvmAssert(llvm::isa<llvm::PointerType>(lType));
-  const llvm::PointerType* PT = llvm::cast<llvm::PointerType>(lType);
-  lType = PT->getElementType();
-  llvm::LoadInst* load = em->emitLoad(operand,"preincr");
-  if (lType->isFloatingPoint()) {
-    llvm::Constant* one = em->getFPOne(lType);
-    llvm::BinaryOperator* add = em->emitAdd(load,one); 
-    pushOperand(em->emitStore(add,operand),op);
-  } else if (lType->isInteger()) {
-    llvm::Constant* one = em->getOne(lType);
-    llvm::BinaryOperator* add = em->emitAdd(load,one); 
-    pushOperand(em->emitStore(add,operand),op);
-  } else {
-    hlvmAssert(!"PreIncrOp on non-numeric");
-  }
-}
-
-template<> void
-LLVMGeneratorPass::gen(PreDecrOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  const llvm::Type* lType = operand->getType();
-  hlvmAssert(llvm::isa<llvm::PointerType>(lType));
-  const llvm::PointerType* PT = llvm::cast<llvm::PointerType>(lType);
-  lType = PT->getElementType();
-  llvm::LoadInst* load = em->emitLoad(operand,"predecr");
-  if (lType->isFloatingPoint()) {
-    llvm::Constant* one = em->getFPOne(lType);
-    llvm::BinaryOperator* sub = em->emitSub(load,one);
-    pushOperand(em->emitStore(sub,operand),op);
-  } else if (lType->isInteger()) {
-    llvm::Constant* one = em->getOne(lType);
-    llvm::BinaryOperator* sub = em->emitSub(load, one);
-    pushOperand(em->emitStore(sub,operand),op);
-  } else {
-    hlvmAssert(!"PreIncrOp on non-numeric");
-  }
-}
-
-template<> void
-LLVMGeneratorPass::gen(PostIncrOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  const llvm::Type* lType = operand->getType();
-  hlvmAssert(llvm::isa<llvm::PointerType>(lType));
-  const llvm::PointerType* PT = llvm::cast<llvm::PointerType>(lType);
-  lType = PT->getElementType();
-  llvm::LoadInst* load = em->emitLoad(operand,"postincr");
-  if (lType->isFloatingPoint()) {
-    llvm::Constant* one = em->getFPOne(lType);
-    llvm::BinaryOperator* add = em->emitAdd(load,one); 
-    em->emitStore(add,operand);
-    pushOperand(load,op);
-  } else if (lType->isInteger()) {
-    llvm::Constant* one = em->getOne(lType);
-    llvm::BinaryOperator* add = em->emitAdd(load,one); 
-    em->emitStore(add,operand);
-    pushOperand(load,op);
-  } else {
-    hlvmAssert(!"PostDecrOp on non-numeric");
-  }
-}
-
-template<> void
-LLVMGeneratorPass::gen(PostDecrOp* op)
-{
-  llvm::Value* operand = popOperand(op->getOperand(0)); 
-  const llvm::Type* lType = operand->getType();
-  hlvmAssert(llvm::isa<llvm::PointerType>(lType));
-  const llvm::PointerType* PT = llvm::cast<llvm::PointerType>(lType);
-  lType = PT->getElementType();
-  llvm::LoadInst* load = em->emitLoad(operand,"postdecr");
-  if (lType->isFloatingPoint()) {
-    llvm::Constant* one = em->getFPOne(lType);
-    llvm::BinaryOperator* sub = em->emitSub(load, one);
-    em->emitStore(sub,operand);
-    pushOperand(load,op);
-  } else if (lType->isInteger()) {
-    llvm::Constant* one = em->getOne(lType);
-    llvm::BinaryOperator* sub = em->emitSub(load, one);
-    em->emitStore(sub,operand);
-    pushOperand(load,op);
-  } else {
-    hlvmAssert(!"PostDecrOp on non-numeric");
-  }
-}
-
-template<> void
-LLVMGeneratorPass::gen(SizeOfOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0));
-  pushOperand(em->emitSizeOf(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ConvertOp* op)
-{
-  // Get the value to be converted
-  hlvm::Operator* op1 = op->getOperand(0);
-  // Get the type of the value to be converted
-  const hlvm::Type* srcTy = op1->getType();
-  // Get the llvm Value for the value to be converted
-  llvm::Value* v1 = popOperand(op1);
-  
-  // Get the target type
-  const hlvm::Type* tgtTy = op->getType();
-
-  // Get the source and target types as an llvm type
-  const llvm::Type* lsrcTy = getType(srcTy);
-  const llvm::Type* ltgtTy = getType(tgtTy);
-
-  // First, deal with the easy case of conversion of first class types. This
-  // can just be done with the LLVM cast operator
-  if (lsrcTy->isFirstClassType() && ltgtTy->isFirstClassType()) {
-    pushOperand(em->CastToType(v1, srcTy->isSigned(), ltgtTy, tgtTy->isSigned(),
-                               v1->getName() + "_converted"),op);
-    return;
-  }
-
-  // Okay, this isn't going to be pretty. HLVM gaurantees that an object of
-  // any type is coercible to any other type. The following code makes this
-  // happen.
-  switch (srcTy->getID()) 
-  {
-    default: // FIXME!!
-      hlvmNotImplemented("Conversion of non-first-class types");
-  }
-}
-
-template<> void
-LLVMGeneratorPass::gen(AddOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitAdd(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(SubtractOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitSub(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(MultiplyOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitMul(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(DivideOp* op)
-{
-  bool isSigned = 
-    op->getOperand(0)->getType()->isSigned() || 
-    op->getOperand(1)->getType()->isSigned();
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  if (isSigned)
-    pushOperand(em->emitSDiv(op1,op2),op);
-  else
-    pushOperand(em->emitUDiv(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ModuloOp* op)
-{
-  bool isSigned = 
-    op->getOperand(0)->getType()->isSigned() || 
-    op->getOperand(1)->getType()->isSigned();
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  if (isSigned)
-    pushOperand(em->emitSRem(op1,op2),op);
-  else
-    pushOperand(em->emitURem(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(BAndOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitBAnd(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(BOrOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitBOr(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(BXorOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitBXor(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(BNorOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitBNor(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(NotOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  pushOperand(em->emitNot(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(AndOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitAnd(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(OrOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitOr(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(NorOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitNor(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(XorOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitXor(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(EqualityOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitEQ(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(InequalityOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitNE(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LessThanOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitLT(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GreaterThanOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitLT(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GreaterEqualOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitGE(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LessEqualOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  op1 = ptr2Value(op1);
-  op2 = ptr2Value(op2);
-  pushOperand(em->emitLE(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(IsPInfOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitIsPInf(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(IsNInfOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitIsNInf(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(IsNanOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitIsNan(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(TruncOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitTrunc(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(RoundOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitRound(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(FloorOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitFloor(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(CeilingOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitCeiling(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LogEOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitLogE(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(Log2Op* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitLog2(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(Log10Op* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitLog10(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(SquareRootOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitSquareRoot(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(CubeRootOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitCubeRoot(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(FactorialOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  pushOperand(em->emitFactorial(op1),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(PowerOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  pushOperand(em->emitPower(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(RootOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  pushOperand(em->emitRoot(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GCDOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  pushOperand(em->emitGCD(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LCMOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-  pushOperand(em->emitLCM(op1,op2),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(SelectOp* op)
-{
-  // If none of the operands are blocks then we can use LLVM's select
-  // instruction to just switch out the result
-  if (!llvm::isa<Block>(op->getOperand(0)) &&
-    !llvm::isa<Block>(op->getOperand(1)) &&
-    !llvm::isa<Block>(op->getOperand(2)))
-  {
-    // Since HLVM only places on the operand stack things that are of LLVM
-    // first class type, we are safe to use select operator here.
-    llvm::Value* op1 = popOperand(op->getOperand(0)); 
-    llvm::Value* op2 = popOperand(op->getOperand(1)); 
-    llvm::Value* op3 = popOperand(op->getOperand(2)); 
-    hlvmAssert(op1->getType() == llvm::Type::Int1Ty);
-    hlvmAssert(op2->getType()->isFirstClassType());
-    hlvmAssert(op3->getType()->isFirstClassType());
-    pushOperand(em->emitSelect(op1,op2,op3,"select"),op);
-    return;
-  }
-
-  // Using the LLVM SelectInst won't work.  We must get each operand as a block 
-  // and use a branch instruction instead.
-
-  // Get the result of the select operator
-  llvm::AllocaInst* select_result = getOperatorResult(op,"select_result");
-
-  // Get the condition block
-  llvm::BasicBlock* cond_entry, *cond_exit;
-  llvm::Value* op1 = 
-  popOperandAsCondition(op->getOperand(0),"select",cond_entry,cond_exit);
-
-  // Branch the current block into the condition block
-  em->emitBranch(cond_entry); 
-
-  // Get the true case
-  llvm::BasicBlock *true_entry, *true_exit;
-  llvm::Value* op2 = 
-    popOperandAsBlock(op->getOperand(1),"select_true",true_entry,true_exit); 
-
-  if (select_result && op2)
-    new llvm::StoreInst(op2,select_result,true_exit);
-
-  // Get the false case
-  llvm::BasicBlock *false_entry, *false_exit;
-  llvm::Value* op3 = 
-    popOperandAsBlock(op->getOperand(2),"select_false",false_entry,false_exit); 
-
-  if (select_result && op3)
-    new llvm::StoreInst(op3,select_result,false_exit);
-
-  // Create the exit block
-  llvm::BasicBlock* select_exit = em->newBlock("select_exit");
-
-  // Branch the the true and false cases to the exit
-  branchIfNotTerminated(select_exit,true_exit);
-  branchIfNotTerminated(select_exit,false_exit);
-
-  // Finally, install the conditional branch
-  new llvm::BranchInst(true_entry,false_entry,op1,cond_exit);
-
-  if (select_result)
-    pushOperand(new llvm::LoadInst(select_result,"select_result",select_exit),op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(SwitchOp* op)
-{
-  llvm::Value* op1 = popOperand(op->getOperand(0)); 
-  llvm::Value* op2 = popOperand(op->getOperand(1)); 
-}
-
-template<> void
-LLVMGeneratorPass::gen(WhileOp* op)
-{
-  // Get the result of this while block, if there should be one
-  llvm::AllocaInst* while_result = getOperatorResult(op,"while_result");
-
-  // Get the condition block
-  llvm::BasicBlock* cond_entry, *cond_exit;
-  llvm::Value* op1 = 
-    popOperandAsCondition(op->getOperand(0),"while",cond_entry,cond_exit);
-
-  // Branch the current block into the condition block
-  em->emitBranch(cond_entry);
-
-  // Get the while loop's body
-  llvm::BasicBlock *body_entry, *body_exit;
-  llvm::Value* op2 = 
-    popOperandAsBlock(op->getOperand(1),"while_body",body_entry,body_exit); 
-
-  // Save the result of the while body, if there should be one
-  if (while_result && op2)
-    new llvm::StoreInst(op2,while_result,body_exit);
-
-  // Create the exit block
-  llvm::BasicBlock* while_exit = em->newBlock("while_exit");
-
-  // Branch the the body block back to the condition branch
-  branchIfNotTerminated(cond_entry,body_exit);
-
-  // Finally, install the conditional branch into the branch block
-  new llvm::BranchInst(body_entry,while_exit,op1,cond_exit);
-
-  // If there's a result, push it now
-  if (while_result)
-    pushOperand(new llvm::LoadInst(while_result,"while_result",while_exit),op);
-
-  // Fix up any break or continue operators
-  em->ResolveBreaks(while_exit);
-  em->ResolveContinues(cond_entry);
-}
-
-template<> void
-LLVMGeneratorPass::gen(UnlessOp* op)
-{
-  // Get the result of this unless block, if there should be one
-  llvm::AllocaInst* unless_result = getOperatorResult(op,"unless_result");
-
-  // Get the condition block
-  llvm::BasicBlock* cond_entry, *cond_exit;
-  llvm::Value* op1 = 
-    popOperandAsCondition(op->getOperand(0),"unless",cond_entry,cond_exit);
-
-  // Branch the current block into the condition block
-  em->emitBranch(cond_entry);
-
-  // Get the unless block's body
-  llvm::BasicBlock *body_entry, *body_exit;
-  llvm::Value* op2 = 
-    popOperandAsBlock(op->getOperand(1),"unless_body",body_entry,body_exit); 
-
-  // Save the result of the unless body, if there should be one
-  if (unless_result && op2)
-    new llvm::StoreInst(op2,unless_result,body_exit);
-
-  // Create the exit block
-  llvm::BasicBlock* unless_exit = em->newBlock("unless_exit");
-
-  // Branch the the body block back to the condition branch
-  branchIfNotTerminated(cond_entry,body_exit);
-
-  // Finally, install the conditional branch into the branch block
-  new llvm::BranchInst(unless_exit,body_entry,op1,cond_exit);
-
-  // If there's a result, push it now
-  if (unless_result)
-    pushOperand(
-      new llvm::LoadInst(unless_result,"unless_result",unless_exit),op);
-
-  // Fix up any break or continue operators
-  em->ResolveBreaks(unless_exit);
-  em->ResolveContinues(cond_entry);
-}
-
-template<> void
-LLVMGeneratorPass::gen(UntilOp* op)
-{
-  // Get the result of this until block, if there should be one
-  llvm::AllocaInst* until_result = getOperatorResult(op,"until_result");
-
-  // Get the condition block
-  llvm::BasicBlock* cond_entry, *cond_exit;
-  llvm::Value* op2 = 
-    popOperandAsCondition(op->getOperand(1),"until",cond_entry,cond_exit);
-
-  // Get the until block's body
-  llvm::BasicBlock *body_entry, *body_exit;
-  llvm::Value* op1 = 
-    popOperandAsBlock(op->getOperand(0),"until_body",body_entry,body_exit); 
-
-  // Save the result of the until body, if there should be one
-  if (until_result && op1)
-    new llvm::StoreInst(op1,until_result,body_exit);
-
-  // Branch the current block into the body block
-  em->emitBranch(body_entry);
-
-  // Branch the body block to the condition block
-  branchIfNotTerminated(cond_entry,body_exit);
-
-  // Create the exit block
-  llvm::BasicBlock* until_exit = em->newBlock("until_exit");
-
-  // Finally, install the conditional branch into condition block
-  new llvm::BranchInst(until_exit,body_entry,op2,cond_exit);
-
-  // If there's a result, push it now
-  if (until_result)
-    pushOperand(new llvm::LoadInst(until_result,"until_result",until_exit),op);
-
-  // Fix up any break or continue operators
-  em->ResolveBreaks(until_exit);
-  em->ResolveContinues(cond_entry);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LoopOp* op)
-{
-  // Get the result of this loop block, if there should be one
-  llvm::AllocaInst* loop_result = getOperatorResult(op,"loop_result");
-
-  // Get the start condition block
-  llvm::BasicBlock* start_cond_entry, *start_cond_exit;
-  llvm::Value* op1 = 
-    popOperandAsCondition(op->getOperand(0),"loop_start",
-      start_cond_entry,start_cond_exit);
-
-  // Branch the current block into the start condition block
-  em->emitBranch(start_cond_entry);
-
-  // Get the loop body
-  llvm::BasicBlock *body_entry, *body_exit;
-  llvm::Value* op2 = 
-    popOperandAsBlock(op->getOperand(1),"loop_body",body_entry,body_exit); 
-
-  // Save the result of the loop body, if there should be one
-  if (loop_result && op2)
-    new llvm::StoreInst(op2,loop_result,body_exit);
-
-  // Get the end condition block
-  llvm::BasicBlock* end_cond_entry, *end_cond_exit;
-  llvm::Value* op3 = 
-    popOperandAsCondition(op->getOperand(2),"loop_end",
-      end_cond_entry,end_cond_exit);
-
-  // Branch the loop body to the end condition block
-  branchIfNotTerminated(end_cond_entry,body_exit);
-
-  // Create the exit block
-  llvm::BasicBlock* loop_exit = em->newBlock("loop_exit");
-
-  // Install the conditional branches for start and end condition blocks
-  new llvm::BranchInst(body_entry,loop_exit,op1,start_cond_exit);
-  new llvm::BranchInst(start_cond_entry,loop_exit,op3,end_cond_exit);
-
-  // If there's a result, push it now
-  if (loop_result)
-    pushOperand(new llvm::LoadInst(loop_result,"loop_result",loop_exit),op);
-
-  // Fix up any break or continue operators
-  em->ResolveBreaks(loop_exit);
-  em->ResolveContinues(end_cond_entry);
-}
-
-template<> void
-LLVMGeneratorPass::gen(BreakOp* op)
-{
-  // Make sure the block result is stored
-  Block* B = llvm::cast<Block>(op->getContainingBlock());
-  getBlockResult(B);
-
-  // Just push a place-holder branch onto the breaks list so it can
-  // be fixed up later once we know the destination
-  llvm::BranchInst* brnch = em->emitBreak();
-  pushOperand(brnch,op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ContinueOp* op)
-{
-  // Make sure the block result is stored
-  Block* B = llvm::cast<Block>(op->getParent());
-  getBlockResult(B);
-
-  // Just push a place-holder branch onto the continues list so it can
-  // be fixed up later once we know the destination
-  llvm::BranchInst* brnch = em->emitContinue();
-  pushOperand(brnch,op);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ResultOp* r)
-{
-  // Get the result operand
-  llvm::Value* src = popOperand(r->getOperand(0));
-  if (llvm::isa<llvm::AllocaInst>(src))
-    src = em->emitLoad(src,src->getName() + "_load");
-
-  // Get the block this result applies to
-  hlvm::Block* B = llvm::cast<hlvm::Block>(r->getParent());
-  // Get the location into which we will store the result
-  llvm::Value* dest = operands[B];
-
-  // Assign the source to the destination
-  em->emitAssign(dest, src);
-}
-
-template<> void
-LLVMGeneratorPass::gen(ReturnOp* r)
-{
-  // First, if this function returns nothing (void) then just issue a void
-  // return instruction.
-  const hlvm::Type* resTy = function->getResultType();
-  if (resTy == 0) {
-    em->emitReturn(0);
-    return;
-  }
-
-  // If we get here then the function has a result. 
-  llvm::Value* result = operands[function->getBlock()];
-  em->emitReturn(result);
-}
-
-template<> void
-LLVMGeneratorPass::gen(CallOp* co)
-{
-  hlvm::Function* hFunc = co->getCalledFunction();
-  const SignatureType* sigTy = hFunc->getSignature();
-  // Set up the loop
-  CallOp::iterator I = co->begin();
-  CallOp::iterator E = co->end();
-
-  // Get the function (first operand)
-  llvm::Value* funcToCall = popOperand(*I++);
-  hlvmAssert(funcToCall && "No function to call?");
-  hlvmAssert(llvm::isa<llvm::Function>(funcToCall));
-
-  // Get the function call arguments
-  std::vector<llvm::Value*> args;
-  for ( ; I != E; ++I ) {
-    llvm::Value* arg = popOperand(*I);
-    hlvmAssert(arg && "No argument for CallOp?");
-    args.push_back(arg);
-  }
-
-  // Make sure we have sanity with varargs functions
-  hlvmAssert(sigTy->isVarArgs() || args.size() == sigTy->size());
-  hlvmAssert(!sigTy->isVarArgs() || args.size() >= sigTy->size());
-
-  // convert to function type
-  llvm::Function* F = const_cast<llvm::Function*>(
-    llvm::cast<llvm::Function>(funcToCall));
-
-  // Make the call
-  pushOperand(em->emitCall(F,args),co);
-}
-
-template<> void
-LLVMGeneratorPass::gen(StoreOp* s)
-{
-  llvm::Value* location = popOperand(s->getOperand(0));
-  llvm::Value* value =    popOperand(s->getOperand(1));
-  // We don't push the StoreInst as an operand because it has no value and
-  // therefore cannot be an operand.
-  em->emitAssign(location,value);
-}
-
-template<> void
-LLVMGeneratorPass::gen(LoadOp* l)
-{
-  llvm::Value* location = popOperand(l->getOperand(0));
-  const llvm::PointerType* PT = 
-    llvm::dyn_cast<llvm::PointerType>(location->getType());
-  hlvmAssert(PT && "Attempt to load non-pointer?");
-
-  const llvm::Type* ET = PT->getElementType();
-  if (!ET->isFirstClassType())
-    pushOperand(location,l);
-  else
-    pushOperand(em->emitLoad(location,location->getName()),l);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GetOp* r)
-{
-  llvm::Value* referent = getReferent(r);
-  pushOperand(referent,r);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GetFieldOp* i)
-{
-  hlvm::Operator* loc = i->getOperand(0);
-  hlvm::Operator* field = i->getOperand(1);
-  if (hlvm::GetOp* Ref = llvm::dyn_cast<GetOp>(field)) 
-    if (const hlvm::Value* referent = Ref->getReferent())
-      if (const hlvm::ConstantString* CS = 
-           llvm::dyn_cast<ConstantString>(referent)) {
-        const std::string& fldName = CS->getValue();
-        const DisparateContainerType* DCT = 
-          llvm::cast<DisparateContainerType>(loc->getType());
-        unsigned index = DCT->getFieldIndex(fldName);
-        hlvmAssert(index != 0 && "Invalid field name");
-        llvm::Constant* idx = llvm::ConstantInt::get(llvm::Type::Int32Ty,index);
-        llvm::Value* location = popOperand(loc);
-        pushOperand(em->emitGEP(location,idx),i);
-        return;
-      }
-
-  // The operand is not a constant string. We must look the field up at runtime
-  hlvmNotImplemented("Lookup of field at runtime");
-  llvm::Value* location = popOperand(loc);
-  llvm::Value* fld = popOperand(field);
-}
-
-template<> void
-LLVMGeneratorPass::gen(GetIndexOp* i)
-{
-  llvm::Value* location = popOperand(i->getOperand(0));
-  llvm::Value* index = popOperand(i->getOperand(1));
-  pushOperand(em->emitGEP(location,index),i);
-}
-
-template<> void
-LLVMGeneratorPass::gen(OpenOp* o)
-{
-  llvm::Value* strm = popOperand(o->getOperand(0));
-  pushOperand(em->emitOpen(strm),o);
-}
-
-template<> void
-LLVMGeneratorPass::gen(WriteOp* o)
-{
-  llvm::Value* strm = popOperand(o->getOperand(0));
-  llvm::Value* arg2 = popOperand(o->getOperand(1));
-  pushOperand(em->emitWrite(strm,arg2),o); 
-}
-
-template<> void
-LLVMGeneratorPass::gen(ReadOp* o)
-{
-  llvm::Value* strm = popOperand(o->getOperand(0));
-  llvm::Value* arg2 = popOperand(o->getOperand(1));
-  llvm::Value* arg3 = popOperand(o->getOperand(2));
-  pushOperand(em->emitRead(strm,arg2,arg3),o);
-}
-
-template<> void
-LLVMGeneratorPass::gen(CloseOp* o)
-{
-  llvm::Value* strm = popOperand(o->getOperand(0));
-  pushOperand(em->emitClose(strm),o);
-}
-
-void 
-LLVMGeneratorPass::genProgramLinkage()
-{
-  // Short circuit if there's nothing to do
-  if (progs.empty())
-    return;
-
-  // Define the type of the array elements (a structure with a pointer to
-  // a string and a pointer to the function).
-  std::vector<const llvm::Type*> Fields;
-  Fields.push_back(llvm::PointerType::get(llvm::Type::Int8Ty));
-  Fields.push_back(llvm::PointerType::get(em->getProgramType()));
-  llvm::StructType* entry_elem_type = llvm::StructType::get(Fields);
-
-  // Define the type of the array for the entry points
-  llvm::ArrayType* entry_points_type = 
-    llvm::ArrayType::get(entry_elem_type,progs.size());
-
-  // Create a vector to hold the entry elements as they are created.
-  std::vector<llvm::Constant*> entry_points_items;
-
-  for (std::vector<llvm::Function*>::iterator I = progs.begin(), 
-     E = progs.end(); I != E; ++I )
-  {
-    const std::string& funcName = (*I)->getName();
-    // Get a constant for the name of the entry point (char array)
-    llvm::Constant* name_val = llvm::ConstantArray::get(funcName,true);
-
-    // Create a constant global variable to hold the name of the program.
-    llvm::GlobalVariable* name = em->NewGConst(
-      /*Type=*/name_val->getType(),
-      /*Initializer=*/name_val, 
-      /*name=*/"prog_name"
-    );
-
-    llvm::Constant* index = em->getFirstElement(name);
-
-    // Get a constant structure for the entry containing the name and pointer
-    // to the function.
-    std::vector<llvm::Constant*> items;
-    items.push_back(index);
-    items.push_back(*I);
-    llvm::Constant* entry = llvm::ConstantStruct::get(entry_elem_type,items);
-
-    // Save the entry into the list of entry point items
-    entry_points_items.push_back(entry);
-  }
-
-  // Create a constant array to initialize the entry_points
-  llvm::Constant* entry_points_initializer = llvm::ConstantArray::get(
-    entry_points_type,entry_points_items);
-
-  // Now get the GlobalVariable
-  llvm::GlobalVariable* entry_points = new llvm::GlobalVariable(
-    /*Type=*/entry_points_type,
-    /*isConstant=*/true,
-    /*Linkage=*/llvm::GlobalValue::AppendingLinkage,
-    /*Initializer=*/entry_points_initializer,
-    /*Name=*/"hlvm_programs",
-    /*Parent=*/em->getModule()
-  );
-}
-
-void
-LLVMGeneratorPass::handleInitialize(AST* tree)
-{
-  // Nothing to do
-}
-
-void
-LLVMGeneratorPass::handle(Node* n,Pass::TraversalKinds mode)
-{
-  if (mode == Pass::PreOrderTraversal) {
-    // We process container nodes here (preorder) to ensure that we create the
-    // container that is being asked for.
-    switch (n->getID()) 
-    {
-      case BundleID:
-      {
-        em->StartModule(llvm::cast<Bundle>(n)->getName());
-        lvars.clear();
-        gvars.clear();
-        funcs.clear();
-        break;
-      }
-      case ConstantBooleanID:       
-        getConstant(llvm::cast<ConstantBoolean>(n));
-        break;
-      case ConstantCharacterID:
-        getConstant(llvm::cast<ConstantCharacter>(n));
-        break;
-      case ConstantEnumeratorID:
-        getConstant(llvm::cast<ConstantEnumerator>(n));
-        break;
-      case ConstantIntegerID:       
-        getConstant(llvm::cast<hlvm::ConstantInteger>(n));
-        break;
-      case ConstantRealID:          
-        getConstant(llvm::cast<hlvm::ConstantReal>(n));
-        break;
-      case ConstantStringID:        
-        getConstant(llvm::cast<hlvm::ConstantString>(n));
-        break;
-      case ConstantAnyID:
-        getConstant(llvm::cast<hlvm::ConstantAny>(n));
-        break;
-      case ConstantStructureID:
-        getConstant(llvm::cast<hlvm::ConstantStructure>(n));
-        break;
-      case ConstantArrayID:
-        getConstant(llvm::cast<hlvm::ConstantArray>(n));
-        break;
-      case ConstantVectorID:
-        getConstant(llvm::cast<hlvm::ConstantVector>(n));
-        break;
-      case ConstantContinuationID:
-        getConstant(llvm::cast<hlvm::ConstantContinuation>(n));
-        break;
-      case ConstantPointerID:
-        getConstant(llvm::cast<hlvm::ConstantPointer>(n));
-        break;
-      case VariableID:              
-        getVariable(llvm::cast<Variable>(n)); 
-        break;
-      case FunctionID:
-      {
-        // Get/Create the function
-        function = llvm::cast<hlvm::Function>(n);
-        startNewFunction(getFunction(function));
-        break;
-      }
-      case ProgramID:
-      {
-        // Create a new function for the program based on the signature
-        function = llvm::cast<hlvm::Program>(n);
-        llvm::Function* F = em->NewFunction(
-            /*Type=*/ em->getProgramType(),
-            /*Linkage=*/llvm::GlobalValue::InternalLinkage,
-            /*Name=*/ getLinkageName(function)
-        );
-        startNewFunction(F);
-        // Save the program so it can be generated into the list of program 
-        // entry points.
-        progs.push_back(F);
-        break;
-      }
-      case BlockID:
-      {
-        Block* B = llvm::cast<Block>(n);
-        std::string name = B->getLabel().empty() ? "block" : B->getLabel();
-        enters[B] = em->pushBlock(name);
-        if (B->getResult()) {
-          const llvm::Type* Ty = getType(B->getType());
-          llvm::AllocaInst* result = em->NewAutoVar(Ty, name+"_var");
-          // Initialize the autovar to null
-          em->emitAssign(result,em->getNullValue(Ty));
-          pushOperand(result,B); 
-        }
-        break;
-      }
-      default:
-        break;
-    }
-  } else {
-    // We process non-container nodes and operators. Operators are done
-    // post-order because we want their operands to be constructed first.
-    switch (n->getID()) 
-    {
-      case AnyTypeID:
-      case ArrayTypeID:
-      case BooleanTypeID:
-      case BufferTypeID:
-      case CharacterTypeID:
-      case EnumerationTypeID:
-      case IntegerTypeID:
-      case OpaqueTypeID:
-      case PointerTypeID:
-      case RangeTypeID:
-      case RationalTypeID:
-      case RealTypeID:
-      case StreamTypeID:
-      case StringTypeID:
-      case StructureTypeID:
-      case SignatureTypeID:
-      case VectorTypeID:
-      {
-        hlvm::Type* t = llvm::cast<hlvm::Type>(n);
-        em->AddType(getType(t), t->getName());
-        break;
-      }
-      case NegateOpID:              gen(llvm::cast<NegateOp>(n)); break;
-      case ComplementOpID:          gen(llvm::cast<ComplementOp>(n)); break;
-      case PreIncrOpID:             gen(llvm::cast<PreIncrOp>(n)); break;
-      case PreDecrOpID:             gen(llvm::cast<PreDecrOp>(n)); break;
-      case PostIncrOpID:            gen(llvm::cast<PostIncrOp>(n)); break;
-      case PostDecrOpID:            gen(llvm::cast<PostDecrOp>(n)); break;
-      case SizeOfOpID:              gen(llvm::cast<SizeOfOp>(n)); break;
-      case ConvertOpID:             gen(llvm::cast<ConvertOp>(n)); break;
-      case AddOpID:                 gen(llvm::cast<AddOp>(n)); break;
-      case SubtractOpID:            gen(llvm::cast<SubtractOp>(n)); break;
-      case MultiplyOpID:            gen(llvm::cast<MultiplyOp>(n)); break;
-      case DivideOpID:              gen(llvm::cast<DivideOp>(n)); break;
-      case ModuloOpID:              gen(llvm::cast<ModuloOp>(n)); break;
-      case BAndOpID:                gen(llvm::cast<BAndOp>(n)); break;
-      case BOrOpID:                 gen(llvm::cast<BOrOp>(n)); break;
-      case BXorOpID:                gen(llvm::cast<BXorOp>(n)); break;
-      case BNorOpID:                gen(llvm::cast<BNorOp>(n)); break;
-      case NotOpID:                 gen(llvm::cast<NotOp>(n)); break;
-      case AndOpID:                 gen(llvm::cast<AndOp>(n)); break;
-      case OrOpID:                  gen(llvm::cast<OrOp>(n)); break;
-      case NorOpID:                 gen(llvm::cast<NorOp>(n)); break;
-      case XorOpID:                 gen(llvm::cast<XorOp>(n)); break;
-      case EqualityOpID:            gen(llvm::cast<EqualityOp>(n)); break;
-      case InequalityOpID:          gen(llvm::cast<InequalityOp>(n)); break;
-      case LessThanOpID:            gen(llvm::cast<LessThanOp>(n)); break;
-      case GreaterThanOpID:         gen(llvm::cast<GreaterThanOp>(n)); break;
-      case GreaterEqualOpID:        gen(llvm::cast<GreaterEqualOp>(n)); break;
-      case LessEqualOpID:           gen(llvm::cast<LessEqualOp>(n)); break;
-      case IsPInfOpID:              gen(llvm::cast<IsPInfOp>(n)); break;
-      case IsNInfOpID:              gen(llvm::cast<IsNInfOp>(n)); break;
-      case IsNanOpID:               gen(llvm::cast<IsNanOp>(n)); break;
-      case TruncOpID:               gen(llvm::cast<TruncOp>(n)); break;
-      case RoundOpID:               gen(llvm::cast<RoundOp>(n)); break;
-      case FloorOpID:               gen(llvm::cast<FloorOp>(n)); break;
-      case CeilingOpID:             gen(llvm::cast<CeilingOp>(n)); break;
-      case LogEOpID:                gen(llvm::cast<LogEOp>(n)); break;
-      case Log2OpID:                gen(llvm::cast<Log2Op>(n)); break;
-      case Log10OpID:               gen(llvm::cast<Log10Op>(n)); break;
-      case SquareRootOpID:          gen(llvm::cast<SquareRootOp>(n)); break;
-      case CubeRootOpID:            gen(llvm::cast<CubeRootOp>(n)); break;
-      case FactorialOpID:           gen(llvm::cast<FactorialOp>(n)); break;
-      case PowerOpID:               gen(llvm::cast<PowerOp>(n)); break;
-      case RootOpID:                gen(llvm::cast<RootOp>(n)); break;
-      case GCDOpID:                 gen(llvm::cast<GCDOp>(n)); break;
-      case LCMOpID:                 gen(llvm::cast<LCMOp>(n)); break;
-      case SelectOpID:              gen(llvm::cast<SelectOp>(n)); break;
-      case SwitchOpID:              gen(llvm::cast<SwitchOp>(n)); break;
-      case WhileOpID:               gen(llvm::cast<WhileOp>(n)); break;
-      case UnlessOpID:              gen(llvm::cast<UnlessOp>(n)); break;
-      case UntilOpID:               gen(llvm::cast<UntilOp>(n)); break;
-      case LoopOpID:                gen(llvm::cast<LoopOp>(n)); break;
-      case BreakOpID:               gen(llvm::cast<BreakOp>(n)); break;
-      case ContinueOpID:            gen(llvm::cast<ContinueOp>(n)); break;
-      case ReturnOpID:              gen(llvm::cast<ReturnOp>(n)); break;
-      case ResultOpID:              gen(llvm::cast<ResultOp>(n)); break;
-      case CallOpID:                gen(llvm::cast<CallOp>(n)); break;
-      case LoadOpID:                gen(llvm::cast<LoadOp>(n)); break;
-      case StoreOpID:               gen(llvm::cast<StoreOp>(n)); break;
-      case GetOpID:                 gen(llvm::cast<GetOp>(n)); break;
-      case AutoVarOpID:             gen(llvm::cast<AutoVarOp>(n)); break;
-      case OpenOpID:                gen(llvm::cast<OpenOp>(n)); break;
-      case CloseOpID:               gen(llvm::cast<CloseOp>(n)); break;
-      case WriteOpID:               gen(llvm::cast<WriteOp>(n)); break;
-      case ReadOpID:                gen(llvm::cast<ReadOp>(n)); break;
-      case GetIndexOpID:            gen(llvm::cast<GetIndexOp>(n)); break;
-      case GetFieldOpID:            gen(llvm::cast<GetFieldOp>(n)); break;
-
-      case BundleID:
-        genProgramLinkage();
-        modules.push_back(em->FinishModule());
-        break;
-      case ConstantBooleanID:       
-      case ConstantCharacterID:
-      case ConstantEnumeratorID:
-      case ConstantIntegerID:      
-      case ConstantRealID:        
-      case ConstantStringID:     
-      case ConstantAnyID:
-      case ConstantStructureID:
-      case ConstantArrayID:
-      case ConstantVectorID:
-      case ConstantContinuationID:
-      case ConstantPointerID:
-        /* FALL THROUGH */
-      case VariableID: 
-        break;
-      case ProgramID:
-        /* FALL THROUGH */
-      case FunctionID:
-        em->FinishFunction();
-        // The entry block was created to hold the automatic variables. We now
-        // need to terminate the block by branching it to the first active block
-        // in the function.
-        function = 0;
-        break;
-      case BlockID:
-      {
-        Block* B = llvm::cast<Block>(n);
-        exits[B] = em->getBlock();
-        getBlockResult(B);
-        em->popBlock();
-        break;
-      }
-
-      // everything else is an error
-      default:
-        hlvmNotImplemented("Node of unimplemented type");
-        break;
-    }
-  }
-}
-
-void
-LLVMGeneratorPass::handleTerminate()
-{
-  // Nothing to do.
-}
-
-llvm::Module*
-LLVMGeneratorPass::linkModules()
-{
-  llvm::Linker linker("HLVM",ast->getPublicID(),0);
-  for (ModuleList::iterator I = modules.begin(), E = modules.end(); I!=E; ++I) {
-    linker.LinkInModule(*I);
-  }
-  modules.empty(); // LinkInModules destroyed/merged them all
-  return linker.releaseModule();
-}
-
-
-llvm::cl::opt<bool> NoVerify("no-verify", 
-  llvm::cl::init(false),
-  llvm::cl::desc("Don't verify generated LLVM module"));
-
-llvm::cl::opt<bool> NoInline("no-inlining", 
-  llvm::cl::init(false),
- llvm::cl::desc("Do not run the LLVM inliner pass"));
-
-llvm::cl::opt<bool> NoOptimizations("no-optimization",
-  llvm::cl::init(false),
-  llvm::cl::desc("Do not run any LLVM optimization passes"));
-
-static void 
-getCleanupPasses(llvm::PassManager& PM)
-{
-  PM.add(llvm::createLowerSetJmpPass());          // Lower llvm.setjmp/.longjmp
-  if (NoOptimizations)
-    return;
-
-  PM.add(llvm::createRaiseAllocationsPass());     // call %malloc -> malloc inst
-  PM.add(llvm::createCFGSimplificationPass());    // Clean up disgusting code
-  PM.add(llvm::createPromoteMemoryToRegisterPass());// Kill useless allocas
-  PM.add(llvm::createGlobalOptimizerPass());      // Optimize out global vars
-  PM.add(llvm::createGlobalDCEPass());            // Remove unused fns and globs
-  PM.add(llvm::createIPConstantPropagationPass());// IP Constant Propagation
-  PM.add(llvm::createDeadArgEliminationPass());   // Dead argument elimination
-  PM.add(llvm::createInstructionCombiningPass()); // Clean up after IPCP & DAE
-  PM.add(llvm::createCFGSimplificationPass());    // Clean up after IPCP & DAE
-  PM.add(llvm::createPruneEHPass());              // Remove dead EH info
-  if (!NoInline)
-    PM.add(llvm::createFunctionInliningPass());   // Inline small functions
-  PM.add(llvm::createSimplifyLibCallsPass());     // Library Call Optimizations
-  PM.add(llvm::createArgumentPromotionPass());    // Scalarize uninlined fn args
-  PM.add(llvm::createTailDuplicationPass());      // Simplify cfg by copying 
-  PM.add(llvm::createCFGSimplificationPass());    // Merge & remove BBs
-  PM.add(llvm::createScalarReplAggregatesPass()); // Break up aggregate allocas
-  PM.add(llvm::createInstructionCombiningPass()); // Combine silly seq's
-  PM.add(llvm::createCondPropagationPass());      // Propagate conditionals
-  PM.add(llvm::createTailCallEliminationPass());  // Eliminate tail calls
-  PM.add(llvm::createCFGSimplificationPass());    // Merge & remove BBs
-  PM.add(llvm::createReassociatePass());          // Reassociate expressions
-  PM.add(llvm::createLICMPass());                 // Hoist loop invariants
-  PM.add(llvm::createLoopUnswitchPass());         // Unswitch loops.
-  PM.add(llvm::createInstructionCombiningPass()); // Clean up after LICM/reassoc
-  PM.add(llvm::createIndVarSimplifyPass());       // Canonicalize indvars
-  PM.add(llvm::createLoopUnrollPass());           // Unroll small loops
-  PM.add(llvm::createInstructionCombiningPass()); // Clean up after the unroller
-  PM.add(llvm::createLoadValueNumberingPass());   // GVN for load instructions
-  PM.add(llvm::createGCSEPass());                 // Remove common subexprs
-  PM.add(llvm::createSCCPPass());                 // Constant prop with SCCP
-
-  // Run instcombine after redundancy elimination to exploit opportunities
-  // opened up by them.
-  PM.add(llvm::createInstructionCombiningPass());
-  PM.add(llvm::createCondPropagationPass());      // Propagate conditionals
-
-  PM.add(llvm::createDeadStoreEliminationPass()); // Delete dead stores
-  PM.add(llvm::createAggressiveDCEPass());        // SSA based 'Aggressive DCE'
-  PM.add(llvm::createCFGSimplificationPass());    // Merge & remove BBs
-  PM.add(llvm::createDeadTypeEliminationPass());  // Eliminate dead types
-  PM.add(llvm::createConstantMergePass());        // Merge dup global constants
-}
-
-static bool
-optimizeModule(llvm::Module* mod, std::string& ErrMsg)
-{
-  llvm::PassManager Passes;
-  Passes.add(new llvm::TargetData(mod));
-  if (!NoVerify)
-    if (llvm::verifyModule(*mod,llvm::ReturnStatusAction,&ErrMsg))
-      return false;
-  getCleanupPasses(Passes);
-  Passes.run(*mod);
-  if (!NoVerify)
-    if (llvm::verifyModule(*mod,llvm::ReturnStatusAction,&ErrMsg))
-      return false;
-  return true;
-}
-
-}
-
-bool
-hlvm::generateBytecode(AST* tree, std::ostream& output, std::string& ErrMsg)
-{
-  hlvm::PassManager* PM = hlvm::PassManager::create();
-  LLVMGeneratorPass genPass(tree);
-  PM->addPass(&genPass);
-  PM->runOn(tree);
-  delete PM;
-  llvm::Module* mod = genPass.linkModules();
-  bool result = optimizeModule(mod,ErrMsg);
-  if (result) {
-    llvm::WriteBitcodeToFile(mod, output);
-  }
-  delete mod;
-  return result;
-}
-
-bool
-hlvm::generateAssembly(AST* tree, std::ostream& output, std::string& ErrMsg)
-{
-  hlvm::PassManager* PM = hlvm::PassManager::create();
-  LLVMGeneratorPass genPass(tree);
-  PM->addPass(&genPass);
-  PM->runOn(tree);
-  delete PM;
-  llvm::Module* mod = genPass.linkModules();
-  bool result = optimizeModule(mod,ErrMsg);
-  if (result) {
-    llvm::PassManager Passes;
-    llvm::OStream strm(output);
-    Passes.add(new llvm::PrintModulePass(&strm));
-    Passes.run(*mod);
-  }
-  delete mod;
-  return result;
-}
-
-llvm::Module* 
-hlvm::generateModule(AST* tree, std::string& ErrMsg)
-{
-  hlvm::PassManager* PM = hlvm::PassManager::create();
-  LLVMGeneratorPass genPass(tree);
-  PM->addPass(&genPass);
-  PM->runOn(tree);
-  delete PM;
-  llvm::Module* mod = genPass.linkModules();
-  if (!optimizeModule(mod,ErrMsg)) {
-    delete mod;
-    return 0;
-  }
-  return mod;
-}
-
diff --git a/hlvm/hlvm/CodeGen/LLVMGenerator.h b/hlvm/hlvm/CodeGen/LLVMGenerator.h
deleted file mode 100644
index cb99083..0000000
--- a/hlvm/hlvm/CodeGen/LLVMGenerator.h
+++ /dev/null
@@ -1,55 +0,0 @@
-//===-- LLVM Code Generation Interface --------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/CodeGen/LLVMGenerator.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/26
-/// @since 0.1.0
-/// @brief Declares the interface for generating code with LLVM
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_CODEGEN_LLVM_LLVMGENERATOR_H
-#define HLVM_CODEGEN_LLVM_LLVMGENERATOR_H
-
-#include <ostream>
-
-namespace llvm {
-  class Module;
-}
-
-namespace hlvm 
-{
-  class AST;
-
-  /// Convert an Abstract Syntax Tree into LLVM bytecode written on the output 
-  /// stream.
-  bool generateBytecode(AST* input, std::ostream& output, std::string& ErrMsg);
-
-  /// Convert an Abstract Syntax Tree into LLVM assembly written on the output
-  /// stream.
-  bool generateAssembly(AST* input, std::ostream& output, std::string& ErrMsg);
-
-  /// Convert an Abstract Syntax Tree into an LLVM Module
-  llvm::Module* generateModule(AST* input, std::string& ErrMsg );
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/CodeGen/SConscript b/hlvm/hlvm/CodeGen/SConscript
deleted file mode 100644
index 34d96c1..0000000
--- a/hlvm/hlvm/CodeGen/SConscript
+++ /dev/null
@@ -1,33 +0,0 @@
-#===-- Build Script For hlvm ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.GetCpp2LLVMCpp(env)
-env.Cpp2LLVMCpp('string_decl.inc','string.cxx',
-  LLVM2CPPFLAGS='-gen-type -for struct._hlvm_string -funcname getStringDecl')
-env.Cpp2LLVMCpp('string_clear.inc','string.cxx',
-  LLVM2CPPFLAGS='-gen-inline -for _hlvm_string_clear -funcname getStringClear')
-env.Cpp2LLVMCpp('program.inc','program.cxx',
-  LLVM2CPPFLAGS='-gen-contents -funcname "getProgramDef"')
-lib = env.Library('HLVMCodeGen',hlvm.GetAllCXXFiles(env))
-hlvm.InstallLibrary(env,lib)
diff --git a/hlvm/hlvm/CodeGen/program.cxx b/hlvm/hlvm/CodeGen/program.cxx
deleted file mode 100644
index ed137c7..0000000
--- a/hlvm/hlvm/CodeGen/program.cxx
+++ /dev/null
@@ -1,32 +0,0 @@
-//===-- Input To llvm2cpp For Program Fragments -----------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/CodeGen/program.cxx     
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Input to llvm2cpp for Program related code generation
-//===----------------------------------------------------------------------===//
-
-extern "C" {
-
-}
diff --git a/hlvm/hlvm/CodeGen/string.cxx b/hlvm/hlvm/CodeGen/string.cxx
deleted file mode 100644
index 5cb9566..0000000
--- a/hlvm/hlvm/CodeGen/string.cxx
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "string.h"
-
-extern "C" {
-
-void _hlvm_string_clear(_hlvm_string* str) 
-{
-  _hlvm_free_array(str->ptr,str->len,sizeof(_hlvm_char));
-  str->len = 0;
-  str->ptr = 0;
-}
-
-}
diff --git a/hlvm/hlvm/CodeGen/string.h b/hlvm/hlvm/CodeGen/string.h
deleted file mode 100644
index ce39eae..0000000
--- a/hlvm/hlvm/CodeGen/string.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <stdint.h>
-
-extern "C" {
-
-typedef uint32_t _hlvm_size;
-typedef char _hlvm_char;
-
-struct _hlvm_string {
-  _hlvm_size len;
-  _hlvm_char* ptr;
-};
-
-extern void _hlvm_free_array(
-  void* array, 
-  _hlvm_size count, 
-  _hlvm_size elem_size
-);
-
-extern void _hlvm_string_clear(_hlvm_string* str);
-}
diff --git a/hlvm/hlvm/Pass/Pass.cpp b/hlvm/hlvm/Pass/Pass.cpp
deleted file mode 100644
index 720df6a..0000000
--- a/hlvm/hlvm/Pass/Pass.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-//===-- Pass Interface Class ------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Pass/Pass.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::Pass::Pass.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Pass/Pass.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/Base/Assert.h>
-
-using namespace hlvm;
-using namespace llvm;
-
-namespace {
-
-class PassManagerImpl : public PassManager
-{
-public:
-  PassManagerImpl() : PassManager(), pre(), post() {}
-  void addPass(Pass* p);
-  virtual void runOn(AST* tree);
-  virtual void runOnNode(Node* startAt);
-
-  inline void runIfInterested(Pass* p, Node* n, Pass::TraversalKinds m);
-  inline void runPreOrder(Node* n);
-  inline void runPostOrder(Node* n);
-
-  template<class NodeClass>
-  inline void runOn(NodeClass* b);
-
-private:
-  std::vector<Pass*> pre;
-  std::vector<Pass*> post;
-  std::vector<Pass*> all;
-};
-
-void
-PassManagerImpl::addPass(Pass* p)
-{
-  all.push_back(p);
-  if (p->mode() & Pass::PreOrderTraversal)
-    pre.push_back(p);
-  if (p->mode() & Pass::PostOrderTraversal)
-    post.push_back(p);
-}
-
-inline void
-PassManagerImpl::runIfInterested(Pass* p, Node* n, Pass::TraversalKinds m)
-{
-  int interest = p->interest();
-  if (interest == 0 ||
-     ((interest & Pass::Type_Interest) && n->isType()) ||
-     ((interest & Pass::Function_Interest) && n->isFunction()) ||
-     ((interest & Pass::Block_Interest) && n->is(BlockID)) ||
-     ((interest & Pass::Operator_Interest) && n->isOperator()) ||
-     ((interest & Pass::Program_Interest) && n->is(ProgramID)) ||
-     ((interest & Pass::Variable_Interest) && n->is(VariableID))
-     ) {
-    p->handle(n,m);
-  }
-}
-
-inline void 
-PassManagerImpl::runPreOrder(Node* n)
-{
-  std::vector<Pass*>::iterator I = pre.begin(), E = pre.end();
-  while (I != E) {
-    runIfInterested(*I,n,Pass::PreOrderTraversal);
-    ++I;
-  }
-}
-
-inline void 
-PassManagerImpl::runPostOrder(Node* n)
-{
-  std::vector<Pass*>::iterator I = post.begin(), E = post.end();
-  while (I != E) {
-    runIfInterested(*I,n,Pass::PostOrderTraversal);
-    ++I;
-  }
-}
-
-template<> inline void
-PassManagerImpl::runOn(ConstantValue* cst)
-{
-  hlvmAssert(cst && "Null constant?");
-  hlvmAssert(isa<Constant>(cst));
-  runPreOrder(cst);
-  // FIXME: Eventually we'll have structured constants which need to have 
-  // their contents examined as well.
-  runPostOrder(cst);
-}
-
-template<> inline void
-PassManagerImpl::runOn(Operator* op)
-{
-  hlvmAssert(op && "Null operator?");
-  runPreOrder(op);
-  size_t limit = op->getNumOperands();
-  for (size_t i = 0; i < limit; ++i)
-    runOn(op->getOperand(i));
-  runPostOrder(op);
-}
-
-template<> inline void
-PassManagerImpl::runOn(Block* b)
-{
-  hlvmAssert(b && "Null block?");
-  runPreOrder(b);
-  for (Block::iterator I = b->begin(), E = b->end(); I != E; ++I)
-    runOn(cast<Operator>(*I)); // recurse, possibly!
-  runPostOrder(b);
-}
-
-template<> inline void
-PassManagerImpl::runOn(Linkable* l)
-{
-  runPreOrder(l);
-  if (Function* F = dyn_cast<Function>(l))
-    if (Block* B = F->getBlock())
-      runOn(B);
-  runPostOrder(l);
-}
-
-template<> inline void
-PassManagerImpl::runOn(Type* Ty)
-{
-  runPreOrder(Ty);
-  runPostOrder(Ty);
-}
-
-template<> inline void 
-PassManagerImpl::runOn(Bundle* b)
-{
-  hlvmAssert(b && "Null bundle?");
-  runPreOrder(b);
-  for (Bundle::tlist_iterator TI = b->tlist_begin(), TE = b->tlist_end(); 
-       TI != TE; ++TI)
-    runOn(const_cast<Type*>(*TI));
-
-  for (Bundle::clist_iterator CI = b->clist_begin(), CE = b->clist_end(); 
-       CI != CE; ++CI) {
-    runPreOrder(const_cast<Constant*>(*CI));
-    if (Function* F = dyn_cast<Function>(*CI))
-      if (Block* B = F->getBlock())
-        runOn(B);
-    runPostOrder(const_cast<Constant*>(*CI));
-  }
-  runPostOrder(b);
-}
-
-void PassManagerImpl::runOn(AST* tree)
-{
-  hlvmAssert(tree && "Null tree?");
-  // Call the initializers
-  std::vector<Pass*>::iterator PI = all.begin(), PE = all.end();
-  while (PI != PE) { (*PI)->handleInitialize(tree); ++PI; }
-
-  // Just a little optimization for empty pass managers
-  if (pre.empty() && post.empty())
-    return;
-
-  // Traverse each of the bundles in the AST node.
-  for (AST::iterator I = tree->begin(), E = tree->end(); I != E; ++I)
-    runOn(*I);
-
-  // Call the terminators
-  PI = all.begin(), PE = all.end();
-  while (PI != PE) { (*PI)->handleTerminate(); ++PI; }
-}
-
-void 
-PassManagerImpl::runOnNode(Node* startAt)
-{
-  // Check to make sure startAt is in tree
-  hlvmAssert(startAt != 0 && "Can't run passes from null start");
-
-  if (isa<AST>(startAt))
-    runOn(cast<AST>(startAt));
-  else if (isa<Bundle>(startAt))
-    runOn(cast<Bundle>(startAt));
-  else if (isa<Block>(startAt))
-    runOn(cast<Block>(startAt));
-  else if (isa<Linkable>(startAt))
-    runOn(cast<Linkable>(startAt));
-  else if (isa<ConstantValue>(startAt))
-    runOn(cast<ConstantValue>(startAt));
-  else if (isa<Operator>(startAt))
-    runOn(cast<Operator>(startAt));
-  else if (isa<Type>(startAt))
-    runOn(cast<Type>(startAt));
-  else
-    hlvmAssert(!"startAt type not supported");
-}
-
-} // anonymous namespace
-
-Pass::~Pass()
-{
-}
-
-void 
-Pass::handleInitialize(AST* tree)
-{
-}
-
-void 
-Pass::handleTerminate()
-{
-}
-
-PassManager::~PassManager()
-{
-}
-
-PassManager*
-PassManager::create()
-{
-  return new PassManagerImpl;
-}
diff --git a/hlvm/hlvm/Pass/Pass.h b/hlvm/hlvm/Pass/Pass.h
deleted file mode 100644
index 3ceae17..0000000
--- a/hlvm/hlvm/Pass/Pass.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//===-- Pass Interface Class ------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Pass/Pass.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Pass::Pass
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_AST_PASS_H
-#define HLVM_AST_PASS_H
-
-namespace hlvm 
-{
-class Node;
-class AST;
-
-/// This class provides an abstract interface to Pass execution. This class
-/// is meant to be subclassed and the various "handle" methods overriden to
-/// gain access to the information in the AST.
-/// @brief HLVM AST Abstract Pass
-class Pass 
-{
-  /// @name Types
-  /// @{
-  public:
-    /// Or these together and pass to the constructor to indicate which
-    /// kinds of things you are interested in.
-    enum InterestKinds {
-      All_Interest = 0,           ///< Pass is interested in everything
-      Block_Interest = 1,         ///< Pass is interested in Blocks
-      Operator_Interest = 2,      ///< Pass is interested in Operators
-      Function_Interest = 4,      ///< Pass is interested in Functions
-      Program_Interest = 8,       ///< Pass is interested in Programs
-      Type_Interest = 16,         ///< Pass is interested in Types
-      Variable_Interest = 32      ///< Pass is interested in Variables
-    };
-
-    /// Specifies the kinds of traversals that a pass can request. The
-    /// PassManager always walks the tree in a depth-first search (DFS) and it
-    /// can call the pass either when it arrives at the node (preorder) on the
-    /// way down, or when it leaves the node (postorder) on the way up. A pass
-    /// can also specify that it wants both pre-order and post-order traversal.
-    enum TraversalKinds {
-      NoTraversal = 0,             ///< Pass doesn't want to be called!
-      PreOrderTraversal = 1,       ///< Call pass on the way down the DFS walk
-      PostOrderTraversal = 2,      ///< Call pass on the way up the DFS walk
-      PreAndPostOrderTraversal = 3 ///< Call pass on both the way down and up
-    };
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    Pass(int i, TraversalKinds m) : interest_(i), mode_(m), passed_(true) {}
-  public:
-    virtual ~Pass();
-
-    /// Instantiate the standard passes
-    static Pass* new_ValidatePass();
-    static Pass* new_ResolveTypesPass();
-
-  /// @}
-  /// @name Handlers
-  /// @{
-  public:
-    /// Handle initialization. This is called before any other handle method
-    /// is called. Default implementation does nothing
-    virtual void handleInitialize(AST* tree);
-
-    /// Handle any kind of node. Subclasses should override this; the default
-    /// implementation does nothing. This handler is only called if the
-    /// interest is set to 0 (interested in everything). It is left to the
-    /// subclass to disambiguate the Node.
-    virtual void handle(Node* n, TraversalKinds mode) = 0;
-
-    /// Handle termination. This is called after all other handle methods
-    /// are called. Default implementation does nothing
-    virtual void handleTerminate();
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    int mode()     const { return mode_; }
-    int interest() const { return interest_; }
-    int passed()   const { return passed_; }
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    int interest_;
-    TraversalKinds mode_;
-  protected:
-    bool passed_;
-  /// @}
-};
-
-class PassManager 
-{
-  protected:
-    PassManager() {}
-  public:
-    virtual ~PassManager();
-    static  PassManager* create();
-    virtual void addPass(Pass* p) = 0;
-    virtual void runOn(AST* tree) = 0;
-    virtual void runOnNode(Node* startAt) = 0;
-};
-
-bool validate(AST* tree);
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/Pass/ResolveTypes.h b/hlvm/hlvm/Pass/ResolveTypes.h
deleted file mode 100644
index 93f5178..0000000
--- a/hlvm/hlvm/Pass/ResolveTypes.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//===-- Type Resolution Pass ------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Pass/ResolveTypes.h
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/19
-/// @since 0.1.0
-/// @brief Declares the class hlvm::Pass::ResolveTypes
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_PASS_RESOLVETYPES_H
-#define HLVM_PASS_RESOLVETYPES_H
-
-#include <hlvm/AST/Pass.h>
-
-namespace hlvm {
-
-/// This class provides a type resolution capability. It searches for 
-/// instances of OpaqueType and resolves all their uses to the correct actual
-/// type.
-/// @brief Type Resolution Pass
-class ResolveTypes : public Pass 
-{
-  /// @}
-  /// @name Constructors
-  /// @{
-  protected:
-    ResolveTypes() : Pass(0) {}
-  public:
-    ~ResolveTypes();
-
-  /// @}
-  /// @name Handlers
-  /// @{
-  public:
-    /// Handle a Block node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Block* b);
-
-    /// Handle a Bundle node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Bundle* b);
-
-    /// Handle a Function node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Function* f);
-
-    /// Handle a Program node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Program* p);
-
-    /// Handle a Operator node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Operator* o);
-
-    /// Handle a Type node. Subclasses should override this; default 
-    /// implementation does nothing.
-    virtual void handle(Type* t);
-
-  /// @}
-  /// @name Data
-  /// @{
-  protected:
-    int interest;
-  /// @}
-};
-
-} // end namespace hlvm
-#endif
diff --git a/hlvm/hlvm/Pass/SConscript b/hlvm/hlvm/Pass/SConscript
deleted file mode 100644
index e602476..0000000
--- a/hlvm/hlvm/Pass/SConscript
+++ /dev/null
@@ -1,27 +0,0 @@
-#===-- Build Script For hlvm/Pass -----------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-lib = env.StaticLibrary('HLVMPass',hlvm.GetAllCXXFiles(env))
-hlvm.InstallLibrary(env,lib)
-hlvm.InstallHeader(env,hlvm.GetFiles(env,'*.h'))
diff --git a/hlvm/hlvm/Pass/Validate.cpp b/hlvm/hlvm/Pass/Validate.cpp
deleted file mode 100644
index d6203be..0000000
--- a/hlvm/hlvm/Pass/Validate.cpp
+++ /dev/null
@@ -1,1828 +0,0 @@
-//===-- AST Validation Pass -------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Pass/Validate.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/18
-/// @since 0.1.0
-/// @brief Implements the functions of class hlvm::Pass::Validate.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Pass/Pass.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Constants.h>
-#include <llvm/Support/Casting.h>
-#include <llvm/Support/MathExtras.h>
-#include <llvm/ADT/StringExtras.h>
-#include <iostream>
-#include <cfloat>
-#include <cmath>
-#include <cerrno>
-
-using namespace hlvm;
-using namespace llvm;
-
-namespace {
-class ValidateImpl : public Pass
-{
-  AST* ast;
-  public:
-    ValidateImpl() : Pass(0,Pass::PostOrderTraversal), ast(0) {}
-    virtual void handleInitialize(AST* tree) { ast = tree; }
-    virtual void handle(Node* b,Pass::TraversalKinds k);
-    inline void error(const Node*n, const std::string& msg);
-    inline void warning(const Node*n, const std::string& msg);
-    inline bool checkNode(Node*);
-    inline bool checkType(Type*,NodeIDs id);
-    inline bool checkValue(Value*,NodeIDs id);
-    inline bool checkConstant(Constant*,NodeIDs id);
-    inline bool checkOperator(
-        Operator*,NodeIDs id,unsigned numOps, bool exact = true);
-    inline bool checkTerminator(Operator* op);
-    inline bool checkUniformContainer(UniformContainerType* T, NodeIDs id);
-    inline bool checkDisparateContainer(DisparateContainerType* T, NodeIDs id);
-    inline bool checkLinkable(Linkable* LI, NodeIDs id);
-    inline bool checkExpression(const Operator* op);
-    inline bool checkBooleanExpression(const Operator* op);
-    inline bool checkIntegralExpression(const Operator* op);
-    inline bool checkResult(const Operator* op);
-
-    template <class NodeClass>
-    inline void validate(NodeClass* C);
-};
-
-void 
-ValidateImpl::warning(const Node* n, const std::string& msg)
-{
-  if (n) {
-    const Locator* loc = n->getLocator();
-    if (loc) {
-      std::string location;
-      loc->getLocation(location);
-      std::cerr << location << ": ";
-    } else
-      std::cerr << "Unknown Location: ";
-  }
-  std::cerr << msg << "\n";
-}
-
-void 
-ValidateImpl::error(const Node* n, const std::string& msg)
-{
-  if (n) {
-    const Locator* loc = n->getLocator();
-    if (loc) {
-      std::string location;
-      loc->getLocation(location);
-      std::cerr << location << ": ";
-    } else
-      std::cerr << "Unknown Location: ";
-  }
-  if (const ConstantValue* CV = dyn_cast<ConstantValue>(n)) {
-    std::cerr << CV->getName() << ": ";
-  } else if (const Linkable *L = dyn_cast<Linkable>(n)) {
-    std::cerr << L->getName() << ": ";
-  } else if (const Type* Ty = dyn_cast<Type>(n)) {
-    std::cerr << Ty->getName() << ": ";
-  } else if (const NamedType* Ty = dyn_cast<NamedType>(n)) {
-    std::cerr << Ty->getName() << ": ";
-  }
-  std::cerr << msg << "\n";
-  passed_ = false;
-}
-
-
-bool
-ValidateImpl::checkNode(Node* n)
-{
-  if (n->getParent() == 0) {
-    error(n,"Node has no parent");
-    return false;
-  }
-  if (n->getID() < FirstNodeID || n->getID() > LastNodeID) {
-    error(n,"Node ID out of range");
-    return false;
-  }
-  return true;
-}
-
-bool
-ValidateImpl::checkType(Type* t,NodeIDs id)
-{
-  bool result = checkNode(t);
-  if (t->getID() != id) {
-    error(t,"Unexpected NodeID for Type");
-    result = false;
-  } else if (!t->isType()) {
-    error(t,"Bad ID for a Type");
-    result = false;
-  }
-  if (!t->hasName()) {
-    error(t, "Empty type name");
-    result = false;
-  }
-  return result;
-}
-
-bool
-ValidateImpl::checkValue(Value* v, NodeIDs id)
-{
-  bool result = checkNode(v);
-  if (v->getID() != id) {
-    error(v,"Unexpected NodeID for Value");
-    result = false;
-  } else if (!v->isValue()) {
-    error(v,"Bad ID for a Value");
-    result = false;
-  }
-  return result;
-}
-
-bool
-ValidateImpl::checkConstant(Constant* C,NodeIDs id)
-{
-  if (checkValue(C,id)) {
-    if (!C->hasName() && llvm::isa<Linkable>(C)) {
-      error(C,"Linkables must not have an empty name");
-      return false;
-    }
-  }
-  return true;
-}
-
-bool
-ValidateImpl::checkOperator(Operator*n, NodeIDs id, unsigned num, bool exact)
-{
-  bool result = checkValue(n,id);
-  if (result)
-    if (num > n->getNumOperands()) {
-      error(n,"Too few operands");
-      result = false;
-    } else if (exact && num != n->getNumOperands()) {
-      error(n, "Too many operands");
-      result = false;
-    }
-  return result;
-}
-
-bool
-ValidateImpl::checkTerminator(Operator *n)
-{
-  if (Block* b = llvm::dyn_cast<Block>(n->getParent())) {
-    if (b->back() != n) {
-      error(n,"Terminating operator is not last operator in block");
-      return false;
-    }
-  }
-  return true;
-}
-
-bool 
-ValidateImpl::checkUniformContainer(UniformContainerType* n, NodeIDs id)
-{
-  bool result = true;
-  if (!checkType(n,id))
-    result = false;
-  else if (n->getElementType() == 0) {
-    error(n,"UniformContainerType without element type");
-    result = false;
-  } else if (n->getElementType() == n) {
-    error(n,"Self-referential UniformContainerType");
-    result = false;
-  } else if (n->getName() == n->getElementType()->getName()) {
-    error(n,"UniformCOontainerType has same name as its element type");
-    result = false;
-  }
-  return result;
-}
-
-bool 
-ValidateImpl::checkDisparateContainer(DisparateContainerType* n, NodeIDs id)
-{
-  bool result = true;
-  if (!checkType(n,id))
-    result = false;
-  else if (n->size() == 0 && !llvm::isa<SignatureType>(n)) {
-    error(n,"DisparateContainerType without elements");
-    result = false;
-  } else {
-    for (DisparateContainerType::iterator I = n->begin(), E = n->end(); 
-         I != E; ++I) {
-      if (!(*I)->getType()) {
-        error(n,std::string("Null type not permited in DisparateContainerType")
-            + " for '" + (*I)->getName() + "'");
-        result = false;
-      } else if (!(*I)->hasName()) {
-        error((*I)->getType(),"Type has no field name");
-        result = false;
-      }
-    }
-  }
-  return result;
-}
-
-bool 
-ValidateImpl::checkLinkable(Linkable* LI, NodeIDs id)
-{
-  bool result = checkConstant(LI,id);
-  if (result) {
-    if (LI->getLinkageKind() < ExternalLinkage || 
-        LI->getLinkageKind() > InternalLinkage) {
-      error(LI,"Invalid LinkageKind for Linkable");
-      result = false;
-    }
-    if (LI->getName().length() == 0)  {
-      error(LI,"Zero length name for Linkable");
-      result = false;
-    }
-  }
-  return result;
-}
-
-bool
-ValidateImpl::checkExpression(const Operator* op) 
-{
-  bool result = true;
-  if (const Block* B = dyn_cast<Block>(op)) {
-    if (const Operator* block_result = B->getResult()) {
-      if (!block_result->getType()) {
-        error(op,"Block with void result used where expression expected");
-        result = false;
-      }
-    } else {
-      error(op,"Block without result used where expression expected");
-      result = false;
-    }
-    if (B->isTerminated()){
-      error(op,"Terminator found in block used as an expression");
-      result = false;
-    }
-  } else if (!op->getType()) {
-    error(op,"Operator with void result used where expression expected");
-    result = false;
-  }
-  return result;
-}
-
-bool
-ValidateImpl::checkBooleanExpression(const Operator* op)
-{
-  if (checkExpression(op))
-    if (!op->typeis<BooleanType>()) {
-      error(op,std::string("Expecting boolean expression but type '") +
-        op->getType()->getName() + "' was found");
-      return false;
-    } else
-      return true;
-  return false;
-}
-
-bool
-ValidateImpl::checkIntegralExpression(const Operator* op)
-{
-  if (checkExpression(op))
-    if (!op->getType()->isIntegralType()) {
-      error(op,std::string("Expecting integral expression but type '") +
-        op->getType()->getName() + "' was found");
-      return false;
-    } else
-      return true;
-  return false;
-}
-
-bool 
-ValidateImpl::checkResult(const Operator* op)
-{
-  if (const Block* B = dyn_cast<Block>(op)) {
-    if (!B->getResult() && !isa<Block>(B->getParent()->getParent())) {
-      error(B,"Block with no result used where an expression is expected");
-      return false;
-    }
-  } else if (!op->getType() && !isa<Block>(op->getParent()->getParent()))  {
-    error(op,"Operator with void result used where an expression is expected");
-    return false;
-  }
-  return true;
-}
-
-template<> inline void
-ValidateImpl::validate(AnyType* n)
-{
-  checkType(n,AnyTypeID); 
-}
-
-template<> inline void
-ValidateImpl::validate(BooleanType* n)
-{
-  checkType(n,BooleanTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(CharacterType* n)
-{
-  checkType(n,CharacterTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(IntegerType* n)
-{
-  if (checkNode(n))
-    if (!n->is(IntegerTypeID))
-      error(n,"Bad ID for IntegerType");
-    else if (n->getBits() == 0)
-      error(n,"Integer type cannot have zero bits");
-}
-
-template<> inline void
-ValidateImpl::validate(OpaqueType* n)
-{
-  checkType(n,OpaqueTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(RangeType* n)
-{
-  if (checkType(n,RangeTypeID))
-    if (n->getMin() > n->getMax())
-      error(n,"RangeType has negative range");
-}
-
-template<> inline void
-ValidateImpl::validate(EnumerationType* n)
-{
-  if (checkType(n,EnumerationTypeID))
-    for (EnumerationType::iterator I = n->begin(), E = n->end(); I != E; ++I )
-      if ((I)->length() == 0)
-        error(n,"Enumerator with zero length");
-}
-
-template<> inline void
-ValidateImpl::validate(RealType* n)
-{
-  if (checkNode(n))
-    if (!n->is(RealTypeID))
-      error(n,"Bad ID for RealType");
-    else {
-      uint64_t bits = n->getMantissa() + n->getExponent();
-      if (bits > UINT32_MAX)
-        error(n,"Too many bits in RealType");
-    }
-}
-
-template<> inline void
-ValidateImpl::validate(RationalType* n)
-{
-  if (checkNode(n))
-    if (!n->is(RationalTypeID))
-      error(n,"Bad ID for RationalType");
-}
-
-template<> inline void
-ValidateImpl::validate(StringType* n)
-{
-  checkType(n,StringTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(TextType* n)
-{
-  checkType(n,TextTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(StreamType* n)
-{
-  checkType(n,StreamTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(BufferType* n)
-{
-  checkType(n,BufferTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(PointerType* n)
-{
-  checkUniformContainer(n, PointerTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(ArrayType* n)
-{
-  if (checkUniformContainer(n, ArrayTypeID)) {
-    if (n->getMaxSize() == 0)
-      error(n,"Array of 0 elements not permited");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(VectorType* n)
-{
-  if (checkUniformContainer(n, VectorTypeID)) {
-    if (n->getSize() == 0)
-      error(n,"Vector of 0 elements not permited");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(StructureType* n)
-{
-  if (checkDisparateContainer(n, StructureTypeID)) {
-    if (n->size() == 0)
-      error(n,"Structure of 0 fields not permited");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ContinuationType* n)
-{
-  if (checkDisparateContainer(n, ContinuationTypeID)) {
-    if (n->size() == 0)
-      error(n,"Continuation of 0 fields not permited");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(SignatureType* n)
-{
-  checkDisparateContainer(n, SignatureTypeID);
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantAny* n)
-{
-  checkConstant(n,ConstantAnyID);
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantBoolean* n)
-{
-  checkConstant(n,ConstantBooleanID);
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantCharacter* n)
-{
-  if (checkConstant(n,ConstantCharacterID)) {
-    if (const CharacterType* CT = dyn_cast<CharacterType>(n->getType())) {
-      const std::string& cVal = n->getValue();
-      if (cVal.empty()) {
-        error(n,"Constant character of zero length not permitted");
-      } else if (cVal[0] == '#') {
-        const char* startptr = &cVal.c_str()[1];
-        char* endptr;
-        uint32_t val = strtoul(startptr, &endptr, 16);
-        if (endptr == startptr || (val == ULONG_MAX && errno != 0))
-          error(n,"Invalid numeric constant character '" + cVal + "'");
-        else if (val == 0)
-          error(n,"Zero valued character constant not permitted");
-      } else if (cVal.size() > 1) {
-        error(n,"Too many characters (" + utostr(cVal.size()) + 
-                ") for character constant");
-      }
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantEnumerator* n)
-{
-  if (checkConstant(n,ConstantEnumeratorID)) {
-    uint64_t val;
-    if (const EnumerationType* ET = dyn_cast<EnumerationType>(n->getType())) {
-      if (!ET->getEnumValue( n->getValue(), val))
-        error(n, "Enumerator '" + n->getValue() + "' not valid for type '" +
-          ET->getName());
-    } else {
-      error(n,"Type for ConstantEnumerator is not EnumerationType");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantInteger* CI)
-{
-  if (checkConstant(CI,ConstantIntegerID)) {
-    const char* startp = CI->getValue().c_str();
-    char* endp = 0;
-    int64_t val = strtoll(startp,&endp,CI->getBase());
-    // Check that it can be converted to binary
-    if (!endp || startp == endp || *endp != '\0')
-      error(CI,"Invalid integer constant. Conversion failed.");
-    else if (const IntegerType* Ty = dyn_cast<IntegerType>(CI->getType())) {
-      if (val < 0 && !Ty->isSigned()) {
-        error(CI,"Invalid integer constant. " 
-                 "Signed value not accepted by unsigned type");
-      } else {
-        // It converted to binary okay, check that it is in range
-        uint64_t uval = (val < 0) ? -val : val;
-        unsigned leading_zeros = llvm::CountLeadingZeros_64(uval);
-        unsigned bits_required = (sizeof(uint64_t)*8 - leading_zeros) + 
-                                 unsigned(Ty->isSigned());
-        unsigned bits_allowed  = Ty->getBits();
-        if (bits_required > bits_allowed)
-          error(CI, "Invalid integer constant. Value requires " + 
-                utostr(bits_required) + " bits, but type only holds " +
-                utostr(bits_allowed) + " bits.");
-      }
-    } else if (const RangeType* Ty = dyn_cast<RangeType>(CI->getType())) {
-      if (val < Ty->getMin() || val > Ty->getMax())
-        error(CI, "Integer constant out of range of RangeType");
-    } else {
-      error(CI,"Integer constant applied to non-integer type");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantReal* CR)
-{
-  if (checkConstant(CR,ConstantRealID)) {
-    const char* startp = CR->getValue().c_str();
-    char* endp = 0;
-    long double val = strtold(startp,&endp);
-    if (!endp || startp == endp || *endp != '\0')
-      error(CR,"Invalid real constant. Conversion failed.");
-    else {
-      // It converted to a double okay, check that it is in range
-      // But, first make sure its not one of the special values
-      if (__fpclassify(val) != FP_NORMAL)
-        return;
-      int exp = ilogbl(val);
-      uint64_t val_exp = (exp < 0 ? uint64_t(-exp) : uint64_t(exp));
-      unsigned leading_zeros = llvm::CountLeadingZeros_64(val_exp);
-      unsigned exp_bits_required = (sizeof(uint64_t)*8 - leading_zeros);
-      const RealType* Ty = llvm::cast<RealType>(CR->getType());
-      if (Ty->getExponent() < exp_bits_required) {
-        error(CR,"Real constant requires too many exponent bits (" +
-            llvm::utostr(exp_bits_required) + ") for type '" +
-            Ty->getName() + "'");
-        return;
-      }
-      unsigned numBits = Ty->getMantissa() + Ty->getExponent() + 1; 
-      if (numBits <= sizeof(float)*8) {
-        float x = val;
-        long double x2 = x;
-        if (val != x2)
-          error(CR,"Real constant out of range for real requiring " +
-            utostr(numBits) + " bits");
-      } 
-      else if (numBits <= sizeof(double)*8)
-      {
-        double x = val;
-        long double x2 = x;
-        if (val != x2)
-          error(CR,"Real constant out of range for real requiring " +
-            utostr(numBits) + " bits");
-      }
-      else if (numBits > sizeof(long double)*8)
-        warning(CR,"Don't know how to check range of real type > 128 bits");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantString* n)
-{
-  if (checkConstant(n,ConstantStringID))
-    if (std::string::npos != n->getValue().find('\0'))
-      error(n,"String constants may not contain a null byte");
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantPointer* n)
-{
-  if (checkConstant(n,ConstantPointerID)) {
-    if (const PointerType* PT = dyn_cast<PointerType>(n->getType())) {
-      if (PT->getElementType() != n->getValue()->getType()) {
-        error(n,"ConstantPointer referent does not match pointer type");
-      }
-    } else  {
-      error(n,"Constant pointer of type '" + 
-          n->getType()->getName() + "' must have pointer type");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantArray* n)
-{
-  if (checkConstant(n,ConstantArrayID)) {
-    if (const ArrayType* AT = dyn_cast<ArrayType>(n->getType())) {
-      if (n->size() > AT->getMaxSize())
-        error(n,"Too many elements (" + utostr(n->size()) + ") for array "
-                "of size " + utostr(AT->getMaxSize()));
-      else if (n->size() == 0)
-        error(n,"Zero sized ConstantArray is not permited");
-      for (ConstantArray::iterator I = n->begin(), E = n->end(); I != E; ++I)
-        if ((*I)->getType() != AT->getElementType())
-          error(n,"Element #" + utostr(I-n->begin()) + "of type '" + 
-                   (*I)->getType()->getName() + "' does not conform to array "+
-                   "element type (" + AT->getElementType()->getName() + ")");
-    } else
-      error(n,"ConstantArray must have array type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantVector* n)
-{
-  if (checkConstant(n,ConstantVectorID)) {
-    if (const VectorType* VT = dyn_cast<VectorType>(n->getType())) {
-      if (n->size() != VT->getSize())
-        error(n,"Too " + 
-          (n->size() < VT->getSize() ? std::string("few") :
-           std::string("many")) + " elements (" + utostr(n->size()) + 
-            ") for array of size " + utostr(VT->getSize()));
-      for (ConstantArray::iterator I = n->begin(), E = n->end(); I != E; ++I)
-        if ((*I)->getType() != VT->getElementType())
-          error(n,"Element #" + utostr(I-n->begin()) + "of type '" + 
-                   (*I)->getType()->getName() + "' does not conform to vector "+
-                   "element type (" + VT->getElementType()->getName() + ")");
-    } else
-      error(n,"ConstantVector must have vector type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantStructure* n)
-{
-  if (checkConstant(n,ConstantStructureID)) {
-    if (const StructureType* ST = dyn_cast<StructureType>(n->getType())) {
-      if (n->size() != ST->size())
-        error(n,"Too " + 
-          (n->size() < ST->size() ? std::string("few") :
-          std::string("many")) + " elements (" + utostr(n->size()) + 
-          ") for structure with " + utostr(ST->size()) + " fields");
-      StructureType::const_iterator STI = ST->begin();
-      for (ConstantStructure::iterator I = n->begin(), E = n->end(); 
-           I != E; ++I) {
-        if ((*I)->getType() != (*STI)->getType())
-          error(n,"Field #" + utostr(I-n->begin()) + " of type '" 
-              + (*I)->getType()->getName() + 
-              "' does not conform to type of structure field (" + 
-              (*STI)->getName() + ") of type '" + (*STI)->getType()->getName() +
-              "'");
-        ++STI;
-      }
-    } else
-      error(n,"ConstantStructure must have structure type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantContinuation* n)
-{
-  if (checkConstant(n,ConstantContinuationID)) {
-    if (const ContinuationType* CT = dyn_cast<ContinuationType>(n->getType())) {
-      if (n->size() != CT->size())
-        error(n,"Too " + 
-          (n->size() < CT->size() ? std::string("few") :
-          std::string("many")) + " elements (" + utostr(n->size()) + 
-          ") for continuation with " + utostr(CT->size()) + " fields");
-      ContinuationType::const_iterator CTI = CT->begin();
-      for (ConstantContinuation::iterator I = n->begin(), E = n->end(); 
-           I != E; ++I) {
-        if ((*I)->getType() != (*CTI)->getType())
-          error(n,"Field #" + utostr(I-n->begin()) + "of type '" 
-              + (*I)->getType()->getName() + 
-              "' does not conform to type of continuation field (" + 
-              (*CTI)->getName() + ") of type '" + (*CTI)->getType()->getName() +
-              "'");
-        ++CTI;
-      }
-    } else
-      error(n,"ConstantContinuation must have continuation type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ConstantExpression* n)
-{
-  checkConstant(n,ConstantExpressionID);
-  // FIXME: validate opcodes and operands
-}
-
-template<> inline void
-ValidateImpl::validate(Variable* n)
-{
-  if (checkLinkable(n, VariableID)) 
-    if (n->hasInitializer())
-      if (n->getType() != n->getInitializer()->getType())
-        error(n,"Variable and its initializer do not agree in type");
-}
-
-template<> inline void
-ValidateImpl::validate(Function* F)
-{
-  if (checkLinkable(F, FunctionID)) {
-    if (F->getSignature() == 0)
-      error(F,"Function without signature");
-    else if (F->getSignature()->getID() != SignatureTypeID)
-      error(F,"Function does not have SignatureType signature");
-    if (F->getLinkageKind() != ExternalLinkage && F->getBlock() == 0)
-      error(F,"Non-external Function without defining block");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(Program* P)
-{
-  if (checkLinkable(P, ProgramID)) {
-    if (P->getSignature() == 0)
-      error(P,"Program without signature");
-    else if (P->getSignature()->getID() != SignatureTypeID)
-      error(P,"Program does not have SignatureType signature");
-    else if (P->getSignature() != P->getContainingBundle()->getProgramType())
-      error(P,"Program has wrong signature");
-    if (P->getLinkageKind() != ExternalLinkage && P->getBlock() == 0)
-      error(P,"Non-external Program without defining block");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(Block* n)
-{
-  if (checkValue(n,BlockID))
-    if (n->getNumOperands() == 0)
-      error(n,"Block with no operands");
-    else {
-      Operator* terminator = 0;
-      Operator* result = 0;
-      for (MultiOperator::iterator I = n->begin(), E = n->end(); I != E; ++I) {
-        if (llvm::isa<ResultOp>(*I))
-          result = *I;
-        else if ((*I)->isTerminator()) {
-          if (terminator)
-            error(n,"Block contains multiple terminators");
-          else
-            terminator = *I;
-        } else if (terminator)
-          error(n,"Block has operators after terminator");
-        else if (!llvm::isa<Operator>(*I))
-          error(n,"Block contains non-operator");
-      }
-      if (terminator) {
-        if (llvm::isa<ReturnOp>(terminator)) {
-          if (!result) {
-            Function* F= n->getContainingFunction();
-            if (F->getResultType())
-              error(terminator,"Missing result in return from function");
-          }
-        } else if (result) {
-          warning(result,"Result will not be used in terminated block");
-        }
-      } else if (result) {
-        if (n == n->getContainingFunction()->getBlock())
-          error(result,"Function's main block has result but no return");
-      }
-    }
-}
-
-template<> inline void
-ValidateImpl::validate(ResultOp* n)
-{
-  if (checkOperator(n,ResultOpID,1)) {
-    if (Block* B = dyn_cast<Block>(n->getParent())) {
-      if (Operator* res = n->getOperand(0)) {
-        if (const Operator* existing_result = B->getResult()) {
-          if (existing_result->getType() != res->getType()) {
-            error(n,"ResultOp does not match block result type");
-          }
-        } else {
-          error(n,"Block has no result type, but has ResultOp");
-        }
-        if (Function* F = n->getContainingFunction()) {
-          if (F->getBlock() == B) {
-            const SignatureType* SigTy = F->getSignature();
-            if (res->getType()) {
-              if (res->getType() != SigTy->getResultType())
-                error(n,"ResultOp does not agree in type with Function result");
-            } else if (SigTy->getResultType()) {
-              error(n,"Void function result for non-void function");
-            }
-          }
-        } else {
-          error(n,"ResultOP not in function?");
-        }
-      } else {
-          error(n,"ResultOp with no operand");
-      }
-    } else {
-      error(n, "ResultOp not in a Block");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ReturnOp* n)
-{
-  if (checkOperator(n,ReturnOpID,0))
-    checkTerminator(n);
-}
-
-template<> inline void
-ValidateImpl::validate(BreakOp* n)
-{
-  if (checkOperator(n,BreakOpID,0))
-    if (checkTerminator(n))
-      if (!n->getContainingLoop())
-        error(n,"Break not within a loop scope");
-}
-
-template<> inline void
-ValidateImpl::validate(ContinueOp* n)
-{
-  if (checkOperator(n,ContinueOpID,0))
-    if (checkTerminator(n)) 
-      if (!n->getContainingLoop())
-        error(n,"Continue not within a loop scope");
-}
-
-template<> inline void
-ValidateImpl::validate(SelectOp* n)
-{
-  if (checkOperator(n,SelectOpID,3)) {
-    checkBooleanExpression(n->getOperand(0));
-    if (checkResult(n->getOperand(1)))
-      if (checkResult(n->getOperand(2)))
-        if (!isa<Block>(n->getParent()))
-          if (n->getOperand(1)->getType() != n->getOperand(2)->getType())
-            error(n,"SelectOp operands must have same type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(WhileOp* n)
-{
-  if (checkOperator(n,WhileOpID,2)) {
-    checkBooleanExpression(n->getOperand(0));
-    checkResult(n->getOperand(1));
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(UnlessOp* n)
-{
-  if (checkOperator(n,UnlessOpID,2)) {
-    checkBooleanExpression(n->getOperand(0));
-    checkResult(n->getOperand(1));
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(UntilOp* n)
-{
-  if (checkOperator(n,UntilOpID,2)) {
-    checkResult(n->getOperand(0));
-    checkBooleanExpression(n->getOperand(1));
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(LoopOp* n)
-{
-  if (checkOperator(n,LoopOpID,3)) {
-    checkBooleanExpression(n->getOperand(0));
-    checkResult(n->getOperand(1));
-    checkBooleanExpression(n->getOperand(2));
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(SwitchOp* n)
-{
-  if (checkOperator(n,SwitchOpID,2,false)) 
-  {
-    if (n->getNumOperands() % 2 != 0)
-      error(n,"SwitchOp requires even number of operands");
-    else {
-      const Type* resultTy = n->getOperand(1)->getType();
-      for (SwitchOp::iterator I = n->begin(), E = n->end(); I != E; ++I ) {
-        checkIntegralExpression(*I++);
-        if (checkResult(*I))
-          if (resultTy != (*I)->getType())
-            error(*I,"Inconsistent result type for SwitchOp");
-      }
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(CallOp* op)
-{
-  if (checkOperator(op,CallOpID,0,false)) 
-  {
-    hlvm::Function* F = op->getCalledFunction();
-    const SignatureType* sig = F->getSignature();
-    if (sig->isVarArgs() && (sig->size() >= op->getNumOperands()))
-        error(op,"Too few arguments for varargs function call");
-    else if (!sig->isVarArgs() && (sig->size() != op->getNumOperands()-1))
-      error(op,"Incorrect number of arguments for function call");
-    else 
-    {
-      unsigned opNum = 1;
-      for (SignatureType::const_iterator I = sig->begin(), E = sig->end(); 
-           I != E; ++I)
-        if ((*I)->getType() != op->getOperand(opNum++)->getType())
-          error(op,std::string("Argument #") + utostr(opNum-1) +
-              " has wrong type for function");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(AllocateOp* n)
-{
-  if (checkOperator(n,AllocateOpID,2)) 
-  {
-    if (const PointerType* PT = llvm::dyn_cast<PointerType>(n->getType())) 
-    {
-      if (!PT->getElementType()) 
-        error(n,"AllocateOp's pointer type has no element type!");
-    } else
-      error(n,"AllocateOp's type must be a pointer type");
-    if (!n->typeis<IntegerType>()) 
-      error(n,"AllocateOp's operand must be of integer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(DeallocateOp* n)
-{
-  if (checkOperator(n,DeallocateOpID,1)) {
-    if (const PointerType* PT = llvm::dyn_cast<PointerType>(n->getType())) {
-      if (!PT->getElementType())
-        error(n,"DeallocateOp's pointer type has no element type!");
-    } else
-      error(n,"DeallocateOp expects its first operand to be a pointer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(LoadOp* n)
-{
-  if (checkOperator(n,LoadOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getType();
-    if (Ty1 != Ty2)
-      error(n,"LoadOp type and operand type do not agree");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(StoreOp* n)
-{
-  if (checkOperator(n,StoreOpID,2)) {
-    Operator* op1 = n->getOperand(0);
-    Operator* op2 = n->getOperand(1);
-    const Type* Ty1 = op1->getType();
-    const Type* Ty2 = op2->getType();
-    if (Ty1 != Ty2) {
-      error(n,"StoreOp operands do not agree in type");
-    } else if (isa<AutoVarOp>(op1)) {
-      if (cast<AutoVarOp>(op1)->isConstant()) 
-        error(n,"Can't store to constant automatic variable");
-    } else if (const GetOp* ref = dyn_cast<GetOp>(n->getOperand(0))) {
-      const Value* R = ref->getReferent();
-      if (isa<Variable>(R) && cast<Variable>(R)->isConstant())
-        error(n,"Can't store to constant variable");
-      else if (isa<AutoVarOp>(R) && cast<AutoVarOp>(R)->isConstant())
-        error(n,"Can't store to constant automatic variable");
-    } else if (const GetIndexOp* ref = dyn_cast<GetIndexOp>(n)) {
-      /// FIXME: Implement this
-    } else if (const GetFieldOp* ref = dyn_cast<GetFieldOp>(n)) {
-      /// FIXME: Implement this
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(GetIndexOp* n)
-{
-  if (checkOperator(n,GetIndexOpID,2)) {
-    // FIXME: Implement check for reference on first operand
-    // FIXME: Implement check for integer type on second operand
-  }
-}
-template<> inline void
-ValidateImpl::validate(GetFieldOp* n)
-{
-  if (checkOperator(n,GetFieldOpID,1)) {
-    // FIXME: Implement check for reference on first operand
-    // FIXME: Implement check for string type on second operand
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(AutoVarOp* n)
-{
-  if (checkOperator(n,AutoVarOpID,0,false)) {
-    if (n->hasInitializer()) {
-      if (n->getType() != n->getInitializer()->getType()) {
-        error(n,"AutoVarOp's type does not agree with type of its Initializer");
-      } 
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(GetOp* op)
-{
-  if (checkOperator(op,GetOpID,0,true)) {
-    const Value* referent = op->getReferent();
-    Block* blk = op->getContainingBlock();
-    if (!blk)
-      error(op,"GetOp not in a block?");
-    else if (const AutoVarOp* ref = dyn_cast<AutoVarOp>(referent)) {
-      while (blk != 0) {
-        if (AutoVarOp* av = blk->getAutoVar(ref->getName())) 
-          if (av == ref)
-            break;
-        blk = blk->getContainingBlock();
-      }
-      if (blk == 0)
-        error(ref,"Referent does not match name in scope");
-    } else if (const Argument* arg = dyn_cast<Argument>(referent)) {
-      Function* F = op->getContainingFunction();
-      if (!F)
-        error(op,"GetOp not in a function?");
-      else if (F->getArgument(arg->getName()) != arg)
-        error(F,"Referent does not match function argument");
-    } else if (const Constant* cval = dyn_cast<Constant>(referent)) {
-      Bundle* B = op->getContainingBundle();
-      if (!B)
-        error(op,"GetOp not in a bundle?");
-      else if (B->getConst(cval->getName()) != cval)
-        error(cval,"Constant not found in Bundle");
-    } else if (const Type* Ty = dyn_cast<Type>(referent)) {
-      Bundle* B = op->getContainingBundle();
-      if (!B)
-        error(op,"GetOp not in bundle?");
-      else if (B->getType(Ty->getName()) != Ty)
-        error(Ty,"Type not found in Bundle");
-    } else {
-      error(op,"Referent of unknown kind");
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(NegateOp* n)
-{
-  if (checkOperator(n,NegateOpID,1)) {
-    const Type* Ty = n->getType();
-    if (!Ty->isNumericType())
-      error(n,"You can only negate objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ComplementOp* n)
-{
-  if (checkOperator(n,ComplementOpID,1)) {
-    const Type* Ty = n->getType();
-    if (!Ty->isIntegralType())
-      error(n,"You can only complement objects of integral type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(PreIncrOp* n)
-{
-  if (checkOperator(n,PreIncrOpID,1)) {
-    if (GetOp* oprnd = llvm::dyn_cast<GetOp>(n->getOperand(0))) {
-      const Value* V = oprnd->getReferent();
-      if (V && (isa<AutoVarOp>(V) || isa<Variable>(V))) {
-        if (!llvm::cast<Value>(V)->getType()->isNumericType())
-          error(n,"Target of PostIncrOp is not numeric type");
-      } else
-        ; // Handled elsewhere
-    } else 
-      error(n,"Operand of PostIncrOp must be a GetOp");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(PostIncrOp* n)
-{
-  if (checkOperator(n,PostIncrOpID,1)) {
-    if (GetOp* oprnd = llvm::dyn_cast<GetOp>(n->getOperand(0))) {
-      const Value* V = oprnd->getReferent();
-      if (V && (isa<AutoVarOp>(V) || isa<Variable>(V))) {
-        if (!llvm::cast<Value>(V)->getType()->isNumericType())
-          error(n,"Target of PostIncrOp is not numeric type");
-      } else
-        ; // Handled elsewhere
-    } else 
-      error(n,"Operand of PostIncrOp must be a GetOp");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(PreDecrOp* n)
-{
-  if (checkOperator(n,PreDecrOpID,1)){
-    if (GetOp* oprnd = llvm::dyn_cast<GetOp>(n->getOperand(0))) {
-      const Value* V = oprnd->getReferent();
-      if (V && (isa<AutoVarOp>(V) || isa<Variable>(V))) {
-        if (!llvm::cast<Value>(V)->getType()->isNumericType())
-          error(n,"Target of PreDecrOp is not numeric type");
-      } else
-        ; // Handled elsewhere
-    } else 
-      error(n,"Operand of PreDecrOp must be a GetOp");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(PostDecrOp* n)
-{
-  if (checkOperator(n,PostDecrOpID,1)) {
-    if (GetOp* oprnd = llvm::dyn_cast<GetOp>(n->getOperand(0))) {
-      const Value* V = oprnd->getReferent();
-      if (V && (isa<AutoVarOp>(V) || isa<Variable>(V))) {
-        if (!llvm::cast<Value>(V)->getType()->isNumericType())
-          error(n,"Target of PostDecrOp is not numeric type");
-      } else
-        ; // Handled elsewhere
-    } else 
-      error(n,"Operand of PostDecrOp must be a GetOp");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(SizeOfOp* n)
-{
-  if (checkOperator(n,SizeOfOpID,1))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(LengthOp* n)
-{
-  if (checkOperator(n,LengthOpID,1))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(ConvertOp* n)
-{
-  if (checkOperator(n,ConvertOpID,1)) {
-    const Operator* Oprnd1 = n->getOperand(0);
-    /// FIXME: assure type of Oprnd1 is convertible to n->getType();
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(AddOp* n)
-{
-  if (checkOperator(n,AddOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->isNumericType() || !Ty2->isNumericType())
-      error(n,"You can only add objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(SubtractOp* n)
-{
-  if (checkOperator(n,SubtractOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->isNumericType() || !Ty2->isNumericType())
-      error(n,"You can only subtract objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(MultiplyOp* n)
-{
-  if (checkOperator(n,MultiplyOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->isNumericType() || !Ty2->isNumericType())
-      error(n,"You can only multiply objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(DivideOp* n)
-{
-  if (checkOperator(n,DivideOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->isNumericType() || !Ty2->isNumericType())
-      error(n,"You can only multiply objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ModuloOp* n)
-{
-  if (checkOperator(n,ModuloOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->isNumericType() || !Ty2->isNumericType())
-      error(n,"You can only multiply objects of numeric type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(BAndOp* n)
-{
-  if (checkOperator(n,BAndOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(IntegerTypeID) || !Ty2->is(IntegerTypeID))
-      error(n,"You can only bitwise and objects of integer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(BOrOp* n)
-{
-  if (checkOperator(n,BOrOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(IntegerTypeID) || !Ty2->is(IntegerTypeID))
-      error(n,"You can only bitwise or objects of integer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(BXorOp* n)
-{
-  if (checkOperator(n,BXorOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(IntegerTypeID) || !Ty2->is(IntegerTypeID))
-      error(n,"You can only bitwise xor objects of integer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(BNorOp* n)
-{
-  if (checkOperator(n,BNorOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(IntegerTypeID) || !Ty2->is(IntegerTypeID))
-      error(n,"You can only bitwise nor objects of integer type");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(NotOp* n)
-{
-  if (checkOperator(n,NotOpID,1)) {
-    const Type* Ty = n->getOperand(0)->getType();
-    if (!Ty->is(BooleanTypeID))
-      error(n,"NotOp expects boolean typed operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(AndOp* n)
-{
-  if (checkOperator(n,AndOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(BooleanTypeID) || !Ty2->is(BooleanTypeID))
-      error(n,"AndOp expects two boolean typed operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(OrOp* n)
-{
-  if (checkOperator(n,OrOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(BooleanTypeID) || !Ty2->is(BooleanTypeID))
-      error(n,"OrOp expects two boolean typed operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(NorOp* n)
-{
-  if (checkOperator(n,NorOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(BooleanTypeID) || !Ty2->is(BooleanTypeID))
-      error(n,"NorOp expects two boolean typed operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(XorOp* n)
-{
-  if (checkOperator(n,XorOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(BooleanTypeID) || !Ty2->is(BooleanTypeID))
-      error(n,"XorOp expects two boolean typed operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(LessThanOp* n)
-{
-  if (checkOperator(n,LessThanOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(GreaterThanOp* n)
-{
-  if (checkOperator(n,GreaterThanOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(LessEqualOp* n)
-{
-  if (checkOperator(n,LessEqualOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(GreaterEqualOp* n)
-{
-  if (checkOperator(n,GreaterEqualOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(EqualityOp* n)
-{
-  if (checkOperator(n,EqualityOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(InequalityOp* n)
-{
-  if (checkOperator(n,InequalityOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(IsPInfOp* n)
-{
-  if (checkOperator(n,IsPInfOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"IsPInfoOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(IsNInfOp* n)
-{
-  if (checkOperator(n,IsNInfOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"IsNInfoOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(IsNanOp* n)
-{
-  if (checkOperator(n,IsNanOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"IsNanOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(TruncOp* n)
-{
-  if (checkOperator(n,TruncOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"TruncOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(RoundOp* n)
-{
-  if (checkOperator(n,RoundOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"RoundOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(FloorOp* n)
-{
-  if (checkOperator(n,FloorOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"FloorOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(CeilingOp* n)
-{
-  if (checkOperator(n,CeilingOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"CeilingOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(LogEOp* n)
-{
-  if (checkOperator(n,LogEOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"LogEOpID requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(Log2Op* n)
-{
-  if (checkOperator(n,Log2OpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"Log2OpID requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(Log10Op* n)
-{
-  if (checkOperator(n,Log10OpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"Log10OpID requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(SquareRootOp* n)
-{
-  if (checkOperator(n,SquareRootOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"SquareRootOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(CubeRootOp* n)
-{
-  if (checkOperator(n,CubeRootOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"CubeRootOpID requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(FactorialOp* n)
-{
-  if (checkOperator(n,FactorialOpID,1)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    if (!Ty1->is(RealTypeID))
-      error(n,"FactorialOp requires real number operand");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(PowerOp* n)
-{
-  if (checkOperator(n,PowerOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(RealTypeID) || !Ty2->is(RealTypeID))
-      error(n,"LogEOpID requires two real number operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(RootOp* n)
-{
-  if (checkOperator(n,RootOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(RealTypeID) || !Ty2->is(RealTypeID))
-      error(n,"RootOp requires two real number operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(GCDOp* n)
-{
-  if (checkOperator(n,GCDOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(RealTypeID) || !Ty2->is(RealTypeID))
-      error(n,"GCDOp requires two real number operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(LCMOp* n)
-{
-  if (checkOperator(n,LCMOpID,2)) {
-    const Type* Ty1 = n->getOperand(0)->getType();
-    const Type* Ty2 = n->getOperand(1)->getType();
-    if (!Ty1->is(RealTypeID) || !Ty2->is(RealTypeID))
-      error(n,"LCMOp requires two real number operands");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(StrInsertOp* n)
-{
-  if (checkOperator(n,StrInsertOpID,3))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(StrEraseOp* n)
-{
-  if (checkOperator(n,StrEraseOpID,3))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(StrReplaceOp* n)
-{
-  if (checkOperator(n,StrReplaceOpID,4))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(StrConcatOp* n)
-{
-  if (checkOperator(n,StrConcatOpID,2))
-    ;
-}
-
-template<> inline void
-ValidateImpl::validate(OpenOp* n)
-{
-  if (checkOperator(n,OpenOpID,1)) {
-    const Type* Ty = n->getOperand(0)->getType();
-    if (!isa<StringType>(Ty))
-      error(n,"OpenOp expects first operand to be a string");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(CloseOp* n)
-{
-  if (checkOperator(n,CloseOpID,1)) {
-    const Type* Ty = n->getOperand(0)->getType();
-    if (!isa<StreamType>(Ty))
-      error(n,"CloseOp expects first operand to be a stream");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(ReadOp* n)
-{
-  if (checkOperator(n,ReadOpID,2)) {
-    const Type* Ty = n->getOperand(0)->getType();
-    if (!isa<StreamType>(Ty))
-      error(n,"ReadOp expects first operand to be a stream");
-    Ty = n->getOperand(1)->getType();
-    if (!isa<BufferType>(Ty))
-      error(n,"ReadOp expects second operand to be a buffer");
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(WriteOp* n)
-{
-  if (checkOperator(n,WriteOpID,2)) {
-    const Type* Ty = n->getOperand(0)->getType();
-    if (!isa<StreamType>(Ty))
-      error(n,"WriteOp expects first operand to be a stream");
-    Ty = n->getOperand(1)->getType();
-    switch (Ty->getID()) {
-      case BufferTypeID:
-      case TextTypeID:
-      case StringTypeID:
-        break;
-      default:
-        error(n,"WriteOp expects second operand to be a writable type");
-        break;
-    }
-  }
-}
-
-template<> inline void
-ValidateImpl::validate(Bundle* n)
-{
-  // FIXME: checkNode(n);
-}
-
-template<> inline void
-ValidateImpl::validate(Import* n)
-{
-  // FIXME: checkNode(n);
-}
-
-void
-ValidateImpl::handle(Node* n,Pass::TraversalKinds k)
-{
-  switch (n->getID())
-  {
-    case NoNodeID:
-      hlvmDeadCode("Invalid Node Kind");
-      break;
-    case AnyTypeID:              validate(cast<AnyType>(n)); break;
-    case BooleanTypeID:          validate(cast<BooleanType>(n)); break;
-    case CharacterTypeID:        validate(cast<CharacterType>(n)); break;
-    case IntegerTypeID:          validate(cast<IntegerType>(n)); break;
-    case RangeTypeID:            validate(cast<RangeType>(n)); break;
-    case EnumerationTypeID:      validate(cast<EnumerationType>(n)); break;
-    case RealTypeID:             validate(cast<RealType>(n)); break;
-    case RationalTypeID:         validate(cast<RationalType>(n)); break;
-    case TextTypeID:             validate(cast<TextType>(n)); break;
-    case StringTypeID:           validate(cast<StringType>(n)); break;
-    case StreamTypeID:           validate(cast<StreamType>(n)); break;
-    case BufferTypeID:           validate(cast<BufferType>(n)); break;
-    case PointerTypeID:          validate(cast<PointerType>(n)); break;
-    case ArrayTypeID:            validate(cast<ArrayType>(n)); break;
-    case VectorTypeID:           validate(cast<VectorType>(n)); break;
-    case StructureTypeID:        validate(cast<StructureType>(n)); break;
-    case SignatureTypeID:        validate(cast<SignatureType>(n)); break;
-    case ContinuationTypeID:     validate(cast<ContinuationType>(n)); break;
-    case OpaqueTypeID:           validate(cast<OpaqueType>(n)); break;
-    case InterfaceID:            /*validate(cast<InterfaceID>);*/ break;
-    case ClassID:                /*validate(cast<ClassID>);*/ break;
-    case MethodID:               /*validate(cast<MethodID>);*/ break;
-    case ImplementsID:           /*validate(cast<ImplementsID>);*/ break;
-    case VariableID:             validate(cast<Variable>(n)); break;
-    case FunctionID:             validate(cast<Function>(n)); break;
-    case ProgramID:              validate(cast<Program>(n)); break;
-    case BundleID:               validate(cast<Bundle>(n)); break;
-    case BlockID:                validate(cast<Block>(n)); break;
-    case ImportID:               validate(cast<Import>(n)); break;
-    case CallOpID:               validate(cast<CallOp>(n)); break;
-    case InvokeOpID:             /*validate(cast<InvokeOp>(n));*/ break;
-    case DispatchOpID:           /*validate(cast<DispatchOp>(n));*/ break;
-    case CreateContOpID:         /*validate(cast<CreateContOp>(n));*/ break;
-    case CallWithContOpID:       /*validate(cast<CallWithContOp>(n));*/ break;
-    case ThrowOpID:              /*validate(cast<ThrowOp>(n));*/ break;
-    case ReturnOpID:             validate(cast<ReturnOp>(n)); break;
-    case ResultOpID:             validate(cast<ResultOp>(n)); break;
-    case ContinueOpID:           validate(cast<ContinueOp>(n)); break;
-    case BreakOpID:              validate(cast<BreakOp>(n)); break;
-    case SelectOpID:             validate(cast<SelectOp>(n)); break;
-    case WhileOpID:              validate(cast<WhileOp>(n)); break;
-    case UnlessOpID:             validate(cast<UnlessOp>(n)); break;
-    case UntilOpID:              validate(cast<UntilOp>(n)); break;
-    case LoopOpID:               validate(cast<LoopOp>(n)); break;
-    case SwitchOpID:             validate(cast<SwitchOp>(n)); break;
-    case LoadOpID:               validate(cast<LoadOp>(n)); break;
-    case StoreOpID:              validate(cast<StoreOp>(n)); break;
-    case GetIndexOpID:           validate(cast<GetIndexOp>(n)); break;
-    case GetFieldOpID:           validate(cast<GetFieldOp>(n)); break;
-    case AllocateOpID:           validate(cast<AllocateOp>(n)); break;
-    case DeallocateOpID:         validate(cast<DeallocateOp>(n)); break;
-    case ReallocateOpID:         /*validate(cast<ReallocateOp>(n));*/ break;
-    case GetOpID:                validate(cast<GetOp>(n)); break;
-    case AutoVarOpID:            validate(cast<AutoVarOp>(n)); break;
-    case NegateOpID:             validate(cast<NegateOp>(n)); break;
-    case ComplementOpID:         validate(cast<ComplementOp>(n)); break;
-    case PreIncrOpID:            validate(cast<PreIncrOp>(n)); break;
-    case PostIncrOpID:           validate(cast<PostIncrOp>(n)); break;
-    case PreDecrOpID:            validate(cast<PreDecrOp>(n)); break;
-    case PostDecrOpID:           validate(cast<PostDecrOp>(n)); break;
-    case SizeOfOpID:             validate(cast<SizeOfOp>(n)); break;
-    case ConvertOpID:            validate(cast<ConvertOp>(n)); break;
-    case AddOpID:                validate(cast<AddOp>(n)); break;
-    case SubtractOpID:           validate(cast<SubtractOp>(n)); break;
-    case MultiplyOpID:           validate(cast<MultiplyOp>(n)); break;
-    case DivideOpID:             validate(cast<DivideOp>(n)); break;
-    case ModuloOpID:             validate(cast<ModuloOp>(n)); break;
-    case BAndOpID:               validate(cast<BAndOp>(n)); break;
-    case BOrOpID:                validate(cast<BOrOp>(n)); break;
-    case BXorOpID:               validate(cast<BXorOp>(n)); break;
-    case BNorOpID:               validate(cast<BNorOp>(n)); break;
-    case NotOpID:                validate(cast<NotOp>(n)); break;
-    case AndOpID:                validate(cast<AndOp>(n)); break;
-    case OrOpID:                 validate(cast<OrOp>(n)); break;
-    case NorOpID:                validate(cast<NorOp>(n)); break;
-    case XorOpID:                validate(cast<XorOp>(n)); break;
-    case LessThanOpID:           validate(cast<LessThanOp>(n)); break;
-    case GreaterThanOpID:        validate(cast<GreaterThanOp>(n)); break;
-    case LessEqualOpID:          validate(cast<LessEqualOp>(n)); break;
-    case GreaterEqualOpID:       validate(cast<GreaterEqualOp>(n)); break;
-    case EqualityOpID:           validate(cast<EqualityOp>(n)); break;
-    case InequalityOpID:         validate(cast<InequalityOp>(n)); break;
-    case IsPInfOpID:             validate(cast<IsPInfOp>(n)); break;
-    case IsNInfOpID:             validate(cast<IsNInfOp>(n)); break;
-    case IsNanOpID:              validate(cast<IsNanOp>(n)); break;
-    case TruncOpID:              validate(cast<TruncOp>(n)); break;
-    case RoundOpID:              validate(cast<RoundOp>(n)); break;
-    case FloorOpID:              validate(cast<FloorOp>(n)); break;
-    case CeilingOpID:            validate(cast<CeilingOp>(n)); break;
-    case LogEOpID:               validate(cast<LogEOp>(n)); break;
-    case Log2OpID:               validate(cast<Log2Op>(n)); break;
-    case Log10OpID:              validate(cast<Log10Op>(n)); break;
-    case SquareRootOpID:         validate(cast<SquareRootOp>(n)); break;
-    case CubeRootOpID:           validate(cast<CubeRootOp>(n)); break;
-    case FactorialOpID:          validate(cast<FactorialOp>(n)); break;
-    case PowerOpID:              validate(cast<PowerOp>(n)); break;
-    case RootOpID:               validate(cast<RootOp>(n)); break;
-    case GCDOpID:                validate(cast<GCDOp>(n)); break;
-    case LCMOpID:                validate(cast<LCMOp>(n)); break;
-    case StrInsertOpID:          validate(cast<StrInsertOp>(n)); break;
-    case StrEraseOpID:           validate(cast<StrEraseOp>(n)); break;
-    case StrReplaceOpID:         validate(cast<StrReplaceOp>(n)); break;
-    case StrConcatOpID:          validate(cast<StrConcatOp>(n)); break;
-    case LengthOpID:             validate(cast<LengthOp>(n)); break;
-    case OpenOpID:               validate(cast<OpenOp>(n)); break;
-    case CloseOpID:              validate(cast<CloseOp>(n)); break;
-    case ReadOpID:               validate(cast<ReadOp>(n)); break;
-    case WriteOpID:              validate(cast<WriteOp>(n)); break;
-    case PositionOpID:           /*validate(cast<PositionOp>(n));*/ break;
-    case ConstantAnyID:          validate(cast<ConstantAny>(n)); break;
-    case ConstantBooleanID:      validate(cast<ConstantBoolean>(n)); break;
-    case ConstantCharacterID:    validate(cast<ConstantCharacter>(n)); break;
-    case ConstantEnumeratorID:   validate(cast<ConstantEnumerator>(n)); break;
-    case ConstantIntegerID:      validate(cast<ConstantInteger>(n)); break;
-    case ConstantRealID:         validate(cast<ConstantReal>(n)); break;
-    case ConstantStringID:       validate(cast<ConstantString>(n)); break;
-    case ConstantPointerID:      validate(cast<ConstantPointer>(n)); break;
-    case ConstantArrayID:        validate(cast<ConstantArray>(n)); break;
-    case ConstantVectorID:       validate(cast<ConstantVector>(n)); break;
-    case ConstantStructureID:    validate(cast<ConstantStructure>(n)); break;
-    case ConstantContinuationID: validate(cast<ConstantContinuation>(n)); break;
-    case ConstantExpressionID:   validate(cast<ConstantExpression>(n)); break;
-      break; // Not implemented yet
-    case DocumentationID:
-      /// Nothing to validate (any doc is a good thing :)
-      break;
-    default:
-      hlvmDeadCode("Invalid Node Kind");
-      break;
-    }
-}
-
-}
-
-Pass* 
-Pass::new_ValidatePass()
-{
-  return new ValidateImpl();
-}
-
-bool
-hlvm::validate(AST* tree)
-{
-  PassManager* PM = PassManager::create();
-  Pass* pass = Pass::new_ValidatePass(); 
-  PM->addPass( pass );
-  PM->runOn(tree);
-  delete PM;
-  bool result = pass->passed();
-  delete pass;
-  return result;
-}
diff --git a/hlvm/hlvm/Reader/HLVM.rng b/hlvm/hlvm/Reader/HLVM.rng
deleted file mode 100644
index 00c4245..0000000
--- a/hlvm/hlvm/Reader/HLVM.rng
+++ /dev/null
@@ -1,1424 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--=========================================================================-->
-<!-- Copyright (C) 2006 Reid Spencer. All Rights Reserved.                   -->
-<!--                                                                         -->
-<!-- This software is free software; you can redistribute it and/or modify it-->
-<!-- under the terms of the GNU Lesser General Public License as published by-->
-<!-- the Free Software Foundation; either version 2.1 of the License, or (at -->
-<!-- your option) any later version.                                         -->
-<!--                                                                         -->
-<!-- This software is distributed in the hope that it will be useful, but    -->
-<!-- WITHOUT ANY WARRANTY; without even the implied warranty of              -->
-<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser-->
-<!-- General Public License for more details.                                -->
-<!--                                                                         -->
-<!-- You should have received a copy of the GNU Lesser General Public License-->
-<!-- along with this library in the file named LICENSE.txt; if not, write to -->
-<!-- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,    -->
-<!-- Boston, MA 02110-1301 USA                                               -->
-<!--                                                                         -->
-<!--=========================================================================-->
-<!-- @file hlvm/Reader/HLVM.rng                                              -->
-<!-- @author Reid Spencer <rspencer@reidspencer.com> (original author)       -->
-<!-- @date 2006/05/13                                                        -->
-<!-- @since 0.1.0                                                            -->
-<!-- @brief Defines the core XPL language via Relax/NG Schema                -->
-<!--=========================================================================-->
-<!-- HLVM AST Schema                                                         -->
-<!--                                                                         -->
-<!-- This file contains the Relax/NG schema for construction of the HLVM AST -->
-<!-- via an XML syntax. The schema aims to be simple and closely match the   -->
-<!-- construction of an HLVM AST.                                            -->
-<!--                                                                         -->
-<!-- For full commentary on this schema, see http://hlvm.org/docs/XML.html   -->
-<!--                                                                         -->
-<!--=========================================================================-->
-
-<grammar 
-  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-  xmlns ="http://relaxng.org/ns/structure/1.0"
-  xmlns:a="http://relaxng.org/ns/annotation/1.0"
-  ns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng">
-
-  <start>
-    <ref name="hlvm.elem"/>
-  </start>
-
-  <!-- PATTERN DEFINITIONS FOR DATA TYPES -->
-
-  <define name="Identifier.type">
-    <choice>
-      <ref name="Unprefixed_Identifier.type"/>
-      <ref name="Prefixed_Identifier.type"/>
-    </choice>
-  </define>
-
-  <define name="Unprefixed_Identifier.type">
-    <data type="string">
-      <param name="pattern">[^:]+</param>
-      <param name="maxLength">1024</param>
-    </data>
-  </define>
-
-  <define name="Prefixed_Identifier.type">
-    <data type="string">
-      <param name="pattern">[^:]+:[^:]+</param>
-      <param name="maxLength">1024</param>
-    </data>
-  </define>
-
-  <define name="C_Identifier.type">
-    <data type="string">
-      <param name="pattern">[A-Za-z_][A-Za-z0-9_]*</param>
-      <param name="maxLength">256</param>
-    </data>
-  </define>
-
-  <define name="Boolean.type">
-    <choice>
-      <data type="boolean"/>
-      <value>TRUE</value>
-      <value>True</value>
-      <value>true</value>
-      <value>YES</value>
-      <value>Yes</value>
-      <value>yes</value>
-      <value>1</value>
-      <value>FALSE</value>
-      <value>False</value>
-      <value>false</value>
-      <value>NO</value>
-      <value>No</value>
-      <value>no</value>
-      <value>0</value>
-    </choice>
-  </define>
-
-  <define name="Binary.type">
-    <data type="string">
-      <param name="minLength">1</param>
-      <param name="maxLength">1024</param>
-      <param name="pattern">[01]+</param>
-    </data>
-  </define>
-
-  <define name="Octal.type" >
-    <data type="string">
-      <param name="minLength">1</param>
-      <param name="maxLength">1024</param>
-      <param name="pattern">[0-7]+</param>
-    </data>
-  </define>
-
-  <define name="Decimal.type">
-    <data type="string">
-      <param name="minLength">1</param>
-      <param name="maxLength">1024</param>
-      <param name="pattern">[+\-]?\d+</param>
-    </data>
-  </define>
-
-  <define name="Hexadecimal.type">
-    <data type="string">
-      <param name="minLength">1</param>
-      <param name="maxLength">1024</param>
-      <param name="pattern">([0-9A-Fa-f][0-9A-Fa-f])+</param>
-    </data>
-  </define>
-
-  <define name="Integer.type">
-    <choice>
-      <ref name="Binary.type"/>
-      <ref name="Octal.type"/>
-      <ref name="Decimal.type"/>
-      <ref name="Hexadecimal.type"/>
-    </choice>
-  </define>
-
-  <define name="Real.type">
-    <data type="string">
-      <param name="minLength">1</param>
-      <param name="maxLength">1024</param>
-      <param name="pattern">ninf|pinf|nan|signan|zero|nzero|[+\-]?0x[0-9A-Fa-f](\.[0-9A-Fa-f]+)?p[-+][0-9]+|#[0-9A-Fa-f]{16}|#[0-9a-fA-F]{8}|[+\-]?\d+\.\d*([Ee][+\-]?\d+)?</param>
-    </data>
-  </define>
-
-  <define name="Encoding.type">
-    <choice>
-      <value>utf-8</value>
-      <value>utf-16</value>
-      <value>ucs</value>
-    </choice>
-  </define>
-
-  <define name="Character.type">
-    <choice>
-      <data type="string">
-        <param name="length">1</param>
-      </data>
-      <data type="string">
-        <param name="length">5</param>
-        <param name="pattern">[#][0-9A-Fa-f]{4,4}</param>
-      </data>
-    </choice>
-  </define>
-
-  <define name="Octet.type">
-    <data type="unsignedByte"/>
-  </define>
-
-  <!-- DOCUMENTATION OF HLVM AST PROGRAMS -->
-
-  <define name="Documentation.pat">
-    <optional>
-      <element name="doc">
-        <zeroOrMore>
-          <choice>
-            <text/>
-            <ref name="Any.pat"/> <!-- should really be XHTML elements -->
-          </choice>
-        </zeroOrMore>
-      </element>
-    </optional>
-  </define>
-
-  <define name="Any.pat">
-    <element>
-      <anyName/>
-      <zeroOrMore>
-        <choice>
-          <attribute>
-            <anyName/>
-          </attribute>
-          <text/>
-          <ref name="Any.pat"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-
-  <!-- PATTERNS THAT DEFINE name AND type ATTRIBUTES -->
-
-  <define name="Named_Element.pat">
-    <attribute name="id">
-      <ref name="Identifier.type"/>
-    </attribute>
-  </define>
-
-  <define name="Typed_Element.pat">
-    <attribute name="type">
-      <ref name="Identifier.type"/>
-    </attribute>
-  </define>
-
-  <define name="Named_Typed_Element.pat">
-    <attribute name="id">
-      <ref name="Identifier.type"/>
-    </attribute>
-    <attribute name="type">
-      <ref name="Identifier.type"/>
-    </attribute>
-  </define>
-
-  <!-- HLVM PATTERN -->
-  <define name="hlvm.elem">
-    <element name="hlvm">
-      <attribute name="pubid"><data type="anyURI"/></attribute>
-      <ref name="Documentation.pat"/>
-      <oneOrMore>
-        <ref name="bundle.elem"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <!--BUNDLES PATTERN -->
-
-  <define name="bundle.elem">
-    <element name="bundle">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <zeroOrMore>
-        <ref name="import.elem"/>
-      </zeroOrMore>
-      <oneOrMore>
-        <choice>
-          <ref name="any.elem"/>
-          <ref name="array.elem"/>
-          <ref name="boolean.elem"/>
-          <ref name="buffer.elem"/>
-          <ref name="character.elem"/>
-          <ref name="constant.elem"/>
-          <ref name="enumeration.elem"/>
-          <ref name="function.elem"/>
-          <ref name="opaque.elem"/>
-          <ref name="pointer.elem"/>
-          <ref name="program.elem"/>
-          <ref name="range.elem"/>
-          <ref name="real.elem"/>
-          <ref name="signature.elem"/>
-          <ref name="signed.elem"/>
-          <ref name="stream.elem"/>
-          <ref name="string.elem"/>
-          <ref name="structure.elem"/>
-          <ref name="text.elem"/>
-          <ref name="unsigned.elem"/>
-          <ref name="variable.elem"/>
-          <ref name="vector.elem"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="import.elem">
-    <element name="import">
-      <attribute name="prefix">
-        <ref name="Identifier.type"/>
-      </attribute>
-      <attribute name="pubid">
-        <data type="anyURI"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <!--PATTERNS FOR DEFINING TYPES -->
-
-  <define name="any.elem">
-    <element name="any">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="array.elem">
-    <element name="array">
-      <ref name="Named_Element.pat"/>
-      <attribute name="length"><data type="nonNegativeInteger"/></attribute>
-      <attribute name="of"><ref name="Identifier.type"/></attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="boolean.elem">
-    <element name="boolean">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="buffer.elem">
-    <element name="buffer">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="character.elem">
-    <element name="character">
-      <ref name="Named_Element.pat"/>
-      <attribute name="encoding">
-        <ref name="Encoding.type"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="enumeration.elem">
-    <element name="enumeration">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <oneOrMore>
-        <element name="enumerator">
-          <attribute name="id">
-            <ref name="Unprefixed_Identifier.type"/>
-          </attribute>
-        </element>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="opaque.elem">
-    <element name="opaque">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="pointer.elem">
-    <element name="pointer">
-      <ref name="Named_Element.pat"/>
-      <attribute name="to"><ref name="Identifier.type"/></attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="range.elem">
-    <element name="range">
-      <ref name="Named_Element.pat"/>
-      <attribute name="min">
-        <ref name="Integer.type"/>
-      </attribute>
-      <attribute name="max">
-        <ref name="Integer.type"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="real.elem">
-    <element name="real">
-      <ref name="Named_Element.pat"/>
-      <attribute name="mantissa">
-        <ref name="Integer.type"/>
-      </attribute>
-      <attribute name="exponent">
-        <ref name="Integer.type"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="signed.elem">
-    <element name="signed">
-      <ref name="Named_Element.pat"/>
-      <optional>
-        <attribute name="bits">
-          <ref name="Integer.type"/>
-        </attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="stream.elem">
-    <element name="stream">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="string.elem">
-    <element name="string">
-      <ref name="Named_Element.pat"/>
-      <attribute name="encoding">
-        <ref name="Encoding.type"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="structure.elem">
-    <element name="structure">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <zeroOrMore>
-        <element name="field">
-          <ref name="Named_Typed_Element.pat"/>
-          <ref name="Documentation.pat"/>
-        </element>
-      </zeroOrMore>
-    </element>
-  </define>
-
-  <define name="signature.elem">
-    <element name="signature">
-      <ref name="Named_Element.pat"/>
-      <attribute name="result"><ref name="Identifier.type"/></attribute>
-      <optional>
-        <attribute name="varargs"><ref name="Boolean.type"/></attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-      <zeroOrMore>
-        <element name="arg">
-          <ref name="Named_Typed_Element.pat"/>
-          <ref name="Documentation.pat"/>
-        </element>
-      </zeroOrMore>
-    </element>
-  </define>
-
-  <define name="text.elem">
-    <element name="text">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="unsigned.elem">
-    <element name="unsigned">
-      <ref name="Named_Element.pat"/>
-      <optional>
-        <attribute name="bits">
-          <ref name="Integer.type"/>
-        </attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="vector.elem">
-    <element name="vector">
-      <ref name="Named_Element.pat"/>
-      <attribute name="of"><ref name="Identifier.type"/></attribute>
-      <attribute name="length"><data type="nonNegativeInteger"/></attribute>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <!-- PATTERNS FOR CONSTANTS -->
-
-  <define name="constant.elem">
-    <element name="constant">
-      <ref name="Named_Typed_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <ref name="Literal.pat"/>
-    </element>
-  </define>
-
-  <!-- PATTERNS FOR LITERAL CONSTANTS -->
-
-  <define name="Typed_Literal.pat">
-    <optional>
-      <attribute name="type">
-        <ref name="Identifier.type"/>
-      </attribute>
-    </optional>
-  </define>
-
-  <define name="Literal.pat">
-    <choice>
-      <ref name="Boolean_Literal.pat"/>
-      <ref name="Integer_Literal.pat"/>
-      <ref name="Real_Literal.pat"/>
-      <ref name="char.elem"/>
-      <ref name="octet.elem"/>
-      <ref name="enum.elem"/>
-      <ref name="str.elem"/>
-      <ref name="null.elem"/>
-      <ref name="ptr.elem"/>
-      <ref name="arr.elem"/>
-      <ref name="vect.elem"/>
-      <ref name="struct.elem"/>
-      <ref name="cont.elem"/>
-      <ref name="get.elem"/>
-    </choice>
-  </define>
-
-  <define name="Boolean_Literal.pat">
-    <choice>
-      <element name="true">
-        <empty/>
-      </element>
-      <element name="false">
-        <empty/>
-      </element>
-      <element name="bool">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Boolean.type"/>
-      </element>
-    </choice>
-  </define>
-
-
-  <define name="Integer_Literal.pat">
-    <choice>
-      <element name="bin">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Binary.type"/>
-      </element>
-      <element name="oct">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Octal.type"/>
-      </element>
-      <element name="dec">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Decimal.type"/>
-      </element>
-      <element name="hex">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Hexadecimal.type"/>
-      </element>
-    </choice>
-  </define>
-
-  <define name="Real_Literal.pat">
-    <choice>
-      <element name="flt">
-        <ref name="Real.type"/>
-      </element>
-      <element name="dbl">
-        <ref name="Real.type"/>
-      </element>
-      <element name="real">
-        <ref name="Typed_Literal.pat"/>
-        <ref name="Real.type"/>
-      </element>
-    </choice>
-  </define>
-
-  <define name="char.elem">
-    <element name="char">
-      <ref name="Typed_Literal.pat"/>
-      <ref name="Character.type"/>
-    </element>
-  </define>
-
-  <define name="octet.elem">
-    <element name="octet">
-      <ref name="Typed_Literal.pat"/>
-      <ref name="Octet.type"/>
-    </element>
-  </define>
-
-  <define name="enum.elem">
-    <element name="enum">
-      <ref name="Typed_Literal.pat"/>
-      <ref name="Identifier.type"/>
-    </element>
-  </define>
-
-  <define name="str.elem">
-    <element name="str">
-      <ref name="Typed_Literal.pat"/>
-      <text/>
-    </element>
-  </define>
-
-  <define name="null.elem">
-    <element name="null">
-      <ref name="Typed_Literal.pat"/>
-      <empty/>
-    </element>
-  </define>
-
-  <define name="ptr.elem">
-    <element name="ptr">
-      <ref name="Typed_Literal.pat"/>
-      <attribute name="to">
-        <ref name="Identifier.type"/>
-      </attribute>
-    </element>
-  </define>
-
-  <define name="arr.elem">
-    <element name="arr">
-      <ref name="Typed_Literal.pat"/>
-      <oneOrMore>
-        <ref name="Literal.pat"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="vect.elem">
-    <element name="vect">
-      <ref name="Typed_Literal.pat"/>
-      <oneOrMore>
-        <ref name="Literal.pat"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="struct.elem">
-    <element name="struct">
-      <ref name="Typed_Literal.pat"/>
-      <oneOrMore>
-        <ref name="Literal.pat"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="cont.elem">
-    <element name="cont">
-      <ref name="Typed_Literal.pat"/>
-      <oneOrMore>
-        <ref name="Literal.pat"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <!-- PATTERNS FOR VARIABLES-->
-
-  <define name="variable.elem">
-    <element name="variable">
-      <ref name="Named_Typed_Element.pat"/>
-      <optional>
-        <attribute name="const">
-          <data type="boolean"/>
-        </attribute>
-      </optional>
-      <optional>
-        <attribute name="linkage">
-          <ref name="Linkage.type"/>
-        </attribute>
-      </optional>
-      <optional>
-        <attribute name="init">
-          <ref name="Identifier.type"/>
-        </attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="Linkage.type">
-    <choice>
-      <value>appending</value>
-      <value>external</value>
-      <value>internal</value>
-      <value>linkonce</value>
-      <value>weak</value>
-    </choice>
-  </define>
-
-  <!--PATTERNS FOR FUNCTIONS -->
-
-  <define name="function.elem">
-    <element name="function">
-      <ref name="Named_Typed_Element.pat"/>
-      <optional>
-        <attribute name="linkage"><ref name="Linkage.type"/></attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-      <optional>
-        <choice>
-          <element name="as"><ref name="C_Identifier.type"/></element>
-          <ref name="block.elem"/>
-        </choice>
-      </optional>
-    </element>
-  </define>
-
-  <define name="program.elem">
-    <element name="program">
-      <ref name="Named_Element.pat"/>
-      <optional>
-        <attribute name="linkage"><ref name="Linkage.type"/></attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-      <ref name="block.elem"/>
-    </element>
-  </define>
-
-
-  <!-- PATTERNS FOR DEFINING CONSTANTS -->
-
-  <define name="ConstantExpression.pat">
-    <choice>
-      <ref name="getfld.elem"/>
-      <ref name="getidx.elem"/>
-      <ref name="cast.elem"/>
-      <ref name="select.elem"/>
-      <ref name="sizeof.elem"/>
-      <ref name="addrof.elem"/>
-      <ref name="extract.elem"/>
-      <ref name="insert.elem"/>
-      <ref name="shuffle.elem"/>
-      <ref name="BooleanOperators.pat"/>
-      <ref name="UnaryArithmeticOperators.pat"/>
-      <ref name="BinaryArithmeticOperators.pat"/>
-      <ref name="UnaryRealMathOperators.pat"/>
-      <ref name="BinaryRealMathOperators.pat"/>
-    </choice>
-  </define>
-
-  <!-- PATTERNS FOR OPERATORS -->
-
-  <define name="Operators.pat">
-    <choice>
-      <ref name="block.elem"/>
-      <ref name="BooleanOperators.pat"/>
-      <ref name="UnaryArithmeticOperators.pat"/>
-      <ref name="BinaryArithmeticOperators.pat"/>
-      <ref name="UnaryRealMathOperators.pat"/>
-      <ref name="BinaryRealMathOperators.pat"/>
-      <ref name="MemoryOps.pat"/>
-      <ref name="InputOutputOps.pat"/>
-      <ref name="StringOperators.pat"/>
-      <ref name="ControlFlowOps.pat"/>
-    </choice>
-  </define>
-
-  <define name="UnaryOperator.pat">
-    <ref name="Documentation.pat"/>
-    <ref name="Operators.pat"/>
-  </define>
-
-  <define name="BinaryOperator.pat">
-    <ref name="Documentation.pat"/>
-    <ref name="Operators.pat"/>
-    <ref name="Operators.pat"/>
-  </define>
-
-  <define name="TernaryOperator.pat">
-    <ref name="Documentation.pat"/>
-    <ref name="Operators.pat"/>
-    <ref name="Operators.pat"/>
-    <ref name="Operators.pat"/>
-  </define>
-
-  <define name="Location.pat">
-    <choice>
-      <ref name="get.elem"/>
-      <ref name="getfld.elem"/>
-      <ref name="getidx.elem"/>
-    </choice>
-  </define>
-
-  <define name="block.elem">
-    <element name="block">
-      <optional>
-        <attribute name="label"><ref name="Identifier.type"/></attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-      <oneOrMore>
-        <choice>
-          <ref name="Operators.pat"/>
-          <ref name="result.elem"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-
-  <define name="result.elem">
-    <element name="result">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="cast.elem">
-    <empty/>
-  </define>
-
-  <define name="sizeof.elem">
-    <empty/>
-  </define>
-
-  <define name="addrof.elem">
-    <ref name="Operators.pat"/>
-  </define>
-
-  <define name="extract.elem">
-    <empty/>
-  </define>
-
-  <define name="insert.elem">
-    <empty/>
-  </define>
-
-  <define name="shuffle.elem">
-    <empty/>
-  </define>
-
-  <!-- MEMORY OPERATORS -->
-
-  <define name="MemoryOps.pat">
-    <choice>
-      <ref name="load.elem"/>
-      <ref name="store.elem"/>
-      <ref name="getfld.elem"/>
-      <ref name="getidx.elem"/>
-      <ref name="length.elem"/>
-      <ref name="autovar.elem"/>
-      <ref name="get.elem"/>
-    </choice>
-  </define>
-
-  <define name="get.elem">
-    <element name="get">
-      <ref name="Named_Element.pat"/>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="load.elem">
-    <element name="load">
-      <ref name="Documentation.pat"/>
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="store.elem">
-    <element name="store">
-      <ref name="Documentation.pat"/>
-      <ref name="Location.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="getfld.elem">
-    <element name="getfld">
-      <attribute name="field">
-        <ref name="Identifier.type"/>
-      </attribute>
-      <ref name="Documentation.pat"/>
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="getidx.elem">
-    <element name="getidx">
-      <ref name="Documentation.pat"/>
-      <ref name="Location.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="length.elem">
-    <element name="length">
-      <ref name="Documentation.pat"/>
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="autovar.elem">
-    <element name="autovar">
-      <ref name="Named_Typed_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <optional>
-        <ref name="Operators.pat"/>
-      </optional>
-    </element>
-  </define>
-
-  <!-- INPUT/OUTPUT OPERATORS -->
-
-  <define name="InputOutputOps.pat">
-    <choice>
-      <ref name="open.elem"/>
-      <ref name="close.elem"/>
-      <ref name="write.elem"/>
-      <!-- <ref name="read.elem"/>
-      <ref name="seek.elem"/>
-      <ref name="tell.elem"/>
-      <ref name="info.elem"/> -->
-    </choice>
-  </define>
-
-  <define name="open.elem">
-    <element name="open">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="close.elem">
-    <element name="close">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="write.elem">
-    <element name="write">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="read.elem">
-    <element name="read">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <!-- UNARY ARITHMETIC OPERATORS -->
-
-  <define name="UnaryArithmeticOperators.pat">
-    <choice>
-      <ref name="neg.elem"/>
-      <ref name="cmpl.elem"/>
-      <ref name="preinc.elem"/>
-      <ref name="predec.elem"/>
-      <ref name="postinc.elem"/>
-      <ref name="postdec.elem"/>
-    </choice>
-  </define>
-
-  <define name="neg.elem">
-    <element name="neg">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="cmpl.elem">
-    <element name="cmpl">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="preinc.elem">
-    <element name="preinc">
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="predec.elem">
-    <element name="predec">
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="postinc.elem">
-    <element name="postinc">
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <define name="postdec.elem">
-    <element name="postdec">
-      <ref name="Location.pat"/>
-    </element>
-  </define>
-
-  <!-- BINARY ARITHMETIC OPERATORS -->
-
-  <define name="BinaryArithmeticOperators.pat">
-    <choice>
-      <ref name="add.elem"/>
-      <ref name="sub.elem"/>
-      <ref name="mul.elem"/>
-      <ref name="div.elem"/>
-      <ref name="mod.elem"/>
-      <ref name="band.elem"/>
-      <ref name="bor.elem"/>
-      <ref name="bxor.elem"/>
-      <ref name="bnor.elem"/>
-      <ref name="convert.elem"/>
-    </choice>
-  </define>
-
-  <define name="add.elem">
-    <element name="add">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-      
-  <define name="sub.elem">
-    <element name="sub">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="mul.elem">
-    <element name="mul">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="div.elem">
-    <element name="div">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="mod.elem">
-    <element name="mod">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="bor.elem">
-    <element name="bor">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="band.elem">
-    <element name="band">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="bxor.elem">
-    <element name="bxor">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="bnor.elem">
-    <element name="bnor">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="convert.elem">
-    <element name="convert">
-      <ref name="Typed_Element.pat"/>
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <!-- Unary Real Math Operators -->
-  <define name="UnaryRealMathOperators.pat">
-    <choice>
-      <ref name="ispinf.elem"/>
-      <ref name="isninf.elem"/>
-      <ref name="isnan.elem"/>
-      <ref name="trunc.elem"/>
-      <ref name="round.elem"/>
-      <ref name="floor.elem"/>
-      <ref name="ceiling.elem"/>
-      <ref name="loge.elem"/>
-      <ref name="log2.elem"/>
-      <ref name="log10.elem"/>
-      <ref name="squareroot.elem"/>
-      <ref name="cuberoot.elem"/>
-      <ref name="factorial.elem"/>
-    </choice>
-  </define>
-
-  <define name="ispinf.elem">
-    <element name="ispinf">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="isninf.elem">
-    <element name="isninf">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="isnan.elem">
-    <element name="isnan">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="trunc.elem">
-    <element name="trunc">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="round.elem">
-    <element name="round">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="floor.elem">
-    <element name="floor">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="ceiling.elem">
-    <element name="ceiling">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="loge.elem">
-    <element name="loge">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="log2.elem">
-    <element name="log2">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="log10.elem">
-    <element name="log10">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="squareroot.elem">
-    <element name="squareroot">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="cuberoot.elem">
-    <element name="cuberoot">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="factorial.elem">
-    <element name="factorial">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <!-- Binary Real Math Operators -->
-  <define name="BinaryRealMathOperators.pat">
-    <choice>
-      <ref name="power.elem"/>
-      <ref name="root.elem"/>
-      <ref name="GCD.elem"/>
-      <ref name="LCM.elem"/>
-    </choice>
-  </define>
-
-  <define name="power.elem">
-    <element name="power">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="root.elem">
-    <element name="root">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="GCD.elem">
-    <element name="GCD">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="LCM.elem">
-    <element name="LCM">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <!-- Comparison Operators -->
-
-  <define name="BooleanOperators.pat">
-    <choice>
-      <ref name="not.elem"/>
-      <ref name="and.elem"/>
-      <ref name="or.elem"/>
-      <ref name="xor.elem"/>
-      <ref name="nor.elem"/>
-      <ref name="eq.elem"/>
-      <ref name="ne.elem"/>
-      <ref name="lt.elem"/>
-      <ref name="gt.elem"/>
-      <ref name="le.elem"/>
-      <ref name="ge.elem"/>
-    </choice>
-  </define>
-
-  <define name="not.elem">
-    <element name="not">
-      <ref name="UnaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="and.elem">
-    <element name="and">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="or.elem">
-    <element name="or">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="xor.elem">
-    <element name="xor">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="nor.elem">
-    <element name="nor">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="eq.elem">
-    <element name="eq">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="ne.elem">
-    <element name="ne">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="lt.elem">
-    <element name="lt">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="gt.elem">
-    <element name="gt">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="le.elem">
-    <element name="le">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <define name="ge.elem">
-    <element name="ge">
-      <ref name="BinaryOperator.pat"/>
-    </element>
-  </define>
-
-  <!-- String Operators -->
-  <define name="StringOperators.pat">
-    <choice>
-      <ref name="sinsert.elem"/>
-      <ref name="serase.elem"/>
-      <ref name="sreplace.elem"/>
-      <ref name="sconcat.elem"/>
-    </choice>
-  </define>
-
-  <define name="sinsert.elem">
-    <element name="sinsert">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="serase.elem">
-    <element name="serase">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="sreplace.elem">
-    <element name="sreplace">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="sconcat.elem">
-    <element name="sconcat">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <!-- Control Flow Operators -->
-
-  <define name="ControlFlowOps.pat">
-    <choice>
-      <ref name="select.elem"/>
-      <ref name="switch.elem"/>
-      <ref name="while.elem"/>
-      <ref name="unless.elem"/>
-      <ref name="until.elem"/>
-      <ref name="loop.elem"/>
-      <ref name="break.elem"/>
-      <ref name="continue.elem"/>
-      <ref name="ret.elem"/>
-      <ref name="call.elem"/>
-    </choice>
-  </define>
-
-  <define name="select.elem">
-    <element name="select">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-      <ref name="Operators.pat"/>
-    </element>
-  </define>
-
-  <define name="switch.elem">
-    <element name="switch">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>       <!-- Control Expression -->
-      <ref name="Operators.pat"/>   <!-- Default Case -->
-      <zeroOrMore>
-        <ref name="Operators.pat"/> <!-- Case Expression -->
-        <ref name="Operators.pat"/> <!-- Case Block -->
-      </zeroOrMore>
-    </element>
-  </define>
-
-  <define name="while.elem">
-    <element name="while">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>  <!-- Pre-Loop Test -->
-      <ref name="Operators.pat"/>  <!-- Loop Body -->
-    </element>
-  </define>
-
-  <define name="unless.elem">
-    <element name="unless">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>  <!-- Pre-Loop Test -->
-      <ref name="Operators.pat"/>  <!-- Loop Body -->
-    </element>
-  </define>
-
-  <define name="until.elem">
-    <element name="until">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>  <!-- Loop Body -->
-      <ref name="Operators.pat"/>  <!-- Post-Loop Test -->
-    </element>
-  </define>
-
-  <define name="loop.elem">
-    <element name="loop">
-      <ref name="Documentation.pat"/>
-      <ref name="Operators.pat"/>  <!-- Pre-Loop Test -->
-      <ref name="Operators.pat"/>  <!-- Loop Body -->
-      <ref name="Operators.pat"/>  <!-- Post-Loop Test -->
-    </element>
-  </define>
-
-  <define name="break.elem">
-    <element name="break">
-      <optional>
-        <attribute name="id">
-          <ref name="Identifier.type"/>
-        </attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="continue.elem">
-    <element name="continue">
-      <optional>
-        <attribute name="id">
-          <ref name="Identifier.type"/>
-        </attribute>
-      </optional>
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="ret.elem">
-    <element name="ret">
-      <ref name="Documentation.pat"/>
-    </element>
-  </define>
-
-  <define name="call.elem">
-    <element name="call">
-      <oneOrMore>
-        <ref name="Operators.pat"/>
-      </oneOrMore>
-    </element>
-  </define>
-
-</grammar>
diff --git a/hlvm/hlvm/Reader/Reader.h b/hlvm/hlvm/Reader/Reader.h
deleted file mode 100644
index 42853b8..0000000
--- a/hlvm/hlvm/Reader/Reader.h
+++ /dev/null
@@ -1,51 +0,0 @@
-//===-- hlvm/Reader/Reader.h - AST Abstract Reader Class --------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Reader/Reader.h
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::Reader
-//===----------------------------------------------------------------------===//
-
-#ifndef XPS_READER_READER_H
-#define XPS_READER_READER_H
-
-namespace hlvm {
-
-class AST;
-
-class Reader
-{
-public:
-  virtual ~Reader() {}
-
-  /// This method reads the entire content of the reader's source.
-  virtual bool read() = 0;
-
-  /// This method retrieves the construct AST that resulted from reading.
-  /// @returns 0 if nothing has been read yet
-  virtual AST* get() = 0;
-};
-
-}
-#endif
diff --git a/hlvm/hlvm/Reader/SConscript b/hlvm/hlvm/Reader/SConscript
deleted file mode 100644
index e2ab632..0000000
--- a/hlvm/hlvm/Reader/SConscript
+++ /dev/null
@@ -1,32 +0,0 @@
-#===-- Build Script For hlvm/Reader ---------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.GetRNGQuoteSource(env)
-hlvm.GetRNGTokenizer(env)
-env.RNGQuoteSource('HLVM.rng.inc','HLVM.rng')
-env.RNGTokenizer('HLVMTokenizer.cpp','HLVM.rng')
-env.Depends('HLVM.rng.inc','HLVMTokenizer.cpp')
-lib = env.Library('HLVMReader',['XMLReader.cpp','HLVMTokenizer.cpp'])
-hlvm.InstallLibrary(env,lib)
-hlvm.InstallHeader(env,['XMLReader.h'])
diff --git a/hlvm/hlvm/Reader/XMLReader.cpp b/hlvm/hlvm/Reader/XMLReader.cpp
deleted file mode 100644
index f2f09d0..0000000
--- a/hlvm/hlvm/Reader/XMLReader.cpp
+++ /dev/null
@@ -1,1513 +0,0 @@
-//===-- hlvm/Reader/XML/XMLReader.cpp - AST XML Reader Class ----*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Reader/XMLReader.cpp
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::XMLReader
-//===----------------------------------------------------------------------===//
-
-#include <libxml/parser.h>
-#include <libxml/relaxng.h>
-#include <hlvm/Reader/XMLReader.h>
-#include <hlvm/Reader/HLVMTokenizer.h>
-#include <hlvm/AST/Locator.h>
-#include <hlvm/Base/Source.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Documentation.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/Base/Assert.h>
-#include <llvm/ADT/StringExtras.h>
-#include <vector>
-#include <string>
-#include <iostream>
-
-using namespace hlvm;
-using namespace HLVM_Reader;
-
-namespace {
-
-const char HLVMGrammar[] = 
-#include <hlvm/Reader/HLVM.rng.inc>
-;
-
-class XMLReaderImpl : public XMLReader {
-  std::string path;
-  AST* ast;
-  xmlDocPtr doc;
-  Locator* loc;
-  URI* uri;
-  Block* block;
-  typedef std::vector<Block*> BlockStack;
-  BlockStack blocks;
-  Function* func;
-  Bundle* bundle;
-  bool isError;
-public:
-  XMLReaderImpl(const std::string& p)
-    : path(p), ast(0), loc(0), uri(0), block(0), blocks(), func(0), bundle(0), 
-      isError(0)
-  {
-    ast = AST::create();
-    ast->setSystemID(p);
-    uri = ast->new_URI(p);
-  }
-
-  virtual ~XMLReaderImpl() 
-  { 
-    if (ast) AST::destroy(ast); 
-    if (doc) xmlFreeDoc(doc);
-  }
-
-  virtual bool read();
-  virtual AST* get();
-
-  std::string lookupToken(int32_t token) const
-  {
-    return HLVMTokenizer::lookup(token);
-  }
-
-  Locator* getLocator(xmlNodePtr& cur) {
-    if (loc) {
-      if (loc->getLine() == cur->line)
-        return loc;
-    }
-    return loc = ast->new_Locator(uri,cur->line);
-  }
-
-  inline Type* getType(const std::string& name );
-  bool checkNewType(const std::string& name, Locator* loc);
-
-
-  inline void handleParseError(xmlErrorPtr error);
-  inline void handleValidationError(xmlErrorPtr error);
-
-  inline void error(Locator* loc, const std::string& msg);
-
-  inline xmlNodePtr   checkDoc(xmlNodePtr cur, Documentable* node);
-
-  ConstantValue* parseLiteralConstant(xmlNodePtr& cur, const std::string& name,
-    const Type* Ty);
-  Constant*      parseConstant      (xmlNodePtr& cur);
-  Operator*      parseOperator      (xmlNodePtr& cur);
-  void           parseTree          ();
-  Type*          parseInteger       (xmlNodePtr& cur, bool isSigned);
-
-  template<class OpClass>
-  OpClass*       parse(xmlNodePtr& cur);
-
-  template<class OpClass>
-  OpClass* parseNilaryOp(xmlNodePtr& cur);
-  template<class OpClass>
-  OpClass* parseUnaryOp(xmlNodePtr& cur);
-  template<class OpClass>
-  OpClass* parseBinaryOp(xmlNodePtr& cur);
-  template<class OpClass>
-  OpClass* parseTernaryOp(xmlNodePtr& cur);
-  template<class OpClass>
-  OpClass* parseMultiOp(xmlNodePtr& cur);
-
-  inline const char* 
-  getAttribute(xmlNodePtr cur,const char*name,bool required = true);
-  inline void getTextContent(xmlNodePtr cur, std::string& buffer);
-  inline bool getNameType(
-    xmlNodePtr& cur, std::string& name,std::string& type, bool required = true);
-  inline Type* createIntrinsicType(
-    const std::string& tname, const std::string& name, Locator* loc);
-
-private:
-};
-
-inline void
-XMLReaderImpl::handleValidationError(xmlErrorPtr e)
-{
-  std::cerr << e->file << ":" << e->line << ": validation " <<
-    (e->level == XML_ERR_WARNING ? "warning" : 
-     (e->level == XML_ERR_ERROR ? "error" :
-      (e->level == XML_ERR_FATAL ? "fatal error" : "message"))) 
-    << ": " << e->message << "\n";
-}
-
-inline void
-XMLReaderImpl::handleParseError(xmlErrorPtr e)
-{
-  std::cerr << e->file << ":" << e->line << ": parse " <<
-    (e->level == XML_ERR_WARNING ? "warning" : 
-     (e->level == XML_ERR_ERROR ? "error" :
-      (e->level == XML_ERR_FATAL ? "fatal error" : "message"))) 
-    << ": " << e->message << "\n";
-}
-
-void 
-ParseHandler(void* userData, xmlErrorPtr error) 
-{
-  XMLReaderImpl* reader = reinterpret_cast<XMLReaderImpl*>(userData);
-  reader->handleParseError(error);
-}
-
-void 
-ValidationHandler(void* userData, xmlErrorPtr error)
-{
-  XMLReaderImpl* reader = reinterpret_cast<XMLReaderImpl*>(userData);
-  reader->handleValidationError(error);
-}
-
-
-inline int 
-getToken(const xmlChar* name)
-{
-  return HLVMTokenizer::recognize(reinterpret_cast<const char*>(name));
-}
-
-inline int
-getToken(const char* name)
-{
-  return HLVMTokenizer::recognize(name);
-}
-
-inline bool 
-skipBlanks(xmlNodePtr &cur, bool skipText = true)
-{
-  while (cur) {
-    switch (cur->type) {
-      case XML_TEXT_NODE:
-        if (!skipText)
-          return true;
-        /* FALL THROUGH */
-      case XML_COMMENT_NODE:
-      case XML_PI_NODE:
-        break;
-      default:
-        return true;
-    }
-    cur = cur->next;
-  }
-  return cur != 0;
-}
-
-LinkageKinds
-recognize_LinkageKinds(const char* str)
-{
-  switch (getToken(str)) 
-  {
-    case TKN_weak      : return WeakLinkage;
-    case TKN_appending : return AppendingLinkage;
-    case TKN_external  : return ExternalLinkage;
-    case TKN_internal  : return InternalLinkage;
-    case TKN_linkonce  : return LinkOnceLinkage;
-    default:
-      hlvmDeadCode("Invalid Linkage Type");
-  }
-  return ExternalLinkage;
-}
-
-uint64_t
-recognize_nonNegativeInteger(const char* str)
-{
-    return uint64_t(::atoll(str));
-}
-
-int64_t
-recognize_Integer(const char * str)
-{
-  return ::atoll(str);
-}
-
-inline bool 
-recognize_boolean(const char* str)
-{
-  switch (getToken(str))
-  {
-    case TKN_FALSE: return false;
-    case TKN_False: return false;
-    case TKN_false: return false;
-    case TKN_NO: return false;
-    case TKN_No: return false;
-    case TKN_no: return false;
-    case TKN_0: return false;
-    case TKN_TRUE: return true;
-    case TKN_True: return true;
-    case TKN_true: return true;
-    case TKN_YES: return true;
-    case TKN_Yes: return true;
-    case TKN_yes: return true;
-    case TKN_1: return true;
-    default: break;
-  }
-  hlvmDeadCode("Invalid boolean value");
-  return 0;
-}
-
-inline const char* 
-XMLReaderImpl::getAttribute(xmlNodePtr cur,const char*name,bool required )
-{
-  const char* result = reinterpret_cast<const char*>(
-   xmlGetNoNsProp(cur,reinterpret_cast<const xmlChar*>(name)));
-  if (!result && required) {
-    error(getLocator(cur),std::string("Requred Attribute '") + name + 
-          "' is missing.");
-  }
-  return result;
-}
-
-inline void
-XMLReaderImpl::getTextContent(xmlNodePtr cur, std::string& buffer)
-{
-  buffer.clear();
-  if (cur) skipBlanks(cur,false);
-  while (cur && cur->type == XML_TEXT_NODE) {
-    buffer += reinterpret_cast<const char*>(cur->content);
-    cur = cur->next;
-  }
-  if (cur) skipBlanks(cur);
-}
-
-inline bool 
-XMLReaderImpl::getNameType(
-  xmlNodePtr& cur, 
-  std::string& name,
-  std::string& type,
-  bool required)
-{
-  name.clear();
-  type.clear();
-  const char* nm = getAttribute(cur,"id",required);
-  if (nm)
-    name = nm;
-  const char* ty = getAttribute(cur,"type",required);
-  if (ty)
-    type = ty;
-  return !required || (nm && ty);
-}
-
-inline void
-XMLReaderImpl::error(Locator* loc, const std::string& msg)
-{
-  std::string location;
-  if (loc)
-    loc->getLocation(location);
-  else
-    location = "Unknown Location";
-  std::cerr << location << ": " << msg << "\n";
-  isError = true;
-}
-
-Type*
-XMLReaderImpl::getType(const std::string& name)
-{
-  IntrinsicTypes IT = bundle->getIntrinsicTypesValue(name);
-  if (NoIntrinsicType != IT)
-    return bundle->getIntrinsicType(IT);
-  Type* Ty = bundle->getOrCreateType(name);
-  hlvmAssert(Ty != 0 && "Couldn't get Type!");
-  return Ty;
-}
-
-bool
-XMLReaderImpl::checkNewType(const std::string& name, Locator* loc)
-{
-  bool result = true;
-  if (NoIntrinsicType != bundle->getIntrinsicTypesValue(name)) {
-    error(loc,"Attempt to redefine intrinsic type '" + name + "'");
-    result = false;
-  }
-  if (Type* Ty = bundle->getType(name))
-    if (OpaqueType* OTy = llvm::dyn_cast<OpaqueType>(Ty))
-      if (!OTy->isUnresolved()) {
-        error(loc, "Attempt to redefine type '" + name + "'");
-        result = false;
-      }
-  return result;
-}
-
-template<> Documentation*
-XMLReaderImpl::parse<Documentation>(xmlNodePtr& cur)
-{
-  // Documentation is always optional so don't error out if the
-  // node is not a TKN_doc
-  if (cur && skipBlanks(cur) && getToken(cur->name) == TKN_doc) {
-    xmlBufferPtr buffer = xmlBufferCreate();
-    xmlNodeDump(buffer,doc,cur,0,0);
-    int length = xmlBufferLength(buffer);
-    std::string 
-      str(reinterpret_cast<const char*>(xmlBufferContent(buffer)),length);
-    str.erase(0,5); // Zap the <doc> at the start
-    str.erase(str.length()-6); // Zap the </doc> at the end
-    Documentation* doc = ast->new_Documentation(getLocator(cur));
-    doc->setDoc(str);
-    xmlBufferFree(buffer);
-    cur = cur->next;
-    return doc;
-  }
-  // Just signal that there's no documentation in this node
-  return 0;
-}
-
-inline xmlNodePtr
-XMLReaderImpl::checkDoc(xmlNodePtr cur, Documentable* node)
-{
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  if (theDoc)
-    node->setDoc(theDoc);
-  return child;
-}
-
-ConstantValue*
-XMLReaderImpl::parseLiteralConstant(
-    xmlNodePtr& cur, 
-    const std::string& name,
-    const Type* Ty)
-{
-  if (!name.empty() && bundle->getConst(name) != 0) {
-    error(getLocator(cur),std::string("Constant '") + name 
-          + "' already exists.");
-    return 0;
-  }
-
-  // skip over blank text to find next element
-  skipBlanks(cur);
-
-  ConstantValue* C = 0;
-  const char* prefix = 0;
-  int token = getToken(cur->name);
-  switch (token) {
-    case TKN_false:   
-    {
-      C = ast->new_ConstantBoolean(name, bundle,Ty,false, getLocator(cur)); 
-      break;
-    }
-    case TKN_true:
-    {
-      C = ast->new_ConstantBoolean(name,bundle,Ty,true, getLocator(cur));
-      break;
-    }
-    case TKN_bool:
-    {
-      std::string buffer;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,buffer);
-      bool value = recognize_boolean( buffer.c_str() );
-      C = ast->new_ConstantBoolean(name, bundle,Ty,value, getLocator(cur));
-      break;
-    }
-    case TKN_char:
-    {
-      std::string buffer;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,buffer);
-      C = ast->new_ConstantCharacter(name, bundle,Ty,buffer, getLocator(cur));
-      break;
-    }
-    case TKN_enum:
-    {
-      std::string value;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,value);
-      C = ast->new_ConstantEnumerator(name,bundle,Ty,value,getLocator(cur));
-      break;
-    }
-    case TKN_bin:
-    case TKN_oct:
-    case TKN_dec:
-    case TKN_hex:
-    {
-      std::string value;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,value);
-      uint16_t base = (token == TKN_dec ? 10 : (token == TKN_hex ? 16 : 
-                      (token == TKN_oct ? 8 : (token == TKN_bin ? 2 : 10))));
-      C = ast->new_ConstantInteger(name,bundle,Ty,value,base,getLocator(cur));
-      break;
-    }
-    case TKN_flt:
-    case TKN_dbl:
-    case TKN_real:
-    {
-      std::string value;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,value);
-      C = ast->new_ConstantReal(name,bundle,Ty,value,getLocator(cur));
-      break;
-    }
-    case TKN_str:
-    {
-      std::string value;
-      xmlNodePtr child = cur->children;
-      getTextContent(child,value);
-      C =  ast->new_ConstantString(name,bundle,Ty,value,getLocator(cur));
-      break;
-    }
-    case TKN_ptr:
-    {
-      std::string to = getAttribute(cur,"to");
-      Constant* referent = bundle->getConst(to);
-      if (!referent)
-        error(loc,"Unkown referent for constant pointer");
-      C = ast->new_ConstantPointer(name,bundle,Ty,referent,loc);
-      break;
-    }
-    case TKN_arr:
-    {
-      const ArrayType* AT = llvm::cast<ArrayType>(Ty);
-      const Type* ElemType = AT->getElementType();
-      xmlNodePtr child = cur->children;
-      std::vector<ConstantValue*> elems;
-      while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-        ConstantValue* elem = parseLiteralConstant(child,"",ElemType);
-        elems.push_back(elem);
-        child = child->next;
-      }
-      C = ast->new_ConstantArray(name,bundle,AT,elems,getLocator(cur));
-      break;
-    }
-    case TKN_vect:
-    {
-      const VectorType* VT = llvm::cast<VectorType>(Ty);
-      const Type* ElemType = VT->getElementType();
-      xmlNodePtr child = cur->children;
-      std::vector<ConstantValue*> elems;
-      while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-        ConstantValue* elem = parseLiteralConstant(child,"",ElemType);
-        elems.push_back(elem);
-        child = child->next;
-      }
-      C = ast->new_ConstantVector(name,bundle,VT,elems,getLocator(cur));
-      break;
-    }
-    case TKN_struct:
-    {
-      const StructureType* ST = llvm::cast<StructureType>(Ty);
-      xmlNodePtr child = cur->children;
-      std::vector<ConstantValue*> fields;
-      StructureType::const_iterator I = ST->begin();
-      while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-        ConstantValue* field = parseLiteralConstant(child,"",(*I)->getType());
-        fields.push_back(field);
-        child = child->next;
-        ++I;
-      }
-      C = ast->new_ConstantStructure(name,bundle,ST,fields,getLocator(cur));
-      break;
-    }
-    case TKN_cont:
-    {
-      const ContinuationType* CT = llvm::cast<ContinuationType>(Ty);
-      xmlNodePtr child = cur->children;
-      std::vector<ConstantValue*> fields;
-      ContinuationType::const_iterator I = CT->begin();
-      while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-        ConstantValue* field = parseLiteralConstant(child,"",(*I)->getType());
-        fields.push_back(field);
-        child = child->next;
-        ++I;
-      }
-      C = ast->new_ConstantContinuation(name,bundle,CT,fields,getLocator(cur));
-      break;
-    }
-    default:
-      hlvmAssert(!"Invalid kind of constant");
-      break;
-  }
-  hlvmAssert(C && C->getType() == Ty && "Constant/Type mismatch");
-  if (C)
-    C->setParent(bundle);
-  return C;
-}
-
-inline Constant*
-XMLReaderImpl::parseConstant(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name) == TKN_constant);
-  std::string name;
-  std::string type;
-  if (getNameType(cur,name,type)) {
-    Type* Ty = getType(type);
-    xmlNodePtr child = cur->children;
-    Documentation* theDoc = parse<Documentation>(child);
-    Constant* C = parseLiteralConstant(child,name,Ty);
-    if (theDoc)
-      C->setDoc(theDoc);
-    return C;
-  }
-  return 0;
-}
-
-template<> AnyType*
-XMLReaderImpl::parse<AnyType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  AnyType* result = ast->new_AnyType(name,bundle,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return result;
-}
-
-template<> BooleanType*
-XMLReaderImpl::parse<BooleanType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  BooleanType* result = ast->new_BooleanType(name,bundle,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return result;
-}
-
-template<> BufferType*
-XMLReaderImpl::parse<BufferType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  Type* result = ast->new_IntrinsicType(name,bundle,bufferTy,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return llvm::cast<BufferType>(result);
-}
-
-template<> CharacterType*
-XMLReaderImpl::parse<CharacterType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  const char* encoding = getAttribute(cur,"encoding");
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  std::string enc;
-  if (encoding)
-    enc = encoding;
-  else
-    enc = "utf-8";
-  CharacterType* result = 
-    ast->new_CharacterType(name,bundle,encoding,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return result;
-}
-
-Type*
-XMLReaderImpl::parseInteger(xmlNodePtr& cur, bool isSigned)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  const char* bits = getAttribute(cur,"bits");
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  uint64_t numBits = 0;
-  if (bits)
-    numBits = recognize_nonNegativeInteger(bits);
-  else
-    numBits = 32;
-  IntegerType* result = 
-    ast->new_IntegerType(name,bundle,numBits,isSigned,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return result;
-}
-
-template<> RangeType*
-XMLReaderImpl::parse<RangeType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  const char* min = getAttribute(cur, "min");
-  const char* max = getAttribute(cur, "max");
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  if (min && max) {
-    int64_t minVal = recognize_Integer(min);
-    int64_t maxVal = recognize_Integer(max);
-    RangeType* result = ast->new_RangeType(name,bundle,minVal,maxVal,loc);
-    if (theDoc)
-      result->setDoc(theDoc);
-    return result;
-  }
-  error(loc,"Invalid min/max specification");
-  return 0;
-}
-
-template<> RealType*
-XMLReaderImpl::parse<RealType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  const char* mantissa = getAttribute(cur, "mantissa");
-  const char* exponent = getAttribute(cur, "exponent");
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  if (mantissa && exponent) {
-    int32_t mantVal = recognize_nonNegativeInteger(mantissa);
-    int32_t expoVal = recognize_nonNegativeInteger(exponent);
-    RealType* result = ast->new_RealType(name,bundle,mantVal,expoVal,loc);
-    if (theDoc)
-      result->setDoc(theDoc);
-    return result;
-  }
-  error(loc,"Invalid mantissa/exponent specification");
-  return 0;
-}
-
-template<> EnumerationType*
-XMLReaderImpl::parse<EnumerationType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_enumeration);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  EnumerationType* en = ast->new_EnumerationType(name,bundle,loc);
-  xmlNodePtr child = checkDoc(cur,en);
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    hlvmAssert(getToken(child->name) == TKN_enumerator);
-    std::string id = getAttribute(child,"id");
-    en->addEnumerator(id);
-    child = child->next;
-  }
-  return en;
-}
-
-template<> PointerType*     
-XMLReaderImpl::parse<PointerType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_pointer);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  std::string type = getAttribute(cur,"to");
-  PointerType* result = 
-    ast->new_PointerType(name,bundle,getType(type),loc);
-  checkDoc(cur,result);
-  return result;
-}
-
-template<> ArrayType*     
-XMLReaderImpl::parse<ArrayType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_array);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  std::string type = getAttribute(cur,"of");
-  const char* len = getAttribute(cur,"length");
-  ArrayType* result = ast->new_ArrayType(
-    name, bundle, getType(type), recognize_nonNegativeInteger(len),loc);
-  checkDoc(cur,result);
-  return result;
-}
-
-template<> VectorType*     
-XMLReaderImpl::parse<VectorType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_vector);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  std::string type = getAttribute(cur,"of");
-  const char* len  = getAttribute(cur,"length");
-  VectorType* result = ast->new_VectorType(
-      name, bundle, getType(type), recognize_nonNegativeInteger(len),loc);
-  checkDoc(cur,result);
-  return result;
-}
-
-template<> StreamType*
-XMLReaderImpl::parse<StreamType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  Type* result = ast->new_IntrinsicType(name,bundle,streamTy,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return llvm::cast<StreamType>(result);
-}
-
-template<> StringType*
-XMLReaderImpl::parse<StringType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  const char* encoding = getAttribute(cur,"encoding");
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  std::string enc;
-  if (encoding)
-    enc = encoding;
-  else
-    enc = "utf-8";
-  StringType* result = 
-    ast->new_StringType(name,bundle,encoding,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return result;
-}
-
-template<> StructureType*
-XMLReaderImpl::parse<StructureType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_structure);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  StructureType* struc = ast->new_StructureType(name, bundle, loc);
-  xmlNodePtr child = checkDoc(cur,struc); 
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    hlvmAssert(getToken(child->name) == TKN_field && 
-               "Structure only has fields");
-    std::string name = getAttribute(child,"id");
-    std::string type = getAttribute(child,"type");
-    Locator* fldLoc = getLocator(child);
-    Field* fld = ast->new_Field(name, getType(type),fldLoc);
-    struc->addField(fld);
-    checkDoc(child,fld);
-    child = child->next;
-  }
-  return struc;
-}
-
-template<> ContinuationType*
-XMLReaderImpl::parse<ContinuationType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_structure);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  ContinuationType* cont = ast->new_ContinuationType(name, bundle, loc);
-  xmlNodePtr child = checkDoc(cur,cont); 
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    hlvmAssert(getToken(child->name) == TKN_field && 
-               "Continuation only has fields");
-    std::string name = getAttribute(child,"id");
-    std::string type = getAttribute(child,"type");
-    Locator* fldLoc = getLocator(child);
-    Field* fld = ast->new_Field(name,getType(type),fldLoc);
-    cont->addField(fld);
-    checkDoc(child,fld);
-    child = child->next;
-  }
-  return cont;
-}
-
-template<> SignatureType*
-XMLReaderImpl::parse<SignatureType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_signature);
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  std::string result = getAttribute(cur,"result");
-  const char* varargs = getAttribute(cur,"varargs",false);
-  SignatureType* sig = 
-    ast->new_SignatureType(name, bundle, getType(result),loc);
-  if (varargs)
-    sig->setIsVarArgs(recognize_boolean(varargs));
-  xmlNodePtr child = checkDoc(cur,sig); 
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    hlvmAssert(getToken(child->name) == TKN_arg && "Signature only has args");
-    std::string name = getAttribute(child,"id");
-    std::string type = getAttribute(child,"type");
-    Locator* paramLoc = getLocator(child);
-    Parameter* param = ast->new_Parameter(name,getType(type),paramLoc);
-    sig->addParameter(param);
-    checkDoc(child,param);
-    child = child->next;
-  }
-  return sig;
-}
-
-template<> TextType*
-XMLReaderImpl::parse<TextType>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  xmlNodePtr child = cur->children;
-  Documentation* theDoc = parse<Documentation>(child);
-  Type* result = ast->new_IntrinsicType(name,bundle,textTy,loc);
-  if (theDoc)
-    result->setDoc(theDoc);
-  return llvm::cast<TextType>(result);
-}
-
-template<> OpaqueType*
-XMLReaderImpl::parse<OpaqueType>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_opaque);
-  std::string name = getAttribute(cur,"id");
-  if (!checkNewType(name,loc))
-    return 0;
-  Locator* loc = getLocator(cur);
-  OpaqueType* result = ast->new_OpaqueType(name, false, bundle, loc);
-  checkDoc(cur,result);
-  return result;
-}
-
-template<> Variable*
-XMLReaderImpl::parse<Variable>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_variable);
-  Locator* loc = getLocator(cur);
-  std::string name, type;
-  getNameType(cur, name, type);
-  if (Constant* lkbl = bundle->getConst(name)) 
-    error(loc, "Name '" + name + "' is already in use");
-  const char* cnst = getAttribute(cur, "const", false);
-  const char* lnkg = getAttribute(cur, "linkage", false);
-  const char* init = getAttribute(cur, "init", false);
-  const Type* Ty = getType(type);
-  Variable* var = ast->new_Variable(name, bundle, Ty,loc);
-  if (cnst)
-    var->setIsConstant(recognize_boolean(cnst));
-  if (lnkg)
-    var->setLinkageKind(recognize_LinkageKinds(lnkg));
-  if (init) {
-    Constant* initializer = bundle->getConst(init);
-    if (initializer)
-      var->setInitializer(initializer);
-    else 
-      error(loc,std::string("Constant '") + init + 
-            "' not found in initializer."); 
-  }
-  checkDoc(cur,var);
-  return var;
-}
-
-template<> AutoVarOp*
-XMLReaderImpl::parse<AutoVarOp>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string name, type;
-  getNameType(cur, name, type);
-  const Type* Ty = getType(type);
-  AutoVarOp* result = ast->AST::new_AutoVarOp(name,Ty,loc);
-  xmlNodePtr child = checkDoc(cur,result);
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    oprnd1->setParent(result);
-  }
-  return result;
-}
-
-template<> GetOp*
-XMLReaderImpl::parse<GetOp>(xmlNodePtr& cur)
-{
-  std::string id = getAttribute(cur,"id");
-  Locator* loc = getLocator(cur);
-
-  // Find the referrent variable in a block
-  Value* referent = 0;
-  for (BlockStack::reverse_iterator I = blocks.rbegin(), E = blocks.rend(); 
-       I != E; ++I )
-  {
-    Block* blk = *I;
-    if (AutoVarOp* av = blk->getAutoVar(id))
-      if (av->getName() == id) {
-        referent = av;
-        break;
-      }
-  }
-
-  // Didn't find an autovar? Try a function argument
-  if (!referent)
-    referent = func->getArgument(id);
-
-  // Didn't find an autovar? Try a constant value.
-  if (!referent)
-    referent= bundle->getConst(id);
-    
-  // Didn't find an constant? Try an error message for size
-  if (!referent)
-      error(loc,std::string("Referent '") + id + "' not found");
-
-  GetOp* refop = ast->AST::new_GetOp(referent, loc);
-  checkDoc(cur,refop);
-  return refop;
-}
-
-template<> GetFieldOp*
-XMLReaderImpl::parse<GetFieldOp>(xmlNodePtr& cur)
-{
-  std::string fieldName = getAttribute(cur,"field");
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    GetFieldOp* gfo = ast->AST::new_GetFieldOp(oprnd1,fieldName,loc);
-    if (doc)
-      gfo->setDoc(doc);
-    return gfo;
-  } else {
-    error(loc,std::string("Operator '") + 
-          reinterpret_cast<const char*>(cur->name) + "' requires an operand.");
-  }
-  return 0;
-}
-
-template<> GetIndexOp*
-XMLReaderImpl::parse<GetIndexOp>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    child = child->next;
-    if (child && skipBlanks(child)) {
-      Operator* oprnd2 = parseOperator(child);
-      GetIndexOp* gio = ast->AST::new_GetIndexOp(oprnd1,oprnd2,loc);
-      if (doc)
-        gio->setDoc(doc);
-      return gio;
-    } else {
-      error(loc,std::string("Operator '") + 
-            reinterpret_cast<const char*>(cur->name) + 
-            "' needs a second operand.");
-    }
-  } else {
-    error(loc,std::string("Operator '") + 
-          reinterpret_cast<const char*>(cur->name) + "' requires 2 operands.");
-  }
-  return 0;
-}
-
-template<> ConvertOp*
-XMLReaderImpl::parse<ConvertOp>(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  std::string typeName (getAttribute(cur,"type",true));
-  Type* Ty = getType(typeName);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    ConvertOp* cnvrt = ast->new_ConvertOp(oprnd1,Ty,loc);
-    if (doc)
-      cnvrt->setDoc(doc);
-    return cnvrt;
-  } else {
-    error(loc,std::string("Operator '") + 
-          reinterpret_cast<const char*>(cur->name) + "' requires an operand.");
-  }
-  return 0;
-}
-
-template<class OpClass>
-OpClass*
-XMLReaderImpl::parseNilaryOp(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  OpClass* result = ast->AST::new_NilaryOp<OpClass>(bundle,loc);
-  if (doc)
-    result->setDoc(doc);
-  return result;
-}
-
-template<class OpClass>
-OpClass*
-XMLReaderImpl::parseUnaryOp(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    OpClass* result = ast->AST::new_UnaryOp<OpClass>(oprnd1,bundle,loc);
-    if (doc)
-      result->setDoc(doc);
-    return result;
-  } else
-    error(loc,std::string("Operator '") + 
-      reinterpret_cast<const char*>(cur->name) + "' requires an operand.");
-  return 0;
-}
-
-template<class OpClass>
-OpClass*
-XMLReaderImpl::parseBinaryOp(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    child = child->next;
-    if (child && skipBlanks(child)) {
-      Operator* oprnd2 = parseOperator(child);
-      OpClass* result =  
-        ast->AST::new_BinaryOp<OpClass>(oprnd1,oprnd2,bundle,loc);
-      if (doc)
-        result->setDoc(doc);
-      return result;
-    } else {
-      error(loc,std::string("Operator '") + 
-            reinterpret_cast<const char*>(cur->name) + 
-            "' needs a second operand.");
-    }
-  } else {
-    error(loc,std::string("Operator '") + 
-          reinterpret_cast<const char*>(cur->name) + "' requires 2 operands.");
-  }
-  return 0;
-}
-
-template<class OpClass>
-OpClass*
-XMLReaderImpl::parseTernaryOp(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  if (child && skipBlanks(child)) {
-    Operator* oprnd1 = parseOperator(child);
-    child = child->next;
-    if (child && skipBlanks(child)) {
-      Operator* oprnd2 = parseOperator(child);
-      child = child->next;
-      if (child && skipBlanks(child)) {
-        Operator* oprnd3 = parseOperator(child);
-        OpClass* result =  
-          ast->AST::new_TernaryOp<OpClass>(oprnd1,oprnd2,oprnd3,bundle,loc);
-        if (doc)
-          result->setDoc(doc);
-        return result;
-      } else
-        error(loc,std::string("Operator '") + 
-              reinterpret_cast<const char*>(cur->name) +
-              "' needs a third operand.");
-    } else
-      error(loc,std::string("Operator '") + 
-            reinterpret_cast<const char*>(cur->name) + 
-            "' needs a second operand.");
-  } else
-    error(loc,std::string("Operator '") + 
-          reinterpret_cast<const char*>(cur->name) + "' requires 3 operands.");
-  return 0;
-}
-
-template<class OpClass>
-OpClass*
-XMLReaderImpl::parseMultiOp(xmlNodePtr& cur)
-{
-  Locator* loc = getLocator(cur);
-  xmlNodePtr child = cur->children;
-  Documentation* doc = parse<Documentation>(child); 
-  MultiOperator::OprndList ol;
-  while (child != 0 && skipBlanks(child)) {
-    Operator* operand = parseOperator(child);
-    if (operand)
-      ol.push_back(operand);
-    else
-      break;
-    child = child->next;
-  }
-  OpClass* result = ast->AST::new_MultiOp<OpClass>(ol,bundle,loc);
-  if (doc)
-    result->setDoc(doc);
-  return result;
-}
-
-template<> Block*
-XMLReaderImpl::parse<Block>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name) == TKN_block && "Expecting block element");
-  hlvmAssert(func != 0);
-  Locator* loc = getLocator(cur);
-  const char* label = getAttribute(cur, "label",false);
-  Block* result = ast->new_Block(loc);
-  xmlNodePtr child = checkDoc(cur,result);
-  MultiOperator::OprndList ops;
-  block = result;
-  if (label)
-    block->setLabel(label);
-  blocks.push_back(block);
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) 
-  {
-    Operator* op = parseOperator(child);
-    block->addOperand(op);
-    child = child->next;
-  }
-  blocks.pop_back();
-  if (blocks.empty())
-    block = 0;
-  else
-    block = blocks.back();
-  return result;
-}
-
-template<> Function*
-XMLReaderImpl::parse<Function>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_function);
-  Locator* loc = getLocator(cur);
-  std::string name, type;
-  getNameType(cur, name, type);
-  Constant* lkbl = bundle->getConst(name);
-  if (lkbl) {
-    if (llvm::isa<Function>(lkbl)) {
-      func = llvm::cast<Function>(lkbl);
-      if (func->hasBlock()) {
-        error(loc,std::string("Function '") + name + "' was already defined.");
-        return func;
-      }
-    } else {
-      error(loc,std::string("Name '") + name + "' was already used.");
-      return 0;
-    }
-  } else {
-    const Type* Ty = getType(type);
-    if (llvm::isa<SignatureType>(Ty)) {
-      func = ast->new_Function(name,bundle,llvm::cast<SignatureType>(Ty),loc);
-      const char* lnkg = getAttribute(cur, "linkage", false);
-      if (lnkg)
-        func->setLinkageKind(recognize_LinkageKinds(lnkg));
-    } else {
-      error(loc,"Invalid type for a function, must be signature");
-    }
-  }
-  xmlNodePtr child = checkDoc(cur,func);
-  if (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    Block* b = parse<Block>(child);
-    b->setParent(func);
-  }
-  return func;
-}
-
-template<> Program*
-XMLReaderImpl::parse<Program>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name) == TKN_program && "Expecting program element");
-  Locator* loc = getLocator(cur);
-  std::string name(getAttribute(cur, "id"));
-  Program* program = ast->new_Program(name,bundle,loc);
-  func = program;
-  xmlNodePtr child = checkDoc(cur,func);
-  if (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) {
-    Block* b = parse<Block>(child);
-    b->setParent(func);
-  } else {
-    hlvmDeadCode("Program Without Block!");
-  }
-  return program;
-}
-
-template<> Import*
-XMLReaderImpl::parse<Import>(xmlNodePtr& cur)
-{
-  hlvmAssert(getToken(cur->name)==TKN_import);
-  std::string pfx = getAttribute(cur,"prefix");
-  Import* imp = ast->new_Import(pfx,getLocator(cur));
-  checkDoc(cur,imp);
-  return imp;
-}
-
-template<> Bundle*
-XMLReaderImpl::parse<Bundle>(xmlNodePtr& cur) 
-{
-  hlvmAssert(getToken(cur->name) == TKN_bundle && "Expecting bundle element");
-  std::string pubid(getAttribute(cur, "id"));
-  Locator* loc = getLocator(cur);
-  bundle = ast->new_Bundle(pubid,loc);
-  xmlNodePtr child = checkDoc(cur,bundle);
-  while (child && skipBlanks(child) && child->type == XML_ELEMENT_NODE) 
-  {
-    int tkn = getToken(child->name);
-    Node* n = 0;
-    switch (tkn) {
-      case TKN_array       : { n = parse<ArrayType>(child); break; }
-      case TKN_any         : { n = parse<AnyType>(child); break; }
-      case TKN_boolean     : { n = parse<BooleanType>(child); break; }
-      case TKN_buffer      : { n = parse<BufferType>(child); break; }
-      case TKN_character   : { n = parse<CharacterType>(child); break; }
-      case TKN_constant    : { n = parseConstant(child); break; }
-      case TKN_enumeration : { n = parse<EnumerationType>(child); break; }
-      case TKN_function    : { n = parse<Function>(child); break; }
-      case TKN_import      : { n = parse<Import>(child); break; }
-      case TKN_opaque      : { n = parse<OpaqueType>(child); break; }
-      case TKN_pointer     : { n = parse<PointerType>(child); break; }
-      case TKN_program     : { n = parse<Program>(child); break; }
-      case TKN_range       : { n = parse<RangeType>(child); break; }
-      case TKN_real        : { n = parse<RealType>(child); break; }
-      case TKN_signature   : { n = parse<SignatureType>(child); break; }
-      case TKN_signed      : { n = parseInteger(child,true); break; }
-      case TKN_stream      : { n = parse<StreamType>(child); break; }
-      case TKN_string      : { n = parse<StringType>(child); break; }
-      case TKN_structure   : { n = parse<StructureType>(child); break; }
-      case TKN_text        : { n = parse<TextType>(child); break; }
-      case TKN_unsigned    : { n = parseInteger(child,false); break; }
-      case TKN_variable    : { n = parse<Variable>(child); break; }
-      case TKN_vector      : { n = parse<VectorType>(child); break; }
-      default:
-      {
-        hlvmDeadCode("Invalid content for bundle");
-        break;
-      }
-    }
-    if (n)
-      n->setParent(bundle); 
-    child = child->next;
-  }
-  return bundle;
-}
-
-Operator*
-XMLReaderImpl::parseOperator(xmlNodePtr& cur)
-{
-  if (cur && skipBlanks(cur) && cur->type == XML_ELEMENT_NODE) {
-    Operator* op = 0;
-    switch (getToken(cur->name)) {
-      case TKN_neg:          op = parseUnaryOp<NegateOp>(cur); break;
-      case TKN_cmpl:         op = parseUnaryOp<ComplementOp>(cur); break;
-      case TKN_preinc:       op = parseUnaryOp<PreIncrOp>(cur); break;
-      case TKN_predec:       op = parseUnaryOp<PreDecrOp>(cur); break;
-      case TKN_postinc:      op = parseUnaryOp<PostIncrOp>(cur); break;
-      case TKN_postdec:      op = parseUnaryOp<PostDecrOp>(cur); break;
-      case TKN_add:          op = parseBinaryOp<AddOp>(cur); break;
-      case TKN_sub:          op = parseBinaryOp<SubtractOp>(cur); break;
-      case TKN_mul:          op = parseBinaryOp<MultiplyOp>(cur); break;
-      case TKN_div:          op = parseBinaryOp<DivideOp>(cur); break;
-      case TKN_mod:          op = parseBinaryOp<ModuloOp>(cur); break;
-      case TKN_band:         op = parseBinaryOp<BAndOp>(cur); break;
-      case TKN_bor:          op = parseBinaryOp<BOrOp>(cur); break;
-      case TKN_bxor:         op = parseBinaryOp<BXorOp>(cur); break;
-      case TKN_bnor:         op = parseBinaryOp<BNorOp>(cur); break;
-      case TKN_not:          op = parseUnaryOp<NotOp>(cur); break;
-      case TKN_and:          op = parseBinaryOp<AndOp>(cur); break;
-      case TKN_or:           op = parseBinaryOp<OrOp>(cur); break;
-      case TKN_nor:          op = parseBinaryOp<NorOp>(cur); break;
-      case TKN_xor:          op = parseBinaryOp<XorOp>(cur); break;
-      case TKN_eq:           op = parseBinaryOp<EqualityOp>(cur); break;
-      case TKN_ne:           op = parseBinaryOp<InequalityOp>(cur); break;
-      case TKN_lt:           op = parseBinaryOp<LessThanOp>(cur); break;
-      case TKN_gt:           op = parseBinaryOp<GreaterThanOp>(cur); break;
-      case TKN_ge:           op = parseBinaryOp<GreaterEqualOp>(cur); break;
-      case TKN_le:           op = parseBinaryOp<LessEqualOp>(cur); break;
-      case TKN_ispinf:       op = parseUnaryOp<IsPInfOp>(cur); break;
-      case TKN_isninf:       op = parseUnaryOp<IsNInfOp>(cur); break;
-      case TKN_isnan:        op = parseUnaryOp<IsNanOp>(cur); break;
-      case TKN_trunc:        op = parseUnaryOp<TruncOp>(cur); break;
-      case TKN_round:        op = parseUnaryOp<RoundOp>(cur); break;
-      case TKN_floor:        op = parseUnaryOp<FloorOp>(cur); break;
-      case TKN_ceiling:      op = parseUnaryOp<CeilingOp>(cur); break;
-      case TKN_loge:         op = parseUnaryOp<LogEOp>(cur); break;
-      case TKN_log2:         op = parseUnaryOp<Log2Op>(cur); break;
-      case TKN_log10:        op = parseUnaryOp<Log10Op>(cur); break;
-      case TKN_squareroot:   op = parseUnaryOp<SquareRootOp>(cur); break;
-      case TKN_cuberoot:     op = parseUnaryOp<CubeRootOp>(cur); break;
-      case TKN_factorial:    op = parseUnaryOp<FactorialOp>(cur); break;
-      case TKN_power:        op = parseBinaryOp<PowerOp>(cur); break;
-      case TKN_root:         op = parseBinaryOp<RootOp>(cur); break;
-      case TKN_GCD:          op = parseBinaryOp<GCDOp>(cur); break;
-      case TKN_LCM:          op = parseBinaryOp<LCMOp>(cur); break;
-      case TKN_sinsert:      op = parseTernaryOp<StrInsertOp>(cur); break;
-      case TKN_serase:       op = parseTernaryOp<StrEraseOp>(cur); break;
-      case TKN_sreplace:     op = parseMultiOp<StrReplaceOp>(cur); break;
-      case TKN_sconcat:      op = parseBinaryOp<StrConcatOp>(cur); break;
-      case TKN_select:       op = parseTernaryOp<SelectOp>(cur); break;
-      case TKN_switch:       op = parseMultiOp<SwitchOp>(cur); break;
-      case TKN_while:        op = parseBinaryOp<WhileOp>(cur); break;
-      case TKN_unless:       op = parseBinaryOp<UnlessOp>(cur); break;
-      case TKN_until:        op = parseBinaryOp<UntilOp>(cur); break;
-      case TKN_loop:         op = parseTernaryOp<LoopOp>(cur); break;
-      case TKN_break:        op = parseNilaryOp<BreakOp>(cur); break;
-      case TKN_continue:     op = parseNilaryOp<ContinueOp>(cur); break;
-      case TKN_ret:          op = parseNilaryOp<ReturnOp>(cur); break;
-      case TKN_result:       op = parseUnaryOp<ResultOp>(cur); break;
-      case TKN_call:         op = parseMultiOp<CallOp>(cur); break;
-      case TKN_store:        op = parseBinaryOp<StoreOp>(cur); break;
-      case TKN_load:         op = parseUnaryOp<LoadOp>(cur); break;
-      case TKN_open:         op = parseUnaryOp<OpenOp>(cur); break;
-      case TKN_write:        op = parseBinaryOp<WriteOp>(cur); break;
-      case TKN_close:        op = parseUnaryOp<CloseOp>(cur); break;
-      case TKN_get:          op = parse<GetOp>(cur); break;
-      case TKN_getidx:       op = parse<GetIndexOp>(cur); break;
-      case TKN_getfld:       op = parse<GetFieldOp>(cur); break;
-      case TKN_convert:      op = parse<ConvertOp>(cur); break;
-      case TKN_autovar:      op = parse<AutoVarOp>(cur); break;
-      case TKN_block:        op = parse<Block>(cur); break;
-      default:
-        hlvmDeadCode("Unrecognized operator");
-        break;
-    }
-    return op;
-  } else if (cur != 0)
-    hlvmDeadCode("Expecting a value");
-  return 0;
-}
-
-void
-XMLReaderImpl::parseTree() 
-{
-  xmlNodePtr cur = xmlDocGetRootElement(doc);
-  if (!cur) {
-    error(0,"No root node");
-    return;
-  }
-  hlvmAssert(getToken(cur->name) == TKN_hlvm && "Expecting hlvm element");
-  const std::string pubid = getAttribute(cur,"pubid");
-  ast->setPublicID(pubid);
-  cur = cur->children;
-  if (skipBlanks(cur)) {
-    Bundle* b = parse<Bundle>(cur);
-  }
-}
-
-// Implement the read interface to parse, validate, and convert the
-// XML document into AST Nodes. 
-bool
-XMLReaderImpl::read() {
-
-  // create the RelaxNG Parser Context
-  xmlRelaxNGParserCtxtPtr rngparser =
-    xmlRelaxNGNewMemParserCtxt(HLVMGrammar, sizeof(HLVMGrammar));
-  if (!rngparser) {
-    error(0,"Failed to allocate RNG Parser Context");
-    return false;
-  }
-
-  // Provide the error handler for parsing the schema
-  xmlRelaxNGSetParserStructuredErrors(rngparser, ParseHandler, this);
-
-  // Parse the schema and build an internal structure for it
-  xmlRelaxNGPtr schema = xmlRelaxNGParse(rngparser);
-  if (!schema) {
-    error(0,"Failed to parse the RNG Schema");
-    xmlRelaxNGFreeParserCtxt(rngparser);
-    return false;
-  }
-
-  // create a document parser context
-  xmlParserCtxtPtr ctxt = xmlNewParserCtxt();
-  if (!ctxt) {
-    error(0,"Failed to allocate document parser context");
-    xmlRelaxNGFreeParserCtxt(rngparser);
-    xmlRelaxNGFree(schema);
-    return false;
-  }
-
-  // Parse the file, creating a Document tree
-  doc = xmlCtxtReadFile(ctxt, path.c_str(), 0, 0);
-  if (!doc) {
-    error(0,"Failed to parse the document");
-    xmlRelaxNGFreeParserCtxt(rngparser);
-    xmlRelaxNGFree(schema);
-    xmlFreeParserCtxt(ctxt);
-    return false;
-  }
-
-  // Create a validation context
-  xmlRelaxNGValidCtxtPtr validation = xmlRelaxNGNewValidCtxt(schema);
-  if (!validation) {
-    error(0,"Failed to create the validation context");
-    xmlRelaxNGFreeParserCtxt(rngparser);
-    xmlRelaxNGFree(schema);
-    xmlFreeParserCtxt(ctxt);
-    xmlFreeDoc(doc);
-    doc = 0;
-    return false;
-  }
-
-  // Provide the error handler for parsing the schema
-  xmlRelaxNGSetValidStructuredErrors(validation, ValidationHandler, this);
-
-  // Validate the document with the schema
-  if (xmlRelaxNGValidateDoc(validation, doc)) {
-    error(0,"Document didn't pass RNG schema validation");
-    xmlRelaxNGFreeParserCtxt(rngparser);
-    xmlRelaxNGFree(schema);
-    xmlFreeParserCtxt(ctxt);
-    xmlFreeDoc(doc);
-    doc = 0;
-    xmlRelaxNGFreeValidCtxt(validation);
-    return false;
-  }
-
-  // Parse
-  parseTree();
-  xmlRelaxNGFreeParserCtxt(rngparser);
-  xmlRelaxNGFree(schema);
-  xmlFreeParserCtxt(ctxt);
-  xmlRelaxNGFreeValidCtxt(validation);
-  xmlFreeDoc(doc);
-  doc = 0;
-  return true;
-}
-
-AST*
-XMLReaderImpl::get()
-{
-  return ast;
-}
-
-}
-
-XMLReader* 
-hlvm::XMLReader::create(const std::string& src)
-{
-  return new XMLReaderImpl(src);
-}
diff --git a/hlvm/hlvm/Reader/XMLReader.h b/hlvm/hlvm/Reader/XMLReader.h
deleted file mode 100644
index 5cc32e4..0000000
--- a/hlvm/hlvm/Reader/XMLReader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//===-- AST XML Reader Interface --------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Reader/XMLReader.h
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::XMLReader
-//===----------------------------------------------------------------------===//
-
-#ifndef XPS_READER_XMLREADER_H
-#define XPS_READER_XMLREADER_H
-
-#include <hlvm/Reader/Reader.h>
-#include <string>
-
-namespace hlvm {
-
-class XMLReader : public Reader
-{
-public:
-  /// This method instantiates an XMLReader that is prepared to read from
-  /// the path provided.
-  /// @brief Create a new XmlReader
-  static XMLReader* create(const std::string& path);
-
-  virtual ~XMLReader() {}
-};
-
-}
-#endif
diff --git a/hlvm/hlvm/Reader/YamlReader.cpp b/hlvm/hlvm/Reader/YamlReader.cpp
deleted file mode 100644
index 8abf3f4..0000000
--- a/hlvm/hlvm/Reader/YamlReader.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//===-- AST Yaml Reader Implementation --------------------------*- C++ -*-===//
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This program is open source software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License (GPL) as published by
-// the Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version. You should have received a copy of the GPL in a
-// file named COPYING that was included with this program; if not, you can
-// obtain a copy of the license through the Internet at http://www.fsf.org/
-//
-// 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.
-//
-////////////////////////////////////////////////////////////////////////////////
-/// @file hlvm/Reader/YamlReader.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::YamlReader.cpp
-////////////////////////////////////////////////////////////////////////////////
-
-#include <hlvm/Reader/Yaml/YamlReader.h>
-#include <llvm/System/MappedFile.h>
-#include <syck.h>
-
-namespace {
-
-class YamlReaderImpl : public hlvm::YamlReader {
-  public:
-    typedef std::map<SYMID,hlvm::AST::Node> NodeIDMap;
-  public:
-    YamlReaderImpl() {
-      parser_ = syck_new_parser();
-      syck_parser_handler(parser_, SyckNodeHandler(NodeHandler));
-      syck_parser_error_handler(parser_, SyckErrorHandler(ErrorHandler));
-      syck_parser_bad_anchor_handler(parser_, 
-        SyckBadAnchorHandler(BadAnchorHandler));
-    }
-
-    static SYMID NodeHandler(SyckParser*p, SyckNode* n)
-    {
-      switch (n->kind) {
-        case syck_str_kind: // Scalar
-          break;
-        case syck_seq_kind: // Array
-          break;
-        case syck_map_kind: // Map
-          break;
-        default:
-          // Unknown kind? 
-          // FIXME: Should we generate an error here?
-          break;/
-      }
-      return 0;
-    }
-
-    static void ErrorHandler(SyckParser*, char*)
-    {
-    }
-
-    static SyckNode* BadAnchorHandler(SyckParser*, char*)
-    {
-      return 0;
-    }
-
-    void parse(const llvm::sys::Path& path) {
-      llvm::sys::MappedFile mapfile(path);
-      mapfile.map();
-      syck_parser_str(parser_, mapfile.charBase(), mapfile.size(),0);
-      root_ = syck_parse(parser_);
-    }
-
-  private:
-    SyckParser* parser_;
-    SYMID root_;
-};
-
-} // anonymous
-
-hlvm::YamlReader* hlvm::YamlReader::create() {
-  return new YamlReaderImpl();
-}
diff --git a/hlvm/hlvm/Reader/YamlReader.h b/hlvm/hlvm/Reader/YamlReader.h
deleted file mode 100644
index 5a13c60..0000000
--- a/hlvm/hlvm/Reader/YamlReader.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//===-- AST Yaml Reader Interface -------------------------------*- C++ -*-===//
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This program is open source software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License (GPL) as published by
-// the Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version. You should have received a copy of the GPL in a
-// file named COPYING that was included with this program; if not, you can
-// obtain a copy of the license through the Internet at http://www.fsf.org/
-//
-// 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.
-//
-////////////////////////////////////////////////////////////////////////////////
-/// @file hlvm/Reader/YamlReader.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Declares the class hlvm::YamlReader.h
-////////////////////////////////////////////////////////////////////////////////
-
-#ifndef HLVM_YAML_READER_YAMLREADER_H
-#define HLVM_YAML_READER_YAMLREADER_H
-
-#include <llvm/System/Path.h>
-
-namespace hlvm {
-
-  /// This class provides an interface to reading HLVM's AST via a Yaml
-  /// document.
-  /// @brief Interface to Reading Yaml AST documents.
-  class YamlReader
-  {
-    /// @name Constructors
-    /// @{
-    public:
-      /// The constructor static method to create a YamlReader. This creates
-      /// the correct sublcass of YamlReader which is an implementation detail.
-      static YamlReader* create();
-    protected:
-      YamlReader() {}
-
-    /// @}
-    /// @name Accessors
-    /// @{
-    public:
-
-    /// @}
-    /// @name Mutators
-    /// @{
-    public:
-      void parse(const llvm::sys::Path& path);
-
-    /// @}
-    /// @name Data
-    /// @{
-    protected:
-    /// @}
-  };
-
-} // hlvm
-#endif
diff --git a/hlvm/hlvm/Runtime/Error.cpp b/hlvm/hlvm/Runtime/Error.cpp
deleted file mode 100644
index 5d2d529..0000000
--- a/hlvm/hlvm/Runtime/Error.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===-- Runtime Error Handler Implementation --------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Error.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/06/07
-/// @since 0.1.0
-/// @brief Implements the runtime error handling facilities.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Runtime/Internal.h>
-
-extern "C" {
-
-#include <hlvm/Runtime/Error.h>
-#include <stdlib.h>
-
-void
-hlvm_verror(ErrorCodes ec, va_list ap)
-{
-  const char* format = "Unknown Error";
-  switch (ec) {
-    case E_UNHANDLED_EXCEPTION: format = "Unhandled Exception"; break;
-    case E_BAD_OPTION         : format = "Unrecognized option: %s"; break;
-    case E_MISSING_ARGUMENT   : format = "Missing option argument for %s";break;
-    case E_NO_PROGRAM_NAME    : format = "Program name not specified"; break;
-    case E_PROGRAM_NOT_FOUND  : format = "Program '%s' not found"; break;
-    case E_APR_ERROR          : format = "%s while %s"; break;
-    case E_ASSERT_FAIL        : format = "Assertion Failure: (%s) at %s:%d"; break;
-    case E_OPTION_ERROR       : format = "In Options: %s"; break;
-    default: break;
-  }
-  char* msg = apr_pvsprintf(_hlvm_pool, format, ap);
-  apr_file_printf(_hlvm_stderr, "Error: %s\n", msg);
-}
-
-void 
-hlvm_error(ErrorCodes ec, ...)
-{
-  va_list ap;
-  va_start(ap,ec);
-  hlvm_verror(ec,ap);
-}
-
-void 
-hlvm_fatal(ErrorCodes ec, ...)
-{
-  va_list ap;
-  va_start(ap,ec);
-  hlvm_verror(ec,ap);
-  exit(ec);
-}
-
-void hlvm_panic(const char* msg) {
-  exit(254);
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Error.h b/hlvm/hlvm/Runtime/Error.h
deleted file mode 100644
index 1e88582..0000000
--- a/hlvm/hlvm/Runtime/Error.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//===-- HLVM Runtime Error Handling Interface -------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Error.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/05
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime error handler 
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_ERROR_H
-#define HLVM_RUNTIME_ERROR_H
-
-enum ErrorCodes {
-  E_UNHANDLED_EXCEPTION,
-  E_BAD_OPTION,
-  E_MISSING_ARGUMENT,
-  E_NO_PROGRAM_NAME,
-  E_PROGRAM_NOT_FOUND,
-  E_APR_ERROR,
-  E_ASSERT_FAIL,
-  E_OPTION_ERROR
-};
-
-void hlvm_error(ErrorCodes ec, ...);
-void hlvm_verror(ErrorCodes ec, va_list ap);
-void hlvm_fatal(ErrorCodes ec, ...);
-void hlvm_panic(const char *msg);
-
-#endif
diff --git a/hlvm/hlvm/Runtime/Internal.cpp b/hlvm/hlvm/Runtime/Internal.cpp
deleted file mode 100644
index 4c70b7f..0000000
--- a/hlvm/hlvm/Runtime/Internal.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===-- Runtime Internal Sharing Implementation -----------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Internal.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/05
-/// @since 0.1.0
-/// @brief Declares the implementation to the internal runtime facilities
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Runtime/Internal.h>
-
-extern "C" {
-
-#include <hlvm/Runtime/Error.h>
-
-apr_pool_t* _hlvm_pool = 0;
-apr_file_t* _hlvm_stderr = 0;
-
-void _hlvm_initialize()
-{
-  if (APR_SUCCESS != apr_initialize())
-    hlvm_panic("Can't initialize apr");
-  if (APR_SUCCESS != apr_pool_create(&_hlvm_pool, 0))
-    hlvm_panic("Can't create the pool");
-  if (APR_SUCCESS != apr_file_open_stderr(&_hlvm_stderr, _hlvm_pool))
-    hlvm_panic("Can't open stderr");
-}
-
-bool hlvm_apr_error(apr_status_t stat, const char* whilst)
-{
-  if (APR_SUCCESS != stat) {
-    char buffer[1024];
-    apr_strerror(stat,buffer,1024);
-    hlvm_error(E_APR_ERROR, buffer, whilst);
-    return false;
-  }
-  return true;
-}
-
-bool hlvm_assert_fail(const char* expr, const char* file, int line)
-{
-  hlvm_error(E_ASSERT_FAIL,expr,file,line);
-  return false;
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Internal.h b/hlvm/hlvm/Runtime/Internal.h
deleted file mode 100644
index 9a7e92a..0000000
--- a/hlvm/hlvm/Runtime/Internal.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//===-- Runtime Internal Sharing Interface ----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Internal.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/05
-/// @since 0.1.0
-/// @brief Declares the interface to the internally shared runtime facilities
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_INTERNAL_H 
-#define HLVM_RUNTIME_INTERNAL_H 
-
-#include <apr-1/apr_file_io.h>
-#include <apr-1/apr_strings.h>
-
-extern "C" {
-
-#include <hlvm/Runtime/Error.h>
-
-typedef apr_uint64_t hlvm_size;
-
-struct hlvm_text_obj {
-  hlvm_size len;
-  char* str;
-  unsigned is_const : 1;
-};
-
-struct hlvm_stream_obj {
-  apr_file_t* fp;
-};
-
-struct hlvm_buffer_obj {
-  hlvm_size len;
-  char* data;
-};
-
-extern apr_pool_t* _hlvm_pool;
-extern apr_file_t* _hlvm_stderr;
-
-extern void _hlvm_initialize();
-
-/// This is the HLVM runtime assert macro. It is very much similar to
-/// the "assert.h" version but without some of the overhead. It also lets
-/// us take control of what to do when an assertion happens. The standard
-/// implementation just prints and aborts.
-#define hlvm_stringize(expr) #expr
-#define hlvm_assert(expr) \
-  ((expr) ? 1 : hlvm_assert_fail(#expr,__FILE__,__LINE__))
-
-
-/// This function gets called by the hlvm_assert macro, and in other situations
-/// where a "panic" happens. It provides the proper escape mechanism given the
-/// configuration of the runtime.
-bool hlvm_assert_fail(const char* expression, const char* file, int line_num);
-
-/// This macro checks the return value of an APR call and reports the error
-/// if there is one. It can be used as a
-#define HLVM_APR(apr_call,whilst) (hlvm_apr_error(apr_call,whilst))
-
-extern bool hlvm_apr_error(apr_status_t stat, const char* whilst);
-
-}
-
-#endif
diff --git a/hlvm/hlvm/Runtime/Main.cpp b/hlvm/hlvm/Runtime/Main.cpp
deleted file mode 100644
index fc9909a..0000000
--- a/hlvm/hlvm/Runtime/Main.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//===-- Runtime Main Implementation -----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Main.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/06/04
-/// @since 0.1.0
-/// @brief Implements the runtime main program.
-//===----------------------------------------------------------------------===//
-
-#include <apr-1/apr_getopt.h>
-#include <apr-1/apr_file_io.h>
-#include <stdlib.h>
-#include <hlvm/Runtime/Internal.h>
-#include <hlvm/Base/Configuration.h>
-
-namespace {
-
-apr_getopt_option_t hlvm_options[] = {
-  { "help", 'h', 0, "Print help on using HLVM" },
-  { "version", 'v', 0, "Print version information" },
-  { 0, 0, 0, 0 }
-};
-
-void print_version( bool should_exit = true )
-{
-  apr_file_printf(_hlvm_stderr, 
-    "HLVM Runtime Version %s; %s\n", HLVM_Version, HLVM_ConfigTime);
-  apr_file_printf(_hlvm_stderr, "%s\n", HLVM_Copyright);
-  apr_file_printf(_hlvm_stderr, "Contact %s For Details\n", HLVM_Maintainer);
-  if (should_exit)
-    exit(0);
-}
-
-void print_help()
-{
-  print_version(false);
-  apr_file_printf(_hlvm_stderr,"\nOptions:\n");
-  for (unsigned i = 0; i < sizeof(hlvm_options)/sizeof(hlvm_options[0])-1; ++i) {
-    apr_file_printf(_hlvm_stderr, "  --%-15s  %-74s\n", 
-      hlvm_options[i].name, hlvm_options[i].description);
-  }
-  exit(0);
-}
-
-void print_error(void*, const char* fmt, ...)
-{
-  va_list ap;
-  va_start(ap,fmt);
-  char* msg = apr_pvsprintf(_hlvm_pool, fmt, ap);
-  hlvm_fatal(E_OPTION_ERROR,msg);
-}
-
-}
-
-extern "C" {
-
-#include <hlvm/Runtime/Main.h>
-#include <hlvm/Runtime/Program.h>
-#include <hlvm/Runtime/Memory.h>
-
-
-/// This is the function called from the real main() in hlvm/tools/hlvm.  We 
-/// do this because we don't want to expose the "Main" class to the outside
-/// world. The interface to the HLVM Runtime is C even though the
-/// implementation uses C++.
-int hlvm_runtime_main(int argc, char**argv)
-{
-  int result = 0;
-  // Initialize APR and HLVM
-  _hlvm_initialize();
-
-  // Process the options
-  apr_getopt_t* options = 0;
-  if (APR_SUCCESS != apr_getopt_init(&options, _hlvm_pool, argc, argv))
-    hlvm_panic("Can't initialize apr_getopt");
-  options->interleave = 0;
-  options->errfn = print_error;
-  options->errarg = _hlvm_stderr;
-  int ch;
-  const char* arg;
-  hlvm_program_type entry_func = 0;
-  apr_status_t stat = apr_getopt_long(options, hlvm_options, &ch, &arg); 
-  while (stat != APR_EOF) {
-    switch (stat) {
-      case APR_SUCCESS:
-      {
-        switch (ch) {
-          case 'h': print_help(); break;
-          case 'v': print_version(); break;
-          default:
-            break;
-        }
-        break;
-      }
-      case APR_BADCH:
-      {
-        char option[3];
-        option[0] = ch;
-        option[1] = 0;
-        hlvm_error(E_BAD_OPTION,option);
-        return E_BAD_OPTION;
-      }
-      case APR_BADARG:
-      {
-        hlvm_error(E_MISSING_ARGUMENT);
-        return E_MISSING_ARGUMENT;
-      }
-      case APR_EOF:
-      default:
-      {
-        hlvm_panic("Unknown response from apr_getopt_long");
-        break;
-      }
-    }
-    stat = apr_getopt_long(options, hlvm_options, &ch, &arg); 
-  }
-
-  const char* prog_name = argv[options->ind];
-  if (prog_name) {
-    entry_func = hlvm_find_program(prog_name);
-    // If we didn't get a start function ..
-    if (!entry_func) {
-      // Give an error
-      hlvm_error(E_PROGRAM_NOT_FOUND,prog_name);
-      return E_PROGRAM_NOT_FOUND;
-    }
-    result = (*entry_func)(options->argc, options->argv);
-  } else {
-    hlvm_error(E_NO_PROGRAM_NAME,0);
-    return E_NO_PROGRAM_NAME;
-  }
-  return result;
-}
-
-} // end extern "C"
diff --git a/hlvm/hlvm/Runtime/Main.h b/hlvm/hlvm/Runtime/Main.h
deleted file mode 100644
index 6c5d68d..0000000
--- a/hlvm/hlvm/Runtime/Main.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- Runtime Main Program ------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Main.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime main program
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_MAIN_H
-#define HLVM_RUNTIME_MAIN_H
-
-extern "C" {
-
-int hlvm_runtime_main(int argc, char**argv);
-
-}
-
-#endif
diff --git a/hlvm/hlvm/Runtime/Math.cpp b/hlvm/hlvm/Runtime/Math.cpp
deleted file mode 100644
index 520e91a..0000000
--- a/hlvm/hlvm/Runtime/Math.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//===-- Runtime Math Functions Implementation -------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Math.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/08/01
-/// @since 0.2.0
-/// @brief Implements the runtime math functions.
-//===----------------------------------------------------------------------===//
-
-
-extern "C" {
-#include <hlvm/Runtime/Math.h>
-
-hlvm_f32 hlvm_f32_ispinf(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_isninf(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_isnan(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_trunc(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_round(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_floor(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_ceiling(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_loge(hlvm_f32 x)
-{
-  return x;
-}
-
-hlvm_f32 hlvm_f32_log2(hlvm_f32 x)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_log10(hlvm_f32 x)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_squareroot(hlvm_f32 x)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_cuberoot(hlvm_f32 x)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_factorial(hlvm_f32 x)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_power(hlvm_f32 x, hlvm_f32 y)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_root(hlvm_f32 x, hlvm_f32 y)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_gcd(hlvm_f32 x , hlvm_f32 y)
-{
-  return x;
-}
-hlvm_f32 hlvm_f32_lcm(hlvm_f32 x , hlvm_f32 y)
-{
-  return x;
-}
-
-hlvm_f64 hlvm_f64_ispinf(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_isninf(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_isnan(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_trunc(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_round(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_floor(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_ceiling(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_loge(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_log2(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_log10(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_squareroot(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_cuberoot(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_factorial(hlvm_f64 x)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_power(hlvm_f64 x, hlvm_f64 y)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_root(hlvm_f64 x, hlvm_f64 y)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_gcd(hlvm_f64 x, hlvm_f64 y)
-{
-  return x;
-}
-hlvm_f64 hlvm_f64_lcm(hlvm_f64 x, hlvm_f64 y)
-{
-  return x;
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Math.h b/hlvm/hlvm/Runtime/Math.h
deleted file mode 100644
index 178ee77..0000000
--- a/hlvm/hlvm/Runtime/Math.h
+++ /dev/null
@@ -1,71 +0,0 @@
-//===-- Runtime Math Functions Interface ------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Math.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/08/01
-/// @since 0.2.0
-/// @brief Declares the interface to the runtime math functions
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_MATH_H
-#define HLVM_RUNTIME_MATH_H
-
-typedef double hlvm_f64;
-typedef float hlvm_f32;
-
-extern hlvm_f32 hlvm_f32_ispinf(hlvm_f32);
-extern hlvm_f32 hlvm_f32_isninf(hlvm_f32);
-extern hlvm_f32 hlvm_f32_isnan(hlvm_f32);
-extern hlvm_f32 hlvm_f32_trunc(hlvm_f32);
-extern hlvm_f32 hlvm_f32_round(hlvm_f32);
-extern hlvm_f32 hlvm_f32_floor(hlvm_f32);
-extern hlvm_f32 hlvm_f32_ceiling(hlvm_f32);
-extern hlvm_f32 hlvm_f32_loge(hlvm_f32);
-extern hlvm_f32 hlvm_f32_log2(hlvm_f32);
-extern hlvm_f32 hlvm_f32_log10(hlvm_f32);
-extern hlvm_f32 hlvm_f32_squareroot(hlvm_f32);
-extern hlvm_f32 hlvm_f32_cuberoot(hlvm_f32);
-extern hlvm_f32 hlvm_f32_factorial(hlvm_f32);
-extern hlvm_f32 hlvm_f32_power(hlvm_f32, hlvm_f32);
-extern hlvm_f32 hlvm_f32_root(hlvm_f32, hlvm_f32);
-extern hlvm_f32 hlvm_f32_gcd(hlvm_f32, hlvm_f32);
-extern hlvm_f32 hlvm_f32_lcm(hlvm_f32, hlvm_f32);
-
-extern hlvm_f64 hlvm_f64_ispinf(hlvm_f64);
-extern hlvm_f64 hlvm_f64_isninf(hlvm_f64);
-extern hlvm_f64 hlvm_f64_isnan(hlvm_f64);
-extern hlvm_f64 hlvm_f64_trunc(hlvm_f64);
-extern hlvm_f64 hlvm_f64_round(hlvm_f64);
-extern hlvm_f64 hlvm_f64_floor(hlvm_f64);
-extern hlvm_f64 hlvm_f64_ceiling(hlvm_f64);
-extern hlvm_f64 hlvm_f64_loge(hlvm_f64);
-extern hlvm_f64 hlvm_f64_log2(hlvm_f64);
-extern hlvm_f64 hlvm_f64_log10(hlvm_f64);
-extern hlvm_f64 hlvm_f64_squareroot(hlvm_f64);
-extern hlvm_f64 hlvm_f64_cuberoot(hlvm_f64);
-extern hlvm_f64 hlvm_f64_factorial(hlvm_f64);
-extern hlvm_f64 hlvm_f64_power(hlvm_f64, hlvm_f64);
-extern hlvm_f64 hlvm_f64_root(hlvm_f64, hlvm_f64);
-extern hlvm_f64 hlvm_f64_gcd(hlvm_f64, hlvm_f64);
-extern hlvm_f64 hlvm_f64_lcm(hlvm_f64, hlvm_f64);
-#endif
diff --git a/hlvm/hlvm/Runtime/Memory.cpp b/hlvm/hlvm/Runtime/Memory.cpp
deleted file mode 100644
index 8cfbc3e..0000000
--- a/hlvm/hlvm/Runtime/Memory.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===-- Runtime Memory Management Implementation ----------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Memory.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/06/04
-/// @since 0.1.0
-/// @brief Implements the runtime memory management facilities.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Runtime/Memory.h>
-#include <stdlib.h>
-
-namespace {
-
-
-}
-
-extern "C" {
-
-void* hlvm_allocate_array(uint64_t count, uint64_t elemSize) {
-  return malloc (count * elemSize);
-}
-
-void hlvm_deallocate_array(void* ptr) {
-  free(ptr);
-  return;
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Memory.h b/hlvm/hlvm/Runtime/Memory.h
deleted file mode 100644
index b579ea7..0000000
--- a/hlvm/hlvm/Runtime/Memory.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//===-- Runtime Memory Management Interface ---------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Memory.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/06/05
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime memory management facilities
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_MEMORY_H
-#define HLVM_RUNTIME_MEMORY_H
-
-#include <apr-1/apr.h>
-
-typedef apr_uint64_t hlvm_size;
-
-#endif
diff --git a/hlvm/hlvm/Runtime/Program.cpp b/hlvm/hlvm/Runtime/Program.cpp
deleted file mode 100644
index 0e8f5c4..0000000
--- a/hlvm/hlvm/Runtime/Program.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//===-- Runtime Program Implementation --------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Program.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/06/04
-/// @since 0.1.0
-/// @brief Implements the runtime program facilities.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Runtime/Internal.h>
-
-extern "C" {
-
-#include <hlvm/Runtime/Program.h>
-
-/// Declare the external function that gets use the first element in
-/// the hlvm_programs appending array. This function is implemented in the
-/// hlvm_get_programs.ll file.
-extern hlvm_programs_element* hlvm_get_programs();
-
-/// Search the list of programs for a matching entry point. This uses a dumb
-/// linear search but it should be okay because the number of program entry
-/// points in any given executable should not be huge. If it is, someone is
-/// designing their software poorly and they deserve what they get :)
-hlvm_program_type 
-hlvm_find_program(const char* uri)
-{
-  hlvm_programs_element* p = hlvm_get_programs();
-  while (p && p->program_entry) {
-    if (0 == apr_strnatcmp(p->program_name,uri))
-      return p->program_entry;
-    ++p;
-  }
-  return 0;
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Program.h b/hlvm/hlvm/Runtime/Program.h
deleted file mode 100644
index e9dfd0d..0000000
--- a/hlvm/hlvm/Runtime/Program.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//===-- Runtime Program Interface -------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Program.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime program facilities
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_PROGRAM_H
-#define HLVM_RUNTIME_PROGRAM_H
-
-/// This is the type of a program entry point function.
-typedef int (*hlvm_program_type)(int, const char **);
-
-/// This is the type of the appending array of program entry elements
-struct hlvm_programs_element {
-  const char* program_name;
-  hlvm_program_type program_entry;
-};
-
-/// This function searches the hlvm_programs array for an entry matching
-/// uri and returns a pointer to the corresponding program.
-extern hlvm_program_type hlvm_find_program(const char* uri);
-
-#endif
diff --git a/hlvm/hlvm/Runtime/README.txt b/hlvm/hlvm/Runtime/README.txt
deleted file mode 100644
index 41e03c1..0000000
--- a/hlvm/hlvm/Runtime/README.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-HLVM Runtime Library
-====================
-
-This directory contains the HLVM Runtime Library. In order to avoid many linking
-and other problems, it has a number of rules that must be followed.
-
-1. No exposed C++
------------------
-Although the source files are C++, the library cannot expose any C++ to its 
-users. Its interface is C language. Header files must be compilable with a plain
-C compiler. Implementation can use C++ features, but with caveats.
-
-2. C++ Implementation In Anonymous Namespace
---------------------------------------------
-Any C++ used in a .cpp file must be in the anonymous namespace. This makes it
-local (static) to the compilation unit and completely hidden from the users of
-the runtime.
-
-3. extern "C" usage
--------------------
-The C++ extern "C" facility may not be used in Runtime headers. Instead, 
-implementation files should wrap the #include statements like this:
-
-extern "C" {
-#include <hlvm/Runtime/Program.h>
-}
-
-4. No Static Construction
--------------------------
-The implementation files must avoid static construction. This helps to ensure
-fast startup times and avoids linking errors when llvm-g++ optimizes out things
-
-5. No libraries but APR
------------------------
-The Runtime library is intended to link against APR and APRUTIL only. No other
-linkage requirements are permitted.
-
-6. No System Headers
---------------------
-The Runtime library must not #include any system headers. Instead it should use
-the facilities of the APR or APRUTIL libraries.
-
-7. Three Layers
-------------------------
-There are three layers of abstraction in the runtime. The first layer is what
-user programs can see. At this level, most everything is a void*. This is so
-that the implementation choices are not restricted and so that runtime
-implementation can change without affecting its users. 
-
-The second layer is that which is common to the runtime. That is, between
-compilation units of the runtime itself. At this level, most of the types are
-defined as simple structs which allow access to data members between modules.
-
-The third layer is that which is internal to the defining module.  Each module
-might decide to embellish the inter-module definition of a given type,
-including by making it a C++ class. None of this can be exposed outside the
-module.
diff --git a/hlvm/hlvm/Runtime/SConscript b/hlvm/hlvm/Runtime/SConscript
deleted file mode 100644
index 08c731d..0000000
--- a/hlvm/hlvm/Runtime/SConscript
+++ /dev/null
@@ -1,32 +0,0 @@
-#===-- Build Script For hlvm/Runtime --------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-Import('env')
-from build import hlvm
-hlvm.GetBytecode(env)
-env.BytecodeArchive('HLVMRuntime.bca',hlvm.GetAllCXXFiles(env) + [
-  'hlvm_get_programs.ll'])
-asm = env.bc2s(source=['hlvm_get_programs.bc'])
-obj = env.StaticObject(source=asm)
-lib = env.StaticLibrary('HLVMRuntime',hlvm.GetAllCXXFiles(env) + obj)
-hlvm.InstallLibrary(env,lib)
-hlvm.InstallHeader(env,hlvm.GetFiles(env,'*.h'))
diff --git a/hlvm/hlvm/Runtime/Stream.cpp b/hlvm/hlvm/Runtime/Stream.cpp
deleted file mode 100644
index 41cacfb..0000000
--- a/hlvm/hlvm/Runtime/Stream.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//===-- Runtime Stream I/O Implementation -----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Stream.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Implements the functions for runtime stream input/output.
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Runtime/Internal.h>
-
-extern "C" {
-#include <hlvm/Runtime/Stream.h>
-}
-
-namespace 
-{
-  class Stream : public hlvm_stream_obj 
-  {
-  public:
-    Stream* open(const char* uri)
-    {
-      if (uri[0] == 'h' && uri[1] == 'l' && uri[2] == 'v' && uri[3] == 'm') {
-        if (0 == apr_strnatcmp(uri,"hlvm:std:out")) {
-          if (HLVM_APR(apr_file_open_stdout(&this->fp,_hlvm_pool),"opening std:out"))
-            return this;
-        } else if (0 == apr_strnatcmp(uri,"hlvm::std::in")) {
-          if (HLVM_APR(apr_file_open_stdin(&this->fp,_hlvm_pool),"opening std:in"))
-            return this;
-        } else if (0 == apr_strnatcmp(uri,"hlvm::std::err")) {
-          if (HLVM_APR(apr_file_open_stderr(&this->fp,_hlvm_pool),"opening std:err"))
-            return this;
-        }
-      }
-      return 0;
-    }
-    void close() {
-      HLVM_APR(apr_file_close(this->fp),"closing a stream");
-    }
-    hlvm_size write(void* data, hlvm_size len) {
-      apr_size_t nbytes = len;
-      HLVM_APR(apr_file_write(this->fp, data, &nbytes),"writing a stream");
-      return nbytes;
-    }
-    hlvm_size write(const char* string) {
-      apr_size_t nbytes = strlen(string);
-      HLVM_APR(apr_file_write(this->fp, string, &nbytes),"writing a stream");
-      return nbytes;
-    }
-  };
-}
-
-extern "C" {
-
-hlvm_stream
-hlvm_stream_open(const char* uri)
-{
-  hlvm_assert(uri);
-  Stream* result = new Stream();
-  return result->open(uri);
-}
-
-void 
-hlvm_stream_close(hlvm_stream stream)
-{
-  hlvm_assert(stream);
-  Stream* strm = static_cast<Stream*>(stream);
-  strm->close();
-}
-
-hlvm_size
-hlvm_stream_write_buffer(hlvm_stream stream, hlvm_buffer data, hlvm_size len)
-{
-  hlvm_assert(stream);
-  hlvm_assert(data && data->data);
-  Stream* strm = static_cast<Stream*>(stream);
-  return strm->write(data->data,data->len);
-}
-
-hlvm_size
-hlvm_stream_write_text(hlvm_stream stream, hlvm_text txt)
-{
-  hlvm_assert(stream);
-  hlvm_assert(txt && txt->str);
-  Stream* strm = static_cast<Stream*>(stream);
-  return strm->write(txt->str,txt->len);
-}
-
-hlvm_size 
-hlvm_stream_write_string(hlvm_stream stream, const char* string)
-{
-  hlvm_assert(stream);
-  hlvm_assert(string);
-  Stream* strm = static_cast<Stream*>(stream);
-  return strm->write(string);
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Stream.h b/hlvm/hlvm/Runtime/Stream.h
deleted file mode 100644
index e72fec5..0000000
--- a/hlvm/hlvm/Runtime/Stream.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//===-- Runtime Stream I/O Interface ----------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Stream.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime Stream Input/Output operations
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_STREAM_H
-#define HLVM_RUNTIME_STREAM_H
-
-#include <hlvm/Runtime/Text.h>
-
-typedef struct hlvm_stream_obj* hlvm_stream;
-typedef struct hlvm_buffer_obj* hlvm_buffer;
-
-extern hlvm_stream 
-hlvm_stream_open(const char* uri);
-
-extern hlvm_size 
-hlvm_stream_write_buffer(hlvm_stream str, hlvm_buffer data, hlvm_size len);
-
-extern hlvm_size 
-hlvm_stream_write_string(hlvm_stream str, const char* string);
-
-extern void 
-hlvm_op_file_close(hlvm_stream file);
-
-#endif
diff --git a/hlvm/hlvm/Runtime/Text.cpp b/hlvm/hlvm/Runtime/Text.cpp
deleted file mode 100644
index 56678e9..0000000
--- a/hlvm/hlvm/Runtime/Text.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//===-- Runtime Text String Implementation ----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Text.cpp
-/// @author Reid Spencer <rspencer@reidspencer.org> (original author)
-/// @date 2006/05/25
-/// @since 0.1.0
-/// @brief Implements the functions for runtime text string support
-//===----------------------------------------------------------------------===//
-
-#include <apr-1/apr_strings.h>
-
-#include <hlvm/Runtime/Internal.h>
-
-extern "C" {
-#include <hlvm/Runtime/Text.h>
-}
-
-namespace {
-
-class Text : public hlvm_text_obj {
-};
-
-}
-
-extern "C" {
-
-hlvm_text 
-hlvm_text_create(const char* initializer)
-{
-  Text* result = new Text();
-  if (initializer) {
-    result->len = strlen(initializer);
-    result->str = const_cast<char*>(initializer);
-    result->is_const = true;
-  } else {
-    result->len = 0;
-    result->str = 0;
-    result->is_const = false;
-  }
-  return hlvm_text(result);
-}
-
-void
-hlvm_text_delete(hlvm_text T)
-{
-  Text* t = reinterpret_cast<Text*>(T);
-  if (!t->is_const && t->str)
-    delete [] t->str;
-  delete t;
-}
-
-}
diff --git a/hlvm/hlvm/Runtime/Text.h b/hlvm/hlvm/Runtime/Text.h
deleted file mode 100644
index d8615e9..0000000
--- a/hlvm/hlvm/Runtime/Text.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- Runtime Text String Interface ---------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Runtime/Text.h
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/24
-/// @since 0.1.0
-/// @brief Declares the interface to the runtime text string facilities
-//===----------------------------------------------------------------------===//
-
-#ifndef HLVM_RUNTIME_TEXT_H
-#define HLVM_RUNTIME_TEXT_H
-
-#include <hlvm/Runtime/Memory.h>
-
-typedef struct hlvm_text_obj* hlvm_text;
-
-extern hlvm_text hlvm_text_create(const char* initializer);
-extern void hlvm_text_delete(hlvm_text T);
-
-#endif
diff --git a/hlvm/hlvm/Runtime/hlvm_get_programs.ll b/hlvm/hlvm/Runtime/hlvm_get_programs.ll
deleted file mode 100644
index 2c7ba11..0000000
--- a/hlvm/hlvm/Runtime/hlvm_get_programs.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-;===-- Runtime Programs Glue -------------------------------------*- LLVM -*-===
-;
-;                      High Level Virtual Machine (HLVM)
-;
-; Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-;
-; This software is free software; you can redistribute it and/or modify it 
-; under the terms of the GNU Lesser General Public License as published by 
-; the Free Software Foundation; either version 2.1 of the License, or (at 
-; your option) any later version.
-;
-; This software is distributed in the hope that it will be useful, but WITHOUT
-; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-; FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-; more details.
-;
-; You should have received a copy of the GNU Lesser General Public License 
-; along with this library in the file named LICENSE.txt; if not, write to the 
-; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-; MA 02110-1301 USA
-;
-;===-------------------------------------------------------------------------===
-;
-; This file provides some glue between the runtime library and the HLVM compiler
-; It arranges to get the address of an "appending linkage" constant array via
-; the hlvm_get_programs() function. This is necessary to be done in LLVM 
-; assembly because you can't express an "appending linkage" constant array in
-; C or C++. Additionally, this provides the null-terminator sentinel that marks
-; the end of the array. When the compiler generates code for an HLVM program, it
-; creates an entry in this array. Since it is legal to have multiple entry 
-; points in HLVM, the resulting array (collected from all Program compilations)
-; will contain the complete set of entry points that can be started. This is
-; useful where a group of related programs should share the same executable. For
-; example, "rm", "cp", "mkdir", "rmdir", etc. all have similar needs and, with
-; LLVM, could all be in the same executable. This file makes that magic 
-; happen.
-; 
-;===-------------------------------------------------------------------------===
-;
-; This is the type for the elements of the hlvm_programs array. Each element
-; contains a pointer to a string for the name of the program and a pointer to
-; the entry function.
-%hlvm_programs_element = type { i8*, i32 (i32, i8**)* }
-
-; This is the appending constant array with 1 element here that is zero
-; initialized. This forms the zero-terminator in the array. This module MUST
-; be linked LAST in order for this to work.
-@hlvm_programs = appending constant [1 x %hlvm_programs_element] zeroinitializer
-
-
-; This is a very simple function to get the address of %hlvm_programs.
-define %hlvm_programs_element* @hlvm_get_programs() {
-entry:
-  ret %hlvm_programs_element* getelementptr([1 x %hlvm_programs_element]* @hlvm_programs, i32 0, i32 0)
-}
diff --git a/hlvm/hlvm/SConscript b/hlvm/hlvm/SConscript
deleted file mode 100644
index d8b2e45..0000000
--- a/hlvm/hlvm/SConscript
+++ /dev/null
@@ -1,25 +0,0 @@
-#===-- Build Script For hlvm ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.Dirs(env,['Base','AST','Pass','Reader','Writer','CodeGen','Runtime'])
diff --git a/hlvm/hlvm/Writer/SConscript b/hlvm/hlvm/Writer/SConscript
deleted file mode 100644
index 7ae0b89..0000000
--- a/hlvm/hlvm/Writer/SConscript
+++ /dev/null
@@ -1,27 +0,0 @@
-#===-- Build Script For hlvm/Writer ---------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-lib = env.Library('HLVMWriter',hlvm.GetAllCXXFiles(env))
-hlvm.InstallLibrary(env,lib)
-hlvm.InstallHeader(env,['XMLWriter.h'])
diff --git a/hlvm/hlvm/Writer/Writer.h b/hlvm/hlvm/Writer/Writer.h
deleted file mode 100644
index 6627831..0000000
--- a/hlvm/hlvm/Writer/Writer.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- hlvm/Writer/Writer.h - AST Abstract Writer Class --------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Writer/Writer.h
-/// @author Reid Spencer <rspencer@x10sys.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::Writer
-//===----------------------------------------------------------------------===//
-
-#ifndef XPS_WRITER_WRITER_H
-#define XPS_WRITER_WRITER_H
-
-namespace hlvm {
-
-class AST;
-class Node;
-
-class Writer
-{
-public:
-  virtual ~Writer() {}
-  /// This method writes the entire content of the AST to the writer's
-  /// destination
-  virtual void write(AST* source) = 0;
-};
-
-#ifdef HLVM_DEBUG
-void dump(Node*);
-#endif
-
-}
-#endif
diff --git a/hlvm/hlvm/Writer/XMLWriter.cpp b/hlvm/hlvm/Writer/XMLWriter.cpp
deleted file mode 100644
index f5a4930..0000000
--- a/hlvm/hlvm/Writer/XMLWriter.cpp
+++ /dev/null
@@ -1,1411 +0,0 @@
-//===-- AST XML Writer Implementation -----------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Writer/XMLWriter.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::XMLWriter
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Writer/XMLWriter.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/Documentation.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/Block.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/Pass/Pass.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Support/Casting.h>
-#include <libxml/xmlwriter.h>
-#include <iostream>
-
-using namespace hlvm;
-using namespace llvm;
-
-namespace {
-
-class XMLWriterImpl : public XMLWriter {
-public:
-  XMLWriterImpl(const char* fname) : pass(fname) { }
-  virtual ~XMLWriterImpl() { }
-  virtual void write(AST* node);
-#ifdef HLVM_DEBUG
-  void writeNode(Node* node);
-#endif
-
-private:
-  class WriterPass : public Pass
-  {
-    public:
-      WriterPass(const char* fname) : 
-        Pass(0,Pass::PreAndPostOrderTraversal), writer(0), buffer(0)
-      {
-        if (fname == 0) {
-          buffer = xmlOutputBufferCreateFd(2,0);
-          writer = xmlNewTextWriter(buffer);
-        } else {
-          writer = xmlNewTextWriterFilename(fname,0);
-        }
-        hlvmAssert(writer && "Can't allocate writer");
-        xmlTextWriterSetIndent(writer,1);
-        xmlTextWriterSetIndentString(writer,
-            reinterpret_cast<const xmlChar*>("  "));
-      }
-      ~WriterPass() {
-        xmlFreeTextWriter(writer);
-      }
-    inline void writeComment(const char* cmt)
-      { xmlTextWriterWriteComment(writer,
-          reinterpret_cast<const xmlChar*>(cmt)); }
-    inline void startElement(const char* elem) 
-      { xmlTextWriterStartElement(writer, 
-          reinterpret_cast<const xmlChar*>(elem)); }
-    inline void endElement() 
-      { xmlTextWriterEndElement(writer); }
-    inline void writeAttribute(const char*name, const char*val)
-      { xmlTextWriterWriteAttribute(writer, 
-          reinterpret_cast<const xmlChar*>(name), 
-          reinterpret_cast<const xmlChar*>(val)); }
-    inline void writeAttribute(const char* name, const std::string& val) 
-      { writeAttribute(name, val.c_str()); }
-    inline void writeAttribute(const char* name, const Type* t)
-      { writeAttribute(name, t->getName()); }
-    inline void writeAttribute(const char* name, uint64_t val)
-      { writeAttribute(name, llvm::utostr(val)); }
-    inline void writeAttribute(const char* name, int64_t val)
-      { writeAttribute(name, llvm::itostr(val)); }
-    inline void writeElement(const char* elem, const char* body)
-      { xmlTextWriterWriteElement(writer,
-          reinterpret_cast<const xmlChar*>(elem),
-          reinterpret_cast<const xmlChar*>(body)); }
-    inline void writeString(const std::string& str) ;
-
-    inline void putHeader(AST* ast);
-    inline void putFooter();
-    inline void putDoc(const Documentable* node);
-
-    void putConstantValue(const ConstantValue* CV,bool nested);
-
-    template<class NodeClass>
-    inline void put(const NodeClass* nc);
-
-    template<class NodeClass>
-    inline void put(const NodeClass* nc, bool nested);
-
-    virtual void handle(Node* n,Pass::TraversalKinds mode);
-
-  private:
-    xmlTextWriterPtr writer;
-    xmlOutputBufferPtr buffer;
-    friend class XMLWriterImpl;
-  };
-private:
-  WriterPass pass;
-};
-
-inline const char* 
-getLinkageKind(LinkageKinds lk)
-{
-  switch (lk) {
-    case WeakLinkage:        return "weak";
-    case ExternalLinkage:    return "external";
-    case InternalLinkage:    return "internal";
-    case LinkOnceLinkage:    return "linkonce";
-    case AppendingLinkage:   return "appending";
-    default:
-      hlvmDeadCode("Bad LinkageKinds");
-      break;
-  }
-  return "error";
-}
-
-void 
-XMLWriterImpl::WriterPass::writeString(const std::string& str)
-{ 
-  const xmlChar* str_to_write = // xmlEncodeSpecialChars(
-      reinterpret_cast<const xmlChar*>(str.c_str()); // ); 
-  xmlTextWriterWriteString(writer, str_to_write);
-  // xmlMemFree(str_to_write);
-}
-
-void
-XMLWriterImpl::WriterPass::putHeader(AST* ast) 
-{
-  xmlTextWriterStartDocument(writer,0,"UTF-8",0);
-  startElement("hlvm");
-  writeAttribute("xmlns","http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng");
-  writeAttribute("pubid",ast->getPublicID());
-}
-
-void
-XMLWriterImpl::WriterPass::putFooter()
-{
-  endElement();
-  xmlTextWriterEndDocument(writer);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const Documentation* b)
-{
-  startElement("doc");
-  const std::string& data = b->getDoc();
-  xmlTextWriterWriteRawLen(writer,
-    reinterpret_cast<const xmlChar*>(data.c_str()),data.length());
-  endElement();
-}
-
-inline void
-XMLWriterImpl::WriterPass::putDoc(const Documentable* node)
-{
-  Documentation* theDoc = node->getDoc();
-  if (theDoc) {
-    this->put<Documentation>(theDoc);
-  }
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const NamedType* t)
-{
-  startElement("alias");
-  writeAttribute("id",t->getName());
-  writeAttribute("is",t->getType()->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const AnyType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("any");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const StringType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("string");
-  writeAttribute("id",t->getName());
-  writeAttribute("encoding",t->getEncoding());
-  putDoc(t);
-  endElement();
-}
-
-template<>void
-XMLWriterImpl::WriterPass::put(const BooleanType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("boolean");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const CharacterType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("character");
-  writeAttribute("id",t->getName());
-  writeAttribute("encoding",t->getEncoding());
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const IntegerType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  if (t->isSigned()) {
-    startElement("signed");
-    writeAttribute("id",t->getName());
-    writeAttribute("bits", llvm::utostr(t->getBits()));
-  } else {
-    startElement("unsigned");
-    writeAttribute("id",t->getName());
-    writeAttribute("bits", llvm::utostr(t->getBits()));
-  }
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const RangeType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("range");
-  writeAttribute("id",t->getName());
-  writeAttribute("min",t->getMin());
-  writeAttribute("max",t->getMax());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const EnumerationType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("enumeration");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  for (EnumerationType::const_iterator I = t->begin(), E = t->end(); 
-       I != E; ++I)
-  {
-    startElement("enumerator");
-    writeAttribute("id",*I);
-    endElement();
-  }
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const RealType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("real");
-  writeAttribute("id",t->getName());
-  writeAttribute("mantissa", llvm::utostr(t->getMantissa()));
-  writeAttribute("exponent", llvm::utostr(t->getExponent()));
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const RationalType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("rational");
-  writeAttribute("id",t->getName());
-  writeAttribute("numerator", llvm::utostr(t->getNumeratorBits()));
-  writeAttribute("denominator", llvm::utostr(t->getDenominatorBits()));
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const OpaqueType* op)
-{
-  if (op->isIntrinsic())
-    return;
-  startElement("opaque");
-  writeAttribute("id",op->getName());
-  putDoc(op);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const PointerType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("pointer");
-  writeAttribute("id", t->getName());
-  writeAttribute("to", t->getElementType());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ArrayType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("array");
-  writeAttribute("id", t->getName());
-  writeAttribute("of", t->getElementType());
-  writeAttribute("length", t->getMaxSize());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const VectorType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("vector");
-  writeAttribute("id", t->getName());
-  writeAttribute("of", t->getElementType());
-  writeAttribute("length", t->getSize());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const StructureType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("structure");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  for (StructureType::const_iterator I = t->begin(), E = t->end(); 
-       I != E; ++I) {
-    startElement("field");
-    Field* field = cast<Field>(*I);
-    writeAttribute("id",field->getName());
-    writeAttribute("type",field->getType());
-    putDoc(field);
-    endElement();
-  }
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ContinuationType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("continuation");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  for (ContinuationType::const_iterator I = t->begin(), E = t->end(); 
-       I != E; ++I) {
-    startElement("field");
-    Field* field = cast<Field>(*I);
-    writeAttribute("id",field->getName());
-    writeAttribute("type",field->getType());
-    putDoc(field);
-    endElement();
-  }
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const SignatureType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("signature");
-  writeAttribute("id",t->getName());
-  writeAttribute("result",t->getResultType());
-  if (t->isVarArgs())
-    writeAttribute("varargs","true");
-  putDoc(t);
-  for (SignatureType::const_iterator I = t->begin(), E = t->end(); I != E; ++I)
-  {
-    startElement("arg");
-    Parameter* param = cast<Parameter>(*I);
-    writeAttribute("id",param->getName());
-    writeAttribute("type",param->getType());
-    putDoc(param);
-    endElement();
-  }
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const StreamType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("stream");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const TextType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("text");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const BufferType* t)
-{
-  if (t->isIntrinsic())
-    return;
-  startElement("buffer");
-  writeAttribute("id",t->getName());
-  putDoc(t);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put<ConstantAny>(const ConstantAny* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  putConstantValue(i->getValue(),true);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ConstantBoolean* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  if (i->getValue())
-    startElement("true");
-  else
-    startElement("false");
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantCharacter* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("char");
-  writeString(i->getValue());
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantEnumerator* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("enum");
-  writeString(i->getValue());
-  endElement();
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ConstantInteger* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  switch (i->getBase()) {
-    case 2: startElement("bin"); break;
-    case 8: startElement("oct"); break;
-    case 16: startElement("hex"); break;
-    default: startElement("dec"); break;
-  }
-  writeString(i->getValue());
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantReal* r, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",r->getName());
-    writeAttribute("type",r->getType()->getName());
-    putDoc(r);
-  }
-  const RealType* RT = cast<RealType>(r->getType());
-  if (RT->getBits() <= 32)
-    startElement("flt");
-  else
-    startElement("dbl");
-  writeString(r->getValue());
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantString* t, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",t->getName());
-    writeAttribute("type",t->getType()->getName());
-    putDoc(t);
-  }
-  startElement("str");
-  writeString(t->getValue());
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantPointer* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("ptr");
-  writeAttribute("to",i->getValue()->getName());
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantArray* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("arr");
-  for (ConstantArray::const_iterator I = i->begin(), E = i->end(); I != E; ++I)
-    putConstantValue(*I,true);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantVector* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("vect");
-  for (ConstantArray::const_iterator I = i->begin(), E = i->end(); I != E; ++I)
-    putConstantValue(*I,true);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantStructure* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("struct");
-  for (ConstantStructure::const_iterator I = i->begin(), E = i->end(); 
-       I != E; ++I)
-    putConstantValue(*I,true);
-  endElement();
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ConstantContinuation* i, bool nested)
-{
-  if (!nested) {
-    startElement("constant");
-    writeAttribute("id",i->getName());
-    writeAttribute("type",i->getType()->getName());
-    putDoc(i);
-  }
-  startElement("cont");
-  for (ConstantContinuation::const_iterator I = i->begin(), E = i->end(); 
-       I != E; ++I)
-    putConstantValue(*I,true);
-  endElement();
-}
-
-inline void
-XMLWriterImpl::WriterPass::putConstantValue(const ConstantValue* V, bool nstd)
-{
-  switch (V->getID()) {
-    case ConstantAnyID:          put(cast<ConstantAny>(V),nstd); break;
-    case ConstantBooleanID:      put(cast<ConstantBoolean>(V),nstd); break;
-    case ConstantCharacterID:    put(cast<ConstantCharacter>(V),nstd); break;
-    case ConstantEnumeratorID:   put(cast<ConstantEnumerator>(V),nstd); break;
-    case ConstantIntegerID:      put(cast<ConstantInteger>(V),nstd); break;
-    case ConstantRealID:         put(cast<ConstantReal>(V),nstd); break;
-    case ConstantStringID:       put(cast<ConstantString>(V),nstd); break;
-    case ConstantPointerID:      put(cast<ConstantPointer>(V),nstd); break;
-    case ConstantArrayID:        put(cast<ConstantArray>(V),nstd); break;
-    case ConstantVectorID:       put(cast<ConstantVector>(V),nstd); break;
-    case ConstantStructureID:    put(cast<ConstantStructure>(V),nstd); break;
-    case ConstantContinuationID: put(cast<ConstantContinuation>(V),nstd); break;
-    default:
-      hlvmAssert(!"Invalid ConstantValue kind");
-  }
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const Variable* v)
-{
-  startElement("variable");
-  writeAttribute("id",v->getName());
-  writeAttribute("type",v->getType()->getName());
-  if (v->hasInitializer()) {
-    Constant* C = llvm::cast<Constant>(v->getInitializer());
-    writeAttribute("init",C->getName());
-  }
-  putDoc(v);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const Function* f)
-{
-  startElement("function");
-  writeAttribute("id",f->getName());
-  writeAttribute("type",f->getSignature()->getName());
-  writeAttribute("linkage",getLinkageKind(f->getLinkageKind()));
-  putDoc(f);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const Program* p)
-{
-  startElement("program");
-  writeAttribute("id",p->getName());
-  putDoc(p);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const Block* b)
-{
-  startElement("block");
-  if (!b->getLabel().empty())
-    writeAttribute("label",b->getLabel());
-  putDoc(b);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const AutoVarOp* av)
-{
-  startElement("autovar");
-  writeAttribute("id",av->getName());
-  writeAttribute("type",av->getType()->getName());
-  putDoc(av);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const NegateOp* op)
-{
-  startElement("neg");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ComplementOp* op)
-{
-  startElement("cmpl");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const PreIncrOp* op)
-{
-  startElement("preinc");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const PreDecrOp* op)
-{
-  startElement("predec");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const PostIncrOp* op)
-{
-  startElement("postinc");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const PostDecrOp* op)
-{
-  startElement("postdec");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const AddOp* op)
-{
-  startElement("add");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const SubtractOp* op)
-{
-  startElement("sub");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const MultiplyOp* op)
-{
-  startElement("mul");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const DivideOp* op)
-{
-  startElement("div");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ModuloOp* op)
-{
-  startElement("mod");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const BAndOp* op)
-{
-  startElement("band");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const BOrOp* op)
-{
-  startElement("bor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const BXorOp* op)
-{
-  startElement("bxor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const BNorOp* op)
-{
-  startElement("bnor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const NotOp* op)
-{
-  startElement("not");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const AndOp* op)
-{
-  startElement("and");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const OrOp* op)
-{
-  startElement("or");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const XorOp* op)
-{
-  startElement("xor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const NorOp* op)
-{
-  startElement("nor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const EqualityOp* op)
-{
-  startElement("eq");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const InequalityOp* op)
-{
-  startElement("ne");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const LessThanOp* op)
-{
-  startElement("lt");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const GreaterThanOp* op)
-{
-  startElement("gt");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const LessEqualOp* op)
-{
-  startElement("le");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const GreaterEqualOp* op)
-{
-  startElement("ge");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const IsPInfOp* op)
-{
-  startElement("ispinf");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const IsNInfOp* op)
-{
-  startElement("isninf");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const IsNanOp* op)
-{
-  startElement("isnan");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const TruncOp* op)
-{
-  startElement("trunc");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const RoundOp* op)
-{
-  startElement("round");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const FloorOp* op)
-{
-  startElement("floor");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const CeilingOp* op)
-{
-  startElement("ceiling");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const LogEOp* op)
-{
-  startElement("loge");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const Log2Op* op)
-{
-  startElement("log2");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const Log10Op* op)
-{
-  startElement("log10");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const SquareRootOp* op)
-{
-  startElement("squareroot");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const CubeRootOp* op)
-{
-  startElement("cuberoot");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const FactorialOp* op)
-{
-  startElement("factorial");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const PowerOp* op)
-{
-  startElement("power");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const RootOp* op)
-{
-  startElement("root");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const GCDOp* op)
-{
-  startElement("GCD");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const LCMOp* op)
-{
-  startElement("LCM");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const SelectOp* op)
-{
-  startElement("select");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const SwitchOp* op) 
-{
-  startElement("switch");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const WhileOp* op) 
-{
-  startElement("while");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const UnlessOp* op) 
-{
-  startElement("unless");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const UntilOp* op) 
-{
-  startElement("until");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const LoopOp* op) 
-{
-  startElement("loop");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const BreakOp* op)
-{
-  startElement("break");
-  putDoc(op);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const ContinueOp* op)
-{
-  startElement("continue");
-  putDoc(op);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ReturnOp* r)
-{
-  startElement("ret");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ResultOp* r)
-{
-  startElement("result");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const CallOp* r)
-{
-  startElement("call");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const StoreOp* r)
-{
-  startElement("store");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const GetFieldOp* r)
-{
-  startElement("getfld");
-  writeAttribute("field",r->getFieldName());
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const GetIndexOp* r)
-{
-  startElement("getidx");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const LoadOp* r)
-{
-  startElement("load");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const GetOp* r)
-{
-  startElement("get");
-  const Documentable* ref = r->getReferent();
-  std::string name;
-  if (isa<AutoVarOp>(ref))
-    name = cast<AutoVarOp>(ref)->getName();
-  else if (isa<Argument>(ref))
-    name = cast<Argument>(ref)->getName();
-  else if (isa<Constant>(ref))
-    name = cast<Constant>(ref)->getName();
-  else if (isa<Type>(ref))
-    name = cast<Type>(ref)->getName();
-  else
-    name = "oops";
-  writeAttribute("id",name);
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const OpenOp* r)
-{
-  startElement("open");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const WriteOp* r)
-{
-  startElement("write");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const CloseOp* r)
-{
-  startElement("close");
-  putDoc(r);
-}
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const ConvertOp* r)
-{
-  startElement("convert");
-  writeAttribute("type",r->getType()->getName());
-  putDoc(r);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const StrInsertOp* r)
-{
-  startElement("sinsert");
-  putDoc(r);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const StrEraseOp* r) 
-{
-  startElement("serase");
-  putDoc(r);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const StrReplaceOp* r) 
-{
-  startElement("sreplace");
-  putDoc(r);
-}
-
-template<> void
-XMLWriterImpl::WriterPass::put(const StrConcatOp* r) 
-{
-  startElement("sconcat");
-  putDoc(r);
-}
-
-
-template<> void 
-XMLWriterImpl::WriterPass::put(const Bundle* b)
-{
-  startElement("bundle");
-  writeAttribute("id",b->getName());
-  putDoc(b);
-}
-
-void
-XMLWriterImpl::WriterPass::handle(Node* n,Pass::TraversalKinds mode)
-{
-  if (mode & Pass::PreOrderTraversal) {
-    switch (n->getID()) 
-    {
-      case BundleID:               put(cast<Bundle>(n)); break;
-      /* TYPES */
-      case AnyTypeID:              put(cast<AnyType>(n)); break;
-      case ArrayTypeID:            put(cast<ArrayType>(n)); break;
-      case BooleanTypeID:          put(cast<BooleanType>(n)); break;
-      case BufferTypeID:           put(cast<BufferType>(n)); break;
-      case CharacterTypeID:        put(cast<CharacterType>(n)); break;
-      case ContinuationTypeID:     put(cast<ContinuationType>(n)); break;
-      case EnumerationTypeID:      put(cast<EnumerationType>(n)); break;
-      case IntegerTypeID:          put(cast<IntegerType>(n)); break;
-      case NamedTypeID:            put(cast<NamedType>(n)); break;
-      case OpaqueTypeID:           put(cast<OpaqueType>(n)); break;
-      case PointerTypeID:          put(cast<PointerType>(n)); break;
-      case RangeTypeID:            put(cast<RangeType>(n)); break;
-      case RealTypeID:             put(cast<RealType>(n)); break;
-      case RationalTypeID:         put(cast<RationalType>(n)); break;
-      case SignatureTypeID:        put(cast<SignatureType>(n)); break;
-      case StreamTypeID:           put(cast<StreamType>(n)); break;
-      case StringTypeID:           put(cast<StringType>(n)); break;
-      case StructureTypeID:        put(cast<StructureType>(n)); break;
-      case TextTypeID:             put(cast<TextType>(n)); break;
-      case VectorTypeID:           put(cast<VectorType>(n)); break;
-      /* CONSTANTS */
-      case ConstantAnyID:          
-      case ConstantBooleanID:      
-      case ConstantCharacterID:    
-      case ConstantEnumeratorID:   
-      case ConstantIntegerID:      
-      case ConstantRealID:         
-      case ConstantStringID:       
-      case ConstantPointerID:      
-      case ConstantArrayID:        
-      case ConstantVectorID:       
-      case ConstantStructureID:    
-      case ConstantContinuationID: 
-        putConstantValue(cast<ConstantValue>(n),false); break;
-      /* LINKABLES */
-      case VariableID:             put(cast<Variable>(n)); break;
-      case FunctionID:             put(cast<Function>(n)); break;
-      case ProgramID:              put(cast<Program>(n)); break;
-      case BlockID:                put(cast<Block>(n)); break;
-      /* OPERATORS */
-      case AutoVarOpID:            put(cast<AutoVarOp>(n)); break;
-      case NegateOpID:             put(cast<NegateOp>(n)); break;
-      case ComplementOpID:         put(cast<ComplementOp>(n)); break;
-      case PreIncrOpID:            put(cast<PreIncrOp>(n)); break;
-      case PreDecrOpID:            put(cast<PreDecrOp>(n)); break;
-      case PostIncrOpID:           put(cast<PostIncrOp>(n)); break;
-      case PostDecrOpID:           put(cast<PostDecrOp>(n)); break;
-      case AddOpID:                put(cast<AddOp>(n)); break;
-      case SubtractOpID:           put(cast<SubtractOp>(n)); break;
-      case MultiplyOpID:           put(cast<MultiplyOp>(n)); break;
-      case DivideOpID:             put(cast<DivideOp>(n)); break;
-      case ModuloOpID:             put(cast<ModuloOp>(n)); break;
-      case BAndOpID:               put(cast<BAndOp>(n)); break;
-      case BOrOpID:                put(cast<BOrOp>(n)); break;
-      case BXorOpID:               put(cast<BXorOp>(n)); break;
-      case BNorOpID:               put(cast<BNorOp>(n)); break;
-      case NotOpID:                put(cast<NotOp>(n)); break;
-      case AndOpID:                put(cast<AndOp>(n)); break;
-      case OrOpID:                 put(cast<OrOp>(n)); break;
-      case XorOpID:                put(cast<XorOp>(n)); break;
-      case NorOpID:                put(cast<NorOp>(n)); break;
-      case EqualityOpID:           put(cast<EqualityOp>(n)); break;
-      case InequalityOpID:         put(cast<InequalityOp>(n)); break;
-      case LessThanOpID:           put(cast<LessThanOp>(n)); break;
-      case GreaterThanOpID:        put(cast<GreaterThanOp>(n)); break;
-      case LessEqualOpID:          put(cast<LessEqualOp>(n)); break;
-      case GreaterEqualOpID:       put(cast<GreaterEqualOp>(n)); break;
-      case SelectOpID:             put(cast<SelectOp>(n)); break;
-      case SwitchOpID:             put(cast<SwitchOp>(n)); break;
-      case WhileOpID:              put(cast<WhileOp>(n)); break;
-      case UnlessOpID:             put(cast<UnlessOp>(n)); break;
-      case UntilOpID:              put(cast<UntilOp>(n)); break;
-      case LoopOpID:               put(cast<LoopOp>(n)); break;
-      case BreakOpID:              put(cast<BreakOp>(n)); break;
-      case ContinueOpID:           put(cast<ContinueOp>(n)); break;
-      case ReturnOpID:             put(cast<ReturnOp>(n)); break;
-      case ResultOpID:             put(cast<ResultOp>(n)); break;
-      case CallOpID:               put(cast<CallOp>(n)); break;
-      case StoreOpID:              put(cast<StoreOp>(n)); break;
-      case GetFieldOpID:           put(cast<GetFieldOp>(n)); break;
-      case GetIndexOpID:           put(cast<GetIndexOp>(n)); break;
-      case LoadOpID:               put(cast<LoadOp>(n)); break;
-      case GetOpID:                put(cast<GetOp>(n)); break;
-      case OpenOpID:               put(cast<OpenOp>(n)); break;
-      case CloseOpID:              put(cast<CloseOp>(n)); break;
-      case WriteOpID:              put(cast<WriteOp>(n)); break;
-      case ConvertOpID:            put(cast<ConvertOp>(n)); break;
-      case StrInsertOpID:          put(cast<StrInsertOp>(n)); break;
-      case StrEraseOpID:           put(cast<StrEraseOp>(n)); break;
-      case StrReplaceOpID:         put(cast<StrReplaceOp>(n)); break;
-      case StrConcatOpID:          put(cast<StrConcatOp>(n)); break;
-      case IsPInfOpID:             put(cast<IsPInfOp>(n)); break;
-      case IsNInfOpID:             put(cast<IsNInfOp>(n)); break;
-      case IsNanOpID:              put(cast<IsNanOp>(n)); break;
-      case TruncOpID:              put(cast<TruncOp>(n)); break;
-      case RoundOpID:              put(cast<RoundOp>(n)); break;
-      case FloorOpID:              put(cast<FloorOp>(n)); break;
-      case CeilingOpID:            put(cast<CeilingOp>(n)); break;
-      case LogEOpID:               put(cast<LogEOp>(n)); break;
-      case Log2OpID:               put(cast<Log2Op>(n)); break;
-      case Log10OpID:              put(cast<Log10Op>(n)); break;
-      case SquareRootOpID:         put(cast<SquareRootOp>(n)); break;
-      case CubeRootOpID:           put(cast<CubeRootOp>(n)); break;
-      case FactorialOpID:          put(cast<FactorialOp>(n)); break;
-      case PowerOpID:              put(cast<PowerOp>(n)); break;
-      case RootOpID:               put(cast<RootOp>(n)); break;
-      case GCDOpID:                put(cast<GCDOp>(n)); break;
-      case LCMOpID:                put(cast<LCMOp>(n)); break;
-      default:
-        hlvmDeadCode("Unknown Type");
-        break;
-    }
-  }
-  if (mode & Pass::PostOrderTraversal) {
-    // The types print their own end element because intrinsic types
-    // don't print at all so we can't assume a startElement.
-    switch (n->getID()) 
-    {
-      case AnyTypeID: 
-      case ArrayTypeID:  
-      case BooleanTypeID:
-      case BufferTypeID:
-      case CharacterTypeID:
-      case EnumerationTypeID:
-      case IntegerTypeID: 
-      case NamedTypeID:
-      case OpaqueTypeID:   
-      case PointerTypeID: 
-      case RangeTypeID:  
-      case RealTypeID:      
-      case StringTypeID:
-      case StreamTypeID:
-      case StructureTypeID:
-      case SignatureTypeID:
-      case TextTypeID:
-      case VectorTypeID: 
-        break;
-      default:
-        // For everything else, there was a startElement, so just end it now
-        endElement();
-    }
-  }
-}
-
-void
-XMLWriterImpl::write(AST* ast) 
-{
-  pass.putHeader(ast);
-  PassManager* PM = PassManager::create();
-  PM->addPass(&pass);
-  PM->runOn(ast);
-  pass.putFooter();
-}
-
-#ifdef HLVM_DEBUG
-void
-XMLWriterImpl::writeNode(Node* node)
-{
-  if (!node)
-    return;
-  PassManager* PM = PassManager::create();
-  PM->addPass(&pass);
-  PM->runOnNode(node);
-}
-#endif
-
-}
-
-namespace hlvm {
-
-XMLWriter* 
-XMLWriter::create(const char* fname)
-{
-  return new XMLWriterImpl(fname);
-}
-
-#ifdef HLVM_DEBUG
-void 
-dump(Node* n)
-{
-  XMLWriterImpl writer(0);
-  writer.writeNode(n);
-}
-#endif
-
-}
diff --git a/hlvm/hlvm/Writer/XMLWriter.h b/hlvm/hlvm/Writer/XMLWriter.h
deleted file mode 100644
index 31683ab..0000000
--- a/hlvm/hlvm/Writer/XMLWriter.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//===-- AST XML Writer Interface --------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file hlvm/Writer/XMLWriter.h
-/// @author Reid Spencer <rspencer@reidspencer.com>
-/// @date 2006/05/12
-/// @since 0.1.0
-/// @brief Provides the interface to hlvm::XMLWriter
-//===----------------------------------------------------------------------===//
-
-#ifndef XPS_WRITER_XMLWRITER_H
-#define XPS_WRITER_XMLWRITER_H
-
-#include <hlvm/Writer/Writer.h>
-#include <ostream>
-
-namespace hlvm {
-
-class XMLWriter: public Writer
-{
-public:
-  /// This method instantiates an XMLReader that is prepared to read from
-  /// the path provided.
-  /// @brief Create a new XmlReader
-  static XMLWriter* create(const char* fname);
-
-  virtual ~XMLWriter() {}
-};
-
-}
-#endif
diff --git a/hlvm/test/SConscript b/hlvm/test/SConscript
deleted file mode 100644
index 38eaf65..0000000
--- a/hlvm/test/SConscript
+++ /dev/null
@@ -1,34 +0,0 @@
-#===-- Build Script For test ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-if 'check' in COMMAND_LINE_TARGETS:
-  from build import check
-  if env['suites'] == 'normal':
-    check.Check(env,['xml2xml','invalid','return0'])
-  elif env['suites'] == 'all':
-      check.Check(env,['xml2xml','invalid','return0','generate'])
-  else:
-    suites = env['suites'].split(' ')
-    print "Suites To Run=",suites
-    check.Check(env,suites)
diff --git a/hlvm/test/config/unix.exp b/hlvm/test/config/unix.exp
deleted file mode 100644
index ca12cf8..0000000
--- a/hlvm/test/config/unix.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-#   Copyright (C) 1997 - 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@gnu.org
-
-proc foo_load {} {}
-proc foo_exit {} {}
-
diff --git a/hlvm/test/generate/dg.exp b/hlvm/test/generate/dg.exp
deleted file mode 100644
index 31f58f4..0000000
--- a/hlvm/test/generate/dg.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-load_lib generate.exp
-
-hlvm-generate-test 1 1 1 0
-hlvm-generate-test 1 4 3 1152485648
-hlvm-generate-test 2 2 3 1152485648
-
-proc random {{range 100}} {
-      return [expr {int(rand()*$range)}]
-}
-
-for { set complexity 1 } { $complexity < 6 } { incr complexity } {
-  for { set typecmplxt 1 } { $typecmplxt < 5 } { incr typecmplxt } {
-    for { set size 1 } { $size < 6 } { incr size } {
-      hlvm-generate-test $complexity $typecmplxt $size [random [clock second] ]
-    }
-  }
-}
-
diff --git a/hlvm/test/invalid/argscall.hlx b/hlvm/test/invalid/argscall.hlx
deleted file mode 100644
index 460e398..0000000
--- a/hlvm/test/invalid/argscall.hlx
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/argscall.hlx">
-  <bundle id="argscall">
-    <signature id="no_args" result="void"/>
-    <signature id="one_arg" result="void">
-      <arg id="one" type="u32"/>
-    </signature>
-    <signature id="two_arg" result="double">
-      <arg id="one" type="u32"/>
-      <arg id="two" type="s32"/>
-    </signature>
-    <signature id="varargs" result="double" varargs="true">
-      <arg id="one" type="string"/>
-      <arg id="two" type="u32"/>
-    </signature>
-    <function id="none" type="one_arg" linkage="external"/>
-    <function id="one" type="one_arg" linkage="external"/>
-    <function id="two" type="one_arg" linkage="external"/>
-    <constant id="answer" type="u32">
-      <dec>42</dec>
-    </constant>
-    <program id="argscall">
-      <block>
-        <call>
-          <ref id="none"/>
-          <ref id="answer"/>
-        </call>
-        <call>
-          <ref id="one"/>
-        </call>
-        <call>
-          <ref id="two"/>
-          <ref id="answer"/>
-        </call>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/argtype.hlx b/hlvm/test/invalid/argtype.hlx
deleted file mode 100644
index 1fa2e2e..0000000
--- a/hlvm/test/invalid/argtype.hlx
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/argscall.hlx">
-  <bundle id="argscall">
-    <signature id="two_arg" result="double">
-      <arg id="one" type="u32"/>
-      <arg id="two" type="s32"/>
-    </signature>
-    <constant id="answer" type="u32">
-      <dec>42</dec>
-    </constant>
-    <function id="two" type="two_arg" linkage="external"/>
-    <program id="argscall">
-      <block>
-        <call>
-          <ref id="two"/>
-          <ref id="answer"/>
-          <ref id="answer"/>
-        </call>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/badbin.hlx b/hlvm/test/invalid/badbin.hlx
deleted file mode 100644
index 22afde9..0000000
--- a/hlvm/test/invalid/badbin.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/badbin.hlx">
-  <bundle id="badbin">
-    <constant id="0000" type="s8"><bin>12345</bin></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/badchar.hlx b/hlvm/test/invalid/badchar.hlx
deleted file mode 100644
index 4f40d26..0000000
--- a/hlvm/test/invalid/badchar.hlx
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/badbin.hlx">
-  <bundle id="badbin">
-    <constant id="aListValue" type="char">
-      <char>#***</char>
-    </constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/baddec.hlx b/hlvm/test/invalid/baddec.hlx
deleted file mode 100644
index d73140e..0000000
--- a/hlvm/test/invalid/baddec.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/baddec.hlx">
-  <bundle id="baddec">
-    <constant id="0000" type="s8"><dec>1234abc</dec></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/badenum.hlx b/hlvm/test/invalid/badenum.hlx
deleted file mode 100644
index b3ccbe8..0000000
--- a/hlvm/test/invalid/badenum.hlx
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/badbin.hlx">
-  <bundle id="badbin">
-    <enumeration id="list">
-      <enumerator id="item1"/>
-    </enumeration>
-    <constant id="aListValue" type="list">
-      <enum>item2</enum>
-    </constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/badhex.hlx b/hlvm/test/invalid/badhex.hlx
deleted file mode 100644
index 4c9b3f4..0000000
--- a/hlvm/test/invalid/badhex.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/badhex.hlx">
-  <bundle id="badhex">
-    <constant id="0000" type="s8"><hex>$!%^@$</hex></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/badoct.hlx b/hlvm/test/invalid/badoct.hlx
deleted file mode 100644
index ef97567..0000000
--- a/hlvm/test/invalid/badoct.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/badoct.hlx">
-  <bundle id="badoct">
-    <constant id="0000" type="s8"><oct>29</oct></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/blockresult.hlx b/hlvm/test/invalid/blockresult.hlx
deleted file mode 100644
index 63a1384..0000000
--- a/hlvm/test/invalid/blockresult.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/loop.hlx">
-  <bundle id="loop">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="loop">
-      <block>
-        <result>
-          <select>
-            <ne>
-              <ref id="1"/>
-              <ref id="0"/>
-            </ne>
-            <block><ref id="0"/></block>
-            <block><ref id="1"/></block>
-          </select>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/dg.exp b/hlvm/test/invalid/dg.exp
deleted file mode 100644
index 3b8fc21..0000000
--- a/hlvm/test/invalid/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib invalid.exp
-
-hlvm-invalid-tests hlvm-xml2xml "*.hlx"
diff --git a/hlvm/test/invalid/emptyfunc.hlx b/hlvm/test/invalid/emptyfunc.hlx
deleted file mode 100644
index 7496e27..0000000
--- a/hlvm/test/invalid/emptyfunc.hlx
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/emptyfunc.hlx">
-  <bundle id="emptyfunc">
-    <signature id="ftype" result="u32"></signature>
-    <function id="two" type="ftype"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/funcresult.hlx b/hlvm/test/invalid/funcresult.hlx
deleted file mode 100644
index 4d5c40c..0000000
--- a/hlvm/test/invalid/funcresult.hlx
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/funcresult.hlx">
-  <bundle id="funcresult">
-    <constant id="1" type="u32">
-      <dec>1</dec>
-    </constant>
-    <program id="funcresult">
-      <block>
-        <result>
-          <ref id="1"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/loop.hlx b/hlvm/test/invalid/loop.hlx
deleted file mode 100644
index 8c9f90c..0000000
--- a/hlvm/test/invalid/loop.hlx
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/loop.hlx">
-  <bundle id="loop">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="loop">
-      <block>
-        <!-- Non-boolean control expressions -->
-        <loop>
-          <ref id="0"/>
-          <ref id="1"/>
-          <ref id="0"/>
-        </loop>
-        <!-- Block without result where one expected -->
-        <!-- Void function result for non-void function -->
-        <result>
-          <loop>
-            <ne>
-              <ref id="1"/>
-              <ref id="0"/>
-            </ne>
-            <block><ref id="0"/></block>
-            <eq>
-              <ref id="1"/>
-              <ref id="0"/>
-            </eq>
-          </loop>
-        </result>
-        <result>
-          <ref id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/range16.hlx b/hlvm/test/invalid/range16.hlx
deleted file mode 100644
index a0f4f62..0000000
--- a/hlvm/test/invalid/range16.hlx
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/range16.hlx">
-  <bundle id="range16">
-    <constant id="0001" type="s16"><dec>32768</dec></constant>
-    <constant id="0002" type="s16"><dec>-32769</dec></constant>
-    <constant id="0003" type="u16"><dec>65536</dec></constant>
-    <constant id="0004" type="u16"><dec>-1</dec></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/range32.hlx b/hlvm/test/invalid/range32.hlx
deleted file mode 100644
index ba94fb2..0000000
--- a/hlvm/test/invalid/range32.hlx
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/range32.hlx">
-  <bundle id="range32">
-    <constant id="0001" type="s32"><dec>2147483648</dec></constant>
-    <constant id="0002" type="s32"><dec>-2147483649</dec></constant>
-    <constant id="0003" type="u32"><dec>4294967296</dec></constant>
-    <constant id="0004" type="u32"><dec>-1</dec></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/range64.hlx b/hlvm/test/invalid/range64.hlx
deleted file mode 100644
index 5e6fdd8..0000000
--- a/hlvm/test/invalid/range64.hlx
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/range64.hlx">
-  <bundle id="range64">
-    <constant id="0001" type="s8"><dec>9223372036854775808</dec></constant>
-    <constant id="0002" type="s8"><dec>-9223372036854775809</dec></constant>
-    <constant id="0003" type="u8"><hex>ffffffffffffffff</hex></constant>
-    <constant id="0004" type="u8"><dec>-1</dec></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/range8.hlx b/hlvm/test/invalid/range8.hlx
deleted file mode 100644
index 4010a7d..0000000
--- a/hlvm/test/invalid/range8.hlx
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/range8.hlx">
-  <bundle id="range8">
-    <constant id="0001" type="s8"><dec>128</dec></constant>
-    <constant id="0002" type="s8"><dec>-129</dec></constant>
-    <constant id="0003" type="u8"><dec>256</dec></constant>
-    <constant id="0004" type="u8"><dec>-1</dec></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/range_real.hlx b/hlvm/test/invalid/range_real.hlx
deleted file mode 100644
index 07947e0..0000000
--- a/hlvm/test/invalid/range_real.hlx
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/range_real32.hlx">
-  <bundle id="range_real32">
-    <constant id="0001" type="f32"><flt>1.0E+39</flt></constant>
-    <constant id="0002" type="f32"><flt>1.0E-39</flt></constant>
-    <constant id="0003" type="f32"><flt>-1.0E+39</flt></constant>
-    <constant id="0004" type="f64"><dbl>1.0E+310</dbl></constant>
-    <constant id="0005" type="f64"><dbl>1.0E-310</dbl></constant>
-    <constant id="0006" type="f64"><dbl>-1.0E+310</dbl></constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/rename.hlx b/hlvm/test/invalid/rename.hlx
deleted file mode 100644
index 154fc5b..0000000
--- a/hlvm/test/invalid/rename.hlx
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/rename.hlx">
-  <bundle id="rename">
-    <intrinsic id="one" is="u32"/>
-    <intrinsic id="one" is="s32"/>
-    <constant id="two" type="one"><dec>2</dec></constant>
-    <constant id="two" type="one"><dec>3</dec></constant>
-    <variable id="three" type="one" init="two"/>
-    <variable id="three" type="one" init="two"/>
-    <signature id="callee_type" result="s32"/>
-    <function id="four" type="callee_type">
-      <block>
-        <result>
-          <ref id="two"/>
-        </result>
-        <ret/>
-      </block>
-    </function>
-    <function id="four" type="callee_type">
-      <block>
-        <result>
-          <ref id="two"/>
-        </result>
-        <ret/>
-      </block>
-    </function>
-    <program id="rename">
-      <block>
-        <result>
-          <call>
-            <ref id="four"/>
-          </call>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/select.hlx b/hlvm/test/invalid/select.hlx
deleted file mode 100644
index 1a259f8..0000000
--- a/hlvm/test/invalid/select.hlx
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/select.hlx">
-  <bundle id="select">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="21" type="s32">
-      <dec>21</dec>
-    </constant>
-    <constant id="42" type="s32">
-      <dec>42</dec>
-    </constant>
-    <program id="select">
-      <block>
-        <!-- Non-boolean expression -->
-        <select>
-          <ref id="0"/>
-          <ref id="21"/>
-          <ref id="42"/>
-        </select>
-        <!-- Operand 2 as block with no result where required -->
-        <result>
-          <select>
-            <ne>
-              <ref id="0"/>
-              <ref id="21"/>
-            </ne>
-            <block><ref id="21"/></block>
-            <ref id="42"/>
-          </select>
-        </result>
-        <!-- Operand 3 as block with no result where required -->
-        <result>
-          <select>
-            <ne>
-              <ref id="0"/>
-              <ref id="21"/>
-            </ne>
-            <ref id="42"/>
-            <block><ref id="21"/></block>
-          </select>
-        </result>
-        <!-- Mismatched result types -->
-        <result>
-          <select>
-            <ne>
-              <ref id="0"/>
-              <ref id="21"/>
-            </ne>
-            <ref id="42"/>
-            <ne>
-              <ref id="0"/>
-              <ref id="21"/>
-            </ne>
-          </select>
-        </result>
-        <result>
-          <ref id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/signature.hlx b/hlvm/test/invalid/signature.hlx
deleted file mode 100644
index 1c2b61a..0000000
--- a/hlvm/test/invalid/signature.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/signature.hlx">
-  <bundle id="signature">
-    <signature id="callee_type"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/switch.hlx b/hlvm/test/invalid/switch.hlx
deleted file mode 100644
index e579ad9..0000000
--- a/hlvm/test/invalid/switch.hlx
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/return.hlx">
-  <bundle id="return">
-    <constant id="0" type="s32"><dec>0</dec></constant>
-    <constant id="1" type="s32"><dec>1</dec></constant>
-    <constant id="2" type="s32"><dec>2</dec></constant>
-    <constant id="3" type="s32"><dec>3</dec></constant>
-    <constant id="4" type="s32"><dec>4</dec></constant>
-    <constant id="5" type="s32"><dec>5</dec></constant>
-    <constant id="21" type="s32"><dec>21</dec></constant>
-    <constant id="42" type="s32"><dec>42</dec></constant>
-    <constant id="3.0" type="f64"><dbl>3.0</dbl></constant>
-    <program id="return">
-      <block>
-        <!-- Switch with non-integral control expression -->
-        <switch>
-          <ref id="3.0"/>
-          <ref id="5"/>
-        </switch>
-        <!-- Switch with non-result block that requires one -->
-        <result>
-          <switch>
-            <ref id="42"/>
-            <ref id="5"/>
-            <ref id="21"/>
-            <block><ref id="1"/></block>
-          </switch>
-        </result>
-        <!-- Switch with case results that don't agree in type -->
-        <switch>
-          <ref id="42"/>
-          <ref id="5"/>
-          <ref id="21"/>
-          <block><result><ref id="1"/></result></block>
-          <ref id="2"/>
-          <ne><ref id="42"/><ref id="21"/></ne>
-        </switch>
-        <result>
-          <ref id="42"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/unless.hlx b/hlvm/test/invalid/unless.hlx
deleted file mode 100644
index 9a7432d..0000000
--- a/hlvm/test/invalid/unless.hlx
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/unless.hlx">
-  <bundle id="unless">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="unless">
-      <block>
-        <!-- Non-boolean control expression -->
-        <unless>
-          <ref id="0"/>
-          <ref id="1"/>
-        </unless>
-        <!-- Block without result where one expected -->
-        <!-- Void function result for non-void function -->
-        <result>
-          <unless>
-            <ne>
-              <ref id="1"/>
-              <ref id="0"/>
-            </ne>
-            <block><ref id="0"/></block>
-          </unless>
-        </result>
-        <result>
-          <ref id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/until.hlx b/hlvm/test/invalid/until.hlx
deleted file mode 100644
index 4dc5a38..0000000
--- a/hlvm/test/invalid/until.hlx
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/until.hlx">
-  <bundle id="until">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="until">
-      <block>
-        <!-- Non-boolean control expression -->
-        <until>
-          <ref id="0"/>
-          <ref id="1"/>
-        </until>
-        <!-- Block without result where one expected -->
-        <!-- Void function result for non-void function -->
-        <result>
-          <until>
-            <block><ref id="0"/></block>
-            <ne>
-              <ref id="1"/>
-              <ref id="0"/>
-            </ne>
-          </until>
-        </result>
-        <result>
-          <ref id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/invalid/while.hlx b/hlvm/test/invalid/while.hlx
deleted file mode 100644
index 8515189..0000000
--- a/hlvm/test/invalid/while.hlx
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/invalid/while.hlx">
-  <bundle id="while">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="while">
-      <block>
-        <!-- Non-boolean control expression -->
-        <while>
-          <ref id="0"/>
-          <ref id="1"/>
-        </while>
-        <!-- Block without result where one expected -->
-        <!-- Void function result for non-void function -->
-        <result>
-          <while>
-            <ne>
-              <ref id="1"/>
-              <ref id="0"/>
-            </ne>
-            <block><ref id="0"/></block>
-          </while>
-        </result>
-        <result>
-          <ref id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/lib/generate.exp b/hlvm/test/lib/generate.exp
deleted file mode 100644
index 56b0c95..0000000
--- a/hlvm/test/lib/generate.exp
+++ /dev/null
@@ -1,78 +0,0 @@
-#===-test/lib/identity.exp - Script for identity tests ---------------------===#
-#
-#                      High Level Virtual Machine (HLVM)
-# 
-#  Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-# 
-#  This software is free software; you can redistribute it and/or modify it 
-#  under the terms of the GNU Lesser General Public License as published by 
-#  the Free Software Foundation; either version 2.1 of the License, or (at 
-#  your option) any later version.
-# 
-#  This software is distributed in the hope that it will be useful, but WITHOUT
-#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-#  more details.
-# 
-#  You should have received a copy of the GNU Lesser General Public License 
-#  along with this library in the file named LICENSE.txt; if not, write to the 
-#  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-#  MA 02110-1301 USA
-# 
-#===------------------------------------------------------------------------===#
-proc hlvm-generate-test { complexity typecomplexity size seed } {
-  global srcdir subdir objdir tmpdir objrootdir llc llvm_ld gxx APR_lib
-  set outdir [file join $objdir $subdir]
-  set gentc [ file join $objrootdir tools hlvm-gentestcase hlvm-gentestcase ]
-  set compiler [file join $objrootdir tools hlvm-compiler hlvm-compiler ]
-  set source [file join $srcdir $subdir ]
-  set rtlib [file join $objrootdir hlvm Runtime HLVMRuntime.bca ]
-  set baselib [file join $objrootdir hlvm Base HLVMBase.bca ]
-  set vmmain [file join $objrootdir tools hlvm hlvm.bc ]
-
-  set test "gen-$complexity-$typecomplexity-$size-$seed"
-  set output [file join $outdir ${test}.out]
-  set testname      [file rootname $test]
-  set testsrc       [file join $source ${test}.hlx ]
-  set testexe       [file join $outdir $testname ]
-  set testbc        [file join $outdir ${test}.bc ]
-  set testlinked    [file join $outdir ${test}.linked ]
-  set testlinkedbc  [file join $outdir ${test}.linked.bc ]
-  set tests         [file join $outdir ${test}.s ]
-  set retval [ catch { exec $gentc -seed $seed -size $size -complexity $complexity -type-complexity $typecomplexity -bundle "$test" -o $testsrc } msg ]
-  if { $retval != 0 } {
-    fail "$test: hlvm-gentestcase return $retval:\n$msg"
-  } else {
-    set retval [ catch { exec $compiler $testsrc -llvmbc -o $testbc } msg ] 
-    if { $retval != 0 } {
-      fail "$test: hlvm-compiler returned $retval:\n$msg"
-    } else {
-      set retval [ catch { exec $llvm_ld -o $testlinked $testbc $vmmain $rtlib } msg ]
-      if { $retval != 0 } {
-        fail "$test: llvm-ld returned $retval:\n$msg"
-      } else {
-        set retval [ catch { exec $llc -fast -f -o $tests $testlinkedbc } msg ]
-        if { $retval != 0 } {
-          fail "$test: llc returned $retval:\n$msg"
-        } else {
-          set retval [ catch { exec $gxx -g -o $testexe $tests -L$APR_lib -lapr-1 -laprutil-1 } msg ]
-          if { $retval != 0 } {
-            fail "$test: gxx returned $retval:\n$msg"
-          } else {
-            set retval [ catch {exec $testexe $testname } msg ]
-            if { $retval != 0 } {
-              set status [lindex $::errorCode 2]
-              if {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
-                pass "$test: $testexe returned $status"
-              } else {
-                fail "$test: $testexe returned $status\n$msg"
-              } 
-            } else {
-              pass $test;
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/hlvm/test/lib/identity.exp b/hlvm/test/lib/identity.exp
deleted file mode 100644
index 6764657..0000000
--- a/hlvm/test/lib/identity.exp
+++ /dev/null
@@ -1,71 +0,0 @@
-#===-test/lib/identity.exp - Script for identity tests ---------------------===#
-#
-#                      High Level Virtual Machine (HLVM)
-# 
-#  Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-# 
-#  This software is free software; you can redistribute it and/or modify it 
-#  under the terms of the GNU Lesser General Public License as published by 
-#  the Free Software Foundation; either version 2.1 of the License, or (at 
-#  your option) any later version.
-# 
-#  This software is distributed in the hope that it will be useful, but WITHOUT
-#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-#  more details.
-# 
-#  You should have received a copy of the GNU Lesser General Public License 
-#  along with this library in the file named LICENSE.txt; if not, write to the 
-#  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-#  MA 02110-1301 USA
-# 
-#===------------------------------------------------------------------------===#
-proc hlvm-identity-tests { prog pat } {
-  global srcdir subdir objdir tmpdir objrootdir
-  set outdir [file join $objdir $subdir]
-  set tool [file join $objrootdir tools $prog $prog ]
-  set source [file join $srcdir $subdir ]
-  set files [lsort [
-    glob -nocomplain -tails -types {f r} -directory $source $pat]]
-  set dirs [lsort [
-    glob -nocomplain -tails -types {d r} -directory $source *]]
-
-  if { [file isdirectory $outdir] } {
-    cd $outdir
-  } else {
-    if { [file exists $outdir] } {
-      fail "identity: $outdir exists and is not a directory. Remove it"
-      exit(2)
-    } else {
-      file mkdir $outdir
-    }
-  }
-  
-  foreach test $files {
-    set output [file join $outdir ${test}.out]
-    set testsrc [file join $source $test]
-    set execout ""
-    set retval [ catch { exec -keepnewline $tool $testsrc -o $output } msg ]
-    if { $retval == 1 } {
-      fail "$test: $tool returned $retval\n$msg"
-    } else {
-      # Do the identity test
-      set diffout [file join ${output}.diff]
-      set retval [ catch {exec diff $testsrc $output >&$diffout } ]
-      if {$retval == 1} {
-        #Get output
-        if { [file exists $diffout] } {
-          set difffile [open $diffout {RDONLY}]
-          set result [read $difffile]
-          close $difffile
-        } else {
-          set result "no diff file"
-        }
-        fail "$test: identity test failed:\n$result"
-      } else {
-        file delete $diffout
-        pass "$test"
-      }
-    }
-  }
-}
diff --git a/hlvm/test/lib/invalid.exp b/hlvm/test/lib/invalid.exp
deleted file mode 100644
index 1191e92..0000000
--- a/hlvm/test/lib/invalid.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-#===-test/lib/invalid.exp - Script for invalid input tests -----------------===#
-#
-#                      High Level Virtual Machine (HLVM)
-# 
-#  Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-# 
-#  This software is free software; you can redistribute it and/or modify it 
-#  under the terms of the GNU Lesser General Public License as published by 
-#  the Free Software Foundation; either version 2.1 of the License, or (at 
-#  your option) any later version.
-# 
-#  This software is distributed in the hope that it will be useful, but WITHOUT
-#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-#  more details.
-# 
-#  You should have received a copy of the GNU Lesser General Public License 
-#  along with this library in the file named LICENSE.txt; if not, write to the 
-#  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-#  MA 02110-1301 USA
-# 
-#===------------------------------------------------------------------------===#
-proc hlvm-invalid-tests { prog pat } {
-  global srcdir subdir objdir tmpdir objrootdir
-  set outdir [file join $objdir $subdir]
-  set tool [file join $objrootdir tools $prog $prog ]
-  set source [file join $srcdir $subdir ]
-  set files [lsort [
-    glob -nocomplain -tails -types {f r} -directory $source $pat]]
-  set dirs [lsort [
-    glob -nocomplain -tails -types {d r} -directory $source *]]
-
-  if { [file isdirectory $outdir] } {
-    cd $outdir
-  } else {
-    if { [file exists $outdir] } {
-      fail "identity: $outdir exists and is not a directory. Remove it"
-      exit(2)
-    } else {
-      file mkdir $outdir
-    }
-  }
-  
-  foreach test $files {
-    set output [file join $outdir ${test}.out]
-    set testsrc [file join $source $test]
-    set execout ""
-    set retval [ catch { exec -keepnewline $tool $testsrc -o $output } msg ]
-    if { $retval != 0 } {
-      if {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
-        set status [lindex $::errorCode 2]
-        if { $status eq 0 } {
-          fail "$test: $tool return $retval\n$msg"
-        } else {
-          pass "$test"
-        }
-      } else {
-        fail "$test: $tool return $::errorCode\n$msg"
-      } 
-    } else {
-      fail "$test: $tool return $retval\n$msg"
-    }
-  }
-}
diff --git a/hlvm/test/lib/return0.exp b/hlvm/test/lib/return0.exp
deleted file mode 100644
index 31b48fb..0000000
--- a/hlvm/test/lib/return0.exp
+++ /dev/null
@@ -1,87 +0,0 @@
-#===-test/lib/identity.exp - Script for identity tests ---------------------===#
-#
-#                      High Level Virtual Machine (HLVM)
-# 
-#  Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-# 
-#  This software is free software; you can redistribute it and/or modify it 
-#  under the terms of the GNU Lesser General Public License as published by 
-#  the Free Software Foundation; either version 2.1 of the License, or (at 
-#  your option) any later version.
-# 
-#  This software is distributed in the hope that it will be useful, but WITHOUT
-#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-#  more details.
-# 
-#  You should have received a copy of the GNU Lesser General Public License 
-#  along with this library in the file named LICENSE.txt; if not, write to the 
-#  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-#  MA 02110-1301 USA
-# 
-#===------------------------------------------------------------------------===#
-proc hlvm-ret-zero-test { pat forceret0 } {
-  global srcdir subdir objdir tmpdir objrootdir llc llvm_ld gxx APR_lib
-  set outdir [file join $objdir $subdir]
-  set compiler [file join $objrootdir tools hlvm-compiler hlvm-compiler ]
-  set source [file join $srcdir $subdir ]
-  set rtlib [file join $objrootdir hlvm Runtime HLVMRuntime.bca ]
-  set baselib [file join $objrootdir hlvm Base HLVMBase.bca ]
-  set vmmain [file join $objrootdir tools hlvm hlvm.bc ]
-  set files [lsort [
-    glob -nocomplain -tails -types {f r} -directory $source $pat]]
-  set dirs [lsort [
-    glob -nocomplain -tails -types {d r} -directory $source *]]
-
-  if { [file isdirectory $outdir] } {
-    cd $outdir
-  } else {
-    if { [file exists $outdir] } {
-      fail "identity: $outdir exists and is not a directory. Remove it"
-      exit(2)
-    } else {
-      file mkdir $outdir
-    }
-  }
-  
-  foreach test $files {
-    set output [file join $outdir ${test}.out]
-    set testname      [file rootname $test]
-    set testsrc       [file join $source $test]
-    set testexe       [file join $outdir $testname ]
-    set testbc        [file join $outdir ${test}.bc ]
-    set testlinked    [file join $outdir ${test}.linked ]
-    set testlinkedbc  [file join $outdir ${test}.linked.bc ]
-    set tests         [file join $outdir ${test}.s ]
-    set retval [ catch { exec $compiler $testsrc -llvmbc -o $testbc } msg ] 
-    if { $retval != 0 } {
-      fail "$test: hlvm-compiler returned $retval:\n$msg"
-    } else {
-      set retval [ catch { exec $llvm_ld -o $testlinked $testbc $vmmain $rtlib } msg ]
-      if { $retval != 0 } {
-        fail "$test: llvm-ld returned $retval:\n$msg"
-      } else {
-        set retval [ catch { exec $llc -fast -f -o $tests $testlinkedbc } msg ]
-        if { $retval != 0 } {
-          fail "$test: llc returned $retval:\n$msg"
-        } else {
-          set retval [ catch { exec $gxx -g -o $testexe $tests -L$APR_lib -lapr-1 -laprutil-1 } msg ]
-          if { $retval != 0 } {
-            fail "$test: gxx returned $retval:\n$msg"
-          } else {
-            set retval [ catch {exec $testexe $testname } msg ]
-            if {$retval != 0} {
-              if { ! $forceret0 } {
-                pass "$test"
-              } else {
-                fail "$test: $testexe returned $retval:\n$msg"
-              }
-            } else {
-              pass "$test"
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/hlvm/test/lib/xml2xml.exp b/hlvm/test/lib/xml2xml.exp
deleted file mode 100644
index e69de29..0000000
--- a/hlvm/test/lib/xml2xml.exp
+++ /dev/null
diff --git a/hlvm/test/return0/arithmetic.hlx b/hlvm/test/return0/arithmetic.hlx
deleted file mode 100644
index c073611..0000000
--- a/hlvm/test/return0/arithmetic.hlx
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/arithmetic.hlx">
-  <bundle id="arithmetic">
-    <constant id="42" type="s32"><dec>42</dec></constant>
-    <constant id="7" type="s32"><dec>7</dec></constant>
-    <constant id="1" type="s32"><dec>1</dec></constant>
-    <constant id="2" type="s32"><dec>2</dec></constant>
-    <constant id="8" type="s32"><dec>8</dec></constant>
-    <program id="arithmetic">
-      <block>
-        <result>
-          <sub>
-            <add>
-              <mul>
-                <div>
-                  <get id="42"/>
-                  <get id="7"/>
-                </div>
-                <get id="1"/>
-              </mul>
-              <get id="2"/>
-            </add>
-            <get id="8"/>
-          </sub>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/bitwise.hlx b/hlvm/test/return0/bitwise.hlx
deleted file mode 100644
index b181255..0000000
--- a/hlvm/test/return0/bitwise.hlx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/bitwise.hlx">
-  <bundle id="bitwise">
-    <constant id="0f0f0f0f" type="s32"><hex>0f0f0f0f</hex></constant>
-    <constant id="08080808" type="s32"><hex>08080808</hex></constant>
-    <constant id="04040404" type="s32"><hex>04040404</hex></constant>
-    <constant id="00000000" type="s32"><hex>00000000</hex></constant>
-    <program id="bitwise">
-      <block>
-        <result>
-          <band>
-            <bnor>
-              <bor>
-                <bxor>
-                  <get id="0f0f0f0f"/>
-                  <get id="08080808"/>
-                </bxor>
-                <get id="04040404"/>
-              </bor>
-              <get id="0f0f0f0f"/>
-            </bnor>
-            <get id="00000000"/>
-          </band>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/boolean.hlx b/hlvm/test/return0/boolean.hlx
deleted file mode 100644
index 2a8bca8..0000000
--- a/hlvm/test/return0/boolean.hlx
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/boolean.hlx">
-  <bundle id="boolean">
-    <constant id="true" type="bool"><true/></constant>
-    <constant id="false" type="bool"><false/></constant>
-    <constant id="one" type="s32"><dec>1</dec></constant>
-    <constant id="zero" type="s32"><dec>0</dec></constant>
-    <program id="boolean">
-      <block>
-        <result>
-          <select>
-            <and>
-              <nor>
-                <or>
-                  <xor>
-                    <get id="true"/>
-                    <get id="false"/>
-                  </xor>
-                  <get id="false"/>
-                </or>
-                <get id="true"/>
-              </nor>
-              <get id="false"/>
-            </and>
-            <get id="one"/>
-            <get id="zero"/>
-          </select>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/break.hlx b/hlvm/test/return0/break.hlx
deleted file mode 100644
index 004affc..0000000
--- a/hlvm/test/return0/break.hlx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/break.hlx">
-  <bundle id="break">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="break">
-      <block>
-        <result>
-          <while>
-            <ne><get id="1"/><get id="0"/></ne>
-            <block>
-              <select>
-                <ne><get id="1"/><get id="0"/></ne>
-                <block><break/></block>
-                <get id="1"/>
-              </select>
-              <result><get id="1"/></result>
-            </block>
-          </while>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/call.hlx b/hlvm/test/return0/call.hlx
deleted file mode 100644
index fa519b0..0000000
--- a/hlvm/test/return0/call.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/call.hlx">
-  <bundle id="call">
-    <constant id="zero" type="s32"><dec>0</dec></constant>
-    <signature id="zero_func" result="s32"/>
-    <function id="getResult" type="zero_func">
-      <block>
-        <result>
-          <get id="zero"/>
-        </result>
-        <ret/>
-      </block>
-    </function>
-
-    <program id="call">
-      <block>
-        <result>
-          <call>
-            <get id="getResult"/>
-          </call>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/complement.hlx b/hlvm/test/return0/complement.hlx
deleted file mode 100644
index c71335d..0000000
--- a/hlvm/test/return0/complement.hlx
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/complement.hlx">
-  <bundle id="complement">
-    <program id="complement">
-      <block>
-        <autovar id="v" type="s32"/>
-        <result>
-          <cmpl>
-            <cmpl>
-              <get id="v"/>
-            </cmpl>
-          </cmpl>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/continue.hlx b/hlvm/test/return0/continue.hlx
deleted file mode 100644
index 7b835fe..0000000
--- a/hlvm/test/return0/continue.hlx
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/continue.hlx">
-  <bundle id="continue">
-    <constant id="0" type="s32"><dec>0</dec></constant>
-    <constant id="1" type="s32"><dec>1</dec></constant>
-    <constant id="10" type="s32"><dec>10</dec></constant>
-    <program id="continue">
-      <block>
-        <autovar id="count" type="s32"><get id="10"/></autovar>
-        <result>
-          <while>
-            <ne><get id="1"/><get id="0"/></ne>
-            <block>
-              <select>
-                <gt>
-                  <get id="count"/>
-                  <get id="0"/>
-                </gt>
-                <block>
-                  <postdec><get id="count"/></postdec>
-                  <continue/>
-                </block>
-                <break/>
-              </select>
-              <result><get id="1"/></result>
-            </block>
-          </while>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/dg.exp b/hlvm/test/return0/dg.exp
deleted file mode 100644
index d257fe2..0000000
--- a/hlvm/test/return0/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib return0.exp
-
-hlvm-ret-zero-test "*.hlx" 1
diff --git a/hlvm/test/return0/helloworld.hlx b/hlvm/test/return0/helloworld.hlx
deleted file mode 100644
index f1bc9a6..0000000
--- a/hlvm/test/return0/helloworld.hlx
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng"
-      pubid="http://hlvm.org/src/hlvm/test/return0/helloworld.hlx">
-  <bundle id="helloworld">
-    <constant id="hw" type="string">
-      <str>Hello, World&#10;</str>
-    </constant>
-    <constant id="stdout" type="string">
-      <str>hlvm:std:out</str>
-    </constant>
-    <constant id="zero" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="helloworld">
-      <block>
-        <autovar id="out" type="stream"></autovar>
-        <store>
-          <get id="out"/>
-          <open><get id="stdout"/></open>
-        </store>
-        <write>
-          <get id="out"/>
-          <get id="hw"/>
-        </write>
-        <close>
-          <get id="out"/>
-        </close>
-        <result>
-          <get id="zero"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/loop.hlx b/hlvm/test/return0/loop.hlx
deleted file mode 100644
index 38d0a46..0000000
--- a/hlvm/test/return0/loop.hlx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/loop.hlx">
-  <bundle id="loop">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="loop">
-      <block>
-        <result>
-          <loop>
-            <ne>
-              <get id="1"/>
-              <get id="0"/>
-            </ne>
-            <block><result><get id="0"/></result></block>
-            <eq>
-              <get id="1"/>
-              <get id="0"/>
-            </eq>
-          </loop>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/noresult.hlx b/hlvm/test/return0/noresult.hlx
deleted file mode 100644
index ab94be5..0000000
--- a/hlvm/test/return0/noresult.hlx
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/noresult.hlx">
-  <bundle id="noresult">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="noresult">
-      <block>
-        <select>
-          <ne>
-            <get id="1"/>
-            <get id="0"/>
-          </ne>
-          <block><get id="0"/></block>
-          <block><get id="1"/></block>
-        </select>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/resultoverride.hlx b/hlvm/test/return0/resultoverride.hlx
deleted file mode 100644
index 5815233..0000000
--- a/hlvm/test/return0/resultoverride.hlx
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/resultoverride.hlx">
-  <bundle id="resultoverride">
-    <constant id="0" type="s32"><dec>0</dec></constant>
-    <constant id="1" type="s32"><dec>1</dec></constant>
-    <program id="resultoverride">
-      <block>
-        <result>
-          <get id="1"/>
-        </result>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/return0.hlx b/hlvm/test/return0/return0.hlx
deleted file mode 100644
index b4ace48..0000000
--- a/hlvm/test/return0/return0.hlx
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/return0.hlx">
-  <bundle id="return0">
-    <constant id="zero" type="s32"><dec>0</dec></constant>
-    <program id="return0">
-      <block>
-        <result>
-          <get id="zero"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/select.hlx b/hlvm/test/return0/select.hlx
deleted file mode 100644
index 0a35fdc..0000000
--- a/hlvm/test/return0/select.hlx
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/select.hlx">
-  <bundle id="select">
-    <constant id="0" type="s32"><dec>0</dec></constant>
-    <constant id="21" type="s32"><dec>21</dec></constant>
-    <constant id="42" type="s32"><dec>42</dec></constant>
-    <constant id="true" type="bool"><true/></constant>
-    <constant id="false" type="bool"><false/></constant>
-    <program id="select">
-      <block>
-        <result>
-          <select>
-            <block>
-              <result>
-                <select>
-                  <ne><get id="42"/><get id="21"/></ne>
-                  <get id="true"/>
-                  <get id="false"/>
-                </select>
-              </result>
-            </block>
-            <block>
-              <result><get id="0"/></result>
-            </block>
-            <block>
-              <result><get id="42"/></result>
-            </block>
-          </select>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/unless.hlx b/hlvm/test/return0/unless.hlx
deleted file mode 100644
index 782f29f..0000000
--- a/hlvm/test/return0/unless.hlx
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/unless.hlx">
-  <bundle id="unless">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="unless">
-      <block>
-        <result>
-          <unless>
-            <ne>
-              <get id="1"/>
-              <get id="0"/>
-            </ne>
-            <block><result><get id="0"/></result></block>
-          </unless>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/until.hlx b/hlvm/test/return0/until.hlx
deleted file mode 100644
index 27c5bc8..0000000
--- a/hlvm/test/return0/until.hlx
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/until.hlx">
-  <bundle id="until">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="until">
-      <block>
-        <result>
-          <until>
-            <block><result><get id="0"/></result></block>
-            <ne>
-              <get id="1"/>
-              <get id="0"/>
-            </ne>
-          </until>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/unused.hlx b/hlvm/test/return0/unused.hlx
deleted file mode 100644
index 433858e..0000000
--- a/hlvm/test/return0/unused.hlx
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/unused.hlx">
-  <bundle id="unused">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="unused">
-      <block>
-        <select>
-          <ne>
-            <get id="1"/>
-            <get id="0"/>
-          </ne>
-          <block><result><get id="0"/></result></block>
-          <block><result><get id="1"/></result></block>
-        </select>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/return0/while.hlx b/hlvm/test/return0/while.hlx
deleted file mode 100644
index 39c4594..0000000
--- a/hlvm/test/return0/while.hlx
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/return0/while.hlx">
-  <bundle id="while">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="while">
-      <block>
-        <result>
-          <while>
-            <eq>
-              <get id="1"/>
-              <get id="0"/>
-            </eq>
-            <block><result><get id="0"/></result></block>
-          </while>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/argscall.hlx b/hlvm/test/xml2xml/argscall.hlx
deleted file mode 100644
index 124c544..0000000
--- a/hlvm/test/xml2xml/argscall.hlx
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/argscall.hlx">
-  <bundle id="argscall">
-    <signature id="no_args" result="void"/>
-    <signature id="one_arg" result="void">
-      <arg id="one" type="u32"/>
-    </signature>
-    <signature id="two_arg" result="double">
-      <arg id="one" type="u32"/>
-      <arg id="two" type="u32"/>
-    </signature>
-    <signature id="varargs" result="double" varargs="true">
-      <arg id="one" type="u32"/>
-      <arg id="two" type="u32"/>
-    </signature>
-    <constant id="answer" type="u32">
-      <dec>42</dec>
-    </constant>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <function id="none" type="no_args" linkage="external"/>
-    <function id="one" type="one_arg" linkage="external"/>
-    <function id="two" type="two_arg" linkage="external"/>
-    <function id="va" type="varargs" linkage="external"/>
-    <program id="argscall">
-      <block>
-        <call>
-          <get id="none"/>
-        </call>
-        <call>
-          <get id="one"/>
-          <get id="answer"/>
-        </call>
-        <call>
-          <get id="two"/>
-          <get id="answer"/>
-          <get id="answer"/>
-        </call>
-        <call>
-          <get id="va"/>
-          <get id="answer"/>
-          <get id="answer"/>
-          <get id="answer"/>
-        </call>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/arithmetic.hlx b/hlvm/test/xml2xml/arithmetic.hlx
deleted file mode 100644
index d1efa1c..0000000
--- a/hlvm/test/xml2xml/arithmetic.hlx
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/unaryarithmetic.hlx">
-  <bundle id="unaryarithmetic">
-    <constant id="one" type="u32">
-      <dec>1</dec>
-    </constant>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="unaryarithmetic">
-      <block>
-        <autovar id="v1" type="u32"/>
-        <autovar id="v2" type="u32"/>
-        <preinc>
-          <get id="v1"/>
-        </preinc>
-        <postinc>
-          <get id="v1"/>
-        </postinc>
-        <postdec>
-          <get id="v2"/>
-        </postdec>
-        <predec>
-          <get id="v2"/>
-        </predec>
-        <neg>
-          <get id="v1"/>
-        </neg>
-        <cmpl>
-          <get id="v2"/>
-        </cmpl>
-        <add>
-          <get id="v1"/>
-          <get id="one"/>
-        </add>
-        <sub>
-          <get id="v1"/>
-          <get id="one"/>
-        </sub>
-        <mul>
-          <get id="v1"/>
-          <get id="v2"/>
-        </mul>
-        <div>
-          <get id="v1"/>
-          <get id="v2"/>
-        </div>
-        <mod>
-          <get id="v1"/>
-          <get id="v2"/>
-        </mod>
-        <band>
-          <get id="v1"/>
-          <get id="v2"/>
-        </band>
-        <bor>
-          <get id="v1"/>
-          <get id="v2"/>
-        </bor>
-        <bxor>
-          <get id="v1"/>
-          <get id="v2"/>
-        </bxor>
-        <bnor>
-          <get id="v1"/>
-          <get id="v2"/>
-        </bnor>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/array.hlx b/hlvm/test/xml2xml/array.hlx
deleted file mode 100644
index 651b6da..0000000
--- a/hlvm/test/xml2xml/array.hlx
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <array id="anArray" of="someType" length="128"/>
-    <any id="someType"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/autovar.hlx b/hlvm/test/xml2xml/autovar.hlx
deleted file mode 100644
index d32bd1b..0000000
--- a/hlvm/test/xml2xml/autovar.hlx
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/autovar.hlx">
-  <bundle id="autovar">
-    <program id="autovar">
-      <block>
-        <autovar id="v1" type="s32"/>
-        <result>
-          <get id="v1"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/block.hlx b/hlvm/test/xml2xml/block.hlx
deleted file mode 100644
index 59d8c62..0000000
--- a/hlvm/test/xml2xml/block.hlx
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/block.hlx">
-  <bundle id="block">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="21" type="s32">
-      <dec>21</dec>
-    </constant>
-    <constant id="42" type="s32">
-      <dec>42</dec>
-    </constant>
-    <program id="block">
-      <block>
-        <result>
-          <select>
-            <block>
-              <result>
-                <ne>
-                  <get id="0"/>
-                  <get id="21"/>
-                </ne>
-              </result>
-            </block>
-            <block>
-              <result>
-                <get id="42"/>
-              </result>
-            </block>
-            <block>
-              <result>
-                <get id="21"/>
-              </result>
-            </block>
-          </select>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/booleanops.hlx b/hlvm/test/xml2xml/booleanops.hlx
deleted file mode 100644
index aafc9b5..0000000
--- a/hlvm/test/xml2xml/booleanops.hlx
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/booleanops.hlx">
-  <bundle id="booleanops">
-    <constant id="false" type="bool">
-      <false/>
-    </constant>
-    <constant id="true" type="bool">
-      <true/>
-    </constant>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="booleanops">
-      <block>
-        <autovar id="v1" type="bool">
-          <get id="true"/>
-        </autovar>
-        <autovar id="v2" type="bool">
-          <get id="false"/>
-        </autovar>
-        <not>
-          <get id="v1"/>
-        </not>
-        <and>
-          <get id="v1"/>
-          <get id="v2"/>
-        </and>
-        <or>
-          <get id="v1"/>
-          <get id="v2"/>
-        </or>
-        <nor>
-          <get id="v1"/>
-          <get id="v2"/>
-        </nor>
-        <xor>
-          <get id="v1"/>
-          <get id="v2"/>
-        </xor>
-        <eq>
-          <get id="v1"/>
-          <get id="v2"/>
-        </eq>
-        <ne>
-          <get id="v1"/>
-          <get id="v2"/>
-        </ne>
-        <gt>
-          <get id="v1"/>
-          <get id="v2"/>
-        </gt>
-        <lt>
-          <get id="v1"/>
-          <get id="v2"/>
-        </lt>
-        <ge>
-          <get id="v1"/>
-          <get id="v2"/>
-        </ge>
-        <le>
-          <get id="v1"/>
-          <get id="v2"/>
-        </le>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/break.hlx b/hlvm/test/xml2xml/break.hlx
deleted file mode 100644
index 20206af..0000000
--- a/hlvm/test/xml2xml/break.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/return.hlx">
-  <bundle id="return">
-    <constant id="true" type="bool">
-      <true/>
-    </constant>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="return">
-      <block>
-        <loop>
-          <get id="true"/>
-          <block>
-            <break/>
-          </block>
-          <get id="true"/>
-        </loop>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/bundle.hlx b/hlvm/test/xml2xml/bundle.hlx
deleted file mode 100644
index b602af2..0000000
--- a/hlvm/test/xml2xml/bundle.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="name">
-    <unsigned id="nada" bits="32"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/call.hlx b/hlvm/test/xml2xml/call.hlx
deleted file mode 100644
index 4971517..0000000
--- a/hlvm/test/xml2xml/call.hlx
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/call.hlx">
-  <bundle id="call">
-    <signature id="callee_type" result="void"/>
-    <function id="callee" type="callee_type" linkage="external"/>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="return">
-      <block>
-        <call>
-          <get id="callee"/>
-        </call>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/continue.hlx b/hlvm/test/xml2xml/continue.hlx
deleted file mode 100644
index 28a4672..0000000
--- a/hlvm/test/xml2xml/continue.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/return.hlx">
-  <bundle id="return">
-    <constant id="true" type="bool">
-      <true/>
-    </constant>
-    <constant id="result" type="s32">
-      <dec>0</dec>
-    </constant>
-    <program id="return">
-      <block>
-        <loop>
-          <get id="true"/>
-          <block>
-            <continue/>
-          </block>
-          <get id="true"/>
-        </loop>
-        <result>
-          <get id="result"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/dg.exp b/hlvm/test/xml2xml/dg.exp
deleted file mode 100644
index dc58e4c..0000000
--- a/hlvm/test/xml2xml/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib identity.exp
-
-hlvm-identity-tests hlvm-xml2xml "*.hlx"
diff --git a/hlvm/test/xml2xml/doc.hlx b/hlvm/test/xml2xml/doc.hlx
deleted file mode 100644
index 86d3160..0000000
--- a/hlvm/test/xml2xml/doc.hlx
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <doc><p>This is a documentation node for a bundle element</p></doc>
-    <any id="someType">
-      <doc>Any can hold anything. It provides the dynamic typing</doc>
-    </any>
-    <array id="anArray" of="someType" length="128">
-      <doc><p>Array Doc</p></doc>
-    </array>
-    <boolean id="myBoolean">
-      <doc>Boolean type</doc>
-    </boolean>
-    <character id="myChar" encoding="utf-16">
-      <doc>Character type</doc>
-    </character>
-    <enumeration id="anEnumeration">
-      <doc>This is anEnumeration</doc>
-      <enumerator id="one"/>
-      <enumerator id="two"/>
-      <enumerator id="three"/>
-      <enumerator id="four"/>
-    </enumeration>
-    <signed id="signed32Bit" bits="32">
-      <doc>Signed 32 bit integer</doc>
-    </signed>
-    <signature id="sig1" result="signed32Bit" varargs="true">
-      <doc>This is signature doc</doc>
-      <arg id="arg1" type="someType">
-        <doc>Doc for "arg1"</doc>
-      </arg>
-      <arg id="arg2" type="anEnumeration">
-        <doc><i>Doc for "arg2"</i></doc>
-      </arg>
-    </signature>
-    <opaque id="nada">
-      <doc>Opaque types can't used. Useful for encapsulation</doc>
-    </opaque>
-    <pointer id="myPointer" to="sig1">
-      <doc>This is a pointer to a function</doc>
-    </pointer>
-    <range id="myRange" min="-2" max="2">
-      <doc>Pretty small range, huh?</doc>
-    </range>
-    <real id="myReal" mantissa="23" exponent="8">
-      <doc>Should be equal to IEEE 754 single precision</doc>
-    </real>
-    <string id="myString" encoding="ucs">
-      <doc>I wonder what encoding's HLVM will support?</doc>
-    </string>
-    <structure id="struct2">
-      <doc>This is structure doc</doc>
-      <field id="field1" type="someType">
-        <doc><p><i><b>Field 1 Documentation</b></i></p></doc>
-      </field>
-      <field id="field2" type="someType">
-        <doc>Documentation for field 2</doc>
-      </field>
-    </structure>
-    <vector id="aVector" of="f32" length="128">
-      <doc>Vector doc</doc>
-    </vector>
-    <unsigned id="unsigned32Bit" bits="32">
-      <doc>Unsigned 32 bit integer</doc>
-    </unsigned>
-    <constant id="s32val" type="signed32Bit">
-      <doc>32-bit signed integer</doc>
-      <dec>1234</dec>
-    </constant>
-    <constant id="unchanging" type="myBoolean">
-      <true/>
-    </constant>
-    <constant id="intval" type="s32">
-      <doc>32-bit signed integer</doc>
-      <dec>4321</dec>
-    </constant>
-    <function id="myFunc" type="sig1" linkage="internal">
-      <doc><i>This function doesn't do much</i></doc>
-      <block>
-        <doc><i>This block just returns a constant result</i></doc>
-        <result>
-          <get id="s32val">
-            <doc>
-              <b>This just references the intval constant as the result</b>
-            </doc>
-          </get>
-        </result>
-        <ret/>
-      </block>
-    </function>
-    <program id="doc">
-      <doc>
-        <i>This program is a placeholder for testing doc elements</i>
-      </doc>
-      <block>
-        <doc>Again, doesn't do much but return a result</doc>
-        <result>
-          <get id="intval">
-            <doc>
-              <b>This just references the intval constant as the result</b>
-            </doc>
-          </get>
-        </result>
-        <ret/>
-      </block>
-    </program>
-    <variable id="var" type="int">
-      <doc><p>This is documentation for a <i>var</i>iable</p></doc>
-    </variable>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/enumeration.hlx b/hlvm/test/xml2xml/enumeration.hlx
deleted file mode 100644
index 503181a..0000000
--- a/hlvm/test/xml2xml/enumeration.hlx
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <enumeration id="anEnumeration">
-      <enumerator id="one"/>
-      <enumerator id="two"/>
-      <enumerator id="three"/>
-      <enumerator id="four"/>
-    </enumeration>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/helloworld.hlx b/hlvm/test/xml2xml/helloworld.hlx
deleted file mode 100644
index 4e1a862..0000000
--- a/hlvm/test/xml2xml/helloworld.hlx
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/helloworld.hlx">
-  <bundle id="helloworld">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="hw" type="string">
-      <str>Hello, World</str>
-    </constant>
-    <constant id="stdout" type="string">
-      <str>hlvm:std:out</str>
-    </constant>
-    <program id="helloworld">
-      <block>
-        <autovar id="out" type="stream"/>
-        <store>
-          <get id="out"/>
-          <open>
-            <get id="stdout"/>
-          </open>
-        </store>
-        <write>
-          <get id="out"/>
-          <get id="hw"/>
-        </write>
-        <close>
-          <get id="out"/>
-        </close>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/intrinsics.hlx b/hlvm/test/xml2xml/intrinsics.hlx
deleted file mode 100644
index 9d21d1c..0000000
--- a/hlvm/test/xml2xml/intrinsics.hlx
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <constant id="1" type="bool">
-      <true/>
-    </constant>
-    <constant id="2" type="bool">
-      <false/>
-    </constant>
-    <constant id="5" type="char">
-      <char>a</char>
-    </constant>
-    <constant id="6" type="char">
-      <char>&gt;</char>
-    </constant>
-    <constant id="7" type="char">
-      <char>#0064</char>
-    </constant>
-    <constant id="8" type="double">
-      <dbl>42.</dbl>
-    </constant>
-    <constant id="9" type="double">
-      <dbl>42.</dbl>
-    </constant>
-    <constant id="10" type="f32">
-      <flt>42.</flt>
-    </constant>
-    <constant id="11" type="f44">
-      <dbl>42.</dbl>
-    </constant>
-    <constant id="12" type="f64">
-      <dbl>42.</dbl>
-    </constant>
-    <constant id="13" type="f80">
-      <dbl>42.</dbl>
-    </constant>
-    <constant id="15" type="float">
-      <flt>42.</flt>
-    </constant>
-    <constant id="16" type="int">
-      <oct>52</oct>
-    </constant>
-    <constant id="17" type="long">
-      <dec>42</dec>
-    </constant>
-    <constant id="18" type="octet">
-      <hex>2A</hex>
-    </constant>
-    <constant id="19" type="r8">
-      <bin>00101010</bin>
-    </constant>
-    <constant id="20" type="r16">
-      <hex>7FFF</hex>
-    </constant>
-    <constant id="21" type="r32">
-      <dec>0</dec>
-    </constant>
-    <constant id="22" type="r64">
-      <dec>0</dec>
-    </constant>
-    <constant id="23" type="s8">
-      <dec>-42</dec>
-    </constant>
-    <constant id="24" type="s16">
-      <dec>-42</dec>
-    </constant>
-    <constant id="25" type="s32">
-      <dec>-42</dec>
-    </constant>
-    <constant id="26" type="s64">
-      <dec>-42</dec>
-    </constant>
-    <constant id="27" type="short">
-      <dec>-42</dec>
-    </constant>
-    <constant id="28" type="string">
-      <str>The quick brown fox jumped over the lazy dog.</str>
-    </constant>
-    <constant id="29" type="text">
-      <str>Nothin' says lovin' like something from the oven.</str>
-    </constant>
-    <constant id="30" type="u8">
-      <hex>FF</hex>
-    </constant>
-    <constant id="31" type="u16">
-      <dec>42</dec>
-    </constant>
-    <constant id="32" type="u32">
-      <dec>42</dec>
-    </constant>
-    <constant id="33" type="u64">
-      <dec>42</dec>
-    </constant>
-    <constant id="34" type="u128">
-      <dec>42</dec>
-    </constant>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/loop.hlx b/hlvm/test/xml2xml/loop.hlx
deleted file mode 100644
index 94357bf..0000000
--- a/hlvm/test/xml2xml/loop.hlx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/loop.hlx">
-  <bundle id="loop">
-    <constant id="true" type="bool">
-      <true/>
-    </constant>
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="loop">
-      <block>
-        <result>
-          <loop>
-            <ne>
-              <get id="1"/>
-              <get id="0"/>
-            </ne>
-            <get id="0"/>
-            <get id="true"/>
-          </loop>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/pointer.hlx b/hlvm/test/xml2xml/pointer.hlx
deleted file mode 100644
index a4c73ac..0000000
--- a/hlvm/test/xml2xml/pointer.hlx
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <pointer id="aPointerType" to="someType"/>
-    <any id="someType"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/progargs.hlx b/hlvm/test/xml2xml/progargs.hlx
deleted file mode 100644
index c2c71c4..0000000
--- a/hlvm/test/xml2xml/progargs.hlx
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/progargs.hlx">
-  <bundle id="progargs">
-    <program id="progargs">
-      <block>
-        <result>
-          <get id="argc"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/resolve.hlx b/hlvm/test/xml2xml/resolve.hlx
deleted file mode 100644
index 31cd6d9..0000000
--- a/hlvm/test/xml2xml/resolve.hlx
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <pointer id="PtrToSomeType" to="SomeType"/>
-    <any id="SomeType"/>
-    <structure id="struct1">
-      <field id="field1" type="SomeType"/>
-    </structure>
-    <structure id="struct2">
-      <field id="field1" type="SomeType"/>
-      <field id="field2" type="PtrToSomeType"/>
-    </structure>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/return.hlx b/hlvm/test/xml2xml/return.hlx
deleted file mode 100644
index 06ceaab..0000000
--- a/hlvm/test/xml2xml/return.hlx
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/return.hlx">
-  <bundle id="return">
-    <constant id="42" type="s32">
-      <dec>42</dec>
-    </constant>
-    <program id="return">
-      <block>
-        <result>
-          <get id="42"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/select.hlx b/hlvm/test/xml2xml/select.hlx
deleted file mode 100644
index 2f95b33..0000000
--- a/hlvm/test/xml2xml/select.hlx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/select.hlx">
-  <bundle id="select">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="21" type="s32">
-      <dec>21</dec>
-    </constant>
-    <constant id="42" type="s32">
-      <dec>42</dec>
-    </constant>
-    <program id="select">
-      <block>
-        <result>
-          <select>
-            <ne>
-              <get id="0"/>
-              <get id="21"/>
-            </ne>
-            <get id="42"/>
-            <get id="21"/>
-          </select>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/signature.hlx b/hlvm/test/xml2xml/signature.hlx
deleted file mode 100644
index 008f986..0000000
--- a/hlvm/test/xml2xml/signature.hlx
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <signature id="sig1" result="someType">
-      <arg id="arg1" type="someType"/>
-    </signature>
-    <signature id="sig2" result="someType" varargs="true">
-      <arg id="arg1" type="someType"/>
-      <arg id="arg1" type="someType"/>
-    </signature>
-    <any id="someType"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/structure.hlx b/hlvm/test/xml2xml/structure.hlx
deleted file mode 100644
index 178dfbd..0000000
--- a/hlvm/test/xml2xml/structure.hlx
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <any id="someType"/>
-    <structure id="struct1">
-      <field id="field1" type="someType"/>
-    </structure>
-    <structure id="struct2">
-      <field id="field1" type="someType"/>
-      <field id="field2" type="someType"/>
-    </structure>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/switch.hlx b/hlvm/test/xml2xml/switch.hlx
deleted file mode 100644
index e6c75d5..0000000
--- a/hlvm/test/xml2xml/switch.hlx
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/return.hlx">
-  <bundle id="return">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <constant id="2" type="s32">
-      <dec>2</dec>
-    </constant>
-    <constant id="21" type="s32">
-      <dec>21</dec>
-    </constant>
-    <constant id="3" type="s32">
-      <dec>3</dec>
-    </constant>
-    <constant id="4" type="s32">
-      <dec>4</dec>
-    </constant>
-    <constant id="42" type="s32">
-      <dec>42</dec>
-    </constant>
-    <constant id="5" type="s32">
-      <dec>5</dec>
-    </constant>
-    <program id="return">
-      <block>
-        <result>
-          <switch>
-            <get id="42"/>
-            <get id="42"/>
-            <get id="1"/>
-            <get id="1"/>
-            <get id="2"/>
-            <get id="2"/>
-            <get id="3"/>
-            <get id="3"/>
-            <get id="4"/>
-            <get id="4"/>
-            <get id="5"/>
-            <get id="5"/>
-            <get id="42"/>
-            <get id="21"/>
-          </switch>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/unless.hlx b/hlvm/test/xml2xml/unless.hlx
deleted file mode 100644
index 29619b9..0000000
--- a/hlvm/test/xml2xml/unless.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/unless.hlx">
-  <bundle id="unless">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="unless">
-      <block>
-        <unless>
-          <ne>
-            <get id="1"/>
-            <get id="0"/>
-          </ne>
-          <get id="0"/>
-        </unless>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/until.hlx b/hlvm/test/xml2xml/until.hlx
deleted file mode 100644
index 607aeca..0000000
--- a/hlvm/test/xml2xml/until.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/until.hlx">
-  <bundle id="until">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="until">
-      <block>
-        <until>
-          <get id="0"/>
-          <ne>
-            <get id="1"/>
-            <get id="0"/>
-          </ne>
-        </until>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/var.hlx b/hlvm/test/xml2xml/var.hlx
deleted file mode 100644
index fb45ee9..0000000
--- a/hlvm/test/xml2xml/var.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <variable id="var" type="int"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/vector.hlx b/hlvm/test/xml2xml/vector.hlx
deleted file mode 100644
index 735aaa3..0000000
--- a/hlvm/test/xml2xml/vector.hlx
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="name">
-  <bundle id="bundle">
-    <vector id="aVector" of="f32" length="128"/>
-  </bundle>
-</hlvm>
diff --git a/hlvm/test/xml2xml/while.hlx b/hlvm/test/xml2xml/while.hlx
deleted file mode 100644
index 33748d4..0000000
--- a/hlvm/test/xml2xml/while.hlx
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hlvm xmlns="http://hlvm.org/src/hlvm/Reader/XML/HLVM.rng" pubid="http://hlvm.org/src/hlvm/test/xml2xml/while.hlx">
-  <bundle id="while">
-    <constant id="0" type="s32">
-      <dec>0</dec>
-    </constant>
-    <constant id="1" type="s32">
-      <dec>1</dec>
-    </constant>
-    <program id="while">
-      <block>
-        <while>
-          <ne>
-            <get id="1"/>
-            <get id="0"/>
-          </ne>
-          <get id="0"/>
-        </while>
-        <result>
-          <get id="0"/>
-        </result>
-        <ret/>
-      </block>
-    </program>
-  </bundle>
-</hlvm>
diff --git a/hlvm/tools/SConscript b/hlvm/tools/SConscript
deleted file mode 100644
index 9de7bd2..0000000
--- a/hlvm/tools/SConscript
+++ /dev/null
@@ -1,31 +0,0 @@
-#===-- Build Script For tools ---------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.Dirs(env,[
-  'hlvm-config',
-  'hlvm-xml2xml',
-  'hlvm-compiler',
-  'hlvm-gentestcase',
-  'hlvm'
-])
diff --git a/hlvm/tools/hlvm-compiler/SConscript b/hlvm/tools/hlvm-compiler/SConscript
deleted file mode 100644
index 656c68f..0000000
--- a/hlvm/tools/hlvm-compiler/SConscript
+++ /dev/null
@@ -1,53 +0,0 @@
-#===-- Build Script For tools/hlvm-xml2xml --------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from os.path import join as pjoin
-from build import hlvm
-Import('env')
-prog = env.Program('hlvm-compiler', hlvm.GetAllCXXFiles(env),
- LIBS=[
-   'HLVMCodeGen',
-   'HLVMReader',
-   'HLVMWriter',
-   'HLVMPass',
-   'HLVMAST',
-   'HLVMBase',
-   'xml2',
-   'LLVMLinker',
-   'LLVMBitReader',
-   'LLVMBitWriter',
-   'LLVMipo',
-   'LLVMipa',
-   'LLVMScalarOpts',
-   'LLVMAnalysis',
-   'LLVMTarget',
-   'LLVMTransformUtils',
-   'LLVMCore',
-   'LLVMSupport',
-   'LLVMSystem',
-   'aprutil-1',
-   'apr-1',
-   'stdc++'
-  ]
-)
-hlvm.InstallProgram(env,prog)
-
diff --git a/hlvm/tools/hlvm-compiler/hlvm-compiler.cpp b/hlvm/tools/hlvm-compiler/hlvm-compiler.cpp
deleted file mode 100644
index 1034066..0000000
--- a/hlvm/tools/hlvm-compiler/hlvm-compiler.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-//===-- HLVM Compiler -------------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm/hlvm.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/23
-/// @since 0.1.0
-/// @brief Implements the main program for the HLVM Compiler 
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Memory.h>
-#include <hlvm/Base/Assert.h>
-#include <hlvm/Reader/XMLReader.h>
-#include <hlvm/Writer/XMLWriter.h>
-#include <hlvm/Pass/Pass.h>
-#include <hlvm/CodeGen/LLVMGenerator.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-#include <fstream>
-#include <iostream>
-
-using namespace llvm;
-using namespace hlvm;
-
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input XML>"), cl::init("-"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"),
-               cl::value_desc("filename"));
-
-static cl::opt<bool> NoValidate("no-validate", cl::init(false),
-  cl::desc("Don't validate input before generating code"));
-
-enum GenerationOptions {
-  GenLLVMBytecode,
-  GenLLVMAssembly,
-  GenHLVMXML,
-  GenNativeExecutable,
-  GenLoadableModule
-};
-
-static cl::opt<GenerationOptions> WhatToGenerate(
-  cl::Optional,
-  cl::desc("Choose what kind of output to generate"),
-  cl::init(GenLLVMBytecode),
-  cl::values(
-    clEnumValN(GenLLVMBytecode,     "llvmbc",  "Generate LLVM Bytecode"),
-    clEnumValN(GenLLVMAssembly,     "llvmasm", "Generate LLVM Assembly"),
-    clEnumValN(GenNativeExecutable, "native",  "Generate Native Executable"),
-    clEnumValN(GenLoadableModule,   "module",  "Generate Loadable Module"),
-    clEnumValEnd
-  )
-);
-
-int main(int argc, char**argv) 
-{
-  try {
-    initialize(argc,argv);
-    cl::ParseCommandLineOptions(argc, argv, 
-      "hlvm-compile: Compile HLVM AST To Other Forms\n");
-
-    std::ostream *Out = &std::cout;  // Default to printing to stdout.
-
-    if (OutputFilename != "") {   // Specified an output filename?
-      if (OutputFilename != "-") { // Not stdout?
-        Out = new std::ofstream(OutputFilename.c_str());
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-      }
-    } else {
-      if (InputFilename == "-") {
-        OutputFilename = "-";
-      } else {
-        std::string IFN = InputFilename;
-        OutputFilename = InputFilename + ".out";
-
-        Out = new std::ofstream(OutputFilename.c_str());
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-      }
-    }
-
-    if (!Out->good()) {
-      std::cerr << argv[0] << ": error opening " << OutputFilename
-                << ": sending to stdout instead!\n";
-      Out = &std::cout;
-    }
-
-    if (InputFilename == "-" ) {
-      std::cerr << "Not supported yet: input from stdin\n";
-      exit(2);
-    } else {
-      llvm::sys::Path path(InputFilename);
-      if (!path.canRead()) {
-        std::cerr << argv[0] << ": can't read input file: " << InputFilename
-                  << "\n";
-        exit(2);
-      }
-    }
-
-    XMLReader* rdr = XMLReader::create(InputFilename);
-    rdr->read();
-    AST* node = rdr->get();
-    if (node && !NoValidate) {
-      if (!validate(node))
-        exit(3);
-    }
-    std::string ErrMsg;
-    switch (WhatToGenerate) {
-      case GenLLVMBytecode:
-        if (!generateBytecode(node,*Out, ErrMsg)) {
-          std::cerr << argv[0] << ": Code generation error:\n" << ErrMsg;
-          exit(4);
-        }
-        break;
-      case GenLLVMAssembly: 
-        if (!generateAssembly(node,*Out, ErrMsg)) {
-          std::cerr << argv[0] << ": Code generation error:\n" << ErrMsg;
-          exit(4);
-        }
-        break;
-      case GenHLVMXML:
-      {
-        XMLWriter* wrtr = XMLWriter::create(OutputFilename.c_str());
-        hlvmAssert(wrtr && "Can't create XMLWriter?");
-        wrtr->write(node);
-        delete wrtr;
-        break;
-      }
-      case GenNativeExecutable:
-        std::cerr << argv[0] << 
-          ": Generating native executables is not supported yet\n";
-        exit(4);
-      case GenLoadableModule:
-        std::cerr << argv[0] << 
-          ": Generating native executables is not supported yet\n";
-        exit(4);
-      default:
-        std::cerr << argv[0] << 
-          ": Unknown generation request.\n";
-        exit(4);
-    }
-    delete rdr;
-
-    if (Out != &std::cout) {
-      static_cast<std::ofstream*>(Out)->close();
-      delete Out;
-    }
-    return 0;
-  } catch (const std::string& msg) {
-    std::cerr << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  return 1;
-}
diff --git a/hlvm/tools/hlvm-config/SConscript b/hlvm/tools/hlvm-config/SConscript
deleted file mode 100644
index 89aa42e..0000000
--- a/hlvm/tools/hlvm-config/SConscript
+++ /dev/null
@@ -1,36 +0,0 @@
-#===-- Build Script For test ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-prog = env.Program('hlvm-config', hlvm.GetAllCXXFiles(env),
-  LIBS=[
-    'HLVMRuntime',
-    'HLVMBase',
-    'LLVMSupport',
-    'LLVMSystem',
-    'apr-1',
-    'aprutil-1',
-    'stdc++'
-  ],
-)
-hlvm.InstallProgram(env,prog)
diff --git a/hlvm/tools/hlvm-config/hlvm-config.cpp b/hlvm/tools/hlvm-config/hlvm-config.cpp
deleted file mode 100644
index 2eb5887..0000000
--- a/hlvm/tools/hlvm-config/hlvm-config.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-//===-- hlvm-config Main Program --------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm-config/hlvm-config.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/23
-/// @since 0.1.0
-/// @brief Implements the main program for the hlvm-config tool
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/AST/Node.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/Block.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/Bundle.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/ContainerType.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/Documentation.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/RuntimeType.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/Base/Configuration.h>
-#include <llvm/Support/CommandLine.h>
-#include <iostream>
-#include <iomanip>
-
-using namespace llvm;
-using namespace hlvm;
-
-static llvm::cl::opt<bool> ShowNodeIds("node-ids", cl::init(false),
-  cl::desc("Show the node ids"));
-
-struct ClassInfo {
-  const char* name;
-  size_t size;
-};
-
-static ClassInfo NodeIDStrs[] =
-{
-  { "NoType", 0 },
-  { "TreeTop", sizeof(AST) },
-  { "Documentation", sizeof(Documentation) },
-  { "NamedType", sizeof(NamedType) },
-  { "Bundle", sizeof(Bundle) },
-  { "Import", sizeof(Import) },
-  { "AnyType", sizeof(AnyType) },
-  { "BooleanType", sizeof(BooleanType) },
-  { "CharacterType", sizeof(CharacterType) },
-  { "EnumerationType", sizeof(EnumerationType) },
-  { "IntegerType", sizeof(IntegerType) },
-  { "OpaqueType", sizeof(OpaqueType) },
-  { "RangeType", sizeof(RangeType) },
-  { "RealType", sizeof(RealType) },
-  { "RationalType", sizeof(RationalType) },
-  { "StringType", sizeof(StringType) },
-  { "PointerType", sizeof(PointerType) },
-  { "ArrayType", sizeof(ArrayType) },
-  { "VectorType", sizeof(VectorType) },
-  { "StructureType", sizeof(StructureType) },
-  { "SignatureType", sizeof(SignatureType) },
-  { "ContinuationType", sizeof(ContinuationType) },
-  { "BufferType", sizeof(BufferType) },
-  { "StreamType", sizeof(StreamType) },
-  { "TextType", sizeof(TextType) },
-  { "Interface", 0 /*sizeof(Interface)*/ },
-  { "Class", 0, /*sizeof(Class)*/ },
-  { "Method", 0 /*sizeof(Method)*/ },
-  { "Implements", 0 /*sizeof(Implements)*/ },
-  { "Argument", sizeof(Argument) },
-  { "ConstantAny", sizeof(ConstantAny) },
-  { "ConstantBoolean", sizeof(ConstantBoolean) },
-  { "ConstantCharacter", sizeof(ConstantCharacter) },
-  { "ConstantEnumerator", sizeof(ConstantEnumerator) },
-  { "ConstantInteger", sizeof(ConstantInteger) },
-  { "ConstantReal", sizeof(ConstantReal) },
-  { "ConstantString", sizeof(ConstantString) },
-  { "ConstantPointer", sizeof(ConstantPointer) },
-  { "ConstantArray", sizeof(ConstantArray) },
-  { "ConstantVector", sizeof(ConstantVector) },
-  { "ConstantStructure", sizeof(ConstantStructure) },
-  { "ConstantContinuation", sizeof(ConstantContinuation) },
-  { "ConstantExpression", sizeof(ConstantExpression) },
-  { "Variable", sizeof(Variable) },
-  { "Function", sizeof(Function) },
-  { "Program", sizeof(Program) },
-  { "Block", sizeof(Block) },
-  { "BreakOp", sizeof(BreakOp) },
-  { "ContinueOp", sizeof(ContinueOp) },
-  { "ReturnOp", sizeof(ReturnOp) },
-  { "GetOp", sizeof(GetOp) },
-  { "ResultOp", sizeof(ResultOp) },
-  { "ThrowOp", 0 /*sizeof(ThrowOp)*/ },
-  { "NotOp", sizeof(NotOp) },
-  { "NegateOp", sizeof(NegateOp) },
-  { "ComplementOp", sizeof(ComplementOp) },
-  { "PreIncrOp", sizeof(PreIncrOp) },
-  { "PostIncrOp", sizeof(PostIncrOp) },
-  { "PreDecrOp", sizeof(PreDecrOp) },
-  { "PostDecrOp", sizeof(PostDecrOp) },
-  { "SizeOfOp", sizeof(SizeOfOp) },
-  { "ConvertOp", sizeof(ConvertOp) },
-  { "IsPInfOp", sizeof(IsPInfOp) },
-  { "IsNInfOp", sizeof(IsNInfOp) },
-  { "IsNanOp", sizeof(IsNanOp) },
-  { "TruncOp", sizeof(TruncOp) },
-  { "RoundOp", sizeof(RoundOp) },
-  { "FloorOp", sizeof(FloorOp) },
-  { "CeilingOp", sizeof(CeilingOp) },
-  { "LogEOp", sizeof(LogEOp) },
-  { "Log2Op", sizeof(Log2Op) },
-  { "Log10Op", sizeof(Log10Op) },
-  { "SquareRootOp", sizeof(SquareRootOp) },
-  { "CubeRootOp", sizeof(CubeRootOp) },
-  { "FactorialOp", sizeof(FactorialOp) },
-  { "LoadOp", sizeof(LoadOp) },
-  { "AllocateOp", sizeof(AllocateOp) },
-  { "DeallocateOp", sizeof(DeallocateOp) },
-  { "AutoVarOp", sizeof(AutoVarOp) },
-  { "TellOp", 0 /*sizeof(TellOp)*/ },
-  { "CloseOp", sizeof(CloseOp) },
-  { "LengthOp", sizeof(LengthOp) },
-  { "AddOp", sizeof(AddOp) },
-  { "SubtractOp", sizeof(SubtractOp) },
-  { "MultiplyOp", sizeof(MultiplyOp) },
-  { "DivideOp", sizeof(DivideOp) },
-  { "ModuloOp", sizeof(ModuloOp) },
-  { "BAndOp", sizeof(BAndOp) },
-  { "BOrOp", sizeof(BOrOp) },
-  { "BXorOp", sizeof(BXorOp) },
-  { "BNorOp", sizeof(BNorOp) },
-  { "AndOp", sizeof(AndOp) },
-  { "OrOp", sizeof(OrOp) },
-  { "NorOp", sizeof(NorOp) },
-  { "XorOp", sizeof(XorOp) },
-  { "LessThanOp", sizeof(LessThanOp) },
-  { "GreaterThanOp", sizeof(GreaterThanOp) },
-  { "LessEqualOp", sizeof(LessEqualOp) },
-  { "GreaterEqualOp", sizeof(GreaterEqualOp) },
-  { "EqualityOp", sizeof(EqualityOp) },
-  { "InequalityOp", sizeof(InequalityOp) },
-  { "PowerOp", sizeof(PowerOp) },
-  { "RootOp", sizeof(RootOp) },
-  { "GCDOp", sizeof(GCDOp) },
-  { "LCMOp", sizeof(LCMOp) },
-  { "ReallocateOp", 0 /*sizeof(ReallocateOp)*/ },
-  { "StoreOp", sizeof(StoreOp) },
-  { "GetIndexOp", sizeof(GetIndexOp) },
-  { "GetFieldOp", sizeof(GetFieldOp) },
-  { "WhileOp", sizeof(WhileOp) },
-  { "UnlessOp", sizeof(UnlessOp) },
-  { "UntilOp", sizeof(UntilOp) },
-  { "OpenOp", sizeof(OpenOp) },
-  { "ReadOp", sizeof(ReadOp) },
-  { "WriteOp", sizeof(WriteOp) },
-  { "CreateContOp", 0 /*sizeof(CreateContOp)*/ },
-  { "SelectOp", sizeof(SelectOp) },
-  { "StrInsertOp", sizeof(StrInsertOp) },
-  { "StrEraseOp", sizeof(StrEraseOp) },
-  { "StrReplaceOp", sizeof(StrReplaceOp) },
-  { "StrConcatOp", sizeof(StrConcatOp) },
-  { "PositionOp", 0 /*sizeof(PositionOp)*/ },
-  { "LoopOp", sizeof(LoopOp) },
-  { "CallOp", sizeof(CallOp) },
-  { "InvokeOp", 0 /*sizeof(InvokeOp)*/ },
-  { "DispatchOp", 0 /*sizeof(DispatchOp)*/ },
-  { "CallWithContOp", 0 /*sizeof(CallWithContOp)*/ },
-  { "SwitchOp", sizeof(SwitchOp) },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-  { "**INVALID**", 0 },
-};
-
-void showNodeIds()
-{
-  unsigned rowcount = 4;
-  std::cout << "NodeID NodeSize Class Name\n";
-  for (unsigned i = FirstNodeID; i <= LastNodeID; i++) {
-    std::cout << std::setw(6) << i << " " << std::setw(8) << NodeIDStrs[i].size
-      << " " << NodeIDStrs[i].name << "\n";
-    rowcount++;
-  }
-
-  std::cout << "\n\nNumber of NodeIDs: " << NumNodeIDs << "\n";
-  std::cout << "Nodes: " 
-            << FirstNodeID << " -> "
-            << LastNodeID << "\n";
-  std::cout << "Documentables: " 
-            << FirstDocumentableID << " -> "
-            << LastDocumentableID << "\n";
-  std::cout << "Types:" 
-            << FirstTypeID << " -> " 
-            << LastTypeID << "\n";
-  std::cout << "ContainerTypes: " 
-            << FirstContainerTypeID << " -> "
-            << LastContainerTypeID << "\n";
-  std::cout << "UniformContainerTypes: " 
-            << FirstUniformContainerTypeID << " -> "
-            << LastUniformContainerTypeID << "\n";
-  std::cout << "DisparateContainerTypes: " 
-            << FirstDisparateContainerTypeID << " -> "
-            << LastDisparateContainerTypeID << "\n";
-  std::cout << "RuntimeTypes: " 
-            << FirstRuntimeTypeID << " -> "
-            << LastRuntimeTypeID << "\n";
-  std::cout << "Values: " 
-            << FirstValueID << " -> " 
-            << LastValueID << "\n";
-  std::cout << "Constants: " 
-            << FirstConstantID << " -> "
-            << LastConstantID << "\n";
-  std::cout << "ConstantValues: " 
-            << FirstConstantValueID << " -> "
-            << LastConstantValueID << "\n";
-  std::cout << "ConstantAggregates: " 
-            << FirstConstantAggregateID << " -> "
-            << LastConstantAggregateID << "\n";
-  std::cout << "Linkables: " 
-            << FirstLinkableID << " -> "
-            << LastLinkableID << "\n";
-  std::cout << "Operators: " 
-            << FirstOperatorID << " -> "
-            << LastOperatorID << "\n";
-  std::cout << "NilaryOperators: " 
-            << FirstNilaryOperatorID << " -> "
-            << LastNilaryOperatorID << "\n";
-  std::cout << "UnaryOperators: " 
-            << FirstUnaryOperatorID << " -> "
-            << LastUnaryOperatorID << "\n";
-  std::cout << "BinaryOperators: " 
-            << FirstBinaryOperatorID << " -> "
-            << LastBinaryOperatorID << "\n";
-  std::cout << "TernaryOperators: " 
-            << FirstTernaryOperatorID << " -> "
-            << LastTernaryOperatorID << "\n";
-  std::cout << "MultiOperators: " 
-            << FirstMultiOperatorID << " -> "
-            << LastMultiOperatorID << "\n";
-  if (sizeof(NodeIDStrs)/sizeof(NodeIDStrs[0]) != NumNodeIDs+10)
-    std::cout << "\n**##!! NodeIDStrs Out Of Date !!##**\n\n";
-}
-
-void printVersion() 
-{
-  std::cout << HLVM_Version << "\n";
-}
-
-static llvm::cl::opt<bool> ConfigTime("config-time", cl::init(false),
-  cl::desc("Show when HLVM was configured"));
-static llvm::cl::opt<bool> Copyright("copyright", cl::init(false),
-  cl::desc("Show when HLVM copyright notice"));
-static llvm::cl::opt<bool> Maintainer("maintainer", cl::init(false),
-  cl::desc("Show the maintainer of this HLVM release"));
-
-int 
-main(int argc, char**argv) 
-{
-  cl::SetVersionPrinter(printVersion);
-  cl::ParseCommandLineOptions(argc, argv, 
-    "hlvm-config: HLVM Configuration Utility\n");
-
-  if (ShowNodeIds)
-    showNodeIds();
-  if (ConfigTime)
-    std::cout << HLVM_ConfigTime << "\n";
-  if (Copyright)
-    std::cout << HLVM_Copyright << "\n";
-  if (Maintainer)
-    std::cout << HLVM_Maintainer << "\n";
-
-  return 0;
-}
diff --git a/hlvm/tools/hlvm-gentestcase/Generate.cpp b/hlvm/tools/hlvm-gentestcase/Generate.cpp
deleted file mode 100644
index 6e9da71..0000000
--- a/hlvm/tools/hlvm-gentestcase/Generate.cpp
+++ /dev/null
@@ -1,1347 +0,0 @@
-//===-- Generate Random Test Cases ------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm-gentestcase/Generate.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the test case generator for hlvm-gentestcase
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Assert.h>
-#include <hlvm/AST/AST.h>
-#include <hlvm/AST/Constants.h>
-#include <hlvm/AST/Linkables.h>
-#include <hlvm/AST/Arithmetic.h>
-#include <hlvm/AST/BooleanOps.h>
-#include <hlvm/AST/ControlFlow.h>
-#include <hlvm/AST/MemoryOps.h>
-#include <hlvm/AST/InputOutput.h>
-#include <hlvm/AST/RealMath.h>
-#include <hlvm/AST/StringOps.h>
-#include <hlvm/AST/Bundle.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/ADT/StringExtras.h>
-#include <stdlib.h>
-#include <time.h>
-
-using namespace llvm;
-using namespace hlvm;
-
-static cl::opt<unsigned>
-  Complexity("complexity", 
-    cl::init(5),
-    cl::desc("Specify complexity of generated code"), 
-    cl::value_desc("num"));
-
-static cl::opt<unsigned>
-  TypeComplexity("type-complexity", 
-    cl::init(4),
-    cl::desc("Specify type complexity of generated code"), 
-    cl::value_desc("num"));
-
-static cl::opt<unsigned>
-  Seed("seed", 
-    cl::init(unsigned(time(0))), 
-    cl::desc("Specify random number generator seed"), 
-    cl::value_desc("num"));
-
-static cl::opt<unsigned>
-  Size("size",cl::desc("Specify size of generated code"),
-      cl::value_desc("num"));
-
-typedef std::vector<Value*> ValueList;
-typedef std::map<const Type*,ValueList> TypeValueMap;
-typedef std::vector<Type*> TypeList;
-
-static AST* ast = 0;
-static URI* uri = 0;
-static Bundle* bundle = 0;
-static Program* program = 0;
-static unsigned line = 0;
-static TypeValueMap values;
-static TypeList types;
-
-inline Locator* 
-getLocator()
-{
-  return ast->new_Locator(uri,++line);
-}
-
-inline 
-int64_t randRange(int64_t low, int64_t high)
-{
-  if (high > low)
-    return int64_t(random()) % (high-low) + low;
-  else if (low > high)
-    return int64_t(random()) % (low-high) + high;
-  else
-    return low;
-}
-
-inline
-uint64_t randRange(uint64_t low, uint64_t high, bool discriminate)
-{
-  if (high > low)
-    return uint64_t(random()) % (high-low) + low;
-  else if (low > high)
-    return uint64_t(random()) % (low-high) + high;
-  else
-    return low;
-}
-
-static Type*
-genType(unsigned limit)
-{
-  Type* result = 0;
-  bool intrinsic_type = randRange(0,TypeComplexity) < TypeComplexity/3;
-  if (--limit == 0)
-    intrinsic_type = true;
-
-  if (intrinsic_type) {
-    IntrinsicTypes theType = IntrinsicTypes(
-        randRange(FirstIntrinsicType,LastIntrinsicType));
-    // FIXME: Don't allow things we can't code gen right now
-    if (theType == u128Ty)
-      theType = u64Ty;
-    else if (theType == s128Ty)
-      theType = s64Ty;
-    else if (theType == f128Ty || theType == f96Ty || theType == f80Ty)
-      theType = f64Ty;
-    else if (theType == bufferTy || theType == streamTy || theType == textTy)
-      theType = s32Ty;
-    else if (theType >= qs16Ty && theType <= qu128Ty)
-      theType = u32Ty;
-    return bundle->getIntrinsicType(theType);
-  }
-
-  NodeIDs id = NodeIDs(randRange(FirstTypeID,LastTypeID));
-  switch (id) {
-    case BooleanTypeID: 
-      result = bundle->getIntrinsicType(boolTy);
-      break;
-    case CharacterTypeID:
-      result = bundle->getIntrinsicType(charTy);
-      break;
-    case StringTypeID:
-      result = bundle->getIntrinsicType(stringTy);
-      break;
-    case AnyTypeID:
-    case BufferTypeID:
-    case StreamTypeID:
-    case TextTypeID:
-      /* FALL THROUGH (unimplemented) */
-    case SignatureTypeID:
-      /* FALL THROUGH (unimplemented) */
-    case RationalTypeID:
-      /* FALL THROUGH (unimplemented) */
-    case IntegerTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "int_" + utostr(line);
-      bool isSigned = randRange(0,TypeComplexity+2,true) < (TypeComplexity+2)/2;
-      result = 
-        ast->new_IntegerType(name,bundle,randRange(4,64,true),isSigned,loc);
-      break;
-    }
-    case RangeTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "range_" + utostr(line);
-      int64_t limit = randRange(0,8000000);
-      result = ast->new_RangeType(name,bundle,-limit,limit,loc);
-      break;
-    }
-    case EnumerationTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "enum_" + utostr(line);
-      EnumerationType* E = ast->new_EnumerationType(name,bundle,loc);
-      unsigned numEnums = randRange(1,TypeComplexity,true);
-      for (unsigned i = 0; i < numEnums; i++)
-        E->addEnumerator(name + "_" + utostr(i));
-      result = E;
-      break;
-    }
-    case RealTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "real_" + utostr(line);
-      result = 
-        ast->new_RealType(name,bundle,randRange(8,52),randRange(8,11),loc);
-      break;
-    }
-    case PointerTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "ptr_" + utostr(line);
-      result = ast->new_PointerType(name,bundle,genType(limit),loc);
-      break;
-    }
-    case ArrayTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "array_" + utostr(line);
-      result = ast->new_ArrayType(name,bundle,
-          genType(limit),randRange(1,Size*10),loc);
-      break;
-    }
-    case VectorTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "vector_" + utostr(line);
-      result = ast->new_VectorType(name,bundle,
-          genType(limit),randRange(1,Size*10),loc);
-      break;
-    }
-    case OpaqueTypeID:
-    case ContinuationTypeID:
-      /* FALL THROUGH (not implemented) */
-    case StructureTypeID:
-    {
-      Locator* loc = getLocator();
-      std::string name = "struct_" + utostr(line);
-      StructureType* S = ast->new_StructureType(name,bundle,loc);
-      unsigned numFields = randRange(1,Size,true);
-      for (unsigned i = 0; i < numFields; ++i) {
-        Field* fld = ast->new_Field(name+"_"+utostr(i),
-            genType(limit),getLocator());
-        S->addField(fld);
-      }
-      result = S;
-      break;
-    }
-    default:
-      hlvmAssert(!"Invalid Type?");
-  }
-  hlvmAssert(result && "No type defined?");
-  return result;
-}
-
-static Type*
-genType()
-{
-  bool shouldGenNewType = randRange(0,5) < TypeComplexity;
-  if (types.empty() || shouldGenNewType) {
-    Type* Ty = genType(TypeComplexity);
-    types.push_back(Ty);
-    return Ty;
-  }
-  return types[ randRange(0,types.size()-1) ];
-}
-
-static ConstantString*
-getConstantString(const std::string& str)
-{
-  typedef std::map<std::string,ConstantString*> strmap;
-  static strmap stringmap;
-  strmap::iterator I = stringmap.find(str);
-  if (I == stringmap.end()) {
-    Locator* loc = getLocator();
-    Type* Ty = bundle->getIntrinsicType(stringTy);
-    ConstantString* cstr = ast->new_ConstantString(
-      std::string("cstr_")+utostr(line),bundle,Ty,str,loc);
-    stringmap[str] = cstr;
-    return cstr;
-  }
-  return I->second;
-}
-
-static ConstantInteger*
-getConstantInteger(int32_t val)
-{
-  typedef std::map<int32_t,ConstantInteger*> intmap;
-  static intmap integermap;
-  intmap::iterator I = integermap.find(val);
-  if (I == integermap.end()) {
-    Locator* loc = getLocator();
-    Type* Ty = bundle->getIntrinsicType(intTy);
-    std::string val_str = itostr(val);
-    ConstantInteger* cint = ast->new_ConstantInteger(
-      std::string("cint_")+utostr(line),bundle,Ty,val_str,10,loc);
-    integermap[val] = cint;
-    return cint;
-  }
-  return I->second;
-}
-
-static Value*
-genValue(const Type* Ty, bool is_constant = false)
-{
-  if (!is_constant && randRange(0,Complexity) < Complexity/2) {
-    // First look up an existing value in the map
-    TypeValueMap::iterator VI = values.find(Ty);
-    if (VI != values.end()) {
-      ValueList& VL = VI->second;
-      unsigned index = randRange(0,VL.size()-1,true);
-      Value* result = VL[index];
-      hlvmAssert(result->getType() == Ty);
-      return result;
-    }
-  }
-
-  // Didn't find one in the map, so generate a variable or constant
-  ConstantValue* C = 0;
-  Locator* loc = getLocator();
-  NodeIDs id = Ty->getID();
-  switch (id) {
-    case BooleanTypeID:
-    {
-      bool val = randRange(0,Complexity+2) < (Complexity+2)/2;
-      C = ast->new_ConstantBoolean(
-          std::string("cbool_") + utostr(line), bundle,Ty, val, loc);
-      break;
-    }
-    case CharacterTypeID:
-    {
-      std::string val;
-      if ( randRange(0,20) < Complexity )  {
-        static char hexDigits[16] = { 
-          '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
-        val = '#';
-        val += hexDigits[ randRange(0,15) ];
-        val += hexDigits[ randRange(0,15) ];
-        val += hexDigits[ randRange(0,15) ];
-        val += hexDigits[ randRange(0,15) ];
-      } else {
-        val += char(randRange(36,126));
-      }
-      C = ast->new_ConstantCharacter(
-        std::string("cchar_") + utostr(line), bundle,Ty, val, loc);
-      break;
-    }
-    case StringTypeID:
-    {
-      std::string val;
-      unsigned numChars = randRange(1,Size+Complexity,true);
-      for (unsigned i = 0 ; i < numChars; i++)
-        val += char(randRange(35,126));
-      C = getConstantString(val);
-      break;
-    }
-    case BufferTypeID:
-    case StreamTypeID:
-    case TextTypeID:
-    case AnyTypeID:
-      // hlvmAssert("Can't get constant for these types");
-      /* FALL THROUGH (unimplemented) */
-    case SignatureTypeID:
-      /* FALL THROUGH (unimplemented) */
-    case RationalTypeID:
-      /* FALL THROUGH (unimplemented) */
-    case IntegerTypeID:
-    {
-      std::string name = "cint_" + utostr(line);
-      const IntegerType* IntTy = llvm::cast<IntegerType>(Ty);
-      unsigned bits = (IntTy->getBits() < 63 ? IntTy->getBits() : 63) - 2;
-      int64_t max = 1 << bits;
-      std::string val_str;
-      if (IntTy->isSigned()) {
-        int64_t val = randRange(int64_t(-max),int64_t(max-1));
-        val_str = itostr(val);
-      } else {
-        uint64_t val = randRange(uint64_t(0),uint64_t(max),true);
-        val_str = utostr(val);
-      }
-      C = ast->new_ConstantInteger(name,bundle,Ty,val_str,10,loc);
-      break;
-    }
-    case RangeTypeID:
-    {
-      std::string name = "crange_" + utostr(line);
-      const RangeType* RngTy = llvm::cast<RangeType>(Ty);
-      int64_t val = randRange(RngTy->getMin(),RngTy->getMax());
-      std::string val_str( itostr(val) );
-      C = ast->new_ConstantInteger(name,bundle,RngTy,val_str,10,loc);
-      break;
-    }
-    case EnumerationTypeID:
-    {
-      std::string name = "cenum_" + utostr(line);
-      const EnumerationType* ETy = llvm::cast<EnumerationType>(Ty);
-      unsigned val = randRange(0,ETy->size()-1);
-      EnumerationType::const_iterator I = ETy->begin() + val;
-      C = ast->new_ConstantEnumerator(name,bundle,ETy,*I,loc);
-      break;
-    }
-    case RealTypeID:
-    {
-      double val = double(randRange(-10000000,10000000));
-      std::string val_str(ftostr(val));
-      C = ast->new_ConstantReal(
-        std::string("cf32_")+utostr(line),bundle,Ty,val_str,loc);
-      break;
-    }
-    case PointerTypeID:
-    {
-      const PointerType* PT = llvm::cast<PointerType>(Ty);
-      const Type* refType = PT->getElementType();
-      std::string name = std::string("cptr_") + utostr(line);
-      Value* refValue = genValue(refType,true);
-      C = ast->new_ConstantPointer(name, bundle,PT, 
-        cast<ConstantValue>(refValue),loc);
-      break;
-    }
-    case ArrayTypeID:
-    {
-      const ArrayType* AT = llvm::cast<ArrayType>(Ty);
-      const Type* elemTy = AT->getElementType();
-      unsigned nElems = randRange(1,AT->getMaxSize(),true);
-      std::vector<ConstantValue*> elems;
-      std::string name = "cptr_" + utostr(line);
-      for (unsigned i = 0; i < nElems; i++)
-        elems.push_back(cast<ConstantValue>(genValue(elemTy,true)));
-      C = ast->new_ConstantArray(name, bundle,AT,elems, loc);
-      break;
-    }
-    case VectorTypeID:
-    {
-      const VectorType* VT = llvm::cast<VectorType>(Ty);
-      const Type* elemTy = VT->getElementType();
-      uint64_t nElems = VT->getSize();
-      std::string name = "cvect_" + utostr(line);
-      std::vector<ConstantValue*> elems;
-      for (unsigned i = 0; i < nElems; i++)
-        elems.push_back(cast<ConstantValue>(genValue(elemTy,true)));
-      C = ast->new_ConstantVector(name, bundle, VT, elems, loc);
-      break;
-    }
-    case OpaqueTypeID:
-      /* FALL THROUGH (not implemented) */
-    case ContinuationTypeID:
-      /* FALL THROUGH (not implemented) */
-    case StructureTypeID:
-    {
-      const StructureType* ST = llvm::cast<StructureType>(Ty);
-      std::string name = "cstruct_" + utostr(line);
-      std::vector<ConstantValue*> elems;
-      for (StructureType::const_iterator I = ST->begin(), E = ST->end(); 
-           I != E; ++I) {
-        const Type* Ty = (*I)->getType();
-        Value* V = genValue(Ty,true);
-        elems.push_back(cast<ConstantValue>(V));
-      }
-      C = ast->new_ConstantStructure(name, bundle, ST, elems, loc);
-      break;
-    }
-    default:
-      hlvmAssert(!"Invalid Type?");
-  }
-
-  // Give the constant a home
-  C->setParent(bundle);
-
-  // Make it either an initialized variable or just the constant itself.
-  Value* result = 0;
-  if (is_constant || (randRange(0,Complexity+2) < (Complexity+2)/2))
-    result = C;
-  else {
-    Variable* var = 
-      ast->new_Variable(C->getName()+"_var",bundle,C->getType(),loc);
-    var->setIsConstant(false);
-    var->setInitializer(C);
-    var->setParent(bundle);
-    result = var;
-  }
-
-  // Memoize the result
-  values[result->getType()].push_back(result);
-  return result;
-}
-
-static inline GetOp*
-getReference(const Value* val)
-{
-  hlvmAssert(isa<Linkable>(val) || isa<Constant>(val) || isa<AutoVarOp>(val));
-  return ast->new_GetOp(val,getLocator());
-}
-
-static inline Operator*
-genValueAsOperator(const Type *Ty, bool is_constant = false)
-{
-  Value* V = genValue(Ty,is_constant);
-  Operator* O = getReference(V);
-  if (isa<Linkable>(V))
-    O = ast->new_UnaryOp<LoadOp>(O,bundle,getLocator());
-  return O;
-}
-
-static CallOp*
-genCallTo(Function* F)
-{
-  std::vector<Operator*> args;
-  Operator* O = ast->new_GetOp(F,getLocator());
-  args.push_back(O);
-  const SignatureType* sig = F->getSignature();
-  for (SignatureType::const_iterator I = sig->begin(), E = sig->end(); 
-       I != E; ++I) 
-  {
-    const Type* argTy = (*I)->getType();
-    Operator* O = genValueAsOperator(argTy);
-    hlvmAssert(argTy == O->getType());
-    args.push_back(O);
-  }
-  return ast->new_MultiOp<CallOp>(args,bundle,getLocator());
-}
-
-static Operator*
-genIndex(Operator* V)
-{
-  if (V->typeis<StructureType>()) {
-    const StructureType* Ty = cast<StructureType>(V->getType());
-    const NamedType* fldname = Ty->getField(randRange(0,Ty->size()-1));
-    return ast->new_GetFieldOp(V,fldname->getName(),getLocator());
-  } else if (V->typeis<ArrayType>()) {
-    const ArrayType* Ty = cast<ArrayType>(V->getType());
-    Constant* cindex = getConstantInteger(0); //FIXME: gen rand at runtime
-    GetOp* index = getReference(cindex);
-    return ast->new_GetIndexOp(V,index,getLocator());
-  } else if (V->typeis<VectorType>()) {
-    const VectorType* Ty = cast<VectorType>(V->getType());
-    int64_t idx = randRange(0,Ty->getSize()-1);
-    Constant* cindex = getConstantInteger(idx);
-    GetOp* index = getReference(cindex);
-    return ast->new_GetIndexOp(V,index,getLocator());
-  } else if (V->typeis<StringType>()) {
-    const StringType* Ty = cast<StringType>(V->getType());
-    Constant* cindex = getConstantInteger(0); //FIXME: gen rand at runtime
-    GetOp* index = getReference(cindex);
-    return ast->new_GetIndexOp(V,index,getLocator());
-  } else if (V->typeis<PointerType>()) {
-    Constant* cindex = getConstantInteger(0);
-    GetOp* index = getReference(cindex);
-    return ast->new_GetIndexOp(V,index,getLocator());
-  } else
-    hlvmAssert(!"Can't index this type!");
-  return 0;
-}
-
-static Operator* genExpression(Operator* Val, int depth);
-static Operator* genUnaryExpression(Operator* Val);
-static Operator* genBinaryExpression(Operator* V1, Operator*V2);
-
-static Operator*
-genBooleanUnary(Operator* V1) 
-{
-  hlvmAssert(V1->getType()->getID() == BooleanTypeID);
-  return ast->new_UnaryOp<NotOp>(V1,bundle,getLocator());
-}
-
-static Operator*
-genBooleanBinary(Operator* V1, Operator* V2) 
-{
-  hlvmAssert(V1->getType()->getID() == BooleanTypeID);
-  hlvmAssert(V2->getType()->getID() == BooleanTypeID);
-  Operator* result = 0;
-  NodeIDs id = NodeIDs(randRange(AndOpID,InequalityOpID));
-  switch (id) {
-    case AndOpID:
-      result = ast->new_BinaryOp<AndOp>(V1,V2,bundle,getLocator());
-      break;
-    case OrOpID:
-      result = ast->new_BinaryOp<OrOp>(V1,V2,bundle,getLocator());
-      break;
-    case NorOpID:
-      result = ast->new_BinaryOp<NorOp>(V1,V2,bundle,getLocator());
-      break;
-    case XorOpID:
-      result = ast->new_BinaryOp<XorOp>(V1,V2,bundle,getLocator());
-      break;
-    case LessThanOpID:
-      result = ast->new_BinaryOp<LessThanOp>(V1,V2,bundle,getLocator());
-      break;
-    case GreaterThanOpID:
-      result = ast->new_BinaryOp<GreaterThanOp>(V1,V2,bundle,getLocator());
-      break;
-    case LessEqualOpID:
-      result = ast->new_BinaryOp<LessEqualOp>(V1,V2,bundle,getLocator());
-      break;
-    case GreaterEqualOpID:
-      result = ast->new_BinaryOp<GreaterEqualOp>(V1,V2,bundle,getLocator());
-      break;
-    case EqualityOpID:
-      result = ast->new_BinaryOp<EqualityOp>(V1,V2,bundle,getLocator());
-      break;
-    case InequalityOpID:
-      result = ast->new_BinaryOp<InequalityOp>(V1,V2,bundle,getLocator());
-      break;
-    default:
-      hlvmAssert(!"Invalid boolean op ID");
-  }
-  return result;
-}
-
-static Operator*
-genCharacterUnary(Operator* V1)
-{
-  hlvmAssert(V1->getType()->getID() == CharacterTypeID);
-  return 0;
-}
-
-static Operator*
-genCharacterBinary(Operator* V1, Operator* V2) 
-{
-  hlvmAssert(V1->getType()->getID() == CharacterTypeID);
-  hlvmAssert(V2->getType()->getID() == CharacterTypeID);
-  return 0;
-}
-
-static Operator*
-genIntegerUnary(Operator* V1)
-{
-  hlvmAssert(V1->getType()->isIntegralType());
-  Operator* result = 0;
-  NodeIDs id = NodeIDs(randRange(NegateOpID, PostDecrOpID));
-  switch (id) {
-    case PreIncrOpID:
-    case PostIncrOpID:
-    case PreDecrOpID:
-    case PostDecrOpID:
-    case NegateOpID:
-      result = ast->new_UnaryOp<NegateOp>(V1,bundle,getLocator());
-      break;
-    case ComplementOpID:
-      result = ast->new_UnaryOp<ComplementOp>(V1,bundle,getLocator());
-      break;
-    default:
-      hlvmAssert(!"Invalid unary op id for integer");
-      result = ast->new_UnaryOp<ComplementOp>(V1,bundle,getLocator());
-  }
-  return result;
-}
-
-static Operator*
-genIntegerBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(V1->getType()->isIntegralType());
-  hlvmAssert(V2->getType()->isIntegralType());
-  Operator* result = 0;
-  NodeIDs id = NodeIDs(randRange(AddOpID, BNorOpID));
-  switch (id) {
-    case AddOpID:
-      result = ast->new_BinaryOp<AddOp>(V1,V2,bundle,getLocator());
-      break;
-    case SubtractOpID:
-      result = ast->new_BinaryOp<SubtractOp>(V1,V2,bundle,getLocator());
-      break;
-    case MultiplyOpID:
-      result = ast->new_BinaryOp<MultiplyOp>(V1,V2,bundle,getLocator());
-      break;
-    case DivideOpID:
-      result = ast->new_BinaryOp<DivideOp>(V1,V2,bundle,getLocator());
-      break;
-    case ModuloOpID:
-      result = ast->new_BinaryOp<ModuloOp>(V1,V2,bundle,getLocator());
-      break;
-    case BAndOpID:
-      result = ast->new_BinaryOp<BAndOp>(V1,V2,bundle,getLocator());
-      break;
-    case BOrOpID:
-      result = ast->new_BinaryOp<BOrOp>(V1,V2,bundle,getLocator());
-      break;
-    case BXorOpID:
-      result = ast->new_BinaryOp<BXorOp>(V1,V2,bundle,getLocator());
-      break;
-    case BNorOpID:
-      result = ast->new_BinaryOp<BNorOp>(V1,V2,bundle,getLocator());
-      break;
-    default:
-      hlvmAssert(!"Invalid binary op id for integer");
-      result = ast->new_BinaryOp<AddOp>(V1,V2,bundle,getLocator());
-  }
-  return result;
-}
-
-static Operator*
-genRealUnary(Operator* V1)
-{
-  hlvmAssert(V1->getType()->getID() == RealTypeID);
-  Operator* result = 0;
-  NodeIDs id = NodeIDs(randRange(TruncOpID,FactorialOpID));
-  switch (id) {
-    case TruncOpID:
-      result = ast->new_UnaryOp<TruncOp>(V1,bundle,getLocator());
-      break;
-    case RoundOpID:
-      result = ast->new_UnaryOp<RoundOp>(V1,bundle,getLocator());
-      break;
-    case FloorOpID:
-      result = ast->new_UnaryOp<FloorOp>(V1,bundle,getLocator());
-      break;
-    case CeilingOpID:
-      result = ast->new_UnaryOp<CeilingOp>(V1,bundle,getLocator());
-      break;
-    case LogEOpID:
-      result = ast->new_UnaryOp<LogEOp>(V1,bundle,getLocator());
-      break;
-    case Log2OpID:
-      result = ast->new_UnaryOp<Log2Op>(V1,bundle,getLocator());
-      break;
-    case Log10OpID:
-      result = ast->new_UnaryOp<Log10Op>(V1,bundle,getLocator());
-      break;
-    case SquareRootOpID:
-      result = ast->new_UnaryOp<SquareRootOp>(V1,bundle,getLocator());
-      break;
-    case CubeRootOpID:
-      result = ast->new_UnaryOp<CubeRootOp>(V1,bundle,getLocator());
-      break;
-    case FactorialOpID:
-      result = ast->new_UnaryOp<FactorialOp>(V1,bundle,getLocator());
-      break;
-    default:
-      hlvmAssert(!"Invalid unary op id for integer");
-      result = ast->new_UnaryOp<CeilingOp>(V1,bundle,getLocator());
-  }
-  return result;
-}
-
-static Operator*
-genRealBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(V1->getType()->getID() == RealTypeID);
-  hlvmAssert(V2->getType()->getID() == RealTypeID);
-  Operator* result = 0;
-  NodeIDs id = hlvm::NodeIDs(randRange(PowerOpID, LCMOpID));
-  switch (id) {
-    case PowerOpID:
-      result = ast->new_BinaryOp<PowerOp>(V1,V2,bundle,getLocator());
-      break;
-    case RootOpID:
-      result = ast->new_BinaryOp<RootOp>(V1,V2,bundle,getLocator());
-      break;
-    case GCDOpID:
-      result = ast->new_BinaryOp<GCDOp>(V1,V2,bundle,getLocator());
-      break;
-    case LCMOpID:
-      result = ast->new_BinaryOp<LCMOp>(V1,V2,bundle,getLocator());
-      break;
-    default:
-      hlvmAssert(!"Invalid binary op id for integer");
-      result = ast->new_BinaryOp<PowerOp>(V1,V2,bundle,getLocator());
-  }
-  return result;
-}
-
-static Operator*
-genStringUnary(Operator* V1)
-{
-  hlvmAssert(isa<StringType>(V1->getType()));
-  Operator* str = genValueAsOperator(bundle->getIntrinsicType(stringTy));
-  return ast->new_BinaryOp<StrConcatOp>(V1,str,bundle,getLocator());
-}
-
-static Operator*
-genStringBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(isa<StringType>(V1->getType()));
-  hlvmAssert(isa<StringType>(V2->getType()));
-  ConstantInteger* CI = getConstantInteger(0);
-  GetOp* get = ast->new_GetOp(CI,getLocator());
-  return ast->new_BinaryOp<StrConcatOp>(V1,V2,bundle,getLocator());
-}
-
-static Operator*
-genArrayUnary(Operator* V1)
-{
-  hlvmAssert(isa<ArrayType>(V1->getType()));
-  const ArrayType* Ty = cast<ArrayType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  AutoVarOp* result = ast->new_AutoVarOp("result",Ty,getLocator());
-  blk->addOperand(result);
-  Type* ptr_type = bundle->getPointerTo(Ty->getElementType());
-  ConstantInteger* null = getConstantInteger(0);
-  GetOp* getNull1 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr1 = ast->new_AutoVarOp("ptr1",ptr_type,getLocator());
-  blk->addOperand(ptr1);
-  GetIndexOp* idx1 = 
-    ast->new_GetIndexOp(val1,getNull1,getLocator());
-  idx1->setParent(ptr1);
-  GetOp* getNull2 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr2 = ast->new_AutoVarOp("ptr2",ptr_type,getLocator());
-  blk->addOperand(ptr2);
-  Value* val2 = genValue(Ty);
-  GetOp* getVal2 = ast->new_GetOp(val2,getLocator());
-  GetIndexOp* idx2 = 
-    ast->new_GetIndexOp(getVal2,getNull2,getLocator());
-  idx2->setParent(ptr2);
-  GetOp* getNull3 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr3 = ast->new_AutoVarOp("ptr3",ptr_type,getLocator());
-  blk->addOperand(ptr3);
-  GetIndexOp* idx3 = 
-    ast->new_GetIndexOp(result,getNull3,getLocator());
-  idx3->setParent(ptr3);
-  AutoVarOp* end = ast->new_AutoVarOp("end",ptr_type,getLocator());
-  blk->addOperand(end);
-  GetOp* get1 = ast->new_GetOp(val1,getLocator());
-  LengthOp* len1 = ast->new_UnaryOp<LengthOp>(get1,bundle,getLocator());
-  GetOp* get2 = ast->new_GetOp(val2,getLocator());
-  LengthOp* len2 = ast->new_UnaryOp<LengthOp>(get2,bundle,getLocator());
-  LessThanOp* le = ast->new_BinaryOp<LessThanOp>(len1,len2,bundle,getLocator());
-  GetOp* get3 = ast->new_GetOp(val1,getLocator());
-  LengthOp* len3 = ast->new_UnaryOp<LengthOp>(get3,bundle,getLocator());
-  GetOp* get4 = ast->new_GetOp(val2,getLocator());
-  LengthOp* len4 = ast->new_UnaryOp<LengthOp>(get4,bundle,getLocator());
-  SelectOp* sel = 
-    ast->new_TernaryOp<SelectOp>(le,len3,len4,bundle,getLocator());
-  GetIndexOp* endIndex = 
-    ast->new_GetIndexOp(val1,sel,getLocator());
-  endIndex->setParent(end);
-
-  LessThanOp* cond = 
-    ast->new_BinaryOp<LessThanOp>(ptr1,end,bundle,getLocator());
-  Block* whileBlock = ast->new_Block(getLocator());
-  GetOp* get5 = ast->new_GetOp(ptr1,getLocator());
-  PostIncrOp* incr1 = ast->new_UnaryOp<PostIncrOp>(get5,bundle,getLocator());
-  LoadOp* load1 = ast->new_UnaryOp<LoadOp>(incr1,bundle,getLocator());
-  GetOp* get6 = ast->new_GetOp(ptr2,getLocator());
-  PostIncrOp* incr2 = ast->new_UnaryOp<PostIncrOp>(get6,bundle,getLocator());
-  LoadOp* load2 = ast->new_UnaryOp<LoadOp>(incr2,bundle,getLocator());
-  Operator* expr = genBinaryExpression(load1,load2);
-  GetOp* get7 = ast->new_GetOp(ptr3,getLocator());
-  PostIncrOp* incr3 = ast->new_UnaryOp<PostIncrOp>(get7,bundle,getLocator());
-  StoreOp* store = ast->new_BinaryOp<StoreOp>(incr3,expr,bundle,getLocator());
-  whileBlock->addOperand(store);
-
-  WhileOp* whilst = 
-    ast->new_BinaryOp<WhileOp>(cond,whileBlock,bundle,getLocator());
-  blk->addOperand(whilst);
-  GetOp* get = ast->new_GetOp(result,getLocator());
-  ResultOp* rslt = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(rslt);
-  return blk;
-}
-
-static Operator*
-genArrayBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(isa<ArrayType>(V1->getType()));
-  hlvmAssert(isa<ArrayType>(V2->getType()));
-  hlvmAssert(V1->getType() == V2->getType());
-  const ArrayType* Ty = cast<ArrayType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  AutoVarOp* val2 = ast->new_AutoVarOp("val2",Ty,getLocator());
-  V2->setParent(val2);
-  AutoVarOp* result = ast->new_AutoVarOp("result",Ty,getLocator());
-  blk->addOperand(result);
-  Type* ptr_type = bundle->getPointerTo(Ty->getElementType());
-  ConstantInteger* null = getConstantInteger(0);
-  GetOp* getNull1 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr1 = ast->new_AutoVarOp("ptr1",ptr_type,getLocator());
-  blk->addOperand(ptr1);
-  GetOp* val1get = ast->new_GetOp(val1,getLocator());
-  GetIndexOp* idx1 = 
-    ast->new_GetIndexOp(val1get,getNull1,getLocator());
-  idx1->setParent(ptr1);
-  GetOp* getNull2 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr2 = ast->new_AutoVarOp("ptr2",ptr_type,getLocator());
-  blk->addOperand(ptr2);
-  GetOp* val2get = ast->new_GetOp(val2,getLocator());
-  GetIndexOp* idx2 = 
-    ast->new_GetIndexOp(val2get,getNull2,getLocator());
-  idx2->setParent(ptr2);
-  GetOp* getNull3 = ast->new_GetOp(null,getLocator());
-  AutoVarOp* ptr3 = ast->new_AutoVarOp("ptr3",ptr_type,getLocator());
-  blk->addOperand(ptr3);
-  GetIndexOp* idx3 = 
-    ast->new_GetIndexOp(result,getNull3,getLocator());
-  idx3->setParent(ptr3);
-  AutoVarOp* end = ast->new_AutoVarOp("end",ptr_type,getLocator());
-  blk->addOperand(end);
-  GetOp* get1 = ast->new_GetOp(val1,getLocator());
-  LengthOp* len1 = ast->new_UnaryOp<LengthOp>(get1,bundle,getLocator());
-  GetOp* get2 = ast->new_GetOp(val2,getLocator());
-  LengthOp* len2 = ast->new_UnaryOp<LengthOp>(val2,bundle,getLocator());
-  LessThanOp* le = ast->new_BinaryOp<LessThanOp>(len1,len2,bundle,getLocator());
-  GetOp* get3 = ast->new_GetOp(val1,getLocator());
-  LengthOp* len3 = ast->new_UnaryOp<LengthOp>(get3,bundle,getLocator());
-  GetOp* get4 = ast->new_GetOp(val2,getLocator());
-  LengthOp* len4 = ast->new_UnaryOp<LengthOp>(get4,bundle,getLocator());
-  SelectOp* sel = 
-    ast->new_TernaryOp<SelectOp>(le,len3,len4,bundle,getLocator());
-  GetIndexOp* endIndex = 
-    ast->new_GetIndexOp(ast->new_GetOp(val1,getLocator()),sel,getLocator());
-  endIndex->setParent(end);
-
-  LessThanOp* cond = 
-    ast->new_BinaryOp<LessThanOp>(ptr1,end,bundle,getLocator());
-  Block* whileBlock = ast->new_Block(getLocator());
-  GetOp* get5 = ast->new_GetOp(ptr1,getLocator());
-  PostIncrOp* incr1 = ast->new_UnaryOp<PostIncrOp>(get5,bundle,getLocator());
-  LoadOp* load1 = ast->new_UnaryOp<LoadOp>(incr1,bundle,getLocator());
-  GetOp* get6 = ast->new_GetOp(ptr2,getLocator());
-  PostIncrOp* incr2 = ast->new_UnaryOp<PostIncrOp>(get6,bundle,getLocator());
-  LoadOp* load2 = ast->new_UnaryOp<LoadOp>(incr2,bundle,getLocator());
-  Operator* expr = genBinaryExpression(load1,load2);
-  GetOp* get7 = ast->new_GetOp(ptr3,getLocator());
-  PostIncrOp* incr3 = ast->new_UnaryOp<PostIncrOp>(get7,bundle,getLocator());
-  StoreOp* store = ast->new_BinaryOp<StoreOp>(incr3,expr,bundle,getLocator());
-  whileBlock->addOperand(store);
-
-  WhileOp* whilst = 
-    ast->new_BinaryOp<WhileOp>(cond,whileBlock,bundle,getLocator());
-  blk->addOperand(whilst);
-  GetOp* get = ast->new_GetOp(result,getLocator());
-  ResultOp* rslt = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(rslt);
-  return blk;
-}
-
-static Operator*
-genVectorUnary(Operator* V1)
-{
-  hlvmAssert(isa<VectorType>(V1->getType()));
-  const VectorType* Ty = cast<VectorType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* autovar = ast->new_AutoVarOp("result",Ty,getLocator());
-  autovar->setParent(blk);
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  for (unsigned i = 0; i < Ty->getSize(); ++i) {
-    ConstantInteger* cst = getConstantInteger(i);
-    GetOp* index = ast->new_GetOp(cst,getLocator());
-    GetIndexOp* elem = 
-      ast->new_GetIndexOp(ast->new_GetOp(val1,getLocator()),index,getLocator());
-    LoadOp* load1 = ast->new_UnaryOp<LoadOp>(elem,bundle,getLocator());
-    Operator* expr = genUnaryExpression(load1);
-    GetOp* get = ast->new_GetOp(autovar,getLocator());
-    GetIndexOp* elem2 =
-      ast->new_GetIndexOp(get,index,getLocator());
-    StoreOp* store = 
-      ast->new_BinaryOp<StoreOp>(elem2,expr,bundle,getLocator());
-    blk->addOperand(store);
-  }
-  GetOp* get = ast->new_GetOp(autovar,getLocator());
-  ResultOp* result = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(result);
-  return blk;
-}
-
-static Operator*
-genVectorBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(isa<VectorType>(V1->getType()));
-  hlvmAssert(isa<VectorType>(V2->getType()));
-  hlvmAssert(V1->getType() == V2->getType());
-  const VectorType* Ty = llvm::cast<VectorType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* autovar = ast->new_AutoVarOp("result",Ty,getLocator());
-  autovar->setParent(blk);
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  AutoVarOp* val2 = ast->new_AutoVarOp("val2",Ty,getLocator());
-  V2->setParent(val2);
-  for (unsigned i = 0; i < Ty->getSize(); ++i)
-  {
-    ConstantInteger* cst = getConstantInteger(i);
-    GetOp* index = ast->new_GetOp(cst,getLocator());
-    GetIndexOp* elem1 = 
-      ast->new_GetIndexOp(ast->new_GetOp(val1,getLocator()),index,getLocator());
-    LoadOp* load1 = ast->new_UnaryOp<LoadOp>(elem1,bundle,getLocator());
-    GetIndexOp* elem2 = 
-      ast->new_GetIndexOp(val2,index,getLocator());
-    LoadOp* load2 = ast->new_UnaryOp<LoadOp>(elem1,bundle,getLocator());
-    Operator* expr = genBinaryExpression(load1,load2);
-    GetOp* get = ast->new_GetOp(autovar,getLocator());
-    GetIndexOp* elem3 = 
-      ast->new_GetIndexOp(get,index,getLocator());
-    StoreOp* store = 
-      ast->new_BinaryOp<StoreOp>(elem3,expr,bundle,getLocator());
-    blk->addOperand(store);
-  }
-  GetOp* get = ast->new_GetOp(autovar,getLocator());
-  ResultOp* result = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(result);
-  return blk;
-}
-
-static Operator*
-genStructureUnary(Operator* V1)
-{
-  hlvmAssert(V1->getType()->getID() == StructureTypeID);
-  const StructureType* Ty = llvm::cast<StructureType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* autovar = ast->new_AutoVarOp("result",Ty,getLocator());
-  autovar->setParent(blk);
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  for (StructureType::const_iterator I = Ty->begin(), E = Ty->end(); 
-       I != E; ++I)
-  {
-    const std::string& fldName = (*I)->getName();
-    GetFieldOp* getField1 = 
-      ast->new_GetFieldOp(val1,fldName,getLocator());
-    LoadOp* load1 = ast->new_UnaryOp<LoadOp>(getField1,bundle,getLocator());
-    Operator* expr = genUnaryExpression(load1);
-    GetOp* get = ast->new_GetOp(autovar,getLocator());
-    GetFieldOp* getField3 =
-      ast->new_GetFieldOp(get,fldName,getLocator());
-    StoreOp* store = 
-      ast->new_BinaryOp<StoreOp>(getField3,expr,bundle,getLocator());
-    blk->addOperand(store);
-  }
-  GetOp* get = ast->new_GetOp(autovar,getLocator());
-  ResultOp* result = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(result);
-  return blk;
-}
-
-static Operator*
-genStructureBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(V1->getType()->getID() == StructureTypeID);
-  hlvmAssert(V2->getType()->getID() == StructureTypeID);
-  hlvmAssert(V1->getType() == V2->getType());
-  const StructureType* Ty = llvm::cast<StructureType>(V1->getType());
-  Block* blk = ast->new_Block(getLocator());
-  AutoVarOp* autovar = ast->new_AutoVarOp("result",Ty,getLocator());
-  autovar->setParent(blk);
-  AutoVarOp* val1 = ast->new_AutoVarOp("val1",Ty,getLocator());
-  V1->setParent(val1);
-  AutoVarOp* val2 = ast->new_AutoVarOp("val2",Ty,getLocator());
-  V2->setParent(val2);
-  for (StructureType::const_iterator I = Ty->begin(), E = Ty->end(); 
-       I != E; ++I)
-  {
-    GetFieldOp* getField1 = 
-      ast->new_GetFieldOp(val1,(*I)->getName(),getLocator());
-    LoadOp* load1 = ast->new_UnaryOp<LoadOp>(getField1,bundle,getLocator());
-    GetFieldOp* getField2 = 
-      ast->new_GetFieldOp(val2,(*I)->getName(),getLocator());
-    LoadOp* load2 = ast->new_UnaryOp<LoadOp>(getField2,bundle,getLocator());
-    Operator* expr = genBinaryExpression(load1,load2);
-    GetOp* get = ast->new_GetOp(autovar,getLocator());
-    GetFieldOp* getField3 = 
-      ast->new_GetFieldOp(get,(*I)->getName(),getLocator());
-    StoreOp* store = 
-      ast->new_BinaryOp<StoreOp>(getField3,expr,bundle,getLocator());
-    blk->addOperand(store);
-  }
-  GetOp* get = ast->new_GetOp(autovar,getLocator());
-  ResultOp* result = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  blk->addOperand(result);
-  return blk;
-}
-
-static Operator*
-genPointerUnary(Operator* V1)
-{
-  hlvmAssert(V1->getType()->getID() == PointerTypeID);
-  LoadOp* load = ast->new_UnaryOp<LoadOp>(V1,bundle,getLocator());
-  return genUnaryExpression(load);
-}
-
-static Operator*
-genPointerBinary(Operator* V1, Operator* V2)
-{
-  hlvmAssert(V1->getType()->getID() == PointerTypeID);
-  hlvmAssert(V2->getType()->getID() == PointerTypeID);
-  hlvmAssert(V1->getType() == V2->getType());
-  LoadOp* load1 = ast->new_UnaryOp<LoadOp>(V1,bundle,getLocator());
-  LoadOp* load2 = ast->new_UnaryOp<LoadOp>(V2,bundle,getLocator());
-  return genBinaryExpression(load1,load2);
-}
-
-static Operator*
-genUnaryExpression(Operator* Val)
-{
-  switch(Val->getType()->getID()) {
-    case BooleanTypeID:      return genBooleanUnary(Val); break;
-    case CharacterTypeID:    return genCharacterUnary(Val); break;
-    case AnyTypeID:         
-    case BufferTypeID:
-    case StreamTypeID:
-    case TextTypeID:
-    case SignatureTypeID:
-    case RationalTypeID:
-      // FALL THROUGH: Not Implemented
-    case RangeTypeID:
-    case IntegerTypeID:
-    case EnumerationTypeID:  return genIntegerUnary(Val); break;
-    case RealTypeID:         return genRealUnary(Val); break;
-    case StringTypeID:       return genStringUnary(Val); break;
-    case PointerTypeID:      return genPointerUnary(Val); break;
-    case ArrayTypeID:        return genArrayUnary(Val); break;
-    case VectorTypeID:       return genVectorUnary(Val); break;
-    case OpaqueTypeID:
-    case ContinuationTypeID:
-    case StructureTypeID:    return genStructureUnary(Val); break;
-    default:
-      hlvmDeadCode("Invalid type?");
-      return 0;
-      break;
-  }
-}
-
-static Operator*
-genBinaryExpression(Operator* V1, Operator*V2)
-{
-  switch (V1->getType()->getID()) {
-    case BooleanTypeID:     return genBooleanBinary(V1,V2); break;
-    case CharacterTypeID:   return genCharacterBinary(V1,V2); break;
-    case AnyTypeID:         
-    case BufferTypeID:
-    case StreamTypeID:
-    case TextTypeID:
-    case SignatureTypeID:
-    case RationalTypeID:
-      // FALL THROUGH: Not Implemented
-    case RangeTypeID:
-    case IntegerTypeID:
-    case EnumerationTypeID: return genIntegerBinary(V1,V2);break;
-    case RealTypeID:        return genRealBinary(V1,V2); break;
-    case StringTypeID:      return  genStringBinary(V1,V2); break;
-    case PointerTypeID:     return  genPointerBinary(V1,V2); break;
-    case ArrayTypeID:       return  genArrayBinary(V1,V2); break;
-    case VectorTypeID:      return  genVectorBinary(V1,V2); break;
-    case OpaqueTypeID:
-    case ContinuationTypeID:
-    case StructureTypeID:   return  genStructureBinary(V1,V2);break;
-    default:                hlvmDeadCode("Invalid Type");
-                            return 0;
-  }
-}
-
-// Forward declare
-static Function* genFunction(const Type* resultType, int depth);
-
-static Operator*
-genExpression(Operator* Val, int depth)
-{
-  if (depth > 0) {
-    // Generate a function
-    Function* F = genFunction(Val->getType(), depth-1);
-    // Generate a call to that function
-    return genCallTo(F);
-  }
-
-  // 50% Randomly generate a unary expression
-  if (5 <= randRange(1,10))
-    return genUnaryExpression(Val);
-
-  // Otherwise generate a binary expression
-  return genBinaryExpression(Val,genValueAsOperator(Val->getType()));
-}
-
-static void
-genMergeExpression(AutoVarOp* op1, Operator* op2, Block* B)
-{
-  // Assert precondition
-  hlvmAssert(op1->getType() == op2->getType());
-
-  // Get the type of the thing to be merged
-  const Type* Ty = op2->getType();
-
-  // If its just a numeric type, simply add the merged value into the autovar
-  if (Ty->isNumericType()) {
-    Operator* get1 = ast->new_GetOp(op1,getLocator());
-    Operator* avload = ast->new_UnaryOp<LoadOp>(get1,bundle,getLocator());
-    Operator* add = ast->new_BinaryOp<AddOp>(avload,op2,bundle,getLocator());
-    Operator* get2 = ast->new_GetOp(op1,getLocator());
-    Operator* store = ast->new_BinaryOp<StoreOp>(get2,add,bundle,getLocator());
-    store->setParent(B);
-    return;
-  }
-
-  // If its a VectorType or ArrayType then add all the elements, if possible
-  if (const UniformContainerType* UCT = 
-        llvm::dyn_cast<UniformContainerType>(op2->getType())) {
-    const Type* elemType = UCT->getElementType();
-    if (elemType->isNumericType()) {
-      Operator* get1 = ast->new_GetOp(op1,getLocator());
-      Operator* avload = ast->new_UnaryOp<LoadOp>(get1,bundle,getLocator());
-      Operator* add = ast->new_BinaryOp<AddOp>(avload,op2,bundle,getLocator());
-      Operator* get2 = ast->new_GetOp(op1,getLocator());
-      Operator* store =ast->new_BinaryOp<StoreOp>(get2,add,bundle,getLocator());
-      store->setParent(B);
-      return;
-    } 
-  }
-
-  // For everything else, just store the result
-  Operator* get = ast->new_GetOp(op1,getLocator());
-  Operator* op = ast->new_BinaryOp<StoreOp>(get,op2,bundle,getLocator());
-  op->setParent(B);
-  return;
-}
-
-static Block*
-genFunctionBody(Function* F, int depth)
-{
-  // Create the function body block and initialize it
-  Block* B = ast->new_Block(getLocator());
-  B->setParent(F);
-  B->setLabel(F->getName() + "_body");
-
-  // Create an autovar for the function result
-  AutoVarOp* result = 
-    ast->new_AutoVarOp(F->getName() + "_result",
-                       F->getResultType(),getLocator());
-  result->setParent(B);
-
-  // Generate "Size" expressions
-  for (unsigned i = 0; i < Size; i++) {
-    // Get a value for the basis of the expression
-    Operator* theValue = 0;
-    if (F->size() > 0) {
-      // Pick an argument randomly to use in the expression
-      unsigned argNum = randRange(0,F->size()-1);
-      Argument* arg = F->getArgument(argNum);
-      theValue = ast->new_GetOp(arg,getLocator());
-    } else {
-      theValue = genValueAsOperator(F->getResultType());
-    }
-
-    // Generate the expression
-    Operator* expr = genExpression(theValue,depth);
-
-    // Merge the current value of the autovar result with the generated
-    // expression.
-    genMergeExpression(result,expr,B);
-  }
-  
-  // Create the block result.
-  GetOp* get = ast->new_GetOp(result,getLocator());
-  ResultOp* rslt = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  rslt->setParent(B);
-
-  // Done, Return the new block
-  return B;
-}
-
-static Function*
-genFunction(const Type* resultType, int depth)
-{
-  // Get the function name
-  Locator* loc = getLocator();
-  std::string name = "func_" + utostr(line);
-
-  // Generate a random number of arguments
-  unsigned numArgs = int(randRange(0,int(Complexity)));
-
-  // Get the signature
-  std::string sigName = name + "_type";
-  SignatureType* sig = ast->new_SignatureType(sigName,bundle,resultType,loc);
-  if (randRange(0,Complexity) > int(Complexity/3))
-    sig->setIsVarArgs(true);
-  for (unsigned i = 0; i < numArgs; ++i )
-  {
-    std::string name = "arg_" + utostr(i+1);
-    Parameter* param = ast->new_Parameter(name,resultType,loc);
-    sig->addParameter(param);
-  }
-  sig->setParent(bundle);
-
-  // Determine the kind of linkage for this function
-  LinkageKinds LK = LinkageKinds(randRange(ExternalLinkage,InternalLinkage));
-  if (LK == AppendingLinkage)
-    LK = InternalLinkage;
-
-  // Create the function and set its linkage kind
-  Function* F = ast->new_Function(name,bundle,sig,loc);
-  F->setLinkageKind(LK);
-
-  // Create the body of the function
-  Block* blk = genFunctionBody(F,depth-1);
-
-  // Insert the return operator
-  ReturnOp* ret = ast->new_NilaryOp<ReturnOp>(bundle,getLocator());
-  ret->setParent(blk);
-  
-  // Install the function in the value map
-  values[sig].push_back(F);
-
-  // Make the function belong to the bundle
-  F->setParent(bundle);
-
-  return F;
-}
-
-AST* 
-GenerateTestCase(const std::string& pubid, const std::string& bundleName)
-{
-  // Seed the random number generator
-  srandom(Seed);
-
-  // Create the top level node of the tree
-  ast = AST::create();
-  ast->setPublicID(pubid);
-  ast->setSystemID(bundleName);
-
-  // Get a URI for this tree
-  uri = ast->new_URI(pubid);
-  
-  // Create a bundle to place the program in.
-  bundle = ast->new_Bundle(bundleName,getLocator());
-
-  // Create a program node for the generated test program
-  program = ast->new_Program(bundleName,bundle,getLocator());
-  const SignatureType* SigTy = program->getSignature();
-
-  // Create the function body block and initialize it
-  Block* B = ast->new_Block(getLocator());
-  B->setParent(program);
-  B->setLabel(program->getName() + "_body");
-
-  // Create an autovar for the function result
-  AutoVarOp* result = 
-    ast->new_AutoVarOp(program->getName() + "_result",
-                       program->getResultType(),getLocator());
-  result->setParent(B);
-
-  // Generate calls to "Size" random functions
-  for (unsigned i = 0; i < Size; i++) {
-    // Generate a function to a random type
-    Type* Ty = genType();
-    Function* F = genFunction(Ty, Complexity);
-
-    // Generate a call to that function
-    CallOp* call = genCallTo(F);
-
-    // Coalesce the result of the random function into the autovar we
-    // created for the result of this block.
-    if (Ty->isNumericType()) {
-      Operator* cvt = 
-        ast->new_ConvertOp(call,program->getResultType(),getLocator());
-      genMergeExpression(result,cvt,B);
-    }
-  }
-  
-  // Create the block result.
-  GetOp* get = ast->new_GetOp(result,getLocator());
-  ResultOp* rslt = ast->new_UnaryOp<ResultOp>(get,bundle,getLocator());
-  rslt->setParent(B);
-
-  // Insert the return instruction in that block
-  ReturnOp* ret = ast->new_NilaryOp<ReturnOp>(bundle,getLocator());
-  ret->setParent(B);
-
-  // Make the program a child of the bundle last so it is output last.
-  program->setParent(bundle);
-
-  // Done.
-  return ast;
-}
diff --git a/hlvm/tools/hlvm-gentestcase/SConscript b/hlvm/tools/hlvm-gentestcase/SConscript
deleted file mode 100644
index 03df7df..0000000
--- a/hlvm/tools/hlvm-gentestcase/SConscript
+++ /dev/null
@@ -1,40 +0,0 @@
-#===-- Build Script For tools/hlvm-gentestcase ----------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-prog = env.Program('hlvm-gentestcase', hlvm.GetAllCXXFiles(env),
- LIBS=[
-   'HLVMWriter',
-   'HLVMPass',
-   'HLVMAST',
-   'HLVMBase',
-   'xml2',
-   'LLVMSupport',
-   'LLVMSystem',
-   'aprutil-1',
-   'apr-1',
-   'stdc++'
-  ]
-)
-hlvm.InstallProgram(env,prog)
-
diff --git a/hlvm/tools/hlvm-gentestcase/hlvm-gentestcase.cpp b/hlvm/tools/hlvm-gentestcase/hlvm-gentestcase.cpp
deleted file mode 100644
index 2994d67..0000000
--- a/hlvm/tools/hlvm-gentestcase/hlvm-gentestcase.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//===-- hlvm-gentestcase main program ---------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm-gentestcase/hlvm-gentestcase.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the main program for the hlvm-gentestcase executable
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Memory.h>
-#include <hlvm/Writer/XMLWriter.h>
-#include <hlvm/Pass/Pass.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-#include <fstream>
-#include <iostream>
-
-using namespace llvm;
-using namespace hlvm;
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"),
-               cl::value_desc("filename"));
-
-static cl::opt<std::string>
-URL("url", cl::desc("Specify URL for compilation unit"),
-    cl::value_desc("url"));
-
-static cl::opt<std::string>
-BundleName("bundle", cl::desc("Specify bundle name"),
-    cl::value_desc("name"));
-
-static cl::opt<bool>
-NoValidate("no-validate",cl::desc("Disable validation of generated code"),
-    cl::init(false));
-
-extern AST* GenerateTestCase(const std::string& id, const std::string& bname);
-
-int main(int argc, char**argv) 
-{
-  try {
-    initialize(argc,argv);
-    cl::ParseCommandLineOptions(argc, argv, 
-      "hlvm-gentestcase - HLVM test case generator\n");
-
-    std::ostream *Out = &std::cout;  // Default to printing to stdout.
-
-    if (BundleName.empty())
-      BundleName = "generatedTestCase";
-
-    if (URL.empty())
-      URL = std::string("http://hlvm.org/src/test/generated/") + 
-              BundleName + ".hlx";
-
-    if (OutputFilename.empty())
-      OutputFilename = BundleName + ".hlx";
-
-    if (OutputFilename != "-") { // Not stdout?
-      Out = new std::ofstream(OutputFilename.c_str());
-      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-    }
-
-    if (!Out->good()) {
-      std::cerr << argv[0] << ": error opening " << OutputFilename
-                << ": sending to stdout instead!\n";
-      Out = &std::cout;
-    }
-
-    AST* tree = GenerateTestCase(URL,BundleName);
-    if (!NoValidate) {
-      if (!validate(tree)) {
-        std::cerr << argv[0] << ": Generated test case did not validate.\n";
-      }
-    }
-    XMLWriter* wrtr = XMLWriter::create(OutputFilename.c_str());
-    wrtr->write(tree);
-    delete wrtr;
-
-    if (Out != &std::cout) {
-      static_cast<std::ofstream*>(Out)->close();
-      delete Out;
-    }
-    return 0;
-  } catch (const std::string& msg) {
-    std::cerr << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  return 1;
-}
diff --git a/hlvm/tools/hlvm-xml2xml/SConscript b/hlvm/tools/hlvm-xml2xml/SConscript
deleted file mode 100644
index 8637e6d..0000000
--- a/hlvm/tools/hlvm-xml2xml/SConscript
+++ /dev/null
@@ -1,41 +0,0 @@
-#===-- Build Script For tools/hlvm-xml2xml --------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-prog = env.Program('hlvm-xml2xml', hlvm.GetAllCXXFiles(env),
- LIBS=[
-   'HLVMReader',
-   'HLVMWriter',
-   'HLVMPass',
-   'HLVMAST',
-   'HLVMBase',
-   'xml2',
-   'LLVMSupport',
-   'LLVMSystem',
-   'aprutil-1',
-   'apr-1',
-   'stdc++'
-  ]
-)
-hlvm.InstallProgram(env,prog)
-
diff --git a/hlvm/tools/hlvm-xml2xml/hlvm-xml2xml.cpp b/hlvm/tools/hlvm-xml2xml/hlvm-xml2xml.cpp
deleted file mode 100644
index a7d384a..0000000
--- a/hlvm/tools/hlvm-xml2xml/hlvm-xml2xml.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//===-- tools/hlvm-xml2xml/hlvm-xml2xml.cpp - Main Program ------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm-xml2xml/hlvm-xml2xml.cpp
-/// @author Reid Spencer <reid@hlvm.org> (original author)
-/// @date 2006/05/04
-/// @since 0.1.0
-/// @brief Implements the main program for the hlvm-xml2xml executable
-//===----------------------------------------------------------------------===//
-
-#include <hlvm/Base/Memory.h>
-#include <hlvm/Reader/XMLReader.h>
-#include <hlvm/Writer/XMLWriter.h>
-#include <hlvm/Pass/Pass.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-#include <fstream>
-#include <iostream>
-
-using namespace llvm;
-using namespace hlvm;
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input XML>"), cl::init("-"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"),
-               cl::value_desc("filename"));
-
-int main(int argc, char**argv) 
-{
-  try {
-    initialize(argc,argv);
-    cl::ParseCommandLineOptions(argc, argv, 
-      "hlvm-xml2xml XML->AST->XML translator\n");
-
-    std::ostream *Out = &std::cout;  // Default to printing to stdout.
-
-    if (OutputFilename != "") {   // Specified an output filename?
-      if (OutputFilename != "-") { // Not stdout?
-        Out = new std::ofstream(OutputFilename.c_str());
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-      }
-    } else {
-      if (InputFilename == "-") {
-        OutputFilename = "-";
-      } else {
-        std::string IFN = InputFilename;
-        OutputFilename = InputFilename + ".out";
-
-        Out = new std::ofstream(OutputFilename.c_str());
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-      }
-    }
-
-    if (!Out->good()) {
-      std::cerr << argv[0] << ": error opening " << OutputFilename
-                << ": sending to stdout instead!\n";
-      Out = &std::cout;
-    }
-
-    if (InputFilename == "-" ) {
-      std::cerr << "Not supported yet: input from stdin\n";
-      return 2;
-    } else {
-      llvm::sys::Path path(InputFilename);
-      if (!path.canRead()) {
-        std::cerr << argv[0] << ": can't read input file: " << InputFilename
-                  << "\n";
-        return 2;
-      }
-    }
-
-    XMLReader* rdr = XMLReader::create(InputFilename);
-    XMLWriter* wrtr = XMLWriter::create(OutputFilename.c_str());
-    if (!rdr->read())
-      return 3;
-    AST* node = rdr->get();
-    if (!node)
-      return 4;
-    if (!validate(node))
-      return 5;
-    wrtr->write(node);
-    delete rdr;
-    delete wrtr;
-
-    if (Out != &std::cout) {
-      static_cast<std::ofstream*>(Out)->close();
-      delete Out;
-    }
-    return 0;
-  } catch (const std::string& msg) {
-    std::cerr << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  return 1;
-}
diff --git a/hlvm/tools/hlvm/SConscript b/hlvm/tools/hlvm/SConscript
deleted file mode 100644
index f7d5f19..0000000
--- a/hlvm/tools/hlvm/SConscript
+++ /dev/null
@@ -1,38 +0,0 @@
-#===-- Build Script For test ----------------------------------*- Python -*-===#
-#
-#                      High Level Virtual Machine (HLVM)
-#
-# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-#
-# This software is free software; you can redistribute it and/or modify it 
-# under the terms of the GNU Lesser General Public License as published by 
-# the Free Software Foundation; either version 2.1 of the License, or (at 
-# your option) any later version.
-#
-# This software is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-# more details.
-#
-# You should have received a copy of the GNU Lesser General Public License 
-# along with this library in the file named LICENSE.txt; if not, write to the 
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-# MA 02110-1301 USA
-#
-#===----------------------------------------------------------------------===#
-from build import hlvm
-Import('env')
-hlvm.GetBytecode(env)
-env.BytecodeArchive('hlvm.bca',hlvm.GetAllCXXFiles(env))
-prog = env.Program('hlvm', hlvm.GetAllCXXFiles(env),
-  LIBS=[
-    'HLVMRuntime',
-    'HLVMBase',
-    'LLVMSupport',
-    'LLVMSystem',
-    'apr-1',
-    'aprutil-1',
-    'stdc++'
-  ],
-)
-hlvm.InstallProgram(env,prog)
diff --git a/hlvm/tools/hlvm/hlvm.cpp b/hlvm/tools/hlvm/hlvm.cpp
deleted file mode 100644
index 738da6d..0000000
--- a/hlvm/tools/hlvm/hlvm.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- HLVM Main Program ---------------------------------------*- C++ -*-===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
-//===----------------------------------------------------------------------===//
-/// @file tools/hlvm/hlvm.cpp
-/// @author Reid Spencer <rspencer@reidspencer.com> (original author)
-/// @date 2006/05/23
-/// @since 0.1.0
-/// @brief Implements the main program for the HLVM Virtual Machine
-//===----------------------------------------------------------------------===//
-
-#include <iostream>
-#include <hlvm/Runtime/Main.h>
-
-/// Yup, the HLVM virtual machine is just a one line program. We do this so that
-/// The runtime library is completely self-contained and can be invoked from
-/// within a larger context.
-int main(int argc, char**argv) 
-{
-  return hlvm_runtime_main(argc,argv);
-}
diff --git a/hlvm/utils/bin/mkFuncs.pm b/hlvm/utils/bin/mkFuncs.pm
deleted file mode 100755
index f234e5d..0000000
--- a/hlvm/utils/bin/mkFuncs.pm
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/perl
-
-use FindBin;
-
-sub get_hlvm_dir 
-{
-  my $hlvmdir = $FindBin::Bin;
-  my $index = rindex($hlvmdir, "/utils/bin");
-  return substr($hlvmdir,0,$index);
-}
-
-sub process_file
-{
-  my $preamble = shift(@_);
-  my $input  = shift(@_);
-  my $output = shift(@_);
-  my $line   = "";
-  my $hlvmdir = get_hlvm_dir();
-
-  chomp($MODULE_PATH = `pwd`);
-  $MODULE_PATH = substr($MODULE_PATH,rindex($MODULE_PATH,"/hlvm/")+6); 
-  $MODULE = $MODULE_PATH;
-  $MODULE =~ s|\/|_|g;
-
-  ($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
-
-  local $YEAR = $year + 1900;
-  local $DATE = sprintf("%4d/%02d/%02d", $YEAR, $mon + 1, $mday );
-  local $TIME = sprintf("%02d:%02d:%02d", $hour, $min, $sec);
-
-  local $AUTHOR = $ENV{XPS_AUTHOR};
-  if ( length($AUTHOR) < 5 )
-  {
-      $AUTHOR = $ENV{AUTHOR};
-      if (length($AUTHOR) < 5)
-      {
-          $AUTHOR = getpwuid($<);
-          if (length($AUTHOR) < 1 )
-          {
-              $AUTHOR = $ENV{USER};
-              if (length($AUTHOR) < 1)
-              {
-                  $AUTHOR = $ENV{LOGNAME};
-                  if (length($AUTHOR) < 1)
-                  {
-                      $AUTHOR = "Author Unknown";
-                  }
-              }
-          }
-      }
-  }
-
-  local $NAMESPACE 	= "HLVM_$MODULE";
-  local $module_header 	= ucfirst($MODULE);
-  local $MODULE_INCLUDE = "<hlvm/$MODULE/${module_header}.h>";
-  local $CLASS_INCLUDE	= "<hlvm/$MODULE/${CLASS}.h>";
-  local $NAMESPACE_UC 	= uc( $NAMESPACE );
-  local $CLASS_UC 	= uc( $CLASS );
-  local $HEADER_UC   	= uc( $HEADER );
-
-  open ( OUT,"> $output" ) || die ("Couldn't open $output for writing\n");
-
-  for $infile ( $preamble , $input )
-  {
-      open ( IN, "< $infile" ) || die ("Couldn't open $infile for reading\n");
-
-      while ( defined($line = <IN>) )
-      {
-          $line =~ s/\%ID\%/\$Id\$/g;
-          $line =~ s/\%LOG\%/\$Log\$/g;
-          $line =~ s/\%AUTHOR%/$AUTHOR/g;
-          $line =~ s/\%USER%/$USER/g;
-          $line =~ s/\%DATE%/$DATE/g;
-          $line =~ s/\%TIME%/$TIME/g;
-          $line =~ s/\%YEAR%/$YEAR/g;
-          $line =~ s/\%MODULE%/$MODULE/g;
-          $line =~ s/\%NAMESPACE\%/$NAMESPACE/g;
-          $line =~ s/\%NAMESPACE_UC\%/$NAMESPACE_UC/g;
-          $line =~ s/\%CLASS\%/$CLASS/g;
-          $line =~ s/\%CLASS_UC\%/$CLASS_UC/g;
-          $line =~ s/\%MODULE_PATH\%/$MODULE_PATH/g;
-          $line =~ s/\%MODULE\%/$MODULE/g;
-          $line =~ s/\%HEADER\%/$HEADER/g;
-          $line =~ s/\%HEADER_UC\%/$HEADER_UC/g;
-          $line =~ s/\%STYLE\%/$STYLE/g;
-          $line =~ s/\%CLASS_INCLUDE\%/$CLASS_INCLUDE/g;
-          $line =~ s/\%MODULE_INCLUDE\%/$MODULE_INCLUDE/g;
-          $line =~ s/\%TOKEN_LIST\%/$TOKEN_LIST/g;
-          $line =~ s/\%SCHEMA_NAME\%/$SCHEMA_NAME/g;
-
-          print OUT $line || die ("Couldn't write to OUT file\n");
-      }
-      close IN;
-  };
-
-  close OUT;
-}
-
-1;
diff --git a/hlvm/utils/bin/mkTokenizer b/hlvm/utils/bin/mkTokenizer
deleted file mode 100755
index b4b38e7..0000000
--- a/hlvm/utils/bin/mkTokenizer
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (C) 2002 eXtensible Systems, Inc. All Rights Reserved
-#
-# This program is open source software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at your
-# option) any later version. You should have received a copy of the GPL in a
-# file named COPYING that was included with this program; if not, you can 
-# obtain a copy of the license through the Internet at http://www.fsf.org/
-# 
-# This program is distributed in the hope that it will be useful, but 
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
-# for more details.
-#-------------------------------------------------------------------------------
-#
-# This script will extract the identifier names from a RelaxNG schema. The
-# identifier names form the token set that act as terminals in the grammar. We
-# make parsing efficient by generating a perfect hash function with gperf from
-# the set of token identifiers.
-#
-# Identifier names are X in the following schema constructs:
-#    <element name="X">
-#    <attribute name="X">
-#    <value>X</value>
-#
-# Usage: 
-#   mkTokenizer -f <schema_file> <hlvm_src_root>
-#
-use FindBin;
-use lib $FindBin::Bin;
-use mkFuncs;
-use File::Copy;
-
-$SchemaFile = shift;
-if ("$SchemaFile" eq "-f") {
-  $Force = 1;
-  $SchemaFile = shift;
-}
-die "USAGE: $0 <schema_file> <hlvm_src_root>\n" if -z "$SchemaFile";
-$HLVM_root = get_hlvm_dir();
-die "USAGE: $0 <schema_file> <hlvm_src_root>\n" if -z "$HLVM_root";
-
-$Schema = $SchemaFile;
-$Schema =~ s/\.rng//;
-$Schema = substr($Schema,rindex($Schema,'/')+1);
-$PreambleFile = $HLVM_root . "/utils/tmplt/Preamble_Code";
-$HeaderTemplate = $HLVM_root . "/utils/tmplt/Tokenizer_Template.h";
-$HeaderFile = $Schema . "Tokenizer.h";
-$SourceTemplate = $HLVM_root . "/utils/tmplt/Tokenizer_Template.cpp";     
-$SourceFile = $Schema . "Tokenizer.cpp";
-$TokenHashClass = $Schema . "TokenHash";
-$TokenHashFile = $TokenHashClass . ".i";
-
-# Check the validity of the files we use/create
-die "Invalid schema file name" if ! -e "$SchemaFile";
-die "ERROR: '$PreambleFile' doesn't exist" if ! -e "$PreambleFile";
-if (!$Force) {
-  die "ERROR: '$HeaderFile' exists" if -e "$HeaderFile";
-  die "ERROR: '$SourceFile' exists" if -e "$SourceFile";
-  die "ERROR: '$TokenHashFile' exists" if -e "$TokenHashFile";
-}
-
-# Get the plain old schema name from the file name
-
-sub sortUnique
-{
-  my @list = @_;
-  my %set;
-  my @result = ();
-  for ($i = 0; $i <= $#_; $i++) 
-  {
-    if (!exists $set{$list[$i]} )
-    {
-      $set{$_[$i]} = 1;
-      push @result, $_[$i];
-    }
-  }
-  return sort(@result);
-}
-
-sub getTokens
-{
-  my $fname = shift(@_);
-  my $stage = 0;
-  my @tokens;
-
-  open( SCHEMA, "< $fname") || die "Couldn't open $fname for reading.\n";
-
-  while ( defined($line = <SCHEMA>) )
-  {
-    while ($line =~ /<element[^>]*name="([^"]*)"/g) {
-      push @tokens,$1;
-    }
-    while ($line =~ /<attribute[^>]*name="([^"]*)"/g) {
-      push @tokens,$1;
-    }
-    while ($line =~ /<value>\s*([^<\s]*)/g) {
-      push @tokens,$1;
-    }
-  }
-  close SCHEMA;
-
-  return sortUnique(@tokens);
-}
-
-# Extract the terminal tokens from the schema file
-my @tokens = getTokens($SchemaFile);
-
-# Set up a gperf invocation to convert the token list into a perfect hash 
-# function
-open(GPERF,"| gperf -tcDCIoGl --fast 0 -L C++ -Z $TokenHashClass -s 2 -S 1 -k '*' > $TokenHashFile");
-
-# Run the input through GPERF to create the perfect hash function
-$hlvmdir = get_hlvm_dir();
-chomp($ModulePath = `pwd`);
-$ModulePath = substr($ModulePath,rindex($ModulePath,"/hlvm/")+6); 
-$Module = $ModulePath;
-$Module =~ s|\/|_|g;
-print GPERF "struct TokenMap {\n";
-print GPERF "const char *name; HLVM_$Module"."::".$Schema."Tokens token;\n" ;
-print GPERF "};\n%%\n" ;
-print GPERF "\"$_\", HLVM_".$Module."::TKN_".$_.",\n" foreach @tokens;
-print GPERF "%%\n";
-close GPERF;
-
-# Generate the header file for the tokenizer, starting it with the preamble for
-# C++ source files
-$TOKEN_LIST = "TKN_" . join(",\n    TKN_",@tokens) . ",";
-$SCHEMA_NAME = $Schema;
-process_file($PreambleFile,$HeaderTemplate,$HeaderFile);
-process_file($PreambleFile,$SourceTemplate,$SourceFile);
diff --git a/hlvm/utils/countloc.py b/hlvm/utils/countloc.py
deleted file mode 100755
index 0a6d42a..0000000
--- a/hlvm/utils/countloc.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/python
-##===- Count Lines Of Code in HLVM ---------------------------*- Python -*-===##
-# 
-#                         High Level Virtual Machine
-#
-# This file was developed by Reid Spencer and is distributed under the 
-# Lesser General Public License.
-# 
-##===----------------------------------------------------------------------===##
-#
-# This script finds all the source code files in the source code directories
-# (excluding certain things), runs "wc -l" on them to get the number of lines in
-# each file and then sums up and prints the total.
-#
-# The script takes no arguments but does expect to be run from somewhere in
-# the top llvm source directory.
-#
-# Note that the implementation is based on llvmdo. See that script for more
-# details.
-##===----------------------------------------------------------------------===##
-
-import os
-from os.path import join, getsize
-import glob;
-import datetime;
-
-suffixes = ['.h','.cpp','.cxx','.py','.rng','.in','.xsl','.sh','.pm','.hlx',
-            '.exp','.ll','.sh']
-
-docsuffixes = ['.html','.css','.pod','.header','.footer','.intro']
-
-filenames = ['SConscript', 'SConstruct','Makefiles' ]
-
-notdirs = ['.svn','Release','Debug','Optimized','Profile','default']
-
-total = 0
-doctotal = 0
-for root, dirs, files in os.walk('.'):
-  for name in files:
-    (basename,ext) = os.path.splitext(name)
-    if ext in suffixes or name in filenames:
-      lines = 0
-      for line in open(join(root,name),'r'):
-        lines += 1
-      print join(root,name), ":", lines
-      total += lines
-    if ext in docsuffixes:
-      lines = 0
-      for line in open(join(root,name),'r'):
-        lines += 1
-      doctotal += lines
-  for d in notdirs:
-    if d in dirs:
-      dirs.remove(d)
-
-print "Lines Of Code in HLVM:",total
-print "Lines Of Doc  in HLVM:",doctotal
-now = datetime.date.today()
-then = datetime.date(2006,4,24)
-days = now.toordinal() - then.toordinal()
-print "Code Productivity:",total / ((days * 5) / 7),"loc/day"
-print "Total Productivity:", (total+doctotal) / ((days * 5) / 7), "lines/day"
diff --git a/hlvm/utils/tmplt/Preamble_Code b/hlvm/utils/tmplt/Preamble_Code
deleted file mode 100644
index 67cb0a6..0000000
--- a/hlvm/utils/tmplt/Preamble_Code
+++ /dev/null
@@ -1,21 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                      High Level Virtual Machine (HLVM)
-//
-// Copyright (C) 2006 Reid Spencer. All Rights Reserved.
-//
-// This software is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU Lesser General Public License as published by 
-// the Free Software Foundation; either version 2.1 of the License, or (at 
-// your option) any later version.
-//
-// This software is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
-// more details.
-//
-// You should have received a copy of the GNU Lesser General Public License 
-// along with this library in the file named LICENSE.txt; if not, write to the 
-// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-// MA 02110-1301 USA
-//
diff --git a/hlvm/utils/tmplt/Tokenizer_Template.cpp b/hlvm/utils/tmplt/Tokenizer_Template.cpp
deleted file mode 100644
index 696c01e..0000000
--- a/hlvm/utils/tmplt/Tokenizer_Template.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// @file hlvm/%MODULE_PATH%/%SCHEMA_NAME%Tokenizer.cpp
-/// @author %AUTHOR%
-/// @date %DATE%
-/// @brief Implements the functions of class %SCHEMA_NAME%Tokenizer.
-///////////////////////////////////////////////////////////////////////////////
-
-#include <hlvm/%MODULE_PATH%/%SCHEMA_NAME%Tokenizer.h>
-#include <hlvm/%MODULE_PATH%/%SCHEMA_NAME%TokenHash.i>
-
-namespace HLVM_%MODULE% {
-
-int
-%SCHEMA_NAME%Tokenizer::recognize( const char * xml_str )
-{
-  const char* str = reinterpret_cast<const char*>( xml_str );
-  const struct TokenMap *token_map = 
-    %SCHEMA_NAME%TokenHash::in_word_set( str, strlen(str) );
-  if (token_map)
-  {
-      return int(token_map->token);
-  }
-  return int(TKN_NONE);
-}
-
-const char *
-%SCHEMA_NAME%Tokenizer::lookup( int tkn )
-{
-  for (unsigned int i = 0 ; i < sizeof(wordlist)/sizeof(wordlist[0]); i++)
-  {
-    if (tkn == wordlist[i].token) return wordlist[i].name;
-  }
-  return "";
-}
-
-}
diff --git a/hlvm/utils/tmplt/Tokenizer_Template.h b/hlvm/utils/tmplt/Tokenizer_Template.h
deleted file mode 100644
index c3e2315..0000000
--- a/hlvm/utils/tmplt/Tokenizer_Template.h
+++ /dev/null
@@ -1,44 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-/// @file hlvm/%MODULE_PATH%/%SCHEMA_NAME%Tokenizer.h
-/// @author %AUTHOR%
-/// @date %DATE%
-/// @brief Declares the HLVM_%MODULE%::%SCHEMA_NAME%Tokenizer class.
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef HLVM_%MODULE%_%SCHEMA_NAME%TOKENIZER_H
-#define HLVM_%MODULE%_%SCHEMA_NAME%TOKENIZER_H
-
-namespace HLVM_%MODULE%
-{
-  /// @brief The list of tokens for the $SCHEMA schema.
-  enum %SCHEMA_NAME%Tokens
-  {
-    TKN_ERROR = -1,
-    TKN_NONE  = 0,
-    %TOKEN_LIST%
-    TKN_COUNT
-  };
-  /// @brief Efficient token recognizer (perfect hash function) for the 
-  /// %SCHEMA_NAME% schema
-  class %SCHEMA_NAME%Tokenizer
-  {
-  /// @name Methods
-  /// @{
-  public:
-    /// This function uses a fast perfect hash algorithm to convert the provided
-    /// string into a numeric integer token. The set of strings supported are
-    /// all the element, attribute and value names of the 
-    /// %SCHEMA_NAME% Schema. 
-    /// @param str The string to convert to a numeric token
-    /// @return Returns an enumerated token value.
-    /// @brief Convert a string token to an enumeration token, if possible.
-    static int recognize( const char * str );
-
-    /// @brief Lookup the name of a token by its value.
-    static const char * lookup( int tkn );
-
-  /// @}
-  };
-}
-
-#endif
diff --git a/hlvm/website/APIs.php b/hlvm/website/APIs.php
deleted file mode 100644
index 354e2bf..0000000
--- a/hlvm/website/APIs.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--#set var="title" value="API Documentation" -->
-<?php
-  virtual("/incl/header.incl");
-  if (isset($_GET['class']))
-    $url = "/apis/html/classhlvm_1_1" . $_GET['class'] . '.html';
-  else
-    $url = "/apis/html";
-?>
-<h1>HLVM API Documentation</h1>
-<iframe src="<?php echo $url?>" width="100%" height="600"></iframe>
-<?php
-  virtual("/incl/footer.incl");
-?>
diff --git a/hlvm/website/FBThanks.php b/hlvm/website/FBThanks.php
deleted file mode 100644
index 2289ff7..0000000
--- a/hlvm/website/FBThanks.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-  session_start();
-?>
-<!--#set var="title" value="Thanks" -->
-<?php
-  virtual("/incl/header.incl");
-  if (!isset($_POST['secode'])) {
-?>
-<h1>No Security Code</h1>
-<p>You did not supply a security code.</p>
-<?php
-  } else if (!isset($_SESSION['secode'])) {
-?>
-<h1>No Security Data</h1>
-<p>You have not entered this page via the Feedback page.</p>
-<?php
-  } else if ($_POST['secode'] != $_SESSION['secode']) {
-?>
-<h1>Feedback Security Failure</h1>
-<p>You have entered the wrong code. Please
-<a href="javascript:history.back()">try again</a>.
-<?php
-  } else if (!isset($_POST['Comment']) || !isset($_POST['Topic']) ||
-      $_POST['Comment'] == "" || $_POST['Topic'] == "") {
-?>
-<h1>Insufficient Feedback Content</h1>
-Thanks for trying to send us feedback. Unfortunately, your comment or topic 
-was empty. We won't have anything to respond to so your feedback was not 
-submitted. Please <a href="javascript:history.back()">try again</a></p>
-<?php
-  } else {
-    $first = $HTTP_POST_VARS['FirstName'];
-    $last  = $HTTP_POST_VARS['LastName'];
-    $topic = "HLVM Feedback: " . $HTTP_POST_VARS['Topic'];
-    $email = $HTTP_POST_VARS['Email']; 
-    $comment = $HTTP_POST_VARS['Comment'];
-    $message = sprintf("\nFeedback from %s %s (%s) at %s regarding %s:\n\n%s\n",
-      $first, $last, $email, date( "Y/m/d H:i:s", time() ), $topic, $comment);
-    echo "<p>$first, ";
-    if ( mail("rspencer@x10sys.com",$topic,$message) )
-    {
-?>
-<h1>Feedback Received</h1>
-Thankyou for your feedback. We have been successfully notified.</p>
-<p>We appreciate you taking the time to write to us. If a response to 
-your subject (<?php echo "$topic "; ?>) is due, we will send it promptly to 
-the email address you provided (<?php echo "$email"; ?>).</p>
-<?php
-    }
-    else
-    {
-?>
-Thankyou for your feedback. Unfortunately, we are unable to process your 
-feedback at this time. Please try again later. We sincerely regret the 
-inconvenience.</p>
-<?php
-    }
-  }
-  virtual("/incl/footer.incl");
-?>
diff --git a/hlvm/website/Feedback.php b/hlvm/website/Feedback.php
deleted file mode 100644
index 5c4ada9..0000000
--- a/hlvm/website/Feedback.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-  session_start();
-?>
-<!--#set var="title" value="Feedback" -->
-<?php
-  virtual("/incl/header.incl");
-?>
-<h1>Send Us Some Feedback</h1>
-<p>Use the fields below to submit your feedback.  If you require a response, 
-please include your name and email address.</p>
-<form action="/FBThanks.php" method="post" name="Feedback" 
-id="Feedback">
-<table>
-  <tr>
-    <td>
-      <p><em>First Name:</em> 
-      <input name="FirstName" type="text" id="FirstName" size="30"/> </p>
-      <p><em>Last Name:</em>
-      <input name="LastName" type="text" id="LastName" size="30"/> </p>
-      <p><em>Email: </em><input name="Email" type="text" id="Email" size="70"/>
-      </p>
-      <p><em>Topic:</em>
-      <select name="Topic" id="Topic">
-	  <option value="Ask A Question" selected="selected">Ask A Question</option>
-	  <option value="Submit FAQ Question">Submit FAQ Question</option>
-	  <option value="Comment On HLVM">Comment On HLVM</option>
-	  <option value="HLVM Architecture">HLVM Architecture</option>
-	  <option value="Using HLVM">Using HLVM</option>
-	  <option value="Documentation">Documentation</option>
-	  <option value="Web Site">Web Site</option>
-	  <option value="Other Issue">Other Issue</option>
-        </select>
-      </p>
-      <p><em>Question or Comment:</em><br/>
-        <textarea name="Comment" cols="60" rows="10" id="Comment"></textarea>
-        <br/><br/>
-        <img src="/security-image.php?width=144" width="144" height="30"
-        alt="Security Image" /><br/>
-        <br/><label for="secode"><em>Enter Security Code:</em></label>
-        <input type="text" name="secode" id="secode" size="40" value="Enter Code In Image Here" />
-        <input type="submit" name="Submit" value="Submit"/>
-      </p>
-    </td>
-  </tr>
-</table>
-</form>
-<?php
-  virtual("/incl/footer.incl");
-?>
diff --git a/hlvm/website/Privacy.shtml b/hlvm/website/Privacy.shtml
deleted file mode 100644
index 9ae1a94..0000000
--- a/hlvm/website/Privacy.shtml
+++ /dev/null
@@ -1,11 +0,0 @@
-<!--#set var="title" value="Privacy Statement" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Privacy Statement</h1>
-<p>This web site collects no information about you automatically. If you 
-submit feedback, you may optionally provide your name and email address. This 
-information will only be used to provide a response to your feedback. Your 
-information will not be stored on this site nor will the email address you 
-provide be added to any lists.  This web site does not collect or store 
-financial information of any kind. 
-</p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/Source.shtml b/hlvm/website/Source.shtml
deleted file mode 100644
index 260abf2..0000000
--- a/hlvm/website/Source.shtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--#set var="title" value="Latest Sources" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>Latest HLVM Sources</h1>
-<iframe src="/svn/llvm-project/hlvm/trunk/" width="100%" height="600">
-</iframe>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/WebSVN.shtml b/hlvm/website/WebSVN.shtml
deleted file mode 100644
index e75a08e..0000000
--- a/hlvm/website/WebSVN.shtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--#set var="title" value="Web Subversion" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Web Subversion</h1>
-<iframe src="http://llvm.org/viewvc/llvm-project/hlvm/trunk/" width="100%" height="600"></iframe>
-<p>Unfortunately, the Subversion repository browser is not functioning well on the new server. I will be working towards remedying this soon. Sorry for the inconvenience.</p>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/favicon.ico b/hlvm/website/favicon.ico
deleted file mode 100644
index 52ec723..0000000
--- a/hlvm/website/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/favicon.png b/hlvm/website/favicon.png
deleted file mode 100644
index 60dabaf..0000000
--- a/hlvm/website/favicon.png
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/hlvm-announce.shtml b/hlvm/website/hlvm-announce.shtml
deleted file mode 100644
index 3b9531e..0000000
--- a/hlvm/website/hlvm-announce.shtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--#set var="title" value="Commits List Registration" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Announcements List Registration</h1>
-<iframe src="http://hlvm.org/mailman/listinfo/hlvm-announce" 
-width="100%" height="600"></iframe>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/hlvm-commits.shtml b/hlvm/website/hlvm-commits.shtml
deleted file mode 100644
index 2fd454b..0000000
--- a/hlvm/website/hlvm-commits.shtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--#set var="title" value="Commits List Registration" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Commits List Registration</h1>
-<iframe src="http://lists.cs.uiuc.edu/mailman/listinfo/hlvm-commits" 
-width="100%" height="600"></iframe>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/hlvm-dev.shtml b/hlvm/website/hlvm-dev.shtml
deleted file mode 100644
index f190d84..0000000
--- a/hlvm/website/hlvm-dev.shtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--#set var="title" value="Developers List Registration" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Developer's List Registration</h1>
-<iframe src="http://lists.cs.uiuc.edu/mailman/listinfo/hlvm-dev" 
-width="100%" height="600"></iframe>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/hlvm.css b/hlvm/website/hlvm.css
deleted file mode 100644
index 4e18587..0000000
--- a/hlvm/website/hlvm.css
+++ /dev/null
@@ -1,178 +0,0 @@
-/* HLVM website style sheet */
-A:link {
-  color: #0000CC;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:visited {
-  color: #0000CC;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:hover {
-  color: #8888FF;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-}
-A:active {
-  color: #8888FF;
-  cursor: pointer;
-  text-decoration: underline;
-  font-weight: bolder;
-  font-style: italic;
-}
-ADDRESS IMG { 
-  float: right; 
-  width: 88px; 
-  height: 31px; 
-}
-ADDRESS { 
-  clear: right; 
-}
-B { font-weight: bold; }
-BODY {
-  background: #f0f0f0;
-  color: #000000;
-  text-align: left;
-  line-height: normal;
-  letter-spacing: normal;
-  word-spacing: normal;
-  font-family: "Verdana,Arial,sans";
-  font-size: medium;
-  font-style: normal;
-  font-weight: bold;
-  font-variant: normal;
-  position: relative;
-  margin-left: 0em;
-  min-width: 400px;
-  width: 100%;
-  margin: 2px 2px 2px 2px;
-  padding: 0 0 0 0;
-  border: none;
-}
-DT { margin-top: 0.75em; }
-EM { color: #0000DD; font-style: italic; }
-H1 {
-  background: url("/img/lines.png");
-  color: #EEEEFF;
-  border-top: 1px solid #CCEEFF;
-  border-bottom: 1px solid #CCEEFF;
-  text-align: center;
-  vertical-align: middle;
-  font-size: 150%;
-  font-weight: bold;
-  padding: 0.1em 0.1em 0.1em 0.1em; 
-  width: 100%;
-  margin-bottom: 0.3em; 
-}
-H2 {
-  border-top: 1px solid #0000AA;
-  border-bottom: 1px solid #0000AA;
-  background-color: #4444AA;
-  color: #EEEEFF;
-  text-align: left;  
-  font-size: 120%;
-  font-weight: bold;
-}
-H3 {
-  color: #0000AA;
-  text-align: left;
-  text-decoration: underline;
-  font-size: 110%;
-  font-weight: bold;
-}
-H4 {
-  color: #0000AA;
-  text-align: left;
-  font-size: 100%;
-  font-weight: bold;
-}
-HR    { color: #0000AA; }
-I     { font-style: italic; }
-LI    { margin-top: 0.25em; }
-STRONG{ color: #0000FF; font-weight: bold }
-PRE   { font-size: 80%; }
-TABLE {
-  width: 95%;
-  font-size: 95%;
-  table-layout: auto;
-  border-collapse: collapse;
-  text-align: left;
-  vertical-align: top;
-  border: 2px dotted #0000AA;
-  margin: 4px;
-}
-TH {
-  color: #EEEEFF;
-  font-size: 105%;
-  font-weight: bold;
-  border: 2px solid #0000AA;
-  padding: 0px 4px 1px 4px;
-  text-align: left;
-  vertical-align: top;
-  background: url("img/lines.png");
-}
-TD {
-  margin: 4px;
-  border: 2px solid #0000AA;
-  text-align: left;
-  vertical-align: top;
-  padding: 0px 4px 1px 4px;
-}
-DIV.sidebox {
-  background-color: #000088;
-  color: #EEEEFF;
-  border-left: 2px solid #666666;
-  border-top: 2px solid #666666;
-  padding: 0.25em 0.25em 0.25em .25em; 
-  margin: 5px 5px 5px 5px;
-}
-DIV.sidebox A:link, DIV.sidebox A:visited {
-  color: #BBBBFF;
-}
-DIV.sidebox A:hover, DIV.sidebox A:active {
-  color: #EEEEFF;
-}
-TABLE.layout {
-  border: 1px solid #0000AA;
-  width: 98%;
-  margin-left: 1%;
-  margin-right: 1%;
-  text-align: center;
-}
-TD.body {
-  border: none;
-  text-align: left;
-  vertical-align: top;
-  padding-left: 1em; 
-  padding-right: 1em;
-}
-TD.sidebar  { 
-  text-align: center; 
-  vertical-align: top;
-  margin-left: 0em; 
-  margin-right: 0em;
-  padding: 0.15em 0.15em 0.15em .15em; 
-  width: 15%;
-  background: url("/img/lines.png");
-  color: #EEEEFF;
-  border: 1px solid #331100;
-}
-.warning {
-  color: red; 
-  font-weight: bold;
-}
-.code { 
-  border: solid 1px gray; background: #eeeeee;
-  margin: 0 1em 0 1em; 
-  padding: 0 1em 0 1em;
-  display: table; 
-}
-.footer { 
-  text-align: center; 
-  font-size: 85%;
-  padding: 0 0 0 0 
-}
diff --git a/hlvm/website/img/lines.png b/hlvm/website/img/lines.png
deleted file mode 100644
index c9e6f36..0000000
--- a/hlvm/website/img/lines.png
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/img/logo.png b/hlvm/website/img/logo.png
deleted file mode 100644
index 0c132fa..0000000
--- a/hlvm/website/img/logo.png
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/img/osi-certified-60x50.gif b/hlvm/website/img/osi-certified-60x50.gif
deleted file mode 100644
index e1c3d90..0000000
--- a/hlvm/website/img/osi-certified-60x50.gif
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/img/vcss.gif b/hlvm/website/img/vcss.gif
deleted file mode 100644
index e45bf24..0000000
--- a/hlvm/website/img/vcss.gif
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/img/vxhtml10.gif b/hlvm/website/img/vxhtml10.gif
deleted file mode 100644
index 8476b77..0000000
--- a/hlvm/website/img/vxhtml10.gif
+++ /dev/null
Binary files differ
diff --git a/hlvm/website/incl/contents.incl b/hlvm/website/incl/contents.incl
deleted file mode 100644
index 32cbe6b..0000000
--- a/hlvm/website/incl/contents.incl
+++ /dev/null
@@ -1,13 +0,0 @@
-<br/>
-<b>Contents</b>
-<div class="sidebox">
-  <a href="/">Overview</a><br/>
-  <a href="/docs/ReleasePlans.html">Release Plans</a><br/>
-  <a href="/docs/OpenProjects.html">Open Projects</a><br/>
-  <a href="/docs/GettingStarted.html">Getting Started</a><br/>
-  <a href="/docs/index.html">Documentation</a><br/>
-  <a href="/APIs.php">Doxygen APIs</a><br/>
-  <a href="/docs/Credits.html">Credits</a><br/>
-  <a href="/docs/FAQ.html">FAQ</a><br/>
-  <a href="/Feedback.php">Feedback</a><br/>
-</div>
diff --git a/hlvm/website/incl/footer.incl b/hlvm/website/incl/footer.incl
deleted file mode 100644
index c5b6ea5..0000000
--- a/hlvm/website/incl/footer.incl
+++ /dev/null
@@ -1,20 +0,0 @@
-</td>
-<td class="sidebar">
-  <!--#include file="lists.incl"-->
-  <!--#include file="resources.incl"-->
-  <!--#include file="funfact.incl"-->
-  <!--#include file="notices.incl"-->
-</td>
-</tr>
-</table>
-<div class="footer">
-<a href="/Privacy.shtml">Privacy</a>&nbsp;&nbsp;<a 
-href="/Feedback.php">Feedback</a>&nbsp;&nbsp;<a
-href="/">Home</a>
-<br/>
-Copyright&nbsp;&copy;&nbsp;2006&nbsp;Reid Spencer&nbsp;All&nbsp;Rights&nbsp;Reserved.<br/>
-Last Modified: 
-<!--#flastmod virtual="${DOCUMENT_URI}"-->
-</div>
-</body>
-</html>
diff --git a/hlvm/website/incl/funfact.incl b/hlvm/website/incl/funfact.incl
deleted file mode 100644
index bf3d15a..0000000
--- a/hlvm/website/incl/funfact.incl
+++ /dev/null
@@ -1,6 +0,0 @@
-<br/>
-<b>Random Facts</b><br/>
-<div class="sidebox">
-<!--#include virtual="/random/pick.cgi" -->
-</div>
-
diff --git a/hlvm/website/incl/header.incl b/hlvm/website/incl/header.incl
deleted file mode 100644
index b979951..0000000
--- a/hlvm/website/incl/header.incl
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
-<head>
-  <title>HLVM: <!--#echo var="title" --></title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-  <meta name="keywords"
-    content="HLVM,High Levl Virtual Machine,virtual machine,VM"/>
-  <meta name="description" 
-    content="A resuable virtula machine infrastructure."/>
-  <link rel="stylesheet" href="/hlvm.css" type="text/css"/>
-  <link rel="icon" href="/favicon.png" type="image/png"/>
-  <link rel="shortcut icon" href="/favicon.png" type="image/png"/>
-</head>
-<body>
-<table class="layout"><tr><td class="sidebar">
-<a href="/"
-  onmouseover="window.status='High Level Virtual Machine';return true;"
-  title="High Level Virtual Machine">
-  <img src="/img/logo.png" style="border:none" alt="HLVM Logo"/></a><br/>
-  <!--#include file="contents.incl"-->
-  <!--#include file="search.incl"-->
-  <!--#include file="releases.incl"-->
-  <!--#include file="status.incl"-->
-</td>
-<td class="body">
diff --git a/hlvm/website/incl/lists.incl b/hlvm/website/incl/lists.incl
deleted file mode 100644
index 4b71ed7..0000000
--- a/hlvm/website/incl/lists.incl
+++ /dev/null
@@ -1,7 +0,0 @@
-<br/>
-<b>E-mail Lists</b>
-<div class="sidebox">
-  <a href="/hlvm-announce.shtml">Announcements List</a><br/>
-  <a href="/hlvm-dev.shtml">Developer's List</a><br/>
-  <a href="/hlvm-commits.shtml">Commits List</a><br/>
-</div>
diff --git a/hlvm/website/incl/logo.incl b/hlvm/website/incl/logo.incl
deleted file mode 100644
index 4512f55..0000000
--- a/hlvm/website/incl/logo.incl
+++ /dev/null
@@ -1,6 +0,0 @@
-<a href="/"
-  onmouseover="window.status='High Level Virtual Machine';return true;"
-  title="High Level Virtual Machine">
-  <img src="/img/logo.png" style="border:none" alt="HLVM Logo"/>
-</a>
-<hr/>
diff --git a/hlvm/website/incl/notices.incl b/hlvm/website/incl/notices.incl
deleted file mode 100644
index 6ae354c..0000000
--- a/hlvm/website/incl/notices.incl
+++ /dev/null
@@ -1,20 +0,0 @@
-<br/>
-<b>Notices</b><br/>
-<div class="sidebox">
-  <a href="http://www.opensource.org/docs/definition.php" 
-    title="Open Source Definition">
-    <img src="/img/osi-certified-60x50.gif" alt="OSI Certification Logo" 
-      style="width:60px;height:50px;border:0"/>
-  </a><br/>
-  <a href="http://validator.w3.org/check/referer" 
-    title="Validate XHTML On This Page">
-    <img src="/img/vxhtml10.gif" style="border:0;width:88px;height:31px" 
-      alt="Valid XHTML 1.0!"/>
-  </a><br/>
-  <a href="http://jigsaw.w3.org/css-validator/check/referer" 
-    title="Validate CSS2 On This Page">
-    <img src="/img/vcss.gif" style="border:0;width:88px;height:31px" 
-      alt="Valid CSS2!"/>
-  </a>
-</div>
-
diff --git a/hlvm/website/incl/releases.incl b/hlvm/website/incl/releases.incl
deleted file mode 100644
index aebf896..0000000
--- a/hlvm/website/incl/releases.incl
+++ /dev/null
@@ -1,6 +0,0 @@
-<br/>
-<b>Releases</b>
-<div class="sidebox">
-06/13/2006&nbsp;<a href="/releases/0.1/hlvm-0.1-tar.bz2">0.1</a>
-&nbsp;<a href="/releases/0.1/docs/ReleaseNotes.html">Notes</a><br/>
-</div>
diff --git a/hlvm/website/incl/resources.incl b/hlvm/website/incl/resources.incl
deleted file mode 100644
index 5590f22..0000000
--- a/hlvm/website/incl/resources.incl
+++ /dev/null
@@ -1,8 +0,0 @@
-<br/>
-<b>Resources</b>
-<div class="sidebox">
-  <a href="irc://irc.oftc.net/#hlvm">IRC Channel</a><br/> 
-  <a href="/Source.shtml">Latest Source</a><br/>
-  <a href="/WebSVN.shtml">Web SVN</a><br/>
-  <a href="/bugs/">HLVM Bugzilla</a>
-</div>
diff --git a/hlvm/website/incl/search.incl b/hlvm/website/incl/search.incl
deleted file mode 100644
index e6f0ef4..0000000
--- a/hlvm/website/incl/search.incl
+++ /dev/null
@@ -1,7 +0,0 @@
-<br/>
-<b>Search&nbsp;this&nbsp;Site</b>
-<form action="http://www.google.com/search" method="get">
-  <input type="hidden" name="sitesearch" value="hlvm.org"/>
-  <input type="text" name="q" size="11"/>
-  <input type="submit" value="Search!" name="submit"/>
-</form>
diff --git a/hlvm/website/incl/status.incl b/hlvm/website/incl/status.incl
deleted file mode 100644
index 21a4d96..0000000
--- a/hlvm/website/incl/status.incl
+++ /dev/null
@@ -1,8 +0,0 @@
-<br/>
-<b>Status&nbsp;Updates</b>
-<div class="sidebox">
-  <a href="/docs/status/2006-08-01.html">Aug. 1, 2006</a><br/>
-  <a href="/docs/status/2006-06-30.html">June 30, 2006</a><br/>
-  <a href="/docs/status/2006-05-25.html">May 25, 2006</a><br/>
-  <a href="/docs/status/2006-04-25.html">April 25, 2006</a><br/>
-</div>
diff --git a/hlvm/website/index.shtml b/hlvm/website/index.shtml
deleted file mode 100644
index ab13acc..0000000
--- a/hlvm/website/index.shtml
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--#set var="title" value="Overview" -->
-<!--#include virtual="/incl/header.incl" -->
-<h1>HLVM Overview</h1>
-<p>The High Level Virtual Machine (HLVM) is currently under development.  To
-monitor the progress of HLVM as it develops, you can utilize these resources:
-</p>
-<table>
-  <tr><th>Written Status Updates</th><th>Source Code Progress</th></tr>
-  <tr>
-    <td style="width:50%">
-      <ul>
-        <li><a href="/docs/status/index.html">Status Updates</a>:
-	approximately monthly updates on the statuf of HLVM.</li>
-        <li><a href="/releases/index.shtml">Releases</a>:
-        release notes, release media, SVN access</li>
-        <li><a href="/docs/ReleasePlans.html#status">Plans</a>:
-        current release plans, status of current release, past releases</li>
-      </ul>
-    </td>
-    <td style="width:50%">
-      <ul>
-        <li><a href="/Source.shtml">Latest Sources</a>:
-        A browsable source tree that is synchronized with the source repository.
-        <li>
-        <a href="http://lists.cs.uiuc.edu/mailman/listinfo/hlvm-commits">
-          Commits Archive</a>: an email archive of the Subversion commits 
-        history</li>
-	<li><a href="irc://irc.oftc.net/#hlvm">IRC Channel</a>: come and talk
-	to the developers on-line</li>
-      </ul>
-    </td>
-  </tr>
-</table>
-<p>HLVM is a language designer's toolkit. It's goal is to take care of the many 
-compilation, optimization and runtime details needed in a language system.  Here
-is how we envision HLVM when it is completed (written in present tense for
-simplicity):</p>
-<ol>
-  <li><em>Based on LLVM</em> 
-  (<a href="http://llvm.org/">Low Level Virtual Machine</a>).
-  LLVM is HLVM's sister project. HLVM gains tremendous capability from LLVM in
-  the areas of code generation, optimization, bytecode facilties, JIT 
-  compilation, target machine support, etc.</li>
-  <li><em>Dynamic Compilation</em>. HLVM supports "dynamic" languages, i.e. 
-  those that that have run-time compilation or interpretation as a language 
-  feature. For example, languages that support an <tt>eval</tt> function that 
-  compiles or interprets a source language statement (or entire program) at 
-  run-time.</li>
-  <li><em>Language Designer's Toolkit</em>. HLVM provides a complete language 
-  designer's toolkit for creating new programming languages. A plug-in model is
-  used to allow a language front end to be executed at run-time. A language
-  plug-in handles the process of translating from the language's source code
-  into the HLVM Abstract Syntax Tree (AST) representation. 
-  After that, HLVM handles all aspects of code generation, bytecode storage, 
-  JIT execution or interpretation, and native compilation.</li> 
-  <li><em>Common Runtime</em>. HLVM supports a common runtime for a variety of
-  programming languages including Ruby, Python, Perl, Jython, Haskell, Prolog, 
-  and others.</li>
-  <li><em>Language Interoperability Framework</em>. Because HLVM uses the same
-  facilities to implement the execution of different source languages, it is
-  also a language interoperability framework. All language plug-ins translate
-  source code into the same AST. This means they <i>can</i> interoperate. It 
-  doesn't mean they <i>will</i> interoperate. Language plug-ins that make use
-  of the HLVM runtime library for common constructs (e.g. "string") will enhance
-  the language's ability to interoperate with other languages.</li>
-</ol>
-<table>
-  <tr><th>More Info</th><th>HLVM On The Net</th></tr>
-  <tr><td style="width:50%">
-<ul>
-<li><a href="/docs/FAQ.html">Frequently Asked Questions</a></li>
-<li><a href="/docs/OpenProjects.html">Open Projects (How You Can Help)</a></li>
-<li><a href="/docs/index.html">User Documentation</a></li>
-<li><a href="/APIs.php">API documentation generated from source code</a></li>
-</ul>
-</td>
-<td style="width:50%">
-<ul>
-<li><a href="http://osnews.com/comment.php?news_id=14920">OS News</a></li>
-<li><a href="http://lambda-the-ultimate.org/node/1562">Lambda-the-Ultimate</a></li>
-<li><a href="http://freshmeat.net/projects/hlvm/">Freshmeat.net Project</a></li>
-<!--<li><a href="http://silentcentre.net/cgi-bin/hgwebdir.cgi/hlvm?cmd=summary;style=gitweb">Mercurial Repository on 2 hr sync (thanks Owen)</a></li>-->
-</ul>
-</td></tr>
-</table>
-<!--#include virtual="/incl/footer.incl" -->
diff --git a/hlvm/website/random/01-LLVM.html b/hlvm/website/random/01-LLVM.html
deleted file mode 100644
index 1f2fb07..0000000
--- a/hlvm/website/random/01-LLVM.html
+++ /dev/null
@@ -1,4 +0,0 @@
-HLVM is based on the <a href="http://llvm.cs.uiuc.edu/">LLVM Compiler 
-Infrastructure Toolkit</a> which provides unique compilation, optimization 
-and execution services. LLVM handles all of the intermediate representation and
-code generation details for HLVM. 
diff --git a/hlvm/website/random/02-APR.html b/hlvm/website/random/02-APR.html
deleted file mode 100644
index 7db1885..0000000
--- a/hlvm/website/random/02-APR.html
+++ /dev/null
@@ -1,3 +0,0 @@
-HLVM uses the <a href="http://apr.apache.org/">Apache Portable Runtime</a> to
-ensure that HLVM based programs can run correctly on a wide variety of 
-platforms.
diff --git a/hlvm/website/random/03-XML2.html b/hlvm/website/random/03-XML2.html
deleted file mode 100644
index f67b077..0000000
--- a/hlvm/website/random/03-XML2.html
+++ /dev/null
@@ -1,3 +0,0 @@
-HLVM uses the <a href="http://xmlsoft.org/">Libxml2 Library</a> to parse and
-validate XML documents that generate the Abstract Syntax Tree. See the
-hlvm-xml2xml program.
diff --git a/hlvm/website/random/04-scons.html b/hlvm/website/random/04-scons.html
deleted file mode 100644
index 03a094d..0000000
--- a/hlvm/website/random/04-scons.html
+++ /dev/null
@@ -1,3 +0,0 @@
-HLVM uses the <a href="http://scons.org/">scons</a> tool for software
-construction. This provides significant advantages to us over the make/auto* set
-of tools.
diff --git a/hlvm/website/random/05-irc.html b/hlvm/website/random/05-irc.html
deleted file mode 100644
index 02baf46..0000000
--- a/hlvm/website/random/05-irc.html
+++ /dev/null
@@ -1,3 +0,0 @@
-HLVM has an <a href="irc://irs.oftc.net/#hlvm">IRC</a> channel where you can
-speak to the developers directly. All announcements happen on the IRC channel
-before any other medium.
diff --git a/hlvm/website/random/06-ast.html b/hlvm/website/random/06-ast.html
deleted file mode 100644
index ddb502d..0000000
--- a/hlvm/website/random/06-ast.html
+++ /dev/null
@@ -1,3 +0,0 @@
-HLVM has a comprehensive <a href="/src/AST/">Abstract Syntax Tree (AST)</a> at 
-its core. The AST is the high-level computing model that source languages
-translate to. 
diff --git a/hlvm/website/random/07-tcg.html b/hlvm/website/random/07-tcg.html
deleted file mode 100644
index c7a5bcd..0000000
--- a/hlvm/website/random/07-tcg.html
+++ /dev/null
@@ -1,2 +0,0 @@
-HLVM uses an automated random test case generator to detect errors in code 
-generation. Significant failures are saved as regression tests.
diff --git a/hlvm/website/random/pick.cgi b/hlvm/website/random/pick.cgi
deleted file mode 100755
index 0d60132..0000000
--- a/hlvm/website/random/pick.cgi
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/perl -w
-#
-# This script randomly selects a file from the Content directory to display 
-# on the web page.
-
-# Read the contenst of a file.
-sub ReadFile {
-  undef $/;
-  if (open (FILE, $_[0])) {
-    my $Ret = <FILE>;
-    close FILE;
-    return $Ret;
-  } else {
-    print "Could not open file '$_[0]' for reading!";
-    return "";
-  }
-}
-
-# Print an HTTP header to ensure anything we print is interpeted as HTML
-print "Content-type: text/html\n\n";
-
-# Open the directory and get the file names that
-# contain at least one digit
-$Dir = "/home/vadve/shared/llvm-wwwroot/hlvm/random";
-opendir DH, $Dir  or die "Where did the random content go?";
-@Files = grep /^[0-9]/, readdir DH;
-closedir DH;
-
-# Seed the random number generator
-srand(time ^ $$);
-
-# Select a file randomly and print it.
-if (defined(@Files)) {
-  $File = $Files[rand(@Files)];
-  $File =~ /^[0-9]/; 
-  print ReadFile "$Dir/$File" ;
-  print "\n";
-} else {
-  $pwd = `pwd`;
-  print "On a clear disk you can seek forever. $pwd";
-}
-
-# All done.
-exit(0);
diff --git a/hlvm/website/robots.txt b/hlvm/website/robots.txt
deleted file mode 100644
index cb8436e..0000000
--- a/hlvm/website/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-User-agent: *
-Disallow: /bugs
-Disallow: /wsvn
-Disallow: /src
-Disallow: /usage
diff --git a/hlvm/website/security-image.php b/hlvm/website/security-image.php
deleted file mode 100644
index 8eac18e..0000000
--- a/hlvm/website/security-image.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-  class SecurityImage 
-  {
-    var $oImage;
-    var $iWidth;
-    var $iHeight;
-    var $iNumChars;
-    var $iNumLines;
-    var $iSpacing;
-    var $sCode;
-
-    function SecurityImage(
-      $iWidth = 200,
-      $iHeight = 40,
-      $iNumChars = 7,
-      $iNumLines = 30
-    ) 
-    { 
-      // get parameters
-      $this->iWidth = $iWidth;
-      $this->iHeight = $iHeight;
-      $this->iNumChars = $iNumChars;
-      $this->iNumLines = $iNumLines;
-             
-      // create new image
-      $this->oImage = imagecreate($iWidth, $iHeight);
-             
-      // allocate white background colour
-      imagecolorallocate($this->oImage, 255, 255, 255);
-             
-      // calculate spacing between characters based on width of image
-      $this->iSpacing = (int)($this->iWidth / $this->iNumChars);       
-    }
-
-    function DrawLines() 
-    {
-      for ($i = 0; $i < $this->iNumLines; $i++) {
-         $iRandColour = rand(190, 250);
-         $iLineColour = imagecolorallocate($this->oImage, $iRandColour,
-                        $iRandColour, $iRandColour);
-         imageline($this->oImage, 
-                   rand(0, $this->iWidth), 
-                   rand(0, $this->iHeight),
-                   rand(0, $this->iWidth), 
-                   rand(0, $this->iHeight), $iLineColour);
-      }
-    }
-
-    function GenerateCode() 
-    {
-      // reset code
-      $this->sCode = '';
-
-      // loop through and generate the code letter by letter
-      for ($i = 0; $i < $this->iNumChars; $i++) {
-         switch (rand(1,2)) {
-         case 1: // Upper Case
-           $this->sCode .= chr(rand(65,90));
-           break;
-         case 2: // Lower Case
-           $this->sCode .= chr(rand(97,122));
-           break;
-         }
-      }
-    }
-    function DrawCharacters() 
-    {
-      // loop through and write out selected number of characters
-      for ($i = 0; $i < strlen($this->sCode); $i++) {
-         // select font
-         $iCurrentFont = 9;
-               
-         // select random greyscale colour
-         $iRandColour = rand(0, 32);
-         $iTextColour = imagecolorallocate($this->oImage, $iRandColour,
-           $iRandColour, $iRandColour);
-               
-         // write text to image
-         imagestring($this->oImage, $iCurrentFont, 
-           $this->iSpacing / 3 + $i * $this->iSpacing, 
-           ($this->iHeight - imagefontheight($iCurrentFont)) / 2,
-           $this->sCode[$i], $iTextColour);
-      }
-    }
-
-    function Create($sFilename = '') 
-    {
-      // check for existence of GD GIF library
-      if (!function_exists('imagegif')) {
-         return false;
-      }
-             
-      $this->DrawLines();
-      $this->GenerateCode();
-      $this->DrawCharacters();
-             
-      // write out image to file or browser
-      if ($sFilename != '') {
-         // write stream to file
-         imagegif($this->oImage, $sFilename);
-      } else {
-         // tell browser that data is gif
-         header('Content-type: image/gif');
-               
-         // write stream to browser
-         imagegif($this->oImage);
-      }
-             
-      // free memory used in creating image
-      imagedestroy($this->oImage);
-             
-      return true;
-    }
-
-    function GetCode()
-    {
-      return $this->sCode;
-    }
-  }
-
-  // start PHP session
-  session_start();
-   
-  // get parameters
-  isset($_GET['width']) ? $iWidth = (int)$_GET['width'] : $iWidth = 150;
-  isset($_GET['height']) ? $iHeight = (int)$_GET['height'] : $iHeight = 30;
-   
-  // create new image
-  $oSecurityImage = new SecurityImage($iWidth, $iHeight);
-  if ($oSecurityImage->Create()) {
-     // assign corresponding code to session variable  
-     // for checking against user entered value
-     $_SESSION['secode'] = $oSecurityImage->GetCode();
-  } else {
-     echo 'Image GIF library is not installed.';
-  }
-?>
diff --git a/hlvm/website/tiki-index.php b/hlvm/website/tiki-index.php
deleted file mode 100644
index 301eec0..0000000
--- a/hlvm/website/tiki-index.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-if(!(headers_sent())){
-header ("location: wiki");
-}
-die("header already sent");
-?>
diff --git a/hlvm/website/wsvn.php b/hlvm/website/wsvn.php
deleted file mode 100644
index 9931ebe..0000000
--- a/hlvm/website/wsvn.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php

-

-// WebSVN - Subversion repository viewing via the web using PHP

-// Copyright (C) 2004 Tim Armes

-//

-// This program is free software; you can redistribute it and/or modify

-// it under the terms of the GNU General Public License as published by

-// the Free Software Foundation; either version 2 of the License, or

-// (at your option) any later version.

-//

-// This program is distributed in the hope that it will be useful,

-// but WITHOUT ANY WARRANTY; without even the implied warranty of

-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

-// GNU General Public License for more details.

-//

-// You should have received a copy of the GNU General Public License

-// along with this program; if not, write to the Free Software

-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

-//

-// --

-//

-

-// --- CONFIGURE THESE VARIABLES ---

-

-// Location of websvn directory via HTTP

-//

-// e.g.  For http://servername/websvn use /websvn

-//

-// Note that wsvn.php need not be in the /websvn directory (and normally isn't).

-$locwebsvnhttp = "/websvn";  

-

-// Physical location of websvn directory

-$locwebsvnreal = "/var/www/sites/websvn";

-

-chdir($locwebsvnreal);

-

-// --- DON'T CHANGE BELOW HERE ---

-

-ini_set("include_path", $locwebsvnreal);

-

-require_once("include/setup.inc");

-require_once("include/svnlook.inc");

-

-if (!isset($_REQUEST["sc"]))

-   $_REQUEST["sc"] = 1;

-

-if ($config->multiViews)

-{

-   // If this is a form handling request, deal with it

-   if (@$_REQUEST["op"] == "form")

-   {

-      include("$locwebsvnreal/form.php");

-      exit;

-   }

-

-   $path = @$_SERVER["PATH_INFO"];

-

-   // Remove initial slash

-   $path = substr($path, 1);

-   if (empty($path))

-   {

-      include("$locwebsvnreal/index.php");

-      exit;

-   }

-   

-   // Get the repository name

-   $pos = strpos($path, "/");

-

-   if ($pos === false)

-   {

-      $name = substr($path, 0);

-      $path = "/";

-   }

-   else

-   {

-      $name = substr($path, 0, $pos);

-      $path = substr($path, $pos);

-   }

-      

-   $rep = $config->findRepository($name);

-   createProjectSelectionForm();

-   $vars["allowdownload"] = $rep->getAllowDownload();

-

-   // find the operation type

-   $op = @$_REQUEST["op"];

-   switch ($op)

-   {

-      case "dir":

-         $file = "listing.php";

-         break;

-         

-      case "file":

-         $file = "filedetails.php";

-         break;

-

-      case "log":

-         $file = "log.php";

-         break;

-

-      case "diff":

-         $file = "diff.php";

-         break;

-

-      case "blame":

-         $file = "blame.php";

-         break;

-

-      case "rss":

-         $file = "rss.php";

-         break;

-      

-      case "dl":

-         $file = "dl.php";

-         break;

-

-      case "comp":

-         $file = "comp.php";

-         break;

-

-      default:

-         $file = "listing.php";

-   }

-   

-   // Now include the file that handles it

-   include("$locwebsvnreal/$file");

-}

-else

-{

-   print "<p>MultiViews must be configured in config.inc in order to use this file";

-   exit;

-}

diff --git a/java/Makefile b/java/Makefile
deleted file mode 100755
index ca59bb0..0000000
--- a/java/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- ./Makefile ------------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := .
-
-DIRS := lib tools runtime
-EXTRA_DIST := Makefile.test
-
-include $(LEVEL)/Makefile.common
diff --git a/java/Makefile.common.in b/java/Makefile.common.in
deleted file mode 100644
index 041bf54..0000000
--- a/java/Makefile.common.in
+++ /dev/null
@@ -1,43 +0,0 @@
-#===-- Makefile.common - Common make rules for LLVM -------*- makefile -*---====
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-#===-------------------------------------------------------------------------===
-
-PROJECT_NAME = @PACKAGE_NAME@
-PROJ_VERSION = @PACKAGE_VERSION@
-
-# Set this variable to the top of the LLVM source tree.
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the directory root of this project's source files
-PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_OBJ_ROOT)/Makefile.common
-
-# GNU classpath variables
-CLASSPATH_JAVA_LIBRARY_PATH=@CLASSPATH_JAVA_LIBRARY_PATH@
-CLASSPATH_NATIVE_LIBRARY_PATH=@CLASSPATH_NATIVE_LIBRARY_PATH@
-CLASSPATH_NATIVE_LIBS=@CLASSPATH_NATIVE_LIBS@
-
-# Additional utilities
-JAVA=@JAVA@
-JAVAC=@JAVAC@
-JAVAH=@JAVAH@
-
-# Include local build rules.
-include $(PROJ_SRC_ROOT)/Makefile.rules
diff --git a/java/Makefile.rules b/java/Makefile.rules
deleted file mode 100644
index 5eb82a2..0000000
--- a/java/Makefile.rules
+++ /dev/null
@@ -1,11 +0,0 @@
-##==-- Makefile.rules - Common make rules for Java -------*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-CLASS2LLVM := $(ToolDir)/class2llvm$(EXEEXT)
-CLASSDUMP  := $(ToolDir)/classdump$(EXEEXT)
diff --git a/java/TODO b/java/TODO
deleted file mode 100644
index d0b1880..0000000
--- a/java/TODO
+++ /dev/null
@@ -1,18 +0,0 @@
-* Integrate GNU classpath to the build system:
-    This should involve unpacking it, and building the native parts
-    using llvm-gcc and the java sources using a java compiler.
-
-* Add exception support.
-
-* Implement the multinewarray opcode.
-
-* Build java/lang/String's out of the args passed to main and pass
-  them to the class's main function we are invoking.
-
-* Add garbage collection.
-
-* Implement monitorenter/monitorexit opcods.
-
-* Implement jsr/ret opcodes.
-
-* Throw a party.
diff --git a/java/autoconf/AutoRegen.sh b/java/autoconf/AutoRegen.sh
deleted file mode 100755
index 0a5a0b2..0000000
--- a/java/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-test -d autoconf && test -f autoconf/configure.ac && cd autoconf
-test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.59"
-fi
-aclocal-1.9 --version | egrep '1\.9\.4' > /dev/null
-if test $? -ne 0 ; then
-  die "Your aclocal was not detected as being 1.9.4"
-fi
-autoheader --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoheader was not detected as being 2.59"
-fi
-libtool --version | grep '1.5.14' > /dev/null
-if test $? -ne 0 ; then
-  die "Your libtool was not detected as being 1.5.14"
-fi
-echo ""
-echo "### NOTE: ############################################################"
-echo "### If you get *any* warnings from autoconf below other than warnings"
-echo "### about 'AC_CONFIG_SUBDIRS: you should use literals', you MUST fix"
-echo "### the scripts in the m4 directory because there are future forward"
-echo "### compatibility or platform support issues at risk. Please do NOT"
-echo "### commit any configure.ac or configure script that was generated "
-echo "### with warnings present."
-echo "######################################################################"
-echo ""
-echo "Regenerating aclocal.m4 with aclocal"
-save=`pwd`
-cd ../../..
-m4dir=`pwd`/autoconf/m4
-cd $save
-aclocal --force -I $m4dir || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.5x"
-autoconf --force --warnings=all -o ../configure configure.ac || die "autoconf failed"
diff --git a/java/autoconf/configure.ac b/java/autoconf/configure.ac
deleted file mode 100644
index 0ca829a..0000000
--- a/java/autoconf/configure.ac
+++ /dev/null
@@ -1,117 +0,0 @@
-dnl **************************************************************************
-dnl * Initialize
-dnl **************************************************************************
-AC_INIT([[Java]], [[0.0]], [llvmbugs@cs.uiuc.edu])
-
-dnl Tell autoconf that the auxilliary files are actually located in
-dnl the LLVM autoconf directory, not here.
-AC_CONFIG_AUX_DIR([../../autoconf])
-
-dnl Tell autoconf that this is an LLVM project being configured
-dnl This provides the --with-llvmsrc and --with-llvmobj options
-LLVM_CONFIG_PROJECT
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR([Makefile.common.in])
-
-dnl Configure a common Makefile
-AC_CONFIG_FILES(Makefile.common)
-
-dnl Configure project makefiles
-dnl List every Makefile that exists within your source tree
-AC_CONFIG_MAKEFILE([Makefile])
-AC_CONFIG_MAKEFILE([lib/Makefile])
-AC_CONFIG_MAKEFILE([lib/ClassFile/Makefile])
-AC_CONFIG_MAKEFILE([test/Makefile])
-AC_CONFIG_MAKEFILE([test/Makefile.test])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/UnitTests/Makefile])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/Makefile])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/Makefile.singlesrc])
-AC_CONFIG_MAKEFILE([test/Programs/Makefile])
-AC_CONFIG_MAKEFILE([test/Regression/ClassFile/Makefile])
-AC_CONFIG_MAKEFILE([test/Regression/Makefile])
-AC_CONFIG_MAKEFILE([tools/Makefile])
-AC_CONFIG_MAKEFILE([tools/classdump/Makefile])
-
-dnl **************************************************************************
-dnl * Determine which system we are building on
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for programs.
-dnl **************************************************************************
-AC_ARG_VAR(JAVA, [The Java Virtual Machine (used for testing)])
-AC_CHECK_PROG(JAVA, java, java)
-AC_ARG_VAR(JAVAC, [The java compiler (used for testing)])
-AC_CHECK_PROG(JAVAC, javac, javac)
-AC_ARG_VAR(JAVAH, [The java JNI header generator (used for testing)])
-AC_CHECK_PROG(JAVAH, javah, javah)
-
-if test -z "$JAVA"
-then
-  AC_MSG_WARN([A Java Virtual Machine is required for the test suite, but it was not found])
-fi
-
-if test -z "$JAVAC"
-then
-  AC_MSG_WARN([A Java compiler is required for the test suite, but it was not found])
-fi
-
-if test -z "$JAVAC"
-then
-  AC_MSG_WARN([A Java JNI header generator is required for the test suite, but it was not found])
-fi
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(Makefile.common.in)
-
-dnl **************************************************************************
-dnl * Set the location of various third-party software packages
-dnl **************************************************************************
-AC_ARG_WITH([classpathdir],
-  AS_HELP_STRING([--with-classpathdir],
-                 [location of GNU classpath install dir (default /usr/local)]),
-                 [ac_cv_classpathdir=$withval],
-                 [ac_cv_classpathdir=/usr/local])
-
-CLASSPATH_JAVA_LIBRARY_PATH=$ac_cv_classpathdir/share/classpath
-AC_SUBST(CLASSPATH_JAVA_LIBRARY_PATH)
-
-CLASSPATH_NATIVE_LIBRARY_PATH=$ac_cv_classpathdir/lib/classpath
-AC_SUBST(CLASSPATH_NATIVE_LIBRARY_PATH)
-
-CLASSPATH_NATIVE_LIBS="gtkpeer javaawt javaio javalang javalangreflect javanet javanio javautil"
-AC_SUBST(CLASSPATH_NATIVE_LIBS)
-
-dnl **************************************************************************
-dnl * Check for libraries.
-dnl **************************************************************************
-AC_MSG_CHECKING([for GNU classpath libraries])
-if test ! -f "$CLASSPATH_JAVA_LIBRARY_PATH/java/lang/Object.class"
-then
-  AC_MSG_RESULT([no])
-  AC_MSG_ERROR([A flat installation of GNU classpath is required])
-else
-  AC_MSG_RESULT([$CLASSPATH_JAVA_LIBRARY_PATH])
-fi
-
-dnl **************************************************************************
-dnl * Checks for header files.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for typedefs, structures, and compiler characteristics.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for library functions.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Enable various compile-time options
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Create the output files
-dnl **************************************************************************
-AC_OUTPUT
diff --git a/java/class b/java/class
deleted file mode 100644
index 9f0bf9f..0000000
--- a/java/class
+++ /dev/null
@@ -1,65 +0,0 @@
-# Java Configuration File For llvmc
-
-##########################################################
-# Language definitions
-##########################################################
-  lang.name=Java
-  lang.opt1=-simplifycfg -mem2reg -instcombine
-  lang.opt2=
-  lang.opt3=
-  lang.opt4=
-  lang.opt5=
-#  lang.libs=@LLVM_OBJ_ROOT@/projects/Java/Debug/lib
-
-##########################################################
-# Pre-processor definitions
-##########################################################
-
-  # Java doesn't have a preprocessor but the following
-  # allows the -E option to be supported
-  preprocessor.command=cp %in% %out%
-  preprocessor.required=false
-
-##########################################################
-# Translator definitions
-##########################################################
-
-  # To compile java class files, we just run the
-  # class2llvm compiler with the correct classpath.
-  translator.command=class2llvm \
-      %in% %force% -o %out% %time% %stats% %args%
-
-  # class2llvm doesn't preprocess but we set this to true
-  # so that we don't run the cp command by default.
-  translator.preprocesses=true
-
-  # The translator is required to run.
-  translator.required=true
-
-  # class2llvm outputs llvm bytecode
-  translator.output=bytecode
-
-##########################################################
-# Optimizer definitions
-##########################################################
-  
-  # For optimization, we use the LLVM "opt" program
-  optimizer.command=opt \
-    %in% %force% -o %out% %opt% %time% %stats% %args%
-
-  optimizer.required = true
-
-  # opt doesn't translate
-  optimizer.translates=false
-
-  # opt doesn't preprocess
-  optimizer.preprocesses=false
-
-  # opt produces bytecode
-  optimizer.output=bytecode
-
-##########################################################
-# Assembler definitions
-##########################################################
-  assembler.command=llc \
-      %in% %force% -o %out% %target% %time% %stats% %args%
diff --git a/java/configure b/java/configure
deleted file mode 100755
index dba2bec..0000000
--- a/java/configure
+++ /dev/null
@@ -1,2599 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for Java 0.0.
-#
-# Report bugs to <llvmbugs@cs.uiuc.edu>.
-#
-# Copyright (C) 2003 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 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='Java'
-PACKAGE_TARNAME='-java-'
-PACKAGE_VERSION='0.0'
-PACKAGE_STRING='Java 0.0'
-PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
-
-ac_unique_file="Makefile.common.in"
-ac_unique_file="Makefile.common.in"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ JAVA JAVAC JAVAH CLASSPATH_JAVA_LIBRARY_PATH CLASSPATH_NATIVE_LIBRARY_PATH CLASSPATH_NATIVE_LIBS LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# 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.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-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
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -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 | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$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 ;;
-
-  -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 ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    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 ;;
-
-  -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=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 ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      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'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-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
-    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
-
-
-# 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 its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    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
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_JAVA_set=${JAVA+set}
-ac_env_JAVA_value=$JAVA
-ac_cv_env_JAVA_set=${JAVA+set}
-ac_cv_env_JAVA_value=$JAVA
-ac_env_JAVAC_set=${JAVAC+set}
-ac_env_JAVAC_value=$JAVAC
-ac_cv_env_JAVAC_set=${JAVAC+set}
-ac_cv_env_JAVAC_value=$JAVAC
-ac_env_JAVAH_set=${JAVAH+set}
-ac_env_JAVAH_value=$JAVAH
-ac_cv_env_JAVAH_set=${JAVAH+set}
-ac_cv_env_JAVAH_value=$JAVAH
-
-#
-# 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 Java 0.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-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]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --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]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of Java 0.0:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-  --with-classpathdir     location of GNU classpath install dir (default
-                          /usr/local)
-
-Some influential environment variables:
-  JAVA        The Java Virtual Machine (used for testing)
-  JAVAC       The java compiler (used for testing)
-  JAVAH       The java JNI header generator (used for testing)
-
-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 <llvmbugs@cs.uiuc.edu>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style 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
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd "$ac_popdir"
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-Java configure 0.0
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 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 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by Java $as_me 0.0, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-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`
-hostinfo               = `(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=.
-  echo "PATH: $as_dir"
-done
-
-} >&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_sep=
-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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$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
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >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
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  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.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$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 `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-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_aux_dir=
-for ac_dir in ../../autoconf $srcdir/../../autoconf; 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
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  llvm_src="$withval"
-else
-  llvm_src=`cd ${srcdir}/../..; pwd`
-fi;
-  LLVM_SRC=$llvm_src
-
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  llvm_obj="$withval"
-else
-  llvm_obj=`cd ../..; pwd`
-fi;
-  LLVM_OBJ=$llvm_obj
-
-            ac_config_commands="$ac_config_commands setup"
-
-
-
-
-
-          ac_config_files="$ac_config_files Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/ClassFile/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Makefile.test"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/UnitTests/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/Makefile.singlesrc"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Regression/ClassFile/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Regression/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/classdump/Makefile"
-
-
-
-
-
-# Extract the first word of "java", so it can be a program name with args.
-set dummy java; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVA+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVA"; then
-  ac_cv_prog_JAVA="$JAVA" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVA="java"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVA=$ac_cv_prog_JAVA
-if test -n "$JAVA"; then
-  echo "$as_me:$LINENO: result: $JAVA" >&5
-echo "${ECHO_T}$JAVA" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-# Extract the first word of "javac", so it can be a program name with args.
-set dummy javac; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVAC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVAC"; then
-  ac_cv_prog_JAVAC="$JAVAC" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVAC="javac"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVAC=$ac_cv_prog_JAVAC
-if test -n "$JAVAC"; then
-  echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-# Extract the first word of "javah", so it can be a program name with args.
-set dummy javah; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVAH+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVAH"; then
-  ac_cv_prog_JAVAH="$JAVAH" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVAH="javah"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVAH=$ac_cv_prog_JAVAH
-if test -n "$JAVAH"; then
-  echo "$as_me:$LINENO: result: $JAVAH" >&5
-echo "${ECHO_T}$JAVAH" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-if test -z "$JAVA"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java Virtual Machine is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java Virtual Machine is required for the test suite, but it was not found" >&2;}
-fi
-
-if test -z "$JAVAC"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java compiler is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java compiler is required for the test suite, but it was not found" >&2;}
-fi
-
-if test -z "$JAVAC"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java JNI header generator is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java JNI header generator is required for the test suite, but it was not found" >&2;}
-fi
-
-
-
-
-# Check whether --with-classpathdir or --without-classpathdir was given.
-if test "${with_classpathdir+set}" = set; then
-  withval="$with_classpathdir"
-  ac_cv_classpathdir=$withval
-else
-  ac_cv_classpathdir=/usr/local
-fi;
-
-CLASSPATH_JAVA_LIBRARY_PATH=$ac_cv_classpathdir/share/classpath
-
-
-CLASSPATH_NATIVE_LIBRARY_PATH=$ac_cv_classpathdir/lib/classpath
-
-
-CLASSPATH_NATIVE_LIBS="gtkpeer javaawt javaio javalang javalangreflect javanet javanio javautil"
-
-
-echo "$as_me:$LINENO: checking for GNU classpath libraries" >&5
-echo $ECHO_N "checking for GNU classpath libraries... $ECHO_C" >&6
-if test ! -f "$CLASSPATH_JAVA_LIBRARY_PATH/java/lang/Object.class"
-then
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-  { { echo "$as_me:$LINENO: error: A flat installation of GNU classpath is required" >&5
-echo "$as_me: error: A flat installation of GNU classpath is required" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  echo "$as_me:$LINENO: result: $CLASSPATH_JAVA_LIBRARY_PATH" >&5
-echo "${ECHO_T}$CLASSPATH_JAVA_LIBRARY_PATH" >&6
-fi
-
-
-
-
-
-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, don't put newlines in cache variables' values.
-# 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.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *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 \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  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}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-# 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 we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $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}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by Java $as_me 0.0, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -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
-      --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 <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-Java config.status 0.0
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-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=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  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
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-llvm_src="${LLVM_SRC}"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-  "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/ClassFile/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/ClassFile/Makefile" ;;
-  "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;;
-  "test/Makefile.test" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile.test" ;;
-  "test/Programs/SingleSource/UnitTests/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/UnitTests/Makefile" ;;
-  "test/Programs/SingleSource/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/Makefile" ;;
-  "test/Programs/SingleSource/Makefile.singlesrc" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/Makefile.singlesrc" ;;
-  "test/Programs/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/Makefile" ;;
-  "test/Regression/ClassFile/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Regression/ClassFile/Makefile" ;;
-  "test/Regression/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Regression/Makefile" ;;
-  "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-  "tools/classdump/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/classdump/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  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 to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
-s,@JAVA@,$JAVA,;t t
-s,@JAVAC@,$JAVAC,;t t
-s,@JAVAH@,$JAVAH,;t t
-s,@CLASSPATH_JAVA_LIBRARY_PATH@,$CLASSPATH_JAVA_LIBRARY_PATH,;t t
-s,@CLASSPATH_NATIVE_LIBRARY_PATH@,$CLASSPATH_NATIVE_LIBRARY_PATH,;t t
-s,@CLASSPATH_NATIVE_LIBS@,$CLASSPATH_NATIVE_LIBS,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  # 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.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    lib/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/ClassFile/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/ClassFile/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/ClassFile/Makefile lib/ClassFile/Makefile ;;
-    test/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
-    test/Makefile.test ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile.test`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile.test test/Makefile.test ;;
-    test/Programs/SingleSource/UnitTests/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/UnitTests/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/UnitTests/Makefile test/Programs/SingleSource/UnitTests/Makefile ;;
-    test/Programs/SingleSource/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/Makefile test/Programs/SingleSource/Makefile ;;
-    test/Programs/SingleSource/Makefile.singlesrc ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/Makefile.singlesrc`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/Makefile.singlesrc test/Programs/SingleSource/Makefile.singlesrc ;;
-    test/Programs/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/Makefile test/Programs/Makefile ;;
-    test/Regression/ClassFile/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Regression/ClassFile/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Regression/ClassFile/Makefile test/Regression/ClassFile/Makefile ;;
-    test/Regression/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Regression/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Regression/Makefile test/Regression/Makefile ;;
-    tools/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    tools/classdump/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/classdump/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/tools/classdump/Makefile tools/classdump/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# 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 || { (exit 1); exit 1; }
-fi
-
diff --git a/java/docs/TODO b/java/docs/TODO
deleted file mode 100644
index efb9a36..0000000
--- a/java/docs/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-* Exceptions.
-
-* Add GC hooks into the GC runtime.
-
-* Syncronization.
diff --git a/java/docs/java-frontend.txt b/java/docs/java-frontend.txt
deleted file mode 100644
index 279da29..0000000
--- a/java/docs/java-frontend.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-The Java frontend translates Java bytecode (.class files) into LLVM
-bytecode. This happens in two passes: a basic block building pass,
-which creates and associates LLVM basic blocks to Java bytecode blocks
-and a compilation pass, which builds the LLVM bytecode for the given
-Java bytecode (in a sense: fill in the LLVM basic blocks with
-instructions).
-
-Creating BasicBlocks
---------------------
-
-A pre-pass over the bytecode is performed that creates LLVM
-BasicBlocks and associates them with their corresponding Java basic
-block. This pass provides for a way to get the LLVM BasicBlock given a
-bytecode index. It also provides a way to get the Java bytecode bounds
-of the Java basic block given an LLVM BasicBlock.
-
-Modelling the operand stack
----------------------------
-
-When compiling java bytecode to llvm we need to model the Java operand
-stack, as this is the Java computation model. Some complication arises
-though because longs and doubles are considered to take two slots in
-the Java operand stack.
-
-In this frontend we don't use two slots on the operand stack for longs
-or doubles. This simplyfies code generation for most instructions, but
-untyped stack manipulation ones. There we need to know what is that
-type of the poped items to figure out the final configuration of the
-stack.
-
-The class2llvm compiler keeps a compile time stack of alloca's, which
-loosly represent the slots of the java operand stack. These alloca's
-are lazily created in the basic block they are first introduced. The
-state of the stack is saved at the end of each basic block for its
-successors to use it. Obviously the entry blocks gets an empty stack
-as input.
-
-The type model is the obvious for the primitive types (int to int,
-float to float, etc). For reference types the alloca is always of type
-java.lang.Object*.
-
-Local variables
----------------
-
-Similarly to the operand stack, the compiler keeps track of the local
-variable slots. Again we use a single slot for doubles and longs. A
-vector of sized to the max number of locals in the function is
-initialized when a function is compiled and the alloca's are lazily
-created on first use.
-
-Compilation
------------
-
-In order to compile a Java method to an LLVM function we use a work
-list of BasicBlocks to work through each basic block of the
-function. This is required because for each java basic block we
-compile we need to know the configuration of the operand stack and the
-locals. This is knows iff at least one predecessor of this block is
-compiled.
-
-So the work list is initialize with the entry basic block which has
-known entry operand stack and locals. The operand stack is empty and
-the locals contain the incoming arguments. When this basic block is
-compiled the operand stack and locals are associated with all its
-successors. For each successor this information is new (the operand
-stack or locals was unknown) we add it to the work list.
-
-The above guarantees that all reachable java basic blocks are going to
-be compiled.
diff --git a/java/docs/object-layout.txt b/java/docs/object-layout.txt
deleted file mode 100644
index 07e1e79..0000000
--- a/java/docs/object-layout.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-Object layout for Java objects
-------------------------------
-
-Each Java object will have the following basic layout:
-
-struct llvm_java_object_base {
-  struct llvm_java_object_header header;
-  struct llvm_java_object_vtable* vtable;
-};
-
-Additional fields go to the end of the struct.
-
-
-
-The 'llvm_java_object_header' is not defined yet.
-
-struct llvm_java_object_header {
-  // gc info, hash info, locking
-};
-
-
-
-The vtable holds a nested struct of a 'llvm_java_object_typeinfo'
-object. All methods are added after the nested struct and calls to
-them are made by fetching the correct function pointer from the vtable
-at runtime.
-
-struct llvm_java_object_vtable {
-  struct java_object_typeinfo typeinfo;
-};
-
-
-
-For each class we keep track of its depth and an array of vtables to
-all its superclasses. The depth of a class is the number of
-superclasses it has. So java.lang.Object has depth 0, class A (extends
-java.lang.Object) has depth 1 and so on. We also keep an array of
-pointers to interface vtables. Each interface (vtable) gets a unique
-number and it is indexed to this array. This mostly empty array is
-filled up to the last interface implemented (the interface with the
-largest index in this array). Since interfaces cannot implement other
-interfaces (they can only extend) the lastIface and interfaces are
-used to differentiate between class typeinfo's and interface
-typeinfo's. More specifically if interfaces == -1 then this typeinfo
-is for an interface and the lastIface field is the unique number of
-this interface in the objects interfaces array. The field lastIface is
-the max index of all implemented interfaces. For a class that doesn't
-implement any it is -1. An additional field describes the elementSize
-of an array. This allows us to implement System.arraycopy().
-
-struct llvm_java_object_typeinfo {
-  jint depth;
-  struct llvm_java_object_vtable** vtables;
-  jint lastIface;
-  union {
-    struct llvm_java_object_vtable** interfaces;
-    jint interfaceFlag;
-  };
-  jint elementSize;
-};
-
-The structure of llvm_java_object_typeinfo allows constant time
-dynamic type checks:
-
-int isInstanceOf(struct llvm_java_object_base* obj,
-                 struct llvm_java_object_vtable* clazz) {
-  struct llvm_java_object_vtable* objClazz = obj->vtable;
-  if (objClazz == clazz)
-    return 1;
-  // we are checking against a class' typeinfo
-  if (clazz->typeinfo.interfaceFlag != -1)
-    return objClazz->typeinfo.depth > clazz->typeinfo.depth &&
-           objClazz->typeinfo.vtables[clazz->typeinfo.depth] == clazz;
-  // otherwise we are checking against an interface's typeinfo
-  else
-    return objClazz->typeinfo.lastIface >= clazz->typeinfo.lastIface &&
-           objClazz->typeinfo.interfaces[clazz->typeinfo.lastIface];
-}
-
-Object Layout for Java Arrays
------------------------------
-
-Java primitive arrays inherit from java.lang.Object so they will at
-minimum have a nested java.lang.Object struct as their first element.
-
-struct javaIntArray {
-  struct java_lang_Object;
-  int length;
-  int array[0];
-};
-
-The typeinfo struct inside this class' vtable will be filled in the
-same way as if this was a proper class. This will allow isInstanceOf
-to work transparently for primitive java arrays.
-
-For reference type arrays we use the same struct for all types. The
-only difference is the vtable (actually the vtables are identical but
-they have different typeinfo structs to reflect the hierarchy of the
-contained elements):
-
-struct javaObjectArray {
-  struct java_lang_Object;
-  int length;
-  java_lang_Object array[0];
-};
-
-The typeinfo struct will reflect a hierarchy of array types as if B[]
-derives from A[] if B derives from A. This will allow isInstanceOf to
-work transparently for object arrays as well.
diff --git a/java/include/llvm/Java/Bytecode.h b/java/include/llvm/Java/Bytecode.h
deleted file mode 100644
index 2661575..0000000
--- a/java/include/llvm/Java/Bytecode.h
+++ /dev/null
@@ -1,276 +0,0 @@
-//===-- Bytecode.h - Java bytecode constants --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode constants.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_BYTECODE_H
-#define LLVM_JAVA_BYTECODE_H
-
-#include <llvm/Support/DataTypes.h>
-
-namespace llvm { namespace Java {
-
-    enum JType {
-      BOOLEAN = 4,
-      CHAR = 5,
-      FLOAT = 6,
-      DOUBLE = 7,
-      BYTE = 8,
-      SHORT = 9,
-      INT = 10,
-      LONG = 11,
-    };
-
-    enum Opcode {
-      NOP = 0x00,
-      ACONST_NULL = 0x01,
-      ICONST_M1 = 0x02,
-      ICONST_0 = 0x03,
-      ICONST_1 = 0x04,
-      ICONST_2 = 0x05,
-      ICONST_3 = 0x06,
-      ICONST_4 = 0x07,
-      ICONST_5 = 0x08,
-      LCONST_0 = 0x09,
-      LCONST_1 = 0x0A,
-      FCONST_0 = 0x0B,
-      FCONST_1 = 0x0C,
-      FCONST_2 = 0x0D,
-      DCONST_0 = 0x0E,
-      DCONST_1 = 0x0F,
-      BIPUSH = 0x10,
-      SIPUSH = 0x11,
-      LDC = 0x12,
-      LDC_W = 0x13,
-      LDC2_W = 0x14,
-      ILOAD = 0x15,
-      LLOAD = 0x16,
-      FLOAD = 0x17,
-      DLOAD = 0x18,
-      ALOAD = 0x19,
-      ILOAD_0 = 0x1A,
-      ILOAD_1 = 0x1B,
-      ILOAD_2 = 0x1C,
-      ILOAD_3 = 0x1D,
-      LLOAD_0 = 0x1E,
-      LLOAD_1 = 0x1F,
-      LLOAD_2 = 0x20,
-      LLOAD_3 = 0x21,
-      FLOAD_0 = 0x22,
-      FLOAD_1 = 0x23,
-      FLOAD_2 = 0x24,
-      FLOAD_3 = 0x25,
-      DLOAD_0 = 0x26,
-      DLOAD_1 = 0x27,
-      DLOAD_2 = 0x28,
-      DLOAD_3 = 0x29,
-      ALOAD_0 = 0x2A,
-      ALOAD_1 = 0x2B,
-      ALOAD_2 = 0x2C,
-      ALOAD_3 = 0x2D,
-      IALOAD = 0x2E,
-      LALOAD = 0x2F,
-      FALOAD = 0x30,
-      DALOAD = 0x31,
-      AALOAD = 0x32,
-      BALOAD = 0x33,
-      CALOAD = 0x34,
-      SALOAD = 0x35,
-      ISTORE = 0x36,
-      LSTORE = 0x37,
-      FSTORE = 0x38,
-      DSTORE = 0x39,
-      ASTORE = 0x3A,
-      ISTORE_0 = 0x3B,
-      ISTORE_1 = 0x3C,
-      ISTORE_2 = 0x3D,
-      ISTORE_3 = 0x3E,
-      LSTORE_0 = 0x3F,
-      LSTORE_1 = 0x40,
-      LSTORE_2 = 0x41,
-      LSTORE_3 = 0x42,
-      FSTORE_0 = 0x43,
-      FSTORE_1 = 0x44,
-      FSTORE_2 = 0x45,
-      FSTORE_3 = 0x46,
-      DSTORE_0 = 0x47,
-      DSTORE_1 = 0x48,
-      DSTORE_2 = 0x49,
-      DSTORE_3 = 0x4A,
-      ASTORE_0 = 0x4B,
-      ASTORE_1 = 0x4C,
-      ASTORE_2 = 0x4D,
-      ASTORE_3 = 0x4E,
-      IASTORE = 0x4F,
-      LASTORE = 0x50,
-      FASTORE = 0x51,
-      DASTORE = 0x52,
-      AASTORE = 0x53,
-      BASTORE = 0x54,
-      CASTORE = 0x55,
-      SASTORE = 0x56,
-      POP = 0x57,
-      POP2 = 0x58,
-      DUP = 0x59,
-      DUP_X1 = 0x5A,
-      DUP_X2 = 0x5B,
-      DUP2 = 0x5C,
-      DUP2_X1 = 0x5D,
-      DUP2_X2 = 0x5E,
-      SWAP = 0x5F,
-      IADD = 0x60,
-      LADD = 0x61,
-      FADD = 0x62,
-      DADD = 0x63,
-      ISUB = 0x64,
-      LSUB = 0x65,
-      FSUB = 0x66,
-      DSUB = 0x67,
-      IMUL = 0x68,
-      LMUL = 0x69,
-      FMUL = 0x6A,
-      DMUL = 0x6B,
-      IDIV = 0x6C,
-      LDIV = 0x6D,
-      FDIV = 0x6E,
-      DDIV = 0x6F,
-      IREM = 0x70,
-      LREM = 0x71,
-      FREM = 0x72,
-      DREM = 0x73,
-      INEG = 0x74,
-      LNEG = 0x75,
-      FNEG = 0x76,
-      DNEG = 0x77,
-      ISHL = 0x78,
-      LSHL = 0x79,
-      ISHR = 0x7A,
-      LSHR = 0x7B,
-      IUSHR = 0x7C,
-      LUSHR = 0x7D,
-      IAND = 0x7E,
-      LAND = 0x7F,
-      IOR = 0x80,
-      LOR = 0x81,
-      IXOR = 0x82,
-      LXOR = 0x83,
-      IINC = 0x84,
-      I2L = 0x85,
-      I2F = 0x86,
-      I2D = 0x87,
-      L2I = 0x88,
-      L2F = 0x89,
-      L2D = 0x8A,
-      F2I = 0x8B,
-      F2L = 0x8C,
-      F2D = 0x8D,
-      D2I = 0x8E,
-      D2L = 0x8F,
-      D2F = 0x90,
-      I2B = 0x91,
-      I2C = 0x92,
-      I2S = 0x93,
-      LCMP = 0x94,
-      FCMPL = 0x95,
-      FCMPG = 0x96,
-      DCMPL = 0x97,
-      DCMPG = 0x98,
-      IFEQ = 0x99,
-      IFNE = 0x9A,
-      IFLT = 0x9B,
-      IFGE = 0x9C,
-      IFGT = 0x9D,
-      IFLE = 0x9E,
-      IF_ICMPEQ = 0x9F,
-      IF_ICMPNE = 0xA0,
-      IF_ICMPLT = 0xA1,
-      IF_ICMPGE = 0xA2,
-      IF_ICMPGT = 0xA3,
-      IF_ICMPLE = 0xA4,
-      IF_IACMPEQ = 0xA5,
-      IF_IACMPNE = 0xA6,
-      GOTO = 0xA7,
-      JSR = 0xA8,
-      RET = 0xA9,
-      TABLESWITCH = 0xAA,
-      LOOKUPSWITCH = 0xAB,
-      IRETURN = 0xAC,
-      LRETURN = 0xAD,
-      FRETURN = 0xAE,
-      DRETURN = 0xAF,
-      ARETURN = 0xB0,
-      RETURN = 0xB1,
-      GETSTATIC = 0xB2,
-      PUTSTATIC = 0xB3,
-      GETFIELD = 0xB4,
-      PUTFIELD = 0xB5,
-      INVOKEVIRTUAL = 0xB6,
-      INVOKESPECIAL = 0xB7,
-      INVOKESTATIC = 0xB8,
-      INVOKEINTERFACE = 0xB9,
-      XXXUNUSEDXXX = 0xBA,
-      NEW = 0xBB,
-      NEWARRAY = 0xBC,
-      ANEWARRAY = 0xBD,
-      ARRAYLENGTH = 0xBE,
-      ATHROW = 0xBF,
-      CHECKCAST = 0xC0,
-      INSTANCEOF = 0xC1,
-      MONITORENTER = 0xC2,
-      MONITOREXIT = 0xC3,
-      WIDE = 0xC4,
-      MULTIANEWARRAY = 0xC5,
-      IFNULL = 0xC6,
-      IFNONNULL = 0xC7,
-      GOTO_W = 0xC8,
-      JSR_W = 0xC9,
-      BREAKPOINT = 0xCA,
-      IMPDEP1 = 0xFE,
-      IMPDEP2 = 0xFF,
-    };
-
-  inline int readSByte(const uint8_t* code, unsigned& i) {
-    return ((int8_t*)code)[++i];
-  }
-
-  inline unsigned readUByte(const uint8_t* code, unsigned& i) {
-    return code[++i];
-  }
-
-  inline int readSShort(const uint8_t* code, unsigned& i) {
-    int val = readSByte(code, i) << 8;
-    return val | readUByte(code, i);
-  }
-
-  inline unsigned readUShort(const uint8_t* code, unsigned& i) {
-    unsigned val = readUByte(code, i) << 8;
-    return val | readUByte(code, i);
-  }
-
-  inline int readSInt(const uint8_t* code, unsigned& i) {
-    int val = readUShort(code, i) << 16;
-    return val | readUShort(code, i);
-  }
-
-  inline unsigned readUInt(const uint8_t* code, unsigned& i) {
-    return readSInt(code, i);
-  }
-
-  inline void skipPadBytes(unsigned& i) {
-    ++i;
-    unsigned lastTwoBits = i & 0x3;
-    i += (4 - lastTwoBits) & 0x3;
-    --i;
-  }
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_BYTECODE_H
diff --git a/java/include/llvm/Java/BytecodeParser.h b/java/include/llvm/Java/BytecodeParser.h
deleted file mode 100644
index 352d168..0000000
--- a/java/include/llvm/Java/BytecodeParser.h
+++ /dev/null
@@ -1,948 +0,0 @@
-//===-- BytecodeParser.h - Java bytecode parser -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode parser baseclass: a class that
-// helps writing Java bytecode parsers.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_BYTECODEPARSER_H
-#define LLVM_JAVA_BYTECODEPARSER_H
-
-#include <llvm/Java/Bytecode.h>
-
-namespace llvm { namespace Java {
-
-  /// @brief This class provides a base class that eases bytecode
-  /// parsing.
-  ///
-  /// By default all the do_* methods do nothing. A subclass can
-  /// override at will to provide specific behaviour.
-  template <typename SubClass>
-  class BytecodeParser {
-  protected:
-    typedef std::vector<std::pair<int, unsigned> > SwitchCases;
-
-  private:
-    SwitchCases switchCases_;
-
-  protected:
-#define THIS ((SubClass*)this)
-
-    /// @brief parse code pointed to by \c code beginning at \c start
-    /// bytecode and ending at \c end bytecode
-    ///
-    /// This function parses the code pointed to by \c code and calls
-    /// the subclass's do_<bytecode> method appropriately. When this
-    /// function returns all code in [start, end) is parsed.
-    void parse(const uint8_t* code, unsigned start, unsigned end) {
-      for (unsigned i = start; i < end; ++i) {
-        unsigned curBC = i;
-        bool wide = code[i] == WIDE;
-        i += wide;
-        THIS->pre_inst(curBC);
-        switch (code[i]) {
-        case ACONST_NULL:
-          THIS->do_aconst_null();
-          break;
-        case ICONST_M1:
-        case ICONST_0:
-        case ICONST_1:
-        case ICONST_2:
-        case ICONST_3:
-        case ICONST_4:
-        case ICONST_5:
-          THIS->do_iconst(code[i]-ICONST_0);
-          break;
-        case LCONST_0:
-        case LCONST_1:
-          THIS->do_lconst(code[i]-LCONST_0);
-          break;
-        case FCONST_0:
-        case FCONST_1:
-        case FCONST_2:
-          THIS->do_fconst(code[i]-FCONST_0);
-          break;
-        case DCONST_0:
-        case DCONST_1:
-          THIS->do_dconst(code[i]-DCONST_0);
-          break;
-        case BIPUSH:
-          THIS->do_iconst(readSByte(code, i));
-          break;
-        case SIPUSH:
-          THIS->do_iconst(readSShort(code, i));
-          break;
-        case LDC:
-          THIS->do_ldc(readUByte(code, i));
-          break;
-        case LDC_W:
-          THIS->do_ldc(readUShort(code, i));
-          break;
-        case LDC2_W:
-          THIS->do_ldc2(readUShort(code, i));
-          break;
-        case ILOAD:
-          THIS->do_iload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case LLOAD:
-          THIS->do_lload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case FLOAD:
-          THIS->do_fload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case DLOAD:
-          THIS->do_dload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ALOAD:
-          THIS->do_aload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ILOAD_0:
-        case ILOAD_1:
-        case ILOAD_2:
-        case ILOAD_3:
-          THIS->do_iload(code[i]-ILOAD_0);
-          break;
-        case LLOAD_0:
-        case LLOAD_1:
-        case LLOAD_2:
-        case LLOAD_3:
-          THIS->do_lload(code[i]-LLOAD_0);
-          break;
-        case FLOAD_0:
-        case FLOAD_1:
-        case FLOAD_2:
-        case FLOAD_3:
-          THIS->do_fload(code[i]-FLOAD_0);
-          break;
-        case DLOAD_0:
-        case DLOAD_1:
-        case DLOAD_2:
-        case DLOAD_3:
-          THIS->do_dload(code[i]-DLOAD_0);
-          break;
-        case ALOAD_0:
-        case ALOAD_1:
-        case ALOAD_2:
-        case ALOAD_3:
-          THIS->do_aload(code[i]-ALOAD_0);
-          break;
-        case IALOAD:
-          THIS->do_iaload();
-          break;
-        case LALOAD:
-          THIS->do_laload();
-          break;
-        case FALOAD:
-          THIS->do_faload();
-          break;
-        case DALOAD:
-          THIS->do_daload();
-          break;
-        case AALOAD:
-          THIS->do_aaload();
-          break;
-        case BALOAD:
-          THIS->do_baload();
-          break;
-        case CALOAD:
-          THIS->do_caload();
-          break;
-        case SALOAD:
-          THIS->do_saload();
-          break;
-        case ISTORE:
-          THIS->do_istore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case LSTORE:
-          THIS->do_lstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case FSTORE:
-          THIS->do_fstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case DSTORE:
-          THIS->do_dstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ASTORE:
-          THIS->do_astore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ISTORE_0:
-        case ISTORE_1:
-        case ISTORE_2:
-        case ISTORE_3:
-          THIS->do_istore(code[i]-ISTORE_0);
-          break;
-        case LSTORE_0:
-        case LSTORE_1:
-        case LSTORE_2:
-        case LSTORE_3:
-          THIS->do_lstore(code[i]-LSTORE_0);
-          break;
-        case FSTORE_0:
-        case FSTORE_1:
-        case FSTORE_2:
-        case FSTORE_3:
-          THIS->do_fstore(code[i]-FSTORE_0);
-          break;
-        case DSTORE_0:
-        case DSTORE_1:
-        case DSTORE_2:
-        case DSTORE_3:
-          THIS->do_dstore(code[i]-DSTORE_0);
-          break;
-        case ASTORE_0:
-        case ASTORE_1:
-        case ASTORE_2:
-        case ASTORE_3:
-          THIS->do_astore(code[i]-ASTORE_0);
-          break;
-        case IASTORE:
-          THIS->do_iastore();
-          break;
-        case LASTORE:
-          THIS->do_lastore();
-          break;
-        case FASTORE:
-          THIS->do_fastore();
-          break;
-        case DASTORE:
-          THIS->do_dastore();
-          break;
-        case AASTORE:
-          THIS->do_aastore();
-          break;
-        case BASTORE:
-          THIS->do_bastore();
-          break;
-        case CASTORE:
-          THIS->do_castore();
-          break;
-        case SASTORE:
-          THIS->do_sastore();
-          break;
-        case POP:
-          THIS->do_pop();
-          break;
-        case POP2:
-          THIS->do_pop2();
-          break;
-        case DUP:
-          THIS->do_dup();
-          break;
-        case DUP_X1:
-          THIS->do_dup_x1();
-          break;
-        case DUP_X2:
-          THIS->do_dup_x2();
-          break;
-        case DUP2:
-          THIS->do_dup2();
-          break;
-        case DUP2_X1:
-          THIS->do_dup2_x1();
-          break;
-        case DUP2_X2:
-          THIS->do_dup2_x2();
-          break;
-        case SWAP:
-          THIS->do_swap();
-          break;
-        case IADD:
-          THIS->do_iadd();
-          break;
-        case LADD:
-          THIS->do_ladd();
-          break;
-        case FADD:
-          THIS->do_fadd();
-          break;
-        case DADD:
-          THIS->do_dadd();
-          break;
-        case ISUB:
-          THIS->do_isub();
-          break;
-        case LSUB:
-          THIS->do_lsub();
-          break;
-        case FSUB:
-          THIS->do_fsub();
-          break;
-        case DSUB:
-          THIS->do_dsub();
-          break;
-        case IMUL:
-          THIS->do_imul();
-          break;
-        case LMUL:
-          THIS->do_lmul();
-          break;
-        case FMUL:
-          THIS->do_fmul();
-          break;
-        case DMUL:
-          THIS->do_dmul();
-          break;
-        case IDIV:
-          THIS->do_idiv();
-          break;
-        case LDIV:
-          THIS->do_ldiv();
-          break;
-        case FDIV:
-          THIS->do_fdiv();
-          break;
-        case DDIV:
-          THIS->do_ddiv();
-          break;
-        case IREM:
-          THIS->do_irem();
-          break;
-        case LREM:
-          THIS->do_lrem();
-          break;
-        case FREM:
-          THIS->do_frem();
-          break;
-        case DREM:
-          THIS->do_drem();
-          break;
-        case INEG:
-          THIS->do_ineg();
-          break;
-        case LNEG:
-          THIS->do_lneg();
-          break;
-        case FNEG:
-          THIS->do_fneg();
-          break;
-        case DNEG:
-          THIS->do_dneg();
-          break;
-        case ISHL:
-          THIS->do_ishl();
-          break;
-        case LSHL:
-          THIS->do_lshl();
-          break;
-        case ISHR:
-          THIS->do_ishr();
-          break;
-        case LSHR:
-          THIS->do_lshr();
-          break;
-        case IUSHR:
-          THIS->do_iushr();
-          break;
-        case LUSHR:
-          THIS->do_lushr();
-          break;
-        case IAND:
-          THIS->do_iand();
-          break;
-        case LAND:
-          THIS->do_land();
-          break;
-        case IOR:
-          THIS->do_ior();
-          break;
-        case LOR:
-          THIS->do_lor();
-          break;
-        case IXOR:
-          THIS->do_ixor();
-          break;
-        case LXOR:
-          THIS->do_lxor();
-          break;
-        case IINC: {
-          unsigned index = wide ? readUShort(code, i) : readUByte(code, i);
-          int amount = wide ? readSShort(code, i) : readSByte(code, i);
-          THIS->do_iinc(index, amount);
-          break;
-        }
-        case I2L:
-          THIS->do_i2l();
-          break;
-        case I2F:
-          THIS->do_i2f();
-          break;
-        case I2D:
-          THIS->do_i2d();
-          break;
-        case L2I:
-          THIS->do_l2i();
-          break;
-        case L2F:
-          THIS->do_l2f();
-          break;
-        case L2D:
-          THIS->do_l2d();
-          break;
-        case F2I:
-          THIS->do_f2i();
-          break;
-        case F2L:
-          THIS->do_f2l();
-          break;
-        case F2D:
-          THIS->do_f2d();
-          break;
-        case D2I:
-          THIS->do_d2i();
-          break;
-        case D2L:
-          THIS->do_d2l();
-          break;
-        case D2F:
-          THIS->do_d2f();
-          break;
-        case I2B:
-          THIS->do_i2b();
-          break;
-        case I2C:
-          THIS->do_i2c();
-          break;
-        case I2S:
-          THIS->do_i2s();
-          break;
-        case LCMP:
-          THIS->do_lcmp();
-          break;
-        case FCMPL:
-          THIS->do_fcmpl();
-          break;
-        case FCMPG:
-          THIS->do_fcmpg();
-          break;
-        case DCMPL:
-          THIS->do_dcmpl();
-          break;
-        case DCMPG:
-          THIS->do_dcmpg();
-          break;
-        case IFEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifeq(t, i + 1);
-          break;
-        }
-        case IFNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifne(t, i + 1);
-          break;
-        }
-        case IFLT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_iflt(t, i + 1);
-          break;
-        }
-        case IFGE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifge(t, i + 1);
-          break;
-        }
-        case IFGT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifgt(t, i + 1);
-          break;
-        }
-        case IFLE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifle(t, i + 1);
-          break;
-        }
-        case IF_ICMPEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpeq(t, i + 1);
-          break;
-        }
-        case IF_ICMPNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpne(t, i + 1);
-          break;
-        }
-        case IF_ICMPLT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmplt(t, i + 1);
-          break;
-        }
-        case IF_ICMPGE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpge(t, i + 1);
-          break;
-        }
-        case IF_ICMPGT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpgt(t, i + 1);
-          break;
-        }
-        case IF_ICMPLE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmple(t, i + 1);
-          break;
-        }
-        case IF_IACMPEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_acmpeq(t, i + 1);
-          break;
-        }
-        case IF_IACMPNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_acmpne(t, i + 1);
-          break;
-        }
-        case GOTO:
-          THIS->do_goto(curBC + readSShort(code, i));
-          break;
-        case JSR: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_jsr(t, i + 1);
-          break;
-        }
-        case RET:
-          THIS->do_ret(readUByte(code, i));
-          break;
-        case TABLESWITCH: {
-          switchCases_.clear();
-          skipPadBytes(i);
-          int def = readSInt(code, i);
-          int low = readSInt(code, i);
-          int high = readSInt(code, i);
-          switchCases_.reserve(high - low + 1);
-          while (low <= high)
-            switchCases_.push_back(
-              std::make_pair(low++, curBC + readSInt(code, i)));
-          THIS->do_tableswitch(curBC + def, switchCases_);
-          break;
-        }
-        case LOOKUPSWITCH: {
-          switchCases_.clear();
-          skipPadBytes(i);
-          int def = readSInt(code, i);
-          int pairCount = readSInt(code, i);
-          switchCases_.reserve(pairCount);
-          while (pairCount--) {
-            int value = readSInt(code, i);
-            switchCases_.push_back(
-              std::make_pair(value, curBC + readSInt(code, i)));
-          }
-          THIS->do_lookupswitch(curBC + def, switchCases_);
-          break;
-        }
-        case IRETURN:
-          THIS->do_ireturn();
-          break;
-        case LRETURN:
-          THIS->do_lreturn();
-          break;
-        case FRETURN:
-          THIS->do_freturn();
-          break;
-        case DRETURN:
-          THIS->do_dreturn();
-          break;
-        case ARETURN:
-          THIS->do_areturn();
-          break;
-        case RETURN:
-          THIS->do_return();
-          break;
-        case GETSTATIC:
-          THIS->do_getstatic(readUShort(code, i));
-          break;
-        case PUTSTATIC:
-          THIS->do_putstatic(readUShort(code, i));
-          break;
-        case GETFIELD:
-          THIS->do_getfield(readUShort(code, i));
-          break;
-        case PUTFIELD:
-          THIS->do_putfield(readUShort(code, i));
-          break;
-        case INVOKEVIRTUAL:
-          THIS->do_invokevirtual(readUShort(code, i));
-          break;
-        case INVOKESPECIAL:
-          THIS->do_invokespecial(readUShort(code, i));
-          break;
-        case INVOKESTATIC:
-          THIS->do_invokestatic(readUShort(code, i));
-          break;
-        case INVOKEINTERFACE: {
-          THIS->do_invokeinterface(readUShort(code, i));
-          unsigned count = readUByte(code, i);
-          unsigned zero = readUByte(code, i);
-          break;
-        }
-        case XXXUNUSEDXXX:
-          // FIXME: must throw something
-          break;
-        case NEW:
-          THIS->do_new(readUShort(code, i));
-          break;
-        case NEWARRAY:
-          THIS->do_newarray(static_cast<JType>(readUByte(code, i)));
-          break;
-        case ANEWARRAY:
-          THIS->do_anewarray(readUShort(code, i));
-          break;
-        case ARRAYLENGTH:
-          THIS->do_arraylength();
-          break;
-        case ATHROW:
-          THIS->do_athrow();
-          break;
-        case CHECKCAST:
-          THIS->do_checkcast(readUShort(code, i));
-          break;
-        case INSTANCEOF:
-          THIS->do_instanceof(readUShort(code, i));
-          break;
-        case MONITORENTER:
-          THIS->do_monitorenter();
-          break;
-        case MONITOREXIT:
-          THIS->do_monitorexit();
-          break;
-        case WIDE:
-          // FIXME: must throw something
-          break;
-        case MULTIANEWARRAY: {
-          unsigned index = readUShort(code, i);
-          unsigned dims = readUByte(code, i);
-          THIS->do_multianewarray(index, dims);
-          break;
-        }
-        case IFNULL: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifnull(t, i + 1);
-          break;
-        }
-        case IFNONNULL: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifnonnull(t, i + 1);
-          break;
-        }
-        case GOTO_W:
-          THIS->do_goto(curBC + readSInt(code, i));
-          break;
-        case JSR_W: {
-          unsigned t = curBC + readSInt(code, i);
-          THIS->do_jsr(t, i + 1);
-          break;
-        }
-        case BREAKPOINT:
-        case IMPDEP1:
-        case IMPDEP2:
-        case NOP:
-          break;
-        default:
-          // FIXME: must throw something
-          break;
-        }
-      }
-    }
-
-#undef THIS
-
-    /// @brief called before every bytecode
-    void pre_inst(unsigned bcI) { }
-    /// @brief called on ACONST_NULL
-    void do_aconst_null() { }
-    /// @brief called on ICONST_<n>, SIPUSH and BIPUSH
-    void do_iconst(int value) { }
-    /// @brief called on LCONST_<n>
-    void do_lconst(long long value) { }
-    /// @brief called on FCONST_<n>
-    void do_fconst(float value) { }
-    /// @brief called on DCONST_<n>
-    void do_dconst(double value) { }
-    /// @brief called on LDC and LDC_W
-    void do_ldc(unsigned index) { }
-    /// @brief called on LDC2_W
-    void do_ldc2(unsigned index) { }
-    /// @brief called on ILOAD and ILOAD_<n>
-    void do_iload(unsigned index) { }
-    /// @brief called on LLOAD and LLOAD_<n>
-    void do_lload(unsigned index) { }
-    /// @brief called on FLOAD and FLOAD_<n>
-    void do_fload(unsigned index) { }
-    /// @brief called on DLOAD and DLOAD_<n>
-    void do_dload(unsigned index) { }
-    /// @brief called on ALOAD and ALOAD_<n>
-    void do_aload(unsigned index) { }
-    /// @brief called on IALOAD
-    void do_iaload() { }
-    /// @brief called on LALOAD
-    void do_laload() { }
-    /// @brief called on FALOAD
-    void do_faload() { }
-    /// @brief called on DALOAD
-    void do_daload() { }
-    /// @brief called on AALOAD
-    void do_aaload() { }
-    /// @brief called on BALOAD
-    void do_baload() { }
-    /// @brief called on CALOAD
-    void do_caload() { }
-    /// @brief called on SALOAD
-    void do_saload() { }
-    /// @brief called on ISTORE and ISTORE_<n>
-    void do_istore(unsigned index) { }
-    /// @brief called on LSTORE and LSTORE_<n>
-    void do_lstore(unsigned index) { }
-    /// @brief called on FSTORE and FSTORE_<n>
-    void do_fstore(unsigned index) { }
-    /// @brief called on DSTORE and DSTORE_<n>
-    void do_dstore(unsigned index) { }
-    /// @brief called on ASTORE and ASTORE_<n>
-    void do_astore(unsigned index) { }
-    /// @brief called on IASTORE
-    void do_iastore() { }
-    /// @brief called on LASTORE
-    void do_lastore() { }
-    /// @brief called on FASTORE
-    void do_fastore() { }
-    /// @brief called on DASTORE
-    void do_dastore() { }
-    /// @brief called on AASTORE
-    void do_aastore() { }
-    /// @brief called on BASTORE
-    void do_bastore() { }
-    /// @brief called on CASTORE
-    void do_castore() { }
-    /// @brief called on SASTORE
-    void do_sastore() { }
-    /// @brief called on POP
-    void do_pop() { }
-    /// @brief called on POP2
-    void do_pop2() { }
-    /// @brief called on DUP
-    void do_dup() { }
-    /// @brief called on DUP_X1
-    void do_dup_x1() { }
-    /// @brief called on DUP_X2
-    void do_dup_x2() { }
-    /// @brief called on DUP2
-    void do_dup2() { }
-    /// @brief called on DUP2_X1
-    void do_dup2_x1() { }
-    /// @brief called on DUP2_X2
-    void do_dup2_x2() { }
-    /// @brief called on SWAP
-    void do_swap() { }
-    /// @brief called on IADD
-    void do_iadd() { }
-    /// @brief called on LADD
-    void do_ladd() { }
-    /// @brief called on FADD
-    void do_fadd() { }
-    /// @brief called on DADD
-    void do_dadd() { }
-    /// @brief called on ISUB
-    void do_isub() { }
-    /// @brief called on LSUB
-    void do_lsub() { }
-    /// @brief called on FSUB
-    void do_fsub() { }
-    /// @brief called on DSUB
-    void do_dsub() { }
-    /// @brief called on IMUL
-    void do_imul() { }
-    /// @brief called on LMUL
-    void do_lmul() { }
-    /// @brief called on FMUL
-    void do_fmul() { }
-    /// @brief called on DMUL
-    void do_dmul() { }
-    /// @brief called on IDIV
-    void do_idiv() { }
-    /// @brief called on LDIV
-    void do_ldiv() { }
-    /// @brief called on FDIV
-    void do_fdiv() { }
-    /// @brief called on DDIV
-    void do_ddiv() { }
-    /// @brief called on IREM
-    void do_irem() { }
-    /// @brief called on LREM
-    void do_lrem() { }
-    /// @brief called on FREM
-    void do_frem() { }
-    /// @brief called on DREM
-    void do_drem() { }
-    /// @brief called on INEG
-    void do_ineg() { }
-    /// @brief called on LNEG
-    void do_lneg() { }
-    /// @brief called on FNEG
-    void do_fneg() { }
-    /// @brief called on DNEG
-    void do_dneg() { }
-    /// @brief called on ISHL
-    void do_ishl() { }
-    /// @brief called on LSHL
-    void do_lshl() { }
-    /// @brief called on ISHR
-    void do_ishr() { }
-    /// @brief called on LSHR
-    void do_lshr() { }
-    /// @brief called on IUSHR
-    void do_iushr() { }
-    /// @brief called on LUSHR
-    void do_lushr() { }
-    /// @brief called on IAND
-    void do_iand() { }
-    /// @brief called on LAND
-    void do_land() { }
-    /// @brief called on IOR
-    void do_ior() { }
-    /// @brief called on LOR
-    void do_lor() { }
-    /// @brief called on IXOR
-    void do_ixor() { }
-    /// @brief called on LXOR
-    void do_lxor() { }
-    /// @brief called on IINC
-    void do_iinc(unsigned index, int amount) { }
-    /// @brief called on I2L
-    void do_i2l() { }
-    /// @brief called on I2F
-    void do_i2f() { }
-    /// @brief called on I2D
-    void do_i2d() { }
-    /// @brief called on L2I
-    void do_l2i() { }
-    /// @brief called on L2F
-    void do_l2f() { }
-    /// @brief called on L2D
-    void do_l2d() { }
-    /// @brief called on F2I
-    void do_f2i() { }
-    /// @brief called on F2L
-    void do_f2l() { }
-    /// @brief called on F2D
-    void do_f2d() { }
-    /// @brief called on D2I
-    void do_d2i() { }
-    /// @brief called on D2L
-    void do_d2l() { }
-    /// @brief called on D2F
-    void do_d2f() { }
-    /// @brief called on I2B
-    void do_i2b() { }
-    /// @brief called on I2C
-    void do_i2c() { }
-    /// @brief called on I2S
-    void do_i2s() { }
-    /// @brief called on LCMP
-    void do_lcmp() { }
-    /// @brief called on FCMPL
-    void do_fcmpl() { }
-    /// @brief called on DCMPL
-    void do_dcmpl() { }
-    /// @brief called on FCMPG
-    void do_fcmpg() { }
-    /// @brief called on DCMPG
-    void do_dcmpg() { }
-    /// @brief called on IFEQ
-    void do_ifeq(unsigned t, unsigned f) { }
-    /// @brief called on IFNE
-    void do_ifne(unsigned t, unsigned f) { }
-    /// @brief called on IFLT
-    void do_iflt(unsigned t, unsigned f) { }
-    /// @brief called on IFGE
-    void do_ifge(unsigned t, unsigned f) { }
-    /// @brief called on IFGT
-    void do_ifgt(unsigned t, unsigned f) { }
-    /// @brief called on IFLE
-    void do_ifle(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPEQ
-    void do_if_icmpeq(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPNE
-    void do_if_icmpne(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPLT
-    void do_if_icmplt(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPGE
-    void do_if_icmpge(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPGT
-    void do_if_icmpgt(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPLE
-    void do_if_icmple(unsigned t, unsigned f) { }
-    /// @brief called on IF_ACMPEQ
-    void do_if_acmpeq(unsigned t, unsigned f) { }
-    /// @brief called on IF_ACMPNE
-    void do_if_acmpne(unsigned t, unsigned f) { }
-    /// @brief called on GOTO and GOTO_W
-    void do_goto(unsigned target) { }
-    /// @brief called on JSR and JSR_W
-    void do_jsr(unsigned target, unsigned retAddress) { }
-    /// @brief called on RET
-    void do_ret(unsigned index) { }
-    /// @brief called on TABLESWITCH
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) { }
-    /// @brief called on LOOKUPSWITCH
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) { }
-    /// @brief called on IRETURN
-    void do_ireturn() { }
-    /// @brief called on LRETURN
-    void do_lreturn() { }
-    /// @brief called on FRETURN
-    void do_freturn() { }
-    /// @brief called on DRETURN
-    void do_dreturn() { }
-    /// @brief called on ARETURN
-    void do_areturn() { }
-    /// @brief called on RETURN
-    void do_return() { }
-    /// @brief called on GETSTATIC
-    void do_getstatic(unsigned index) { }
-    /// @brief called on PUTSTATIC
-    void do_putstatic(unsigned index) { }
-    /// @brief called on GETFIELD
-    void do_getfield(unsigned index) { }
-    /// @brief called on PUTFIELD
-    void do_putfield(unsigned index) { }
-    /// @brief called on INVOKEVIRTUAL
-    void do_invokevirtual(unsigned index) { }
-    /// @brief called on INVOKESPECIAL
-    void do_invokespecial(unsigned index) { }
-    /// @brief called on INVOKESTATIC
-    void do_invokestatic(unsigned index) { }
-    /// @brief called on INVOKEINTERFACE
-    void do_invokeinterface(unsigned index) { }
-    /// @brief called on NEW
-    void do_new(unsigned index) { }
-    /// @brief called on NEWARRAY
-    void do_newarray(JType type) { }
-    /// @brief called on ANEWARRAY
-    void do_anewarray(unsigned index) { }
-    /// @brief called on ARRAYLENGTH
-    void do_arraylength() { }
-    /// @brief called on ATHROW
-    void do_athrow() { }
-    /// @brief called on CHECKCAST
-    void do_checkcast(unsigned index) { }
-    /// @brief called on INSTANCEOF
-    void do_instanceof(unsigned index) { }
-    /// @brief called on MONITORENTER
-    void do_monitorenter() { }
-    /// @brief called on MONITOREXIT
-    void do_monitorexit() { }
-    /// @brief called on MULTIANEWARRAY
-    void do_multianewarray(unsigned index, unsigned dims) { }
-    /// @brief called on IFNULL
-    void do_ifnull(unsigned t, unsigned f) { }
-    /// @brief called on IFNONNULL
-    void do_ifnonnull(unsigned t, unsigned f) { }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_BYTECODEPARSER_H
diff --git a/java/include/llvm/Java/ClassFile.h b/java/include/llvm/Java/ClassFile.h
deleted file mode 100644
index 83ab6ae..0000000
--- a/java/include/llvm/Java/ClassFile.h
+++ /dev/null
@@ -1,524 +0,0 @@
-//===-- ClassFile.h - ClassFile support library -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the ClassFile and subordinate
-// classes, which represent a parsed class file.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_CLASSFILE_H
-#define LLVM_JAVA_CLASSFILE_H
-
-#include <llvm/System/Path.h>
-
-#include <iosfwd>
-#include <stdexcept>
-#include <vector>
-
-#include <llvm/Support/DataTypes.h>
-
-namespace llvm { namespace Java {
-
-  // Forward declarations
-  class Attribute;
-  class ConstantValueAttribute;
-  class CodeAttribute;
-  class ExceptionsAttribute;
-  class Constant;
-  class ConstantClass;
-  class ConstantFieldRef;
-  class ConstantInterfaceMethodRef;
-  class ConstantMemberRef;
-  class ConstantMethodRef;
-  class ConstantNameAndType;
-  class ConstantUtf8;
-  class ClassFile;
-  class Field;
-  class Method;
-
-  enum AccessFlag {
-    ACC_PUBLIC       = 0x0001,
-    ACC_PRIVATE      = 0x0002,
-    ACC_PROTECTED    = 0x0004,
-    ACC_STATIC       = 0x0008,
-    ACC_FINAL        = 0x0010,
-    ACC_SUPER        = 0x0020,
-    ACC_SYNCHRONIZED = 0x0020,
-    ACC_VOLATILE     = 0x0040,
-    ACC_TRANSIENT    = 0x0080,
-    ACC_NATIVE       = 0x0100,
-    ACC_INTERFACE    = 0x0200,
-    ACC_ABSTRACT     = 0x0400,
-    ACC_STRICT       = 0x0800,
-  };
-
-  typedef std::vector<Constant*> ConstantPool;
-  typedef std::vector<Field*> Fields;
-  typedef std::vector<Method*> Methods;
-  typedef std::vector<Attribute*> Attributes;
-
-  Attribute* getAttribute(const Attributes& attrs,
-                          const std::string& name);
-
-  class ClassFile {
-    static const ClassFile* readClassFile(std::istream& is);
-    static std::vector<llvm::sys::Path> getClassPath();
-    static sys::Path getFileForClass(const std::string& classname);
-
-  public:
-    static const ClassFile* get(const std::string& classname);
-
-    ~ClassFile();
-
-    uint16_t getMinorVersion() const { return minorV_; }
-    uint16_t getMajorVersion() const { return majorV_; }
-
-    unsigned getNumConstants() const { return cPool_.size(); }
-    Constant* getConstant(unsigned index) const { return cPool_[index]; }
-    ConstantClass* getConstantClass(unsigned index) const;
-    ConstantMemberRef* getConstantMemberRef(unsigned index) const;
-    ConstantFieldRef* getConstantFieldRef(unsigned index) const;
-    ConstantMethodRef* getConstantMethodRef(unsigned index) const;
-    ConstantInterfaceMethodRef*
-    getConstantInterfaceMethodRef(unsigned index) const;
-    ConstantNameAndType* getConstantNameAndType(unsigned index) const;
-    ConstantUtf8* getConstantUtf8(unsigned index) const;
-
-    bool isPublic() const { return accessFlags_ & ACC_PUBLIC; }
-    bool isFinal() const { return accessFlags_ & ACC_FINAL; }
-    bool isSuper() const { return accessFlags_ & ACC_SUPER; }
-    bool isInterface() const { return accessFlags_ & ACC_INTERFACE; }
-    bool isAbstract() const { return accessFlags_ & ACC_ABSTRACT; }
-
-    unsigned getThisClassIndex() const { return thisClassIdx_; }
-    ConstantClass* getThisClass() const {
-      return getConstantClass(thisClassIdx_);
-    }
-    unsigned getSuperClassIndex() const { return superClassIdx_; }
-    ConstantClass* getSuperClass() const {
-      return superClassIdx_ ? getConstantClass(superClassIdx_) : NULL;
-    }
-
-    unsigned getNumInterfaces() const { return interfaces_.size(); }
-    unsigned getInterfaceIndex(unsigned i) const { return interfaces_[i]; }
-    ConstantClass* getInterface(unsigned i) const {
-      return getConstantClass(getInterfaceIndex(i));
-    }
-
-    const Fields& getFields() const { return fields_; }
-
-    const Methods& getMethods() const { return methods_; }
-
-    const Attributes& getAttributes() const { return attributes_; }
-
-    bool isNativeMethodOverloaded(const Method& method) const;
-
-    std::ostream& dump(std::ostream& os) const;
-
-  private:
-    uint16_t majorV_;
-    uint16_t minorV_;
-    ConstantPool cPool_;
-    uint16_t accessFlags_;
-    uint16_t thisClassIdx_;
-    uint16_t superClassIdx_;
-    std::vector<uint16_t> interfaces_;
-    Fields fields_;
-    Methods methods_;
-    Attributes attributes_;
-
-    ClassFile(std::istream& is);
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const ClassFile& c) {
-    return c.dump(os);
-  }
-
-  class Constant {
-  protected:
-    const ClassFile* parent_;
-
-    Constant(const ClassFile* cf)
-      : parent_(cf) { }
-
-  public:
-    enum Tag {
-      CLASS = 7,
-      FIELD_REF = 9,
-      METHOD_REF = 10,
-      INTERFACE_METHOD_REF = 11,
-      STRING = 8,
-      INTEGER = 3,
-      FLOAT = 4,
-      LONG = 5,
-      DOUBLE = 6,
-      NAME_AND_TYPE = 12,
-      UTF8 = 1
-    };
-
-    static Constant* readConstant(const ClassFile* cf, std::istream& is);
-
-    virtual bool isSingleSlot() { return true; }
-    bool isDoubleSlot() { return !isSingleSlot(); }
-    const ClassFile* getParent() { return parent_; }
-
-    virtual ~Constant();
-
-    virtual std::ostream& dump(std::ostream& os) const = 0;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Constant& c) {
-    return c.dump(os);
-  }
-
-  class ConstantClass : public Constant {
-    uint16_t nameIdx_;
-  public:
-    ConstantClass(const ClassFile* cf, std::istream& is);
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const {
-      return parent_->getConstantUtf8(nameIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantMemberRef : public Constant {
-  protected:
-    uint16_t classIdx_;
-    uint16_t nameAndTypeIdx_;
-    ConstantMemberRef(const ClassFile* cf, std::istream& is);
-
-  public:
-    unsigned getClassIndex() const { return classIdx_; }
-    ConstantClass* getClass() const {
-      return parent_->getConstantClass(classIdx_);
-    }
-    unsigned getNameAndTypeIndex() const { return nameAndTypeIdx_; }
-    ConstantNameAndType* getNameAndType() const {
-      return parent_->getConstantNameAndType(nameAndTypeIdx_);
-    }
-  };
-
-  class ConstantFieldRef : public ConstantMemberRef {
-  public:
-    ConstantFieldRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantMethodRef : public ConstantMemberRef {
-  public:
-    ConstantMethodRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantInterfaceMethodRef : public ConstantMemberRef {
-  public:
-    ConstantInterfaceMethodRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantString : public Constant {
-    uint16_t stringIdx_;
-  public:
-    ConstantString(const ClassFile* cf, std::istream& is);
-    unsigned getStringIndex() const { return stringIdx_; }
-    ConstantUtf8* getValue() const {
-      return parent_->getConstantUtf8(stringIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantInteger : public Constant {
-    int32_t value_;
-  public:
-    ConstantInteger(const ClassFile* cf, std::istream& is);
-    int32_t getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantFloat : public Constant {
-    float value_;
-  public:
-    ConstantFloat(const ClassFile* cf, std::istream& is);
-    float getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantLong : public Constant {
-    int64_t value_;
-  public:
-    ConstantLong(const ClassFile* cf, std::istream& is);
-    virtual bool isSingleSlot() { return false; }
-    int64_t getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantDouble : public Constant {
-    double value_;
-  public:
-    ConstantDouble(const ClassFile* cf, std::istream& is);
-    virtual bool isSingleSlot() { return false; }
-    double getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantNameAndType : public Constant {
-    uint16_t nameIdx_;
-    uint16_t descriptorIdx_;
-  public:
-    ConstantNameAndType(const ClassFile* cf, std::istream& is);
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const {
-      return parent_->getConstantUtf8(nameIdx_);
-    }
-    unsigned getDescriptorIndex() const { return descriptorIdx_; }
-    ConstantUtf8* getDescriptor() const {
-      return parent_->getConstantUtf8(descriptorIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantUtf8 : public Constant {
-    std::string utf8_;
-  public:
-    ConstantUtf8(const ClassFile* cf, std::istream& is);
-    const std::string& str() const { return utf8_; }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class Member {
-  protected:
-    const ClassFile* parent_;
-    uint16_t accessFlags_;
-    uint16_t nameIdx_;
-    uint16_t descriptorIdx_;
-    Attributes attributes_;
-
-    Member(const ClassFile* parent, std::istream& is);
-    ~Member();
-
-public:
-    bool isPublic() const { return accessFlags_ & ACC_PUBLIC; }
-    bool isPrivate() const { return accessFlags_ & ACC_PRIVATE; }
-    bool isProtected() const { return accessFlags_ & ACC_PROTECTED; }
-    bool isStatic() const { return accessFlags_ & ACC_STATIC; }
-    bool isFinal() const { return accessFlags_ & ACC_FINAL; }
-
-    const ClassFile* getParent() const { return parent_; }
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const { return parent_->getConstantUtf8(nameIdx_); }
-    unsigned getDescriptorIndex() const { return descriptorIdx_; }
-    ConstantUtf8* getDescriptor() const {
-      return parent_->getConstantUtf8(descriptorIdx_);
-    }
-    const Attributes& getAttributes() const { return attributes_; }
-  };
-
-  class Field : public Member {
-  private:
-    Field(const ClassFile* parent, std::istream& is);
-
-  public:
-    static Field* readField(const ClassFile* parent, std::istream& is) {
-      return new Field(parent, is);
-    }
-
-    ~Field();
-
-    bool isVolatile() const { return accessFlags_ & ACC_VOLATILE; }
-    bool isTransient() const { return accessFlags_ & ACC_TRANSIENT; }
-
-    ConstantValueAttribute* getConstantValueAttribute() const;
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Field& f) {
-    return f.dump(os);
-  }
-
-  class Method : public Member {
-    Method(const ClassFile* parent, std::istream& is);
-
-  public:
-    static Method* readMethod(const ClassFile* parent, std::istream& is) {
-      return new Method(parent, is);
-    }
-
-    ~Method();
-
-    bool isSynchronized() const { return accessFlags_ & ACC_SYNCHRONIZED; }
-    bool isNative() const { return accessFlags_ & ACC_NATIVE; }
-    bool isAbstract() const { return accessFlags_ & ACC_ABSTRACT; }
-    bool isStrict() const { return accessFlags_ & ACC_STRICT; }
-
-    CodeAttribute* getCodeAttribute() const;
-    ExceptionsAttribute* getExceptionsAttribute() const;
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Method& m) {
-    return m.dump(os);
-  }
-
-  class Attribute {
-  protected:
-    const ClassFile* parent_;
-    uint16_t nameIdx_;
-
-    Attribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is);
-
-  public:
-    static Attribute* readAttribute(const ClassFile* cf, std::istream& is);
-
-    virtual ~Attribute();
-
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const { return parent_->getConstantUtf8(nameIdx_); }
-
-    virtual std::ostream& dump(std::ostream& os) const;
-
-    static const std::string CONSTANT_VALUE;
-    static const std::string CODE;
-    static const std::string EXCEPTIONS;
-    static const std::string INNER_CLASSES;
-    static const std::string SYNTHETIC;
-    static const std::string SOURCE_FILE;
-    static const std::string LINE_NUMBER_TABLE;
-    static const std::string LOCAL_VARIABLE_TABLE;
-    static const std::string DEPRECATED;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Attribute& a) {
-    return a.dump(os);
-  }
-
-  class ConstantValueAttribute : public Attribute {
-    uint16_t valueIdx_;
-  public:
-    ConstantValueAttribute(const ClassFile* cf,
-                           uint16_t nameIdx,
-                           std::istream& is);
-
-    unsigned getValueIndex() const { return valueIdx_; }
-    Constant* getValue() const { return parent_->getConstant(valueIdx_); }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class CodeAttribute : public Attribute {
-  public:
-    class Exception {
-      const ClassFile* parent_;
-      uint16_t startPc_;
-      uint16_t endPc_;
-      uint16_t handlerPc_;
-      uint16_t catchTypeIdx_;
-
-    public:
-      Exception(const ClassFile* cf, std::istream& is);
-
-      uint16_t getStartPc() const { return startPc_; }
-      uint16_t getEndPc() const { return endPc_; }
-      uint16_t getHandlerPc() const { return handlerPc_; }
-      uint16_t getCatchTypeIndex() const { return catchTypeIdx_; }
-      ConstantClass* getCatchType() const {
-        return catchTypeIdx_ ? NULL : parent_->getConstantClass(catchTypeIdx_);
-      }
-
-      std::ostream& dump(std::ostream& os) const;
-    };
-
-    typedef std::vector<Exception*> Exceptions;
-
-  private:
-    uint16_t maxStack_;
-    uint16_t maxLocals_;
-    uint32_t codeSize_;
-    uint8_t* code_;
-    Exceptions exceptions_;
-    Attributes attributes_;
-
-  public:
-    CodeAttribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is);
-    ~CodeAttribute();
-    uint16_t getMaxStack() const { return maxStack_; }
-    uint16_t getMaxLocals() const { return maxLocals_; }
-    const uint8_t* getCode() const { return code_; }
-    uint32_t getCodeSize() const { return codeSize_; }
-    const Exceptions& getExceptions() const { return exceptions_; }
-    const Attributes& getAttributes() const { return attributes_; }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os,
-                                  const CodeAttribute::Exception& e) {
-    return e.dump(os);
-  }
-
-  class ExceptionsAttribute : public Attribute {
-  private:
-    uint16_t nameIdx_;
-    std::vector<uint16_t> exceptions_;
-
-  public:
-    ExceptionsAttribute(const ClassFile* cf,
-                        uint16_t nameIdx,
-                        std::istream& is);
-
-    unsigned getNumExceptions() const { return exceptions_.size(); }
-    unsigned getExceptionIndex(unsigned i) const { return exceptions_[i]; }
-    ConstantClass* getException(unsigned i) const {
-      return parent_->getConstantClass(getExceptionIndex(i));
-    }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ClassFileParseError : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassFileParseError(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassFileParseError() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class ClassFileSemanticError : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassFileSemanticError(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassFileSemanticError() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class ClassNotFoundException : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassNotFoundException(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassNotFoundException() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class InvocationTargetException : public std::exception {
-    std::string msg_;
-  public:
-    explicit InvocationTargetException(const std::string& msg) : msg_(msg) { }
-    virtual ~InvocationTargetException() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_CLASSFILE_H
diff --git a/java/include/llvm/Java/Compiler.h b/java/include/llvm/Java/Compiler.h
deleted file mode 100644
index 03416d6..0000000
--- a/java/include/llvm/Java/Compiler.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- Compiler.h - Java bytecode compiler ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode to LLVM bytecode compiler.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_COMPILER_H
-#define LLVM_JAVA_COMPILER_H
-
-#include <llvm/Module.h>
-#include <memory>
-
-namespace llvm { namespace Java {
-
-  std::auto_ptr<Module> compile(const std::string& className);
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_COMPILER_H
diff --git a/java/include/llvm/Java/jni.h b/java/include/llvm/Java/jni.h
deleted file mode 100644
index af3094c..0000000
--- a/java/include/llvm/Java/jni.h
+++ /dev/null
@@ -1,1425 +0,0 @@
-/* jni.h
-   Copyright (C) 2001, 2004  Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath 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.
-
-GNU Classpath 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 Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* This file is based on jni.h from libgcj */
-
-#ifndef __CLASSPATH_JNI_H__
-#define __CLASSPATH_JNI_H__
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/* Define some defaults */
-#define JNICALL
-#define JNIEXPORT
-
-typedef unsigned char jboolean;
-typedef signed char jbyte;
-typedef unsigned short jchar;
-typedef short jshort;
-typedef int jint;
-typedef long long jlong;
-typedef float jfloat;
-typedef double jdouble;
-
-typedef jint jsize;
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Define VM internal types */
-struct llvm_java_object_base;
-typedef struct llvm_java_object_base* jobject;
-typedef unsigned jfieldID;
-typedef unsigned jmethodID;
-
-#ifdef __cplusplus
-
-class _jobject {};
-class _jclass : public _jobject {};
-class _jthrowable : public _jobject {};
-class _jstring : public _jobject {};
-class _jarray : public _jobject {};
-class _jbooleanArray : public _jarray {};
-class _jbyteArray : public _jarray {};
-class _jcharArray : public _jarray {};
-class _jshortArray : public _jarray {};
-class _jintArray : public _jarray {};
-class _jlongArray : public _jarray {};
-class _jfloatArray : public _jarray {};
-class _jdoubleArray : public _jarray {};
-class _jobjectArray : public _jarray {};
-
-typedef _jobject *jobject;
-typedef _jclass *jclass;
-typedef _jthrowable *jthrowable;
-typedef _jstring *jstring;
-typedef _jarray *jarray;
-typedef _jbooleanArray *jbooleanArray;
-typedef _jbyteArray *jbyteArray;
-typedef _jcharArray *jcharArray;
-typedef _jshortArray *jshortArray;
-typedef _jintArray *jintArray;
-typedef _jlongArray *jlongArray;
-typedef _jfloatArray *jfloatArray;
-typedef _jdoubleArray *jdoubleArray;
-typedef _jobjectArray *jobjectArray;
-
-typedef struct _Jv_JNIEnv JNIEnv;
-typedef struct _Jv_JavaVM JavaVM;
-
-#else /* __cplusplus */
-
-
-typedef jobject jclass;
-typedef jobject jstring;
-typedef jobject jarray;
-typedef jobject jthrowable;
-typedef jobject jobjectArray;
-typedef jobject jbyteArray;
-typedef jobject jshortArray;
-typedef jobject jintArray;
-typedef jobject jlongArray;
-typedef jobject jbooleanArray;
-typedef jobject jcharArray;
-typedef jobject jfloatArray;
-typedef jobject jdoubleArray;
-
-/* Dummy defines.  */
-typedef const struct JNINativeInterface *JNIEnv;
-typedef const struct JNIInvokeInterface *JavaVM;
-
-#endif /* __cplusplus */
-
-#define _Jv_va_list va_list
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-typedef union jvalue
-{
-  jboolean z;
-  jbyte    b;
-  jchar    c;
-  jshort   s;
-  jint     i;
-  jlong    j;
-  jfloat   f;
-  jdouble  d;
-  jobject  l;
-} jvalue;
-
-/* Used for jboolean type  */
-#define JNI_TRUE  1
-#define JNI_FALSE 0
-
-/* Used when releasing array elements.  */
-#define JNI_COMMIT 1
-#define JNI_ABORT  2
-
-/* FIXME: Could be wrong */
-typedef jobject jweak;
-
-/* Version numbers.  */
-#define JNI_VERSION_1_1 0x00010001 /* JNI version 1.1 */
-#define JNI_VERSION_1_2 0x00010002 /* JNI version 1.2 */
-#define JNI_VERSION_1_4 0x00010004 /* JNI version 1.4 */
-
-/* Error codes */
-#define JNI_OK            0
-#define JNI_ERR          (-1)
-#define JNI_EDETACHED    (-2)
-#define JNI_EVERSION     (-3)
-
-/* These functions might be defined in libraries which we load; the
-   JNI implementation calls them at the appropriate times.  */
-JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);
-JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);
-
-/* These functions are called by user code to start using the
-   invocation API.  */
-JNIEXPORT jint JNICALL JNI_GetDefaultJavaVMInitArgs (void *);
-JNIEXPORT jint JNICALL JNI_CreateJavaVM (JavaVM **, void **, void *);
-JNIEXPORT jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
-
-
-/* This structure is used when registering native methods.  */
-typedef struct
-{
-  char *name;
-  char *signature;
-  void *fnPtr;
-} JNINativeMethod;
-
-struct JNINativeInterface
-{
-  void *reserved0;					       /* 0 */
-  void *reserved1;					       /* 1 */
-  void *reserved2;					       /* 2 */
-  void *reserved3;					       /* 3 */
-
-  jint     (JNICALL *GetVersion)                   (JNIEnv *);                               /* 4 */
-  jclass   (JNICALL *DefineClass)                  (JNIEnv *, const char *, jobject, const jbyte *, jsize); /* 5 */
-  jclass   (JNICALL *FindClass)                    (JNIEnv *, const char *);                 /* 6 */
-
-  jmethodID (JNICALL *FromReflectedMethod)	   (JNIEnv *, jobject);                      /* 7 */
-  jfieldID  (JNICALL *FromReflectedField)	   (JNIEnv *, jobject);                      /* 8 */
-  jobject   (JNICALL *ToReflectedMethod)	   (JNIEnv *, jclass, jmethodID, jboolean);  /* 9 */
-
-  jclass   (JNICALL *GetSuperclass)                (JNIEnv *, jclass);                       /* 10 */
-  jboolean (JNICALL *IsAssignableFrom)             (JNIEnv *, jclass, jclass);               /* 11 */
-
-  jobject  (JNICALL *ToReflectedField)		   (JNIEnv *, jclass, jfieldID, jboolean);   /* 12 */
-
-  jint     (JNICALL *Throw)                        (JNIEnv *, jthrowable);                   /* 13 */
-  jint     (JNICALL *ThrowNew)                     (JNIEnv *, jclass, const char *);         /* 14 */
-  jthrowable (JNICALL *ExceptionOccurred)          (JNIEnv *);                               /* 15 */
-  void     (JNICALL *ExceptionDescribe)            (JNIEnv *);                               /* 16 */
-  void     (JNICALL *ExceptionClear)               (JNIEnv *);                               /* 17 */
-  void     (JNICALL *FatalError)                   (JNIEnv *, const char *);                 /* 18 */
-
-  jint     (JNICALL *PushLocalFrame)		   (JNIEnv *, jint);                         /* 19 */
-  jobject  (JNICALL *PopLocalFrame)		   (JNIEnv *, jobject);                      /* 20 */
-
-  jobject  (JNICALL *NewGlobalRef)                 (JNIEnv *, jobject);                      /* 21 */
-  void     (JNICALL *DeleteGlobalRef)              (JNIEnv *, jobject);                      /* 22 */
-  void     (JNICALL *DeleteLocalRef)               (JNIEnv *, jobject);                      /* 23 */
-  jboolean (JNICALL *IsSameObject)                 (JNIEnv *, jobject, jobject);             /* 24 */
-
-  jobject  (JNICALL *NewLocalRef)		   (JNIEnv *, jobject);                      /* 25 */
-  jint     (JNICALL *EnsureLocalCapacity)	   (JNIEnv *, jint);                         /* 26 */
-
-  jobject  (JNICALL *AllocObject)                  (JNIEnv *, jclass);                       /* 27 */
-  jobject (JNICALL *NewObject)			   (JNIEnv *, jclass, jmethodID, ...);       /* 28 */
-  jobject (JNICALL *NewObjectV)			   (JNIEnv *, jclass, jmethodID, _Jv_va_list); /* 29 */
-  jobject (JNICALL *NewObjectA)			   (JNIEnv *, jclass, jmethodID, jvalue *);  /* 30 */
-
-  jclass   (JNICALL *GetObjectClass)               (JNIEnv *, jobject);                      /* 31 */
-  jboolean (JNICALL *IsInstanceOf)                 (JNIEnv *, jobject, jclass);              /* 32 */
-  jmethodID (JNICALL *GetMethodID)                 (JNIEnv *, jclass, const char *, const char *); /* 33 */
-
-  jobject	(JNICALL *CallObjectMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 34 */
-  jobject	(JNICALL *CallObjectMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 35 */
-  jobject	(JNICALL *CallObjectMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 36 */
-  jboolean	(JNICALL *CallBooleanMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 37 */
-  jboolean	(JNICALL *CallBooleanMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 38 */
-  jboolean	(JNICALL *CallBooleanMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 39 */
-  jbyte	(JNICALL *CallByteMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 40 */
-  jbyte	(JNICALL *CallByteMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 41 */
-  jbyte	(JNICALL *CallByteMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 42 */
-  jchar	(JNICALL *CallCharMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 43 */
-  jchar	(JNICALL *CallCharMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 44 */
-  jchar	(JNICALL *CallCharMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 45 */
-  jshort	(JNICALL *CallShortMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 46 */
-  jshort	(JNICALL *CallShortMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 47 */
-  jshort	(JNICALL *CallShortMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 48 */
-  jint		(JNICALL *CallIntMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 49 */
-  jint		(JNICALL *CallIntMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 50 */
-  jint		(JNICALL *CallIntMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 51 */
-  jlong	(JNICALL *CallLongMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 52 */
-  jlong	(JNICALL *CallLongMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 53 */
-  jlong	(JNICALL *CallLongMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 54 */
-  jfloat	(JNICALL *CallFloatMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 55 */
-  jfloat	(JNICALL *CallFloatMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 56 */
-  jfloat	(JNICALL *CallFloatMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 57 */
-  jdouble	(JNICALL *CallDoubleMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 58 */
-  jdouble	(JNICALL *CallDoubleMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 59 */
-  jdouble	(JNICALL *CallDoubleMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 60 */
-  void	(JNICALL *CallVoidMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 61 */
-  void	(JNICALL *CallVoidMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 62 */
-  void	(JNICALL *CallVoidMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 63 */
-
-  jobject   (JNICALL *CallNonvirtualObjectMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 64 */
-  jobject   (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 65 */
-  jobject   (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 66 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 67 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list); /* 68 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);    /* 69 */
-  jbyte     (JNICALL *CallNonvirtualByteMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 70 */
-  jbyte     (JNICALL *CallNonvirtualByteMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 71 */
-  jbyte     (JNICALL *CallNonvirtualByteMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 72 */
-  jchar     (JNICALL *CallNonvirtualCharMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 73 */
-  jchar     (JNICALL *CallNonvirtualCharMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 74 */
-  jchar     (JNICALL *CallNonvirtualCharMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 75 */
-  jshort    (JNICALL *CallNonvirtualShortMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 76 */
-  jshort    (JNICALL *CallNonvirtualShortMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 77 */
-  jshort    (JNICALL *CallNonvirtualShortMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 78 */
-  jint	    (JNICALL *CallNonvirtualIntMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 79 */
-  jint	    (JNICALL *CallNonvirtualIntMethodV)	   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 80 */
-  jint	    (JNICALL *CallNonvirtualIntMethodA)	   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 81 */
-  jlong     (JNICALL *CallNonvirtualLongMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 82 */
-  jlong     (JNICALL *CallNonvirtualLongMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 83 */
-  jlong     (JNICALL *CallNonvirtualLongMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 84 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 85 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 86 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 87 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 88 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 89 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 90 */
-  void      (JNICALL *CallNonvirtualVoidMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 91 */
-  void      (JNICALL *CallNonvirtualVoidMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 92 */
-  void      (JNICALL *CallNonvirtualVoidMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 93 */
-
-  jfieldID      (JNICALL *GetFieldID)              (JNIEnv *, jclass, const char *, const char *);  /* 94 */
-
-  jobject  (JNICALL *GetObjectField)               (JNIEnv *, jobject, jfieldID);                   /* 95 */
-  jboolean (JNICALL *GetBooleanField)              (JNIEnv *, jobject, jfieldID);                   /* 96 */
-  jbyte    (JNICALL *GetByteField)                 (JNIEnv *, jobject, jfieldID);                   /* 97 */
-  jchar    (JNICALL *GetCharField)                 (JNIEnv *, jobject, jfieldID);                   /* 98 */
-  jshort   (JNICALL *GetShortField)                (JNIEnv *, jobject, jfieldID);                   /* 99 */
-  jint     (JNICALL *GetIntField)                  (JNIEnv *, jobject, jfieldID);                   /* 100 */
-  jlong    (JNICALL *GetLongField)                 (JNIEnv *, jobject, jfieldID);                   /* 101 */
-  jfloat   (JNICALL *GetFloatField)                (JNIEnv *, jobject, jfieldID);                   /* 102 */
-  jdouble  (JNICALL *GetDoubleField)               (JNIEnv *, jobject, jfieldID);                   /* 103 */
-
-  void		(JNICALL *SetObjectField)	   (JNIEnv *, jobject, jfieldID, jobject);          /* 104 */
-  void		(JNICALL *SetBooleanField)	   (JNIEnv *, jobject, jfieldID, jboolean);         /* 105 */
-  void		(JNICALL *SetByteField)		   (JNIEnv *, jobject, jfieldID, jbyte);            /* 106 */
-  void		(JNICALL *SetCharField)		   (JNIEnv *, jobject, jfieldID, jchar);            /* 107 */
-  void		(JNICALL *SetShortField)	   (JNIEnv *, jobject, jfieldID, jshort);           /* 108 */
-  void		(JNICALL *SetIntField)		   (JNIEnv *, jobject, jfieldID, jint);             /* 109 */
-  void		(JNICALL *SetLongField)		   (JNIEnv *, jobject, jfieldID, jlong);            /* 110 */
-  void		(JNICALL *SetFloatField)	   (JNIEnv *, jobject, jfieldID, jfloat);           /* 111 */
-  void		(JNICALL *SetDoubleField)	   (JNIEnv *, jobject, jfieldID, jdouble);          /* 112 */
-
-  jmethodID (JNICALL *GetStaticMethodID)           (JNIEnv *, jclass, const char *, const char *);  /* 113 */
-
-  jobject	(JNICALL *CallStaticObjectMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 114 */
-  jobject	(JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 115 */
-  jobject	(JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 116 */
-  jboolean	(JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID, ...);              /* 117 */
-  jboolean	(JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);     /* 118 */
-  jboolean	(JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);        /* 119 */
-  jbyte	(JNICALL *CallStaticByteMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 120 */
-  jbyte	(JNICALL *CallStaticByteMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 121 */
-  jbyte	(JNICALL *CallStaticByteMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 122 */
-  jchar	(JNICALL *CallStaticCharMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 123 */
-  jchar	(JNICALL *CallStaticCharMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 124 */
-  jchar	(JNICALL *CallStaticCharMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 125 */
-  jshort	(JNICALL *CallStaticShortMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 126 */
-  jshort	(JNICALL *CallStaticShortMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 127 */
-  jshort	(JNICALL *CallStaticShortMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 128 */
-  jint		(JNICALL *CallStaticIntMethod)	   (JNIEnv *, jclass, jmethodID, ...);              /* 129 */
-  jint		(JNICALL *CallStaticIntMethodV)    (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 130 */
-  jint		(JNICALL *CallStaticIntMethodA)    (JNIEnv *, jclass, jmethodID, jvalue *);         /* 131 */
-  jlong	(JNICALL *CallStaticLongMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 132 */
-  jlong	(JNICALL *CallStaticLongMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 133 */
-  jlong	(JNICALL *CallStaticLongMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 134 */
-  jfloat	(JNICALL *CallStaticFloatMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 135 */
-  jfloat	(JNICALL *CallStaticFloatMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 136 */
-  jfloat	(JNICALL *CallStaticFloatMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 137 */
-  jdouble	(JNICALL *CallStaticDoubleMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 138 */
-  jdouble	(JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 139 */
-  jdouble	(JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 140 */
-  void	(JNICALL *CallStaticVoidMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 141 */
-  void	(JNICALL *CallStaticVoidMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 142 */
-  void	(JNICALL *CallStaticVoidMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 143 */
-
-  jfieldID      (JNICALL *GetStaticFieldID)        (JNIEnv *, jclass, const char *, const char *);  /* 144 */
-
-  jobject	(JNICALL *GetStaticObjectField)	   (JNIEnv *, jclass, jfieldID);                    /* 145 */
-  jboolean	(JNICALL *GetStaticBooleanField)   (JNIEnv *, jclass, jfieldID);                    /* 146 */
-  jbyte		(JNICALL *GetStaticByteField)	   (JNIEnv *, jclass, jfieldID);                    /* 147 */
-  jchar		(JNICALL *GetStaticCharField)	   (JNIEnv *, jclass, jfieldID);                    /* 148 */
-  jshort	(JNICALL *GetStaticShortField)	   (JNIEnv *, jclass, jfieldID);                    /* 149 */
-  jint		(JNICALL *GetStaticIntField)	   (JNIEnv *, jclass, jfieldID);                    /* 150 */
-  jlong		(JNICALL *GetStaticLongField)	   (JNIEnv *, jclass, jfieldID);                    /* 151 */
-  jfloat	(JNICALL *GetStaticFloatField)	   (JNIEnv *, jclass, jfieldID);                    /* 152 */
-  jdouble	(JNICALL *GetStaticDoubleField)	   (JNIEnv *, jclass, jfieldID);                    /* 153 */
-
-  void		(JNICALL *SetStaticObjectField)	   (JNIEnv *, jclass, jfieldID, jobject);           /* 154 */
-  void		(JNICALL *SetStaticBooleanField)   (JNIEnv *, jclass, jfieldID, jboolean);          /* 155 */
-  void		(JNICALL *SetStaticByteField)	   (JNIEnv *, jclass, jfieldID, jbyte);             /* 156 */
-  void		(JNICALL *SetStaticCharField)	   (JNIEnv *, jclass, jfieldID, jchar);             /* 157 */
-  void		(JNICALL *SetStaticShortField)	   (JNIEnv *, jclass, jfieldID, jshort);            /* 158 */
-  void		(JNICALL *SetStaticIntField)	   (JNIEnv *, jclass, jfieldID, jint);              /* 159 */
-  void		(JNICALL *SetStaticLongField)	   (JNIEnv *, jclass, jfieldID, jlong);             /* 160 */
-  void		(JNICALL *SetStaticFloatField)	   (JNIEnv *, jclass, jfieldID, jfloat);            /* 161 */
-  void		(JNICALL *SetStaticDoubleField)	   (JNIEnv *, jclass, jfieldID, jdouble);           /* 162 */
-
-  jstring  (JNICALL *NewString)                    (JNIEnv *, const jchar *, jsize);                /* 163 */
-  jsize    (JNICALL *GetStringLength)              (JNIEnv *, jstring);                             /* 164 */
-  const jchar * (JNICALL *GetStringChars)          (JNIEnv *, jstring, jboolean *);                 /* 165 */
-  void     (JNICALL *ReleaseStringChars)           (JNIEnv *, jstring, const jchar *);              /* 166 */
-  jstring  (JNICALL *NewStringUTF)                 (JNIEnv *, const char *);                        /* 167 */
-  jsize    (JNICALL *GetStringUTFLength)           (JNIEnv *, jstring);                             /* 168 */
-  const char * (JNICALL *GetStringUTFChars)       (JNIEnv *, jstring, jboolean *);                 /* 169 */
-  void     (JNICALL *ReleaseStringUTFChars)        (JNIEnv *, jstring, const char *);               /* 170 */
-  jsize    (JNICALL *GetArrayLength)               (JNIEnv *, jarray);                              /* 171 */
-  jobjectArray   (JNICALL *NewObjectArray)         (JNIEnv *, jsize, jclass, jobject);              /* 172 */
-  jobject  (JNICALL *GetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize);                 /* 173 */
-  void     (JNICALL *SetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize, jobject);        /* 174 */
-
-  jbooleanArray (JNICALL *NewBooleanArray)	   (JNIEnv *, jsize);                               /* 175 */
-  jbyteArray    (JNICALL *NewByteArray)		   (JNIEnv *, jsize);                               /* 176 */
-  jcharArray    (JNICALL *NewCharArray)		   (JNIEnv *, jsize);                               /* 177 */
-  jshortArray   (JNICALL *NewShortArray)	   (JNIEnv *, jsize);                               /* 178 */
-  jintArray     (JNICALL *NewIntArray)		   (JNIEnv *, jsize);                               /* 179 */
-  jlongArray    (JNICALL *NewLongArray)		   (JNIEnv *, jsize);                               /* 180 */
-  jfloatArray   (JNICALL *NewFloatArray)	   (JNIEnv *, jsize);                               /* 181 */
-  jdoubleArray  (JNICALL *NewDoubleArray)	   (JNIEnv *, jsize);                               /* 182 */
-
-  jboolean *	(JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *);           /* 183 */
-  jbyte *	(JNICALL *GetByteArrayElements)	   (JNIEnv *, jbyteArray, jboolean *);              /* 184 */
-  jchar *	(JNICALL *GetCharArrayElements)	   (JNIEnv *, jcharArray, jboolean *);              /* 185 */
-  jshort *	(JNICALL *GetShortArrayElements)   (JNIEnv *, jshortArray, jboolean *);             /* 186 */
-  jint *	(JNICALL *GetIntArrayElements)	   (JNIEnv *, jintArray, jboolean *);               /* 187 */
-  jlong *	(JNICALL *GetLongArrayElements)	   (JNIEnv *, jlongArray, jboolean *);              /* 188 */
-  jfloat *	(JNICALL *GetFloatArrayElements)   (JNIEnv *, jfloatArray, jboolean *);             /* 189 */
-  jdouble *	(JNICALL *GetDoubleArrayElements)  (JNIEnv *, jdoubleArray, jboolean *);            /* 190 */
-
-  void		(JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *, jint); /* 191 */
-  void		(JNICALL *ReleaseByteArrayElements)    (JNIEnv *, jbyteArray, jbyte *, jint);       /* 192 */
-  void		(JNICALL *ReleaseCharArrayElements)    (JNIEnv *, jcharArray, jchar *, jint);       /* 193 */
-  void		(JNICALL *ReleaseShortArrayElements)   (JNIEnv *, jshortArray, jshort *, jint);     /* 194 */
-  void		(JNICALL *ReleaseIntArrayElements)     (JNIEnv *, jintArray, jint *, jint);         /* 195 */
-  void		(JNICALL *ReleaseLongArrayElements)    (JNIEnv *, jlongArray, jlong *, jint);       /* 196 */
-  void		(JNICALL *ReleaseFloatArrayElements)   (JNIEnv *, jfloatArray, jfloat *, jint);     /* 197 */
-  void		(JNICALL *ReleaseDoubleArrayElements)  (JNIEnv *, jdoubleArray, jdouble *, jint);   /* 198 */
-
-  void		(JNICALL *GetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,jsize, jsize, jboolean *);  /* 199 */
-  void		(JNICALL *GetByteArrayRegion)	   (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 200 */
-  void		(JNICALL *GetCharArrayRegion)	   (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 201 */
-  void		(JNICALL *GetShortArrayRegion)	   (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 202 */
-  void		(JNICALL *GetIntArrayRegion)	   (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 203 */
-  void		(JNICALL *GetLongArrayRegion)	   (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 204 */
-  void		(JNICALL *GetFloatArrayRegion)	   (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 205 */
-  void		(JNICALL *GetDoubleArrayRegion)	   (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 206 */
-
-  void		(JNICALL *SetBooleanArrayRegion)   (JNIEnv *, jbooleanArray, jsize, jsize, jboolean *); /* 207 */
-  void		(JNICALL *SetByteArrayRegion)	   (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 208 */
-  void		(JNICALL *SetCharArrayRegion)	   (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 209 */
-  void		(JNICALL *SetShortArrayRegion)	   (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 210 */
-  void		(JNICALL *SetIntArrayRegion)	   (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 211 */
-  void		(JNICALL *SetLongArrayRegion)	   (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 212 */
-  void		(JNICALL *SetFloatArrayRegion)	   (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 213 */
-  void		(JNICALL *SetDoubleArrayRegion)	   (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 214 */
-
-  jint     (JNICALL *RegisterNatives)              (JNIEnv *, jclass, const JNINativeMethod *, jint);   /* 215 */
-  jint     (JNICALL *UnregisterNatives)            (JNIEnv *, jclass);                                  /* 216 */
-  jint     (JNICALL *MonitorEnter)                 (JNIEnv *, jobject);                                 /* 217 */
-  jint     (JNICALL *MonitorExit)                  (JNIEnv *, jobject);                                 /* 218 */
-  jint     (JNICALL *GetJavaVM)                    (JNIEnv *, JavaVM **);                               /* 219 */
-
-  /* ---- JNI 1.2 functions ---- */
-  void	   (JNICALL *GetStringRegion)	           (JNIEnv *, jstring, jsize, jsize, jchar *);          /* 220 */
-  void     (JNICALL *GetStringUTFRegion)	   (JNIEnv *, jstring, jsize, jsize, char *);           /* 221 */
-
-  void * (JNICALL *GetPrimitiveArrayCritical)      (JNIEnv *, jarray, jboolean *);                      /* 222 */
-  void   (JNICALL *ReleasePrimitiveArrayCritical)  (JNIEnv *, jarray, void *, jint);                    /* 223 */
-
-  const jchar * (JNICALL *GetStringCritical)       (JNIEnv *, jstring, jboolean *);                     /* 224 */
-  void          (JNICALL *ReleaseStringCritical)   (JNIEnv *, jstring, const jchar *);                  /* 225 */
-
-  jweak  (JNICALL *NewWeakGlobalRef)               (JNIEnv *, jobject);                                 /* 226 */
-  void   (JNICALL *DeleteWeakGlobalRef)            (JNIEnv *, jweak);                                   /* 227 */
-
-  jboolean	(JNICALL *ExceptionCheck)	   (JNIEnv *);                                          /* 228 */
-
-  /* ---- JNI 1.4 functions ---- */
-  jobject       (JNICALL *NewDirectByteBuffer)     (JNIEnv *, void *, jlong);                           /* 229 */
-  void *        (JNICALL *GetDirectBufferAddress)  (JNIEnv *, jobject);                                 /* 230 */
-  long          (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);                                 /* 231 */
-
-};
-
-#ifdef __cplusplus
-} /* Extern "C" */
-
-struct _Jv_JNIEnv
-{
-  /* The method table.  */
-  const struct JNINativeInterface *p;
-
-  jint GetVersion ()
-  { return p->GetVersion (this); }
-
-  jclass DefineClass (const char* char0, jobject obj0, const jbyte * val1, jsize val2)
-  { return p->DefineClass (this, char0, obj0, val1, val2); }
-
-  jclass FindClass (const char * val0)
-  { return p->FindClass (this, val0); }
-
-  jmethodID FromReflectedMethod (jobject obj0)
-  { return p->FromReflectedMethod (this, obj0); }
-
-  jfieldID FromReflectedField (jobject obj0)
-  { return p->FromReflectedField (this, obj0); }
-
-  jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
-  { return p->ToReflectedMethod (this, cl0, meth1, val2); }
-
-  jclass GetSuperclass (jclass cl0)
-  { return p->GetSuperclass (this, cl0); }
-
-  jboolean IsAssignableFrom (jclass cl0, jclass cl1)
-  { return p->IsAssignableFrom (this, cl0, cl1); }
-
-  jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
-  { return p->ToReflectedField (this, cl0, fld1, val2); }
-
-  jint Throw (jthrowable val0)
-  { return p->Throw (this, val0); }
-
-  jint ThrowNew (jclass cl0, const char * val1)
-  { return p->ThrowNew (this, cl0, val1); }
-
-  jthrowable ExceptionOccurred ()
-  { return p->ExceptionOccurred (this); }
-
-  void ExceptionDescribe ()
-  { p->ExceptionDescribe (this); }
-
-  void ExceptionClear ()
-  { p->ExceptionClear (this); }
-
-  void FatalError (const char * val0)
-  { p->FatalError (this, val0); }
-
-  jint PushLocalFrame (jint val0)
-  { return p->PushLocalFrame (this, val0); }
-
-  jobject PopLocalFrame (jobject obj0)
-  { return p->PopLocalFrame (this, obj0); }
-
-  jobject NewGlobalRef (jobject obj0)
-  { return p->NewGlobalRef (this, obj0); }
-
-  void DeleteGlobalRef (jobject obj0)
-  { p->DeleteGlobalRef (this, obj0); }
-
-  void DeleteLocalRef (jobject obj0)
-  { p->DeleteLocalRef (this, obj0); }
-
-  jboolean IsSameObject (jobject obj0, jobject obj1)
-  { return p->IsSameObject (this, obj0, obj1); }
-
-  jobject NewLocalRef (jobject obj0)
-  { return p->NewLocalRef (this, obj0); }
-
-  jint EnsureLocalCapacity (jint val0)
-  { return p->EnsureLocalCapacity (this, val0); }
-
-  jobject AllocObject (jclass cl0)
-  { return p->AllocObject (this, cl0); }
-
-  jobject NewObject (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->NewObjectV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject NewObjectV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->NewObjectV (this, cl0, meth1, val2); }
-
-  jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->NewObjectA (this, cl0, meth1, val2); }
-
-  jclass GetObjectClass (jobject obj0)
-  { return p->GetObjectClass (this, obj0); }
-
-  jboolean IsInstanceOf (jobject obj0, jclass cl1)
-  { return p->IsInstanceOf (this, obj0, cl1); }
-
-  jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetMethodID (this, cl0, val1, val2); }
-
-  jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallObjectMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallObjectMethodV (this, obj0, meth1, val2); }
-
-  jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallObjectMethodA (this, obj0, meth1, val2); }
-
-  jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
-
-  jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
-
-  jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallByteMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallByteMethodV (this, obj0, meth1, val2); }
-
-  jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallByteMethodA (this, obj0, meth1, val2); }
-
-  jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jchar result = p->CallCharMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallCharMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallCharMethodV (this, obj0, meth1, val2); }
-
-  jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallCharMethodA (this, obj0, meth1, val2); }
-
-  jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jshort result = p->CallShortMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallShortMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallShortMethodV (this, obj0, meth1, val2); }
-
-  jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallShortMethodA (this, obj0, meth1, val2); }
-
-  jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jint result = p->CallIntMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallIntMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallIntMethodV (this, obj0, meth1, val2); }
-
-  jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallIntMethodA (this, obj0, meth1, val2); }
-
-  jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jlong result = p->CallLongMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallLongMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallLongMethodV (this, obj0, meth1, val2); }
-
-  jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallLongMethodA (this, obj0, meth1, val2); }
-
-  jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallFloatMethodV (this, obj0, meth1, val2); }
-
-  jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallFloatMethodA (this, obj0, meth1, val2); }
-
-  jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
-
-  jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
-
-  void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    p->CallVoidMethodV (this, obj0, meth1, args);
-    va_end (args);
-  }
-
-  void CallVoidMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { p->CallVoidMethodV (this, obj0, meth1, val2); }
-
-  void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { p->CallVoidMethodA (this, obj0, meth1, val2); }
-
-  jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
-
-  jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
-
-  jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
-
-  jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
-
-  jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
-
-  jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
-
-  jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
-
-  jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
-
-  jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
-
-  jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
-
-  jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
-
-  jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
-
-  jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
-
-  jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
-
-  jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
-
-  jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
-
-  jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
-
-  jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
-
-  void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-  }
-
-  void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
-
-  void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
-
-  jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetFieldID (this, cl0, val1, val2); }
-
-  jobject GetObjectField (jobject obj0, jfieldID fld1)
-  { return p->GetObjectField (this, obj0, fld1); }
-
-  jboolean GetBooleanField (jobject obj0, jfieldID fld1)
-  { return p->GetBooleanField (this, obj0, fld1); }
-
-  jbyte GetByteField (jobject obj0, jfieldID fld1)
-  { return p->GetByteField (this, obj0, fld1); }
-
-  jchar GetCharField (jobject obj0, jfieldID fld1)
-  { return p->GetCharField (this, obj0, fld1); }
-
-  jshort GetShortField (jobject obj0, jfieldID fld1)
-  { return p->GetShortField (this, obj0, fld1); }
-
-  jint GetIntField (jobject obj0, jfieldID fld1)
-  { return p->GetIntField (this, obj0, fld1); }
-
-  jlong GetLongField (jobject obj0, jfieldID fld1)
-  { return p->GetLongField (this, obj0, fld1); }
-
-  jfloat GetFloatField (jobject obj0, jfieldID fld1)
-  { return p->GetFloatField (this, obj0, fld1); }
-
-  jdouble GetDoubleField (jobject obj0, jfieldID fld1)
-  { return p->GetDoubleField (this, obj0, fld1); }
-
-  void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
-  { p->SetObjectField (this, obj0, fld1, obj2); }
-
-  void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
-  { p->SetBooleanField (this, obj0, fld1, val2); }
-
-  void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
-  { p->SetByteField (this, obj0, fld1, val2); }
-
-  void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
-  { p->SetCharField (this, obj0, fld1, val2); }
-
-  void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
-  { p->SetShortField (this, obj0, fld1, val2); }
-
-  void SetIntField (jobject obj0, jfieldID fld1, jint val2)
-  { p->SetIntField (this, obj0, fld1, val2); }
-
-  void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
-  { p->SetLongField (this, obj0, fld1, val2); }
-
-  void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
-  { p->SetFloatField (this, obj0, fld1, val2); }
-
-  void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
-  { p->SetDoubleField (this, obj0, fld1, val2); }
-
-  jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticMethodID (this, cl0, val1, val2); }
-
-  jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
-
-  jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
-
-  jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
-
-  jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
-
-  jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
-
-  jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
-
-  jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
-
-  jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
-
-  jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
-
-  jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
-
-  jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
-
-  jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
-
-  jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
-
-  jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
-
-  jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
-
-  jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
-
-  jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
-
-  jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
-
-  void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    p->CallStaticVoidMethodV (this, cl0, meth1, args);
-    va_end (args);
-  }
-
-  void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
-
-  void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
-
-  jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticFieldID (this, cl0, val1, val2); }
-
-  jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticObjectField (this, cl0, fld1); }
-
-  jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticBooleanField (this, cl0, fld1); }
-
-  jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticByteField (this, cl0, fld1); }
-
-  jchar GetStaticCharField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticCharField (this, cl0, fld1); }
-
-  jshort GetStaticShortField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticShortField (this, cl0, fld1); }
-
-  jint GetStaticIntField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticIntField (this, cl0, fld1); }
-
-  jlong GetStaticLongField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticLongField (this, cl0, fld1); }
-
-  jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticFloatField (this, cl0, fld1); }
-
-  jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticDoubleField (this, cl0, fld1); }
-
-  void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
-  { p->SetStaticObjectField (this, cl0, fld1, obj2); }
-
-  void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
-  { p->SetStaticBooleanField (this, cl0, fld1, val2); }
-
-  void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
-  { p->SetStaticByteField (this, cl0, fld1, val2); }
-
-  void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
-  { p->SetStaticCharField (this, cl0, fld1, val2); }
-
-  void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
-  { p->SetStaticShortField (this, cl0, fld1, val2); }
-
-  void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
-  { p->SetStaticIntField (this, cl0, fld1, val2); }
-
-  void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
-  { p->SetStaticLongField (this, cl0, fld1, val2); }
-
-  void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
-  { p->SetStaticFloatField (this, cl0, fld1, val2); }
-
-  void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
-  { p->SetStaticDoubleField (this, cl0, fld1, val2); }
-
-  jstring NewString (const jchar * val0, jsize val1)
-  { return p->NewString (this, val0, val1); }
-
-  jsize GetStringLength (jstring val0)
-  { return p->GetStringLength (this, val0); }
-
-  const jchar * GetStringChars (jstring val0, jboolean * val1)
-  { return p->GetStringChars (this, val0, val1); }
-
-  void ReleaseStringChars (jstring val0, const jchar * val1)
-  { p->ReleaseStringChars (this, val0, val1); }
-
-  jstring NewStringUTF (const char * val0)
-  { return p->NewStringUTF (this, val0); }
-
-  jsize GetStringUTFLength (jstring val0)
-  { return p->GetStringUTFLength (this, val0); }
-
-  const char * GetStringUTFChars (jstring val0, jboolean * val1)
-  { return p->GetStringUTFChars (this, val0, val1); }
-
-  void ReleaseStringUTFChars (jstring val0, const char * val1)
-  { p->ReleaseStringUTFChars (this, val0, val1); }
-
-  jsize GetArrayLength (jarray val0)
-  { return p->GetArrayLength (this, val0); }
-
-  jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
-  { return p->NewObjectArray (this, val0, cl1, obj2); }
-
-  jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
-  { return p->GetObjectArrayElement (this, val0, val1); }
-
-  void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
-  { p->SetObjectArrayElement (this, val0, val1, obj2); }
-
-  jbooleanArray NewBooleanArray (jsize val0)
-  { return p->NewBooleanArray (this, val0); }
-
-  jbyteArray NewByteArray (jsize val0)
-  { return p->NewByteArray (this, val0); }
-
-  jcharArray NewCharArray (jsize val0)
-  { return p->NewCharArray (this, val0); }
-
-  jshortArray NewShortArray (jsize val0)
-  { return p->NewShortArray (this, val0); }
-
-  jintArray NewIntArray (jsize val0)
-  { return p->NewIntArray (this, val0); }
-
-  jlongArray NewLongArray (jsize val0)
-  { return p->NewLongArray (this, val0); }
-
-  jfloatArray NewFloatArray (jsize val0)
-  { return p->NewFloatArray (this, val0); }
-
-  jdoubleArray NewDoubleArray (jsize val0)
-  { return p->NewDoubleArray (this, val0); }
-
-  jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
-  { return p->GetBooleanArrayElements (this, val0, val1); }
-
-  jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
-  { return p->GetByteArrayElements (this, val0, val1); }
-
-  jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
-  { return p->GetCharArrayElements (this, val0, val1); }
-
-  jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
-  { return p->GetShortArrayElements (this, val0, val1); }
-
-  jint * GetIntArrayElements (jintArray val0, jboolean * val1)
-  { return p->GetIntArrayElements (this, val0, val1); }
-
-  jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
-  { return p->GetLongArrayElements (this, val0, val1); }
-
-  jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
-  { return p->GetFloatArrayElements (this, val0, val1); }
-
-  jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
-  { return p->GetDoubleArrayElements (this, val0, val1); }
-
-  void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
-  { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
-
-  void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
-  { p->ReleaseByteArrayElements (this, val0, val1, val2); }
-
-  void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
-  { p->ReleaseCharArrayElements (this, val0, val1, val2); }
-
-  void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
-  { p->ReleaseShortArrayElements (this, val0, val1, val2); }
-
-  void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
-  { p->ReleaseIntArrayElements (this, val0, val1, val2); }
-
-  void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
-  { p->ReleaseLongArrayElements (this, val0, val1, val2); }
-
-  void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
-  { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
-
-  void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
-  { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
-
-  void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
-  jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
-  { return p->RegisterNatives (this, cl0, val1, val2); }
-
-  jint UnregisterNatives (jclass cl0)
-  { return p->UnregisterNatives (this, cl0); }
-
-  jint MonitorEnter (jobject obj0)
-  { return p->MonitorEnter (this, obj0); }
-
-  jint MonitorExit (jobject obj0)
-  { return p->MonitorExit (this, obj0); }
-
-  jint GetJavaVM (JavaVM ** val0)
-  { return p->GetJavaVM (this, val0); }
-
-  void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetStringRegion (this, val0, val1, val2, val3); }
-
-  void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
-  { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
-
-  void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
-  { return p->GetPrimitiveArrayCritical (this, val0, val1); }
-
-  void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
-  { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
-
-  const jchar * GetStringCritical (jstring val0, jboolean * val1)
-  { return p->GetStringCritical (this, val0, val1); }
-
-  void ReleaseStringCritical (jstring val0, const jchar * val1)
-  { p->ReleaseStringCritical (this, val0, val1); }
-
-  jweak NewWeakGlobalRef (jobject obj0)
-  { return p->NewWeakGlobalRef (this, obj0); }
-
-  void DeleteWeakGlobalRef (jweak val0)
-  { p->DeleteWeakGlobalRef (this, val0); }
-
-  jboolean ExceptionCheck ()
-  { return p->ExceptionCheck (this); }
-
-  jobject NewDirectByteBuffer (void * val1, jlong val2)
-  { return p->NewDirectByteBuffer (this, val1, val2); }
-
-  void * GetDirectBufferAddress (jobject val1)
-  { return p->GetDirectBufferAddress (this, val1); }
-
-  long GetDirectBufferCapacity (jobject val1)
-  { return p->GetDirectBufferCapacity (this, val1); }
-
-};
-#endif /* __cplusplus */
-
-/*
- * Invocation API.
- */
-
-struct JNIInvokeInterface
-{
-  void *reserved0;
-  void *reserved1;
-  void *reserved2;
-
-  jint (JNICALL *DestroyJavaVM)               (JavaVM *);
-  jint (JNICALL *AttachCurrentThread)         (JavaVM *, void **, void *);
-  jint (JNICALL *DetachCurrentThread)         (JavaVM *);
-  jint (JNICALL *GetEnv)                      (JavaVM *, void **, jint);
-  jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);
-
-};
-
-#ifdef __cplusplus
-
-struct _Jv_JavaVM
-{
-  const struct JNIInvokeInterface *functions;
-
-  jint DestroyJavaVM ()
-  { return functions->DestroyJavaVM (this); }
-
-  jint AttachCurrentThread (void **penv, void *args)
-  { return functions->AttachCurrentThread (this, penv, args); }
-
-  jint DetachCurrentThread ()
-  { return functions->DetachCurrentThread (this); }
-
-  jint GetEnv (void **penv, jint version)
-  { return functions->GetEnv (this, penv, version); }
-
-  jint AttachCurrentThreadAsDaemon (void **penv, void *args)
-  { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
-};
-#endif /* __cplusplus */
-
-typedef struct JavaVMAttachArgs
-{
-  jint version;			/* Must be JNI_VERSION_1_2.  */
-  char *name;			/* The name of the thread (or NULL).  */
-  jobject group;		/* Global ref of a ThreadGroup object
-				   (or NULL).  */
-} JavaVMAttachArgs;
-
-typedef struct JavaVMOption
-{
-  char *optionString;
-  void *extraInfo;
-} JavaVMOption;
-
-typedef struct JavaVMInitArgs
-{
-  /* Must be JNI_VERSION_1_2.  */
-  jint version;
-
-  /* Number of options.  */
-  jint nOptions;
-
-  /* Options to the VM.  */
-  JavaVMOption *options;
-
-  /* Whether we should ignore unrecognized options.  */
-  jboolean ignoreUnrecognized;
-} JavaVMInitArgs;
-
-
-/* Keep c-font-lock-extra-types in alphabetical order. */
-/* Local Variables: */
-/* c-font-lock-extra-types: ("\\sw+_t"
-   "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
-   "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar"  "jcharArray"
-   "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
-   "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
-   "jvalue" "jweak") */
-/* End: */
-#endif /* __CLASSPATH_JNI_H__ */
diff --git a/java/include/llvm/Java/types.def b/java/include/llvm/Java/types.def
deleted file mode 100644
index 21d9b12..0000000
--- a/java/include/llvm/Java/types.def
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- llvm/Java/types.def - File that describes Java primitives -*- C++ -*-=//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file contains descriptions of the various Java primitive types. This
-// is used as a central place for enumerating the different primitive types.
-//
-//===----------------------------------------------------------------------===//
-
-// NOTE: NO INCLUDE GUARD DESIRED!
-
-// Provide definitions of macros so that users of this file do not have to
-// define everything to use it...
-
-#ifdef HANDLE_NATIVE_TYPE
-HANDLE_NATIVE_TYPE(boolean)
-HANDLE_NATIVE_TYPE(byte)
-HANDLE_NATIVE_TYPE(char)
-HANDLE_NATIVE_TYPE(short)
-HANDLE_NATIVE_TYPE(int)
-HANDLE_NATIVE_TYPE(long)
-HANDLE_NATIVE_TYPE(float)
-HANDLE_NATIVE_TYPE(double)
-
-#undef HANDLE_NATIVE_TYPE
-#endif
-
-#ifdef HANDLE_TYPE
-HANDLE_TYPE(object)
-HANDLE_TYPE(boolean)
-HANDLE_TYPE(byte)
-HANDLE_TYPE(char)
-HANDLE_TYPE(short)
-HANDLE_TYPE(int)
-HANDLE_TYPE(long)
-HANDLE_TYPE(float)
-HANDLE_TYPE(double)
-
-#undef HANDLE_TYPE
-#endif
diff --git a/java/lib/ClassFile/ClassFile.cpp b/java/lib/ClassFile/ClassFile.cpp
deleted file mode 100644
index 9cb9ba9..0000000
--- a/java/lib/ClassFile/ClassFile.cpp
+++ /dev/null
@@ -1,767 +0,0 @@
-//===-- ClassFile.cpp - ClassFile class -----------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the ClassFile library. It
-// is used by the LLVM Java frontend to parse Java Class files.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "classfile"
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/Support/Debug.h>
-#include <llvm/Config/alloca.h>
-
-#include <algorithm>
-#include <cassert>
-#include <fstream>
-#include <functional>
-#include <iostream>
-#include <iterator>
-#include <map>
-
-using namespace llvm::Java;
-
-namespace {
-
-  using namespace llvm;
-
-  static cl::opt<std::string>
-  ClassPath("cp",
-            cl::desc("A : separated list of directories"),
-            cl::value_desc("class search path"),
-            cl::init(getenv("CLASSPATH") ? getenv("CLASSPATH") : ""));
-  static cl::alias
-  ClassPathA("classpath",
-             cl::desc("Alias for -cp"),
-             cl::aliasopt(ClassPath));
-
-}
-
-//===----------------------------------------------------------------------===//
-// Internal utility functions
-namespace {
-
-  uint8_t readU1(std::istream& is) {
-    char val;
-    if (!is.get(val))
-      throw ClassFileParseError("unexpected end of input");
-    return val;
-  }
-
-  uint16_t readU2(std::istream& is) {
-    uint16_t val = readU1(is);
-    return (val << 8) | readU1(is);
-  }
-
-  uint32_t readU4(std::istream& is) {
-    uint32_t val = readU2(is);
-    return (val << 16) | readU2(is);
-  }
-
-  uint64_t readU8(std::istream& is) {
-    uint64_t hi = readU4(is), lo = readU4(is);
-    return hi << 32 | lo;
-  }
-
-  float int2float(uint32_t v) {
-    union { uint32_t in; float out; } tmp;
-    tmp.in = v;
-    return tmp.out;
-  }
-
-  double long2double(uint64_t v) {
-    union { uint64_t in; double out; } tmp;
-    tmp.in = v;
-    return tmp.out;
-  }
-
-  void readFields(Fields& f, const ClassFile* parent, std::istream& is)
-  {
-    assert(f.empty() && "Should not call with a non-empty fields vector");
-    uint16_t count = readU2(is);
-    f.reserve(count);
-    while(count--)
-      f.push_back(Field::readField(parent, is));
-  }
-
-  void readMethods(Methods& m, const ClassFile* parent, std::istream& is)
-  {
-    assert(m.empty() && "Should not call with a non-empty methods vector");
-    uint16_t count = readU2(is);
-    m.reserve(count);
-    while(count--)
-      m.push_back(Method::readMethod(parent, is));
-  }
-
-  void readAttributes(Attributes& a, const ClassFile* cf, std::istream& is)
-  {
-    assert(a.empty() &&
-           "Should not call with a non-empty attributes vector");
-    uint16_t count = readU2(is);
-    a.reserve(count);
-    while(count--)
-      a.push_back(Attribute::readAttribute(cf, is));
-  }
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFile implementation
-const ClassFile* ClassFile::readClassFile(std::istream& is)
-{
-  if (readU1(is) != 0xCA) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xFE) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xBA) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xBE) throw ClassFileParseError("bad magic");
-
-  return new ClassFile(is);
-}
-
-std::vector<sys::Path> ClassFile::getClassPath()
-{
-  DEBUG(std::cerr << "CLASSPATH=" << ClassPath << '\n');
-
-  std::vector<sys::Path> result;
-  sys::Path path;
-  unsigned b = 0, e = 0;
-  do {
-    e = ClassPath.find(':', b);
-    // FIXME: Currently we only support flat class file reading. When
-    // jar files are supported this chech has to change to not require
-    // that each CLASSPATH component is a directory.
-    if (path.set(ClassPath.substr(b, e - b)) && path.isDirectory()) {
-      result.push_back(path);
-      DEBUG(std::cerr << "Adding: " << path.toString() << " to CLASSPATH\n");
-    }
-    b = e + 1;
-  } while (e != std::string::npos);
-
-  return result;
-}
-
-sys::Path ClassFile::getFileForClass(const std::string& classname)
-{
-  static const std::vector<sys::Path> classpath = getClassPath();
-  DEBUG(std::cerr << "Looking up class: " << classname << '\n');
-
-  std::string clazz = classname;
-  // replace '.' with '/'
-  for (unsigned i = 0, e = clazz.size(); i != e; ++i)
-    if (clazz[i] == '.')
-      clazz[i] = '/';
-  clazz += ".class";
-
-  for (unsigned i = 0, e = classpath.size(); i != e; ++i) {
-    sys::Path filename = classpath[i];
-    assert(filename.isDirectory() && "CLASSPATH element not a directory!");
-    filename.appendComponent(clazz);
-    DEBUG(std::cerr << "Trying file: " << filename.toString() << '\n');
-    if (filename.exists())
-      return filename;
-  }
-
-  throw ClassNotFoundException("Class " + classname + " not found");
-}
-
-const ClassFile* ClassFile::get(const std::string& classname)
-{
-  typedef std::map<std::string, const ClassFile*> Name2ClassMap;
-  static Name2ClassMap n2cMap_;
-
-  Name2ClassMap::iterator it = n2cMap_.lower_bound(classname);
-
-  if (it == n2cMap_.end() || it->first != classname) {
-    std::ifstream in(getFileForClass(classname).c_str());
-    it = n2cMap_.insert(it, std::make_pair(classname, readClassFile(in)));
-  }
-
-  return it->second;
-}
-
-ClassFile::ClassFile(std::istream& is)
-{
-  minorV_ = readU2(is);
-  majorV_ = readU2(is);
-  // Read constant pool.
-  uint16_t count = readU2(is);
-  cPool_.reserve(count);
-  cPool_.push_back(NULL);
-  while (cPool_.size() < count) {
-    cPool_.push_back(Constant::readConstant(this, is));
-    if (cPool_.back()->isDoubleSlot())
-      cPool_.push_back(NULL);
-  }
-  accessFlags_ = readU2(is);
-  thisClassIdx_ = readU2(is);
-  superClassIdx_ = readU2(is);
-  count = readU2(is);
-  interfaces_.reserve(count);
-  while (count--)
-    interfaces_.push_back(readU2(is));
-
-  readFields(fields_, this, is);
-  readMethods(methods_, this, is);
-  readAttributes(attributes_, this, is);
-}
-
-ConstantClass* ClassFile::getConstantClass(unsigned index) const
-{
-  assert(dynamic_cast<ConstantClass*>(getConstant(index)) &&
-         "Constant is not a ConstantClass!");
-  return static_cast<ConstantClass*>(getConstant(index));
-}
-
-ConstantMemberRef* ClassFile::getConstantMemberRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantMemberRef*>(getConstant(index)) &&
-         "Constant is not a ConstantMemberRef!");
-  return static_cast<ConstantMemberRef*>(getConstant(index));
-}
-
-ConstantFieldRef* ClassFile::getConstantFieldRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantFieldRef*>(getConstant(index)) &&
-         "Constant is not a ConstantFieldRef!");
-  return static_cast<ConstantFieldRef*>(getConstant(index));
-}
-
-ConstantMethodRef* ClassFile::getConstantMethodRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantMethodRef*>(getConstant(index)) &&
-         "Constant is not a ConstantMethodRef!");
-  return static_cast<ConstantMethodRef*>(getConstant(index));
-}
-
-ConstantInterfaceMethodRef*
-ClassFile::getConstantInterfaceMethodRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantInterfaceMethodRef*>(getConstant(index)) &&
-         "Constant is not a ConstantInterfaceMethodRef!");
-  return static_cast<ConstantInterfaceMethodRef*>(getConstant(index));
-}
-
-ConstantNameAndType* ClassFile::getConstantNameAndType(unsigned index) const
-{
-  assert(dynamic_cast<ConstantNameAndType*>(getConstant(index)) &&
-         "Constant is not a ConstantNameAndType!");
-  return static_cast<ConstantNameAndType*>(getConstant(index));
-}
-
-ConstantUtf8* ClassFile::getConstantUtf8(unsigned index) const
-{
-  assert(dynamic_cast<ConstantUtf8*>(getConstant(index)) &&
-         "Constant is not a ConstantUtf8!");
-  return static_cast<ConstantUtf8*>(getConstant(index));
-}
-
-bool ClassFile::isNativeMethodOverloaded(const Method& method) const
-{
-  unsigned count = 0;
-  for (Methods::const_iterator i = methods_.begin(), e = methods_.end();
-       i != e; ++i)
-    if ((*i)->isNative() && (*i)->getName() == method.getName())
-      ++count;
-
-  return count > 1;
-}
-
-ClassFile::~ClassFile()
-{
-  for_each(cPool_.begin(), cPool_.end(), deleter<Constant>);
-  for_each(fields_.begin(), fields_.end(), deleter<Field>);
-  for_each(methods_.begin(), methods_.end(), deleter<Method>);
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-std::ostream& ClassFile::dump(std::ostream& os) const
-{
-  os << "Minor version: " << getMinorVersion() << '\n'
-     << "Major version: " << getMajorVersion() << "\n\n"
-     << "class " << *getThisClass();
-  if (getSuperClass())
-    os  << " (" << *getSuperClass() << ")\n";
-
-  os << "Flags:";
-  if (isPublic()) os << " public";
-  if (isFinal()) os << " final";
-  if (isSuper()) os << " super";
-  if (isInterface()) os << " interface";
-  if (isAbstract()) os << " abstract";
-
-//   dumpCollection(interfaces_, "Interface", os);
-//   dumpCollection(fields_, "Field", os);
-//   dumpCollection(methods_, "Method", os);
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-//===----------------------------------------------------------------------===//
-// Utility functions
-Attribute* llvm::Java::getAttribute(const Attributes& attrs,
-                                    const std::string& name)
-{
-  for (unsigned i = 0, e = attrs.size(); i != e; ++i)
-    if (attrs[i]->getName()->str() == name)
-      return attrs[i];
-
-  return NULL;
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFileParseError implementation
-ClassFileParseError::~ClassFileParseError() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFileSemanticError implementation
-ClassFileSemanticError::~ClassFileSemanticError() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassNotFoundException implementation
-ClassNotFoundException::~ClassNotFoundException() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// InvocationTargetException implementation
-InvocationTargetException::~InvocationTargetException() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// Constant implementation
-Constant* Constant::readConstant(const ClassFile* cf, std::istream& is)
-{
-  Constant::Tag tag = static_cast<Constant::Tag>(readU1(is));
-  switch (tag) {
-  case Constant::CLASS:
-    return new ConstantClass(cf, is);
-  case Constant::FIELD_REF:
-    return new ConstantFieldRef(cf, is);
-  case Constant::METHOD_REF:
-    return new ConstantMethodRef(cf, is);
-  case Constant::INTERFACE_METHOD_REF:
-    return new ConstantInterfaceMethodRef(cf, is);
-  case Constant::STRING:
-    return new ConstantString(cf, is);
-  case Constant::INTEGER:
-    return new ConstantInteger(cf, is);
-  case Constant::FLOAT:
-    return new ConstantFloat(cf, is);
-  case Constant::LONG:
-    return new ConstantLong(cf, is);
-  case Constant::DOUBLE:
-    return new ConstantDouble(cf, is);
-  case Constant::NAME_AND_TYPE:
-    return new ConstantNameAndType(cf, is);
-  case Constant::UTF8:
-    return new ConstantUtf8(cf, is);
-  default:
-    assert(0 && "Unknown constant tag");
-  }
-
-  return NULL;
-}
-
-Constant::~Constant()
-{
-
-}
-
-ConstantClass::ConstantClass(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    nameIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantClass::dump(std::ostream& os) const
-{
-  return os << "class (Name=" << nameIdx_ << ')';
-}
-
-ConstantMemberRef::ConstantMemberRef(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    classIdx_(readU2(is)),
-    nameAndTypeIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantFieldRef::dump(std::ostream& os) const
-{
-  return os << "fieldRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-std::ostream& ConstantMethodRef::dump(std::ostream& os) const
-{
-  return os << "methodRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-std::ostream& ConstantInterfaceMethodRef::dump(std::ostream& os) const
-{
-  return os << "interfaceMethodRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-ConstantString::ConstantString(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    stringIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantString::dump(std::ostream& os) const
-{
-  return os << "string (utf8=" << stringIdx_ << ')';
-}
-
-ConstantInteger::ConstantInteger(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(static_cast<int32_t>(readU4(is)))
-{
-
-}
-
-std::ostream& ConstantInteger::dump(std::ostream& os) const
-{
-  return os << "int " << value_;
-}
-
-ConstantFloat::ConstantFloat(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(int2float(readU4(is)))
-{
-
-}
-
-std::ostream& ConstantFloat::dump(std::ostream& os) const
-{
-  return os << "float " << value_;
-}
-
-ConstantLong::ConstantLong(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(static_cast<int64_t>(readU8(is)))
-{
-
-}
-
-std::ostream& ConstantLong::dump(std::ostream& os) const
-{
-  return os << "long " << value_ << 'l';
-}
-
-ConstantDouble::ConstantDouble(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(long2double(readU8(is)))
-{
-
-}
-
-std::ostream& ConstantDouble::dump(std::ostream& os) const
-{
-  return os << "double " << value_;
-}
-
-ConstantNameAndType::ConstantNameAndType(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    nameIdx_(readU2(is)),
-    descriptorIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantNameAndType::dump(std::ostream& os) const
-{
-  return os << "nameAndType (name=" << nameIdx_
-            << ", descriptor=" << descriptorIdx_ << ')';
-}
-
-ConstantUtf8::ConstantUtf8(const ClassFile* cf, std::istream& is)
-  : Constant(cf)
-{
-  uint16_t length = readU2(is);
-  char *buf = (char *)alloca(length);
-  std::streamsize s = is.rdbuf()->sgetn(buf, length);
-  if (s != length)
-    throw ClassFileParseError(
-      "Could not read string constant from input stream");
-  utf8_.assign(buf, length);
-}
-
-std::ostream& ConstantUtf8::dump(std::ostream& os) const
-{
-  return os << utf8_;
-}
-
-//===----------------------------------------------------------------------===//
-// Member implementation
-Member::Member(const ClassFile* parent, std::istream& is)
-  : parent_(parent),
-    accessFlags_(readU2(is)),
-    nameIdx_(readU2(is)),
-    descriptorIdx_(readU2(is))
-{
-  readAttributes(attributes_, parent_, is);
-}
-
-Member::~Member()
-{
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-//===----------------------------------------------------------------------===//
-// Field implementation
-Field::Field(const ClassFile* parent, std::istream& is)
-  : Member(parent, is)
-{
-
-}
-
-Field::~Field()
-{
-
-}
-
-std::ostream& Field::dump(std::ostream& os) const
-{
-  os << *getName() << ' ' << *getDescriptor() << '\n'
-     << "Flags:";
-  if (isPublic()) os << " public";
-  if (isPrivate()) os << " private";
-  if (isProtected()) os << " protected";
-  if (isStatic()) os << " static";
-  if (isFinal()) os << " final";
-  if (isVolatile()) os << " volatile";
-  if (isTransient()) os << " transient";
-
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-ConstantValueAttribute* Field::getConstantValueAttribute() const
-{
-  if (!isStatic())
-    return NULL;
-
-  return (ConstantValueAttribute*) getAttribute(attributes_,
-                                                Attribute::CONSTANT_VALUE);
-}
-
-//===----------------------------------------------------------------------===//
-// Method implementation
-Method::Method(const ClassFile* parent, std::istream& is)
-  : Member(parent, is)
-{
-
-}
-
-Method::~Method()
-{
-
-}
-
-std::ostream& Method::dump(std::ostream& os) const
-{
-  os << *getName() << ' ' << *getDescriptor() << '\n'
-     << "Flags:";
-  if (isPublic()) os << " public";
-  if (isPrivate()) os << " private";
-  if (isProtected()) os << " protected";
-  if (isStatic()) os << " static";
-  if (isFinal()) os << " final";
-  if (isSynchronized()) os << " synchronized";
-  if (isNative()) os << " native";
-  if (isStrict()) os << " strict";
-
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-CodeAttribute* Method::getCodeAttribute() const
-{
-  return (CodeAttribute*) getAttribute(attributes_, Attribute::CODE);
-}
-
-ExceptionsAttribute* Method::getExceptionsAttribute() const
-{
-  return (ExceptionsAttribute*) getAttribute(attributes_,
-                                             Attribute::EXCEPTIONS);
-}
-
-//===----------------------------------------------------------------------===//
-// Attribute implementation
-const std::string Attribute::CONSTANT_VALUE = "ConstantValue";
-const std::string Attribute::CODE = "Code";
-const std::string Attribute::EXCEPTIONS = "Exceptions";
-const std::string Attribute::INNER_CLASSES = "InnerClasses";
-const std::string Attribute::SYNTHETIC = "Synthetic";
-const std::string Attribute::SOURCE_FILE = "SourceFile";
-const std::string Attribute::LINE_NUMBER_TABLE = "LineNumberTable";
-const std::string Attribute::LOCAL_VARIABLE_TABLE = "LocalVariableTable";
-const std::string Attribute::DEPRECATED = "Deprecated";
-
-Attribute* Attribute::readAttribute(const ClassFile* cf, std::istream& is)
-{
-  uint16_t nameIdx = readU2(is);
-  ConstantUtf8* name = cf->getConstantUtf8(nameIdx);
-  if (!name)
-    throw ClassFileSemanticError(
-      "Representation of attribute name is not of type ConstantUtf8");
-
-  if (CONSTANT_VALUE == name->str())
-    return new ConstantValueAttribute(cf, nameIdx, is);
-  else if (CODE == name->str())
-    return new CodeAttribute(cf, nameIdx, is);
-  else {
-    uint32_t length = readU4(is);
-    is.ignore(length);
-    return new Attribute(cf, nameIdx, is);
-  }
-}
-
-Attribute::Attribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is)
-  : parent_(cf),
-    nameIdx_(nameIdx)
-{
-
-}
-
-Attribute::~Attribute()
-{
-
-}
-
-std::ostream& Attribute::dump(std::ostream& os) const
-{
-  return os << *getName();
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeConstantValue implementation
-ConstantValueAttribute::ConstantValueAttribute(const ClassFile* cf,
-                                               uint16_t nameIdx,
-                                               std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  if (length != 2)
-    throw ClassFileSemanticError(
-      "Length of ConstantValueAttribute is not 2");
-  valueIdx_ = readU2(is);
-}
-
-std::ostream& ConstantValueAttribute::dump(std::ostream& os) const
-{
-  return Attribute::dump(os) << ": " << *getValue();
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeCode implementation
-CodeAttribute::CodeAttribute(const ClassFile* cf,
-                             uint16_t nameIdx,
-                             std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  maxStack_ = readU2(is);
-  maxLocals_ = readU2(is);
-  codeSize_ = readU4(is);
-  code_ = new uint8_t[codeSize_];
-  std::streamsize s = is.rdbuf()->sgetn(reinterpret_cast<char*>(code_), codeSize_);
-  if (s != (std::streamsize) codeSize_)
-    throw ClassFileParseError(
-      "Could not read code from input stream");
-  uint16_t exceptCount = readU2(is);
-  exceptions_.reserve(exceptCount);
-  while (exceptCount--)
-    exceptions_.push_back(new Exception(cf, is));
-  readAttributes(attributes_, cf, is);
-}
-
-CodeAttribute::~CodeAttribute()
-{
-  delete[] code_;
-  for_each(exceptions_.begin(), exceptions_.end(), deleter<Exception>);
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-std::ostream& CodeAttribute::dump(std::ostream& os) const
-{
-  Attribute::dump(os)
-    << '\n'
-    << "Max stack: " << maxStack_ << '\n'
-    << "Max locals: " << maxLocals_ << '\n'
-    << "Code size: " << codeSize_ << '\n';
-//   dumpCollection(exceptions_, "Exception", os);
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-CodeAttribute::Exception::Exception(const ClassFile* cf, std::istream& is)
-  : parent_(cf),
-    startPc_(readU2(is)),
-    endPc_(readU2(is)),
-    handlerPc_(readU2(is)),
-    catchTypeIdx_(readU2(is))
-{
-  if (catchTypeIdx_ && !cf->getConstantClass(catchTypeIdx_))
-    throw ClassFileSemanticError
-      ("Representation of catch type is not of type ConstantClass");
-}
-
-std::ostream& CodeAttribute::Exception::dump(std::ostream& os) const
-{
-  if (getCatchType())
-    os << *getCatchType() << '\n';
-  else
-    os << "catch-all\n";
-  return os << "Start PC: " << startPc_ << '\n'
-            << "End PC: " << endPc_ << '\n'
-            << "Handler PC: " << handlerPc_;
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeExceptions implementation
-ExceptionsAttribute::ExceptionsAttribute(const ClassFile* cf,
-                                         uint16_t nameIdx,
-                                         std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  uint16_t count = readU2(is);
-  exceptions_.reserve(count);
-  while (count--)
-    exceptions_.push_back(readU2(is));
-}
-
-std::ostream& ExceptionsAttribute::dump(std::ostream& os) const
-{
-  os << Attribute::dump(os) << ": ";
-  for (unsigned i = 0, e = getNumExceptions(); i != e; ++i)
-    os << *getException(i) << ' ';
-  return os;
-}
diff --git a/java/lib/ClassFile/Makefile b/java/lib/ClassFile/Makefile
deleted file mode 100755
index ae4b8bb..0000000
--- a/java/lib/ClassFile/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/ClassFile/Makefile ------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-LIBRARYNAME := LLVMJavaClassfile
-
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Compiler/BasicBlockBuilder.h b/java/lib/Compiler/BasicBlockBuilder.h
deleted file mode 100644
index ebecf58..0000000
--- a/java/lib/Compiler/BasicBlockBuilder.h
+++ /dev/null
@@ -1,195 +0,0 @@
-//===-- BasicBlockBuilder.h - Java bytecode BasicBlock builder --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a BasicBlock builder that creates a LLVM
-// BasicBlocks from Java bytecode. It also keeps track of the java
-// bytecode indices that bound each basic block.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Instructions.h>
-#include <map>
-
-namespace llvm { namespace Java {
-
-  class BasicBlockBuilder : public BytecodeParser<BasicBlockBuilder> {
-    Function* function_;
-    typedef std::map<unsigned, BasicBlock*> BC2BBMap;
-    BC2BBMap bc2bbMap_;
-    typedef std::map<BasicBlock*, std::pair<unsigned,unsigned> > BB2BCMap;
-    BB2BCMap bb2bcMap_;
-
-    BasicBlock* getOrCreateBasicBlockAt(unsigned bcI) {
-      BC2BBMap::iterator it = bc2bbMap_.lower_bound(bcI);
-      if (it == bc2bbMap_.end() || it->first != bcI) {
-        bool inserted;
-        BasicBlock* newBB = new BasicBlock("bc" + utostr(bcI), function_);
-        tie(it, inserted) = bc2bbMap_.insert(std::make_pair(bcI, newBB));
-        assert(inserted && "LLVM basic block multiply defined!");
-      }
-
-      return it->second;
-    }
-
-  public:
-    BasicBlockBuilder(Function* f, CodeAttribute* c)
-      : function_(f) {
-
-      // Create the entry block.
-      BasicBlock* entry = new BasicBlock("entry", function_);
-
-      // Create the block for bytecode 0 (bb0).
-      BasicBlock* bb = getOrCreateBasicBlockAt(0);
-
-      // Create basic blocks for exception handlers.
-      const CodeAttribute::Exceptions& exceptions = c->getExceptions();
-      for (unsigned i = 0, e = exceptions.size(); i != e; ++i)
-        getOrCreateBasicBlockAt(exceptions[i]->getHandlerPc());
-
-      // Parse the bytecode and create basic blocks for all targets of
-      // control flow instructions.
-      parse(c->getCode(), 0, c->getCodeSize());
-
-      // Build the bytecode->basic block map.
-      for (BC2BBMap::const_iterator i = bc2bbMap_.begin(), e = bc2bbMap_.end();
-           i != e; ++i) {
-        unsigned end = next(i) != e ? next(i)->first : c->getCodeSize();
-        bb2bcMap_.insert(
-          std::make_pair(i->second, std::make_pair(i->first, end)));
-      }
-
-      assert(function_->getEntryBlock().getName() == "entry");
-      assert(bb2bcMap_.find(&function_->getEntryBlock()) == bb2bcMap_.end());
-    }
-
-    BasicBlock* getBasicBlock(unsigned bcI) const {
-      BC2BBMap::const_iterator i = bc2bbMap_.find(bcI);
-      assert(i != bc2bbMap_.end() &&
-             "No block is mapped to this bytecode index!");
-      return i->second;
-    }
-
-    std::pair<unsigned,unsigned> getBytecodeIndices(BasicBlock* bb) const {
-      BB2BCMap::const_iterator i = bb2bcMap_.find(bb);
-      assert(i != bb2bcMap_.end() &&
-             "BasicBlock was not created by this builder!");
-      return i->second;
-    }
-
-    void do_ifeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_iflt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifge(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifgt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifle(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmplt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpgt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpge(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmple(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_acmpeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_acmpne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_jsr(unsigned t, unsigned r) {
-      getOrCreateBasicBlockAt(r);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_switch_common(unsigned defTarget, const SwitchCases& sw) {
-      for (unsigned i = 0, e = sw.size(); i != e; ++i) {
-        unsigned target = sw[i].second;
-        getOrCreateBasicBlockAt(target);
-      }
-      getOrCreateBasicBlockAt(defTarget);
-    }
-
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_goto(unsigned target) {
-      getOrCreateBasicBlockAt(target);
-    }
-
-    void do_ifnull(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifnonnull(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-  };
-
-} } // namespace llvm::Java
diff --git a/java/lib/Compiler/Compiler.cpp b/java/lib/Compiler/Compiler.cpp
deleted file mode 100644
index a5aa90a..0000000
--- a/java/lib/Compiler/Compiler.cpp
+++ /dev/null
@@ -1,1278 +0,0 @@
-//===-- Compiler.cpp - Java bytecode compiler -------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode to LLVM bytecode compiler.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javacompiler"
-
-#include <llvm/Java/Compiler.h>
-#include "BasicBlockBuilder.h"
-#include "Locals.h"
-#include "OperandStack.h"
-#include "Resolver.h"
-#include <llvm/Java/Bytecode.h>
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Value.h>
-#include <llvm/Type.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/ADT/SetVector.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Support/CFG.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-#include <list>
-#include <vector>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-namespace llvm { namespace Java { namespace {
-
-  const std::string TMP("tmp");
-
-  llvm::Constant* ONE = ConstantSInt::get(Type::IntTy, 1);
-  llvm::Constant* ZERO = ConstantSInt::get(Type::IntTy, 0);
-  llvm::Constant* MINUS_ONE = ConstantSInt::get(Type::IntTy, -1);
-
-  llvm::Constant* INT_SHIFT_MASK = ConstantUInt::get(Type::UByteTy, 0x1f);
-  llvm::Constant* LONG_SHIFT_MASK = ConstantUInt::get(Type::UByteTy, 0x3f);
-
-  class Compiler : public BytecodeParser<Compiler> {
-    Module* module_;
-    std::auto_ptr<Resolver> resolver_;
-    GlobalVariable* JNIEnvPtr_;
-    const VMClass* class_;
-    std::auto_ptr<BasicBlockBuilder> bbBuilder_;
-    std::list<BasicBlock*> bbWorkList_;
-    typedef std::map<BasicBlock*, unsigned> OpStackDepthMap;
-    OpStackDepthMap opStackDepthMap_;
-    typedef std::map<std::string, GlobalVariable*> StringMap;
-    StringMap stringMap_;
-    BasicBlock* currentBB_;
-    Locals locals_;
-    OperandStack opStack_;
-    Function *getClassRecord_, *setClassRecord_, *throw_, *isInstanceOf_,
-      *memcpy_, *memset_;
-    std::vector<llvm::Constant*> classInitializers_;
-
-    SetVector<const VMMethod*> toCompileMethods_;
-
-  public:
-    Compiler(Module* m)
-      : module_(m),
-        resolver_(new Resolver(module_)),
-        locals_(resolver_.get(), 0),
-        opStack_(resolver_.get(), 0) {
-      Type* JNIEnvTy = OpaqueType::get();
-      module_->addTypeName("JNIEnv", JNIEnvTy);
-      JNIEnvPtr_ = new GlobalVariable(JNIEnvTy,
-                                      true,
-                                      GlobalVariable::ExternalLinkage,
-                                      NULL,
-                                      "llvm_java_JNIEnv",
-                                      module_);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      const Type* objectBaseType = resolver_->getObjectBaseType();
-
-      getClassRecord_ = module_->getOrInsertFunction(
-        "llvm_java_get_class_record", classRecordPtrType,
-        objectBaseType, NULL);
-      setClassRecord_ = module_->getOrInsertFunction(
-        "llvm_java_set_class_record", Type::VoidTy,
-        objectBaseType, classRecordPtrType, NULL);
-      throw_ = module_->getOrInsertFunction(
-        "llvm_java_throw", Type::IntTy,
-        objectBaseType, NULL);
-      isInstanceOf_ = module_->getOrInsertFunction(
-        "llvm_java_is_instance_of", Type::IntTy,
-        objectBaseType, classRecordPtrType, NULL);
-      memcpy_ = module_->getOrInsertFunction(
-        "llvm.memcpy", Type::VoidTy,
-        PointerType::get(Type::SByteTy),
-        PointerType::get(Type::SByteTy),
-        Type::ULongTy, Type::UIntTy, NULL);
-      memset_ = module_->getOrInsertFunction(
-        "llvm.memset", Type::VoidTy,
-        PointerType::get(Type::SByteTy),
-        Type::UByteTy, Type::ULongTy, Type::UIntTy, NULL);
-    }
-
-  private:
-    void push(Value* value) {
-      opStack_.push(value, currentBB_);
-    }
-
-    Value* pop(const Type* type) {
-      return opStack_.pop(type, currentBB_);
-    }
-
-    /// Schedule a method for compilation. Returns true if this is the
-    /// first time this function was scheduled.
-    bool scheduleMethod(const VMMethod* method) {
-      if (toCompileMethods_.insert(method)) {
-        DEBUG(std::cerr << "Scheduling function: "
-              << method->getFunction()->getName() << " for compilation\n");
-        return true;
-      }
-      return false;
-    }
-
-    template <typename InsertionPointTy>
-    void initializeString(Value* globalString,
-                          const std::string& str,
-                          InsertionPointTy* ip) {
-      // Create a new byte[] object and initialize it with the
-      // contents of this string constant.
-      Value* count = ConstantUInt::get(Type::UIntTy, str.size());
-      Value* arrayRef = allocateArray(resolver_->getClass("[B"), count, ip);
-      // Copy string data.
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      Value* arrayData = new GetElementPtrInst(arrayRef, indices, TMP, ip);
-      llvm::Constant* init = ConstantArray::get(str);
-      GlobalVariable* chars = new GlobalVariable(
-        init->getType(),
-        true,
-        GlobalVariable::InternalLinkage,
-        init,
-        str + ".str",
-        module_);
-
-      std::vector<Value*> params;
-      params.reserve(4);
-      params.clear();
-      params.push_back(arrayData);
-      params.push_back(ConstantExpr::getPtrPtrFromArrayPtr(chars));
-      params.push_back(new CastInst(count, Type::ULongTy, TMP, ip));
-      params.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      new CallInst(memcpy_, params, "", ip);
-
-      // Get class information for java/lang/String.
-      const VMClass* clazz = resolver_->getClass("java/lang/String");
-      emitClassInitializers(clazz);
-
-      // Install the class record.
-      Value* objBase =
-        new CastInst(globalString, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz->getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      // Initialize it: call java/lang/String/<init>(byte[],int)
-      const VMMethod* method = clazz->getMethod("<init>([BI)V");
-
-      params.reserve(3);
-      params.clear();
-      params.push_back(objBase);
-      params.push_back(
-        new CastInst(arrayRef, resolver_->getObjectBaseType(), TMP, ip));
-      params.push_back(ConstantSInt::get(Type::IntTy, 0));
-      new CallInst(method->getFunction(), params, "", ip);
-    }
-
-    /// Returns the type of the Java string descriptor for JNI.
-    const Type* getJNIType(const std::string& descr) {
-      unsigned i = 0;
-      return getJNITypeHelper(descr, i);
-    }
-
-    const Type* getJNITypeHelper(const std::string& descr, unsigned& i) {
-      assert(i < descr.size());
-      switch (descr[i++]) {
-      case 'B': return Type::SByteTy;
-      case 'C': return Type::UShortTy;
-      case 'D': return Type::DoubleTy;
-      case 'F': return Type::FloatTy;
-      case 'I': return Type::IntTy;
-      case 'J': return Type::LongTy;
-      case 'S': return Type::ShortTy;
-      case 'Z': return Type::BoolTy;
-      case 'V': return Type::VoidTy;
-        // Both array and object types are pointers to llvm_object_base
-      case 'L': {
-        unsigned e = descr.find(';', i);
-        i = e + 1;
-        return resolver_->getObjectBaseType();
-      }
-      case '[':
-        // Skip '['s.
-        if (descr[i] == '[')
-          do { ++i; } while (descr[i] == '[');
-        // Consume the element type
-        getJNITypeHelper(descr, i);
-        return resolver_->getObjectBaseType();
-      case '(': {
-        std::vector<const Type*> params;
-        // JNIEnv*
-        params.push_back(JNIEnvPtr_->getType());
-        params.push_back(resolver_->getObjectBaseType());
-        while (descr[i] != ')')
-          params.push_back(getJNITypeHelper(descr, i));
-        return FunctionType::get(getJNITypeHelper(descr, ++i), params, false);
-      }
-        // FIXME: Throw something
-      default:  assert(0 && "Cannot parse type descriptor!");
-      }
-      return 0; // not reached
-    }
-
-    std::string getMangledString(const std::string& str) {
-      std::string mangledStr;
-
-      for (unsigned i = 0, e = str.size(); i != e; ++i) {
-        if (str[i] == '/')
-          mangledStr += '_';
-        else if (str[i] == '_')
-          mangledStr += "_1";
-        else if (str[i] == ';')
-          mangledStr += "_2";
-        else if (str[i] == '[')
-          mangledStr += "_3";
-        else
-          mangledStr += str[i];
-      }
-      return mangledStr;
-    }
-
-    /// Compiles the passed method only (it does not compile any
-    /// callers or methods of objects it creates).
-    void compileMethodOnly(const VMMethod* method) {
-      class_ = method->getParent();
-
-      Function* function = method->getFunction();
-      if (!function->empty()) {
-        DEBUG(std::cerr << "Function: " << function->getName()
-              << " is already compiled!\n");
-        return;
-      }
-
-      if (method->isNative()) {
-        DEBUG(std::cerr << "Adding stub for natively implemented method: "
-              << function->getName() << '\n');
-        const FunctionType* jniFuncTy =
-          cast<FunctionType>(getJNIType(method->getDescriptor()));
-
-        std::string funcName =
-          "Java_" +
-          getMangledString(class_->getName()) + '_' +
-          getMangledString(method->getName());
-        if (class_->getClassFile()->isNativeMethodOverloaded(*method->getMethod())) {
-          // We need to add two underscores and a mangled argument signature
-          funcName += "__";
-          const std::string descr = method->getDescriptor();
-          funcName += getMangledString(
-            std::string(descr.begin() + descr.find('(') + 1,
-                        descr.begin() + descr.find(')')));
-        }
-
-        Function* jniFunction =
-          module_->getOrInsertFunction(funcName, jniFuncTy);
-
-        BasicBlock* bb = new BasicBlock("entry", function);
-        std::vector<Value*> params;
-        params.push_back(JNIEnvPtr_);
-        if (method->isStatic())
-          params.push_back(
-            new CastInst(method->getParent()->getClassRecord(),
-                         resolver_->getObjectBaseType(), TMP, bb));
-        for (Function::arg_iterator A = function->arg_begin(),
-               E = function->arg_end(); A != E; ++A) {
-          params.push_back(
-            new CastInst(A, jniFuncTy->getParamType(params.size()), TMP, bb));
-        }
-        Value* result = new CallInst(jniFunction, params, "", bb);
-        if (result->getType() != Type::VoidTy)
-          result = new CastInst(result, function->getReturnType(), TMP,bb);
-        new ReturnInst(result, bb);
-
-        return;
-      }
-
-      assert (!method->isAbstract() && "Trying to compile an abstract method!");
-
-      // HACK: skip most of the class libraries.
-      const std::string& funcName = function->getName();
-      if ((funcName.find("java/") == 0 &&
-           funcName.find("java/lang/Object") != 0 &&
-           (funcName.find("java/lang/Throwable") != 0 ||
-            funcName.find("java/lang/Throwable$StaticData/<cl") == 0) &&
-           funcName.find("java/lang/Exception") != 0 &&
-           funcName.find("java/lang/IllegalArgumentException") != 0 &&
-           funcName.find("java/lang/IllegalStateException") != 0 &&
-           funcName.find("java/lang/IndexOutOfBoundsException") != 0 &&
-           funcName.find("java/lang/RuntimeException") != 0 &&
-           (funcName.find("java/lang/Math") != 0 ||
-            funcName.find("java/lang/Math/<cl") == 0) &&
-           funcName.find("java/lang/Number") != 0 &&
-           funcName.find("java/lang/Byte") != 0 &&
-           funcName.find("java/lang/Float") != 0 &&
-           funcName.find("java/lang/Integer") != 0 &&
-           funcName.find("java/lang/Long") != 0 &&
-           funcName.find("java/lang/Short") != 0 &&
-           (funcName.find("java/lang/String") != 0 ||
-            funcName.find("java/lang/String/<cl") == 0) &&
-           funcName.find("java/lang/StringBuffer") != 0 &&
-           (funcName.find("java/lang/System") != 0 ||
-            funcName.find("java/lang/System/loadLibrary") == 0) &&
-           funcName.find("java/lang/VMSystem") != 0 &&
-           (funcName.find("java/util/") != 0 ||
-            funcName.find("java/util/Locale/<cl") == 0 ||
-            funcName.find("java/util/ResourceBundle/<cl") == 0 ||
-            funcName.find("java/util/Calendar/<cl") == 0) ||
-            funcName.find("java/util/PropertyPermission/<cl") == 0) ||
-          (funcName.find("gnu/") == 0)) {
-        DEBUG(std::cerr << "Skipping compilation of method: "
-              << funcName << '\n');
-        return;
-      }
-
-      DEBUG(std::cerr << "Compiling method: " << funcName << '\n');
-
-      Java::CodeAttribute* codeAttr = method->getMethod()->getCodeAttribute();
-
-      opStackDepthMap_.clear();
-      bbBuilder_.reset(new BasicBlockBuilder(function, codeAttr));
-
-      // Put arguments into locals.
-      locals_ = Locals(resolver_.get(), codeAttr->getMaxLocals());
-
-      unsigned index = 0;
-      for (Function::arg_iterator a = function->arg_begin(),
-             ae = function->arg_end(); a != ae; ++a) {
-        locals_.store(index, a, &function->getEntryBlock());
-        index += resolver_->isTwoSlotType(a->getType()) ? 2 : 1;
-      }
-
-      BasicBlock* bb0 = bbBuilder_->getBasicBlock(0);
-
-      // For bb0 the operand stack is empty and the locals contain the
-      // arguments to the function.
-      //
-      // NOTE: We create an operand stack one size too big because we
-      // push extra values on the stack to simplify code generation
-      // (see implementation of ifne).
-      opStack_ = OperandStack(resolver_.get(), codeAttr->getMaxStack()+2);
-      opStackDepthMap_.insert(std::make_pair(bb0, 0));
-
-      // Insert bb0 in the work list.
-      bbWorkList_.push_back(bb0);
-
-      // Process the work list until we compile the whole function.
-      while (!bbWorkList_.empty()) {
-        currentBB_ = bbWorkList_.front();
-        bbWorkList_.pop_front();
-
-        OpStackDepthMap::iterator opStackDepth =
-          opStackDepthMap_.find(currentBB_);
-        assert(opStackDepth != opStackDepthMap_.end() &&
-               "Unknown operand stack depth for basic block in work list!");
-
-        opStack_.setDepth(opStackDepth->second);
-
-        unsigned start, end;
-        tie(start, end) = bbBuilder_->getBytecodeIndices(currentBB_);
-
-        // Compile this basic block.
-        parse(codeAttr->getCode(), start, end);
-
-        // If this basic block does not have a terminator, it should
-        // have an unconditional branch to the next basic block
-        // (fallthrough).
-        if (!currentBB_->getTerminator())
-          new BranchInst(bbBuilder_->getBasicBlock(end), currentBB_);
-
-        // For each successor of this basic block we can compute its
-        // entry operand stack depth. We do so, and add it to the work
-        // list. If a successor already has an entry operand stack and
-        // locals we assume the computation was correct and do not add
-        // it to the work list.
-        for (succ_iterator
-               SI = succ_begin(currentBB_), SE = succ_end(currentBB_);
-             SI != SE; ++SI) {
-          BasicBlock* Succ = *SI;
-          OpStackDepthMap::iterator succOpStackDepth =
-            opStackDepthMap_.lower_bound(Succ);
-          if (succOpStackDepth == opStackDepthMap_.end() ||
-              succOpStackDepth->first != Succ) {
-            opStackDepthMap_.insert(succOpStackDepth,
-                                    std::make_pair(Succ, opStack_.getDepth()));
-            bbWorkList_.push_back(Succ);
-          }
-        }
-      }
-
-      // Add an unconditional branch from the entry block to bb0.
-      new BranchInst(bb0, &function->getEntryBlock());
-
-      // FIXME: remove empty basic blocks (we have empty basic blocks
-      // because of our lack of exception support).
-      for (Function::iterator bb = function->begin(), be = function->end();
-           bb != be; )
-        if (bb->empty())
-          bb = function->getBasicBlockList().erase(bb);
-        else
-          ++bb;
-
-      DEBUG(std::cerr << "Finished compilation of method: "<< funcName << '\n');
-      // DEBUG(function->dump());
-    }
-
-    /// Emits static initializers for this class if not done already.
-    void emitClassInitializers(const VMClass* clazz) {
-      static SetVector<const VMClass*> toInitClasses;
-
-      // If this is a primitive class we are done.
-      if (clazz->isPrimitive())
-        return;
-
-      // If this class is already initialized, we are done.
-      if (!toInitClasses.insert(clazz))
-        return;
-
-      // If this class has a super class, initialize that first.
-      if (const VMClass* superClass = clazz->getSuperClass())
-        emitClassInitializers(superClass);
-
-      // If this class is an array, initialize its component class now.
-      if (const VMClass* componentClass = clazz->getComponentClass())
-        emitClassInitializers(componentClass);
-
-      // Schedule all its dynamically bound non abstract methods for
-      // compilation.
-      for (unsigned i = 0, e = clazz->getNumDynamicMethods(); i != e; ++i) {
-        const VMMethod* method = clazz->getDynamicMethod(i);
-        if (!method->isAbstract())
-          scheduleMethod(method);
-      }
-
-      // Schedule all its statically bound non abstract methods for
-      // compilation.
-      for (unsigned i = 0, e = clazz->getNumStaticMethods(); i != e; ++i) {
-        const VMMethod* method = clazz->getStaticMethod(i);
-        if (!method->isAbstract())
-          scheduleMethod(method);
-      }
-      
-      // If this class has a constant pool (was loaded from a
-      // classfile), create constant strings for it.
-      if (const ClassFile* classfile = clazz->getClassFile()) {
-        Function* stringConstructors = module_->getOrInsertFunction(
-          clazz->getName() + "<strinit>",
-          FunctionType::get(Type::VoidTy, std::vector<const Type*>(), false));
-        Instruction* I =
-          new ReturnInst(NULL, new BasicBlock("entry", stringConstructors));
-        for (unsigned i = 0, e = classfile->getNumConstants(); i != e; ++i)
-          if (ConstantString* s = dynamic_cast<ConstantString*>(classfile->getConstant(i)))
-            initializeString(clazz->getConstant(i), s->getValue()->str(), I);
-
-        // Insert string constructors method in class initializers array.
-        classInitializers_.push_back(stringConstructors);
-
-        // Call its class initialization method if it exists.
-        if (const VMMethod* method = clazz->getMethod("<clinit>()V"))
-          classInitializers_.push_back(method->getFunction());
-      }
-    }
-
-  public:
-    /// Compiles the specified method given a <class,method>
-    /// descriptor and the transitive closure of all methods
-    /// (possibly) called by it.
-    const VMMethod* compileMethod(const std::string& className,
-                                  const std::string& methodDesc) {
-      // Load the class.
-      const VMClass* clazz = resolver_->getClass(className);
-      emitClassInitializers(clazz);
-
-      // Find the method.
-      const VMMethod* method = clazz->getMethod(methodDesc);
-      // Compile the transitive closure of methods called by this method.
-      for (unsigned i = 0; i != toCompileMethods_.size(); ++i) {
-        const VMMethod* m = toCompileMethods_[i];
-        compileMethodOnly(m);
-        DEBUG(std::cerr << i+1 << '/' << toCompileMethods_.size()
-              << " functions compiled\n");
-      }
-
-      // Null terminate the static initializers array and add the
-      // global to the module.
-      Type* classInitializerType = PointerType::get(
-          FunctionType::get(Type::VoidTy, std::vector<const Type*>(), false));
-      classInitializers_.push_back(
-        llvm::Constant::getNullValue(classInitializerType));
-
-      ArrayType* classInitializersType =
-        ArrayType::get(classInitializerType, classInitializers_.size());
-      new GlobalVariable(classInitializersType,
-                         true,
-                         GlobalVariable::ExternalLinkage,
-                         ConstantArray::get(classInitializersType,
-                                            classInitializers_),
-                         "llvm_java_class_initializers",
-                         module_);
-
-      // Emit the array of all class records.
-      resolver_->emitClassRecordsArray();
-
-      return method;
-    }
-
-    void do_aconst_null() {
-      push(llvm::Constant::getNullValue(resolver_->getObjectBaseType()));
-    }
-
-    void do_iconst(int value) {
-      push(ConstantSInt::get(Type::IntTy, value));
-    }
-
-    void do_lconst(long long value) {
-      push(ConstantSInt::get(Type::LongTy, value));
-    }
-
-    void do_fconst(float value) {
-      push(ConstantFP::get(Type::FloatTy, value));
-    }
-
-    void do_dconst(double value) {
-      push(ConstantFP::get(Type::DoubleTy, value));
-    }
-
-    void do_ldc(unsigned index) {
-      llvm::Constant* c = class_->getConstant(index);
-      assert(c && "Java constant not handled!");
-      push(c);
-    }
-
-    void do_ldc2(unsigned index) {
-      do_ldc(index);
-    }
-
-    void do_iload(unsigned index) { do_load_common(index, Type::IntTy); }
-    void do_lload(unsigned index) { do_load_common(index, Type::LongTy); }
-    void do_fload(unsigned index) { do_load_common(index, Type::FloatTy); }
-    void do_dload(unsigned index) { do_load_common(index, Type::DoubleTy); }
-    void do_aload(unsigned index) { do_load_common(index, resolver_->getObjectBaseType()); }
-
-    void do_load_common(unsigned index, const Type* type) {
-      Value* val = locals_.load(index, type, currentBB_);
-      push(val);
-    }
-
-    void do_iaload() { do_aload_common("[I"); }
-    void do_laload() { do_aload_common("[J"); }
-    void do_faload() { do_aload_common("[F"); }
-    void do_daload() { do_aload_common("[D"); }
-    void do_aaload() { do_aload_common("[Ljava/lang/Object;"); }
-    void do_baload() { do_aload_common("[B"); }
-    void do_caload() { do_aload_common("[C"); }
-    void do_saload() { do_aload_common("[S"); }
-
-    void do_aload_common(const std::string& className) {
-      const VMClass* arrayClass = resolver_->getClass(className);
-      assert(arrayClass->isArray() && "Not an array class!");
-      Value* index = pop(Type::IntTy);
-      Value* arrayRef = pop(arrayClass->getType());
-
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(index);
-      Value* elementPtr =
-        new GetElementPtrInst(arrayRef, indices, TMP, currentBB_);
-      Value* result = new LoadInst(elementPtr, TMP, currentBB_);
-      push(result);
-    }
-
-    void do_istore(unsigned index) { do_store_common(index, Type::IntTy); }
-    void do_lstore(unsigned index) { do_store_common(index, Type::LongTy); }
-    void do_fstore(unsigned index) { do_store_common(index, Type::FloatTy); }
-    void do_dstore(unsigned index) { do_store_common(index, Type::DoubleTy); }
-    void do_astore(unsigned index) { do_store_common(index, resolver_->getObjectBaseType()); }
-
-    void do_store_common(unsigned index, const Type* type) {
-      Value* val = pop(type);
-      locals_.store(index, val, currentBB_);
-    }
-
-    void do_iastore() { do_astore_common("[I"); }
-    void do_lastore() { do_astore_common("[J"); }
-    void do_fastore() { do_astore_common("[F"); }
-    void do_dastore() { do_astore_common("[D"); }
-    void do_aastore() { do_astore_common("[Ljava/lang/Object;"); }
-    void do_bastore() { do_astore_common("[B"); }
-    void do_castore() { do_astore_common("[C"); }
-    void do_sastore() { do_astore_common("[S"); }
-
-    void do_astore_common(const std::string& className) {
-      const VMClass* arrayClass = resolver_->getClass(className);
-      assert(arrayClass->isArray() && "Not an array class!");
-      const VMClass* componentClass = arrayClass->getComponentClass();
-      Value* value = pop(componentClass->getType());
-      Value* index = pop(Type::IntTy);
-      Value* arrayRef = pop(arrayClass->getType());
-
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(index);
-      Value* elementPtr =
-        new GetElementPtrInst(arrayRef, indices, TMP, currentBB_);
-
-      new StoreInst(value, elementPtr, currentBB_);
-    }
-
-    void do_pop() {
-      opStack_.do_pop(currentBB_);
-    }
-
-    void do_pop2() {
-      opStack_.do_pop2(currentBB_);
-    }
-
-    void do_dup() {
-      opStack_.do_dup(currentBB_);
-    }
-
-    void do_dup_x1() {
-      opStack_.do_dup_x1(currentBB_);
-    }
-
-    void do_dup_x2() {
-      opStack_.do_dup_x2(currentBB_);
-    }
-
-    void do_dup2() {
-      opStack_.do_dup2(currentBB_);
-    }
-
-    void do_dup2_x1() {
-      opStack_.do_dup2_x1(currentBB_);
-    }
-
-    void do_dup2_x2() {
-      opStack_.do_dup2_x2(currentBB_);
-    }
-
-    void do_swap() {
-      opStack_.do_swap(currentBB_);
-    }
-
-    void do_iadd() { do_binary_op_common(Instruction::Add, Type::IntTy); }
-    void do_ladd() { do_binary_op_common(Instruction::Add, Type::LongTy); }
-    void do_fadd() { do_binary_op_common(Instruction::Add, Type::FloatTy); }
-    void do_dadd() { do_binary_op_common(Instruction::Add, Type::DoubleTy); }
-
-    void do_isub() { do_binary_op_common(Instruction::Sub, Type::IntTy); }
-    void do_lsub() { do_binary_op_common(Instruction::Sub, Type::LongTy); }
-    void do_fsub() { do_binary_op_common(Instruction::Sub, Type::FloatTy); }
-    void do_dsub() { do_binary_op_common(Instruction::Sub, Type::DoubleTy); }
-
-    void do_imul() { do_binary_op_common(Instruction::Mul, Type::IntTy); }
-    void do_lmul() { do_binary_op_common(Instruction::Mul, Type::LongTy); }
-    void do_fmul() { do_binary_op_common(Instruction::Mul, Type::FloatTy); }
-    void do_dmul() { do_binary_op_common(Instruction::Mul, Type::DoubleTy); }
-
-    void do_idiv() { do_binary_op_common(Instruction::Div, Type::IntTy); }
-    void do_ldiv() { do_binary_op_common(Instruction::Div, Type::LongTy); }
-    void do_fdiv() { do_binary_op_common(Instruction::Div, Type::FloatTy); }
-    void do_ddiv() { do_binary_op_common(Instruction::Div, Type::DoubleTy); }
-
-    void do_irem() { do_binary_op_common(Instruction::Rem, Type::IntTy); }
-    void do_lrem() { do_binary_op_common(Instruction::Rem, Type::LongTy); }
-    void do_frem() { do_binary_op_common(Instruction::Rem, Type::FloatTy); }
-    void do_drem() { do_binary_op_common(Instruction::Rem, Type::DoubleTy); }
-
-    void do_ineg() { do_neg_common(Type::IntTy); }
-    void do_lneg() { do_neg_common(Type::LongTy); }
-    void do_fneg() { do_neg_common(Type::FloatTy); }
-    void do_dneg() { do_neg_common(Type::DoubleTy); }
-
-    void do_neg_common(const Type* type) {
-      Value* v1 = pop(type);
-      Value* r = BinaryOperator::createNeg(v1, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_ishl() { do_shift_common(Instruction::Shl, Type::IntTy); }
-    void do_lshl() { do_shift_common(Instruction::Shl, Type::LongTy); }
-    void do_ishr() { do_shift_common(Instruction::Shr, Type::IntTy); }
-    void do_lshr() { do_shift_common(Instruction::Shr, Type::LongTy); }
-
-    void do_iushr() { do_shift_common(Instruction::Shr, Type::UIntTy); }
-    void do_lushr() { do_shift_common(Instruction::Shr, Type::ULongTy); }
-
-    void do_shift_common(Instruction::OtherOps op, const Type* type) {
-      llvm::Constant* mask =
-        type == Type::IntTy ? INT_SHIFT_MASK : LONG_SHIFT_MASK;
-      Value* a = pop(Type::UByteTy);
-      a = BinaryOperator::create(Instruction::And, a, mask, TMP, currentBB_);
-      Value* v = pop(type);
-      Value* r = new ShiftInst(op, v, a, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_iand() { do_binary_op_common(Instruction::And, Type::IntTy); }
-    void do_land() { do_binary_op_common(Instruction::And, Type::LongTy); }
-    void do_ior() { do_binary_op_common(Instruction::Or, Type::IntTy); }
-    void do_lor() { do_binary_op_common(Instruction::Or, Type::LongTy); }
-    void do_ixor() { do_binary_op_common(Instruction::Xor, Type::IntTy); }
-    void do_lxor() { do_binary_op_common(Instruction::Xor, Type::LongTy); }
-
-    void do_binary_op_common(Instruction::BinaryOps op, const Type* type) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* r = BinaryOperator::create(op, v1, v2, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_iinc(unsigned index, int amount) {
-      Value* v = locals_.load(index, Type::IntTy, currentBB_);
-      Value* a = ConstantSInt::get(Type::IntTy, amount);
-      v = BinaryOperator::createAdd(v, a, TMP, currentBB_);
-      locals_.store(index, v, currentBB_);
-    }
-
-    void do_i2l() { do_cast_common(Type::IntTy, Type::LongTy); }
-    void do_i2f() { do_cast_common(Type::IntTy, Type::FloatTy); }
-    void do_i2d() { do_cast_common(Type::IntTy, Type::DoubleTy); }
-    void do_l2i() { do_cast_common(Type::LongTy, Type::IntTy); }
-    void do_l2f() { do_cast_common(Type::LongTy, Type::FloatTy); }
-    void do_l2d() { do_cast_common(Type::LongTy, Type::DoubleTy); }
-    void do_f2i() { do_cast_common(Type::FloatTy, Type::IntTy); }
-    void do_f2l() { do_cast_common(Type::FloatTy, Type::LongTy); }
-    void do_f2d() { do_cast_common(Type::FloatTy, Type::DoubleTy); }
-    void do_d2i() { do_cast_common(Type::DoubleTy, Type::IntTy); }
-    void do_d2l() { do_cast_common(Type::DoubleTy, Type::LongTy); }
-    void do_d2f() { do_cast_common(Type::DoubleTy, Type::FloatTy); }
-    void do_i2b() { do_cast_common(Type::IntTy, Type::SByteTy); }
-    void do_i2c() { do_cast_common(Type::IntTy, Type::UShortTy); }
-    void do_i2s() { do_cast_common(Type::IntTy, Type::ShortTy); }
-
-    void do_cast_common(const Type* from, const Type* to) {
-      Value* v1 = pop(from);
-      push(new CastInst(v1, to, TMP, currentBB_));
-    }
-
-    void do_lcmp() {
-      Value* v2 = pop(Type::LongTy);
-      Value* v1 = pop(Type::LongTy);
-      Value* c = BinaryOperator::createSetGT(v1, v2, TMP, currentBB_);
-      Value* r = new SelectInst(c, ONE, ZERO, TMP, currentBB_);
-      c = BinaryOperator::createSetLT(v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, MINUS_ONE, r, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_fcmpl() { do_cmp_common(Type::FloatTy, false); }
-    void do_dcmpl() { do_cmp_common(Type::DoubleTy, false); }
-    void do_fcmpg() { do_cmp_common(Type::FloatTy, true); }
-    void do_dcmpg() { do_cmp_common(Type::DoubleTy, true); }
-
-    void do_cmp_common(const Type* type, bool pushOne) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* c = BinaryOperator::createSetGT(v1, v2, TMP, currentBB_);
-      Value* r = new SelectInst(c, ONE, ZERO, TMP, currentBB_);
-      c = BinaryOperator::createSetLT(v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, MINUS_ONE, r, TMP, currentBB_);
-      c = new CallInst(module_->getOrInsertFunction
-                       ("llvm.isunordered",
-                        Type::BoolTy, v1->getType(), v2->getType(), NULL),
-                       v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, pushOne ? ONE : MINUS_ONE, r, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_ifeq(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetEQ, Type::IntTy, t, f);
-    }
-    void do_ifne(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetNE, Type::IntTy, t, f);
-    }
-    void do_iflt(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetLT, Type::IntTy, t, f);
-    }
-    void do_ifge(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetGE, Type::IntTy, t, f);
-    }
-    void do_ifgt(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetGT, Type::IntTy, t, f);
-    }
-    void do_ifle(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetLE, Type::IntTy, t, f);
-    }
-    void do_if_icmpeq(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetEQ, Type::IntTy, t, f);
-    }
-    void do_if_icmpne(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetNE, Type::IntTy, t, f);
-    }
-    void do_if_icmplt(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetLT, Type::IntTy, t, f);
-    }
-    void do_if_icmpge(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetGE, Type::IntTy, t, f);
-    }
-    void do_if_icmpgt(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetGT, Type::IntTy, t, f);
-    }
-    void do_if_icmple(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetLE, Type::IntTy, t, f);
-    }
-    void do_if_acmpeq(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetEQ, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_if_acmpne(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetNE, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_ifnull(unsigned t, unsigned f) {
-      do_aconst_null();
-      do_if_common(Instruction::SetEQ, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_ifnonnull(unsigned t, unsigned f) {
-      do_aconst_null();
-      do_if_common(Instruction::SetNE, resolver_->getObjectBaseType(), t, f);
-    }
-
-    void do_if_common(Instruction::BinaryOps cc, const Type* type,
-                      unsigned t, unsigned f) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* c = new SetCondInst(cc, v1, v2, TMP, currentBB_);
-      new BranchInst(bbBuilder_->getBasicBlock(t),
-                     bbBuilder_->getBasicBlock(f),
-                     c, currentBB_);
-    }
-
-    void do_goto(unsigned target) {
-      new BranchInst(bbBuilder_->getBasicBlock(target), currentBB_);
-    }
-
-    void do_ireturn() { do_return_common(Type::IntTy); }
-    void do_lreturn() { do_return_common(Type::LongTy); }
-    void do_freturn() { do_return_common(Type::FloatTy); }
-    void do_dreturn() { do_return_common(Type::DoubleTy); }
-    void do_areturn() { do_return_common(resolver_->getObjectBaseType()); }
-
-    void do_return_common(const Type* type) {
-      Value* r = pop(type);
-      const Type* retTy = currentBB_->getParent()->getReturnType();
-      if (retTy != r->getType())
-        r = new CastInst(r, retTy, TMP, currentBB_);
-      new ReturnInst(r, currentBB_);
-    }
-
-    void do_return() {
-      new ReturnInst(NULL, currentBB_);
-    }
-
-    void do_jsr(unsigned target, unsigned retAddress) {
-      // FIXME: this is currently a noop.
-      push(llvm::Constant::getNullValue(Type::IntTy));
-    }
-
-    void do_ret(unsigned index) {
-      // FIXME: this is currently a noop.
-    }
-
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_switch_common(unsigned defTarget, const SwitchCases& sw) {
-      Value* v = pop(Type::IntTy);
-      SwitchInst* in =
-        new SwitchInst(v, bbBuilder_->getBasicBlock(defTarget), sw.size(),
-                       currentBB_);
-      for (unsigned i = 0, e = sw.size(); i != e; ++i)
-        in->addCase(ConstantSInt::get(Type::IntTy, sw[i].first),
-                    bbBuilder_->getBasicBlock(sw[i].second));
-    }
-
-    void do_getstatic(unsigned index) {
-      const VMField* field = class_->getField(index);
-      emitClassInitializers(field->getParent());
-
-      Value* v = new LoadInst(field->getGlobal(), TMP, currentBB_);
-      push(v);
-    }
-
-    void do_putstatic(unsigned index) {
-      const VMField* field = class_->getField(index);
-      emitClassInitializers(field->getParent());
-
-      Value* v = pop(field->getClass()->getType());
-      new StoreInst(v, field->getGlobal(), currentBB_);
-    }
-
-    void do_getfield(unsigned index) {
-      const VMField* field = class_->getField(index);
-
-      Value* p = pop(field->getParent()->getType());
-      std::vector<Value*> indices(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, field->getMemberIndex());
-      Value* fieldPtr =
-        new GetElementPtrInst(p, indices, field->getName()+'*', currentBB_);
-      Value* v = new LoadInst(fieldPtr, field->getName(), currentBB_);
-      push(v);
-    }
-
-    void do_putfield(unsigned index) {
-      const VMField* field = class_->getField(index);
-
-      Value* v = pop(field->getClass()->getType());
-      Value* p = pop(field->getParent()->getType());
-      std::vector<Value*> indices(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, field->getMemberIndex());
-      Value* fieldPtr =
-        new GetElementPtrInst(p, indices, field->getName()+'*', currentBB_);
-      new StoreInst(v, fieldPtr, currentBB_);
-    }
-
-    void makeCall(Value* fun, const std::vector<Value*> params) {
-      const PointerType* funPtrTy = cast<PointerType>(fun->getType());
-      const FunctionType* funTy =
-        cast<FunctionType>(funPtrTy->getElementType());
-
-      if (funTy->getReturnType() == Type::VoidTy)
-        new CallInst(fun, params, "", currentBB_);
-      else {
-        Value* r = new CallInst(fun, params, TMP, currentBB_);
-        push(r);
-      }
-    }
-
-    std::vector<Value*> getParams(const FunctionType* funTy) {
-      unsigned numParams = funTy->getNumParams();
-      std::vector<Value*> params(numParams);
-      while (numParams--)
-        params[numParams] = pop(funTy->getParamType(numParams));
-
-      return params;
-    }
-
-    void do_invokevirtual(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      const VMClass* clazz = method->getParent();
-
-      Function* function = method->getFunction();
-      std::vector<Value*> params(getParams(function->getFunctionType()));
-
-      Value* objRef = params.front();
-      objRef = new CastInst(objRef, clazz->getType(), "this", currentBB_);
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, currentBB_);
-      Value* classRecord =
-        new CallInst(getClassRecord_, objBase, TMP, currentBB_);
-      classRecord = new CastInst(classRecord,
-                                 clazz->getClassRecord()->getType(),
-                                 clazz->getName() + ".classRecord", currentBB_);
-      std::vector<Value*> indices(1, ConstantUInt::get(Type::UIntTy, 0));
-      assert(method->getMethodIndex() != -1 &&
-             "Method index not found for dynamically bound method!");
-      indices.push_back(
-        ConstantUInt::get(Type::UIntTy, method->getMethodIndex()+1));
-      Value* funPtr =
-        new GetElementPtrInst(classRecord, indices, TMP, currentBB_);
-      Value* fun = new LoadInst(funPtr, function->getName(), currentBB_);
-
-      makeCall(fun, params);
-    }
-
-    void do_invokespecial(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      Function* function = method->getFunction();
-      makeCall(function, getParams(function->getFunctionType()));
-    }
-
-    void do_invokestatic(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      emitClassInitializers(method->getParent());
-      Function* function = method->getFunction();
-      makeCall(function, getParams(function->getFunctionType()));
-    }
-
-    void do_invokeinterface(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      const VMClass* clazz = method->getParent();
-      assert(clazz->isInterface() && "Class must be an interface!");
-
-      Function* function = method->getFunction();
-      std::vector<Value*> params(getParams(function->getFunctionType()));
-
-      Value* objRef = params.front();
-      objRef = new CastInst(objRef, clazz->getType(), "this", currentBB_);
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, currentBB_);
-      Value* classRecord =
-        new CallInst(getClassRecord_, objBase, TMP, currentBB_);
-      classRecord = new CastInst(classRecord,
-                                 resolver_->getClassRecordPtrType(),
-                                 TMP, currentBB_);
-      // get the interfaces array of class records
-      std::vector<Value*> indices(2, ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 4));
-      Value* interfaceClassRecords =
-        new GetElementPtrInst(classRecord, indices, TMP, currentBB_);
-      interfaceClassRecords =
-        new LoadInst(interfaceClassRecords, TMP, currentBB_);
-      // Get the actual interface class record.
-      indices.clear();
-      indices.push_back(
-        ConstantUInt::get(Type::UIntTy, clazz->getInterfaceIndex()));
-      Value* interfaceClassRecord =
-        new GetElementPtrInst(interfaceClassRecords, indices, TMP, currentBB_);
-      interfaceClassRecord =
-        new LoadInst(interfaceClassRecord,
-                     clazz->getName() + ".classRecord", currentBB_);
-      interfaceClassRecord =
-        new CastInst(interfaceClassRecord,
-                     clazz->getClassRecord()->getType(), TMP, currentBB_);
-      // Get the function pointer.
-      assert(method->getMethodIndex() != -1 &&
-             "Method index not found for dynamically bound method!");
-      indices.resize(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, method->getMethodIndex()+1);
-      Value* funPtr =
-        new GetElementPtrInst(interfaceClassRecord, indices, TMP, currentBB_);
-      Value* fun = new LoadInst(funPtr, function->getName(), currentBB_);
-
-      makeCall(fun, params);
-    }
-
-    template<typename InsertionPointTy>
-    Value* allocateObject(const VMClass& clazz, InsertionPointTy* ip) {
-      static std::vector<Value*> params(4);
-
-      Value* objRef = new MallocInst(clazz.getLayoutType(), NULL, TMP, ip);
-      params[0] =
-        new CastInst(objRef, PointerType::get(Type::SByteTy), TMP, ip); // dest
-      params[1] = ConstantUInt::get(Type::UByteTy, 0); // value
-      params[2] = ConstantExpr::getSizeOf(clazz.getLayoutType()); // size
-      params[3] = ConstantUInt::get(Type::UIntTy, 0); // alignment
-      new CallInst(memset_, params, "", ip);
-
-      // Install the class record.
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz.getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      return objRef;
-    }
-
-    void do_new(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-      emitClassInitializers(clazz);
-      push(allocateObject(*clazz, currentBB_));
-    }
-
-    template <typename InsertionPointTy>
-    Value* getArrayLengthPtr(Value* arrayRef, InsertionPointTy* ip) const {
-      std::vector<Value*> indices;
-      indices.reserve(2);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 1));
-
-      return new GetElementPtrInst(arrayRef, indices, TMP, ip);
-    }
-
-    template <typename InsertionPointTy>
-    Value* getArrayObjectBasePtr(Value* arrayRef, InsertionPointTy* ip) const {
-      std::vector<Value*> indices;
-      indices.reserve(2);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-
-      return new GetElementPtrInst(arrayRef, indices, TMP, ip);
-    }
-
-    template<typename InsertionPointTy>
-    Value* allocateArray(const VMClass* clazz,
-                         Value* count,
-                         InsertionPointTy* ip) {
-      static std::vector<Value*> params(4);
-
-      assert(clazz->isArray() && "Not an array class!");
-      const VMClass* componentClass = clazz->getComponentClass();
-      const Type* elementTy = componentClass->getType();
-
-      // The size of the element.
-      llvm::Constant* elementSize =
-        ConstantExpr::getCast(ConstantExpr::getSizeOf(elementTy), Type::UIntTy);
-
-      // The size of the array part of the struct.
-      Value* size = BinaryOperator::create(
-        Instruction::Mul, count, elementSize, TMP, ip);
-      // The size of the rest of the array object.
-      llvm::Constant* arrayObjectSize =
-        ConstantExpr::getCast(ConstantExpr::getSizeOf(clazz->getLayoutType()),
-                              Type::UIntTy);
-
-      // Add the array part plus the object part together.
-      size = BinaryOperator::create(
-        Instruction::Add, size, arrayObjectSize, TMP, ip);
-      // Allocate memory for the object.
-      Value* objRef = new MallocInst(Type::SByteTy, size, TMP, ip);
-      params[0] = objRef; // dest
-      params[1] = ConstantUInt::get(Type::UByteTy, 0); // value
-      params[2] = new CastInst(size, Type::ULongTy, TMP, ip); // size
-      params[3] = ConstantUInt::get(Type::UIntTy, 0); // alignment
-      new CallInst(memset_, params, "", ip);
-
-      // Cast back to array type.
-      objRef = new CastInst(objRef, clazz->getType(), TMP, ip);
-
-      // Store the size.
-      Value* lengthPtr = getArrayLengthPtr(objRef, ip);
-      new StoreInst(count, lengthPtr, ip);
-
-      // Install the class record.
-      Value* objBase = new CastInst(objRef, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz->getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      return objRef;
-    }
-
-    void do_newarray(JType type) {
-      Value* count = pop(Type::UIntTy);
-
-      const VMClass* clazz = resolver_->getClass(type);
-      const VMClass* arrayClass = resolver_->getArrayClass(clazz);
-      emitClassInitializers(arrayClass);
-
-      push(allocateArray(arrayClass, count, currentBB_));
-    }
-
-    void do_anewarray(unsigned index) {
-      Value* count = pop(Type::UIntTy);
-
-      const VMClass* clazz = class_->getClass(index);
-      const VMClass* arrayClass = resolver_->getArrayClass(clazz);
-      emitClassInitializers(arrayClass);
-
-      push(allocateArray(arrayClass, count, currentBB_));
-    }
-
-    void do_arraylength() {
-      const VMClass* clazz = resolver_->getClass("[Ljava/lang/Object;");
-      Value* arrayRef = pop(clazz->getType());
-      Value* lengthPtr = getArrayLengthPtr(arrayRef, currentBB_);
-      Value* length = new LoadInst(lengthPtr, TMP, currentBB_);
-      push(length);
-    }
-
-    void do_athrow() {
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      new CallInst(throw_, objRef, "", currentBB_);
-      new UnreachableInst(currentBB_);
-    }
-
-    void do_checkcast(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord = new CastInst(clazz->getClassRecord(),
-                                        classRecordPtrType, TMP, currentBB_);
-      Value* r =
-        new CallInst(isInstanceOf_, objRef, classRecord, TMP, currentBB_);
-
-      Value* b = new SetCondInst(Instruction::SetEQ,
-                                 r, ConstantSInt::get(Type::IntTy, 1),
-                                 TMP, currentBB_);
-      // FIXME: if b is false we must throw a ClassCast exception
-      push(objRef);
-    }
-
-    void do_instanceof(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord = new CastInst(clazz->getClassRecord(),
-                                        classRecordPtrType, TMP, currentBB_);
-      Value* r =
-        new CallInst(isInstanceOf_, objRef, classRecord, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_monitorenter() {
-      // FIXME: This is currently a noop.
-      pop(resolver_->getObjectBaseType());
-    }
-
-    void do_monitorexit() {
-      // FIXME: This is currently a noop.
-      pop(resolver_->getObjectBaseType());
-    }
-
-    void do_multianewarray(unsigned index, unsigned dims) {
-      assert(0 && "not implemented");
-    }
-  };
-
-} } } // namespace llvm::Java::
-
-std::auto_ptr<Module> llvm::Java::compile(const std::string& className)
-{
-  DEBUG(std::cerr << "Compiling class: " << className << '\n');
-
-  std::auto_ptr<Module> m(new Module(className));
-  // Require the Java runtime.
-  m->addLibrary("jrt");
-
-  Compiler c(m.get());
-  const VMMethod* main =
-    c.compileMethod(className, "main([Ljava/lang/String;)V");
-
-  Function* javaMain = m->getOrInsertFunction
-    ("llvm_java_main", Type::VoidTy,
-     Type::IntTy, PointerType::get(PointerType::get(Type::SByteTy)), NULL);
-
-  BasicBlock* bb = new BasicBlock("entry", javaMain);
-  const FunctionType* mainTy = main->getFunction()->getFunctionType();
-  new CallInst(main->getFunction(),
-               // FIXME: Forward correct params from llvm_java_main
-               llvm::Constant::getNullValue(mainTy->getParamType(0)),
-               "",
-               bb);
-  new ReturnInst(NULL, bb);
-
-  return m;
-}
diff --git a/java/lib/Compiler/Locals.cpp b/java/lib/Compiler/Locals.cpp
deleted file mode 100644
index 47307c0..0000000
--- a/java/lib/Compiler/Locals.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===-- Locals.h - Java locals ----------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of Java locals. We model the
-// locals as an array of lazily created allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Locals.h"
-#include <llvm/BasicBlock.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Java/Compiler.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-Locals::Locals(const Resolver* resolver, unsigned maxLocals)
-  : resolver_(resolver),
-    locals_(maxLocals)
-{
-
-}
-
-void Locals::store(unsigned i, Value* value, BasicBlock* insertAtEnd)
-{
-  const Type* valueTy = value->getType();
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-  if (valueTy != storageTy)
-    value = new CastInst(value, storageTy, "to-storage-type", insertAtEnd);
-
-  SlotMap& slotMap = locals_[i];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  if (it == slotMap.end()) {
-    // Insert the alloca at the end of the entry block.
-    BasicBlock* entry = &insertAtEnd->getParent()->getEntryBlock();
-    AllocaInst* alloca =
-      new AllocaInst(storageTy, NULL, "local"+utostr(i), entry);
-    it = slotMap.insert(it, std::make_pair(storageTy, alloca));
-  }
-
-  new StoreInst(value, it->second, insertAtEnd);
-}
-
-llvm::Value* Locals::load(unsigned i, const Type* valueTy,
-                          BasicBlock* insertAtEnd)
-{
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-
-  SlotMap& slotMap = locals_[i];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  assert(it != slotMap.end() && "Attempt to load a non initialized global!");
-  Value* value = new LoadInst(it->second, "load", insertAtEnd);
-  if (valueTy != storageTy)
-    value = new CastInst(value, valueTy, "from-storage-type", insertAtEnd);
-  return value;
-}
diff --git a/java/lib/Compiler/Locals.h b/java/lib/Compiler/Locals.h
deleted file mode 100644
index 763619d..0000000
--- a/java/lib/Compiler/Locals.h
+++ /dev/null
@@ -1,55 +0,0 @@
-//===-- Locals.h - Java locals ----------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of Java locals. We model the
-// locals as an array of lazily created allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_LOCALS_H
-#define LLVM_JAVA_LOCALS_H
-
-#include "Resolver.h"
-#include <map>
-#include <vector>
-
-namespace llvm {
-
-  class AllocaInst;
-  class BasicBlock;
-  class Instruction;
-  class Type;
-  class Value;
-
-} // namespace llvm
-
-namespace llvm { namespace Java {
-
-  class Locals {
-    const Resolver* resolver_;
-    typedef std::map<const Type*, AllocaInst*> SlotMap;
-    std::vector<SlotMap> locals_;
-
-  public:
-    Locals(const Resolver* resolver, unsigned maxLocals);
-
-    /// @brief - Stores the value \c value on the \c i'th local
-    /// variable and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    void store(unsigned i, Value* value, BasicBlock* insertAtEnd);
-
-    /// @brief - Loads the value of the \c i'th local variable of type
-    /// \c type and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    Value* load(unsigned i, const Type* type, BasicBlock* insertAtEnd);
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_LOCALS_H
diff --git a/java/lib/Compiler/Makefile b/java/lib/Compiler/Makefile
deleted file mode 100644
index b79e2d8..0000000
--- a/java/lib/Compiler/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Compiler/Makefile -------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-LIBRARYNAME := LLVMJavaCompiler
-
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Compiler/OperandStack.cpp b/java/lib/Compiler/OperandStack.cpp
deleted file mode 100644
index 5763d4e..0000000
--- a/java/lib/Compiler/OperandStack.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-//===-- OperandStack.cpp - Java operand stack -----------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of a Java operand stack. We
-// model the java operand stack as a stack of LLVM allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#include "OperandStack.h"
-#include <llvm/BasicBlock.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Java/Compiler.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-void OperandStack::copySlots(const SlotMap& src,
-                             SlotMap& dst,
-                             BasicBlock* insertAtEnd)
-{
-  SlotMap::const_iterator it = src.begin();
-  SlotMap::const_iterator end = src.end();
-
-  for (; it != end; ++it) {
-    AllocaInst* srcSlot = it->second;
-    AllocaInst* dstSlot = getOrCreateSlot(dst, it->first, insertAtEnd);
-    Value* value = new LoadInst(srcSlot, "tmp", insertAtEnd);
-    new StoreInst(value, dstSlot, insertAtEnd);
-  }
-}
-
-llvm::AllocaInst* OperandStack::getOrCreateSlot(SlotMap& slotMap,
-                                                const Type* type,
-                                                BasicBlock* bb)
-{
-  SlotMap::iterator it = slotMap.find(type);
-
-  if (it == slotMap.end()) {
-    // Insert the alloca at the beginning of the entry block.
-    BasicBlock* entry = &bb->getParent()->getEntryBlock();
-    AllocaInst* alloca = new AllocaInst(type, NULL, "opStack", entry);
-    it = slotMap.insert(it, std::make_pair(type, alloca));
-  }
-
-  return it->second;
-}
-
-void OperandStack::push(Value* value, BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ < stack_.size() && "Pushing to a full stack!");
-  const Type* valueTy = value->getType();
-//   std::cerr << "PUSH(" << insertAtEnd << "/"
-//             << insertAtEnd->getParent()->getName() << " " << stack_.size()
-//             << ") Depth: " << currentDepth_ << " type: " << *valueTy << '\n';
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-  if (valueTy != storageTy)
-    value = new CastInst(value, storageTy, "to-storage-type", insertAtEnd);
-
-  SlotMap& slotMap = stack_[currentDepth_];
-  AllocaInst* slot = getOrCreateSlot(slotMap, storageTy, insertAtEnd);
-  new StoreInst(value, slot, insertAtEnd);
-  currentDepth_ += 1 + resolver_->isTwoSlotType(storageTy);
-  assert(currentDepth_ < stack_.size() && "Pushed more than max stack depth!");
-}
-
-llvm::Value* OperandStack::pop(const Type* valueTy, BasicBlock* insertAtEnd)
-{
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  currentDepth_ -= 1 + resolver_->isTwoSlotType(storageTy);
-//   std::cerr << "POP(" << insertAtEnd->getName() << "/"
-//             << insertAtEnd->getParent()->getName() << " " << stack_.size()
-//             << ")  Depth: " << currentDepth_ << " type: " << *valueTy << '\n';
-
-  SlotMap& slotMap = stack_[currentDepth_];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  assert(it != slotMap.end() && "Type mismatch on operand stack!");
-  Value* value = new LoadInst(it->second, "pop", insertAtEnd);
-  if (valueTy != storageTy)
-    value = new CastInst(value, valueTy, "from-storage-type", insertAtEnd);
-  return value;
-}
-
-/// ..., value -> ...
-void OperandStack::do_pop(BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  --currentDepth_;
-}
-
-/// ..., value2, value1 -> ...
-/// ..., value -> ...
-void OperandStack::do_pop2(BasicBlock* insertAtEnd)
-{
-  do_pop(insertAtEnd);
-  do_pop(insertAtEnd);
-}
-
-/// ..., value -> ..., value, value
-void OperandStack::do_dup(BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup_x1(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-2], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value3, value2, value1 -> ..., value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup_x2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-3], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value2, value1 -> ..., value2, value1, value2, value1
-void OperandStack::do_dup2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-/// ..., value3, value2, value1 -> ..., value2, value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup2_x1(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_+1], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-3], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-/// ..., value4, value3, value2, value1 -> ..., value2, value1, value4, value3, value2, value1
-/// ..., value3, value2, value1 -> ..., value1, value3, value2, value1
-/// ..., value3, value2, value1 -> ..., value2, value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup2_x2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_-4], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_+1], stack_[currentDepth_-3], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-4], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-void OperandStack::do_swap(BasicBlock* insertAtEnd)
-{
-  SlotMap tmp;
-  copySlots(stack_[currentDepth_-1], tmp, insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(tmp, stack_[currentDepth_-2], insertAtEnd);
-}
diff --git a/java/lib/Compiler/OperandStack.h b/java/lib/Compiler/OperandStack.h
deleted file mode 100644
index b987d36..0000000
--- a/java/lib/Compiler/OperandStack.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- OperandStack.h - Java operand stack ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of a Java operand stack. We
-// model the java operand stack as a stack of LLVM allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_OPERANDSTACK_H
-#define LLVM_JAVA_OPERANDSTACK_H
-
-#include "Resolver.h"
-#include <llvm/Value.h>
-#include <llvm/Instruction.h>
-#include <map>
-#include <vector>
-
-namespace llvm {
-
-  class AllocaInst;
-  class Instruction;
-  class Value;
-
-} // namespace llvm
-
-namespace llvm {  namespace Java {
-
-  class OperandStack {
-    const Resolver* resolver_;
-    unsigned currentDepth_;
-    typedef std::map<const Type*, AllocaInst*> SlotMap;
-    std::vector<SlotMap> stack_;
-
-  public:
-    explicit OperandStack(const Resolver* resolver, unsigned maxDepth)
-      : resolver_(resolver),
-        currentDepth_(0),
-        stack_(maxDepth) { }
-
-    unsigned getDepth() const { return currentDepth_; }
-    void setDepth(unsigned newDepth) {
-      assert(newDepth < stack_.size() &&
-             "Cannot set depth greater than the max depth!");
-      currentDepth_ = newDepth;
-    }
-
-    /// @brief - Pushes the value \c value on the virtual operand
-    /// stack and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    void push(Value* value, BasicBlock* insertAtEnd);
-
-    /// @brief - Pops a value of type \c type from the virtual operand
-    /// stack and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    Value* pop(const Type* type, BasicBlock* insertAtEnd);
-
-    void do_pop(BasicBlock* insertAtEnd);
-    void do_pop2(BasicBlock* insertAtEnd);
-    void do_dup(BasicBlock* insertAtEnd);
-    void do_dup_x1(BasicBlock* insertAtEnd);
-    void do_dup_x2(BasicBlock* insertAtEnd);
-    void do_dup2(BasicBlock* insertAtEnd);
-    void do_dup2_x1(BasicBlock* insertAtEnd);
-    void do_dup2_x2(BasicBlock* insertAtEnd);
-    void do_swap(BasicBlock* insertAtEnd);
-
-  private:
-    AllocaInst* getOrCreateSlot(SlotMap& slotMap,
-                                const Type* type,
-                                BasicBlock* bb);
-    void copySlots(const SlotMap& src, SlotMap& dst, BasicBlock* insertAtEnd);
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_OPERANDSTACK_H
diff --git a/java/lib/Compiler/Resolver.cpp b/java/lib/Compiler/Resolver.cpp
deleted file mode 100644
index ac5d6a1..0000000
--- a/java/lib/Compiler/Resolver.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-//===-- Resolver.cpp - Class resolver for Java classes ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Java class resolver.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javaresolver"
-
-#include "Resolver.h"
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-Resolver::Resolver(Module* module)
-  : module_(module),
-    nextInterfaceIndex_(0),
-    objectBaseLayoutType_(OpaqueType::get()),
-    objectBaseType_(PointerType::get(objectBaseLayoutType_)),
-    classRecordType_(OpaqueType::get()),
-    classRecordPtrType_(PointerType::get(classRecordType_))
-{
-  module_->addTypeName("struct.llvm_java_object_base",
-                       getObjectBaseLayoutType());
-
-  // Compute the class record type. A class record looks like:
-  //
-  // struct class_record {
-  //   struct type_info;
-  // };
-  //
-  // struct type_info {
-  //   char* name;
-  //   int depth;
-  //   struct class_record** superclasses;
-  //   int interfaceIndex;
-  //   struct class_record** interfaces;
-  //   struct class_record* component;
-  //   int elementSize;
-  //   char** fieldDescriptors;
-  //   unsigned* fieldOffsets;
-  //   char** staticFieldDescriptors;
-  //   void** staticFields;
-  //   char** MethodDescriptors;
-  //   void** Methods;
-  //   char** staticMethodDescriptors;
-  //   void** staticMethods;
-  // };
-
-  // Compute the type_info type.
-  std::vector<const Type*> elements;
-  elements.push_back(PointerType::get(Type::SByteTy));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(classRecordType_)));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(classRecordType_)));
-  elements.push_back(PointerType::get(classRecordType_));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(Type::UIntTy));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  typeInfoType_ = StructType::get(elements);
-
-  module_->addTypeName("struct.llvm_java_typeinfo", getTypeInfoType());
-
-  // Compute the class_record type.
-  PATypeHolder holder = classRecordType_;
-  cast<OpaqueType>(const_cast<Type*>(classRecordType_))->refineAbstractTypeTo(
-    StructType::get(std::vector<const Type*>(1, getTypeInfoType())));
-  classRecordType_ = holder.get();
-
-  module_->addTypeName("struct.llvm_java_class_record", getClassRecordType());
-
-  classRecordPtrType_ = PointerType::get(classRecordType_);
-}
-
-const Type* Resolver::getType(const std::string& descriptor,
-                              bool memberMethod) const
-{
-  unsigned i = 0;
-  return getTypeHelper(descriptor, i, memberMethod);
-}
-
-const Type* Resolver::getTypeHelper(const std::string& descr,
-                                    unsigned& i,
-                                    bool memberMethod) const
-{
-  assert(i < descr.size());
-  switch (descr[i++]) {
-  case 'B': return Type::SByteTy;
-  case 'C': return Type::UShortTy;
-  case 'D': return Type::DoubleTy;
-  case 'F': return Type::FloatTy;
-  case 'I': return Type::IntTy;
-  case 'J': return Type::LongTy;
-  case 'S': return Type::ShortTy;
-  case 'Z': return Type::BoolTy;
-  case 'V': return Type::VoidTy;
-  case 'L': {
-    unsigned e = descr.find(';', i);
-    i = e + 1;
-    return getObjectBaseType();
-  }
-  case '[':
-    // Skip '['s.
-    if (descr[i] == '[')
-      do { ++i; } while (descr[i] == '[');
-    // Consume the element type
-    getTypeHelper(descr, i);
-    return getObjectBaseType();
-  case '(': {
-    std::vector<const Type*> params;
-    if (memberMethod)
-      params.push_back(getObjectBaseType());
-    while (descr[i] != ')')
-      params.push_back(getTypeHelper(descr, i));
-    return FunctionType::get(getTypeHelper(descr, ++i), params, false);
-  }
-    // FIXME: Throw something
-  default:  assert(0 && "Cannot parse type descriptor!");
-  }
-  return 0; // not reached
-}
-
-const VMClass* Resolver::getClassForDesc(const std::string& descriptor)
-{
-  ClassMap::iterator it = classMap_.lower_bound(descriptor);
-  if (it == classMap_.end() || it->first != descriptor) {
-    switch (descriptor[0]) {
-    case 'B':
-      it = insertClass(it, VMClass(this, Type::SByteTy));
-      break;
-    case 'C':
-      it = insertClass(it, VMClass(this, Type::UShortTy));
-      break;
-    case 'D':
-      it = insertClass(it, VMClass(this, Type::DoubleTy));
-      break;
-    case 'F':
-      it = insertClass(it, VMClass(this, Type::FloatTy));
-      break;
-    case 'I':
-      it = insertClass(it, VMClass(this, Type::IntTy));
-      break;
-    case 'J':
-      it = insertClass(it, VMClass(this, Type::LongTy));
-      break;
-    case 'S':
-      it = insertClass(it, VMClass(this, Type::ShortTy));
-      break;
-    case 'Z':
-      it = insertClass(it, VMClass(this, Type::BoolTy));
-      break;
-    case 'V':
-      it = insertClass(it, VMClass(this, Type::VoidTy));
-      break;
-    case 'L': {
-      unsigned pos = descriptor.find(';', 1);
-      const std::string& className = descriptor.substr(1, pos - 1);
-      it = insertClass(it, VMClass(this, className));
-      break;
-    }
-    case '[': {
-      const std::string& componentDescriptor = descriptor.substr(1);
-      it = insertClass(it, VMClass(this, getClassForDesc(componentDescriptor)));
-      break;
-    }
-    default:
-      assert(0 && "Cannot parse type descriptor!");
-      abort();
-    }
-    it->second.link();
-    if (!it->second.isPrimitive() && !it->second.isInterface())
-      module_->addTypeName("struct." + descriptor, it->second.getLayoutType());
-    DEBUG(std::cerr << "Loaded class: " << it->second.getName());
-    DEBUG(std::cerr << " (" << it->second.getInterfaceIndex() << ")\n");
-  }
-
-  return &it->second;
-}
-
-const VMClass* Resolver::getClass(JType type)
-{
-  switch (type) {
-  case BOOLEAN: return getClassForDesc("Z");
-  case CHAR: return getClassForDesc("C");
-  case FLOAT: return getClassForDesc("F");
-  case DOUBLE: return getClassForDesc("D");
-  case BYTE: return getClassForDesc("B");
-  case SHORT: return getClassForDesc("S");
-  case INT: return getClassForDesc("I");
-  case LONG: return getClassForDesc("J");
-  default: assert(0 && "Unhandled JType!"); abort();
-  }
-}
-
-const Type* Resolver::getStorageType(const Type* type) const
-{
-  if (isa<PointerType>(type))
-    return getObjectBaseType();
-  else if (type == Type::BoolTy ||
-           type == Type::UByteTy ||
-           type == Type::SByteTy ||
-           type == Type::UShortTy ||
-           type == Type::ShortTy ||
-           type == Type::UIntTy)
-    return Type::IntTy;
-  else if (type == Type::ULongTy)
-    return Type::LongTy;
-  else
-    return type;
-}
-
-void Resolver::emitClassRecordsArray() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(classMap_.size() + 1);
-
-  for (ClassMap::const_iterator i = classMap_.begin(), e = classMap_.end();
-       i != e; ++i)
-    init.push_back(ConstantExpr::getCast(i->second.getClassRecord(),
-                                         classRecordPtrType_));
-
-  // Null terminate the array.
-  init.push_back(llvm::Constant::getNullValue(classRecordPtrType_));
-
-  const ArrayType* arrayType = ArrayType::get(classRecordPtrType_, init.size());
-
-  new GlobalVariable(
-    arrayType,
-    true,
-    GlobalVariable::ExternalLinkage,
-    ConstantArray::get(arrayType, init),
-    "llvm_java_class_records",
-    module_);                       
-}
diff --git a/java/lib/Compiler/Resolver.h b/java/lib/Compiler/Resolver.h
deleted file mode 100644
index c48f2f3..0000000
--- a/java/lib/Compiler/Resolver.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//===-- Resolver.h - Class resolver for Java classes ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of a Java class resolver. This
-// object creates Class objects out of loaded ClassFiles.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_RESOLVER_H
-#define LLVM_JAVA_RESOLVER_H
-
-#include "VMClass.h"
-#include <llvm/Java/Bytecode.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <map>
-#include <string>
-
-namespace llvm { namespace Java {
-
-  class Resolver {
-    Module* module_;
-    typedef std::map<std::string, VMClass> ClassMap;
-    ClassMap classMap_;
-    unsigned nextInterfaceIndex_;
-    const Type* objectBaseLayoutType_;
-    const Type* objectBaseType_;
-    const Type* typeInfoType_;
-    const Type* classRecordType_;
-    const Type* classRecordPtrType_;
-
-    const VMClass* getClassForDesc(const std::string& descriptor);
-
-    const Type* getTypeHelper(const std::string&,
-                              unsigned& i,
-                              bool memberMethod = false) const;
-
-    ClassMap::iterator insertClass(ClassMap::iterator i, const VMClass& clazz) {
-      return classMap_.insert(i, std::make_pair(clazz.getDescriptor(), clazz));
-    }
-
-    friend class VMClass;
-
-  public:
-    static std::string canonicalizeClassName(const std::string& className) {
-      if (className[0] == '[')
-        return className;
-      else
-        return 'L' + className + ';';
-    }
-
-    Resolver(Module* module);
-
-    const Type* getObjectBaseLayoutType() const {return objectBaseLayoutType_; }
-    const Type* getObjectBaseType() const { return objectBaseType_; }
-    const Type* getTypeInfoType() const { return typeInfoType_; }
-    const Type* getClassRecordType() const { return classRecordType_; }
-    const Type* getClassRecordPtrType() const { return classRecordPtrType_; }
-
-    const Type* getType(const std::string& descriptor,
-                        bool memberMethod = false) const;
-    const Type* getStorageType(const Type* type) const;
-
-    inline bool isTwoSlotType(const Type* type) const {
-      return type == Type::LongTy || type == Type::DoubleTy;
-    }
-
-    inline bool isOneSlotType(const Type* type) const {
-      return !isTwoSlotType(type);
-    }
-
-    const VMClass* getClass(const std::string& className) {
-      return getClassForDesc(canonicalizeClassName(className));
-    }
-
-    const VMClass* getClass(JType type);
-
-    const VMClass* getArrayClass(const VMClass* clazz) {
-      return getClassForDesc('[' + clazz->getDescriptor());
-    }
-
-    unsigned getNextInterfaceIndex() { return nextInterfaceIndex_++; }
-    Module* getModule() { return module_; }
-    void emitClassRecordsArray() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_RESOLVER_H
diff --git a/java/lib/Compiler/VMClass.cpp b/java/lib/Compiler/VMClass.cpp
deleted file mode 100644
index 7467289..0000000
--- a/java/lib/Compiler/VMClass.cpp
+++ /dev/null
@@ -1,781 +0,0 @@
-//===-- VMClass.cpp - Compiler representation of a Java class ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Class class that represents a
-// compile time representation of a Java class (java.lang.Class). This unlike
-// a classfile representation, it resolves the constant pool, creates global
-// variables for the static members of this class and also creates the class
-// record (vtable) of this class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javaclass"
-
-#include "VMClass.h"
-#include "Resolver.h"
-#include <llvm/DerivedTypes.h>
-#include <llvm/Constants.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-// On initialization we create a placeholder global for the class
-// record that will be patched later when the class record is
-// computed.
-void VMClass::init()
-{
-  classRecord_ = new GlobalVariable(
-    OpaqueType::get(),
-    false,
-    GlobalVariable::ExternalLinkage,
-    NULL,
-    getName() + "<class_record>",
-    resolver_->getModule());
-}
-
-VMClass::VMClass(Resolver* resolver, const std::string& className)
-  : name_(className),
-    descriptor_(Resolver::canonicalizeClassName(className)),
-    resolver_(resolver),
-    classFile_(ClassFile::get(className)),
-    componentClass_(NULL),
-    layoutType_(OpaqueType::get()),
-    type_(PointerType::get(layoutType_)),
-    interfaceIndex_(INVALID_INTERFACE_INDEX),
-    resolvedConstantPool_(classFile_->getNumConstants())
-{
-  init();
-}
-
-VMClass::VMClass(Resolver* resolver, const VMClass* componentClass)
-  : name_('[' + componentClass->getDescriptor()),
-    descriptor_(name_),
-    resolver_(resolver),
-    classFile_(NULL),
-    componentClass_(componentClass),
-    layoutType_(OpaqueType::get()),
-    type_(PointerType::get(layoutType_)),
-    interfaceIndex_(INVALID_INTERFACE_INDEX)
-{
-  init();
-}
-
-VMClass::VMClass(Resolver* resolver, const Type* type)
-  : name_(type == Type::SByteTy  ? "byte" :
-          type == Type::UShortTy ? "char" :
-          type == Type::DoubleTy ? "double" :
-          type == Type::FloatTy  ? "float" :
-          type == Type::IntTy    ? "int" :
-          type == Type::LongTy   ? "long" :
-          type == Type::ShortTy  ? "short" :
-          type == Type::BoolTy   ? "boolean" : "void"),
-    descriptor_(type == Type::SByteTy  ? "B" :
-                type == Type::UShortTy ? "C" :
-                type == Type::DoubleTy ? "D" :
-                type == Type::FloatTy  ? "F" :
-                type == Type::IntTy    ? "I" :
-                type == Type::LongTy   ? "J" :
-                type == Type::ShortTy  ? "S" :
-                type == Type::BoolTy   ? "Z" : "V"),
-    resolver_(resolver),
-    classFile_(NULL),
-    componentClass_(NULL),
-    layoutType_(const_cast<Type*>(type)),
-    type_(type),
-    interfaceIndex_(INVALID_INTERFACE_INDEX)
-{
-  init();
-}
-
-const VMField* VMClass::lookupField(const std::string& name) const
-{
-  if (const VMField* field = getField(name))
-    return field;
-
-  for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-    const VMClass* interface = getInterface(i);
-    if (const VMField* field = interface->getField(name))
-      return field;
-  }
-
-  for (unsigned i = 0, e = getNumSuperClasses(); i != e; ++i) {
-    const VMClass* superClass = getSuperClass(i);
-    if (const VMField* field = superClass->getField(name))
-      return field;
-  }
-
-  return NULL;
-}
-
-const VMMethod* VMClass::lookupMethod(const std::string& nameAndType) const
-{
-  if (const VMMethod* method = getMethod(nameAndType))
-    return method;
-
-  if (isInterface())
-    for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-      const VMClass* interface = getInterface(i);
-      if (const VMMethod* method = interface->getMethod(nameAndType))
-        return method;
-    }
-  else
-    for (unsigned i = 0, e = getNumSuperClasses(); i != e; ++i) {
-      const VMClass* superClass = getSuperClass(i);
-      if (const VMMethod* method = superClass->getMethod(nameAndType))
-        return method;
-    }
-
-  return NULL;
-}
-
-void VMClass::computeLayout()
-{
-  DEBUG(std::cerr << "Computing layout for: " << getName() << '\n');
-  // The layout of primitive classes is already computed.
-  if (isPrimitive()) {
-    DEBUG(std::cerr << "Computed layout for: " << getName() << '\n');
-    return;
-  }
-
-  std::vector<const Type*> layout;
-  if (isArray()) {
-    layout.reserve(3);
-    layout.push_back(resolver_->getClass("java/lang/Object")->getLayoutType());
-    layout.push_back(Type::UIntTy);
-    layout.push_back(ArrayType::get(componentClass_->getType(), 0));
-  }
-  else {
-    if (const VMClass* superClass = getSuperClass())
-      layout.push_back(superClass->getLayoutType());
-    else // This is java/lang/Object
-      layout.push_back(resolver_->getObjectBaseLayoutType());
-    // Now add the fields.
-    const Fields& fields = classFile_->getFields();
-    for (unsigned i = 0, e = fields.size(); i != e; ++i) {
-      Field* field = fields[i];
-      const std::string& name = field->getName()->str();
-      if (field->isStatic()) {
-        FieldMap::iterator i = fieldMap_.insert(
-          std::make_pair(name, VMField(this, field))).first;
-        staticFields_.push_back(&i->second);
-      }
-      else {
-        unsigned index = memberFields_.size() + 1;
-        FieldMap::iterator i = fieldMap_.insert(
-          std::make_pair(name, VMField(this, field, index))).first;
-        const VMField* vmf = &i->second;
-        memberFields_.push_back(vmf);
-        layout.push_back(vmf->getClass()->getType());
-      }
-    }
-  }
-
-  PATypeHolder holder = layoutType_;
-  Type* resolvedType = StructType::get(layout);
-  cast<OpaqueType>(layoutType_)->refineAbstractTypeTo(resolvedType);
-  layoutType_ = holder.get();
-  type_ = PointerType::get(layoutType_);
-
-  DEBUG(std::cerr << "Computed layout for: " << getName() << '\n');
-}
-
-llvm::Constant* VMClass::buildSuperClassRecords() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumSuperClasses());
-  for (unsigned i = getNumSuperClasses(); i--; )
-    init.push_back(ConstantExpr::getCast(
-                     getSuperClass(i)->getClassRecord(),
-                     resolver_->getClassRecordPtrType()));
-
-  const ArrayType* superClassRecordsType =
-    ArrayType::get(resolver_->getClassRecordPtrType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      superClassRecordsType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(superClassRecordsType, init),
-      getName() + "<super_class_records>",
-      resolver_->getModule()));
-}
-
-llvm::Constant*
-VMClass::buildInterfaceClassRecord(const VMClass* interface) const
-{
-  assert(interface->isInterface() && "Must be passed an interface!");
-
-  std::vector<llvm::Constant*> init;
-  init.reserve(interface->getNumDynamicMethods() + 1);
-  // Insert a null type info for this interface.
-  init.push_back(llvm::Constant::getNullValue(resolver_->getTypeInfoType()));
-  // For each method this interface declares, find the corresponding
-  // method in this class and put it in its slot.
-  for (unsigned i = 0, e = interface->getNumDynamicMethods(); i != e; ++i) {
-    assert(init.size() == i+1 && "Interface method not found in class!");
-    const VMMethod* interfaceMethod = interface->getDynamicMethod(i);
-    for (unsigned j = 0, f = getNumDynamicMethods(); j != f; ++j) {
-      const VMMethod* method = getDynamicMethod(j);
-      if (method->getName() == interfaceMethod->getName() &&
-          method->getDescriptor() == interfaceMethod->getDescriptor()) {
-        init.push_back(method->getFunction());
-        break;
-      }
-    }
-  }
-
-  llvm::Constant* classRecordInit = ConstantStruct::get(init);
-
-  return ConstantExpr::getCast(
-    new GlobalVariable(
-      classRecordInit->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      classRecordInit,
-      getName() + '+' + interface->getName() + "<class_record>",
-      resolver_->getModule()),
-    resolver_->getClassRecordPtrType());
-}
-
-llvm::Constant* VMClass::buildInterfaceClassRecords() const
-{
-  // This is an interface or primitive class record so it doesn't
-  // implement any interfaces. Thus the pointer to the array of
-  // implemented interfaces is null.
-  if (isInterface() || isPrimitive()) {
-    const Type* classRecordPtrPtrType =
-      PointerType::get(resolver_->getClassRecordPtrType());
-
-    return llvm::Constant::getNullValue(classRecordPtrPtrType);
-  }
-
-  // Otherwise this is a class or array class record so we have to
-  // fill in the array of implemented interfaces up the max interface
-  // index and build each individual interface class record for this
-  // class.
-  llvm::Constant* nullClassRecord =
-    llvm::Constant::getNullValue(resolver_->getClassRecordPtrType());
-  std::vector<llvm::Constant*> init(getInterfaceIndex()+1, nullClassRecord);
-
-  for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-    const VMClass* interface = getInterface(i);
-    init[interface->getInterfaceIndex()] = buildInterfaceClassRecord(interface);
-  }
-
-  const ArrayType* interfaceClassRecordsType =
-    ArrayType::get(resolver_->getClassRecordPtrType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      interfaceClassRecordsType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(interfaceClassRecordsType, init),
-      getName() + "<interface_class_records>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildClassName() const
-{
-  llvm::Constant* name = ConstantArray::get(getName());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      name->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      name,
-      getName() + "<classname>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildFieldDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(memberFields_.size()+1);
-
-  for (unsigned i = 0, e = memberFields_.size(); i != e; ++i) {
-    const VMField* field = memberFields_[i];
-    init.push_back(field->buildFieldDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<field_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildFieldOffsets() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(memberFields_.size());
-
-  for (unsigned i = 0, e = memberFields_.size(); i != e; ++i) {
-    const VMField* field = memberFields_[i];
-    init.push_back(field->buildFieldOffset());
-  }
-
-  const ArrayType* arrayType = ArrayType::get(Type::UIntTy, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<field_offsets>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticFieldDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(staticFields_.size()+1);
-
-  for (unsigned i = 0, e = staticFields_.size(); i != e; ++i) {
-    const VMField* field = staticFields_[i];
-    init.push_back(field->buildFieldDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_field_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticFieldPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(staticFields_.size());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = staticFields_.size(); i != e; ++i) {
-    const VMField* field = staticFields_[i];
-    init.push_back(ConstantExpr::getCast(field->getGlobal(), pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_field_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildMethodDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods() + 1);
-
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(method->buildMethodDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<method_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildMethodPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(ConstantExpr::getCast(method->getBridgeFunction(),
-                                         pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<method_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticMethodDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods() + 1);
-
-  for (unsigned i = 0, e = getNumStaticMethods(); i != e; ++i) {
-    const VMMethod* method = getStaticMethod(i);
-    init.push_back(method->buildMethodDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_method_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticMethodPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = getNumStaticMethods(); i != e; ++i) {
-    const VMMethod* method = getStaticMethod(i);
-    init.push_back(ConstantExpr::getCast(method->getBridgeFunction(),
-                                         pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_method_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildClassTypeInfo() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(5);
-
-  init.push_back(buildClassName());
-  init.push_back(ConstantSInt::get(Type::IntTy, getNumSuperClasses()));
-  init.push_back(buildSuperClassRecords());
-  init.push_back(ConstantSInt::get(Type::IntTy, getInterfaceIndex()));
-  init.push_back(buildInterfaceClassRecords());
-  if (isArray())
-    init.push_back(ConstantExpr::getCast(getComponentClass()->getClassRecord(),
-                                         resolver_->getClassRecordPtrType()));
-  else
-    init.push_back(
-      llvm::Constant::getNullValue(resolver_->getClassRecordPtrType()));
-  if (isArray())
-    init.push_back(
-      ConstantExpr::getCast(
-        ConstantExpr::getSizeOf(getComponentClass()->getType()), Type::IntTy));
-  else if (isPrimitive())
-    init.push_back(ConstantSInt::get(Type::IntTy, -2));
-  else if (isInterface())
-    init.push_back(ConstantSInt::get(Type::IntTy, -1));
-  else // A class.
-    init.push_back(ConstantSInt::get(Type::IntTy, 0));
-
-  init.push_back(buildFieldDescriptors());
-  init.push_back(buildFieldOffsets());
-  init.push_back(buildStaticFieldDescriptors());
-  init.push_back(buildStaticFieldPointers());
-  init.push_back(buildMethodDescriptors());
-  init.push_back(buildMethodPointers());
-  init.push_back(buildStaticMethodDescriptors());
-  init.push_back(buildStaticMethodPointers());
-
-  return ConstantStruct::get(init);
-}
-
-void VMClass::computeClassRecord()
-{
-  DEBUG(std::cerr << "Computing class record for: " << getName() << '\n');
-  // Find dynamically bound methods.
-  if (!isPrimitive()) {
-    if (const VMClass* superClass = getSuperClass())
-      dynamicMethods_ = superClass->dynamicMethods_;
-
-    if (getClassFile()) {
-      const Methods& methods = classFile_->getMethods();
-      for (unsigned i = 0, e = methods.size(); i != e; ++i) {
-        Method* method = methods[i];
-        const std::string& name = method->getName()->str();
-        const std::string& descriptor = method->getDescriptor()->str();
-
-        // If method is statically bound just create it.
-        if (method->isPrivate() || method->isStatic() || name[0] == '<') {
-          MethodMap::iterator i =
-            methodMap_.insert(
-              std::make_pair(name + descriptor, VMMethod(this, method))).first;
-          staticMethods_.push_back(&i->second);
-        }
-        // Otherwise we need to assign an index for it and update the
-        // dynamicMethods_ vector.
-        else {
-          const VMMethod* overridenMethod = NULL;
-          for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-            const VMMethod* m = getDynamicMethod(i);
-            if (m->getName() == name && m->getDescriptor() == descriptor)
-              overridenMethod = m;
-          }
-
-          // If this is an overriden method reuse the method index
-          // with the overriding one.
-          if (overridenMethod) {
-            int index = overridenMethod->getMethodIndex();
-            MethodMap::iterator i = methodMap_.insert(
-              std::make_pair(name + descriptor,
-                             VMMethod(this, method, index))).first;
-            dynamicMethods_[index] = &i->second;
-          }
-          // Otherwise assign it a new index.
-          else {
-            int index = dynamicMethods_.size();
-            MethodMap::iterator i = methodMap_.insert(
-              std::make_pair(
-                name + descriptor, VMMethod(this, method, index))).first;
-            dynamicMethods_.push_back(&i->second);
-          }
-        }
-      }
-    }
-  }
-
-  std::vector<llvm::Constant*> init;
-  init.reserve(1 + getNumDynamicMethods());
-  init.push_back(buildClassTypeInfo());
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(
-      method->isAbstract() ?
-      llvm::Constant::getNullValue(method->getFunction()->getType()) :
-      method->getFunction());
-  }
-
-  llvm::Constant* classRecordInit = ConstantStruct::get(init);
-  resolver_->getModule()->addTypeName("classRecord." + getName(),
-                                      classRecordInit->getType());
-
-  // Now resolve the opaque type of the placeholder class record.
-  const Type* classRecordType =
-    cast<PointerType>(classRecord_->getType())->getElementType();
-  OpaqueType* opaqueType = cast<OpaqueType>(const_cast<Type*>(classRecordType));
-  opaqueType->refineAbstractTypeTo(classRecordInit->getType());
-  // Set the initializer of the class record.
-  classRecord_->setInitializer(classRecordInit);
-  // Mark the class record as constant.
-  classRecord_->setConstant(true);
-
-  DEBUG(std::cerr << "Computed class record for: " << getName() << '\n');
-}
-
-void VMClass::link()
-{
-  // Primitive classes require no linking.
-  if (isPrimitive())
-    ;
-  else if (isArray()) {
-    superClasses_.reserve(1);
-    superClasses_.push_back(resolver_->getClass("java/lang/Object"));
-
-    interfaces_.reserve(2);
-    interfaces_.push_back(resolver_->getClass("java/lang/Cloneable"));
-    interfaces_.push_back(resolver_->getClass("java/io/Serializable"));
-  }
-  else {
-    // This is any class but java/lang/Object.
-    if (classFile_->getSuperClass()) {
-      // Our direct super class.
-      const VMClass* superClass = getClass(classFile_->getSuperClassIndex());
-
-      // Add the interfaces of our direct superclass.
-      for (unsigned i = 0, e = superClass->getNumInterfaces(); i != e; ++i)
-        interfaces_.push_back(superClass->getInterface(i));
-
-      // The first class is the direct super class of this class.
-      superClasses_.reserve(superClass->getNumSuperClasses() + 1);
-      superClasses_.push_back(superClass);
-      for (unsigned i = 0, e = superClass->getNumSuperClasses(); i != e; ++i)
-        superClasses_.push_back(superClass->getSuperClass(i));
-    }
-
-    // For each of the interfaces we implement, load it and add that
-    // interface and all the interfaces it inherits from.
-    for (unsigned i = 0, e = classFile_->getNumInterfaces(); i != e; ++i) {
-      const VMClass* interface = getClass(classFile_->getInterfaceIndex(i));
-      interfaces_.push_back(interface);
-      for (unsigned j = 0, f = interface->getNumInterfaces(); j != f; ++j)
-        interfaces_.push_back(interface->getInterface(j));
-    }
-
-    // Sort the interfaces array and remove duplicates.
-    std::sort(interfaces_.begin(), interfaces_.end());
-    interfaces_.erase(std::unique(interfaces_.begin(), interfaces_.end()),
-                      interfaces_.end());
-  }
-
-  // The interface index for an interface is a unique number generated
-  // from the resolver.
-  if (isInterface())
-    interfaceIndex_ = resolver_->getNextInterfaceIndex();
-  // For a class it is the max index of all the interfaces it implements.
-  else {
-    for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i)
-      interfaceIndex_ =
-        std::max(interfaceIndex_, getInterface(i)->getInterfaceIndex());
-  }
-
-  computeLayout();
-  computeClassRecord();
-
-  assert(!isa<OpaqueType>(getLayoutType()) &&"Class not initialized properly!");
-}
-
-llvm::Constant* VMClass::getConstant(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantString*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantInteger*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantFloat*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantLong*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantDouble*>(classFile_->getConstant(index))) &&
-         "Not an index to a constant!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    Constant* jc = classFile_->getConstant(index);
-    if (ConstantString* s = dynamic_cast<ConstantString*>(jc)) {
-      const VMClass* stringClass = resolver_->getClass("java/lang/String");
-      const Type* stringType = stringClass->getLayoutType();
-      resolvedConstantPool_[index] =
-        new GlobalVariable(stringType,
-                           false,
-                           GlobalVariable::LinkOnceLinkage,
-                           llvm::Constant::getNullValue(stringType),
-                           s->getValue()->str() + ".java/lang/String",
-                           resolver_->getModule());
-    }
-    else if (ConstantInteger* i = dynamic_cast<ConstantInteger*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantSInt::get(Type::IntTy, i->getValue());
-    else if (ConstantFloat* f = dynamic_cast<ConstantFloat*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantFP::get(Type::FloatTy, f->getValue());
-    else if (ConstantLong* l = dynamic_cast<ConstantLong*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantSInt::get(Type::LongTy, l->getValue());
-    else if (ConstantDouble* d = dynamic_cast<ConstantDouble*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantFP::get(Type::DoubleTy, d->getValue());
-    else
-      assert(0 && "Not a constant!");
-  }
-
-  return static_cast<llvm::Constant*>(resolvedConstantPool_[index]);
-}
-
-const VMClass* VMClass::getClass(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantClass*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantUtf8*>(classFile_->getConstant(index))) &&
-         "Not an index to a class or descriptor reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    Constant* jc = classFile_->getConstant(index);
-    if (ConstantClass* c = dynamic_cast<ConstantClass*>(jc))
-      resolvedConstantPool_[index] =
-        const_cast<VMClass*>(resolver_->getClass(c->getName()->str()));
-    else if (ConstantUtf8* d = dynamic_cast<ConstantUtf8*>(jc))
-      resolvedConstantPool_[index] =
-        const_cast<VMClass*>(resolver_->getClassForDesc(d->str()));
-    else
-      assert(0 && "Not a class!");
-  }
-
-  return static_cast<const VMClass*>(resolvedConstantPool_[index]);
-}
-
-const VMField* VMClass::getField(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert(dynamic_cast<ConstantFieldRef*>(classFile_->getConstant(index)) &&
-         "Not an index to a field reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    ConstantFieldRef* jc = classFile_->getConstantFieldRef(index);
-    const VMClass* clazz = getClass(jc->getClassIndex());
-    const std::string& name = jc->getNameAndType()->getName()->str();
-    resolvedConstantPool_[index] =
-      const_cast<VMField*>(clazz->lookupField(name));
-  }
-
-  return static_cast<const VMField*>(resolvedConstantPool_[index]);
-}
-
-const VMMethod* VMClass::getMethod(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantMethodRef*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantInterfaceMethodRef*>(classFile_->getConstant(index))) &&
-         "Not an index to a method reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    ConstantMemberRef* jc = classFile_->getConstantMemberRef(index);
-    const VMClass* clazz = getClass(jc->getClassIndex());
-    ConstantNameAndType* ntc = jc->getNameAndType();
-    const std::string& name = ntc->getName()->str();
-    const std::string& descriptor = ntc->getDescriptor()->str();
-    resolvedConstantPool_[index] =
-      const_cast<VMMethod*>(clazz->lookupMethod(name + descriptor));
-  }
-
-  return static_cast<const VMMethod*>(resolvedConstantPool_[index]);
-}
diff --git a/java/lib/Compiler/VMClass.h b/java/lib/Compiler/VMClass.h
deleted file mode 100644
index c420f60..0000000
--- a/java/lib/Compiler/VMClass.h
+++ /dev/null
@@ -1,147 +0,0 @@
-//===-- VMClass.h - Compiler representation of a Java class -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the VMClass class that represents a
-// compile time representation of a Java class (java.lang.Class).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMCLASS_H
-#define LLVM_JAVA_VMCLASS_H
-
-#include "VMField.h"
-#include "VMMethod.h"
-#include <llvm/Constant.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <llvm/Java/ClassFile.h>
-#include <map>
-#include <string>
-#include <vector>
-
-namespace llvm { namespace Java {
-
-  class Resolver;
-
-  class VMClass {
-    static const int INVALID_INTERFACE_INDEX = -1;
-
-    const std::string name_;
-    const std::string descriptor_;
-    Resolver* resolver_;
-    const ClassFile* classFile_;
-    const VMClass* componentClass_;
-    Type* layoutType_;
-    const Type* type_;
-    int interfaceIndex_;
-    typedef std::map<std::string, VMField> FieldMap;
-    FieldMap fieldMap_;
-    typedef std::map<std::string, VMMethod> MethodMap;
-    MethodMap methodMap_;
-    mutable std::vector<void*> resolvedConstantPool_;
-    std::vector<const VMClass*> superClasses_;
-    std::vector<const VMClass*> interfaces_;
-    std::vector<const VMField*> memberFields_;
-    std::vector<const VMField*> staticFields_;
-    std::vector<const VMMethod*> dynamicMethods_;
-    std::vector<const VMMethod*> staticMethods_;
-    GlobalVariable* classRecord_;
-
-    void init();
-
-    void computeLayout();
-    void computeClassRecord();
-
-    llvm::Constant* buildClassName() const;
-    llvm::Constant* buildSuperClassRecords() const;
-    llvm::Constant* buildInterfaceClassRecord(const VMClass* interface) const;
-    llvm::Constant* buildInterfaceClassRecords() const;
-    llvm::Constant* buildFieldDescriptors() const;
-    llvm::Constant* buildFieldOffsets() const;
-    llvm::Constant* buildStaticFieldDescriptors() const;
-    llvm::Constant* buildStaticFieldPointers() const;
-    llvm::Constant* buildMethodDescriptors() const;
-    llvm::Constant* buildMethodPointers() const;
-    llvm::Constant* buildStaticMethodDescriptors() const;
-    llvm::Constant* buildStaticMethodPointers() const;
-    llvm::Constant* buildClassTypeInfo() const;
-
-    const VMField* lookupField(const std::string& name) const;
-    const VMMethod* lookupMethod(const std::string& nameAndType) const;
-    
-    friend class Resolver;
-
-    // Resolver interface.
-
-    // Load primitive class for type.
-    VMClass(Resolver* resolver, const Type* type);
-
-    // Load class by name.
-    VMClass(Resolver* resolver, const std::string& className);
-
-    // Load array class of component the passed class.
-    VMClass(Resolver* resolver, const VMClass* componentClass);
-
-    // Link the class.
-    void link();
-    // Resolve the class.
-    void resolve();
-    // Initialize the class.
-    void initialize();
-
-  public:
-    const std::string& getName() const { return name_; }
-    const std::string& getDescriptor() const { return descriptor_; }
-    Resolver* getResolver() const { return resolver_; }
-    const Type* getLayoutType() const { return layoutType_; }
-    const Type* getType() const { return type_; }
-    const ClassFile* getClassFile() const { return classFile_; }
-    unsigned getNumSuperClasses() const { return superClasses_.size(); }
-    const VMClass* getSuperClass(unsigned i) const { return superClasses_[i]; }
-    const VMClass* getSuperClass() const {
-      return getNumSuperClasses() ? getSuperClass(0) : NULL;
-    }
-    unsigned getNumInterfaces() const { return interfaces_.size(); }
-    const VMClass* getInterface(unsigned i) const { return interfaces_[i]; }
-    const VMClass* getComponentClass() const { return componentClass_; }
-    bool isArray() const { return getComponentClass(); }
-    bool isPrimitive() const { return getType() == getLayoutType(); }
-    bool isInterface() const { return classFile_ && classFile_->isInterface(); }
-    int getInterfaceIndex() const { return interfaceIndex_; }
-    unsigned getNumDynamicMethods() const {
-      return dynamicMethods_.size();
-    }
-    const VMMethod* getDynamicMethod(unsigned i) const {
-      return dynamicMethods_[i];
-    }
-    unsigned getNumStaticMethods() const {
-      return staticMethods_.size();
-    }
-    const VMMethod* getStaticMethod(unsigned i) const {
-      return staticMethods_[i];
-    }
-    llvm::Constant* getClassRecord() const { return classRecord_; }
-
-    llvm::Constant* getConstant(unsigned index) const;
-    const VMClass* getClass(unsigned index) const;
-    const VMField* getField(unsigned index) const;
-    const VMField* getField(const std::string& name) const {
-      FieldMap::const_iterator it = fieldMap_.find(name);
-      return it == fieldMap_.end() ? NULL : &it->second;
-    }
-    const VMMethod* getMethod(unsigned index) const;
-    const VMMethod* getMethod(const std::string& nameAndType) const {
-      MethodMap::const_iterator it = methodMap_.find(nameAndType);
-      return it == methodMap_.end() ? NULL : &it->second;
-    }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMCLASS_H
diff --git a/java/lib/Compiler/VMField.cpp b/java/lib/Compiler/VMField.cpp
deleted file mode 100644
index 823da90..0000000
--- a/java/lib/Compiler/VMField.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===-- VMField.cpp - Compiler representation of a Java field ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Field class that represents a
-// compile time representation of a Java class field (java.lang.Field).
-//
-//===----------------------------------------------------------------------===//
-
-#include "VMField.h"
-#include "Resolver.h"
-#include "VMClass.h"
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-VMField::VMField(const VMClass* parent, const Field* field)
-  : parent_(parent),
-    class_(parent->getClass(field->getDescriptorIndex())),
-    field_(field)
-{
-  assert(isStatic() && "This should be a static field!");
-
-  // A java static field is constant if it is marked final and has a
-  // static initializer.
-  bool isConstant = field_->isFinal() && field->getConstantValueAttribute();
-
-  llvm::Constant* init = NULL;
-  if (ConstantValueAttribute* attr = field_->getConstantValueAttribute()) {
-    init = parent_->getConstant(attr->getValueIndex());
-    if (init->getType() != class_->getType())
-      init = ConstantExpr::getCast(init, class_->getType());
-  }
-  else
-    init = llvm::Constant::getNullValue(class_->getType());
-
-  data_.global = new GlobalVariable(class_->getType(),
-                                    isConstant,
-                                    GlobalVariable::ExternalLinkage,
-                                    init,
-                                    parent_->getName() + '/' + getName(),
-                                    parent_->getResolver()->getModule());
-}
-
-VMField::VMField(const VMClass* parent, const Field* field, int index)
-  : parent_(parent),
-    class_(parent->getClass(field->getDescriptorIndex())),
-    field_(field)
-{
-  assert(!isStatic() && "This should be a member field!");
-  data_.index = index;
-}
-
-llvm::Constant* VMField::buildFieldDescriptor() const
-{
-  llvm::Constant* fd = ConstantArray::get(getName() + getDescriptor());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      fd->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      fd,
-      getName() + getDescriptor(),
-      parent_->getResolver()->getModule()));
-}
-
-llvm::Constant* VMField::buildFieldOffset() const
-{
-  assert(!isStatic() && "This should be a member field!");
-
-  assert(!isa<OpaqueType>(getParent()->getType()) &&
-         "Should not be called before its owning class layout is computed!");
-  llvm::Constant* nullRef =
-    llvm::Constant::getNullValue(getParent()->getType());
-  std::vector<llvm::Constant*> indices;
-  indices.reserve(2);
-  indices.push_back(ConstantInt::get(Type::UIntTy, 0));
-  indices.push_back(ConstantInt::get(Type::UIntTy, getMemberIndex()));
-
-  return ConstantExpr::getCast(
-    ConstantExpr::getGetElementPtr(nullRef, indices), Type::UIntTy);
-}
diff --git a/java/lib/Compiler/VMField.h b/java/lib/Compiler/VMField.h
deleted file mode 100644
index e482814..0000000
--- a/java/lib/Compiler/VMField.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- VMField.h - Compiler representation of a Java field -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Field class that represents a
-// compile time representation of a Java class field (java.lang.Field).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMFIELD_H
-#define LLVM_JAVA_VMFIELD_H
-
-#include <llvm/Java/ClassFile.h>
-#include <cassert>
-
-namespace llvm {
-
-  class Constant;
-  class GlobalVariable;
-
-}
-
-namespace llvm { namespace Java {
-
-  class VMClass;
-
-  class VMField {
-    const VMClass* parent_;
-    const VMClass* class_;
-    const Field* field_;
-    union {
-      int index;
-      GlobalVariable* global;
-    } data_;
-
-    friend class VMClass;
-    // Interface for VMClass.
-
-    // Create static field reference.
-    VMField(const VMClass* parent, const Field* field);
-
-    // Create member field reference.
-    VMField(const VMClass* parent, const Field* field, int index);
-
-  public:
-    const std::string& getName() const { return field_->getName()->str(); }
-    const std::string& getDescriptor() const {
-      return field_->getDescriptor()->str();
-    }
-    bool isStatic() const { return field_->isStatic(); }
-
-    const VMClass* getParent() const { return parent_; }
-    const VMClass* getClass() const { return class_; }
-    int getMemberIndex() const {
-      assert(!isStatic() && "Field should not be static!");
-      return data_.index;
-    }
-    GlobalVariable* getGlobal() const {
-      assert(isStatic() && "Field should be static!");
-      return data_.global;
-    }
-
-    llvm::Constant* buildFieldDescriptor() const;
-    llvm::Constant* buildFieldOffset() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMFIELD_H
diff --git a/java/lib/Compiler/VMMethod.cpp b/java/lib/Compiler/VMMethod.cpp
deleted file mode 100644
index 8c1548e..0000000
--- a/java/lib/Compiler/VMMethod.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//===-- VMMethod.cpp - Compiler representation of a Java method -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Method class that represents a
-// compile time representation of a Java class method (java.lang.Method).
-//
-//===----------------------------------------------------------------------===//
-
-#include "VMMethod.h"
-#include "Resolver.h"
-#include "VMClass.h"
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/STLExtras.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-void VMMethod::init()
-{
-  const std::string& methodName = method_->getName()->str();
-  const std::string& methodDescriptor = method_->getDescriptor()->str();
-  const std::string& functionName =
-    parent_->getName() + '/' + methodName + methodDescriptor;
-
-  Resolver* resolver = parent_->getResolver();
-  // FIXME: This type should be taken from the owning class's constant
-  // pool (parsed only once per class). This means the
-  // Resolver::getType() should be moved in VMClass and its return
-  // value should be cached in the constant pool along with the
-  // others.
-  const FunctionType* functionType = cast<FunctionType>(
-    resolver->getType(methodDescriptor, !method_->isStatic()));
-  Module* module = resolver->getModule();
-  function_ = module->getOrInsertFunction(functionName, functionType);
-
-  std::vector<const Type*> argTypes;
-  argTypes.reserve(2);
-  argTypes.push_back(resolver->getObjectBaseType());
-  argTypes.push_back(PointerType::get(Type::SByteTy));
-  const FunctionType* bridgeFunctionType =
-    FunctionType::get(functionType->getReturnType(), argTypes, false);
-  bridgeFunction_ = module->getOrInsertFunction("bridge_to_" + functionName,
-                                                bridgeFunctionType);
-  BasicBlock* bb = new BasicBlock("entry", bridgeFunction_);
-  std::vector<Value*> params;
-  params.reserve(functionType->getNumParams());
-  Value* objectArg = bridgeFunction_->arg_begin();
-  Value* vaList = next(bridgeFunction_->arg_begin());
-
-  if (!method_->isStatic())
-    params.push_back(objectArg);
-  for (unsigned i = !method_->isStatic(), e = functionType->getNumParams();
-       i != e; ++i) {
-    const Type* paramType = functionType->getParamType(i);
-    const Type* argType = paramType->getVAArgsPromotedType();
-    Value* arg = new VAArgInst(vaList, argType, "tmp", bb);
-    if (paramType != argType)
-      arg = new CastInst(arg, paramType, "tmp", bb);
-    params.push_back(arg);
-  }
-  if (functionType->getReturnType() == Type::VoidTy) {
-    new CallInst(function_, params, "", bb);
-    new ReturnInst(bb);
-  }
-  else {
-    Value* result = new CallInst(function_, params, "result", bb);
-    new ReturnInst(result, bb);
-  }
-}
-
-VMMethod::VMMethod(const VMClass* parent, const Method* method)
-  : parent_(parent),
-    method_(method),
-    index_(-1)
-{
-  assert(isStaticallyBound() && "This should be a statically bound method!");
-  init();
-}
-
-VMMethod::VMMethod(const VMClass* parent, const Method* method, int index)
-  : parent_(parent),
-    method_(method),
-    index_(index)
-{
-  assert(isDynamicallyBound() && "This should be a dynamically bound method!");
-  init();
-}
-
-llvm::Constant* VMMethod::buildMethodDescriptor() const
-{
-  llvm::Constant* fd = ConstantArray::get(getName() + getDescriptor());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      fd->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      fd,
-      getName() + getDescriptor(),
-      parent_->getResolver()->getModule()));
-}
-
-llvm::Constant* VMMethod::getBridgeFunction() const
-{
-  return bridgeFunction_;
-}
diff --git a/java/lib/Compiler/VMMethod.h b/java/lib/Compiler/VMMethod.h
deleted file mode 100644
index 62e13b0..0000000
--- a/java/lib/Compiler/VMMethod.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//===-- VMMethod.h - Compiler representation of a Java method ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Method class that represents a
-// compile time representation of a Java class method (java.lang.Method).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMMETHOD_H
-#define LLVM_JAVA_VMMETHOD_H
-
-#include <llvm/Java/ClassFile.h>
-
-namespace llvm {
-
-  class Constant;
-  class Function;
-  class FunctionType;
-
-}
-
-namespace llvm { namespace Java {
-
-  class VMClass;
-
-  class VMMethod {
-    const VMClass* parent_;
-    const Method* method_;
-    Function* function_;
-    Function* bridgeFunction_;
-
-    int index_;
-
-    void init();
-
-    friend class VMClass;
-    // Interface for VMClass.
-
-    // Create statically bound method reference.
-    VMMethod(const VMClass* parent, const Method* method);
-
-    // Create dynamically bound method reference.
-    VMMethod(const VMClass* parent, const Method* method, int index);
-
-  public:
-    const VMClass* getParent() const { return parent_; }
-    const Method* getMethod() const { return method_; }
-    Function* getFunction() const { return function_; }
-    int getMethodIndex() const { return index_; }
-
-    bool isStaticallyBound() const {
-      return isStatic() || isPrivate() || getName()[0] == '<';
-    }
-    bool isDynamicallyBound() const { return !isStaticallyBound(); }
-    bool isAbstract() const { return method_->isAbstract(); }
-    bool isNative() const { return method_->isNative(); }
-    bool isPrivate() const { return method_->isPrivate(); }
-    bool isStatic() const { return method_->isStatic(); }
-
-    // FIXME: remove when transition is complete.
-    const std::string& getName() const { return method_->getName()->str(); }
-    const std::string& getDescriptor() const {
-      return method_->getDescriptor()->str();
-    }
-    std::string getNameAndDescriptor() const {
-      return getName() + getDescriptor();
-    }
-
-    llvm::Constant* buildMethodDescriptor() const;
-    llvm::Constant* getBridgeFunction() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMMETHOD_H
diff --git a/java/lib/Makefile b/java/lib/Makefile
deleted file mode 100755
index 9448a33..0000000
--- a/java/lib/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- lib/Makefile ----------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := ClassFile Compiler Transforms
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Transforms/AddStubs.cpp b/java/lib/Transforms/AddStubs.cpp
deleted file mode 100644
index efb50ca..0000000
--- a/java/lib/Transforms/AddStubs.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===- AddStubs.cpp - Add Stubs Pass --------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a stub adder pass. Because class2llvm is not able to
-// compile all of java at the moment, this pass is used to add dummy returns
-// to those functions.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "addstubs"
-
-#include <llvm/Pass.h>
-#include <llvm/Function.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <llvm/Instructions.h>
-#include <llvm/Constants.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-
-namespace {
-
-  static Constant* ALL_ONES = ConstantUInt::getAllOnesValue(Type::ULongTy);
-
-  struct AddStubs : public ModulePass {
-    virtual bool runOnModule(Module &M) {
-      for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)
-        if (F->empty() &&
-            (F->getName().find("java") != std::string::npos ||
-             F->getName().find("gnu") != std::string::npos)) {
-          DEBUG(std::cerr << "Stubbing out: " << F->getName() << '\n');
-          BasicBlock* entry = new BasicBlock("entry", F);
-          if (F->getReturnType() == Type::VoidTy)
-            new ReturnInst(NULL, entry);
-          else
-            new ReturnInst(
-              new CastInst(ALL_ONES, F->getReturnType(), "dummy-value", entry),
-              entry);
-        }
-      return true;
-    }
-  };
-  RegisterOpt<AddStubs> X("addstubs", "Add Stubs pass");
-}
diff --git a/java/lib/Transforms/Makefile b/java/lib/Transforms/Makefile
deleted file mode 100644
index d6ccfc7..0000000
--- a/java/lib/Transforms/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- lib/Transforms/Makefile -----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-LIBRARYNAME = LLVMJavaTransforms
-SHARED_LIBRARY = 1
-LOADABLE_MODULE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/runtime/Makefile b/java/runtime/Makefile
deleted file mode 100644
index 506203e..0000000
--- a/java/runtime/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##==-- runtime/Makefile -----------------------------  -*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-CPPFLAGS+=-I$(PROJ_SRC_ROOT)/include/llvm/Java
-BYTECODE_LIBRARY=1
-LIBRARYNAME=jrt
-
-include $(LEVEL)/Makefile.common
diff --git a/java/runtime/jni.c b/java/runtime/jni.c
deleted file mode 100644
index 60f5b22..0000000
--- a/java/runtime/jni.c
+++ /dev/null
@@ -1,559 +0,0 @@
-#include "runtime.h"
-#include <stdlib.h>
-#include <string.h>
-
-/* The implementation of JNI functions */
-
-/* Class operations */
-
-static jclass find_class(JNIEnv* env, const char* name) {
-  return GET_CLASS(llvm_java_find_class_record(name));
-}
-
-static jclass get_superclass(JNIEnv* env, jclass clazz) {
-  return GET_CLASS(llvm_java_get_superclass_record(GET_CLASS_RECORD(clazz)));
-}
-
-static jboolean is_assignable_from(JNIEnv* env, jclass c1, jclass c2) {
-  return llvm_java_is_assignable_from(GET_CLASS_RECORD(c1),
-                                      GET_CLASS_RECORD(c2));
-}
-
-/* Exceptions */
-
-static jint throw(JNIEnv* env, jthrowable obj) {
-  return llvm_java_throw(obj);
-}
-
-/* Global and local references */
-
-/* Weak global references */
-
-/* Object operations */
-
-static jboolean is_same_object(JNIEnv* env, jobject o1, jobject o2) {
-  return o1 == o2;
-}
-
-static jclass get_object_class(JNIEnv* env, jobject obj) {
-  return GET_CLASS(llvm_java_get_class_record(obj));
-}
-
-static jboolean is_instance_of(JNIEnv* env, jobject obj, jclass c) {
-  return llvm_java_is_instance_of(obj, GET_CLASS_RECORD(c));
-}
-
-/* Accessing fields of objects */
-
-static jfieldID get_fieldid(JNIEnv *env,
-                            jclass clazz,
-                            const char *name,
-                            const char *sig) {
-  int nameLength;
-  int i;
-  const char* fieldDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the fieldDescriptors array and retrieve
-   * the offset of the field */
-  nameLength = strlen(name);
-  for (i = 0; (fieldDescriptor = cr->typeinfo.fieldDescriptors[i]); ++i)
-    if (strncmp(name, fieldDescriptor, nameLength) == 0 &&
-        strcmp(sig, fieldDescriptor+nameLength) == 0)
-      return cr->typeinfo.fieldOffsets[i];
-
-  return 0;
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE get_##TYPE##_field(JNIEnv* env, \
-                                    jobject obj, \
-                                    jfieldID fid) { \
-    return *(j##TYPE*) (((char*)obj) + fid); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static void set_##TYPE##_field(JNIEnv* env, \
-                                 jobject obj, \
-                                 jfieldID fid, \
-                                 j##TYPE value) { \
-    *(j##TYPE*) (((char*)obj) + fid) = value; \
-  }
-#include "types.def"
-
-/* Calling instance methods */
-
-static jmethodID get_methodid(JNIEnv *env,
-                              jclass clazz,
-                              const char *name,
-                              const char *sig) {
-  int nameLength;
-  int i;
-  const char* methodDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (methodDescriptor = cr->typeinfo.methodDescriptors[i]); ++i)
-    if (strncmp(name, methodDescriptor, nameLength) == 0 &&
-        strcmp(sig, methodDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-static void call_void_method_v(JNIEnv* env,
-                               jobject obj,
-                               jmethodID methodID,
-                               va_list args) {
-  typedef void (*BridgeFunPtr)(jobject obj, va_list);
-  struct llvm_java_class_record* cr = llvm_java_get_class_record(obj);
-
-  BridgeFunPtr f = (BridgeFunPtr) cr->typeinfo.methodBridges[methodID];
-  f(obj, args);
-}
-
-static void call_void_method(JNIEnv* env,
-                             jobject obj,
-                             jmethodID methodID,
-                             ...) {
-  va_list args;
-  va_start(args, methodID);
-  call_void_method_v(env, obj, methodID, args);
-  va_end(args);
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_##TYPE##_method_v(JNIEnv* env, \
-                                        jobject obj, \
-                                        jmethodID methodID, \
-                                        va_list args) { \
-    typedef j##TYPE (*BridgeFunPtr)(jobject obj, va_list); \
-    struct llvm_java_class_record* cr = llvm_java_get_class_record(obj); \
-    BridgeFunPtr f = \
-      (BridgeFunPtr) cr->typeinfo.methodBridges[methodID]; \
-    return f(obj, args); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_##TYPE##_method(JNIEnv* env, \
-                                      jobject obj, \
-                                      jmethodID methodID, \
-                                      ...) { \
-    va_list args; \
-    va_start(args, methodID); \
-    j##TYPE result = \
-      call_##TYPE##_method_v(env, obj, methodID, args); \
-    va_end(args); \
-    return result; \
-  }
-#include "types.def"
-
-/* Accessing static fields */
-
-static jfieldID get_static_fieldid(JNIEnv *env,
-                                   jclass clazz,
-                                   const char *name,
-                                   const char *sig) {
-  int nameLength;
-  int i;
-  const char* fieldDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (fieldDescriptor = cr->typeinfo.staticFieldDescriptors[i]); ++i)
-    if (strncmp(name, fieldDescriptor, nameLength) == 0 &&
-        strcmp(sig, fieldDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE get_static_##TYPE##_field(JNIEnv* env, \
-                                           jclass clazz, \
-                                           jfieldID fid) { \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    return *(j##TYPE*) cr->typeinfo.staticFields[fid]; \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static void set_static_##TYPE##_field(JNIEnv* env, \
-                                        jclass clazz, \
-                                        jfieldID fid, \
-                                        j##TYPE value) { \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    *(j##TYPE*) cr->typeinfo.staticFields[fid] = value; \
-  }
-#include "types.def"
-
-/* Calling static methods */
-
-static jmethodID get_static_methodid(JNIEnv *env,
-                                     jclass clazz,
-                                     const char *name,
-                                     const char *sig) {
-  int nameLength;
-  int i;
-  const char* methodDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (methodDescriptor = cr->typeinfo.staticMethodDescriptors[i]); ++i)
-    if (strncmp(name, methodDescriptor, nameLength) == 0 &&
-        strcmp(sig, methodDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-static void call_static_void_method_v(JNIEnv* env,
-                                      jclass clazz,
-                                      jmethodID methodID,
-                                      va_list args) {
-  typedef void (*BridgeFunPtr)(jclass clazz, va_list);
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  BridgeFunPtr f = (BridgeFunPtr) cr->typeinfo.staticMethodBridges[methodID];
-  f(clazz, args);
-}
-
-static void call_static_void_method(JNIEnv* env,
-                                    jclass clazz,
-                                    jmethodID methodID,
-                                    ...) {
-  va_list args;
-  va_start(args, methodID);
-  call_static_void_method_v(env, clazz, methodID, args);
-  va_end(args);
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_static_##TYPE##_method_v(JNIEnv* env, \
-                                               jclass clazz, \
-                                               jmethodID methodID, \
-                                               va_list args) { \
-    typedef j##TYPE (*BridgeFunPtr)(jclass clazz, va_list); \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    BridgeFunPtr f = \
-      (BridgeFunPtr) cr->typeinfo.staticMethodBridges[methodID]; \
-    return f(clazz, args); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_static_##TYPE##_method(JNIEnv* env, \
-                                             jclass clazz, \
-                                             jmethodID methodID, \
-                                             ...) { \
-    va_list args; \
-    va_start(args, methodID); \
-    j##TYPE result = \
-      call_static_##TYPE##_method_v(env, clazz, methodID, args); \
-    va_end(args); \
-    return result; \
-  }
-#include "types.def"
-
-/* String operations */
-
-/* Array operations */
-
-static jint get_array_length(JNIEnv* env, jarray array) {
-  return ((struct llvm_java_booleanarray*) array)->length;
-}
-
-static jobject get_object_array_element(JNIEnv* env, jarray array, jsize i) {
-  return ((struct llvm_java_objectarray*) array)->data[i];
-}
-
-static void set_object_array_element(JNIEnv* env,
-                                     jarray array,
-                                     jsize i,
-                                     jobject value) {
-  ((struct llvm_java_objectarray*) array)->data[i] = value;
-}
-
-#define HANDLE_NATIVE_TYPE(TYPE) \
-  static j ## TYPE* get_##TYPE##_array_elements( \
-    JNIEnv* env, \
-    jarray array, \
-    jboolean* isCopy) { \
-    if (isCopy) \
-      *isCopy = JNI_FALSE; \
-    return ((struct llvm_java_ ##TYPE## array*) array)->data; \
-  }
-#include "types.def"
-
-#define HANDLE_NATIVE_TYPE(TYPE) \
-  static void release_ ##TYPE## _array_elements( \
-    JNIEnv* env, \
-    jarray array, \
-    j##TYPE* elements, \
-    jint mode) { \
-    switch (mode) { \
-    case 0: \
-    case JNI_COMMIT: \
-    case JNI_ABORT: \
-      return; \
-    default: \
-      abort(); \
-    } \
-  }
-#include "types.def"
-
-/* Register native methods */
-
-/* Monitor operations */
-
-/* NIO support */
-
-/* Reflection support */
-
-/* Java VM interface */
-
-/* The JNI interface definition */
-static const struct JNINativeInterface llvm_java_JNINativeInterface = {
-  NULL, /* 0 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  &find_class,
-  NULL,
-  NULL,
-  NULL,
-  &get_superclass,
-  &is_assignable_from,
-  NULL,
-  &throw,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 20 */
-  NULL,
-  NULL,
-  NULL,
-  &is_same_object,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 30 */
-  &get_object_class,
-  &is_instance_of,
-  &get_methodid,
-  &call_object_method,
-  &call_object_method_v,
-  NULL,
-  &call_boolean_method,
-  &call_boolean_method_v,
-  NULL,
-  &call_byte_method,
-  &call_byte_method_v,
-  NULL,
-  &call_char_method,
-  &call_char_method_v,
-  NULL,
-  &call_short_method,
-  &call_short_method_v,
-  NULL,
-  &call_int_method,
-  &call_int_method_v,
-  NULL,
-  &call_long_method,
-  &call_long_method_v,
-  NULL,
-  &call_float_method,
-  &call_float_method_v,
-  NULL,
-  &call_double_method,
-  &call_double_method_v,
-  NULL, /* 60 */
-  &call_void_method,
-  &call_void_method_v,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 70 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 80 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 90 */
-  NULL,
-  NULL,
-  NULL,
-  &get_fieldid,
-  &get_object_field,
-  &get_boolean_field,
-  &get_byte_field,
-  &get_char_field,
-  &get_short_field,
-  &get_int_field,
-  &get_long_field,
-  &get_float_field,
-  &get_double_field,
-  &set_object_field,
-  &set_boolean_field,
-  &set_byte_field,
-  &set_char_field,
-  &set_short_field,
-  &set_int_field,
-  &set_long_field,
-  &set_float_field,
-  &set_double_field,
-  &get_static_methodid,
-  &call_static_object_method,
-  &call_static_object_method_v,
-  NULL,
-  &call_static_boolean_method,
-  &call_static_boolean_method_v,
-  NULL,
-  &call_static_byte_method,
-  &call_static_byte_method_v,
-  NULL,
-  &call_static_char_method,
-  &call_static_char_method_v,
-  NULL,
-  &call_static_short_method,
-  &call_static_short_method_v,
-  NULL,
-  &call_static_int_method,
-  &call_static_int_method_v,
-  NULL,
-  &call_static_long_method,
-  &call_static_long_method_v,
-  NULL,
-  &call_static_float_method,
-  &call_static_float_method_v,
-  NULL,
-  &call_static_double_method,
-  &call_static_double_method_v,
-  NULL, /* 140 */
-  NULL,
-  NULL,
-  NULL,
-  &get_static_fieldid,
-  &get_static_object_field,
-  &get_static_boolean_field,
-  &get_static_byte_field,
-  &get_static_char_field,
-  &get_static_short_field,
-  &get_static_int_field,
-  &get_static_long_field,
-  &get_static_float_field,
-  &get_static_double_field,
-  &set_static_object_field,
-  &set_static_boolean_field,
-  &set_static_byte_field,
-  &set_static_char_field,
-  &set_static_short_field,
-  &set_static_int_field,
-  &set_static_long_field,
-  &set_static_float_field,
-  &set_static_double_field,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 170 */
-  &get_array_length,
-  NULL,
-  &get_object_array_element,
-  &set_object_array_element,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 180 */
-  NULL,
-  NULL,
-  &get_boolean_array_elements,
-  &get_byte_array_elements,
-  &get_char_array_elements,
-  &get_short_array_elements,
-  &get_int_array_elements,
-  &get_long_array_elements,
-  &get_float_array_elements,
-  &get_double_array_elements,
-  &release_boolean_array_elements,
-  &release_byte_array_elements,
-  &release_char_array_elements,
-  &release_short_array_elements,
-  &release_int_array_elements,
-  &release_long_array_elements,
-  &release_float_array_elements,
-  &release_double_array_elements,
-  NULL,
-  NULL, /* 200 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 210 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 220 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 230 */
-  NULL,
-};
-
-const JNIEnv llvm_java_JNIEnv = &llvm_java_JNINativeInterface;
diff --git a/java/runtime/runtime.c b/java/runtime/runtime.c
deleted file mode 100644
index 07c620d..0000000
--- a/java/runtime/runtime.c
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "runtime.h"
-#include <stdlib.h>
-#include <string.h>
-
-jint llvm_java_is_primitive_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize == -2;
-}
-
-jint llvm_java_is_interface_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize == -1;
-}
-
-jint llvm_java_is_array_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize > 0;
-}
-
-struct llvm_java_class_record* llvm_java_get_class_record(jobject obj) {
-  return obj->classRecord;
-}
-
-void llvm_java_set_class_record(jobject obj,
-                                struct llvm_java_class_record* cr) {
-  obj->classRecord = cr;
-}
-
-struct llvm_java_class_record*
-llvm_java_get_superclass_record(struct llvm_java_class_record* cr) {
-  /* If this is an interface or java/lang/Object return NULL. */
-  if (llvm_java_is_interface_class(cr) || cr->typeinfo.depth == 0)
-    return NULL;
-
-  return cr->typeinfo.superclasses[cr->typeinfo.depth - 1];
-}
-
-jboolean llvm_java_is_assignable_from(struct llvm_java_class_record* cr,
-                                      struct llvm_java_class_record* from) {
-  /* trivial case: class records are the same */
-  if (cr == from)
-    return JNI_TRUE;
-
-  /* if from is a primitive class then they must be of the same class */
-  if (llvm_java_is_primitive_class(from))
-    return cr == from;
-
-  /* if from is an interface class then the current class must
-   * implement that interface */
-  if (llvm_java_is_interface_class(from)) {
-    int index = from->typeinfo.interfaceIndex;
-    return (cr->typeinfo.interfaceIndex >= index &&
-            cr->typeinfo.interfaces[index]);
-  }
-
-  /* if from is an array class then the component types of must be
-   * assignable from */
-  if (llvm_java_is_array_class(from))
-    return (cr->typeinfo.component &&
-            llvm_java_is_assignable_from(cr->typeinfo.component,
-                                         from->typeinfo.component));
-
-  /* otherwise this is a class, check if from is a superclass of this
-   * class */
-  if (cr->typeinfo.depth > from->typeinfo.depth) {
-    int index = from->typeinfo.depth;
-    return cr->typeinfo.superclasses[index] == from;
-  }
-
-  return JNI_FALSE;
-}
-
-jboolean llvm_java_is_instance_of(jobject obj,
-                                  struct llvm_java_class_record* cr) {
-  /* trivial case: a null object can be cast to any type */
-  if (!obj)
-    return JNI_TRUE;
-
-  return llvm_java_is_assignable_from(obj->classRecord, cr);
-}
-
-jint llvm_java_throw(jthrowable obj) {
-  abort();
-}
-
-extern struct llvm_java_class_record* llvm_java_class_records;
-
-struct llvm_java_class_record*
-llvm_java_find_class_record(const char* name) {
-  struct llvm_java_class_record** cr = &llvm_java_class_records;
-  for (; *cr; ++cr)
-    if (strcmp((*cr)->typeinfo.name, name) == 0)
-      return *cr;
-
-  return NULL;
-}
-
-void Java_java_lang_VMSystem_arraycopy(JNIEnv *env, jobject clazz,
-                                       jobject srcObj, jint srcStart,
-                                       jobject dstObj, jint dstStart,
-                                       jint length) {
-  struct llvm_java_bytearray* srcArray = (struct llvm_java_bytearray*) srcObj;
-  struct llvm_java_bytearray* dstArray = (struct llvm_java_bytearray*) dstObj;
-  unsigned nbytes = length * srcObj->classRecord->typeinfo.elementSize;
-
-  jbyte* src = srcArray->data;
-  jbyte* dst = dstArray->data;
-
-  // FIXME: Need to perform a proper type check here.
-  if (srcObj->classRecord->typeinfo.elementSize !=
-      dstObj->classRecord->typeinfo.elementSize)
-    llvm_java_throw(NULL);
-
-  src += srcStart * srcObj->classRecord->typeinfo.elementSize;
-  dst += dstStart * dstObj->classRecord->typeinfo.elementSize;
-
-  memmove(dst, src, nbytes);
-}
-
-void Java_gnu_classpath_VMSystemProperties_preInit(JNIEnv *env, jobject clazz,
-                                                   jobject properties) {
-
-}
-
-typedef void (*ClassInitializerFunction)(void);
-
-extern const ClassInitializerFunction llvm_java_class_initializers;
-
-extern void llvm_java_main(int, char**);
-
-int main(int argc, char** argv) {
-  const ClassInitializerFunction* classInit = &llvm_java_class_initializers;
-  for (; *classInit; ++classInit)
-    (*classInit)();
-
-  llvm_java_main(argc, argv);
-  return 0;
-}
diff --git a/java/runtime/runtime.h b/java/runtime/runtime.h
deleted file mode 100644
index 411ba7d..0000000
--- a/java/runtime/runtime.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <llvm/Java/jni.h>
-
-/* For now we cast a java/lang/Class reference to a class record. When
- * we get proper java/lang/Class representation this will be a field
- * access. */
-#define GET_CLASS_RECORD(clazz) ((struct llvm_java_class_record*) clazz)
-#define GET_CLASS(classRecord) ((jclass) classRecord)
-
-const JNIEnv llvm_java_JNIEnv;
-
-struct llvm_java_object_base;
-struct llvm_java_object_header;
-struct llvm_java_class_record;
-struct llvm_java_typeinfo;
-
-struct llvm_java_object_header {
-  /* gc info, hash info, locking */
-    int dummy;
-};
-
-struct llvm_java_object_base {
-  struct llvm_java_object_header header;
-  struct llvm_java_class_record* classRecord;
-};
-
-struct llvm_java_typeinfo {
-  /* The name of this class */
-  const char* name;
-
-  /* The number of super classes to java.lang.Object. */
-  jint depth;
-
-  /* The super class records up to java.lang.Object. */
-  struct llvm_java_class_record** superclasses;
-
-  /* If an interface its interface index, otherwise the last interface
-   * index implemented by this class. */
-  jint interfaceIndex;
-
-  /* The interface class records this class implements. */
-  struct llvm_java_class_record** interfaces;
-
-  /* The component class record if this is an array class, null
-   * otherwise. */
-  struct llvm_java_class_record* component;
-
-  /* If an array the size of its elements, otherwise 0 for classes, -1
-   * for interfaces and -2 for primitive classes. */
-  jint elementSize;
-
-  /* A null terminated array of strings describing the member fields
-   * of this class. A field description is the concatenation of its
-   * name with its descriptor. */
-  const char** fieldDescriptors;
-
-  /* An array of offsets to fields. This is indexed the same way as
-   * the field descriptor array. */
-  unsigned* fieldOffsets;
-
-  /* A null terminated array of strings describing the static fields
-   * of this class. A field description is the concatenation of its
-   * name with its descriptor. */
-  const char** staticFieldDescriptors;
-
-  /* An array of pointers to static fields. This is indexed the
-   * same way as the static field descriptor array. */
-  void** staticFields;
-
-  /* A null terminated array of strings describing the dynamic methods
-     of this class. A method descriptor is the concatenation of its
-     name with its descriptor. */
-  const char** methodDescriptors;
-
-  /* An array of pointers to bridge functions. This is indexed the
-   * same way as the dynamic method descriptor array. */
-  void** methodBridges;
-
-  /* A null terminated array of strings describing the static methods
-     of this class. A method descriptor is the concatenation of its
-     name with its descriptor. */
-  const char** staticMethodDescriptors;
-
-  /* An array of pointers to bridge functions. This is indexed the
-   * same way as the static method descriptor array. */
-  void** staticMethodBridges;
-};
-
-struct llvm_java_class_record {
-  struct llvm_java_typeinfo typeinfo;
-};
-
-#define HANDLE_TYPE(TYPE) \
-  struct llvm_java_##TYPE##array { \
-    struct llvm_java_object_base object_base; \
-    jint length; \
-    j##TYPE data[0]; \
-  };
-#include "types.def"
-
-struct llvm_java_class_record* llvm_java_find_class_record(const char* name);
-struct llvm_java_class_record* llvm_java_get_class_record(jobject obj);
-void llvm_java_set_class_record(jobject obj, struct llvm_java_class_record* cr);
-jboolean llvm_java_is_instance_of(jobject obj,
-                                  struct llvm_java_class_record* cr);
-struct llvm_java_class_record* llvm_java_get_superclass_record(
-  struct llvm_java_class_record* cr);
-jboolean llvm_java_is_assignable_from(struct llvm_java_class_record* cr,
-                                      struct llvm_java_class_record* from);
-jint llvm_java_throw(jthrowable obj);
diff --git a/java/test/Makefile b/java/test/Makefile
deleted file mode 100755
index 9bea413..0000000
--- a/java/test/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Makefile ---------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := Programs Regression
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Makefile.test b/java/test/Makefile.test
deleted file mode 100644
index bb0c8e6..0000000
--- a/java/test/Makefile.test
+++ /dev/null
@@ -1,120 +0,0 @@
-##==-- test/Makefile.test - Common make rules Java tests -*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-.PHONY: clean
-
-clean::
-	$(Verb)$(RM) -f a.out core
-	$(Verb)$(RM) -rf Output/
-
-# we don't want these files to be deleted by make, even if they are
-# intermediate results
-.PRECIOUS: %.linked.bc %.raw.bc %.ll %.llvm.bc %.llc
-
-# rule to link bytecode with runtime
-%.llvm %.llvm.bc: %.linked.bc $(LibDir)/libjrt.bca $(EXTRA_OBJS) $(LOPT)
-	$(Echo) Linking $< with the Java runtime
-	-$(Verb)$(GCCLD) -o=$*.llvm $< -L $(CFERuntimeLibDir) -L $(LibDir) $(EXTRA_OBJS)
-	-$(Verb)$(LOPT) -load $(LibDir)/LLVMJavaTransforms -addstubs -f -o=$*.stubbed.llvm.bc $*.llvm.bc
-	-$(Verb)$(MV) -f $*.stubbed.llvm.bc $*.llvm.bc
-
-# rule to link raw bytecode with runtime
-%.raw.llvm %.raw.llvm.bc: %.linked.bc $(LibDir)/libjrt.bca $(EXTRA_OBJS) $(LOPT)
-	$(Echo) Linking $< with the Java runtime \(no optimizations\)
-	-$(Verb)$(GCCLD) -disable-opt -o=$*.raw.llvm $< -L $(CFERuntimeLibDir) -L $(LibDir) $(EXTRA_OBJS)
-	-$(Verb)$(LOPT) -load $(LibDir)/LLVMJavaTransforms -addstubs -f -o=$*.stubbed.raw.llvm.bc $*.raw.llvm.bc
-	-$(Verb)$(MV) -f $*.stubbed.raw.llvm.bc $*.raw.llvm.bc
-
-# rule to make native executable
-%.llc.s: %.llvm.bc
-	-$(Verb)$(LLC) -f $< -o $@
-
-%.llc: %.llc.s
-	-$(Verb)$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
-
-# add function trace code
-%.tracef.llvm %.tracef.llvm.bc: %.llvm %.llvm.bc $(LOPT)
-	$(Echo) Adding function trace code to $<
-	$(Verb)$(CP) $*.llvm $*.tracef.llvm
-	$(Verb)$(LOPT) -tracem -tracedisablehashdisable -f -o=$*.tracef.llvm.bc $*.llvm.bc
-
-# rule to make assembly from bytecode
-%.dis-ll: %.bc
-	$(Echo) Disassembling $<
-	$(Verb)$(LDIS) -f -o=$@ $<
-
-# rule to compile java sources
-ifdef BUILD_JAVA_SOURCES
-JAVA_SOURCES := $(wildcard *.java)
-JAVA_TESTS := $(basename $(JAVA_SOURCES))
-PREFIXED_JAVA_TESTS := $(addprefix Output/, $(JAVA_TESTS))
-PREFIXED_CLASS_FILES := $(addsuffix .class/, $(PREFIXED_JAVA_TESTS))
-
-$(PREFIXED_CLASS_FILES): $(addsuffix .java,$(JAVA_TESTS))
-	$(Echo) Compiling $?
-	$(Verb)mkdir -p Output
-	$(Verb)$(JAVAC) -classpath Output -d Output $?
-	$(Verb)touch $@
-
-# Compiled bytecode for tests
-BYTECODE := $(addsuffix .llvm.bc, $(PREFIXED_JAVA_TESTS))
-
-# Output produced by tests
-NATIVE_OUTPUT := $(addsuffix .out-nat, $(PREFIXED_JAVA_TESTS))
-JIT_OUTPUT := $(addsuffix .out-jit, $(PREFIXED_JAVA_TESTS))
-LLC_OUTPUT := $(addsuffix .out-llc, $(PREFIXED_JAVA_TESTS))
-
-# Diffs of output produced by native and llvm-java runs
-JIT_DIFFS := $(addsuffix .diff-jit, $(PREFIXED_JAVA_TESTS))
-LLC_DIFFS := $(addsuffix .diff-llc, $(PREFIXED_JAVA_TESTS))
-
-# Keep the output and diffs
-.PRECIOUS: %.out-nat %.out-jit %.out-llc %.diff-jit %.diff-llc
-
-# rule to run a .class file with the jvm
-%.out-nat: %.class
-	-$(Verb)LD_LIBRARY_PATH=$(LibDir) $(JAVA) -cp Output $(notdir $*) \
-		> $*.out-nat 2>&1
-
-# rule to run a .class file with the llvm jit
-%.out-jit: %.llvm.bc
-	-$(Verb)$(LLI) $< > $*.out-jit 2>&1
-
-# rule to run a .class file with llc
-%.out-llc: %.llc
-	-$(Verb)./$< > $*.out-llc 2>&1
-
-# rule to diff test output
-%.diff-jit: %.out-nat %.out-jit
-	$(Verb)diff $*.out-nat $*.out-jit > $@ \
-	&& echo "PASS(jit): $(notdir $*)" \
-	|| echo "FAIL(jit): $(notdir $*)"
-
-%.diff-llc: %.out-nat %.out-llc
-	$(Verb)diff $*.out-nat $*.out-llc > $@ \
-	&& echo "PASS(llc): $(notdir $*)" \
-	|| echo "FAIL(llc): $(notdir $*)"
-
-GCCLD_PASS_ARGS := $(shell $(GCCLD) /dev/null -debug-pass=Arguments 2>&1 | \
-			grep 'Pass Arguments' | \
-			sed 's/Pass Arguments: //')
-
-# rules to invoke bugpoint
-%.bugpoint.lli: %.llvm.bc %.out-nat
-	$(LBUGPOINT) $< -run-lli -output=$*.out-nat
-
-%.bugpoint.llc: %.llvm.bc %.out-nat
-	$(LBUGPOINT) $< -run-llc -output=$*.out-nat
-
-%.bugpoint.gccld: %.raw.llvm.bc %.out-nat
-	$(LBUGPOINT) $< $(GCCLD_PASS_ARGS) -output=$*.out-nat
-
-all-local:: $(JIT_DIFFS)
-
-endif
diff --git a/java/test/Programs/Makefile b/java/test/Programs/Makefile
deleted file mode 100644
index 781e211..0000000
--- a/java/test/Programs/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Programs/Makefile ------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-PARALLEL_DIRS := SingleSource
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Programs/SingleSource/Makefile b/java/test/Programs/SingleSource/Makefile
deleted file mode 100644
index 5416487..0000000
--- a/java/test/Programs/SingleSource/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- test/Programs/SingleSource/Makefile -----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../..
-
-PARALLEL_DIRS := UnitTests
-
-EXTRA_DIST := Makefile.singlesrc
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Programs/SingleSource/Makefile.singlesrc b/java/test/Programs/SingleSource/Makefile.singlesrc
deleted file mode 100644
index c071047..0000000
--- a/java/test/Programs/SingleSource/Makefile.singlesrc
+++ /dev/null
@@ -1,27 +0,0 @@
-##==-- test/Programs/SingleSource/Makefile.singlesrc -----*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-# rule to build raw bytecode from a classfile
-%.raw.bc: %.class $(CLASS2LLVM)
-	$(Echo) Compiling $< to bytecode
-	-$(Verb)$(CLASS2LLVM) \
-	  -cp $(CLASSPATH_JAVA_LIBRARY_PATH):$(CLASSPATH):Output \
-	  $(subst /,.,$(*F)) -o=$@
-
-GCCAS_PASS_ARGS := $(shell \
-	 $(GCCAS) 2>&1 < /dev/null > /dev/null -debug-pass=Arguments | \
-			grep 'Pass Arguments' | \
-			sed 's/Pass Arguments: //')
-
-# rule to run gccas passes on raw bytecode
-%.linked.bc: %.raw.bc $(GCCAS)
-	$(Echo) Optimizing $<
-	-$(Verb)$(LOPT) $(GCCAS_PASS_ARGS) -f -o=$@ $<
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/test/Programs/SingleSource/UnitTests/AbstractCall.java b/java/test/Programs/SingleSource/UnitTests/AbstractCall.java
deleted file mode 100644
index 12ec869..0000000
--- a/java/test/Programs/SingleSource/UnitTests/AbstractCall.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class AbstractCall
-{
-    private static abstract class Abstract {
-        abstract int abstractMethod();
-
-        int concreteMethod() { return abstractMethod(); }
-    }
-
-    private static class Concrete extends Abstract {
-        int abstractMethod() { return 5; }
-    }
-
-    public static void main(String[] args) {
-        Abstract a = new Concrete();
-        Test.println(a.concreteMethod());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java b/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java
deleted file mode 100644
index 5df3ffb..0000000
--- a/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class AbstractClassDoesNotImplementInterface {
-
-    private static interface Interface {
-        public void iMethod();
-    }
-
-    private static abstract class Abstract implements Interface {
-
-    }
-
-    private static class Concrete extends Abstract {
-        public void iMethod() { Test.println(12345); }
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Concrete();
-        i.iMethod();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Arithm.java b/java/test/Programs/SingleSource/UnitTests/Arithm.java
deleted file mode 100644
index aac7ed5..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Arithm.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class Arithm
-{
-    public static void main(String[] args) {
-        int i = 53;
-
-        i += 53;
-        i *= 53;
-        i -= 53;
-        i >>= 3;
-        i /= 53;
-        i %= 53;
-        i = -i;
-        i <<= 3;
-        i |= 53;
-        i ^= 35;
-        i &= 53;
-        Test.println(i);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Array.java b/java/test/Programs/SingleSource/UnitTests/Array.java
deleted file mode 100644
index cada4cf..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Array.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Array
-{
-    public static void main(String[] args) {
-        int[] intArray = new int[10];
-
-        for (int i = 0, e = intArray.length; i != e; ++i)
-            intArray[i] = intArray.length - i;
-
-        Util.printlnElements(intArray);
-
-
-        Object[] objectArray = new Object[10];
-
-        for (int i = 0, e = objectArray.length; i != e; ++i)
-            objectArray[i] = intArray;
-
-        intArray = (int[]) objectArray[4];
-        Util.printlnElements(intArray);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java b/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java
deleted file mode 100644
index a8c9d2e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java
+++ /dev/null
@@ -1,60 +0,0 @@
-import java.util.*;
-
-public class ArrayCopy
-{
-    public static Random rand = new Random(0);
-
-    public static int min(int a, int b) {
-        return a < b ? a : b;
-    }
-
-    public static void fillArray(Object dst, int dstLength, Object src, int srcLength) {
-        for (int i = 0; i < dstLength; i += srcLength)
-            System.arraycopy(src, 0, dst, i, min(dstLength - i, srcLength));
-    }
-
-    public static void main(String[] args) {
-        int[] isrc = new int[10];
-        byte[] bsrc = new byte[10];
-        float[] fsrc = new float[10];
-        double[] dsrc = new double[10];
-        boolean[] zsrc = new boolean[10];
-        long[] lsrc = new long[10];
-        Object[] osrc = new Object[10];
-
-        for (int i = 0; i < 10; ++i) {
-            isrc[i] = rand.nextInt();
-            bsrc[i] = (byte) rand.nextInt();
-            fsrc[i] = rand.nextFloat();
-            dsrc[i] = rand.nextDouble();
-            zsrc[i] = rand.nextBoolean();
-            lsrc[i] = rand.nextLong();
-            osrc[i] = new Integer(rand.nextInt());
-        }
-
-        int[] idst = new int[7];
-        byte[] bdst = new byte[19];
-        float[] fdst = new float[28];
-        double[] ddst = new double[23];
-        boolean[] zdst = new boolean[17];
-        long[] ldst = new long[6];
-        Object[] odst = new Object[22];
-
-        fillArray(idst, idst.length, isrc, isrc.length);
-        fillArray(bdst, bdst.length, bsrc, bsrc.length);
-        fillArray(fdst, fdst.length, fsrc, fsrc.length);
-        fillArray(ddst, ddst.length, dsrc, dsrc.length);
-        fillArray(zdst, zdst.length, zsrc, zsrc.length);
-        fillArray(ldst, ldst.length, lsrc, lsrc.length);
-        fillArray(odst, odst.length, osrc, osrc.length);
-
-        Util.printlnElements(idst);
-        Util.printlnElements(bdst);
-        Util.printlnElements(fdst);
-        Util.printlnElements(ddst);
-        Util.printlnElements(zdst);
-        Util.printlnElements(ldst);
-        for (int i = 0; i < odst.length; ++i)
-            Test.println(((Integer)odst[i]).intValue());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java b/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java
deleted file mode 100644
index 0839375..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.util.*;
-
-public class ArrayCopyOverlap
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        byte[] array = new byte[100];
-
-        for (int i = 0; i < array.length; ++i) {
-            array[i] = (byte) rand.nextInt();
-        }
-
-        System.arraycopy(array, 0, array, 23, 59);
-
-        Util.printlnElements(array);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java b/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java
deleted file mode 100644
index 146fd66..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java
+++ /dev/null
@@ -1,47 +0,0 @@
-public class ArrayInstanceOf
-{
-    private static class Base
-    {
-        int foo() { return 0; }
-        int bar() { return 0; }
-    }
-
-    interface Interface
-    {
-        public int baz();
-    }
-
-    private static class Derived extends Base implements Interface
-    {
-        int foo() { return 1; }
-        public int baz() { return foo(); }
-
-    }
-
-    public static void main(String[] args) {
-	Object o = new Object[10];
-        Object b = new Base[10];
-        Object d = new Derived[10];
-        Object i = new Interface[10];
-
-        Test.println(o instanceof Object[]);
-        Test.println(o instanceof Base[]);
-        Test.println(o instanceof Interface[]);
-        Test.println(o instanceof Derived[]);
-
-        Test.println(b instanceof Object[]);
-        Test.println(b instanceof Base[]);
-        Test.println(b instanceof Interface[]);
-        Test.println(b instanceof Derived[]);
-
-        Test.println(d instanceof Object[]);
-        Test.println(d instanceof Base[]);
-        Test.println(d instanceof Interface[]);
-        Test.println(d instanceof Derived[]);
-
-        Test.println(i instanceof Object[]);
-        Test.println(i instanceof Base[]);
-        Test.println(i instanceof Interface[]);
-        Test.println(i instanceof Derived[]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/BigConstants.java b/java/test/Programs/SingleSource/UnitTests/BigConstants.java
deleted file mode 100644
index 09d7647..0000000
--- a/java/test/Programs/SingleSource/UnitTests/BigConstants.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class BigConstants
-{
-    public static void main(String[] args) {
-        int i = 1234567890;
-        long l = 1234567890123456789L;
-        float f = -1.23456789e10F;
-        double d = 1.23456789e100;
-
-        Test.println(i);
-        Test.println(l);
-        Test.println(f);
-        Test.println(d);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Call.java b/java/test/Programs/SingleSource/UnitTests/Call.java
deleted file mode 100644
index 35dc071..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Call.java
+++ /dev/null
@@ -1,26 +0,0 @@
-public class Call
-{
-    interface Interface {
-        public int i1();
-    }
-
-    private static abstract class Abstract {
-        protected abstract int a1();
-        public int c1() { return a1() * a2(); }
-        protected abstract int a2();
-    }
-
-    private static class Concrete extends Abstract implements Interface {
-        private int i;
-
-        Concrete(int i) { this.i = i; }
-        public int a1() { return i; }
-        public int a2() { return i + i; }
-        public int i1() { return c1(); }
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Concrete(10);
-        Test.println(i.i1());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections.java b/java/test/Programs/SingleSource/UnitTests/Collections.java
deleted file mode 100644
index 7aa0c73..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections.java
+++ /dev/null
@@ -1,33 +0,0 @@
-import java.util.*;
-
-public class Collections
-{
-    public static Random rand = new Random(0);
-
-    public static void addRandomIntsToCollection(Collection c) {
-        int size = rand.nextInt(45) + 5;
-        for (int i = 0; i < size; ++i)
-            c.add(new Integer(rand.nextInt()));
-    }
-
-    public static void printIntCollection(Collection c) {
-        for (Iterator i = c.iterator(); i.hasNext(); )
-            Test.println(((Integer)i.next()).intValue());
-    }
-
-    public static void main(String[] args) {
-        Collection c1 = new TreeSet();
-        addRandomIntsToCollection(c1);
-        Collection c2 = new TreeSet(c1);
-
-        Test.println(c1.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-        Test.println(c2.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-
-        Test.println(c1.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-        Test.println(c2.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections1.java b/java/test/Programs/SingleSource/UnitTests/Collections1.java
deleted file mode 100644
index 0e13a2e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections1.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections1
-{
-    public static void main(String[] args) {
-        Collection c1 = new LinkedList();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections2.java b/java/test/Programs/SingleSource/UnitTests/Collections2.java
deleted file mode 100644
index 40f145d..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections2.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections2
-{
-    public static void main(String[] args) {
-        Collection c1 = new TreeSet();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections3.java b/java/test/Programs/SingleSource/UnitTests/Collections3.java
deleted file mode 100644
index 837d15a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections3.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections3
-{
-    public static void main(String[] args) {
-        Collection c1 = new ArrayList();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections4.java b/java/test/Programs/SingleSource/UnitTests/Collections4.java
deleted file mode 100644
index 933fcaf..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections4.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Collections4
-{
-    public static void main(String[] args) {
-        Collection c1 = new ArrayList();
-        Collections.addRandomIntsToCollection(c1);
-        Collection c2 = new TreeSet(c1);
-        Collection c3 = new LinkedList();
-        Collections.addRandomIntsToCollection(c3);
-        Test.println(c1.containsAll(c2));
-        Test.println(c1.containsAll(c3));
-        Collections.addRandomIntsToCollection(c1);
-        Test.println(c1.containsAll(c2));
-        Test.println(c1.containsAll(c3));
-        Collections.printIntCollection(c1);
-        Collections.printIntCollection(c2);
-        Collections.printIntCollection(c3);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections5.java b/java/test/Programs/SingleSource/UnitTests/Collections5.java
deleted file mode 100644
index 96fb430..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections5.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Collections5
-{
-    public static void testList(List l) {
-        Collections.addRandomIntsToCollection(l);
-        Collections.printIntCollection(l);
-        java.util.Collections.rotate(l, Collections.rand.nextInt(50000));
-        Collections.printIntCollection(l);
-        java.util.Collections.shuffle(l, Collections.rand);
-        Collections.printIntCollection(l);
-        java.util.Collections.sort(l);
-        Collections.printIntCollection(l);
-    }
-
-    public static void main(String[] args) {
-        testList(new LinkedList());
-        testList(new ArrayList());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Equals.java b/java/test/Programs/SingleSource/UnitTests/Equals.java
deleted file mode 100644
index 3644ae9..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Equals.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Equals
-{
-    public static void main(String[] args) {
-        Object i1 = new Integer(123);
-        Object i2 = new Integer(123);
-        Object i3 = new Long(123);
-
-        Test.println(i1.equals(i1));
-        Test.println(i1 == i1);
-
-        Test.println(i1.equals(i2));
-        Test.println(i1 == i2);
-
-        Test.println(i1.equals(i3));
-        Test.println(i1 == i3);
-
-        Test.println(i1.equals(new Integer(123)));
-        Test.println(i1 == new Integer(123));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/FieldAccess.java b/java/test/Programs/SingleSource/UnitTests/FieldAccess.java
deleted file mode 100644
index 77e5822..0000000
--- a/java/test/Programs/SingleSource/UnitTests/FieldAccess.java
+++ /dev/null
@@ -1,27 +0,0 @@
-public class FieldAccess
-{
-    private static class Base {
-        int i = 1;
-        float f = 1.0F;
-    }
-
-    private static class Derived extends Base {
-        int i = -1;
-        double d = -1.0;
-    }
-
-    public static void main(String[] args) {
-        Derived b = new Derived();
-        b.d = 4.0;
-        b.i = 3;
-        b.f = 2.0F;
-        ((Base) b).i = 4;
-        ((Base) b).f = 1.0F;
-
-        Test.println(((Base)b).i);
-        Test.println(b.i);
-        Test.println(((Base)b).f);
-        Test.println(b.f);
-        Test.println(b.d);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/FloatCompare.java b/java/test/Programs/SingleSource/UnitTests/FloatCompare.java
deleted file mode 100644
index 1fbbe66..0000000
--- a/java/test/Programs/SingleSource/UnitTests/FloatCompare.java
+++ /dev/null
@@ -1,35 +0,0 @@
-public class FloatCompare
-{
-    private static float[] doubles =
-        new float[]{ -1.0f, 0.0f, -0.0f, 1.0f,
-                     Float.NaN,
-                     Float.NEGATIVE_INFINITY,
-                     Float.POSITIVE_INFINITY };
-
-    public static void main(String[] args) {
-        int greater = 0;
-        int equal = 0;
-        int less = 0;
-        int unordered = 0;
-
-        for (int i = 0; i < doubles.length; ++i) {
-            double a = doubles[i];
-            for (int j = 0; j < doubles.length; ++j) {
-                double b = doubles[j];
-                if (a > b)
-                    ++greater;
-                else if (a < b)
-                    ++less;
-                else if (a == b)
-                    ++equal;
-                else
-                    ++unordered;
-            }
-        }
-
-        Test.println(greater);
-        Test.println(equal);
-        Test.println(less);
-        Test.println(unordered);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ForLoop.java b/java/test/Programs/SingleSource/UnitTests/ForLoop.java
deleted file mode 100644
index 492912f..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ForLoop.java
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ForLoop
-{
-    public static void main(String[] args) {
-        int sum = 0;
-        for (int i = 0; i < 100; ++i)
-            sum += i;
-
-        Test.println(sum);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/If.java b/java/test/Programs/SingleSource/UnitTests/If.java
deleted file mode 100644
index 595549f..0000000
--- a/java/test/Programs/SingleSource/UnitTests/If.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class If
-{
-    private static boolean isZero(int i) {
-        return i == 0;
-    }
-
-    public static void main(String[] args) {
-        int i = 0;
-        if (isZero(i))
-            Test.println(0);
-        else
-            Test.println(1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InnerClass.java b/java/test/Programs/SingleSource/UnitTests/InnerClass.java
deleted file mode 100644
index dedc6b2..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InnerClass.java
+++ /dev/null
@@ -1,34 +0,0 @@
-public class InnerClass
-{
-    private int i = 1024;
-    private boolean b = true;
-
-    public int i1() { return i; }
-    public boolean b1() { return b; }
-
-    InnerClassInner getInner() {
-        return new InnerClassInner();
-    }
-
-    public class InnerClassInner {
-        private int i = 512;
-        private boolean b = false;
-
-        public int ii1() { return i1(); }
-        public int ii2() { return i; }
-        public boolean bb1() { return b1(); }
-        public boolean bb2() { return b; }
-    }
-
-    public static void main(String[] args) {
-        InnerClass i = new InnerClass();
-        Test.println(i.i1());
-        Test.println(i.b1());
-
-        InnerClassInner ii = i.getInner();
-        Test.println(ii.ii1());
-        Test.println(ii.bb1());
-        Test.println(ii.ii2());
-        Test.println(ii.bb2());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InstanceOf.java b/java/test/Programs/SingleSource/UnitTests/InstanceOf.java
deleted file mode 100644
index 6458df4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InstanceOf.java
+++ /dev/null
@@ -1,38 +0,0 @@
-public class InstanceOf
-{
-    private static class Base
-    {
-        int foo() { return 0; }
-        int bar() { return 0; }
-    }
-
-    interface Interface
-    {
-        public int baz();
-    }
-
-    private static class Derived extends Base implements Interface
-    {
-        int foo() { return 1; }
-        public int baz() { return foo(); }
-
-    }
-
-    public static void main(String[] args) {
-        Base aa = new Base();
-        Base ab = new Derived();
-        Interface bb = new Derived();
-
-        Test.println(aa instanceof Base);
-        Test.println(aa instanceof Derived);
-        Test.println(aa instanceof Interface);
-
-        Test.println(ab instanceof Base);
-        Test.println(ab instanceof Derived);
-        Test.println(ab instanceof Interface);
-
-        Test.println(bb instanceof Base);
-        Test.println(bb instanceof Derived);
-        Test.println(bb instanceof Interface);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java b/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java
deleted file mode 100644
index 2500a7a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java
+++ /dev/null
@@ -1,27 +0,0 @@
-public class InterfaceCall
-{
-    private static class Base implements Interface
-    {
-        public int foo() { return 1; }
-        public int bar() { return 2; }
-    }
-
-    private static class Derived extends Base
-    {
-        public int foo() { return 100; }
-        public int bar() { return super.bar() + super.foo(); }
-    }
-
-    interface Interface
-    {
-        public int bar();
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Base();
-        Test.println(i.bar());
-
-        i = new Derived();
-        Test.println(i.bar());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java b/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java
deleted file mode 100644
index 773b036..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java
+++ /dev/null
@@ -1,12 +0,0 @@
-public class InterfaceStaticInitializers
-{
-    public static class I1 {
-        public static int i1 = 1;
-        public static int i2 = 2;
-    }
-
-    public static void main(String[] args) {
-        Test.println(I1.i1);
-        Test.println(I1.i2);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists.java b/java/test/Programs/SingleSource/UnitTests/Lists.java
deleted file mode 100644
index 0d80087..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists.java
+++ /dev/null
@@ -1,16 +0,0 @@
-import java.util.*;
-
-public class Lists
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        while (!llist.isEmpty()) {
-            Integer I = (Integer) llist.removeFirst();
-            Test.println(I.intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists1.java b/java/test/Programs/SingleSource/UnitTests/Lists1.java
deleted file mode 100644
index 1556dec..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists1.java
+++ /dev/null
@@ -1,22 +0,0 @@
-import java.util.*;
-
-public class Lists1
-{
-    public static void main(String[] args) {
-        List list = new LinkedList();
-        for (int i = 0; i < 17; ++i) {
-            list.add(new Integer(i));
-        }
-
-        Test.println(list.isEmpty());
-        Object[] array = list.toArray();
-
-        for (int i = 0; i < array.length; ++i) {
-            Test.println(((Integer) array[i]).equals(list.get(i)));
-        }
-
-        list.clear();
-
-        Test.println(list.isEmpty());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists2.java b/java/test/Programs/SingleSource/UnitTests/Lists2.java
deleted file mode 100644
index de9c5e5..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists2.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Lists2
-{
-    public static void main(String[] args) {
-        List llist = new LinkedList();
-        Test.println(llist.isEmpty());
-
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-        Test.println(llist.isEmpty());
-
-        while (!llist.isEmpty()) {
-            Integer I = (Integer) llist.remove(0);
-            Test.println(I.intValue());
-        }
-        Test.println(llist.isEmpty());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists3.java b/java/test/Programs/SingleSource/UnitTests/Lists3.java
deleted file mode 100644
index 6f8d2ea..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists3.java
+++ /dev/null
@@ -1,25 +0,0 @@
-import java.util.*;
-
-public class Lists3
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        Test.println(llist.contains(new Integer(5)));
-        Test.println(llist.getFirst().equals(new Integer(0)));
-        Test.println(llist.getLast().equals(new Integer(9)));
-        Test.println(llist.indexOf(new Integer(3)));
-        Test.println(llist.remove(new Integer(3)));
-        Test.println(llist.indexOf(new Integer(3)));
-        Test.println(((Integer)llist.removeFirst()).intValue());
-        Test.println(((Integer)llist.removeLast()).intValue());
-        Test.println(llist.size());
-
-        for (int i = 0; i < llist.size(); ++i) {
-            Test.println(((Integer)llist.get(i)).intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists4.java b/java/test/Programs/SingleSource/UnitTests/Lists4.java
deleted file mode 100644
index 5bea3df..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists4.java
+++ /dev/null
@@ -1,12 +0,0 @@
-import java.util.*;
-
-public class Lists4
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        llist.add(null);
-        Test.println(llist.getFirst() == null);
-        Test.println(llist.contains(null));
-        Test.println(llist.get(0) == null);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists5.java b/java/test/Programs/SingleSource/UnitTests/Lists5.java
deleted file mode 100644
index ab508fc..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists5.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Lists5
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        Iterator i = llist.iterator();
-        Test.println(i.hasNext());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists6.java b/java/test/Programs/SingleSource/UnitTests/Lists6.java
deleted file mode 100644
index 5b6d952..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists6.java
+++ /dev/null
@@ -1,16 +0,0 @@
-import java.util.*;
-
-public class Lists6
-{
-    public static void main(String[] args) {
-        List llist = new ArrayList();
-        for (int i = 0; i < 15; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        for (Iterator i = llist.iterator(); i.hasNext(); ) {
-            Integer I = (Integer) i.next();
-            Test.println(I.intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/LongCompare.java b/java/test/Programs/SingleSource/UnitTests/LongCompare.java
deleted file mode 100644
index 93c2ff4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/LongCompare.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class LongCompare
-{
-    public static void main(String[] args) {
-        long l1 = 123456789123456789L;
-        long l2 = 987654321987654321L;
-
-        Test.println(l1);
-        Test.println(l2);
-        Test.println(l1 == l2);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java b/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java
deleted file mode 100644
index 1a2cb0e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class LookupSwitch
-{
-    public static void main(String[] args) {
-        switch (128) {
-        case 0: Test.println(255);
-        case 128: Test.println(128);
-        case 255: Test.println(0);
-        default: Test.println(-1);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Makefile b/java/test/Programs/SingleSource/UnitTests/Makefile
deleted file mode 100644
index 8c85dda..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-##===- test/Programs/SingleSource/UnitTests/Makefile -------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../../..
-
-CPPFLAGS+=-I$(PROJ_SRC_ROOT)/include/llvm/Java
-BYTECODE_LIBRARY=1
-SHARED_LIBRARY=1
-LIBRARYNAME=test
-BUILT_SOURCES = Test.h
-
-include $(LEVEL)/Makefile.common
-
-EXTRA_OBJS = $(LibName.BCA)
-
-BUILD_JAVA_SOURCES=1
-
-include ../Makefile.singlesrc
-
-Test.h: Output/Test.class
-	$(Verb)$(Echo) Creating JNI header for class $(basename $(notdir $<))
-	$(Verb)$(RM) -f $@
-	$(Verb)$(JAVAH) -classpath Output Test
-
-clean::
-	$(Verb)rm -f Test.h
diff --git a/java/test/Programs/SingleSource/UnitTests/Maps.java b/java/test/Programs/SingleSource/UnitTests/Maps.java
deleted file mode 100644
index 8a2a5a4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Maps.java
+++ /dev/null
@@ -1,25 +0,0 @@
-import java.util.*;
-
-public class Maps
-{
-    public static Random rand = new Random(0);
-
-    public static void fillMapWithRandomInts(Map m) {
-        int size = rand.nextInt(45) + 5;
-        for (int i = 0; i < size; ++i)
-            m.put(new Integer(i), new Integer(rand.nextInt()));
-    }
-
-    public static void printIntMap(Map m) {
-        for (int i = 0; i < m.size(); ++i) {
-            Integer I = (Integer) m.get(new Integer(i));
-            Test.println(I.intValue());
-        }
-    }
-
-    public static void main(String[] args) {
-        TreeMap map = new TreeMap();
-        fillMapWithRandomInts(map);
-        printIntMap(map);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Maps1.java b/java/test/Programs/SingleSource/UnitTests/Maps1.java
deleted file mode 100644
index d7c1025..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Maps1.java
+++ /dev/null
@@ -1,12 +0,0 @@
-import java.util.*;
-
-public class Maps1
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        HashMap map = new HashMap();
-        Maps.fillMapWithRandomInts(map);
-        Maps.printIntMap(map);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/MultiArray.java b/java/test/Programs/SingleSource/UnitTests/MultiArray.java
deleted file mode 100644
index aacaf6e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/MultiArray.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class MultiArray
-{
-    public static void main(String[] args) {
-        int[][] intArray = new int[10][10];
-
-        for (int i = 0; i != intArray.length; ++i)
-            for (int j = 0; j != intArray[i].length; ++j)
-                intArray[i][j] = (j+1) * (i+1);
-
-        for (int i = 0; i != intArray.length; ++i)
-            for (int j = 0; j != intArray[i].length; ++j)
-                Test.println(intArray[i][j]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java b/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java
deleted file mode 100644
index cbe3425..0000000
--- a/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java
+++ /dev/null
@@ -1,43 +0,0 @@
-public class MultipleInterfaces
-{
-    interface I1
-    {
-        public boolean i1();
-    }
-
-    interface I2
-    {
-        public int i2();
-    }
-
-    interface I3 extends I1, I2
-    {
-        public float i3();
-    }
-
-    private static class C1 implements I3
-    {
-        public boolean i1() { return true; }
-        public int i2() { return 2; }
-        public float i3() { return 3.0F; }
-    }
-
-    public static void main(String[] args) {
-        C1 o = new C1();
-        I1 i1 = o;
-        I2 i2 = o;
-        I3 i3 = o;
-
-        Test.println(o.i1());
-        Test.println(o.i2());
-        Test.println(o.i3());
-
-        Test.println(i1.i1());
-
-        Test.println(i2.i2());
-
-        Test.println(i3.i1());
-        Test.println(i3.i2());
-        Test.println(i3.i3());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Numbers.java b/java/test/Programs/SingleSource/UnitTests/Numbers.java
deleted file mode 100644
index 54615b7..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Numbers.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class Numbers
-{
-    public static void main(String[] args) {
-        Number[] numbers = new Number[4];
-
-        numbers[0] = new Byte((byte)123);
-        numbers[1] = new Integer(1234567890);
-        numbers[2] = new Long(1234567890987654321L);
-        numbers[3] = new Short((short)12345);
-
-        for (int i = 0; i != numbers.length; ++i) {
-            Number n = numbers[i];
-            Test.println(n.longValue());
-            Test.println(n.doubleValue());
-         }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/PrivateCall.java b/java/test/Programs/SingleSource/UnitTests/PrivateCall.java
deleted file mode 100644
index 8f4bb9a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/PrivateCall.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class PrivateCall
-{
-    private int a;
-
-    public PrivateCall(int i) {
-        a = i;
-    }
-
-    private int foo(int i) {
-        return i * i / a;
-    }
-
-    public static void main(String[] args) {
-        PrivateCall p = new PrivateCall(7);
-        Test.println(p.foo(123));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/RandomTest.java b/java/test/Programs/SingleSource/UnitTests/RandomTest.java
deleted file mode 100644
index 82393f7..0000000
--- a/java/test/Programs/SingleSource/UnitTests/RandomTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-import java.util.*;
-
-public class RandomTest
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        for (int i = 0; i < 1000; ++i)
-            Test.println(rand.nextInt());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java b/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java
deleted file mode 100644
index 10aac27..0000000
--- a/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class StaticInitializers
-{
-    static int foo = 0;
-    static int bar = init();
-    static int baz = init();
-
-     static int init() {
-        return ++foo;
-    }
-
-    public static void main(String[] args) {
-        Test.println(foo);
-        Test.println(bar);
-        Test.println(baz);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Strings.java b/java/test/Programs/SingleSource/UnitTests/Strings.java
deleted file mode 100644
index 92b498e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Strings.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class Strings
-{
-    public static void main(String[] args) {
-        String foo = "foo";
-        String bar = "bar";
-        String foobar = "foobar";
-
-        Test.println(foobar == foo + bar);
-        Test.println(foobar.equals(foo + bar));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/TableSwitch.java b/java/test/Programs/SingleSource/UnitTests/TableSwitch.java
deleted file mode 100644
index bb32edb..0000000
--- a/java/test/Programs/SingleSource/UnitTests/TableSwitch.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class TableSwitch
-{
-    public static void main(String[] args) {
-        switch (4) {
-        case 0: Test.println(4);
-        case 1: Test.println(3);
-        case 2: Test.println(2);
-        case 3: Test.println(1);
-        case 4: Test.println(0);
-        default: Test.println(-1);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Test.java b/java/test/Programs/SingleSource/UnitTests/Test.java
deleted file mode 100644
index 908861b..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Test.java
+++ /dev/null
@@ -1,86 +0,0 @@
-public class Test
-{
-    // Fields to test JNI getFieldID and get<TYPE>Field functions.
-    public boolean z = false;
-    public int i = 123;
-    public long l = 1234567890123456789L;
-    public float f = 753.46F;
-    public double d = -46.75346;
-    public short s = 456;
-    public byte b = 78;
-
-    // Fields to test JNI getStaticFieldID and getStatic<TYPE>Field functions.
-    public static boolean Z = true;
-    public static int I = 321;
-    public static long L = 1234567890987654321L;
-    public static float F = 46.753F;
-    public static double D = -75346.46;
-    public static short S = 654;
-    public static byte B = 87;
-
-    // Methods to test JNI getMethodID and call<TYPE>Method functions.
-    public boolean z() { return z; }
-    public int i(int ii) { return i + ii; }
-    public long j(byte bb, short ss) { return l + bb + ss; }
-    public float f(byte bb) { return f + bb; }
-    public double d(int ii, long ll) { return d + ii + ll; }
-    public short s(double dd, byte bb) { return (short) (s + dd + bb); }
-    public byte b(short ss, float ff) { return (byte)(B + ff + ss); }
-
-    // Methods to test JNI getStaticMethodID and
-    // callStatic<TYPE>Method functions.
-    public static boolean Z() { return Z; }
-    public static int I(int jj) { return I + jj; }
-    public static long J(byte bb, short ss) { return L + bb + ss; }
-    public static float F(byte bb) { return F + bb; }
-    public static double D(int ii, long ll) { return D + ii + ll; }
-    public static short S(double dd, byte bb) { return (short) (S + dd + bb); }
-    public static byte B(short ss, float ff) { return (byte)(B + ff + ss); }
-
-    static {
-        System.loadLibrary("test");
-    }
-
-    public static native void println(boolean b);
-    public static native void println(int i);
-    public static native void println(long l);
-    public static native void println(float f);
-    public static native void println(double d);
-    public static void println(Object o) {
-        println(o.toString());
-    }
-    public static void println(String s) {
-        byte[] bytes = new byte[s.length()];
-        s.getBytes(0, s.length(), bytes, 0);
-        println(bytes);
-    }
-    private static native void println(byte[] a);
-
-    public native void printFields();
-    public static native void printStaticFields();
-    public native void printMethods();
-    public static native void printStaticMethods();
-
-    public static void main(String[] args) {
-        println(true);
-        println(false);
-        println(123);
-        println(-321);
-        println(1234567890123456789L);
-        println(-1234567890123456789L);
-        println(753.46F);
-        println(-753.46F);
-        println(753.46);
-        println(-753.46);
-        println(new byte[] { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' });
-        println("Hello world");
-        println("Printing static fields:");
-        printStaticFields();
-        println("Printing member fields:");
-        new Test().printFields();
-        println("Calling static methods:");
-        printStaticMethods();
-        println("Calling member methods:");
-        new Test().printMethods();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Util.java b/java/test/Programs/SingleSource/UnitTests/Util.java
deleted file mode 100644
index a949fd8..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Util.java
+++ /dev/null
@@ -1,184 +0,0 @@
-import java.util.*;
-
-public class Util
-{
-    private static Random rand = new Random(0);
-
-    public static void randomFill(boolean[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(boolean[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextBoolean();
-    }
-
-    public static void randomFill(byte[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(byte[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (byte) rand.nextInt();
-    }
-
-    public static void randomFill(char[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(char[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (char) rand.nextInt();
-    }
-
-    public static void randomFill(double[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(double[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextDouble();
-    }
-
-    public static void randomFill(float[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(float[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextFloat();
-    }
-
-    public static void randomFill(int[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(int[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextInt();
-    }
-
-    public static void randomFill(long[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(long[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextLong();
-    }
-
-    public static void randomFill(short[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(short[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (short) rand.nextInt();
-    }
-
-    public static void printlnElements(boolean[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(boolean[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(byte[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(byte[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(char[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(char[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(double[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(double[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(float[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(float[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(int[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(int[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(long[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(long[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(short[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(short[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void main(String[] args) {
-        boolean[] az = new boolean[rand.nextInt(100)];
-        randomFill(az);
-        printlnElements(az);
-
-        byte[] ab = new byte[rand.nextInt(100)];
-        randomFill(ab);
-        printlnElements(ab);
-
-        char[] ac = new char[rand.nextInt(100)];
-        randomFill(ac);
-        printlnElements(ac);
-
-        double[] ad = new double[rand.nextInt(100)];
-        randomFill(ad);
-        printlnElements(ad);
-
-        float[] af = new float[rand.nextInt(100)];
-        randomFill(af);
-        printlnElements(af);
-
-        int[] ai = new int[rand.nextInt(100)];
-        randomFill(ai);
-        printlnElements(ai);
-
-        long[] al = new long[rand.nextInt(100)];
-        randomFill(al);
-        printlnElements(al);
-
-        short[] as = new short[rand.nextInt(100)];
-        randomFill(as);
-        printlnElements(as);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/VTable.java b/java/test/Programs/SingleSource/UnitTests/VTable.java
deleted file mode 100644
index 2bbda18..0000000
--- a/java/test/Programs/SingleSource/UnitTests/VTable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-class VTableBase
-{
-    public int foo() { return 0; }
-    public int bar() { return 1; }
-}
-
-interface VTableInterface
-{
-    public int baz();
-}
-
-public class VTable extends VTableBase implements VTableInterface
-{
-    public int foo() { return 2; }
-    public int baz() { return 3; }
-
-    public static void main(String[] args) {
-        VTableBase a = new VTableBase();
-        Test.println(a.foo());
-        Test.println(a.bar());
-
-        a = new VTable();
-        Test.println(a.foo());
-        Test.println(a.bar());
-        Test.println(((VTableInterface)a).baz());
-
-        VTableInterface i = new VTable();
-        Test.println(i.baz());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/VirtualCall.java b/java/test/Programs/SingleSource/UnitTests/VirtualCall.java
deleted file mode 100644
index 9e18f9d..0000000
--- a/java/test/Programs/SingleSource/UnitTests/VirtualCall.java
+++ /dev/null
@@ -1,37 +0,0 @@
-public class VirtualCall
-{
-    static class A
-    {
-        public void m1() { Test.println(1); m2(); m3(); }
-        public void m2() { Test.println(2); m3(); }
-        public void m3() { Test.println(3); }
-    }
-
-    static class B extends A
-    {
-        public void m2() { Test.println(22); }
-        public void m3() { Test.println(33); }
-    }
-
-    static class C extends B
-    {
-        public void m2() { Test.println(222); m3(); }
-    }
-
-    public static void main(String[] args) {
-        A a = new A();
-        a.m1();
-        a.m2();
-        a.m3();
-
-        a = new B();
-        a.m1();
-        a.m2();
-        a.m3();
-
-        a = new C();
-        a.m1();
-        a.m2();
-        a.m3();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ackermann.java b/java/test/Programs/SingleSource/UnitTests/ackermann.java
deleted file mode 100644
index 2fe3ab3..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ackermann.java
+++ /dev/null
@@ -1,9 +0,0 @@
-public class ackermann {
-    public static void main(String[] args) {
-        Test.println(Ack(3, 10));
-    }
-    public static int Ack(int m, int n) {
-        return (m == 0) ? (n + 1) : ((n == 0) ? Ack(m-1, 1) :
-                                     Ack(m-1, Ack(m, n - 1)));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ary.java b/java/test/Programs/SingleSource/UnitTests/ary.java
deleted file mode 100644
index 86f1f60..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ary.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class ary {
-    public static void main(String args[]) {
-        int i, j, k, n = 9000;
-        int x[] = new int[n];
-        int y[] = new int[n];
-
-        for (i = 0; i < n; i++)
-            x[i] = i + 1;
-        for (k = 0; k < 1000; k++ )
-            for (j = n-1; j >= 0; j--)
-                y[j] += x[j];
-
-        Test.println(y[0]);
-        Test.println(y[n-1]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/fibo.java b/java/test/Programs/SingleSource/UnitTests/fibo.java
deleted file mode 100644
index 335a42a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/fibo.java
+++ /dev/null
@@ -1,10 +0,0 @@
-public class fibo {
-    public static void main(String args[]) {
-        int N = 32;
-        Test.println(fib(N));
-    }
-    public static int fib(int n) {
-        if (n < 2) return(1);
-        return( fib(n-2) + fib(n-1) );
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/heapsort.java b/java/test/Programs/SingleSource/UnitTests/heapsort.java
deleted file mode 100644
index 7ae87ee..0000000
--- a/java/test/Programs/SingleSource/UnitTests/heapsort.java
+++ /dev/null
@@ -1,53 +0,0 @@
-public class heapsort {
-
-    public static final long IM = 139968;
-    public static final long IA =   3877;
-    public static final long IC =  29573;
-
-    public static void main(String args[]) {
-        int N = 100000;
-        double []ary = new double[N+1];
-        for (int i=1; i<=N; i++) {
-            ary[i] = gen_random(1);
-        }
-        heapsort(N, ary);
-        Test.println(ary[N]);
-    }
-
-    public static long last = 42;
-    public static double gen_random(double max) {
-        return( max * (last = (last * IA + IC) % IM) / IM );
-    }
-
-    public static void heapsort(int n, double ra[]) {
-        int l, j, ir, i;
-        double rra;
-
-        l = (n >> 1) + 1;
-        ir = n;
-        for (;;) {
-            if (l > 1) {
-                rra = ra[--l];
-            } else {
-                rra = ra[ir];
-                ra[ir] = ra[1];
-                if (--ir == 1) {
-                    ra[1] = rra;
-                    return;
-                }
-            }
-            i = l;
-            j = l << 1;
-            while (j <= ir) {
-                if (j < ir && ra[j] < ra[j+1]) { ++j; }
-                if (rra < ra[j]) {
-                    ra[i] = ra[j];
-                    j += (i = j);
-                } else {
-                    j = ir + 1;
-                }
-            }
-            ra[i] = rra;
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/methcall.java b/java/test/Programs/SingleSource/UnitTests/methcall.java
deleted file mode 100644
index 00e57cc..0000000
--- a/java/test/Programs/SingleSource/UnitTests/methcall.java
+++ /dev/null
@@ -1,52 +0,0 @@
-public class methcall {
-    private static class Toggle {
-        boolean state = true;
-        public Toggle(boolean start_state) {
-            this.state = start_state;
-        }
-        public boolean value() {
-            return(this.state);
-        }
-        public Toggle activate() {
-            this.state = !this.state;
-            return(this);
-        }
-    }
-
-    private static class NthToggle extends Toggle {
-        int count_max = 0;
-        int counter = 0;
-
-        public NthToggle(boolean start_state, int max_counter) {
-            super(start_state);
-            this.count_max = max_counter;
-            this.counter = 0;
-        }
-        public Toggle activate() {
-            this.counter += 1;
-            if (this.counter >= this.count_max) {
-                this.state = !this.state;
-                this.counter = 0;
-            }
-            return(this);
-        }
-    }
-
-    public static void main(String args[]) {
-        int n = 1000000;
-
-        boolean val = true;
-        Toggle toggle = new Toggle(val);
-        for (int i=0; i<n; i++) {
-            val = toggle.activate().value();
-        }
-        Test.println(val);
-
-        val = true;
-        NthToggle ntoggle = new NthToggle(true, 3);
-        for (int i=0; i<n; i++) {
-            val = ntoggle.activate().value();
-        }
-        Test.println(val);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/nestedloop.java b/java/test/Programs/SingleSource/UnitTests/nestedloop.java
deleted file mode 100644
index 61df19e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/nestedloop.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class nestedloop {
-    public static void main(String args[]) {
-        int n = 18;
-        int x = 0;
-        for (int a=0; a<n; a++)
-            for (int b=0; b<n; b++)
-                for (int c=0; c<n; c++)
-                    for (int d=0; d<n; d++)
-                        for (int e=0; e<n; e++)
-                            for (int f=0; f<n; f++)
-                                x++;
-        Test.println(x);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/objinst.java b/java/test/Programs/SingleSource/UnitTests/objinst.java
deleted file mode 100644
index 3be4949..0000000
--- a/java/test/Programs/SingleSource/UnitTests/objinst.java
+++ /dev/null
@@ -1,53 +0,0 @@
-public class objinst {
-    private static class Toggle {
-        boolean state = true;
-        public Toggle(boolean start_state) {
-            this.state = start_state;
-        }
-        public boolean value() {
-            return(this.state);
-        }
-        public Toggle activate() {
-            this.state = !this.state;
-            return(this);
-        }
-    }
-
-    private static class NthToggle extends Toggle {
-        int count_max = 0;
-        int counter = 0;
-
-        public NthToggle(boolean start_state, int max_counter) {
-            super(start_state);
-            this.count_max = max_counter;
-            this.counter = 0;
-        }
-        public Toggle activate() {
-            this.counter += 1;
-            if (this.counter >= this.count_max) {
-                this.state = !this.state;
-                this.counter = 0;
-            }
-            return(this);
-        }
-    }
-
-    public static void main(String args[]) {
-        int n = 1500000;
-        Toggle toggle1 = new Toggle(true);
-        for (int i=0; i<5; i++) {
-            Test.println(toggle1.activate().value());
-        }
-        for (int i=0; i<n; i++) {
-            Toggle toggle = new Toggle(true);
-        }
-
-        NthToggle ntoggle1 = new NthToggle(true, 3);
-        for (int i=0; i<8; i++) {
-            Test.println(ntoggle1.activate().value());
-        }
-        for (int i=0; i<n; i++) {
-            NthToggle toggle = new NthToggle(true, 3);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/random.java b/java/test/Programs/SingleSource/UnitTests/random.java
deleted file mode 100644
index b5f83e6..0000000
--- a/java/test/Programs/SingleSource/UnitTests/random.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class random {
-
-    public static final int IM = 139968;
-    public static final int IA = 3877;
-    public static final int IC = 29573;
-
-    public static void main(String args[]) {
-        int N = 900000;
-
-        while (--N > 0) {
-            gen_random(100);
-        }
-        Test.println(gen_random(100));
-    }
-
-    public static int last = 42;
-    public static double gen_random(double max) {
-        return( max * (last = (last * IA + IC) % IM) / IM );
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/sieve.java b/java/test/Programs/SingleSource/UnitTests/sieve.java
deleted file mode 100644
index da1841b..0000000
--- a/java/test/Programs/SingleSource/UnitTests/sieve.java
+++ /dev/null
@@ -1,23 +0,0 @@
-public class sieve {
-    public static void main(String args[]) {
-        int NUM = 1200;
-        boolean [] flags = new boolean[8192 + 1];
-        int count = 0;
-        while (NUM-- > 0) {
-            count = 0;
-            for (int i=2; i <= 8192; i++) {
-                flags[i] = true;
-            }
-            for (int i=2; i <= 8192; i++) {
-                if (flags[i]) {
-                    // remove all multiples of prime: i
-                    for (int k=i+i; k <= 8192; k+=i) {
-                        flags[k] = false;
-                    }
-                    count++;
-                }
-            }
-        }
-        Test.println(count);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/takfp.java b/java/test/Programs/SingleSource/UnitTests/takfp.java
deleted file mode 100644
index e716ac1..0000000
--- a/java/test/Programs/SingleSource/UnitTests/takfp.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class takfp {
-    public static void main(String args[]) {
-        int n = 10;
-        Test.println( Tak(n*3.0f, n*2.0f, n*1.0f) );
-    }
-
-  public static float Tak (float x, float y, float z) {
-    if (y >= x) return z;
-    else return Tak(Tak(x-1.0f,y,z), Tak(y-1.0f,z,x), Tak(z-1.0f,x,y));
-  }
-}
\ No newline at end of file
diff --git a/java/test/Programs/SingleSource/UnitTests/test.c b/java/test/Programs/SingleSource/UnitTests/test.c
deleted file mode 100644
index 83438f1..0000000
--- a/java/test/Programs/SingleSource/UnitTests/test.c
+++ /dev/null
@@ -1,240 +0,0 @@
-#include <stdio.h>
-
-#include "Test.h"
-
-void Java_Test_println__Z(JNIEnv *env, jclass clazz, jboolean aBoolean)
-{
-  if (aBoolean)
-    puts("true");
-  else
-    puts("false");
-}
-
-void Java_Test_println__I(JNIEnv *env, jclass clazz, jint aInt)
-{
-  printf("%d\n", aInt);
-}
-
-void Java_Test_println__J(JNIEnv *env, jclass clazz, jlong aLong)
-{
-  printf("%Ld\n", aLong);
-}
-
-void Java_Test_println__F(JNIEnv *env, jclass clazz, jfloat aFloat)
-{
-  printf("%f\n", aFloat);
-}
-
-void Java_Test_println__D(JNIEnv *env, jclass clazz, jdouble aDouble)
-{
-  printf("%f\n", aDouble);
-}
-
-void Java_Test_println___3B(JNIEnv *env, jclass clazz, jbyteArray array)
-{
-  jint size = (*env)->GetArrayLength(env, array);
-  jbyte* elements = (*env)->GetByteArrayElements(env, array, NULL);
-  printf("%.*s\n", size, elements);
-  // Since we didn't modify the array there is no point in copying it back
-  (*env)->ReleaseByteArrayElements(env, array, elements, JNI_ABORT);
-}
-
-void Java_Test_printFields(JNIEnv *env, jobject obj)
-{
-  jclass classTest;
-  jclass objClass;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsInstanceOf(env, obj, classTest))
-    printf("ERROR: IsInstanceOf\n");
-  objClass = (*env)->GetObjectClass(env, obj);
-  if (!(*env)->IsAssignableFrom(env, objClass, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetFieldID(env, objClass, "z", "Z");
-  z = (*env)->GetBooleanField(env, obj, id);
-  Java_Test_println__Z(env, objClass, z);
-
-  id = (*env)->GetFieldID(env, objClass, "i", "I");
-  i = (*env)->GetIntField(env, obj, id);
-  Java_Test_println__I(env, objClass, i);
-
-  id = (*env)->GetFieldID(env, objClass, "l", "J");
-  l = (*env)->GetLongField(env, obj, id);
-  Java_Test_println__J(env, objClass, l);
-
-  id = (*env)->GetFieldID(env, objClass, "f", "F");
-  f = (*env)->GetFloatField(env, obj, id);
-  Java_Test_println__F(env, objClass, f);
-
-  id = (*env)->GetFieldID(env, objClass, "d", "D");
-  d = (*env)->GetDoubleField(env, obj, id);
-  Java_Test_println__D(env, objClass, d);
-
-  id = (*env)->GetFieldID(env, objClass, "s", "S");
-  s = (*env)->GetShortField(env, obj, id);
-  Java_Test_println__I(env, objClass, s);
-
-  id = (*env)->GetFieldID(env, objClass, "b", "B");
-  b = (*env)->GetByteField(env, obj, id);
-  Java_Test_println__I(env, objClass, b);
-}
-
-void Java_Test_printStaticFields(JNIEnv *env, jclass clazz)
-{
-  jclass classTest;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsAssignableFrom(env, clazz, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetStaticFieldID(env, clazz, "Z", "Z");
-  z = (*env)->GetStaticBooleanField(env, clazz, id);
-  Java_Test_println__Z(env, clazz, z);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "I", "I");
-  i = (*env)->GetStaticIntField(env, clazz, id);
-  Java_Test_println__I(env, clazz, i);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "L", "J");
-  l = (*env)->GetStaticLongField(env, clazz, id);
-  Java_Test_println__J(env, clazz, l);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "F", "F");
-  f = (*env)->GetStaticFloatField(env, clazz, id);
-  Java_Test_println__F(env, clazz, f);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "D", "D");
-  d = (*env)->GetStaticDoubleField(env, clazz, id);
-  Java_Test_println__D(env, clazz, d);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "S", "S");
-  s = (*env)->GetStaticShortField(env, clazz, id);
-  Java_Test_println__I(env, clazz, s);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "B", "B");
-  b = (*env)->GetStaticByteField(env, clazz, id);
-  Java_Test_println__I(env, clazz, b);
-}
-
-void Java_Test_printMethods(JNIEnv *env, jobject obj)
-{
-  jclass classTest;
-  jclass objClass;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsInstanceOf(env, obj, classTest))
-    printf("ERROR: IsInstanceOf\n");
-  objClass = (*env)->GetObjectClass(env, obj);
-  if (!(*env)->IsAssignableFrom(env, objClass, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetMethodID(env, objClass, "z", "()Z");
-  z = (*env)->CallBooleanMethod(env, obj, id);
-  Java_Test_println__Z(env, objClass, z);
-
-  id = (*env)->GetMethodID(env, objClass, "i", "(I)I");
-  i = (*env)->CallIntMethod(env, obj, id, 2);
-  Java_Test_println__I(env, objClass, i);
-
-  id = (*env)->GetMethodID(env, objClass, "j", "(BS)J");
-  l = (*env)->CallLongMethod(env, obj, id, 23, 45);
-  Java_Test_println__J(env, objClass, l);
-
-  id = (*env)->GetMethodID(env, objClass, "f", "(B)F");
-  f = (*env)->CallFloatMethod(env, obj, id, 123);
-  Java_Test_println__F(env, objClass, f);
-
-  id = (*env)->GetMethodID(env, objClass, "d", "(IJ)D");
-  d = (*env)->CallDoubleMethod(env, obj, id, 654, 123ll);
-  Java_Test_println__D(env, objClass, d);
-
-  id = (*env)->GetMethodID(env, objClass, "s", "(DB)S");
-  s = (*env)->CallShortMethod(env, obj, id, 2.0, 123);
-  Java_Test_println__I(env, objClass, s);
-
-  id = (*env)->GetMethodID(env, objClass, "b", "(SF)B");
-  b = (*env)->CallByteMethod(env, obj, id, 23, -2.0);
-  Java_Test_println__I(env, objClass, b);
-}
-
-void Java_Test_printStaticMethods(JNIEnv *env, jobject clazz)
-{
-  jclass classTest;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsAssignableFrom(env, clazz, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetStaticMethodID(env, clazz, "Z", "()Z");
-  z = (*env)->CallStaticBooleanMethod(env, clazz, id);
-  Java_Test_println__Z(env, clazz, z);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "I", "(I)I");
-  i = (*env)->CallStaticIntMethod(env, clazz, id, 2);
-  Java_Test_println__I(env, clazz, i);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "J", "(BS)J");
-  l = (*env)->CallStaticLongMethod(env, clazz, id, 23, 45);
-  Java_Test_println__J(env, clazz, l);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "F", "(B)F");
-  f = (*env)->CallStaticFloatMethod(env, clazz, id, 123);
-  Java_Test_println__F(env, clazz, f);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "D", "(IJ)D");
-  d = (*env)->CallStaticDoubleMethod(env, clazz, id, 654, 12354123ll);
-  Java_Test_println__D(env, clazz, d);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "S", "(DB)S");
-  s = (*env)->CallStaticShortMethod(env, clazz, id, 2.0, 123);
-  Java_Test_println__I(env, clazz, s);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "B", "(SF)B");
-  b = (*env)->CallStaticByteMethod(env, clazz, id, 21, -58.0);
-  Java_Test_println__I(env, clazz, b);
-}
diff --git a/java/test/Regression/ClassFile/Catch.java b/java/test/Regression/ClassFile/Catch.java
deleted file mode 100644
index b0a417b..0000000
--- a/java/test/Regression/ClassFile/Catch.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class Catch
-{
-    public static int main(String[] args) {
-        int i = 0;
-
-        try {
-            i += 10;
-        }
-        catch (Exception e) {
-            System.err.println("caught exception: " + e);
-            i += 20;
-        }
-
-        return i;
-    }
-}
diff --git a/java/test/Regression/ClassFile/Finally.java b/java/test/Regression/ClassFile/Finally.java
deleted file mode 100644
index f65e3d5..0000000
--- a/java/test/Regression/ClassFile/Finally.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Finally
-{
-    public static int main(String[] args) {
-        int i = 0;
-
-        try {
-            i += 10;
-        }
-        catch (Exception e) {
-            System.err.println("caught exception: " + e);
-            i += 20;
-        }
-        finally {
-            System.err.println("executing finally clause");
-            i += 30;
-        }
-
-        return 0;
-    }
-}
diff --git a/java/test/Regression/ClassFile/Hello.java b/java/test/Regression/ClassFile/Hello.java
deleted file mode 100644
index 737a219..0000000
--- a/java/test/Regression/ClassFile/Hello.java
+++ /dev/null
@@ -1,8 +0,0 @@
-public class Hello
-{
-    public static int main(String[] args) {
-        System.out.println("Hello world");
-        return 0;
-    }
-}
-
diff --git a/java/test/Regression/ClassFile/Makefile b/java/test/Regression/ClassFile/Makefile
deleted file mode 100644
index 7b10fe0..0000000
--- a/java/test/Regression/ClassFile/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Regression/ClassFile/Makefile ------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../..
-
-JAVAFILES := $(wildcard *.java)
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/test/Regression/ClassFile/Simple.java b/java/test/Regression/ClassFile/Simple.java
deleted file mode 100644
index 370f0d4..0000000
--- a/java/test/Regression/ClassFile/Simple.java
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Simple
-{
-    public static int main(String[] args) {
-        return 0;
-    }
-}
diff --git a/java/test/Regression/Makefile b/java/test/Regression/Makefile
deleted file mode 100644
index 58520dd..0000000
--- a/java/test/Regression/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Regression/Makefile ----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-PARALLEL_DIRS := ClassFile
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/tools/Makefile b/java/tools/Makefile
deleted file mode 100755
index a5d15b6..0000000
--- a/java/tools/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- tools/Makefile --------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := classdump class2llvm
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/class2llvm/Makefile b/java/tools/class2llvm/Makefile
deleted file mode 100644
index abbca4f..0000000
--- a/java/tools/class2llvm/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#===- tools/class2llvm/Makefile ----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-TOOLNAME := class2llvm
-
-USEDLIBS := LLVMJavaCompiler.a LLVMJavaClassfile.a
-LLVMLIBS := LLVMBCWriter LLVMCore LLVMSupport.a LLVMbzip2 LLVMSystem.a
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/class2llvm/class2llvm.cpp b/java/tools/class2llvm/class2llvm.cpp
deleted file mode 100644
index 5e5d1a6..0000000
--- a/java/tools/class2llvm/class2llvm.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===-- class2llvm.cpp - class2llvm utility ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a sample class reader driver. It is used to drive class
-// reader tests.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Java/Compiler.h>
-#include <llvm/PassManager.h>
-#include <llvm/Analysis/Verifier.h>
-#include <llvm/Bytecode/WriteBytecodePass.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-
-#include <cstddef>
-#include <fstream>
-#include <iostream>
-
-using namespace llvm;
-
-static cl::opt<std::string>
-InputClass(cl::Positional, cl::desc("<input class>"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
-
-int main(int argc, char* argv[])
-{
-  sys::PrintStackTraceOnErrorSignal();
-  cl::ParseCommandLineOptions(argc, argv,
-                              "classfile to llvm utility");
-
-  std::ostream* out = &std::cout;
-  if (!OutputFilename.empty()) {
-    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-    out = new std::ofstream(OutputFilename.c_str());
-  }
-
-  try {
-    std::auto_ptr<Module> module = Java::compile(InputClass);
-
-    PassManager passes;
-    passes.add(createVerifierPass());
-    passes.add(new WriteBytecodePass(out));
-    passes.run(*module);
-  }
-  catch (std::exception& e) {
-    std::cerr << e.what() << '\n';
-    sys::Path(OutputFilename).eraseFromDisk();
-    return EXIT_FAILURE;
-  }
-
-  if (!OutputFilename.empty())
-    delete out;
-
-  return EXIT_SUCCESS;
-}
diff --git a/java/tools/classdump/Makefile b/java/tools/classdump/Makefile
deleted file mode 100755
index 576fe65..0000000
--- a/java/tools/classdump/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#===- tools/classdump/Makefile -----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-TOOLNAME := classdump
-
-USEDLIBS := LLVMJavaClassfile.a
-LLVMLIBS := LLVMCore LLVMSupport.a LLVMbzip2 LLVMSystem.a
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/classdump/classdump.cpp b/java/tools/classdump/classdump.cpp
deleted file mode 100644
index e65ef44..0000000
--- a/java/tools/classdump/classdump.cpp
+++ /dev/null
@@ -1,683 +0,0 @@
-//===-- classdump.cpp - classdump utility -----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a sample class reader driver. It is used to drive class
-// reader tests.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-
-#include <cstddef>
-#include <iostream>
-
-using namespace llvm;
-
-namespace {
-
-  enum DumpType { code, constantPool };
-
-  cl::opt<std::string>
-  InputClass(cl::Positional, cl::desc("<input class>"));
-
-  cl::opt<DumpType>
-  DumpMode(
-    "dumptype",
-    cl::desc("Dump type: (default = code)"),
-    cl::Prefix,
-    cl::values(
-      clEnumVal(code,         "code"),
-      clEnumVal(constantPool, "constant pool"),
-      clEnumValEnd),
-    cl::init(code));
-
-  using namespace llvm::Java;
-
-  class ClassDump : public BytecodeParser<ClassDump> {
-    const ClassFile* CF;
-    std::ostream& Out;
-
-  public:
-    ClassDump(const ClassFile* cf, std::ostream& out)
-      : CF(cf), Out(out) {
-
-      if (CF->isPublic())
-        Out << "public ";
-      if (CF->isFinal())
-        Out << "final ";
-
-      Out << "class " << CF->getThisClass()->getName()->str() << ' ';
-
-      if (ConstantClass* super = CF->getSuperClass())
-        Out << "extends " << super->getName()->str() << ' ';
-
-      if (CF->getNumInterfaces()) {
-        Out << "implements " << CF->getInterface(0)->getName()->str();
-        for (unsigned i = 1, e = CF->getNumInterfaces(); i != e; ++i)
-          Out << ", " << CF->getInterface(i)->getName()->str();
-        Out << ' ';
-      }
-      Out << "{\n";
-
-      const Fields& fields = CF->getFields();
-      // Dump static fields.
-      for (unsigned i = 0, e = fields.size(); i != e; ++i)
-        if (fields[i]->isStatic())
-          dumpField(fields[i]);
-      // Dump instance fields.
-      for (unsigned i = 0, e = fields.size(); i != e; ++i)
-        if (!fields[i]->isStatic())
-          dumpField(fields[i]);
-
-      const Methods& methods = CF->getMethods();
-      for (unsigned i = 0, e = methods.size(); i != e; ++i)
-        dumpMethod(methods[i]);
-
-      Out << "\n}\n";
-    }
-
-    void dumpField(const Field* F) {
-      Out << '\n';
-      if (F->isPublic())
-        Out << "public ";
-      else if (F->isProtected())
-        Out << "protected ";
-      else if (F->isPrivate())
-        Out << "private ";
-
-      if (F->isStatic())
-        Out << "static ";
-
-      if (F->isFinal())
-        Out << "final ";
-
-      if (F->isTransient())
-        Out << "transient ";
-
-      Out << getPrettyString(F->getDescriptor()->str()) << ' '
-          << F->getName()->str() << ";\n";
-    }
-
-    void dumpMethod(const Method* M) {
-      Out << '\n';
-      if (M->isPublic())
-        Out << "public ";
-      else if (M->isProtected())
-        Out << "protected ";
-      else if (M->isPrivate())
-        Out << "private ";
-
-      if (M->isStatic())
-        Out << "static ";
-
-      if (M->isAbstract())
-        Out << "abstract ";
-
-      if (M->isFinal())
-        Out << "final ";
-
-      if (M->isSynchronized())
-        Out << "synchronized ";
-
-      std::string Signature = getPrettyString(M->getDescriptor()->str());
-      Signature.insert(Signature.find('('), M->getName()->str());
-
-      Out << Signature << ";\n";
-      if (CodeAttribute* CodeAttr = M->getCodeAttribute()) {
-        Out << "\tCode:";
-        parse(CodeAttr->getCode(), 0, CodeAttr->getCodeSize());
-        Out << '\n';
-      }
-    }
-
-    std::string getPrettyString(const std::string& Desc) {
-      unsigned I = 0;
-      std::string prettyString = getPrettyStringHelper(Desc, I);
-      for (unsigned i = 0, e = prettyString.size(); i != e; ++i)
-        if (prettyString[i] == '/')
-          prettyString[i] = '.';
-      return prettyString;
-    }
-
-    std::string getPrettyStringHelper(const std::string& Desc, unsigned& I) {
-      if (Desc.size() == I)
-        return "";
-
-      switch (Desc[I++]) {
-      case 'B': return "byte";
-      case 'C': return "char";
-      case 'D': return "double";
-      case 'F': return "float";
-      case 'I': return "int";
-      case 'J': return "long";
-      case 'S': return "short";
-      case 'Z': return "boolean";
-      case 'V': return "void";
-      case 'L': {
-        unsigned E = Desc.find(';', I);
-        std::string ClassName = Desc.substr(I, E - I);
-        I = E + 1;
-        return ClassName;
-      }
-      case '[': {
-        std::string ArrayPart;
-        ArrayPart += "[]";
-        while (Desc[I] == '[') {
-          ArrayPart += "[]";
-          ++I;
-        }
-
-        return getPrettyStringHelper(Desc, I) + ArrayPart;
-      }
-      case '(': {
-        std::string Params;
-        while (Desc[I] != ')') {
-          if (Desc[I-1] != '(')
-            Params += ',';
-          Params += getPrettyStringHelper(Desc, I);
-        }
-        return getPrettyStringHelper(Desc, ++I) + " (" + Params + ')';
-      }
-      }
-
-      return "";
-    }
-
-    /// @brief called before every bytecode
-    void pre_inst(unsigned bcI) { Out << "\n\t " << bcI << ":\t"; }
-    /// @brief called on ACONST_NULL
-    void do_aconst_null() { Out << "aconst_null"; }
-    /// @brief called on ICONST_<n>, SIPUSH and BIPUSH
-    void do_iconst(int value) {
-      if (value == -1)
-        Out << "iconst_m1";
-      else if (value >=0 && value <= 5)
-        Out << "iconst_" << value;
-      else if (value >= -128 && value <= 127)
-        Out << "bipush " << value;
-      else
-        Out << "sipush " << value;
-    }
-    /// @brief called on LCONST_<n>
-    void do_lconst(long long value) {
-      if (value == 0 || value == 1)
-        Out << "lconst_" << value;
-      else
-        Out << "lconst " << value;
-    }
-    /// @brief called on FCONST_<n>
-    void do_fconst(float value) {
-      if (value >= 0 && value <= 2)
-        Out << "fconst_" << value;
-      else
-        Out << "fconst " << value;
-    }
-    /// @brief called on DCONST_<n>
-    void do_dconst(double value) {
-      if (value == 0 || value == 1)
-        Out << "dconst_" << value;
-      else
-        Out << "dconst " << value;
-    }
-    /// @brief called on LDC and LDC_W
-    void do_ldc(unsigned index) {
-      if (index <= 255)
-        Out << "ldc";
-      else
-        Out << "ldc_w";
-      Out <<  "\t#" << index << "; //" << *CF->getConstant(index);      
-    }
-    /// @brief called on LDC2_W
-    void do_ldc2(unsigned index) {
-      Out << "ldc2_w \t#" << index << "; //" << *CF->getConstant(index);
-    }
-    /// @brief called on ILOAD and ILOAD_<n>
-    void do_iload(unsigned index) {
-      if (index <= 3)
-        Out << "iload_" << index;
-      else
-        Out << "iload " << index;
-    }
-    /// @brief called on LLOAD and LLOAD_<n>
-    void do_lload(unsigned index) {
-      if (index <= 3)
-        Out << "lload_" << index;
-      else
-        Out << "lload " << index;
-    }
-    /// @brief called on FLOAD and FLOAD_<n>
-    void do_fload(unsigned index) {
-      if (index <= 3)
-        Out << "fload_" << index;
-      else
-        Out << "fload " << index;
-    }
-    /// @brief called on DLOAD and DLOAD_<n>
-    void do_dload(unsigned index) {
-      if (index <= 3)
-        Out << "dload_" << index;
-      else
-        Out << "dload " << index;
-    }
-    /// @brief called on ALOAD and ALOAD_<n>
-    void do_aload(unsigned index) {
-      if (index <= 3)
-        Out << "aload_" << index;
-      else
-        Out << "aload " << index;
-    }
-    /// @brief called on IALOAD
-    void do_iaload() { Out << "iaload"; }
-    /// @brief called on LALOAD
-    void do_laload() { Out << "laload"; }
-    /// @brief called on FALOAD
-    void do_faload() { Out << "faload"; }
-    /// @brief called on DALOAD
-    void do_daload() { Out << "daload"; }
-    /// @brief called on AALOAD
-    void do_aaload() { Out << "aaload"; }
-    /// @brief called on BALOAD
-    void do_baload() { Out << "baload"; }
-    /// @brief called on CALOAD
-    void do_caload() { Out << "caload"; }
-    /// @brief called on SALOAD
-    void do_saload() { Out << "saload"; }
-    /// @brief called on ISTORE and ISTORE_<n>
-    void do_istore(unsigned index) {
-      if (index <= 3)
-        Out << "istore_" << index;
-      else
-        Out << "istore " << index;
-    }
-    /// @brief called on LSTORE and LSTORE_<n>
-    void do_lstore(unsigned index) {
-      if (index <= 3)
-        Out << "lstore_" << index;
-      else
-        Out << "lstore " << index;
-    }
-    /// @brief called on FSTORE and FSTORE_<n>
-    void do_fstore(unsigned index) {
-      if (index <= 3)
-        Out << "fstore_" << index;
-      else
-        Out << "fstore " << index;
-    }
-    /// @brief called on DSTORE and DSTORE_<n>
-    void do_dstore(unsigned index) {
-      if (index <= 3)
-        Out << "dstore_" << index;
-      else
-        Out << "dstore " << index;
-    }
-    /// @brief called on ASTORE and ASTORE_<n>
-    void do_astore(unsigned index) {
-      if (index <= 3)
-        Out << "astore_" << index;
-      else
-        Out << "astore " << index;
-    }
-    /// @brief called on IASTORE
-    void do_iastore() { Out << "iastore"; }
-    /// @brief called on LASTORE
-    void do_lastore() { Out << "lastore"; }
-    /// @brief called on FASTORE
-    void do_fastore() { Out << "fastore"; }
-    /// @brief called on DASTORE
-    void do_dastore() { Out << "dastore"; }
-    /// @brief called on AASTORE
-    void do_aastore() { Out << "aastore"; }
-    /// @brief called on BASTORE
-    void do_bastore() { Out << "bastore"; }
-    /// @brief called on CASTORE
-    void do_castore() { Out << "castore"; }
-    /// @brief called on SASTORE
-    void do_sastore() { Out << "sastore"; }
-    /// @brief called on POP
-    void do_pop() { Out << "pop"; }
-    /// @brief called on POP2
-    void do_pop2() { Out << "pop2"; }
-    /// @brief called on DUP
-    void do_dup() { Out << "dup"; }
-    /// @brief called on DUP_X1
-    void do_dup_x1() { Out << "dup_x1"; }
-    /// @brief called on DUP_X2
-    void do_dup_x2() { Out << "dup_x2"; }
-    /// @brief called on DUP2
-    void do_dup2() { Out << "dup2"; }
-    /// @brief called on DUP2_X1
-    void do_dup2_x1() { Out << "dup2_x1"; }
-    /// @brief called on DUP2_X2
-    void do_dup2_x2() { Out << "dup2_x2"; }
-    /// @brief called on SWAP
-    void do_swap() { Out << "swap"; }
-    /// @brief called on IADD
-    void do_iadd() { Out << "iadd"; }
-    /// @brief called on LADD
-    void do_ladd() { Out << "ladd"; }
-    /// @brief called on FADD
-    void do_fadd() { Out << "fadd"; }
-    /// @brief called on DADD
-    void do_dadd() { Out << "dadd"; }
-    /// @brief called on ISUB
-    void do_isub() { Out << "isub"; }
-    /// @brief called on LSUB
-    void do_lsub() { Out << "lsub"; }
-    /// @brief called on FSUB
-    void do_fsub() { Out << "fsub"; }
-    /// @brief called on DSUB
-    void do_dsub() { Out << "dsub"; }
-    /// @brief called on IMUL
-    void do_imul() { Out << "imul"; }
-    /// @brief called on LMUL
-    void do_lmul() { Out << "lmul"; }
-    /// @brief called on FMUL
-    void do_fmul() { Out << "fmul"; }
-    /// @brief called on DMUL
-    void do_dmul() { Out << "dmul"; }
-    /// @brief called on IDIV
-    void do_idiv() { Out << "idiv"; }
-    /// @brief called on LDIV
-    void do_ldiv() { Out << "ldiv"; }
-    /// @brief called on FDIV
-    void do_fdiv() { Out << "fdiv"; }
-    /// @brief called on DDIV
-    void do_ddiv() { Out << "ddiv"; }
-    /// @brief called on IREM
-    void do_irem() { Out << "irem"; }
-    /// @brief called on LREM
-    void do_lrem() { Out << "lrem"; }
-    /// @brief called on FREM
-    void do_frem() { Out << "frem"; }
-    /// @brief called on DREM
-    void do_drem() { Out << "drem"; }
-    /// @brief called on INEG
-    void do_ineg() { Out << "ineg"; }
-    /// @brief called on LNEG
-    void do_lneg() { Out << "lneg"; }
-    /// @brief called on FNEG
-    void do_fneg() { Out << "fneg"; }
-    /// @brief called on DNEG
-    void do_dneg() { Out << "dneg"; }
-    /// @brief called on ISHL
-    void do_ishl() { Out << "ishl"; }
-    /// @brief called on LSHL
-    void do_lshl() { Out << "lshl"; }
-    /// @brief called on ISHR
-    void do_ishr() { Out << "ishr"; }
-    /// @brief called on LSHR
-    void do_lshr() { Out << "lshr"; }
-    /// @brief called on IUSHR
-    void do_iushr() { Out << "iushr"; }
-    /// @brief called on LUSHR
-    void do_lushr() { Out << "lushr"; }
-    /// @brief called on IAND
-    void do_iand() { Out << "iand"; }
-    /// @brief called on LAND
-    void do_land() { Out << "land"; }
-    /// @brief called on IOR
-    void do_ior() { Out << "ior"; }
-    /// @brief called on LOR
-    void do_lor() { Out << "lor"; }
-    /// @brief called on IXOR
-    void do_ixor() { Out << "ixor"; }
-    /// @brief called on LXOR
-    void do_lxor() { Out << "lxor"; }
-    /// @brief called on IINC
-    void do_iinc(unsigned index, int amount) {
-      Out << "iinc " << index << ", " << amount;
-    }
-    /// @brief called on I2L
-    void do_i2l() { Out << "i2l"; }
-    /// @brief called on I2F
-    void do_i2f() { Out << "i2f"; }
-    /// @brief called on I2D
-    void do_i2d() { Out << "i2d"; }
-    /// @brief called on L2I
-    void do_l2i() { Out << "l2i"; }
-    /// @brief called on L2F
-    void do_l2f() { Out << "l2f"; }
-    /// @brief called on L2D
-    void do_l2d() { Out << "l2d"; }
-    /// @brief called on F2I
-    void do_f2i() { Out << "f2i"; }
-    /// @brief called on F2L
-    void do_f2l() { Out << "f2l"; }
-    /// @brief called on F2D
-    void do_f2d() { Out << "f2d"; }
-    /// @brief called on D2I
-    void do_d2i() { Out << "d2i"; }
-    /// @brief called on D2L
-    void do_d2l() { Out << "d2l"; }
-    /// @brief called on D2F
-    void do_d2f() { Out << "d2f"; }
-    /// @brief called on I2B
-    void do_i2b() { Out << "i2b"; }
-    /// @brief called on I2C
-    void do_i2c() { Out << "i2c"; }
-    /// @brief called on I2S
-    void do_i2s() { Out << "i2s"; }
-    /// @brief called on LCMP
-    void do_lcmp() { Out << "lcmp"; }
-    /// @brief called on FCMPL
-    void do_fcmpl() { Out << "fcmpl"; }
-    /// @brief called on DCMPL
-    void do_dcmpl() { Out << "dcmpl"; }
-    /// @brief called on FCMPG
-    void do_fcmpg() { Out << "fcmpg"; }
-    /// @brief called on DCMPG
-    void do_dcmpg() { Out << "dcmpg"; }
-    /// @brief called on IFEQ
-    void do_ifeq(unsigned t, unsigned f) { Out << "ifeq " << t; }
-    /// @brief called on IFNE
-    void do_ifne(unsigned t, unsigned f) { Out << "ifne " << t; }
-    /// @brief called on IFLT
-    void do_iflt(unsigned t, unsigned f) { Out << "iflt " << t; }
-    /// @brief called on IFGE
-    void do_ifge(unsigned t, unsigned f) { Out << "ifge " << t; }
-    /// @brief called on IFGT
-    void do_ifgt(unsigned t, unsigned f) { Out << "ifgt " << t; }
-    /// @brief called on IFLE
-    void do_ifle(unsigned t, unsigned f) { Out << "ifle " << t; }
-    /// @brief called on IF_ICMPEQ
-    void do_if_icmpeq(unsigned t, unsigned f) { Out << "if_icmpeq " << t; }
-    /// @brief called on IF_ICMPNE
-    void do_if_icmpne(unsigned t, unsigned f) { Out << "if_icmpne " << t; }
-    /// @brief called on IF_ICMPLT
-    void do_if_icmplt(unsigned t, unsigned f) { Out << "if_icmplt " << t; }
-    /// @brief called on IF_ICMPGE
-    void do_if_icmpge(unsigned t, unsigned f) { Out << "if_icmpge " << t; }
-    /// @brief called on IF_ICMPGT
-    void do_if_icmpgt(unsigned t, unsigned f) { Out << "if_icmpgt " << t; }
-    /// @brief called on IF_ICMPLE
-    void do_if_icmple(unsigned t, unsigned f) { Out << "if_icmple " << t; }
-    /// @brief called on IF_ACMPEQ
-    void do_if_acmpeq(unsigned t, unsigned f) { Out << "if_acmpeq " << t; }
-    /// @brief called on IF_ACMPNE
-    void do_if_acmpne(unsigned t, unsigned f) { Out << "if_acmpne " << t; }
-    /// @brief called on GOTO and GOTO_W
-    void do_goto(unsigned target) { Out << "goto " << target; }
-    /// @brief called on JSR and JSR_W
-    void do_jsr(unsigned target, unsigned retAddress) { abort(); }
-    /// @brief called on RET
-    void do_ret(unsigned index) { abort(); }
-    /// @brief called on TABLESWITCH
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      Out << "tableswitch{ //" << sw.front().first << " to " << sw.back().first;
-      for (unsigned i = 0, e = sw.size(); i != e; ++i)
-        Out << "\n\t\t\t" << sw[i].first << ": " << sw[i].second << ';';
-      Out << ";\n\t\t\tdefault: " << defTarget << " }";
-    }
-    /// @brief called on LOOKUPSWITCH
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) { abort(); }
-    /// @brief called on IRETURN
-    void do_ireturn() { Out << "ireturn"; }
-    /// @brief called on LRETURN
-    void do_lreturn() { Out << "lreturn"; }
-    /// @brief called on FRETURN
-    void do_freturn() { Out << "freturn"; }
-    /// @brief called on DRETURN
-    void do_dreturn() { Out << "dreturn"; }
-    /// @brief called on ARETURN
-    void do_areturn() { Out << "areturn"; }
-    /// @brief called on RETURN
-    void do_return() { Out << "return"; }
-    /// @brief called on GETSTATIC
-    void do_getstatic(unsigned index) {
-      Out << "getstatic #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on PUTSTATIC
-    void do_putstatic(unsigned index) {
-      Out << "putstatic #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on GETFIELD
-    void do_getfield(unsigned index) {
-      Out << "getfield #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on PUTFIELD
-    void do_putfield(unsigned index) {
-      Out << "putfield #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKEVIRTUAL
-    void do_invokevirtual(unsigned index) {
-      Out << "invokevirtual #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKESPECIAL
-    void do_invokespecial(unsigned index) {
-      Out << "invokespecial #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKESTATIC
-    void do_invokestatic(unsigned index) {
-      Out << "invokestatic #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKEINTERFACE
-    void do_invokeinterface(unsigned index) {
-      Out << "invokeinterface #" << index << "; //InterfaceMethod ";
-      printMemberRef(index);
-    }
-    /// @brief called on NEW
-    void do_new(unsigned index) {
-      Out << "new #" << index << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on NEWARRAY
-    void do_newarray(JType type) {
-      Out << "newarray ";
-      switch (type) {
-      case BOOLEAN: Out << "boolean"; break;
-      case CHAR: Out << "char"; break;
-      case FLOAT: Out << "float"; break;
-      case DOUBLE: Out << "double"; break;
-      case BYTE: Out << "byte"; break;
-      case SHORT: Out << "short"; break;
-      case INT: Out << "int"; break;
-      case LONG: Out << "long"; break;
-      default: assert(0 && "Unknown type for newarray!");
-      }
-    }
-
-    /// @brief called on ANEWARRAY
-    void do_anewarray(unsigned index) {
-      Out << "anewarray #" << index << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on ARRAYLENGTH
-    void do_arraylength() { Out << "arraylength"; }
-    /// @brief called on ATHROW
-    void do_athrow() { Out << "athrow"; }
-    /// @brief called on CHECKCAST
-    void do_checkcast(unsigned index) {
-      Out << "checkcast #" << index
-          << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on INSTANCEOF
-    void do_instanceof(unsigned index) {
-      Out << "instanceof #" << index
-          << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on MONITORENTER
-    void do_monitorenter() { Out << "monitorenter"; }
-    /// @brief called on MONITOREXIT
-    void do_monitorexit() { Out << "monitorexit"; }
-    /// @brief called on MULTIANEWARRAY
-    void do_multianewarray(unsigned index, unsigned dims) { }
-    /// @brief called on IFNULL
-    void do_ifnull(unsigned t, unsigned f) { Out << "ifnull " << t; }
-    /// @brief called on IFNONNULL
-    void do_ifnonnull(unsigned t, unsigned f) { Out << "ifnonnull " << t; }
-
-    void printMemberRef(unsigned index) {
-      ConstantMemberRef* Ref = CF->getConstantMemberRef(index);
-      ConstantClass* Class = Ref->getClass();
-      if (Class != CF->getThisClass())
-        Out << Class->getName()->str() << '.';
-      Out << Ref->getNameAndType()->getName()->str()
-          << ':'
-          << Ref->getNameAndType()->getDescriptor()->str();
-    }
-
-    void printClassRef(unsigned index) {
-      const std::string& FQCN = CF->getConstantClass(index)->getName()->str();
-      Out << FQCN.substr(FQCN.rfind('/')+1);
-    }
-  };
-}
-
-int main(int argc, char* argv[])
-{
-  sys::PrintStackTraceOnErrorSignal();
-  cl::ParseCommandLineOptions(argc, argv,
-                              "class dump utility");
-
-  try {
-    const Java::ClassFile* cf(Java::ClassFile::get(InputClass));
-
-    switch (DumpMode) {
-    default:
-      std::cerr << "no dump type selected";
-      abort();
-    case code: {
-      ClassDump(cf, std::cout);
-      break;
-    }
-    case constantPool: {
-      for (unsigned i = 0, e = cf->getNumConstants(); i != e; ++i) {
-        Constant* c = cf->getConstant(i);
-        std::cout.width(6);
-        std::cout << i << ": ";
-        std::cout.width(0);
-        if (c)
-          std::cout << *cf->getConstant(i);
-        else
-          std::cout << "empty";
-        std::cout << '\n';
-      }
-      break;
-    }
-    }
-  }
-  catch (std::exception& e) {
-    std::cerr << e.what() << '\n';
-    return EXIT_FAILURE;
-  }
-
-  return EXIT_SUCCESS;
-}
diff --git a/llvm-top/README.txt b/llvm-top/README.txt
deleted file mode 100644
index 4afe0f1..0000000
--- a/llvm-top/README.txt
+++ /dev/null
@@ -1,169 +0,0 @@
-README FOR llvm-top MODULE
-==========================
-
-You are reading the README for the llvm-top module of the LLVM project. This
-module should be the first thing you check out when accessing the LLVM
-project's subversion repository. From here all other modules are accessible
-via small scripts.
-
-You should check this module out with the following subversion command:
-
-   svn co http://llvm.org/svn/llvm-project/llvm-top/trunk llvm-top
-
-Alternatively, if you have commit access, use this form:
-
-   svn co https://username@llvm.org/svn/llvm-project/llvm-top/trunk llvm-top
-
-Once you've checked out llvm-top, you can then check out a module (and all its
-dependencies) with the "get" script located here. For example:
-
-  ./get llvm-gcc-4-0
-
-which will check out both llvm and llvm-gcc-4-0 because the latter depends on
-the former.  You can check out any number of modules using the "get" script, 
-for example, like this:
-
-  ./get llvm-gcc-4.0 test-suite stacker
-
-
-In addition to checking out software, there are several more scripts in 
-llvm-top.  In all the scripts, the dependency checking behavior is the same as
-for the get script. That is, the script operates on the modules you ask for as
-well as all the modules they depend on.
-
-The scripts available are:
-
-  get      - check out modules and their dependencies from subversion
-  info     - get subversion information about one or more modules
-  update   - update one or more modules
-  options  - specify options once that are "sticky" for all scripts.
-
-  build    - configure, compile and link one or more modules
-  install  - install one or more modules (presumes build already done)
-  clean    - clean (remove build products) one or more modules
-
-
-The first four scripts just work with subversion or llvm-top itself.  The last
-three scripts implement an easier method for building, isntalling and cleaning
-the LLVM modules themselves. However, these three do not dictate how to build, 
-install or clean the modules; that is up to the modules themselves.  The only 
-thing these scripts depend on is a file named ModuleInfo.txt located in each 
-module's top directory. This file can contain the following definitions:
-
-  DepModule:  - the list of modules this module depends on 
-  BuildCmd:   - a command to build (and configure) the module
-  InstallCmd: - a command to install the module
-  CleanCmd:   - a command to clean the module
-
-The scripts in llvm-top determine dependencies based on the DepModule lines of
-the various modules. This is how it knows which modules need to be checked out
-and what order to build them in. The three definitions ending in "Cmd" specify
-commands to be run. They are used by the build, install and clean scripts,
-respectively. Modules are free to specify whatever command is appropriate to
-build, install or clean that module.
-
-Each of these scripts uses a common library of shell functions (library.sh) to
-ensure their function is regular. In particular, they all accept the same set 
-of arguments. The arguments recognized are listed below in the order they
-are recognized by the scripts:
-
-  VERBOSE={verbosity_level}
-     This controls how verbose the scripts are in their output. The default
-     level is 0 which produces no output unless there's an error. At level 1
-     you'll get basic confirmation of the action taken. At level 2 you'll get
-     a dialogue of the individual steps taken by the script and verbose 
-     output from anything it runs.  At level 3 you'll get full diagnostics
-     messages (generally only useful for implementers of these scripts).
-
-  PREFIX=/path/to/install/directory
-     This is the prefix directory for installation. It is the expected final
-     location for installation of the software.
-
-  DESTDIR=/path/to/destination/directory
-     Specify the directory above where the install prefix will install. This
-     is handy for package maintainers. You can set PREFIX=/usr/bin but then
-     you don't actually want it installed there! So, specify DESTDIR=/tmp and
-     it would actually get installed in /tmp/usr/bin.
-
-  LLVM_TOP=/path/to/llvm-top
-     This allows you to override the location of the llvm-top directory.
-     
-  -*
-  --*
-  *=*
-     Any options matching these patterns are collected and passed down to the
-     build, install or clean commands.
-
-  all
-     This is equivalent to specifying all modules in the LLVM subversion 
-     repository. Careful! All the scripts will check out EVERYTHING in the
-     repository. 
-
-  [a-zA-Z]*
-     Any option not matching something above and starting with a letter 
-     specifies a module name to work on.
-
-  *
-     Anything else is an error.
-
-All the scripts need some (minimal) set of modules to work on. You have three
-choices on the command line:
-
-  1. Don't specify any modules - the script will work with the currently
-     checked out set of modules.
-
-  2. Specify the modules you want, by name - generally you only have to 
-     specify the one or two at the top of the dependency graph.
-
-  3. Specify "all" - all modules will be checked out (careful!)
-
-So, for example, consider:
-
-  ./build llvm-gcc-4.0 ENABLE_OPTIMIZED=1 PREFIX=/my/install/dir VERBOSE=1
-
-As you might guess, this will do the following:
-
-  1. Check out the llvm-gcc-4.0 module
-  2. Check out the core module because llvm-gcc-4.0 depends on core
-  3. Check out the support module because core depends on support
-  4. Build the support module in optimized mode and configure it to install
-     into /my/install/dir
-  5. Build the core module the same way.
-  6. Build the llvm-gcc-4.0 module the same way.
-  7. Do all of the above with some simple progress messages.
-
-The modules available are:
-
-  llvm-top     - This directory
-  sample       - A sample module you can use as a template for your own
-  support      - The support libraries, makefile system, etc.
-  core         - The core llvm software (currently "llvm")
-  llvm-gcc-4.0 - The C/C++/Obj-C front end for llvm, based on GCC 4.0
-  llvm-gcc-4.2 - The C/C++/Obj-C front end for llvm, based on GCC 4.2
-  cfe          - The new C/C++/Obj-C front end for llvm
-  test-suite   - The llvm test suite
-  stacker      - The stacker front end (a 'Forth-like' language)
-  hlvm         - High Level Virtual Machine (nascent)
-  java         - Java Front End (unfinished, out of date)
-  poolalloc    - The pooled allocator from Chris Lattner's thesis
-
------------------------------------------------------------------------------
-
-Some Other Useful URLS
-======================
-
-Please use the following URLs to discover more about the LLVM project and its
-software modules. You can copy and paste these URLs into your browser.
-
-  * http://llvm.org/
-    Main web site for the project with access to each module's documentation.
-
-  * http://llvm.org/docs/ (http://llvm.org/svn/llvm-project/llvm/trunk/docs/)
-    Documentation for the main llvm sub-project.
-
-  * http://llvm.org/svn/
-    Browse the latest revision of the source code in plain text (no frills).
-
-  * http://llvm.org/viewvc/llvm-project/
-    Browse any revision of the source code with lots of frills provided by
-    ViewVC.
diff --git a/llvm-top/build b/llvm-top/build
deleted file mode 100755
index 2056041..0000000
--- a/llvm-top/build
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-#                                  build script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This script allows LLVM modules to be built. Specify the modules you want to
-# build on the command line; or leave it blank to specify the currently checked
-# out modules. Any dependencies will be checked out and built before the 
-# specified list. You can also specify build options. See the README.txt file.
-
-# Get the library.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Process the arguments so that anything starting with - is passed down to the
-# configure scripts while anything else is a module name. Collect the arguments
-# in appropriate variables for later use.
-process_arguments "$@"
-
-# Get (and possibly check out) the set of modules and their dependencies. This
-# sets the MODULE_DEPENDENCIES variable to the set of module names that should
-# be configured, in the correct order (least dependent first, no duplicates).
-get_module_dependencies $MODULES
-
-# Build a list of the static build options we'll pass to the modules
-build_args="LLVM_TOP=$LLVM_TOP PREFIX=$PREFIX DESTDIR=$DESTDIR VERBOSE=$VERBOSE"
-build_args="$build_args $OPTIONS_DASH $OPTIONS_DASH_DASH $OPTIONS_ASSIGN"
-
-# Now that we have a list of dependent modules, we must configure each of them
-# according to the specifications of the module.
-for mod in $MODULE_DEPENDENCIES ; do
-  build_a_module "$mod"
-done
-
-# Just indicate what modules we configured
-msg 1 Modules built:"$MODULE_DEPENDENCIES".
diff --git a/llvm-top/clean b/llvm-top/clean
deleted file mode 100755
index 18ea340..0000000
--- a/llvm-top/clean
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-#                               clean script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script allows easier cleaning of LLVM modules. Just specify the names
-# of the modules on the command line and they and their dependencies will be
-# cleaned. See the README.txt file.
-
-# Get the shell function library
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Get the list of modules.
-process_arguments "$@"
-
-# Get the 
-get_module_dependencies $MODULES
-
-for mod in $MODULE_DEPENDENCIES ; do
-  get_module_info $mod CleanCmd
-  if test ! -z "$MODULE_INFO_VALUE" ; then
-    msg 1 Cleaning module $mod
-    cd $LLVM_TOP/$mod
-    $MODULE_INFO_VALUE || die $? "Clean of module $mod failed."
-  else
-    msg 2 Module $mod has no CleanCmd in the ModuleInfo.txt
-  fi
-done
-
-# Report what happened.
-msg 1 Modules cleaned: "$MODULE_DEPENDENCIES".
diff --git a/llvm-top/get b/llvm-top/get
deleted file mode 100755
index e31fe87..0000000
--- a/llvm-top/get
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-#                               get script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script allows easier checkout of LLVM modules. Just specify the names
-# of the modules on the command line. See the README.txt file.
-
-# Get the shell function library.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Get the list of modules
-process_arguments "$@"
-
-# Getting the module dependencies also causes them to be checked out.
-get_module_dependencies $MODULES
-
-# Report what happened.
-msg 1 Modules checked out:"$MODULE_DEPENDENCIES".
diff --git a/llvm-top/info b/llvm-top/info
deleted file mode 100755
index 4ef2f0f..0000000
--- a/llvm-top/info
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-#                                   info script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script gets subversion information about each module checked out. Just
-# specify the list of modules your' interested in or specify none to get show
-# information about the currently checked out modules. See the README.txt file.
-
-# Get the library.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Get the list of modules
-process_arguments "$@"
-
-# Getting the module dependencies also causes them to be checked out.
-get_module_dependencies $MODULES
-
-for mod in $MODULE_DEPENDENCIES ; do
-  msg 0 "Information for module '$mod'"
-  if test "$VERBOSE" -gt 0 ; then
-    svn info $mod
-  else
-    svn info $mod | sed -e '/^Repository/d' -e '/^Node/d' -e '/^Sched/d'
-  fi
-done
diff --git a/llvm-top/install b/llvm-top/install
deleted file mode 100755
index 3c25ae7..0000000
--- a/llvm-top/install
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-#                               install script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script allows easier installation of LLVM modules. Just specify the names
-# of the modules on the command line and they and their dependencies will be
-# checked out, built and installed. Use PREFIX= to specify where the modules
-# should be installed. See the README.txt file.
-
-# Get the shell function library.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Get the list of modules to install.
-process_arguments "$@"
-
-# Now find out what those modules depend on
-get_module_dependencies $MODULES
-
-# Now go run the install command for each of those modules, which are nicely
-# sorted in dependence order by get_module_dependencies
-for mod in $MODULE_DEPENDENCIES ; do
-  get_module_info $mod InstallCmd
-  TheCommand="$MODULE_INFO_VALUE"
-  if test ! -z "$TheCommand" ; then
-    msg 1 Installing module $mod
-    cd $LLVM_TOP/$mod
-    msg 2 Install command for "$mod" is "$TheCommand"
-    $TheCommand || die $? "Install of module $mod failed."
-  else
-    msg 2 Module $mod has no InstallCmd in the ModuleInfo.txt
-  fi
-  cd $LLVM_TOP
-done
-
-# Report what happened.
-msg 1 Modules installed: "$MODULE_DEPENDENCIES".
diff --git a/llvm-top/library.sh b/llvm-top/library.sh
deleted file mode 100644
index f7a6ed7..0000000
--- a/llvm-top/library.sh
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/bin/sh
-#                   llvm-top common function library
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script provides the script fragments and functions that are common to
-# the scripts in the llvm-top module.
-
-# Figure out where the llvm-top directory is located. This could be executed 
-# in a module or in llvm-top, so we have to figure out where the llvm-top 
-# directory is located by examining contents.
-if test -z "$LLVM_TOP" ; then
-  if test -x ./build -a -x ./get -a -f ./library.sh -a -x ./info ; then
-    LLVM_TOP=`pwd`
-  elif test -x ../build -a -x ../get -a -f ../library.sh -a -x ../info ; then
-    LLVM_TOP=`cd .. ; pwd`
-  else
-    echo "Cannot determine where your llvm-top directory is"
-    exit 1
-  fi
-fi
-
-# Get the options. If there is no options file, default the values.
-options="$LLVM_TOP/.options"
-if test -r "$options" -a -f "$options" ; then
-  . "$options"
-else
-  ASSERTIONS=1
-  CHECKING=0
-  DEBUG=1
-  DESTDIR=""
-  DOXYGEN=0
-  OPT_FOR_SIZE=0
-  OPTIMIZED=0
-  PREFIX="$LLVM_TOP/installed"
-  PROFILING=0
-  STRIPPED=0
-  TARGETS_TO_BUILD="all"
-  THREADS=0
-  USE_OBJ_DIR=0
-  VERBOSE=0
-fi
-
-# Define where subversion is. We assume by default its in the path.
-SVN=`which svn`
-
-# A command to figure out the root of the SVN repository by asking for it from
-# the 'svn info' command. To use, execute it in a script with something like
-SVNROOT=`$SVN info . | grep 'Repository Root:' |sed -e 's/^Repository Root: //'`
-
-# Generate an informative message to the user based on the verbosity level
-msg() {
-  local level=$1
-  shift
-  if test "$level" -le "$VERBOSE" ; then
-    echo "TOP-$level: $*"
-  fi
-}
-
-# Die with an error message
-die() {
-  local code=$1
-  shift
-  echo "TOP-$code: Error: $*"
-  exit $code
-}
-
-process_arguments() {
-  msg 2 "Processing arguments"
-  local arg=""
-  for arg in "$@" ; do
-    case "$arg" in
-      LLVM_TOP=*) LLVM_TOP=`echo "$arg" | sed -e 's/LLVM_TOP=//'` ;;
-      PREFIX=*)   PREFIX=`echo "$arg" | sed -e 's/PREFIX=//'` ;;
-      DESTDIR=*)  DESTDIR=`echo "$arg" | sed -e 's/DESTDIR=//'` ;;
-      VERBOSE=*)  VERBOSE=`echo "$arg" | sed -e 's/VERBOSE=//'` ;;
-      --*)        OPTIONS_DASH_DASH="$OPTIONS_DASH_DASH $arg" ;;
-       -*)        OPTIONS_DASH="$OPTIONS_DASH $arg" ;;
-      *=*)        OPTIONS_ASSIGN="$OPTIONS_ASSIGN $arg" ;;
-      all)        MODULES=`svn list $SVNROOT | grep '/$' | sed -e 's#/##'` ;;
-      [a-zA-Z]*)  MODULES="$MODULES $arg" ;;
-        *)        die 1 "Unrecognized option: $arg" ;;
-    esac
-  done
-
-  # An empty modules list means "the checked out modules" so gather that list
-  # now if we didn't get any modules on the command line.
-  if test -z "$MODULES" ; then
-    MODULES=""
-    local modinfo=""
-    for modinfo in */ModuleInfo.txt ; do
-      mod=`dirname $modinfo`
-      msg 3 "Found module directory $mod"
-      MODULES="$mod $MODULES"
-    done
-  fi
-}
-
-# Check out a single module. 
-checkout_a_module() {
-  local module=$1
-  msg 1 "Checking out module '$module'"
-  if test -d "$module" ; then
-    msg 2 "Module '$module' is already checked out."
-    return 0
-  fi
-  if test -e "$module" ; then
-    die 2 "Module '$module' is not a directory!"
-    return 0
-  fi
-  local quiet=""
-  if test "$VERBOSE" -le 1 ; then
-    quiet="-q"
-  fi
-  msg 3 "Running svn checkout for '$module'"
-  $SVN checkout $quiet $SVNROOT/$module/trunk $module || \
-    die $? "Checkout of module '$module' failed."
-  return 0
-}
-
-# This function extracts a module info item from a ModuleInfo.txt file. If
-# the module isn't already checked out, then it gets checked out. The value
-# of the info item is returned in the MODULE_INFO_VALUE variable.
-get_module_info() {
-  local module="$1"
-  local item_name="$2"
-  local item_value=""
-  msg 2 "Getting '$item_name' module info for '$module'"
-  if test ! -d "$module" ; then
-    checkout_a_module "$module" || die $? "Checkout failed."
-  fi
-  msg 2 "Getting module info from $module/ModuleInfo.txt"
-  local module_info="$module/ModuleInfo.txt"
-  if test -f "$module_info" ; then
-    item_value=`grep -i "$item_name:" $module_info | \
-                sed -e "s/$item_name: *//g"`
-    if test "$?" -ne 0 ; then 
-      die $? "Searching file '$module_info for $item_name' failed."
-    fi
-  else
-    msg 1 "Module $module has no ModuleInfo.txt file (ignored)."
-  fi
-  MODULE_INFO_VALUE="$item_value"
-}
-
-# This function gets the dependencies of all the dependent modules of the
-# list of modules passed as arguments. If a module is not checked out, it will
-# be checked out. This process repeats recursively until all the dependencies
-# have been satisfied. Upon exit the MODULE_DEPENDENCIES variable contains
-# the list of module names from least dependent to most dependent in the
-# correct configure/build order.
-add_module_if_not_duplicate() {
-  local mod_to_add="$1"
-  local mod=""
-  for mod in $MODULE_DEPENDENCIES ; do
-    local has_mod=`echo "$mod" | grep "$mod_to_add"`
-    if test ! -z "$has_mod" ; then
-      return 0
-    fi
-    msg 3 "Looping in add_module_if_not_duplicate"
-  done
-  msg 2 "Adding module '$mod_to_add' to list"
-  MODULE_DEPENDENCIES="$MODULE_DEPENDENCIES $mod_to_add"
-}
-
-# This function gets the dependencies for a single module. It is a recursive
-# function and returns its results by calling add_module_if_not_duplicate to
-# add modules to the MODULE_DEPENDENCIES variables. The function limits 
-# recursion depth to a total of ten which should be sufficient. This prevents
-# fork bombs in case the ModuleInfo.txt files specify cyclic dependencies.
-get_a_modules_dependencies() {
-  if test "$RECURSION_DEPTH" -gt 10 ; then
-    die 2 "Recursing too deeply on module dependencies"
-  fi
-  RECURSION_DEPTH=$(($RECURSION_DEPTH + 1))
-  local module="$1"
-  msg 2 "Getting dependencies for module '$module'"
-  get_module_info $module DepModule
-  if test ! -z "$MODULE_INFO_VALUE" ; then
-    local my_deps="$MODULE_INFO_VALUE"
-    msg 2 "Module '$module' depends on '$my_deps'"
-    local has_me=`echo "$my_deps" | grep "$module"`
-    if test -z "$has_me" ; then
-      local dep=""
-      for dep in $my_deps ; do
-        get_a_modules_dependencies "$dep"
-        msg 3 "Looping in get_a_modules_dependencies"
-      done
-    else
-      die 1 "Module '$module' has a dependency on itself!"
-    fi
-  fi
-  add_module_if_not_duplicate "$1"
-}
-
-# This is the public interface for getting module dependencies. It takes a list
-# of module names can calls get_a_modules_dependencies on each. The result is
-# returned in MODULE_DEPENDENCIES variable.
-get_module_dependencies() {
-  msg 2 "Getting module dependencies: $*"
-  local module=""
-  for module in "$@" ; do
-    RECURSION_DEPTH=0
-    get_a_modules_dependencies $module
-    msg 3 "Looping in get_module_dependencies"
-  done
-}
-
-# This is used to build a single module.
-build_a_module() {
-  local module="$1"
-  msg 1 "Building module '$module'"   
-  get_module_info $module BuildCmd
-  if test -z "$MODULE_INFO_VALUE" ; then
-    msg 1 "Module $module has no BuildCmd entry so it will not be built."
-    return 0
-  fi
-  local build_cmd="$MODULE_INFO_VALUE MODULE=$module $build_args"
-  msg 2 "Build Command: $build_cmd"
-  cd "$LLVM_TOP/$module"
-  $build_cmd || die $? "Build of module '$module' failed."
-  cd "$LLVM_TOP"
-}
-
diff --git a/llvm-top/options b/llvm-top/options
deleted file mode 100755
index 6c32dbf..0000000
--- a/llvm-top/options
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-#                               options script 
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script lets you set sticky options that can be set once with this command
-# and then ignored for remaining commands used from the same directory. 
-
-# Include the library. This will either read the options from the .options
-# file or it will set the variables to their default values.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Process the arguments to set the new values
-msg 3 "Processing new option arguments"
-for arg in "$@" ; do
-  case "$arg" in
-  +ASSERTIONS)    ASSERTIONS=1 ;;
-  -ASSERTIONS)    ASSERTIONS=0 ;;
-  +CHECKING)      CHECKING=1 ;;
-  -CHECKING)      CHECKING=0 ;;
-  +DEBUG)         DEBUG=1 ;;
-  -DEBUG)         DEBUG=0 ;;
-  +DOXYGEN)       DOXYGEN=1 ;;
-  -DOXYGEN)       DOXYGEN=0 ;;
-  +OPT_FOR_SIZE)  OPT_FOR_SIZE=1 ;;
-  -OPT_FOR_SIZE)  OPT_FOR_SIZE=0 ;;
-  +OPTIMIZED)     OPTIMIZED=1 ;;
-  -OPTIMIZED)     OPTIMIZED=0 ;;
-  +PROFILING)     PROFILING=1 ;;
-  -PROFILING)     PROFILING=0 ;;
-  +STRIPPED)      STRIPPED=1 ;;
-  -STRIPPED)      STRIPPED=0 ;;
-  +THREADS)       THREADS=1 ;;
-  -THREADS)       THREADS=0 ;;
-  +VERBOSE)       VERBOSE=1 ;;
-  -VERBOSE)       VERBOSE=0 ;;
-  ASSERTIONS=*)   ASSERTIONS=`echo "$arg" | sed -e 's/ASSERTIONS=//'` ;;
-  CHECKING=*)     CHECKING=`echo "$arg" | sed -e 's/CHECKING=//'` ;;
-  DEBUG=*)        DEBUG=`echo "$arg" | sed -e 's/DEBUG=//'` ;;
-  DESTDIR=*)      DESTDIR=`echo "$arg" | sed -e 's/DESTDIR=//'` ;;
-  DOXYGEN=*)      DOXYGEN=`echo "$arg" | sed -e 's/DOXYGEN=//'` ;;
-  LLVM_TOP=*)     LLVM_TOP=`echo "$arg" | sed -e 's/LLVM_TOP=//'` ;;
-  OPT_FOR_SIZE=*) OPT_FOR_SIZE=`echo "$arg" | sed -e 's/OPT_FOR_SIZE=//'` ;;
-  OPTIMIZED=*)    OPTIMIZED=`echo "$arg" | sed -e 's/OPTIMIZED=//'` ;;
-  PREFIX=*)       PREFIX=`echo "$arg" | sed -e 's/PREFIX=//'` ;;
-  PROFILING=*)    PROFILING=`echo "$arg" | sed -e 's/PROFILING=//'` ;;
-  STRIPPED=*)     STRIPPED=`echo "$arg" | sed -e 's/STRIPPED=//'` ;;
-  TARGETS_TO_BUILD=*) 
-              TARGETS_TO_BUILD=`echo "$arg" | sed -e 's/TARGETS_TO_BUILD=//'` ;;
-  THREADS=*)      THREADS=`echo "$arg" | sed -e 's/THREADS=//'` ;;
-  USE_OBJ_DIR=*)  USE_OBJ_DIR=`echo "$arg" | sed -e 's/USE_OBJ_DIR=//'` ;;
-  VERBOSE=*)      VERBOSE=`echo "$arg" | sed -e 's/VERBOSE=//'` ;;
-  *)              die 1 "Unrecognized option: $arg" ;;
-  esac
-done
-
-# Write the new options set to the .options file
-msg 3 "Write options to .options file"
-cat <<__EOF__ > "$options"
-# LLVM configuration options database.
-# This script is generated by "options" and included into library.sh
-ASSERTIONS="$ASSERTIONS"
-CHECKING="$CHECKING"
-DEBUG="$DEBUG"
-DESTDIR="$DESTDIR"
-DOXYGEN="$DOXYGEN"
-LLVM_TOP="$LLVM_TOP"
-OPT_FOR_SIZE="$OPT_FOR_SIZE"
-OPTIMIZED="$OPTIMIZED"
-PREFIX="$PREFIX"
-PROFILING="$PROFILING"
-STRIPPED="$STRIPPED"
-TARGETS_TO_BUILD="$TARGETS_TO_BUILD"
-THREADS="$THREADS"
-USE_OBJ_DIR="$USE_OBJ_DIR"
-VERBOSE="$VERBOSE"
-__EOF__
-
-# If there were no arguments, just print the options for the user
-msg 3 "Printing options"
-if test "$#" -eq 0 ; then
-  cat "$options" | grep "="
-fi
diff --git a/llvm-top/update b/llvm-top/update
deleted file mode 100755
index 5362377..0000000
--- a/llvm-top/update
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-#                               update script
-# 
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This script allows you to easily update a set of checked out modules. Just
-# specify the modules to be updated (or checked out) on the command line. 
-
-# Get the shell function library.
-if test ! -z "$LLVM_TOP" ; then
-  if test -f "$LLVM_TOP/library.sh" ; then
-    . "$LLVM_TOP/library.sh"
-  else
-    echo "Your LLVM_TOP variable is not set to an llvm-top directory"
-    exit 1
-  fi
-elif test -f ./library.sh ; then
-  . ./library.sh
-elif test -f ../library.sh ; then
-  . ../library.sh
-else
-  echo Please run $0 from the llvm-top directory or a module directory.
-  exit 1
-fi
-
-# Get the list of modules
-process_arguments "$@"
-
-# Getting the module dependencies also causes them to be checked out.
-get_module_dependencies $MODULES
-
-for mod in $MODULE_DEPENDENCIES ; do
-  msg 1 "Updating module '$mod'"
-  cd $mod
-  svn update
-  cd $LLVM_TOP
-done
-
-# Report what happened.
-msg 1 Modules updated:"$MODULE_DEPENDENCIES".
diff --git a/nightly-test-server/AcceptTestResults.php b/nightly-test-server/AcceptTestResults.php
deleted file mode 100644
index 3907408..0000000
--- a/nightly-test-server/AcceptTestResults.php
+++ /dev/null
@@ -1,553 +0,0 @@
-<?php
-
-/*******************************************************************************
-*
-* Debug info
-*
-*******************************************************************************/
-$print_debug = 0;
-
-/*******************************************************************************
-* mysql> describe machineInfo;
-* +--------------+----------+------+-----+---------+----------------+
-* | Field        | Type     | Null | Key | Default | Extra          |
-* +--------------+----------+------+-----+---------+----------------+
-* | id           | int(11)  |      | PRI | NULL    | auto_increment |
-* | targetTriple | tinytext |      |     |         |                |
-* | hostname     | tinytext |      |     |         |                |
-* | nickname     | tinytext |      |     |         |                |
-* +--------------+----------+------+-----+---------+----------------+
-* id = unqiue id assigned to machine
-* targetTriple = llvm TARGET_TRIPLE value
-* hostname = full hostname (ie. zion.llvm.org)
-* nickname = short name (ie. zion)
-*
-* Returns id of machine and adds machine if it is not already in database.
-*******************************************************************************/
-function getMachineID($targetTriple, $hostname, $nickname) {
-  $sqlQuery = "SELECT id from machineInfo WHERE targetTriple=\"$targetTriple\" " 
-               . "AND hostname=\"$hostname\" AND nickname=\"$nickname\"";
-  $result = mysql_query($sqlQuery) or die(mysql_error());
-
-  $row = mysql_fetch_assoc($result);
-  
-  if($row) {
-    return $row['id']; 
-  }
-  else {
-    $sqlQuery = "INSERT into machineInfo (targetTriple, hostname, nickname) VALUES "
-                . "(\"$targetTriple\", \"$hostname\", \"$nickname\")";
-    mysql_query($sqlQuery) or die(mysql_error());
-    $id =  mysql_insert_id() or die(mysql_error());
-    return $id;
-  }
-}
-
-/*******************************************************************************
-* mysql> describe testRunInfo;
-* +-------------------+-----------------------------------+------+-----+---------------------+----------------+
-* | Field             | Type                              | Null | Key | Default             | Extra          |
-* +-------------------+-----------------------------------+------+-----+---------------------+----------------+
-* | id                | int(11)                           |      | PRI | NULL                | auto_increment |
-* | runDateTime       | datetime                          |      |     | 0000-00-00 00:00:00 |                |
-* | machineId         | int(11)                           |      |     | 0                   |                |
-* | machineUname      | text                              | YES  |     | NULL                |                |
-* | gccVersion        | text                              | YES  |     | NULL                |                |
-* | cvsCpuTime        | double                            | YES  |     | NULL                |                |
-* | cvsWallTime       | double                            | YES  |     | NULL                |                |
-* | configureCpuTime  | double                            | YES  |     | NULL                |                |
-* | configureWallTime | double                            | YES  |     | NULL                |                |
-* | buildCpuTime      | double                            | YES  |     | NULL                |                |
-* | buildWallTime     | double                            | YES  |     | NULL                |                |
-* | dejagnuCpuTime    | double                            | YES  |     | NULL                |                |
-* | dejagnuWallTime   | double                            | YES  |     | NULL                |                |
-* | warnings          | mediumtext                        | YES  |     | NULL                |                |
-* | warningsAdded     | text                              | YES  |     | NULL                |                |
-* | warningsRemoved   | text                              | YES  |     | NULL                |                |
-* | cvsUsersAdd       | text                              | YES  |     | NULL                |                |
-* | cvsUsersCO        | text                              | YES  |     | NULL                |                |
-* | cvsFilesAdded     | text                              | YES  |     | NULL                |                |
-* | cvsFilesRemoved   | text                              | YES  |     | NULL                |                |
-* | cvsFilesModified  | text                              | YES  |     | NULL                |                |
-* | buildStatus       | tinyint(4)                        | YES  |     | NULL                |                |
-* | type              | enum('release','debug','unknown') | YES  |     | unknown             |                |
-* +-------------------+-----------------------------------+------+-----+---------------------+----------------+
-* Add a test run configuration to the database for logging test results.
-*
-*******************************************************************************/
-function addTestRunConfig($runDateTime, $machineId, $machineUname, $gccVersion,
-                         $cvsCpuTime, $cvsWallTime, $configureCpuTime,
-                         $configureWallTime,
-                         $buildCpuTime, $buildWallTime, $dejagnuCpuTime,
-                         $dejagnuWallTime, $warnings, $warningsAdded, 
-                         $warningsRemoved, $cvsUsersAdd, $cvsUsersCO, 
-                         $cvsFilesAdded, $cvsFilesRemoved, $cvsFilesModified,
-                         $buildStatus) {
-  
-  $sqlQuery = "INSERT into testRunInfo (runDateTime, machineId, machineUname," .
-              " gccVersion, cvsCpuTime, cvsWallTime, configureCpuTime," .
-              " configureWallTime, buildCpuTime, buildWallTime," .
-              " dejagnuCpuTime, dejagnuWallTime, warnings, warningsAdded," .
-              " warningsRemoved, cvsUsersAdd, cvsUsersCO, cvsFilesAdded," .
-              " cvsFilesRemoved, cvsFilesModified, buildStatus) VALUES (".
-              " \"$runDateTime\", \"$machineId\", \"$machineUname\"," .
-              " \"$gccVersion\", \"$cvsCpuTime\", \"$cvsWallTime\"," . 
-              " \"$configureCpuTime\", \"$configureWallTime\", \"$buildCpuTime\"," .
-              " \"$buildWallTime\", \"$dejagnuCpuTime\", \"$dejagnuWallTime\"," .
-              " \"$warnings\", \"$warningsAdded\", \"$warningsRemoved\"," .
-              " \"$cvsUsersAdd\", \"$cvsUsersCO\", \"$cvsFilesAdded\"," .
-              " \"$cvsFilesRemoved\", \"$cvsFilesModified\", \"$buildStatus\")";
-  mysql_query($sqlQuery) or die(mysql_error());
-  $id = mysql_insert_id() or die(mysql_error());  
-  return $id;
-}
-
-/*******************************************************************************
-*
-* mysql> describe dejagnuTests;
-* +-------+----------+------+-----+---------+----------------+
-* | Field | Type     | Null | Key | Default | Extra          |
-* +-------+----------+------+-----+---------+----------------+
-* | id    | int(11)  |      | PRI | 0       | auto_increment |
-* | name  | tinytext | YES  |     | NULL    |                |
-* +-------+----------+------+-----+---------+----------------+
-*
-* mysql> describe dejagnuTestResults;
-* +----------+-------------------------------------+------+-----+---------+----------------+
-* | Field    | Type                                | Null | Key | Default | Extra          |
-* +----------+-------------------------------------+------+-----+---------+----------------+
-* | id       | int(11)                             |      | PRI | NULL    | auto_increment |
-* | testId   | int(11)                             | YES  |     | NULL    |                |
-* | configId | int(11)                             | YES  |     | NULL    |                |
-* | result   | enum('PASS','FAIL','XFAIL','XPASS') | YES  |     | NULL    |                |
-* +----------+-------------------------------------+------+-----+---------+----------------+
-*
-* Add dejagnu test and its status (PASS, XPASS, XFAIL, FAIL).
-* Dejagnu tests each have their own unique id to represent them.
-*******************************************************************************/
-function addDejagnuTestResult($testName, $status, $testRunConfigId) {
-  // Strip off path from testName $path/test/($testName)
-  
-  // Get testID for testName
-  $sqlQuery = "SELECT id FROM dejagnuTests WHERE name=\"$testName\"";
-  $result = mysql_query($sqlQuery) or die(mysql_error());
-  $row = mysql_fetch_assoc($result);
-  
-  if($row) {
-    $id = $row['id']; 
-  }
-  else {
-    $sqlQuery = "INSERT into dejagnuTests (name) VALUES (\"$testName\")";
-    mysql_query($sqlQuery) or die(mysql_error());
-    $id =  mysql_insert_id() or die(mysql_error());
-  }
-
-  // Insert test result
-  $query = "INSERT into dejagnuTestResults (testId, configId, result) " .
-    "VALUES (\"$id\", \"$testRunConfigId\", \"$status\")";
-  mysql_query($query) or die(mysql_error());
-  $testResultId = mysql_insert_id() or die(mysql_error());
-  return $testResultId;
-  
-}
-/*******************************************************************************
-* mysql> describe programs;
-* +-------+------------+------+-----+---------+----------------+
-* | Field | Type       | Null | Key | Default | Extra          |
-* +-------+------------+------+-----+---------+----------------+
-* | id    | int(11)    |      | PRI | NULL    | auto_increment |
-* | name  | mediumtext | YES  |     | NULL    |                |
-* +-------+------------+------+-----+---------+----------------+
-*
-* mysql> describe programResults;
-* +--------------------+---------+------+-----+---------+----------------+
-* | Field              | Type    | Null | Key | Default | Extra          |
-* +--------------------+---------+------+-----+---------+----------------+
-* | id                 | int(11) |      | PRI | NULL    | auto_increment |
-* | testId             | int(11) | YES  |     | NULL    |                |
-* | nightId            | int(11) | YES  |     | NULL    |                |
-* | gccasTime          | double  | YES  |     | NULL    |                |
-* | bytecodeSize       | int(11) | YES  |     | NULL    |                |
-* | llcTime            | double  | YES  |     | NULL    |                |
-* | llcBetaTime        | double  | YES  |     | NULL    |                |
-* | jitTime            | double  | YES  |     | NULL    |                |
-* | gccExecuteTime     | double  | YES  |     | NULL    |                |
-* | cbeExecuteTime     | double  | YES  |     | NULL    |                |
-* | llcExecuteTime     | double  | YES  |     | NULL    |                |
-* | llcBetaExecuteTime | double  | YES  |     | NULL    |                |
-* | jitExecuteTime     | double  | YES  |     | NULL    |                |
-* +--------------------+---------+------+-----+---------+----------------+
-*
-*
-*
-*******************************************************************************/
-function addProgramResult($programLine, $configId, $prefix) {
-  if (!$programLine) {
-    return;
-  }
-  
-  // Skip headers
-  $subpatterns = array();
-  if (preg_match("/^Program,(.+)/", $programLine, $subpatterns)) {
-    return;
-  }
-
-  $results = split(",", $programLine);
-  
-  // If the output order changes, so must this
-  if(count($results) != 15) {
-    return;
-  }
-  
-  $program = $results[0];
-  $program = $prefix . $program;
-  $gccasTime = $results[1];
-  $byteCodeSize = $results[2];
-  $llcTime = $results[3];
-  $llcBetaTime = $results[4];
-  $jitTime = $results[5];
-  $gccRunTime = $results[6];
-  $cbeRunTime = $results[7];
-  $llcRunTime = $results[8];
-  $llcBetaRunTime = $results[9];
-  $jitRunTime = $results[10];
-    
-  // Get id for program name 
-  $sqlQuery = "SELECT id FROM programs WHERE name=\"$program\"";
-  $result = mysql_query($sqlQuery) or die(mysql_error());
-  $row = mysql_fetch_assoc($result);
-  
-  if($row) {
-    $id = $row['id']; 
-  }
-  else {
-    $sqlQuery = "INSERT into programs (name) VALUES (\"$program\")";
-    mysql_query($sqlQuery) or die(mysql_error());
-    $id =  mysql_insert_id() or die(mysql_error());
-  }
-    
-  $query = "INSERT INTO programResults (testId, nightId, gccasTime, 
-                                        bytecodeSize, llcTime, llcBetaTime, 
-                                        jitTime, gccExecuteTime, 
-                                        cbeExecuteTime, llcExecuteTime,
-                                        llcBetaExecuteTime, jitExecuteTime)" .
-    " VALUES (\"$id\", \"$configId\", \"$gccasTime\", \"$byteCodeSize\",
-              \"$llcTime\", \"$llcBetaTime\", \"$jitTime\", \"$gccRunTime\",
-              \"$cbeRunTime\", \"$llcRunTime\", \"$llcBetaRunTime\",
-              \"$jitRunTime\")";
-  
-  mysql_query($query) or die(mysql_error());
-}
-
-/*******************************************************************************
-* mysql> describe files;
-* +----------+----------+------+-----+---------+----------------+
-* | Field    | Type     | Null | Key | Default | Extra          |
-* +----------+----------+------+-----+---------+----------------+
-* | id       | int(11)  |      | PRI | NULL    | auto_increment |
-* | filename | tinytext | YES  |     | NULL    |                |
-* +----------+----------+------+-----+---------+----------------+
-*
-*
-* mysql> describe fileSizes;
-* +---------+---------+------+-----+---------+----------------+
-* | Field   | Type    | Null | Key | Default | Extra          |
-* +---------+---------+------+-----+---------+----------------+
-* | id      | int(11) |      | PRI | NULL    | auto_increment |
-* | fileId  | int(11) | YES  |     | NULL    |                |
-* | nightId | int(11) | YES  |     | NULL    |                |
-* | size    | int(11) | YES  |     | NULL    |                |
-* +---------+---------+------+-----+---------+----------------+
-*
-* Adds a file and its size to the database.
-*******************************************************************************/
-function addFileSize($file, $size, $configId) {
-  
-  // Get file id
-  $query = "SELECT id FROM files WHERE filename=\"$file\"";
-  $result = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($result);
-  
-  if($row) {
-    $id = $row['id']; 
-  }
-  else {
-    $sqlQuery = "INSERT into files (filename) VALUES (\"$file\")";
-    mysql_query($sqlQuery) or die(mysql_error());
-    $id =  mysql_insert_id() or die(mysql_error());
-  }
-  
-  $insertQuery = "INSERT INTO fileSizes (fileId, nightId, size) VALUES".
-  " (\"$id\", \"$configId\", \"$size\")";
-  mysql_query($insertQuery) or die(mysql_error());
-}
-
-/*******************************************************************************
-*
-* mysql> describe llvmStats;
-* +-------+----------+------+-----+---------+----------------+
-* | Field | Type     | Null | Key | Default | Extra          |
-* +-------+----------+------+-----+---------+----------------+
-* | id    | int(11)  |      | PRI | NULL    | auto_increment |
-* | date  | datetime | YES  |     | NULL    |                |
-* | loc   | int(11)  | YES  |     | NULL    |                |
-* | files | int(11)  | YES  |     | NULL    |                |
-* | dirs  | int(11)  | YES  |     | NULL    |                |
-* +-------+----------+------+-----+---------+----------------+
-* 5 rows in set (0.00 sec)
-*
-* Updates the loc, num files, and num dirs for the date. 
-*
-*******************************************************************************/
-function updateLLVMStats($date, $loc, $files, $dirs, $configId) {
-    $query = "INSERT INTO llvmStats (date, loc, files, dirs, nightId) VALUES (\"$date\", \"$loc\", \"$files\", \"$dirs\", \"$configId\")";
-    mysql_query($query) or die(mysql_error());
-}
-
-/*******************************************************************************
-*
-* Match one substring and return string result.
-*
-*******************************************************************************/
-function matchOne($pattern, $string, $default) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return rtrim($subpatterns[1]);
-  }
-  
-  return $default;
-}
-
-/*******************************************************************************
-*
-* Match all substrings and return array result.
-*
-*******************************************************************************/
-function match($pattern, $string) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return $subpatterns;
-  }
-  
-  return array();
-}
-
-
-function shutdown($mysql_link) {
- mysql_close($mysql_link); 
-}
-
-
-
-/*******************************************************************************
-*
-* Begin processing data
-*
-*******************************************************************************/
-
-function acceptTestResults() {
-  //print "content-type: text/text\n\n";
-  
-  // Database connection info
-  $database = "llvmTestResults";
-  $loginname = "llvm";
-  $password = "ll2002vm";
-  
-  // Connect to database
-  $mysql_link = mysql_connect("127.0.0.1", $loginname, $password) or die("Error: could not connect to database!");
-  
-  mysql_select_db($database) or die("Error: could not find \"$database\" database!");
-  
-  if ($print_debug) {
-    print "Database connected\n";
-  }
-  
-  
-// Extract the machine information (FIXME: create regex)
-$machine_data = $_POST['machine_data'];
-
-if (!isset($_POST['machine_data'])) {
-  shutdown($mysql_link);
-}
-
-$MACHINE_DATA = split("\n", $machine_data);
-$uname    = matchOne("/uname\:\s*(.+)/",    $MACHINE_DATA[0], "");
-$hardware = matchOne("/hardware\:\s*(.+)/", $MACHINE_DATA[1], "");
-$os       = matchOne("/os\:\s*(.+)/",       $MACHINE_DATA[2], "");
-$hostname = matchOne("/name\:\s*(.+)/",     $MACHINE_DATA[3], "");
-$date     = matchOne("/date\:\s*(.+)/",     $MACHINE_DATA[4], "");
-$time     = matchOne("/time\:\s*(.+)/",     $MACHINE_DATA[5], "");
-$nickname = $_POST['nickname'];
-
-$targetTriple = $_POST['target_triple'];
-
-//Get machine id or add new machine
-$machineId = getMachineID($targetTriple, $hostname, $nickname);
-
-if(!$machineId) {
-  shutdown($mysql_link); 
-}
-
-//Extract addition test run information, bail out if missing starttime
-if( !isset($_POST['starttime']) ) {
-  shutdown($mysql_link);
-}
-           
-$runDateTime = $_POST['starttime'];
-$gcc_version = $_POST['gcc_version']; 
-$cvsCpuTime = $_POST['cvscheckouttime_cpu'];
-$cvsWallTime = $_POST['cvscheckouttime_wall'];
-$configureWallTime = $_POST['configtime_wall'];
-$configureCpuTime = $_POST['configtime_cpu'];
-$buildCpuTime = $_POST['buildtime_cpu'];
-$buildWallTime = $_POST['buildtime_wall'];
-$dejagnuCpuTime = $_POST['dejagnutime_cpu'];
-$dejagnuWallTime = $_POST['dejagnutime_wall'];
-$cvsFilesAdded = $_POST['cvsaddedfiles'];
-$cvsFilesRemoved = $_POST['cvsremovedfiles'];
-$cvsFilesModified = $_POST['cvsmodifiedfiles'];
-$cvsUsersAdd = $_POST['cvsusercommitlist'];
-$cvsUsersCO = $_POST['cvsuserupdatelist'];
-$warnings = $_POST['warnings'];
-$warningsAdded = $_POST['warnings_removed'];
-$warningsRemoved = $_POST['warnings_added'];
-$buildstatus = $_POST['buildstatus'];
-
-
-// Add new test run config
-$testRunConfigId = addTestRunConfig($runDateTime, $machineId, $machineUname, 
-                                    $gccVersion, $cvsCpuTime, $cvsWallTime, 
-                                    $configureCpuTime, $configureWallTime,
-                                    $buildCpuTime, 
-                                    $buildWallTime, $dejagnuCpuTime,
-                                    $dejagnuWallTime, $warnings, $warningsAdded, 
-                                    $warningsRemoved, $cvsUsersAdd, $cvsUsersCO, 
-                                    $cvsFilesAdded, $cvsFilesRemoved, $cvsFilesModified,
-                                    $buildStatus);
-
-
-//Print data obtained so far
-if ($print_debug) {
-
-  print "Machine ID: $machineId\n";
-  print "TargetTriple: $targetTriple\n";
-  print "Hostname: $hostname\n";
-  print "Nickname: $nickname\n";
- 
-  print "\n";
-  print "Test Run Config ID: $testRunConfigID\n";
-  print "Start Time: $runDateTime\n";
-  print "Uname: $uname\n";
-  print "GCC Version: $gccVersion\n";
-  print "Cvs Cpu Time: $cvsCpuTime\n";
-  print "Cvs Wall Time: $cvsWallTime\n";
-  print "Configure Cpu Time: $configureCpuTime\n";
-  print "Configure Wall Time: $configureWallTime\n";
-  print "Build Cpu Time: $buildCpuTime\n";
-  print "Build Wall Time: $buildWallTime\n";
-  print "Dejagnu Cpu Time: $dejagnuCupTime\n";
-  print "Dejagnu Wall Time: $dejagnuWallTime\n";
-  print "Warnings: $warnings\n";
-  print "Warnings Added: $warningsAdded\n";
-  print "Warnings Removed: $warningsRemoved\n";
-  print "Cvs Files Added: $cvsFilesAdded\n";
-  print "Cvs Files Removed: $cvsFilesRemoved\n";
-  print "Cvs Files Modified: $cvsFilesModified\n";
-  print "Cvs Users Commit: $cvsUsersAdd\n";
-  print "Cvs Users Checkout: $cvsUsersCO\n";
-  print "Build Status: $buildStatus\n";
-
-}
-
-// Extract dejagnu tests and their results
-$dejagnutests_results = $_POST['dejagnutests_results'];
-if (!isset($dejagnutests_results)) {
-  $dejagnutests_results = "";
-}
-$DEJAGNUTESTS_RESULTS = split("\n", $dejagnutests_results);
-
-foreach ($DEJAGNUTESTS_RESULTS as $info) {
-  $subpatterns = array();
-  if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.[^:]+):?/", $info, $subpatterns)) {
-    list($ignore, $result, $program) = $subpatterns;
-    if($program) {
-      addDejagnuTestResult($program, $result, $testRunConfigId);
-      if($print_debug) {
-        print "Program: $program\n";
-        print "Result: $result\n";
-      }
-    }
-  }
-}
-
-// Extract single source, multisource, and external tests into the database
-$singlesource_tests = $_POST['singlesource_programstable'];
-if (!isset($singlesource_tests)) {
-  $singlesource_tests = "";
-}
-$ss_programs = split("\n", $singlesource_tests);
-
-foreach ($ss_programs as $programLine) {
-  addProgramResult($programLine, $testRunConfigId, "SingleSource/"); 
-}
-
-$multisource_tests = $_POST['multisource_programstable'];
-if (!isset($multisource_tests)) {
-  $multisource_tests = "";
-}
-$ms_programs = split("\n", $multisource_tests);
-
-foreach ($ms_programs as $programLine) {
-  addProgramResult($programLine, $testRunConfigId, "MultiSource/"); 
-}
-
-$external_tests = $_POST['externalsource_programstable'];
-if (!isset($external_tests)) {
-  $external_tests = "";
-}
-$ext_programs = split("\n", $external_tests);
-
-foreach ($ext_programs as $programLine) {
-  addProgramResult($programLine, $testRunConfigId, "External/"); 
-}
-
-// Extract ofile sizes
-$o_file_size = $_POST['o_file_sizes']; 
-if (!isset($o_file_size)) {
-  $o_file_size = "";
-}
-$o_file_size = rtrim($o_file_size);
-$O_FILE_SIZE = split("\n", $o_file_size);
-
-foreach ($O_FILE_SIZE as $info) {
-  list($ignore, $size, $file, $type) = match("/(.+)\s+(.+)\s+(.+)/", $info);
-  addFileSize($file, $size, $testRunConfigId, $type);
-}
-
-// Extract afile sizes
-$a_file_size = $_POST['a_file_sizes']; 
-if (!isset($a_file_size)) {
-  $a_file_size = "";
-}
-$a_file_size = rtrim($a_file_size);
-$A_FILE_SIZE = split("\n", $a_file_size);
-
-foreach ($A_FILE_SIZE as $info) {
-  list($ignore, $size, $file, $type) = match("/(.+)\s+(.+)\s+(.+)/", $info);
-  addFileSize($file, $size, $testRunConfigId, $type);
-}
-
-// Extract code size
-$loc = $_POST['lines_of_code'];
-$filesincvs = $_POST['cvs_file_count'];
-$dirsincvs = $_POST['cvs_dir_count'];
-if(strcmp($buildstatus, "OK") ==  0) {
-  
-  // only update loc if successful build
-  updateLLVMStats($runDateTime, $loc, $filesincvs, $dirsincvs, $testRunConfigId);
-}
-
-shutdown($mysql_link);
-}
-
-?>
diff --git a/nightly-test-server/NewTestingGuide.html b/nightly-test-server/NewTestingGuide.html
deleted file mode 100644
index c597c5b..0000000
--- a/nightly-test-server/NewTestingGuide.html
+++ /dev/null
@@ -1,627 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-                      "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-  <title>LLVM Test Suite Guide</title>
-  <link rel="stylesheet" href="llvm.css" type="text/css">
-</head>
-<body>
-      
-<div class="doc_title">
-  LLVM Test Suite Guide
-</div>
-
-<ol>
-  <li><a href="#overview">Overview</a></li>
-  <li><a href="#Requirements">Requirements</a></li>
-  <li><a href="#quick">Quick Start</a></li>
-  <li><a href="#org">LLVM Test Suite Organization</a>
-    <ul>
-      <li><a href="#codefragments">Code Fragments</a></li>
-      <li><a href="#wholeprograms">Whole Programs</a></li>
-    </ul>
-  </li>
-  <li><a href="#tree">LLVM Test Suite Tree</a></li>
-  <li><a href="#dgstructure">DejaGNU Structure</a></li>
-  <li><a href="#progstructure"><tt>llvm-test</tt> Structure</a></li>
-  <li><a href="#run">Running the LLVM Tests</a>
-    <ul>
-      <li><a href="#customtest">Writing custom tests for llvm-test</a></li>
-    </ul>
-  </li>
-  <li><a href="#nightly">Running the nightly tester</a></li>
-</ol>
-
-<div class="doc_author">
-  <p>Written by John T. Criswell, <a
-  href="http://llvm.x10sys.com/rspencer">Reid Spencer</a>, and Tanya Lattner</p>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="overview">Overview</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>This document is the reference manual for the LLVM test suite.  It documents
-the structure of the LLVM test suite, the tools needed to use it, and how to add
-and run tests.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="Requirements">Requirements</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>In order to use the LLVM test suite, you will need all of the software
-required to build LLVM, plus the following:</p>
-
-<dl>
-<dt><a href="http://www.gnu.org/software/dejagnu/">DejaGNU</a></dt>
-<dd>The Feature and Regressions tests are organized and run by DejaGNU.</dd>
-<dt><a href="http://expect.nist.gov/">Expect</a></dt>
-<dd>Expect is required by DejaGNU.</dd>
-<dt><a href="http://www.tcl.tk/software/tcltk/">tcl</a></dt>
-<dd>Tcl is required by DejaGNU. </dd>
-
-<dt><a href="http://www.netlib.org/f2c">F2C</a></dt>
-<dd>For now, LLVM does not have a Fortran front-end, but using F2C, we can run
-Fortran benchmarks.  F2C support must be enabled via <tt>configure</tt> if not
-installed in a standard place.  F2C requires three items: the <tt>f2c</tt>
-executable, <tt>f2c.h</tt> to compile the generated code, and <tt>libf2c.a</tt>
-to link generated code.  By default, given an F2C directory <tt>$DIR</tt>, the
-configure script will search <tt>$DIR/bin</tt> for <tt>f2c</tt>,
-<tt>$DIR/include</tt> for <tt>f2c.h</tt>, and <tt>$DIR/lib</tt> for
-<tt>libf2c.a</tt>.  The default <tt>$DIR</tt> values are: <tt>/usr</tt>,
-<tt>/usr/local</tt>, <tt>/sw</tt>, and <tt>/opt</tt>.  If you installed F2C in a
-different location, you must tell <tt>configure</tt>:
-
-<ul>
-<li><tt>./configure --with-f2c=$DIR</tt><br>
-This will specify a new <tt>$DIR</tt> for the above-described search
-process.  This will only work if the binary, header, and library are in their
-respective subdirectories of <tt>$DIR</tt>.</li>
-
-<li><tt>./configure --with-f2c-bin=/binary/path --with-f2c-inc=/include/path
---with-f2c-lib=/lib/path</tt><br>
-This allows you to specify the F2C components separately.  Note: if you choose
-this route, you MUST specify all three components, and you need to only specify
-<em>directories</em> where the files are located; do NOT include the
-filenames themselves on the <tt>configure</tt> line.</li>
-</ul></dd>
-</dl>
-
-<p>Darwin (Mac OS X) developers can simplify the installation of Expect and tcl
-by using fink.  <tt>fink install expect</tt> will install both. Alternatively,
-Darwinports users can use <tt>sudo port install expect</tt> to install Expect
-and tcl.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="quick">Quick Start</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>The tests are located in two separate CVS modules. The basic feature and 
-regression tests are in the main "llvm" module under the directory 
-<tt>llvm/test</tt>. A more comprehensive test suite that includes whole 
-programs in C and C++ is in the <tt>llvm-test</tt> module. This module should 
-be checked out to the <tt>llvm/projects</tt> directory. When you
-<tt>configure</tt> the <tt>llvm</tt> module, the <tt>llvm-test</tt> module
-will be automatically configured. Alternatively, you can configure the
- <tt>llvm-test</tt> module manually.</p>
-<p>To run all of the simple tests in LLVM using DejaGNU, use the master Makefile
- in the <tt>llvm/test</tt> directory:</p>
-<pre>
-% gmake -C llvm/test
-</pre>
-or<br>
-<pre>
-% gmake check
-</pre>
-
-<p>To run only a subdirectory of tests in llvm/test using DejaGNU (ie.
-Regression/Transforms), just set the TESTSUITE variable to the path of the
-subdirectory (relative to <tt>llvm/test</tt>):</p>
-<pre>
-% gmake -C llvm/test TESTSUITE=Regression/Transforms
-</pre>
-
-<p><b>Note: If you are running the tests with <tt>objdir != subdir</tt>, you
-must have run the complete testsuite before you can specify a
-subdirectory.</b></p>
-
-<p>To run the comprehensive test suite (tests that compile and execute whole 
-programs), run the <tt>llvm-test</tt> tests:</p>
-
-<pre>
-% cd llvm/projects
-% cvs co llvm-test
-% cd llvm-test
-% ./configure --with-llvmsrc=$LLVM_SRC_ROOT --with-llvmobj=$LLVM_OBJ_ROOT
-% gmake
-</pre>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="org">LLVM Test Suite Organization</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>The LLVM test suite contains two major categories of tests: code
-fragments and whole programs. Code fragments are in the <tt>llvm</tt> module
-under the <tt>llvm/test</tt> directory. The whole programs
-test suite is in the <tt>llvm-test</tt> module under the main directory.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection"><a name="codefragments">Code Fragments</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Code fragments are small pieces of code that test a specific feature of LLVM
-or trigger a specific bug in LLVM.  They are usually written in LLVM assembly
-language, but can be written in other languages if the test targets a particular
-language front end.</p>
-
-<p>Code fragments are not complete programs, and they are never executed to
-determine correct behavior.</p> 
-
-<p>These code fragment tests are located in the <tt>llvm/test/Features</tt> and 
-<tt>llvm/test/Regression</tt> directories.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection"><a name="wholeprograms">Whole Programs</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Whole Programs are pieces of code which can be compiled and linked into a
-stand-alone program that can be executed.  These programs are generally written
-in high level languages such as C or C++, but sometimes they are written
-straight in LLVM assembly.</p>
-
-<p>These programs are compiled and then executed using several different
-methods (native compiler, LLVM C backend, LLVM JIT, LLVM native code generation,
-etc).  The output of these programs is compared to ensure that LLVM is compiling
-the program correctly.</p>
-
-<p>In addition to compiling and executing programs, whole program tests serve as
-a way of benchmarking LLVM performance, both in terms of the efficiency of the
-programs generated as well as the speed with which LLVM compiles, optimizes, and
-generates code.</p>
-
-<p>All "whole program" tests are located in the <tt>llvm-test</tt> CVS
-module.</p> 
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="tree">LLVM Test Suite Tree</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>Each type of test in the LLVM test suite has its own directory. The major
-subtrees of the test suite directory tree are as follows:</p>
-    
-<ul>
-<li><tt>llvm/test/Features</tt>
-<p>This directory contains sample codes that test various features of the
-LLVM language.  These pieces of sample code are run through various
-assembler, disassembler, and optimizer passes.</p>
-</li>
-
-<li><tt>llvm/test/Regression</tt>
-<p>This directory contains regression tests for LLVM.  When a bug is found
-in LLVM, a regression test containing just enough code to reproduce the
-problem should be written and placed somewhere underneath this directory.
-In most cases, this will be a small piece of LLVM assembly language code,
-often distilled from an actual application or benchmark.</p>
-</li>
-
-<li><tt>llvm-test</tt>
-<p>The <tt>llvm-test</tt> CVS module contains programs that can be compiled 
-with LLVM and executed.  These programs are compiled using the native compiler
-and various LLVM backends.  The output from the program compiled with the 
-native compiler is assumed correct; the results from the other programs are
-compared to the native program output and pass if they match.</p>
-
-<p>In addition for testing correctness, the <tt>llvm-test</tt> directory also
-performs timing tests of various LLVM optimizations.  It also records
-compilation times for the compilers and the JIT.  This information can be
-used to compare the effectiveness of LLVM's optimizations and code
-generation.</p></li>
-
-<li><tt>llvm-test/SingleSource</tt>
-<p>The SingleSource directory contains test programs that are only a single 
-source file in size.  These are usually small benchmark programs or small 
-programs that calculate a particular value.  Several such programs are grouped 
-together in each directory.</p></li>
-
-<li><tt>llvm-test/MultiSource</tt>
-<p>The MultiSource directory contains subdirectories which contain entire 
-programs with multiple source files.  Large benchmarks and whole applications 
-go here.</p></li>
-
-<li><tt>llvm-test/External</tt>
-<p>The External directory contains Makefiles for building code that is external
-to (i.e., not distributed with) LLVM.  The most prominent members of this
-directory are the SPEC 95 and SPEC 2000 benchmark suites.  The presence and
-location of these external programs is configured by the llvm-test
-<tt>configure</tt> script.</p></li>
-      
-</ul>
-
-</div>
-<!--=========================================================================-->
-<div class="doc_section"><a name="dgstructure">DejaGNU Structure</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-<p>The LLVM test suite is partially driven by DejaGNU and partially
-driven by GNU Make. Specifically, the Features and Regression tests
-are all driven by DejaGNU. The <tt>llvm-test</tt>
-module is currently driven by a set of Makefiles.</p>
-
-<p>The DejaGNU structure is very simple, but does require some
-information to be set. This information is gathered via <tt>configure</tt> and
-is written to a file, <tt>site.exp</tt> in <tt>llvm/test</tt>. The
-<tt>llvm/test</tt>
-Makefile does this work for you.</p>
-
-<p>In order for DejaGNU to work, each directory of tests must have a
-<tt>dg.exp</tt> file. This file is a program written in tcl that calls
-the <tt>llvm-runtests</tt> procedure on each test file. The
-llvm-runtests procedure is defined in
-<tt>llvm/test/lib/llvm-dg.exp</tt>. Any directory that contains only
-directories does not need the <tt>dg.exp</tt> file.</p>
-
-<p>In order for a test to be run, it must contain information within
-the test file on how to run the test. These are called <tt>RUN</tt>
-lines. Run lines are specified in the comments of the test program
-using the keyword <tt>RUN</tt> followed by a colon, and lastly the
-commands to execute. These commands will be executed in a bash script,
-so any bash syntax is acceptable. You can specify as many RUN lines as
-necessary.  Each RUN line translates to one line in the resulting bash
-script. Below is an example of legal RUN lines in a <tt>.ll</tt>
-file:</p>
-<pre>
-; RUN: llvm-as < %s | llvm-dis > %t1
-; RUN: llvm-dis < %s.bc-13 > %t2
-; RUN: diff %t1 %t2
-</pre>
-<p>There are a couple patterns within a <tt>RUN</tt> line that the
-llvm-runtest procedure looks for and replaces with the appropriate
-syntax:</p>
-
-<dl style="margin-left: 25px">
-<dt>%p</dt> 
-<dd>The path to the source directory. This is for locating
-any supporting files that are not generated by the test, but used by
-the test.</dd> 
-<dt>%s</dt> 
-<dd>The test file.</dd> 
-
-<dt>%t</dt>
-<dd>Temporary filename: testscript.test_filename.tmp, where
-test_filename is the name of the test file. All temporary files are
-placed in the Output directory within the directory the test is
-located.</dd> 
-
-<dt>%prcontext</dt> 
-<dd>Path to a script that performs grep -C. Use this since not all
-platforms support grep -C.</dd>
-
-<dt>%llvmgcc</dt> <dd>Full path to the llvm-gcc executable.</dd>
-<dt>%llvmgxx</dt> <dd>Full path to the llvm-g++ executable.</dd>
-</dl>
-
-<p>There are also several scripts in the llvm/test/Scripts directory
-that you might find useful when writing <tt>RUN</tt> lines.</p>
-
-<p>Lastly, you can easily mark a test that is expected to fail on a
-specific platform or with a specific version of llvmgcc by using the
- <tt>XFAIL</tt> keyword. Xfail lines are
-specified in the comments of the test program using <tt>XFAIL</tt>,
-followed by a colon, and one or more regular expressions (separated by
-a comma) that will match against the target triplet or llvmgcc version for the
-machine. You can use * to match all targets. You can specify the major or full
- version (i.e. 3.4) for llvmgcc. Here is an example of an
-<tt>XFAIL</tt> line:</p>
-<pre>
-; XFAIL: darwin,sun,llvmgcc4
-</pre>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="progstructure"><tt>llvm-test</tt> 
-Structure</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>As mentioned previously, the <tt>llvm-test</tt> module  provides three types
-of tests: MultiSource, SingleSource, and External.  Each tree is then subdivided
-into several categories, including applications, benchmarks, regression tests,
-code that is strange grammatically, etc.  These organizations should be
-relatively self explanatory.</p>
-
-<p>In addition to the regular "whole program"  tests, the <tt>llvm-test</tt>
-module also provides a mechanism for compiling the programs in different ways.
-If the variable TEST is defined on the gmake command line, the test system will
-include a Makefile named <tt>TEST.&lt;value of TEST variable&gt;.Makefile</tt>.
-This Makefile can modify build rules to yield different results.</p>
-
-<p>For example, the LLVM nightly tester uses <tt>TEST.nightly.Makefile</tt> to
-create the nightly test reports.  To run the nightly tests, run <tt>gmake
-TEST=nightly</tt>.</p>
-
-<p>There are several TEST Makefiles available in the tree.  Some of them are
-designed for internal LLVM research and will not work outside of the LLVM
-research group.  They may still be valuable, however, as a guide to writing your
-own TEST Makefile for any optimization or analysis passes that you develop with
-LLVM.</p>
-
-<p>Note, when configuring the <tt>llvm-test</tt> module, you might want to
-specify the following configuration options:</p>
-<dl>
-  <dt><i>--enable-spec2000</i>
-  <dt><i>--enable-spec2000=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of SPEC2000 when testing LLVM.  This is disabled by default
-    (unless <tt>configure</tt> finds SPEC2000 installed).  By specifying
-    <tt>directory</tt>, you can tell configure where to find the SPEC2000
-    benchmarks.  If <tt>directory</tt> is left unspecified, <tt>configure</tt>
-    uses the default value
-    <tt>/home/vadve/shared/benchmarks/speccpu2000/benchspec</tt>.
-    <p>
-  <dt><i>--enable-spec95</i>
-  <dt><i>--enable-spec95=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of SPEC95 when testing LLVM.  It is similar to the
-    <i>--enable-spec2000</i> option.
-    <p>
-  <dt><i>--enable-povray</i>
-  <dt><i>--enable-povray=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of Povray as an external test.  Versions of Povray written
-    in C should work.  This option is similar to the <i>--enable-spec2000</i>
-    option.
-</dl>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="run">Running the LLVM Tests</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>First, all tests are executed within the LLVM object directory tree.  They
-<i>are not</i> executed inside of the LLVM source tree. This is because the
-test suite creates temporary files during execution.</p>
-
-<p>The master Makefile in llvm/test is capable of running only the DejaGNU
-driven tests. By default, it will run all of these tests.</p>
-
-<p>To run only the DejaGNU driven tests, run <tt>gmake</tt> at the
-command line in <tt>llvm/test</tt>.  To run a specific directory of tests, use
-the TESTSUITE variable.
-</p>
-
-<p>For example, to run the Regression tests, type 
-<tt>gmake TESTSUITE=Regression</tt> in <tt>llvm/tests</tt>.</p>
-
-<p>Note that there are no Makefiles in <tt>llvm/test/Features</tt> and
-<tt>llvm/test/Regression</tt>. You must use DejaGNU from the <tt>llvm/test</tt>
-directory to run them.</p>
-
-<p>To run the <tt>llvm-test</tt> suite, you need to use the following steps:
-</p>
-<ol>
-  <li>cd into the llvm/projects directory</li>
-  <li>check out the <tt>llvm-test</tt> module with:<br/>
-  <tt>cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -PR llvm-test</tt><br> 
-  This will get the test suite into <tt>llvm/projects/llvm-test</tt></li>
-  <li>configure the test suite. You can do this one of two ways:
-  <ol>
-    <li>Use the regular llvm configure:<br/>
-    <tt>cd $LLVM_OBJ_ROOT ; $LLVM_SRC_ROOT/configure</tt><br/>
-    This will ensure that the <tt>projects/llvm-test</tt> directory is also
-    properly configured.</li>
-    <li>Use the <tt>configure</tt> script found in the <tt>llvm-test</tt> source
-    directory:<br/>
-    <tt>$LLVM_SRC_ROOT/projects/llvm-test/configure
-     --with-llvmsrc=$LLVM_SRC_ROOT --with-llvmobj=$LLVM_OBJ_ROOT</tt>
-    </li>
-  </ol>
-  <li>gmake</li>
-</ol>
-<p>Note that the second and third steps only need to be done once. After you
-have the suite checked out and configured, you don't need to do it again (unless
-the test code or configure script changes).</p>
-
-<p>To make a specialized test (use one of the
-<tt>llvm-test/TEST.&lt;type&gt;.Makefile</tt>s), just run:<br/>
-<tt>gmake TEST=&lt;type&gt; test</tt><br/>For example, you could run the
-nightly tester tests using the following commands:</p>
-
-<pre>
- % cd llvm/projects/llvm-test
- % gmake TEST=nightly test
-</pre>
-
-<p>Regardless of which test you're running, the results are printed on standard
-output and standard error.  You can redirect these results to a file if you
-choose.</p>
-
-<p>Some tests are known to fail.  Some are bugs that we have not fixed yet;
-others are features that we haven't added yet (or may never add).  In DejaGNU,
-the result for such tests will be XFAIL (eXpected FAILure).  In this way, you
-can tell the difference between an expected and unexpected failure.</p>
-
-<p>The tests in <tt>llvm-test</tt> have no such feature at this time. If the
-test passes, only warnings and other miscellaneous output will be generated.  If
-a test fails, a large &lt;program&gt; FAILED message will be displayed.  This
-will help you separate benign warnings from actual test failures.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection">
-<a name="customtest">Writing custom tests for llvm-test</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Assuming you can run llvm-test, (e.g. "<tt>gmake TEST=nightly report</tt>"
-should work), it is really easy to run optimizations or code generator
-components against every program in the tree, collecting statistics or running
-custom checks for correctness.  At base, this is how the nightly tester works,
-it's just one example of a general framework.</p>
-
-<p>Lets say that you have an LLVM optimization pass, and you want to see how
-many times it triggers.  First thing you should do is add an LLVM
-<a href="ProgrammersManual.html#Statistic">statistic</a> to your pass, which
-will tally counts of things you care about.</p>
-
-<p>Following this, you can set up a test and a report that collects these and
-formats them for easy viewing.  This consists of two files, an
-"<tt>llvm-test/TEST.XXX.Makefile</tt>" fragment (where XXX is the name of your
-test) and an "<tt>llvm-test/TEST.XXX.report</tt>" file that indicates how to
-format the output into a table.  There are many example reports of various
-levels of sophistication included with llvm-test, and the framework is very
-general.</p>
-
-<p>If you are interested in testing an optimization pass, check out the
-"libcalls" test as an example.  It can be run like this:<p>
-
-<div class="doc_code">
-<pre>
-% cd llvm/projects/llvm-test/MultiSource/Benchmarks  # or some other level
-% make TEST=libcalls report
-</pre>
-</div>
-
-<p>This will do a bunch of stuff, then eventually print a table like this:</p>
-
-<div class="doc_code">
-<pre>
-Name                                  | total | #exit |
-...
-FreeBench/analyzer/analyzer           | 51    | 6     | 
-FreeBench/fourinarow/fourinarow       | 1     | 1     | 
-FreeBench/neural/neural               | 19    | 9     | 
-FreeBench/pifft/pifft                 | 5     | 3     | 
-MallocBench/cfrac/cfrac               | 1     | *     | 
-MallocBench/espresso/espresso         | 52    | 12    | 
-MallocBench/gs/gs                     | 4     | *     | 
-Prolangs-C/TimberWolfMC/timberwolfmc  | 302   | *     | 
-Prolangs-C/agrep/agrep                | 33    | 12    | 
-Prolangs-C/allroots/allroots          | *     | *     | 
-Prolangs-C/assembler/assembler        | 47    | *     | 
-Prolangs-C/bison/mybison              | 74    | *     | 
-...
-</pre>
-</div>
-
-<p>This basically is grepping the -stats output and displaying it in a table.
-You can also use the "TEST=libcalls report.html" target to get the table in HTML
-form, similarly for report.csv and report.tex.</p>
-
-<p>The source for this is in llvm-test/TEST.libcalls.*.  The format is pretty
-simple: the Makefile indicates how to run the test (in this case, 
-"<tt>opt -simplify-libcalls -stats</tt>"), and the report contains one line for
-each column of the output.  The first value is the header for the column and the
-second is the regex to grep the output of the command for.  There are lots of
-example reports that can do fancy stuff.</p>
-
-</div>
-
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="nightly">Running the nightly tester</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>
-The <a href="http://llvm.org/testresults/">LLVM Nightly Testers</a>
-automatically check out an LLVM tree, build it, run the "nightly" 
-program test (described above), run all of the feature and regression tests, 
-delete the checked out tree, and finally submit the test results to the
-llvm nightlytest results server.  This tester is designed to ensure that 
-programs don't break as well as keep track of LLVM's progress over time.</p>
-
-<p>If you'd like to set up an instance of the nightly tester to run on your
-machine, take a look at the comments at the top of the
-<tt>utils/NightlyTest.pl</tt> file.  We usually run it from a crontab entry
-that looks like this:</p>
-
-<div class="doc_code">
-<pre>
-5 3 * * *  $HOME/llvm/utils/NightlyTest.pl -parallel $CVSROOT \
-           $HOME/buildtest $HOME/cvs/testresults
-</pre>
-</div>
-
-<p>Or, you can create a shell script to encapsulate the running of the script.
-The optimized x86 Linux nightly test is run from just such a script:</p>
-
-<div class="doc_code">
-<pre>
-#!/bin/bash
-BASE=/proj/work/llvm/nightlytest
-export CVSROOT=:pserver:anon@llvm.org:/var/cvs/llvm
-export BUILDDIR=$BASE/build 
-export WEBDIR=$BASE/testresults 
-export LLVMGCCDIR=/proj/work/llvm/cfrontend/install
-export PATH=/proj/install/bin:$LLVMGCCDIR/bin:$PATH
-export LD_LIBRARY_PATH=/proj/install/lib
-cd $BASE
-cp /proj/work/llvm/llvm/utils/NightlyTest.pl .
-nice ./NightlyTest.pl -nice -release -verbose -parallel -enable-linscan \
-   -noexternals 2&gt;&amp;1 &gt; output.log
-mail -s 'X86 nightly tester results' <a href="http://mail.cs.uiuc.edu/mailman/\
-   listinfo/llvm-testresults">llvm-testresults@cs.uiuc.edu</a> &lt; output.log
-</pre>
-</div>
-
-<p>Please examine the LLVM Nightly Tester Page and choose a nickname for your 
-machine that has that has not already been used. You can specify the 
-nickname that will appear on the Nightly Tester Page for your machine by 
-using the flag  <tt>-nickname YourNickname</tt> when you invoke 
-<tt>NightlyTest.pl</tt>.
-
-<p>Take a look at the <tt>NightlyTest.pl</tt> file to see what all of the flags
-and strings do.  If you start running the nightly tests, please let us know. 
-Thanks!</p>
-
-</div>
-
-<!-- *********************************************************************** -->
-
-<hr>
-<address>
-  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
-  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
-  <a href="http://validator.w3.org/check/referer"><img
-  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
-
-  John T. Criswell, Reid Spencer, and Tanya Lattner<br>
-  <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br/>
-  Last modified: $Date$
-</address>
-</body>
-</html>
diff --git a/nightly-test-server/NightlyTestAccept.php b/nightly-test-server/NightlyTestAccept.php
deleted file mode 100755
index d4d9e05..0000000
--- a/nightly-test-server/NightlyTestAccept.php
+++ /dev/null
@@ -1,988 +0,0 @@
-<?php
-/*******************************************************************************
- *
- * Background: Written on June 1st 2006 by Patrick Jenkins <pjenkins@apple.com>
- * to accept test results  from the llvm NightlyTest.pl script.
- * Rewritten by Jim Laskey to use php, so that we can reuse code in
- * ProgramResults.php
- *
- *******************************************************************************/
- 
-/*******************************************************************************
- *
- * Start response early for debugging purposes
- *
- *******************************************************************************/
-print "content-type: text/text\n\n";
-
-$print_debug = 0;
-$print_env = 0;
-
-
-if ($print_debug) {
-  print "Debug Printing On\n";
-}
-
-if ($print_env) {
-  foreach ($_ENV as $key => $value) {
-    print "_ENV $key => $value<br>\n";
-  }
-  
-  foreach ($_SERVER as $key => $value) {
-    print "_SERVER $key => $value<br>\n";
-  }
-  
-  foreach ($_GET as $key => $value) {
-    print "_GET $key => $value<br>\n";
-  }
-  
-  foreach ($_POST as $key => $value) {
-    print "_POST $key => $value<br>\n";
-  }
-  
-  foreach ($_COOKIE as $key => $value) {
-    print "_COOKIE $key => $value<br>\n";
-  }
-  
-  foreach ($_FILES as $key => $value) {
-  print "_FILES $key => $value<br>\n";
-  }
-  
-  // Same as _POST
-  foreach ($_REQUEST as $key => $value) {
-    print "_REQUEST $key => $value<br>\n";
-  }
-}
-
-/*******************************************************************************
- *
- * Include support code
- *
- *******************************************************************************/
-
-if(!(include "NightlyTester.php")){
-  print "Error: could not load necessary files!\n";
-  die();
-}
-
-if(!(include"ProgramResults.php")){
-  print "Error: could not load necessary files!\n";
-  die();
-}
-
-if(!(include"AcceptTestResults.php")){
-  print "Error: could not load necessary files!\n";
-  die();
-}
-
-if ($print_debug) {
-  print "Support Included\n";
-}
-
-/*******************************************************************************
- *
- * Some methods to help the process
- *
- *******************************************************************************/
- 
-/*******************************************************************************
- *
- * Test if two values are equal as strings
- *
- *******************************************************************************/
-function StringEqual($value1, $value2) {
-  return strcmp("$value1", "$value2") == 0;
-}
-
-/*******************************************************************************
- *
- * Test if a value is equal to null string
- *
- *******************************************************************************/
-function StringIsNull($value) {
-  return strlen("$value") == 0;
-}
-
-/*******************************************************************************
- *
- * Opens a file handle to the specified filename, then writes the contents out,
- * and finally closes the filehandle.
- *
- *******************************************************************************/
-function WriteFile($filename, $contents) {
-  $file = fopen($filename, "w") or die("Could not open file $filename for writing");
-  fwrite($file, $contents) or die("Could not write to file $filename");
-  fclose($file);
-}
-
-/*******************************************************************************
- *
- * Queries database to see if there is a machine with the same uname as
- * the value passed in
- *
- *******************************************************************************/
-function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) {
-  $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\"";
-
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-    
-  if ($row) {
-    return true;
-  }
-
-  return false;
-}
-
-/*******************************************************************************
- *
- * mysql> describe machine;
- * +-----------+----------+------+-----+---------+----------------+
- * | Field     | Type     | Null | Key | Default | Extra          |
- * +-----------+----------+------+-----+---------+----------------+
- * | id        | int(11)  |      | PRI | NULL    | auto_increment |
- * | uname     | text     |      |     |         |                |
- * | hardware  | text     |      |     |         |                |
- * | os        | text     |      |     |         |                |
- * | name      | text     |      |     |         |                |
- * | nickname  | tinytext | YES  |     | NULL    |                |
- * | gcc       | text     | YES  |     | NULL    |                |
- * | directory | text     | YES  |     | NULL    |                |
- * +-----------+----------+------+-----+---------+----------------+
- * 8 rows in set (0.00 sec)
- *
- *
- * Creates an entry in the machine table in the database
- *
- *******************************************************************************/
-function AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, $directory) {
-  $query = "INSERT INTO machine (uname, hardware, os, name, nickname, gcc, directory) " .
-           "VALUES (\"$uname\",\"$hardware\",\"$os\",\"$name\",\"$nickname\",\"$gcc_version\",\"$directory\")";
-  $insert_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($insert_query);
-}
-
-/*******************************************************************************
- *
- * Returns the id number of the machine with the passed in uname
- *
- *******************************************************************************/
-function GetMachineIdNum($uname, $hardware, $os, $name, $nickname, $gcc_version) {
-  $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\"";
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-
-  if($row) {
-    return $row['id'];
-  } else {
-    return -1;
-  }
-}
-
-/*******************************************************************************
- *Since this is ugly, iv included an example call and a view of the table.
- *
- * +---------------------+------------+------+-----+---------+----------------+
- * | Field               | Type       | Null | Key | Default | Extra          |
- * +---------------------+------------+------+-----+---------+----------------+
- * | id                  | int(11)    |      | PRI | NULL    | auto_increment |
- * | machine             | text       |      |     |         |                |
- * | added               | datetime   | YES  |     | NULL    |                |
- * | buildstatus         | tinytext   | YES  |     | NULL    |                |
- * | getcvstime_cpu      | double     | YES  |     | NULL    |                |
- * | getcvstime_wall     | double     | YES  |     | NULL    |                |
- * | configuretime_cpu   | double     | YES  |     | NULL    |                |
- * | configuretime_wall  | double     | YES  |     | NULL    |                |
- * | buildtime_cpu       | double     | YES  |     | NULL    |                |
- * | buildtime_wall      | double     | YES  |     | NULL    |                |
- * | dejagnutime_cpu     | double     | YES  |     | NULL    |                |
- * | dejagnutime_wall    | double     | YES  |     | NULL    |                |
- * | warnings            | mediumtext | YES  |     | NULL    |                |
- * | warnings_added      | text       | YES  |     | NULL    |                |
- * | warnings_removed    | text       | YES  |     | NULL    |                |
- * | teststats_exppass   | int(11)    | YES  |     | NULL    |                |
- * | teststats_unexpfail | int(11)    | YES  |     | NULL    |                |
- * | teststats_expfail   | int(11)    | YES  |     | NULL    |                |
- * | all_tests           | text       | YES  |     | NULL    |                |
- * | passing_tests       | text       | YES  |     | NULL    |                |
- * | unexpfail_tests     | text       | YES  |     | NULL    |                |
- * | expfail_tests       | text       | YES  |     | NULL    |                |
- * | newly_passing_tests | text       | YES  |     | NULL    |                |
- * | newly_failing_tests | text       | YES  |     | NULL    |                |
- * | new_tests           | text       | YES  |     | NULL    |                |
- * | removed_tests       | text       | YES  |     | NULL    |                |
- * | cvs_added           | text       | YES  |     | NULL    |                |
- * | cvs_removed         | text       | YES  |     | NULL    |                |
- * | cvs_modified        | text       | YES  |     | NULL    |                |
- * | cvs_usersadd        | text       | YES  |     | NULL    |                |
- * | cvs_usersco         | text       | YES  |     | NULL    |                |
- * | a_file_size         | text       | YES  |     | NULL    |                |
- * | o_file_size         | text       | YES  |     | NULL    |                |
- * +---------------------+------------+------+-----+---------+----------------+
- *
- *
- *******************************************************************************/
-
-function CreateNight($machine_id,
-                $added,
-                $buildstatus,
-                $getcvstime_cpu,
-                $getcvstime_wall,
-                $configuretime_cpu,
-                $configuretime_wall,
-                $buildtime_cpu,
-                $buildtime_wall,
-                $dejagnutime_cpu,
-                $dejagnutime_wall,
-                $warnings,
-                $warnings_added,
-                $warnings_removed,
-                $teststats_exppass,
-                $teststats_unexpfail,
-                $teststats_expfail,
-                $all_tests,
-                $passing_tests,
-                $unexpfail_tests,
-                $expfail_tests,
-                $newly_passing_tests,
-                $newly_failing_tests,
-                $new_tests,
-                $removed_tests,
-                $cvs_added,
-                $cvs_removed,
-                $cvs_modified,
-                $cvs_usersadd,
-                $cvs_usersco,
-                $a_file_size,
-                $o_file_size) {
-  $query = "INSERT INTO night (".
-      "machine, added, buildstatus, configuretime_cpu, configuretime_wall," .
-      "getcvstime_cpu, getcvstime_wall, buildtime_cpu, buildtime_wall," .
-      "dejagnutime_cpu, dejagnutime_wall, warnings, warnings_added, warnings_removed," .
-      "teststats_exppass, teststats_unexpfail, teststats_expfail," .
-      "all_tests, passing_tests, unexpfail_tests, expfail_tests," .
-      "newly_passing_tests, newly_failing_tests, new_tests, removed_tests," .
-      "cvs_added, cvs_removed, cvs_modified, cvs_usersadd, cvs_usersco" .
-      ") VALUES (".
-      "\"$machine_id\", \"$added\", \"$buildstatus\", \"$configuretime_cpu\", \"$configuretime_wall\"," .
-      "\"$getcvstime_cpu\", \"$getcvstime_wall\", \"$buildtime_cpu\", \"$buildtime_wall\"," .
-      "\"$dejagnutime_cpu\", \"$dejagnutime_wall\", \"$warnings\", \"$warnings_added\", \"$warnings_removed\"," .
-      "\"$teststats_exppass\", \"$teststats_unexpfail\", \"$teststats_expfail\"," .
-      "\"$all_tests\", \"$passing_tests\", \"$unexpfail_tests\", \"$expfail_tests\", \"$newly_passing_tests\"," .
-      "\"$newly_failing_tests\", \"$new_tests\", \"$removed_tests\", \"$cvs_added\"," .
-      "\"$cvs_removed\", \"$cvs_modified\", \"$cvs_usersadd\", \"$cvs_usersco\"" .
-      ")";
-  $insert_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($insert_query);
-  
-  $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\"";
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-  
-  if($row) {
-    return $row['id'];
-  } else {
-    return -1;
-  }
-}
-
-/*******************************************************************************
- *******************************************************************************/
-function GetMachineNights($machine_id) {
-  $result = array();
-  $query = "SELECT * FROM night WHERE machine = \"$machine_id\"";
-  $night_query = mysql_query($query) or die(mysql_error());
-  while ($row = mysql_fetch_assoc($night_query)) {
-    array_push($result, $row['id']);
-  }
-  mysql_free_result($night_query);
-  return $result;
-}
-
-/*******************************************************************************
- *
- * mysql> describe program;
- * +---------+---------+------+-----+---------+-------+
- * | Field   | Type    | Null | Key | Default | Extra |
- * +---------+---------+------+-----+---------+-------+
- * | program | text    |      |     |         |       |
- * | result  | text    | YES  |     | NULL    |       |
- * | type    | text    | YES  |     | NULL    |       |
- * | night   | int(11) |      |     | 0       |       |
- * +---------+---------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddProgram($program, $result, $type, $night) {
-  if (!StringIsNull($program)) {
-    $query = "INSERT INTO program (program, result, type, night) VALUES".
-             " (\"$program\", \"$result\", \"$type\", $night)";
-    $program_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($program_query);
-  }
-}
-
-/*******************************************************************************
- *
- * mysql> describe tests;
- * +---------+-----------------------------+------+-----+---------+-------+
- * | Field   | Type                        | Null | Key | Default | Extra |
- * +---------+-----------------------------+------+-----+---------+-------+
- * | program | tinytext                    |      |     |         |       |
- * | result  | enum('PASS','FAIL','XFAIL') |      |     | PASS    |       |
- * | measure | tinytext                    | YES  |     | NULL    |       |
- * | night   | int(11)                     | YES  |     | NULL    |       |
- * +---------+-----------------------------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddTests($program, $result, $measure, $night) {
-  if (!StringIsNull($program)) {
-    $query = "INSERT INTO tests (program, result, measure, night) VALUES".
-             " (\"$program\", \"$result\", \"$measure\", $night)";
-    $program_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($program_query);
-  }
-}
-
-
-/*******************************************************************************
- *
- * mysql> describe file;
- * +-------+---------+------+-----+---------+-------+
- * | Field | Type    | Null | Key | Default | Extra |
- * +-------+---------+------+-----+---------+-------+
- * | file  | text    |      |     |         |       |
- * | size  | int(11) |      |     | 0       |       |
- * | night | int(11) |      |     | 0       |       |
- * | type  | text    | YES  |     | NULL    |       |
- * +-------+---------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddFile($file, $size, $night, $type) {
-  $query = "INSERT INTO file (file, size, night, type) VALUES".
-           " (\"$file\", \"$size\", \"$night\", \"$type\")";
-  $file_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($file_query);
-}
-
-/*******************************************************************************
- *
- * mysql> describe code;
- * +-------+----------+------+-----+---------------------+-------+
- * | Field | Type     | Null | Key | Default             | Extra |
- * +-------+----------+------+-----+---------------------+-------+
- * | added | datetime |      |     | 0000-00-00 00:00:00 |       |
- * | loc   | int(11)  |      |     | 0                   |       |
- * | files | int(11)  |      |     | 0                   |       |
- * | dirs  | int(11)  |      |     | 0                   |       |
- * +-------+----------+------+-----+---------------------+-------+
- * 4 rows in set (0.00 sec)
- *
- * This function checks to see if the last entered values in the database
- * about code information are the same as our current information. If they
- * differ we will put our information into the database.
- *
- *******************************************************************************/
-function UpdateCodeInfo($date, $loc, $files, $dirs) {
-  $query = "SELECT * FROM code ORDER BY added DESC";
-  $code_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($code_query);
-  mysql_free_result($code_query);
-  if ($row &&
-      ($row['loc'] != $loc ||
-       $row['files'] != $files ||
-       $row['dirs'] != $dirs)) {
-    $query = "INSERT INTO code (added, loc, files, dirs) VALUES (\"$date\", \"$loc\", \"$files\", \"$dirs\")";
-    $code_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($code_query);
-  }
-}
-
-/*******************************************************************************
- *
- * Match one substring and return string result.
- *
- *******************************************************************************/
-function MatchOnePattern($pattern, $string, $default) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return rtrim($subpatterns[1]);
-  }
-  
-  return $default;
-}
-
-/*******************************************************************************
- *
- * Match all substrings and return array result.
- *
- *******************************************************************************/
-function MatchPattern($pattern, $string) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return $subpatterns;
-  }
-  
-  return array();
-}
-
-/*******************************************************************************
- *
- * ProcessProgram Test Table Logs
- *
- * The logs are start out like;
- *    Program,GCCAS,Bytecode,LLC compile,LLC-BETA compile,JIT codegen,GCC,CBE,LLC,LLC-BETA,JIT,GCC/CBE,GCC/LLC,GCC/LLC-BETA
- *    Benchmarks/CoyoteBench/almabench,0.0230,11702,0.0278,0.0211,0.0255,  15.26,  14.36,  14.40,   0.01,  16.26,1.06,1.06,-,-
- *    ...
- *
- *******************************************************************************/
-function ProcessProgramLogs($tests) {
-  $processed = array();
-  $headings = $tests[0];
-  $headings = preg_replace("/<br>/", " ", $headings);
-  $headings = split(",", $headings);
-  for ($i = 1; $i < count($tests); $i++) {
-    $results = split(",", $tests[$i]);
-    $program = $results[0];
-    $outcome = "";
-    for ($j = 1; $j < count($headings); $j++) {
-      $heading = $headings[$j];
-      $result = $results[$j];
-      $outcome .= "$heading: $result, ";
-    }
-    $processed[$program] = $outcome;
-  }
-  return $processed;
-}
- 
-/*******************************************************************************
- *
- * Setting up variables
- *
- *******************************************************************************/
-function acceptTest() {
- 
-  // If no nickname is set, die here
-  if (!isset($_POST['nickname'])) {
-    return;
-  }
- 
-  $database = "nightlytestresults";
-  $loginname = "llvm";
-  $password = "ll2002vm";
-  
-  // connect to database
-  $mysql_link = mysql_connect("127.0.0.1", $loginname, $password) or die("Error: could not connect to database!");
-  mysql_select_db($database) or die("Error: could not find \"$database\" database!");
-  
-  if ($print_debug) {
-    print "Database connected\n";
-  }
-  
-  
-  if ($print_debug) {
-    print "Reading _POST Variables\n";
-  }
-
-  $spliton ="\n";
-
-  $machine_data = $_POST['machine_data'];
-  if (!isset($machine_data)) {
-    $machine_data = "";
-  }
-  $MACHINE_DATA = split($spliton, $machine_data);
-
-  $cvs_log = $_POST['cvs_data'];
-  if (!isset($cvs_log)) {
-    $cvs_log = "";
-  }
-  $CVS_LOG = split($spliton, $cvs_log);
-
-  $build_log = $_POST['build_data'];
-  if (!isset($build_log)) {
-    $build_log = "";
-  }
-  $BUILD_LOG = split($spliton, $build_log);
-
-  $dejagnutests_results = $_POST['dejagnutests_results'];
-  if (!isset($dejagnutests_results)) {
-    $dejagnutests_results = "";
-  }
-  $DEJAGNUTESTS_RESULTS = split($spliton, $dejagnutests_results);
-
-  $dejagnutests_log = $_POST['dejagnutests_log'];
-  if (!isset($dejagnutests_log)) {
-    $dejagnutests_log = "";
-  }
-  $DEJAGNUTESTS_LOG = split($spliton, $dejagnutests_log);
-
-  $singlesource_tests = $_POST['singlesource_programstable'];
-  if (!isset($singlesource_tests)) {
-    $singlesource_tests = "";
-  }
-  $SINGLESOURCE_TESTS = split($spliton, $singlesource_tests);
-
-  $multisource_tests = $_POST['multisource_programstable'];
-  if (!isset($multisource_tests)) {
-    $multisource_tests = "";
-  }
-  $MULTISOURCE_TESTS = split($spliton, $multisource_tests);
-
-  $external_tests = $_POST['externalsource_programstable'];
-  if (!isset($external_tests)) {
-    $external_tests = "";
-  }
-  $EXTERNAL_TESTS = split($spliton, $external_tests);
-
-  $o_file_size = $_POST['o_file_sizes']; 
-  if (!isset($o_file_size)) {
-    $o_file_size = "";
-  }
-  $o_file_size = rtrim($o_file_size);
-  $O_FILE_SIZE = split($spliton, $o_file_size);
-
-  $a_file_size = $_POST['a_file_sizes']; 
-  if (!isset($a_file_size)) {
-    $a_file_size = "";
-  }
-  $a_file_size = rtrim($a_file_size);
-  $A_FILE_SIZE = split($spliton, $a_file_size);
-
-  $filesincvs = $_POST['cvs_file_count'];
-  $dirsincvs = $_POST['cvs_dir_count'];
-  $loc = $_POST['lines_of_code'];
-  $nickname = $_POST['nickname'];
-  $cvscheckouttime_cpu = $_POST['cvscheckouttime_cpu'];
-  $cvscheckouttime_wall = $_POST['cvscheckouttime_wall'];
-  $configtime_wall = $_POST['configtime_wall'];
-  $configtime_cpu = $_POST['configtime_cpu'];
-  $buildtime_cpu = $_POST['buildtime_cpu'];
-  $buildtime_wall = $_POST['buildtime_wall'];
-  $dejagnutime_cpu = $_POST['dejagnutime_cpu'];
-  $dejagnutime_wall = $_POST['dejagnutime_wall'];
-  $buildwarnings = $_POST['warnings'];
-  $cvsaddedfiles = $_POST['cvsaddedfiles'];
-  $cvsremovedfiles = $_POST['cvsremovedfiles'];
-  $cvsmodifiedfiles = $_POST['cvsmodifiedfiles'];
-  $cvsusercommitlist = $_POST['cvsusercommitlist'];
-  $cvsuserupdatelist = $_POST['cvsuserupdatelist'];
-  $buildstatus = $_POST['buildstatus'];
-  $warnings_added = $_POST['warnings_removed'];
-  $warnings_removed = $_POST['warnings_added'];
-  $all_tests = $_POST['all_tests'];
-  $unexpfail_tests = $_POST['unexpfail_tests'];
-  $passing_tests = $_POST['passing_tests'];
-  $expfail_tests = $_POST['expfail_tests'];
-  $newly_passing_tests = $_POST['newly_passing_tests'];
-  $newly_failing_tests = $_POST['newly_failing_tests'];
-  $new_tests = $_POST['new_tests'];
-  $removed_tests = $_POST['removed_tests'];
-  $gcc_version = $_POST['gcc_version'];            
-  $warnings = $_POST['warnings'];            
-  $lines_of_code = $_POST['lines_of_code'];
-
-  if ($print_debug) {
-    print "Finished Reading _POST Variables\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Extracting the machine information
-   *
-   *******************************************************************************/
-  $uname    = MatchOnePattern("/uname\:\s*(.+)/",    $MACHINE_DATA[0], "");
-  $hardware = MatchOnePattern("/hardware\:\s*(.+)/", $MACHINE_DATA[1], "");
-  $os       = MatchOnePattern("/os\:\s*(.+)/",       $MACHINE_DATA[2], "");
-  $name     = MatchOnePattern("/name\:\s*(.+)/",     $MACHINE_DATA[3], "");
-  $date     = MatchOnePattern("/date\:\s*(.+)/",     $MACHINE_DATA[4], "");
-  $time     = MatchOnePattern("/time\:\s*(.+)/",     $MACHINE_DATA[5], "");
-
-  if ($print_debug) {
-    print "uname: $uname\n";
-    print "hardware: $hardware\n";
-    print "os: $os\n";
-    print "name: $name\n";
-    print "date: $date\n";
-    print "time: $time\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Extracting the dejagnu test numbers
-   *
-   *******************************************************************************/
-
-  $dejagnu_exp_passes     = MatchOnePattern("/\# of expected passes\s*([0-9]+)/",   $dejagnutests_log, 0);
-  $dejagnu_unexp_failures = MatchOnePattern("/unexpected failures\s*([0-9]+)/",     $dejagnutests_log, 0);
-  $dejagnu_exp_failures   = MatchOnePattern("/\# of expected failures\s*([0-9]+)/", $dejagnutests_log, 0);
-
-  if ($print_debug) {
-    print "dejagnu_exp_passes: $dejagnu_exp_passes\n";
-    print "dejagnu_unexp_failures: $dejagnu_unexp_failures\n";
-    print "dejagnu_exp_failures: $dejagnu_exp_failures\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Processing Program Test Table Logs
-   *
-   *******************************************************************************/
-   
-  $singlesource_processed = ProcessProgramLogs($SINGLESOURCE_TESTS);
-  $multisource_processed = ProcessProgramLogs($MULTISOURCE_TESTS);
-  $external_processed = ProcessProgramLogs($EXTERNAL_TESTS);
-
-  if ($print_debug) {
-    $singlesource_processed_count = count($singlesource_processed);
-    $multisource_processed_count = count($multisource_processed);
-    $external_processed_count = count($external_processed);
-    print "singlesource_processed#: $singlesource_processed_count\n";
-    print "multisource_processed#: $multisource_processed_count\n";
-    print "external_processed#: $external_processed_count\n";
-  }
-
-  /*******************************************************************************
-   *
-   * creating the response
-   *
-   *******************************************************************************/
-  if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) {
-    AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test");
-  }
-  $machine_id = GetMachineIdNum($uname, $hardware, $os, $name, $nickname, $gcc_version);
-
-  if ($print_debug) {
-    print "machine_id: $machine_id\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Submitting information to database
-   *
-   *******************************************************************************/
-  $db_date = date("Y-m-d H:i:s");
-  $blank="";
-  $night_id= CreateNight($machine_id, $db_date, $buildstatus, 
-              $configtime_cpu, $configtime_wall, $cvscheckouttime_cpu,
-              $cvscheckouttime_wall, $buildtime_cpu, $buildtime_wall,
-              $dejagnutime_cpu, $dejagnutime_wall, $warnings, 
-              $warnings_added, $warnings_removed,
-              $dejagnu_exp_passes, $dejagnu_unexp_failures, $dejagnu_exp_failures,
-              $blank, $blank, $blank,       // $all_tests, $passing_tests, $unexpfail_tests, 
-              $blank, $blank, $blank,       // $expfail_tests, $TestsFixed, $TestsBroken,
-              $blank, $blank,               // $TestsAdded, $TestsRemoved,
-              $cvsaddedfiles, $cvsremovedfiles, $cvsmodifiedfiles,
-              $cvsusercommitlist, $cvsuserupdatelist);
-
-  if ($print_debug) {
-    print "db_date: $db_date\n";
-    print "night_id: $night_id\n";
-  }
-
-  foreach ($singlesource_processed as $key => $value) {
-     AddProgram($key, $value, "singlesource", $night_id); 
-  }
-
-  foreach ($multisource_processed as $key => $value) {
-     AddProgram($key, $value, "multisource", $night_id); 
-  }
-
-  foreach ($external_processed as $key => $value) {
-     AddProgram($key, $value, "external", $night_id); 
-  }
-
-  if ($print_debug) {
-    print "Programs Added\n";
-  }
-
-  foreach ($O_FILE_SIZE as $info) {
-    list($ignore, $size, $file, $type) = MatchPattern("/(.+)\s+(.+)\s+(.+)/", $info);
-    AddFile($file, $size, $night_id, $type);
-  }
-
-  if ($print_debug) {
-    $O_FILE_SIZE_COUNT = count($O_FILE_SIZE);
-    print "o file sizes#: $O_FILE_SIZE_COUNT\n";
-  }
-
-  foreach ($A_FILE_SIZE as $info) {
-    list($ignore, $size, $file, $type) = MatchPattern("/(.+)\s+(.+)\s+(.+)/", $info);
-    AddFile($file, $size, $night_id, $type);
-  }
-
-  if ($print_debug) {
-    $A_FILE_SIZE_COUNT = count($A_FILE_SIZE);
-    print "a file sizes#: $A_FILE_SIZE_COUNT\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Adding test results pass/fail/xfail status to database
-   *
-   *******************************************************************************/
-  $ALL_TESTS = split("\n", $all_tests);
-  foreach ($ALL_TESTS as $info) {
-    $subpatterns = array();
-    if (preg_match("/(TEST-)?(XPASS|PASS|XFAIL|FAIL):\s(.+?)\s(.+)/", $info, $subpatterns)) {
-      list($ignore1, $ignore2, $result, $measure, $program) = $subpatterns;
-      AddTests($program, $result, $measure, $night_id);
-    }
-  }
-
-  if ($print_debug) {
-    print "Program Tests Added\n";
-  }
-
-  foreach ($DEJAGNUTESTS_RESULTS as $info) {
-    $subpatterns = array();
-    if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns)) {
-      list($ignore, $result, $program) = $subpatterns;
-      AddTests($program, $result, "dejagnu", $night_id);
-    }
-  }
-
-  if ($print_debug) {
-    print "Dejagnu Test Results Added\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Adding lines of code to the database
-   *
-   *******************************************************************************/
-  if(StringEqual($buildstatus, "OK")) {
-    // only update loc if successful build
-    UpdateCodeInfo($db_date, $loc, $filesincvs, $dirsincvs);
-  }
-
-  print "received ${_SERVER['CONTENT_LENGTH']} bytes\n";
-           
-  $nights = GetMachineNights($machine_id);
-  $length = count($nights);
-  print "DB date : $db_date\n";
-  print "Machine $machine_id now has ids [$nights]{$length} ".
-        "associated with it in the database\n";
-
-  /*******************************************************************************
-   *
-   * building hash of arrays of signifigant changes to place into the nightly
-   * test results email. This is ugly code and is somewhat of a hack. However, it
-   * adds very useful information to the nightly test email.
-   *
-   *******************************************************************************/
-  $query = "SELECT id FROM night WHERE id<$night_id AND machine=$machine_id AND ".
-           "buildstatus=\"OK\" ORDER BY id DESC";
-  $night_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($night_query);
-  $prev_night = $row['id'];
-  if (!isset($prev_night)) {
-    $prev_night = $night_id;
-  }
-  mysql_free_result($night_query);
-
-  if ($print_debug) {
-    print "prev_night: $prev_night\n";
-  }
-
-  $query = "SELECT * FROM program WHERE night=$night_id";
-  $program_query = mysql_query($query) or die(mysql_error());
-
-  $prog_hash_new = array();
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = $row['type']."/".$row['program'];
-    $result = $row['result'];
-    $prog_hash_new[$program] = $result;
-  }
-  mysql_free_result($program_query);
-
-  if ($print_debug) {
-    print "Gathered all tonight\'s programs\n";
-  }
-
-  $query = "SELECT * FROM program WHERE night=$prev_night";
-  $program_query = mysql_query($query) or die(mysql_error());
-
-  $prog_hash_old = array();
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = $row['type']."/".$row['program'];
-    $result = $row['result'];
-    $prog_hash_old[$program] = $result;
-  }
-  mysql_free_result($program_query);
-
-  if ($print_debug) {
-    print "Gathered all previous night\'s programs\n";
-  }
-
-  $monitoring = array("Bytecode", "CBE", "GCCAS", "JIT", "LLC", "LLC-BETA", "LLC compile", "LLC-BETA compile");
-  $output_big_changes = array();
-  foreach ($prog_hash_new as $prog => $prog_new) {
-    $prog_old = $prog_hash_old[$prog];
-      
-    // get data from server
-    $vals_new = split(", ", $prog_new);
-    $vals_old = split(", ", $prog_old);
-    
-    // get list of values measured from newest test
-    $new_measures = array();
-    foreach ($vals_new as $measure) {
-      list($measure, $value) = split(": ", $measure);
-      $new_measures[$measure] = $value;
-    }
-    
-    // get list of values measured from older test
-    $old_measures = array();
-    foreach ($vals_old as $measure) {
-      list($measure, $value) = split(": ", $measure);
-      $old_measures[$measure] = $value;
-    }
-
-    // put measures into hash of arrays
-    foreach ($monitoring as $measure) {
-      $value_new = MatchOnePattern("/(\d+\.?\d*)/", $new_measures[$measure], "");
-      $value_old = MatchOnePattern("/(\d+\.?\d*)/", $old_measures[$measure], "");
-      
-      if (StringIsNull($value_new) || StringIsNull($value_old)) continue;
-      
-      $diff = ($value_old - $value_new);
-      $perc = 0;
-      
-      if ($value_old != 0 && ($diff > 0.2 || $diff < -0.2) ) {
-        $perc = ($diff / $value_old) * 100;
-      }
-      
-      if ($perc > 5 || $perc < -5) {
-        $changes = $output_big_changes[$measure];
-        
-        if (!isset($changes)) {
-          $changes = array();
-        }
-        
-        $rounded_perc = sprintf("%1.2f", $perc);
-        array_push($changes, "$prog: $rounded_perc% ($value_old => $value_new)\n");
-        $output_big_changes[$measure] = $changes;
-      }
-    }
-  }
-
-  if ($print_debug) {
-    print "Determined measures\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Determining changes in new tests and old tests
-   *
-   *******************************************************************************/
-   
-  $removed = getRemovedTests($night_id, $prev_night);
-  $added = getNewTests($night_id, $prev_night);
-  $passing = getFixedTests($night_id, $prev_night);
-  $failing = getBrokenTests($night_id, $prev_night);
-
-  if ($print_debug) {
-    print "Determined changes in new tests and old tests\n";
-  }
-
-  /*******************************************************************************
-   *
-   * Encode date for file name use
-   *
-   *******************************************************************************/
-   
-  $db_date = preg_replace("/ /", "_", $db_date);
-
-  /*******************************************************************************
-   *
-   * Sending email to nightly test email archive
-   *
-   *******************************************************************************/
-  $link_to_page="http://llvm.org/nightlytest/test.php?machine=$machine_id&".
-                "night=$night_id";
-  $email  = "$link_to_page\n";
-  $email .= "Name: $name\n";
-  $email .= "Nickname: $nickname\n";
-  $email .= "Buildstatus: $buildstatus\n";
-
-  if(StringEqual($buildstatus, "OK")) {
-    if (StringIsNull($passing)) {
-      $passing = "None";
-    } 
-    $email .= "\nNew Test Passes:\n$passing\n";
-    if (StringIsNull($failing)) {
-      $failing = "None";
-    } 
-    $email .= "\nNew Test Failures:\n$failing\n";
-    if (StringIsNull($added)) {
-      $added = "None";
-    } 
-    $email .= "\nAdded Tests:\n$added\n";
-    if (StringIsNull($removed)) {
-      $removed= "None";
-    } 
-    $email .= "\nRemoved Tests:\n$removed\n";
-
-    $email .= "\nSignificant changes in test results:\n";
-    foreach ($output_big_changes as $measure => $values) {
-      $email.= "$measure:\n";
-      foreach ($values as $value) {
-        $email.= " $value";
-      }
-    }
-  }
-  else{
-    $email .= "\nBuildlog available at http://llvm.org/nightlytest/".
-              "machines/$db_date-Build-Log.txt\n";
-  }
-
-  $email_addr = "llvm-testresults\@cs.uiuc.edu";
-  `echo "$email" | mail -s '$nickname $hardware nightly tester results' $email_addr`;
-
-  /*******************************************************************************
-   *
-   * writing logs to directory
-   *
-   *******************************************************************************/
-  $cwd = getcwd();
-
-  if (!file_exists('machines')) {
-    mkdir('machines', 777);
-  }
-  chdir("$cwd/machines");
-
-  if (!file_exists("$machine_id")) {
-    mkdir("$machine_id", 777);
-  }
-  chdir("$cwd/machines/$machine_id");
-
-  WriteFile("$db_date-Build-Log.txt", $build_log);
-
-  $sentdata="";
-  foreach ($_GET as $key => $value) {
-    if(strpos($value, "\n") == 0) {
-      $sentdata .= "'$key'  =>  \"$value\",\n";
-    } else {
-      $sentdata .= "'$key'  =>  <<EOD\n$value\nEOD\n,\n";
-    }
-  }
-  foreach ($_POST as $key => $value) {
-    if(strpos($value, "\n") == 0) {
-      $sentdata .= "'$key'  =>  \"$value\",\n";
-    } else {
-      $sentdata .= "'$key'  =>  <<EOD\n$value\nEOD\n,\n";
-    }
-  }
-  WriteFile("$db_date-senddata.txt", $sentdata);
-
-
-  mysql_close($mysql_link);
-}
-
-acceptTest();
-acceptTestResults();
-?>
diff --git a/nightly-test-server/NightlyTester.php b/nightly-test-server/NightlyTester.php
deleted file mode 100644
index 067d9d3..0000000
--- a/nightly-test-server/NightlyTester.php
+++ /dev/null
@@ -1,362 +0,0 @@
-<?php
-
-$meaningfull_names = array('getcvstime_wall' => 'CVS Checkout Wall Time',
-                        'getcvstime_cpu' => 'CVS Checkout CPU Time',
-                        'configuretime_cpu' => 'Configure CPU Time',
-                        'configuretime_wall' => 'Configure Wall Time',
-                        'buildtime_cpu' => 'Build CPU Time',
-                        'buildtime_wall' => 'Build Wall Time',
-                        'dejagnutime_wall' => 'Dejagnu Wall Time',
-                        'dejagnutime_cpu' => 'Dejagnu CPU Time',
-                        'teststats_exppass' => 'Expected Test Passes',
-                        'teststats_unexpfail' => 'Unexpected Test Failures',
-                        'teststats_expfail' => 'Expected Test Failures');
-
-/*****************************************************
- *
- * Purpose: Get information about a certain machine
- * Returns: A hash of a table row with the keys
- *          being the column names 
- *
- *****************************************************/
-function getMachineInfo($machine_id){
-  $query="SELECT * FROM machine WHERE id=$machine_id";
-  $machine_query = mysql_query($query) or die ("$night failed! " . mysql_error());
-  $row = mysql_fetch_array($machine_query);
-  mysql_free_result($machine_query);
-  return $row;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about all machines
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getMachineResource(){
-  $machine_query = mysql_query("SELECT * FROM machine ORDER BY nickname ASC") or die (mysql_error());
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about machines that have 
- *          submitted a test in the last month
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getRecentMachineResource(){
-  $night_query = mysql_query("SELECT machine FROM night where DATE_SUB(NOW(), INTERVAL 14 DAY) <= added") or die (mysql_error());
-  $machines="where id=0";
-  $machine_arr = array();
-  while($row = mysql_fetch_array($night_query)){
-    if(!isset($machine_arr["{$row['machine']}"])){
-      $machine_arr["{$row['machine']}"]=1;
-      $machines.=" or id={$row['machine']}";
-    }
-  }
-  mysql_free_result($night_query);
-  $machine_query = mysql_query("SELECT * FROM machine $machines ORDER BY nickname ASC") or die (mysql_error());
-
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about machines that have not 
- *          submitted a test in the last month
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getOldMachineResource(){
-  $night_query = mysql_query("SELECT machine FROM night where DATE_SUB(NOW(), INTERVAL 1 MONTH) > added") or die (mysql_error());
-  $machines="where id=0";
-  $machine_arr = array();
-  while($row = mysql_fetch_array($night_query)){
-    if(!isset($machine_arr["{$row['machine']}"])){
-      $machine_arr["{$row['machine']}"]=1;
-      $machines.=" or id={$row['machine']}";
-    }
-  }
-  mysql_free_result($night_query);
-  $machine_query = mysql_query("SELECT * FROM machine $machines ORDER BY nickname ASC") or die (mysql_error());
-
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about a certain night
- * Returns: A hash of a table row with the keys
- *          being the column names 
- *
- *****************************************************/
-function getNightInfo($night_id){
- $query="SELECT * FROM night WHERE id=$night_id";
- $today_query = mysql_query("SELECT * FROM night WHERE id=$night_id") or die ("$query failed! " . mysql_error());
- $today_row = mysql_fetch_array($today_query);
- mysql_free_result($today_query); 
- return $today_row;
-}
-
-/*****************************************************
- *
- * Purpose: Get the nights associated with a specific machine for
- *          which buildstatus is "OK"
- * Returns: A mysql query resource. Basically something you cal
- *          mysql_fetch_array on.
- *
- *****************************************************/
-function getNightsResource($machine_id, $start="2000-01-01 01:01:01", $end="2020-12-30 01:01:01", $order="DESC"){
- $query = mysql_query("SELECT * FROM night WHERE machine=$machine_id and added<=\"$end\" and added>=\"$start\" order by added $order") or die (mysql_error());
- return $query;
-}
-
-/*****************************************************
- *
- * Purpose: Get night ids and date added associated 
- *          with a specific machine for
- *          which buildstatus is "OK"
- * Returns: A mysql result
- *
- *****************************************************/
-function getNightsIDs($machine_id, $start="2000-01-01 01:01:01", $end="2020-12-30 01:01:01", $order="DESC"){
- $query = mysql_query("SELECT id, added FROM night WHERE machine=$machine_id and added<=\"$end\" and added>=\"$start\" ORDER BY added $order") or die (mysql_error());
- return $query;
-}
-
-/*****************************************************
- *
- * Purpose: Get the history of nights given a night and 
- *          specific machine 
- * Returns: A mysql query resource. Basically something you cal
- *          mysql_fetch_array on.
- *
- *****************************************************/
-function getSuccessfulNightsHistory($machine_id, $night_id, $order="DESC"){
-  $query="SELECT * FROM night WHERE machine=$machine_id and id<=$night_id and buildstatus=\"OK\" order by added $order";
-  $query = mysql_query($query) or die (mysql_error());
-  return $query;
-}
-
-
-/*****************************************************
- *
- * Purpose: Get all the tests in the last $hours hours
- * Returns: A mysql query resource.
- *
- *****************************************************/
-function getRecentTests($hours="24"){
- $result = mysql_query("select * from night where DATE_SUB(NOW(),INTERVAL $hours HOUR)<=added ORDER BY added DESC") or die (mysql_error());
- return $result;
-}
-
-/*****************************************************
- *
- * Purpose: Calculate a date in the past given a length
- *          and an origin date.
- * Returns: A string formatted as "Year-month-day H:M:S" 
- *
- *****************************************************/
-function calculateDate($time_frame="1 YEAR", $origin_date="CURDATE()"){
- if(strpos($origin_date, "CURDATE")===false){
-  $query=mysql_query("SELECT \"$origin_date\" - INTERVAL $time_frame") or die(mysql_error());
- }
- else{
-  $query=mysql_query("SELECT $origin_date - INTERVAL $time_frame") or die(mysql_error());
- }
- $row = mysql_fetch_array($query);
- mysql_free_result($query);
- $time = $row[0];
- return $time; 
-}
-
-/*****************************************************
- *
- * Purpose: get every file size reported on a specific
- * dat=y
- * Returns: An array with the key being the name of the
- * file and the value being the size of the file.
- *
- *****************************************************/
-function getAllFileSizes($night_id){
-  $select = "select * from file WHERE night=$night_id";
-  $query = mysql_query($select) or die (mysql_error());
-  $result=array();
-  while($file = mysql_fetch_array($query)){
-    $result["{$file['file']}"]=$file['size'];
-  } 
-  mysql_free_result($query);
-  return $result;
-}
-
-/*****************************************************
- *
- * Purpose: Get a list of all sizes measured on a 
- * particular machine for a specific file
- * Returns: an array with the key being the date and
- * the value being an array containing file name, size
- * night, and build type
- *
- *****************************************************/
-function get_file_history($machine_id, $file_name){
-  $nights_select = "select id, added from night WHERE machine=$machine_id ".
-                   "order by added desc";
-  $nights_query = mysql_query($nights_select) 
-       or die (mysql_error());
-  $result = array();
-  while($row = mysql_fetch_array($nights_query)){
-  $file_select = "select * from file where night={$row['id']} and ".
-          "file=\"$file_name\"";
-  $file_query = mysql_query($file_select);
-  $file_array = mysql_fetch_array($file_query);
-  if(isset($file_array['file'])){
-    $result["{$row['added']}"]=array("{$file_array['file']}",
-                                                   "{$file_array['size']}",
-                                                   "{$file_array['type']}");
-  }//end if
-  else {
-    $result["{$row['added']}"]=array("-",
-         "-",
-         "-");
-  }
-  mysql_free_result($file_query);
- }//end while
- mysql_free_result($nights_query);
- return $result;
-}
-
-/*****************************************************
- *
- * Purpose: build a comparison table for file size changes
- * Returns: An array with the key being the name of the
- * file and the value being an array with the following
- * data: [0]size of file for specified test [1] % change
- * in file size from previous test [2] % change in file size 
- * from a test >5 tests ago. If for any reason data is not
- * not available the array will contain -.
- *
- *****************************************************/
-function buildFileSizeTable($machine_id, $night_id){
-  $result=array();
-
-  //setting up the night ids
-  $select = "select id from night WHERE id<$night_id and machine=$machine_id ".
-            "and buildstatus=\"OK\" order by added desc";
-  $query = mysql_query($select) or die (mysql_error());
-  $row=mysql_fetch_array($query);
-  
-  $cur_night=$night_id;
-  $prev_night=$row['id'];
-  for($x=0; $x<4 && $row=mysql_fetch_array($query); $x++){}
-  $old_night=$row['id'];
-  mysql_free_result($query);
-  
-  if($cur_night>0) { $cur_data=getAllFileSizes($cur_night); }
-  if($prev_night>0) { $prev_data=getAllFileSizes($prev_night); }
-  if($old_night>0) { $old_data=getAllFileSizes($old_night); }
-
-  $cur_sum=0;
-  $prev_sum=0;
-  $old_sum=0;
-  $prev_diff=0;
-  $prev_delta=0;
-  $old_diff=0;
-  $old_delta=0;
-
-  foreach (array_keys($cur_data) as $file){
-    $cur_sum+=$cur_data["$file"];
-    
-    if(isset($prev_data[$file]) && isset($cur_data["$file"])) {
-      $prev_delta= ( $cur_data["$file"] - $prev_data["$file"] );
-      $prev_diff = (($cur_data["$file"] - $prev_data["$file"]) / $prev_data["$file"] ) * 100;
-      $prev_sum+=$prev_data["$file"];
-    } else {
-      $prev_diff="-";
-    }
-
-    if(isset($old_data["$file"]) && isset($cur_data["$file"])){
-      $old_delta= ( $cur_data["$file"] - $old_data["$file"] );
-      $old_diff = (($cur_data["$file"] - $old_data["$file"]) / $old_data["$file"] ) * 100;
-      $old_sum+=$old_data["$file"];
-    } else {
-      $old_diff = "-";
-    } 
-    $result["$file"]=array($cur_data["$file"], round($prev_diff,2), $prev_delta, round($old_diff,2), $old_delta);
-  }
-
-  
-  if($old_sum>0){
-    $old_delta = ($cur_sum - $old_sum);
-    $old_diff = (($cur_sum - $old_sum) / $old_sum ) * 100;
-  } else{
-    $old_diff="-";
-  }
-
-  if($prev_sum>0){
-    $prev_delta = ($cur_sum - $prev_sum);
-    $prev_diff = (($cur_sum - $prev_sum) / $prev_sum ) * 100;
-  } else{
-    $prev_diff="-";
-  }
-
-  $result["Total Sum"] = array($cur_sum, round($prev_diff,2), $prev_delta, round($old_diff,2), $old_delta);
-
-  return $result;
-}
-
-/*****************************************************
- *
- * Example uses of each function
- *
- *****************************************************/
-/*$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-$machine_id = 8;
-$file="./test/Regression/Archive/xpg4.a";
-
-$files = get_file_history($machine_id, $file);
-
-foreach (array_keys($files) as $f){
- print "$f = > {$files["$f"][0]}<br>\n";
-}
-
-$machine_info = getMachineInfo(21);
-foreach (array_keys($machine_info) as $key){
- print "$key => {$machine_info["$key"]}<br>\n";
-}
-print "<br><br><br>\n";
-
-$night_id=-1;
-$night_resource = getNightsResource($machine_info['id']);
- while($row = mysql_fetch_array($night_resource)){
- print "added => {$row['added']}<br>\n";
- $night_id=$row['id'];
-}
-mysql_free_result($night_resource);
-print "<br><br><br>\n";
-
-
-$night_info = getNightInfo($night_id);
-print "buildstatus => {$night_info['buildstatus']}<br>\n";
-print "<br><br><br>\n";
-
-$recent_resource = getRecentTests($machine_info['id']);
- while($row = mysql_fetch_array($recent_resource)){
- print "added => {$row['added']}<br>\n";
- $night_id=$row['id'];
-}
-mysql_free_result($recent_resource);
-print "<br><br><br>\n";
-
-$my_day = calculateDate("30 WEEK");
-print "today's date - 30 weeks = $my_day<br>\n";
-print "<br><br><br>\n";
-*/
-
-
-?>
diff --git a/nightly-test-server/ProgramResults.php b/nightly-test-server/ProgramResults.php
deleted file mode 100644
index 5a8bc7a..0000000
--- a/nightly-test-server/ProgramResults.php
+++ /dev/null
@@ -1,857 +0,0 @@
-<?php
-
-$DEBUG=0;
-
-if($DEBUG){
-  $mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Could not connect to server $!\n");
-  mysql_select_db("nightlytestresults");
-}
-
-/*
- * This variable is used to determine file size cutoffs for displaying
- */
-$byte_threshold=1000;
-
-/*
- * These variables are used in determining
- * how to color table cells;
- */
-$medium_number=0;
-$medium_change=5;
-$large_number=0;
-$large_change=15;
-$crazy_number=0;
-$crazy_change=30;
-$medium_increase="#FFD0D0";
-$large_increase="#FF8080";
-$crazy_increase="#FF2020";
-$medium_decrease="#CCFFCC";
-$large_decrease="#90FF90";
-$crazy_decrease="#20FF20";
-
-$category_match=array("GCCAS","Bytecode","LLC\<br\>compile",
-          "LLC-BETA\<br\>compile","JIT\<br\>codegen","GCC",
-          "CBE","LLC","LLC-BETA","JIT","GCC\/\<br\>CBE",
-          "GCC\/\<br\>LLC","GCC\/\<br\>LLC-BETA");
-$category_array=array("GCCAS","Bytecode","LLC compile","LLC\-BETA compile",
-                 "JIT codegen","GCC","CBE","LLC",
-                 "LLC\-BETA","JIT","GCC\/\s*CBE", "GCC\/\s*LLC",
-                 "GCC\/\s*LLC\-BETA","LLC\/\s*LLC\-BETA");
-$category_print_array=array("GCCAS","Bytecode","LLC compile","LLC-BETA compile",
-                 "JIT codegen","GCC","CBE","LLC",
-                 "LLC-BETA","JIT","GCC/ CBE", "GCC/ LLC",
-                 "GCC/ LLC-BETA","LLC/ LLC-BETA");
-                 
-$category_print_array_description=array("GCCAS - Time to run LLVM optimizers on the<br>".
-                    "program.",
-                        
-                    "Bytecode - The size of the bytecode for the<br>".
-                    "program.",
-                        
-                    "LLC compile - The time taken to compile with LLC<br>".
-                    "(the static backend).",
-                    
-                    "LLC-BETA compile - The time taken compile with LLC<br>".
-                    "using experimental features.",
-                        
-                    "JIT codegen - The amount of time spent in the JIT<br>".
-                    "itself, as opposed to executing the program.",
-                    
-                    "GCC - The time taken to execute the program when<br>".
-                    "compiled with GCC -O2.",
-                    
-                    "CBE - The time taken to execute the program after<br>".
-                    "compilation through the C backend, compiled with<br>".
-                    "-O2.",
-                        
-                    "LLC - The length of time the program generated by<br>".
-                    "the static backend LLC takes to execute.",
-                    
-                    "LLC-BETA - How long the program generated by the<br>".
-                    "experimental static back end takes to execute.",
-                        
-                    "JIT codegen - The amount of time spent in the JIT<br>".
-                    "itself, as opposed to executing the program.",
-                        
-                    "GCC/CBE - The speed-up of the CBE output vs the<br>".
-                    "native GCC output: greater than 1 is a speedup,<br>".
-                    "less than 1 is a slowdown.",
-                    
-                    "GCC/LLC - The speed-up of the LLC output vs the<br>".
-                    "native GCC output: greater than 1 is a speedup,<br>".
-                    "less than 1 is a slowdown.",
-                    
-                    "GCC/ LLC-BETA - The speed-up of the LLC output<br>".
-                    "vs the native GCC output: greater than 1 is a<br>".
-                    "speedup, less than 1 is a slowdown.",
-                    
-                    "LLC/ LLC-BETA - The speed-up of the LLC output<br>".
-                    "vs the LLV-BETA output: greater than 1 is a <br>".
-                    "speedup, less than 1 is a slowdown.");
-                 
-$category_print_array_ordered=array("CBE","LLC","JIT","GCCAS",
-    "Bytecode","LLC compile","LLC-BETA compile",
-                "JIT codegen", "LLC-BETA");
-                
-$category_print_array_ordered_description=array("CBE - The time taken to execute the program after<br>".
-                        "compilation through the C backend, compiled with<br>".
-                        "-O2.",
-                        
-                        "LLC - The length of time the program generated by<br>".
-                        "the static backend LLC takes to execute.",
-                        
-                        "JIT - The amount of time spent running the program<br>".
-                        "with the JIT; this includes the code generation<br>".
-                        "phase and actually running the program.",
-                        
-                        "GCCAS - Time to run LLVM optimizers on the<br>".
-                        "program.",
-                        
-                        "Bytecode - The size of the bytecode for the<br>".
-                        "program.",
-                        
-                        "LLC compile - The time taken to compile with LLC<br>".
-                        "(the static backend).",
-                        
-                        "LLC-BETA compile - The time taken compile with LLC<br>".
-                        "using experimental features.",
-                        
-                        "JIT codegen - The amount of time spent in the JIT<br>".
-                        "itself, as opposed to executing the program.",
-                        
-                        "LLC-BETA - How long the program generated by the<br>".
-                        "experimental static back end takes to execute.");    
-
-
-/*
- * Returns an array that contains the name of the program as the 
- * index and an array as the element of the array. The first element
- * in the second array will be either "multisource", "singlesource", or
- * "extenal." 
- *
- */
-function GetDayResults($night_id, $array_of_measures ){
-  $result=array();
-  $query = "SELECT program, type, result FROM program WHERE night=$night_id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)){
-    $program = rtrim($row['program'], ": ");
-    $result[$program] = array();
-    array_push($result[$program], "{$row['type']}");
-    $index=0;
-    $data = $row['result'];
-    $data = str_replace("<br>", " ", $data);
-    foreach ($array_of_measures as $x){
-      $value=array();
-      $reg_exp="/$x:\s*([[0-9\.]+|\*|\-|n\/a|\?],)/";
-      #print "{$program} => running preg_match($reg_exp, $data, $value)<br>\n";
-      preg_match($reg_exp, $data, $value);
-      if(isset($value[1])){
-        array_push($result[$program], $value[1]);
-      }
-      else{
-        array_push($result[$program], "-");  
-      }
-      $index++;
-    }//end foreach
-  }//end while
-  mysql_free_result($program_query);
-  return $result;
-}//end function GetDayResults
-
-/*
- * returns an array with the differences of each measurement
- * for each program, It will ignore differences of $min_diff
- *
- */
-function CalculateChangeBetweenDays($yesterday_results, $today_results, $min_diff=2){
-  $result=array();
-  $medium_change=0;
-  $large_change=0;
-  $crazy_change=0;
-  foreach ( array_keys($today_results) as $x){
-    $result["$x"]=array();
-    array_push($result["$x"], "{$today_results["$x"][0]}");
-    for($y=1; $y<sizeof($today_results["$x"])-3; $y++){
-      if(isset($yesterday_results["$x"][$y]) && $yesterday_results["$x"][$y]!=0){
-        $delta=0;
-        #$delta = round($today_results["$x"][$y] - $yesterday_results["$x"][$y],2);
-        $delta = $today_results["$x"][$y] - $yesterday_results["$x"][$y];
-        if(($delta > $min_diff || $delta < (-1*$min_diff)) &&
-            $today_results["$x"][$y]!=0 &&
-            $yesterday_results["$x"][$y]!=0){
-          $result["$x"][$y-1]=(($today_results["$x"][$y] - $yesterday_results["$x"][$y])/$yesterday_results["$x"][$y])*100;
-        }
-        else{
-          $result["$x"][$y-1]="n/a";
-        }
-      }
-      else{
-        $result["$x"][$y-1]="n/a";
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['medium_change']){
-        $GLOBALS['medium_number']++;        
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['large_change']){
-        $GLOBALS['large_number']++;
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['crazy_change']){
-        $GLOBALS['crazy_number']++;
-      }
-    }//end for        
-  }//end foreach
-  return $result;
-}//end function
-
-
-function CountSignifigantDifferences($percent_difference_arr, $measure_index, $delta){
-  $result=0;
-  foreach( array_keys($percent_difference_arr) as $x ){
-    if($percent_difference_arr["$x"][$measure_index]>=$delta ||
-       $percent_difference_arr["$x"][$measure_index]<=(-1*$delta)){
-      $result++;
-    }  
-  }
-  return $result;
-}
-
-function DetermineColor($number, $def_color="white"){  
-  $result=$def_color;
-  if($number>=$GLOBALS['crazy_change']){
-    $result=$GLOBALS['crazy_increase'];
-  }
-  else if($number>=$GLOBALS['large_change']){
-    $result=$GLOBALS['large_increase'];
-  }
-  else if($number>=$GLOBALS['medium_change']){
-    $result=$GLOBALS['medium_increase'];
-  }
-  else if($number<=($GLOBALS['crazy_change']*-1)){
-    $result=$GLOBALS['crazy_decrease'];
-  }
-  else if($number<=($GLOBALS['large_change']*-1)){
-    $result=$GLOBALS['large_decrease'];
-  }
-  else if($number<=($GLOBALS['medium_change']*-1)){
-    $result=$GLOBALS['medium_decrease'];
-  }
-  return $result;
-  
-}
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change, old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getSignifigantChanges($day, $prev_day, $diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if($diff["$program"][$x]>$GLOBALS['medium_change']){
-        array_push($result, array($program, $measure[$x], $day["$program"][0], round($diff["$program"][$x],2), $prev_day["$program"][$x+1], $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change from yesterday,
- * old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getTwoDaySignifigantChanges($day, $prev_day, $diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if(strcmp($diff["$program"][$x],"-")!=0 && 
-         ($diff["$program"][$x]>$GLOBALS['medium_change'] ||
-          $diff["$program"][$x]<(-1 * $GLOBALS['medium_change']))){
-        array_push($result, 
-             array($program, 
-               $measure[$x], 
-             $day["$program"][0], 
-             round($diff["$program"][$x],2), 
-             "n/a", 
-             $prev_day["$program"][$x+1], 
-                         $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change from yesterday,
- * % change from two days ago , old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getThreeDaySignifigantChanges($day, $prev_day, $old_day, $diff, $twoday_diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if(strcmp($diff["$program"][$x],"-")!=0 && 
-         ($diff["$program"][$x]>$GLOBALS['medium_change'] ||
-          $diff["$program"][$x]<(-1 * $GLOBALS['medium_change']))){
-        array_push($result, 
-             array($program, 
-               $measure[$x], 
-             $day["$program"][0], 
-             round($diff["$program"][$x],2), 
-             round($twoday_diff["$program"][$x],2), 
-             $prev_day["$program"][$x+1], 
-                         $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * Reorders the signifigant changes array by the $index'd element
- * in the 2nd array
- *
- */
-function sortSignifigantChangeArray($changes, $index){
-  $temp_arr=array();
-  foreach (array_keys($changes) as $prog){
-    array_push($temp_arr, $changes["$prog"][$index]);
-  }
-  array_multisort($temp_arr, SORT_DESC, SORT_REGULAR, $changes, SORT_DESC, SORT_REGULAR);
-}
-
-
-/*
- * This function takes in a mysql link, start date, end date, 
- * machine id, an array of programs, and a measurement
- * and will return and array with the dates as 
- * keys and the data for each key
- * being an array containing (date in seconds since epoch, program[0], program[1], ... , 
- * program[n]) for all the data between the two dates
- */
-function buildResultsHistory($machine_id, $programs, $measure , $start="2000-01-01 01:01:01", $end="2020-01-01 01:01:01"){
-  $preg_measure = str_replace("/","\/", $measure);
-  $results_arr=array();
-  $query = "SELECT id, added FROM night WHERE machine=$machine_id ". 
-           "AND added >= \"$start\" AND added <= \"$end\" ORDER BY added DESC";
-  $night_table_query = mysql_query($query ) or die(mysql_error());
-  $night_arr=array();
-  $night_query="(";
-  while($row = mysql_fetch_assoc($night_table_query)){
-          $night_arr["{$row['id']}"]=$row['added'];
-    $results_arr["{$row['added']}"]=array();
-    preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", "{$row['added']}", $pjs);
-                $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-    array_push($results_arr["{$row['added']}"], $seconds);
-    $night_query.=" night={$row['id']} or";
-  }
-  $night_query.=" night=0 )";
-  mysql_free_result($night_table_query);
-
-  $RELEVANT_DATA=0; //will be 0 if all data is null, else will be 1
-  $prog_index=1;
-  foreach ($programs as $prog){
-    $prog=str_replace(" ", "+", $prog);
-    $query="SELECT night, result FROM program WHERE program=\"$prog\" ".
-           "AND $night_query ORDER BY night ASC";
-    $night_table_query=mysql_query($query) or die(mysql_error());
-    while($row=mysql_fetch_assoc($night_table_query)){
-      $row['result'] = str_replace("<br>", " ", "{$row['result']}");
-      $night_id=$row['night'];
-      $data="-";
-      $regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
-      preg_match($regexp, "{$row['result']}", $ans);
-      if(isset($ans[1])){
-        $data=$ans[1];
-        $RELEVANT_DATA++;
-      }//end if isset
-      $results_arr["{$night_arr["$night_id"]}"]["$prog_index"]=$data;
-    }//end while
-    mysql_free_result($night_table_query);
-    $prog_index++;
-  }//end foreach $programs
-
-  if($RELEVANT_DATA>0){
-    return $results_arr;
-  }
-  else{
-    return array();
-  }
-}
-
-/*
- * Return reasons why a llvm test failed as an array.
- */
-function getFailReasonsAsList($test_result) {
-  $result = array();
-  $phases = split(", ", $test_result);
-  
-  for ($i = 0; $i < count($phases); $i++) {
-    $phase = $phases[$i];
-    if (strpos($phase, "*") !== false) {
-      list($tool, $tool_result) = split(": ", $phase);
-      array_push($result, $tool);
-    }
-  }
-  
-  return $result;
-}
-
-/*
- * Return reasons why a llvm test failed as a string.
- */
-function FailReasonsAsString($reasons) {
-  if (count($reasons) != 0) {
-    $result = " [";
-    for ($i = 0; $i < count($reasons); $i++) {
-      if ($i != 0) {
-        $result .= ", ";
-      }
-      $result .= $reasons[$i];
-    }
-    
-    $result .= "] ";
-  }
-  
-  return $result;
-}
-
-/*
- * Trim test path to exclude redundant info.
- */
-function trimTestPath($program) {
-  $parts = split("llvm/test/", $program);
-  if ($parts != FALSE) {
-    if (count($parts) >= 2) {
-      $tail = $x[1];
-      if (isset($tail)) {
-        $program = "test/" . $tail;
-      }
-    }
-  }
-  return rtrim($program, ": ");;
-}
- 
- 
-/*
- * Get failing tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getFailures($night_id) {
-  $result="";
-  if ($night_id >= 684) {
-    $query = "SELECT program FROM tests WHERE night=$night_id AND result=\"FAIL\" ORDER BY program ASC";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)) {
-      $program = trimTestPath($row['program']);
-      $result .= $program . "\n";
-    }
-    mysql_free_result($program_query);
-
-    $query = "SELECT program, result FROM program WHERE night=$night_id ORDER BY program ASC";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)) {
-      $test_result = $row['result'];
-      if (!isTestPass($test_result)) {
-        $program = trimTestPath($row['program']);
-        $reasons = FailReasonsAsString(getFailReasonsAsList($test_result));        
-        $result .= $program . $reasons . "\n";
-      }
-    }
-    mysql_free_result($program_query);
-  }
-  return $result;
-}
-
-/*
- * Get Unexpected failing tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getUnexpectedFailures($night_id){
-  $result="";
-  if($night_id<684){
-    $query = "SELECT unexpfail_tests FROM night WHERE id = $night_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result= $row['unexpfail_tests'];
-    mysql_free_result($program_query);
-  }
-  else{
-    $query = "SELECT program FROM tests WHERE night=$night_id AND result=\"FAIL\"";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)){
-      $program = trimTestPath($row['program']);
-      $result .= $program . "\n";
-    }
-    mysql_free_result($program_query);
-  }
-  return $result;
-}
-
-/*
- * HTMLify test results
- *
- */
-function htmlifyTestResults($result) {
-  $result = preg_replace("/\n/", "<br>\n", $result);
-  $result = preg_replace("/\[/", "<font color=\"grey\">[", $result);
-  $result = preg_replace("/\]/", "]</font>", $result);
-  return $result;
- }
-
-/*
- * Get set of tests
- *
- * Returns a hash of tests for a given night.
- */
-function getTestSet($id, $table){
-  $test_hash = array();
-  $query = "SELECT program, result FROM $table WHERE night=$id";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_hash[$program] = $row['result'];
-  }
-  mysql_free_result($program_query);
-  return $test_hash;
-}
-
-/*
- * Get list of excluded tests
- *
- * Returns a list of tests for a given night that were excluded from the
- * hash.
- */
-function getExcludedTests($id, $table, $test_hash){
-  $result = "";
-  $query = "SELECT program FROM $table WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    if (!isset($test_hash[$program])) {
-      $result .= $program . "\n";
-    }
-  }
-  mysql_free_result($program_query);
-  return $result;
-}
-
-/*
- * Get New Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getNewTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT new_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['new_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestSet($prev_id, "tests");
-    $result .= getExcludedTests($cur_id, "tests", $test_hash);
-    
-    $test_hash = getTestSet($prev_id, "program");
-    $result .= getExcludedTests($cur_id, "program", $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get Removed Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getRemovedTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT removed_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['removed_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestSet($cur_id, "tests");
-    $result .= getExcludedTests($prev_id, "tests", $test_hash);
-    
-    $test_hash = getTestSet($cur_id, "program");
-    $result .= getExcludedTests($prev_id, "program", $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Does the test pass
- *
- * Return true if the test result indicates a pass.  For "tests" the possible
- * conditions are "PASS", "FAIL" and "XFAIL" (expected to fail.)
- */
-function isTestPass($test_result) {
-  return !(strcmp($test_result, "FAIL") == 0 || strpos($test_result, "*") !== false);
-}
-
-/*
- * Get set of tests that fail
- *
- * Returns a hash of tests that fail for a given night.
- */
-function getTestFailSet($id) {
-  $test_hash = array();
-  
-  $query = "SELECT program, result, measure FROM tests WHERE night=$id AND result=\"FAIL\" ORDER BY program ASC, measure ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $measure = strtoupper($row['measure']);
-    $key = "$program [$measure]";
-    $test_hash[$key] = true;
-  }
-  mysql_free_result($program_query);
-  
-  $query = "SELECT program, result FROM program WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_result = $row['result'];
-    $reasons = getFailReasonsAsList($test_result);
-    
-    if (count($reasons) != 0) {
-      $test_hash[$program] = $reasons;
-    }
-  }
-  mysql_free_result($program_query);
-  
-  return $test_hash;
-}
-
-/*
- * Get list of newly passing tests
- *
- * Returns a list of tests for a given night that were included in the
- * hash and now pass.
- */
-function getPassingTests($id, $test_hash) {
-  $passing = "";
-  $query = "SELECT program, result, measure FROM tests WHERE night=$id AND result<>\"FAIL\" ORDER BY program ASC, measure ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $measure = strtoupper($row['measure']);
-    $key = "$program [$measure]";
-    if (isset($test_hash[$key])) {
-      $passing .= "$key\n";
-    }
-  }
-  mysql_free_result($program_query);
-
-  $query = "SELECT program, result FROM program WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_result = $row['result'];
-    $new_reasons = getFailReasonsAsList($test_result);
-    $old_reasons = isset($test_hash[$program]) ? $test_hash[$program] : array();
-    $diff_reasons = array_diff($old_reasons, $new_reasons);
-
-    if (count($diff_reasons) > 0) {
-      $passing .= $program . FailReasonsAsString($diff_reasons) . "\n";   
-    }
-  }
-  mysql_free_result($program_query);
-
-  return $passing;
-}
-
-/*
- * Get Fixed Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getFixedTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT newly_passing_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['newly_passing_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestFailSet($prev_id);
-    $result .= getPassingTests($cur_id, $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get Broken Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test
- * in their own table as opposed in the night table.
- */
-function getBrokenTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT newly_failing_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['newly_failing_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestFailSet($cur_id);
-    $result .= getPassingTests($prev_id, $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get previous working night
- *
- * Returns the night id for the machine of the night passed in
- * where build status = OK
- */
-function getPreviousWorkingNight($night_id ){
-  $query = "SELECT machine FROM night WHERE id=$night_id";
-  $program_query = mysql_query($query) or die (mysql_error());
-  $row = mysql_fetch_assoc($program_query);
-  $this_machine_id=$row['machine'];
-  mysql_free_result($program_query);
-  
-  $query = "SELECT id FROM night WHERE machine=$this_machine_id ".
-           "and id<$night_id and buildstatus=\"OK\" order by added desc";
-  $program_query = mysql_query($query) or die (mysql_error());
-  $row = mysql_fetch_assoc($program_query);
-  $prev_id=$row['id'];
-  mysql_free_result($program_query);
-
-  return $prev_id;
-}
-
-/*
- * Email report.
- *
- */
-function getEmailReport($cur_id, $prev_id) {
-  $passing = getFixedTests($cur_id, $prev_id);
-  $failing = getBrokenTests($cur_id, $prev_id);
-  $added = getNewTests($cur_id, $prev_id);
-  $removed = getRemovedTests($cur_id, $prev_id);
-  
-  $email = "";
-  if (strcmp($passing, "") == 0) {
-    $passing = "None";
-  } 
-  $email .= "\nNew Test Passes:\n$passing\n";
-  if (strcmp($failing, "") == 0) {
-    $failing = "None";
-  } 
-  $email .= "\nNew Test Failures:\n$failing\n";
-  if (strcmp($added, "") == 0) {
-    $added = "None";
-  } 
-  $email .= "\nAdded Tests:\n$added\n";
-  if (strcmp($removed, "") == 0) {
-    $removed = "None";
-  } 
-  $email .= "\nRemoved Tests:\n$removed\n";
-  
-  return $email;
-}
-
-
-/*$programs=array("Benchmarks/CoyoteBench/huffbench","Benchmarks/CoyoteBench/lpbench");
-$history = buildResultsHistory(18, $programs,"GCCAS" );
-foreach (array_keys($history) as $date){
-  print "$date => ";
-  foreach($history["$date"] as $data){
-    print "$data, ";
-  }
-  print "<br>\n";
-}*/
-
-if($DEBUG){
-  $today_results = GetDayResults(565, $category_array );
-  $yesterday_results = GetDayResults(564, $category_array );
-  $oldday_results = GetDayResults(563, $category_array );
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results, .2);
-  $twoday_difference = CalculateChangeBetweenDays($oldday_results, $today_results, .01);
-  $count = CountSignifigantDifferences($percent_difference, 1, 25);
-  $big_changes = getThreeDaySignifigantChanges($today_results, $yesterday_results, $oldday_results, $percent_difference, $twoday_difference, $category_print_array);
-}
-
-/*foreach ( array_keys($big_changes) as $x){
-  print "$x => ";
-  foreach ($big_changes["$x"] as $y){
-    print "$y, ";
-  }
-  print "<br>\n";
-}*/
-
-/*foreach ( array_keys($percent_difference) as $x){
-  print "$x => ";
-  foreach ($percent_difference["$x"] as $y){
-    print "$y, ";
-  }
-  print "<br>\n";
-}*/
-
-
-
-
-if($DEBUG){
-  print "<script type=\"text/javascript\" src=\"sorttable.js\"></script>\n";
-  print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-  print "\t<tr bgcolor=#FFCC99>\n";
-  print "\t\t<th>index</th>\n";
-  print "\t\t<th>Program</th>\n";
-  print "\t\t<th>Measurement</th>\n";
-  print "\t\t<th>type</th>\n";
-  print "\t\t<th>% Change from yesterday</th>\n";
-  print "\t\t<th>% Change from two days ago</th>\n";
-  print "\t\t<th>Previous day's test value</th>\n";
-  print "\t\t<th>Current day's test value</th>\n";
-  print "\t</tr>\n";
-  print "\t<tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>\n";
-  foreach ( array_keys($big_changes) as $x){
-    print "\t<tr>";
-    print "<td>$x</td>";
-    foreach ($big_changes["$x"] as $y){
-      print "<td>$y</td>";
-    }
-    print "</tr>\n";
-  }
-  print "</table>";
-}
-
-
-?>
diff --git a/nightly-test-server/SQLQuery.php b/nightly-test-server/SQLQuery.php
deleted file mode 100644
index 8458e81..0000000
--- a/nightly-test-server/SQLQuery.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-$user = $_POST["User"];
-$password = $_POST["Password"];
-$queries = $_POST["Queries"];
-$was_query = isset($queries);
-if (!isset($user)) $user = "";
-if (!isset($password)) $password = "";
-if (!isset($queries)) $queries = "";
-?>
-
-<HTML>
-<HEAD>
-<STYLE TYPE="text/css">
-TD
-{
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 12px;
-}
-</STYLE>
-</HEAD>
-<BODY>
-
-<?php
-print <<<EOD
-<FORM ACTION="http://llvm.org/nightlytest/SQLQuery.php" METHOD="post" ID="MyForm">
-<TABLE>
-	<TR>
-		<TD>User:</TD> <TD><INPUT NAME="User" ID="User" TYPE="text" VALUE="$user" SIZE="30"><BR></TD>
-	</TR>
-	<TR>
-		<TD>Password:</TD> <TD><INPUT NAME="Password" ID="Password" TYPE="password" VALUE="$password" SIZE="30"><BR></TD>
-	</TR>
-	<TR>
-		<TD>Query:</TD> <TD><TEXTAREA ID="Queries" NAME="Queries" ROWS="10" COLS="100">$queries</TEXTAREA><BR></TD>
-	</TR>
-</TABLE>
-<BUTTON TYPE="submit" ID="Send" NAME="Send" VALUE="Send">Query</BUTTON><BR>
-</FORM>
-EOD;
-
-if ($was_query) {
-  $queries = split("\n", $queries);
-
-  $mysql_link = mysql_connect("127.0.0.1", $user, $password, false, CLIENT_MULTI_STATEMENTS) or die("Error: could not connect to database!\n");
-  mysql_select_db("nightlytestresults");
-  
-  foreach ($queries as $query) {
-    $query = rtrim($query);
-    if (strlen($query) == 0) continue;
-    
-    if ($my_query = mysql_query($query)) {
-      print "<TABLE>\n";
-      $heading = false;
-      
-      while ($row = mysql_fetch_assoc($my_query)) {
-        if (!$heading) {
-          print "  <TR STYLE=\"font-weight: bold;\">";
-          foreach ($row as $key => $value) {
-            print "    <TD>$key</TD>";
-          }
-          print "  </TR>\n";
-          $heading = true;
-        }
-        
-        print "  <TR>";
-        foreach ($row as $key => $value) {
-          print "    <TD>$value</TD>";
-        }
-        print "  </TR>\n";
-      }
-      
-      print "</TABLE><BR><BR><BR>\n";
-  
-      mysql_free_result($my_query);
-    } else {
-      $error = mysql_error();
-      print "<B>$error</B><BR><BR><BR>\n";
-    }
-  }
-  
-  mysql_close($mysql_link);
-}
-
-?>
-
-</BODY>
-</HTML>
-
diff --git a/nightly-test-server/common.php b/nightly-test-server/common.php
deleted file mode 100644
index 26171b0..0000000
--- a/nightly-test-server/common.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$params = $_SERVER['QUERY_STRING'];
-
-if(is_numeric($params)){
-	$query="SELECT url FROM tinyurl WHERE id=$params";
-	$resource = mysql_query($query);
-
-	if($row = mysql_fetch_array($resource)){
-		include("http://{$row['url']}");
-	}
-	else{
-		print "No such page!\n";
-	}
-	mysql_free_result($resource);
-}
-else if (strcmp($params, "")!=0){
-	$this_url = $params;	
-	$query="SELECT * FROM tinyurl WHERE url=\"$this_url\"";
-        $result = mysql_query($query);
-	if($row = mysql_fetch_array($result)){
-               header( "Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?{$row['id']}" );
-               include("http://{$row['url']}");
-        }
-        else{
-		$query="INSERT INTO tinyurl (url) values (\"$this_url\")";
-		$add_url = mysql_query($query);
-		$query="SELECT * FROM tinyurl WHERE url=\"$this_url\"";
-	        $resource = mysql_query($query);
-	
-	        if($row = mysql_fetch_array($resource)){
-			header( "Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?{$row['id']}" );
-			include("http://{$row['url']}");	
-	        }
-	        else{
-	                print "Error, could not create page!!\n";
-	        }
-	        mysql_free_result($add_url);
-		mysql_free_result($resource);
-	}
-	mysql_free_result($result);
-}
-else{
-	print "No such page!\n";
-}
-
-
-
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/drawfilesizegraph.php b/nightly-test-server/drawfilesizegraph.php
deleted file mode 100644
index eeb9e28..0000000
--- a/nightly-test-server/drawfilesizegraph.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-include("NightlyTester.php");
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$mysql_link=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['files'])){
-	$files=$HTTP_GET_VARS['files'];
-}
-else{$URL_ERROR=1;$error_msg="no value for files";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" $name ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(50,10,30,110+sizeof($files)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($files)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * 1.) finding all the nights associated with the provided machine
- * 2.) getting all the correct programs for that night
- *
- ********************************/
-
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$RELEVANT_DATA=0;
-
-$index=0;
-foreach ($files as $file){
-
-  $data = get_file_history($machine_id, $file);
-
-  if($DEBUG){
-    print "get_file_history($machine_id, $file) returned...<br>\n";
-    foreach (array_keys($data) as $x){
-      print "$x {$data["$x"][0]} {$data["$x"][1]} {$data["$x"][2]}<br>\n";
-    }
-  }
-
-  $xdata=array();
-  $values=array();
-  $data_max=-1;
-	
-  foreach (array_keys($data) as $d){
-    if($data["$d"][1]>0){
-      preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $d, $pjs);
-      $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-      array_push($xdata, $seconds);
-      if($data["$d"][1] > $data_max){ $data_max=$data["$d"][1]; }
-      if($DEBUG){
-        print "adding $seconds => {$data["$d"][1]}<br>\n";
-      }
-      array_push($values, $data["$d"][1]);
-      $RELEVANT_DATA++;
-    }
-  }
- 
-  if($NORMALIZE){
-    for($i=0; $i<sizeof($values); $i++){
-      if(is_numeric($values[$i])){
-	$values[$i] = $values[$i] / $data_max;
-      }#end if
-}#end for
-}#end if
-
-			
-  $line_arr[$index] = new LinePlot($values, $xdata);
-  $line_arr[$index]->SetLegend("$file");
-  if($SHOWDATA==1){
-    $line_arr[$index]->value->Show();
-  }
-  if($SHOWPOINTS==1){
-    $line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-  }
-  $color_index=$index % sizeof($color_arr);
-  $line_arr[$index]->SetColor($color_arr[$color_index]);
-  $graph->Add($line_arr[$index]);
-  $index++;
-}#end foreach
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/drawmachinegraph.php b/nightly-test-server/drawmachinegraph.php
deleted file mode 100644
index 316f82b..0000000
--- a/nightly-test-server/drawmachinegraph.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-if(!(include "jpgraph/jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "ProgramResults.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-
-$DEBUG=0;
-
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$resultsgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['measure'])){
-	$measure=$HTTP_GET_VARS["measure"];
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Machine Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" {$meaningfull_names["$name"]} ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(70,30,30,110+sizeof($measure)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($measure)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * magic!!!
- *
- ********************************/
-$RELEVANT_DATA=0;
-$data_max=array();
-$index=0;
-$xdata=array();
-$values=array();
-foreach($measure as $m){
-	$values["$m"]=array();
-	$data_max["$m"]=-1;
-}
-
-$data_arr=array();
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id $start_query $end_query ORDER BY added DESC";
-if($DEBUG){
-	print "night_table_statement: $night_table_statement<br>\n";
-}
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-
-while($row = mysql_fetch_array($night_table_query)){
-	preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $row['added'], $pjs);
-        $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-	array_push($xdata, $seconds);	
-	foreach($measure as $m){
-		if(is_numeric($row["$m"])){
-			$RELEVANT_DATA++;
-			array_push($values["$m"], (float)$row["$m"]);
-			if($DEBUG){
-				print "{$row["$m"]}<br>\n";
-			}
-			if($row["$m"]>$data_max["$m"]){
-				$data_max["$m"]=$row["$m"];
-			}#end if
-		}
-	} #end foreach	
-}#end foreach
-mysql_free_result($night_table_query);
-
-
-if($NORMALIZE){
-	foreach ($measure as $m){
-		for($i=0; $i<sizeof($values["$m"]); $i++){
-			if(is_numeric($values["$m"][$i])){
-				$values["$m"][$i]=$values["$m"][$i]/$data_max["$m"];
-			}#end if
-		}#end for
-	}# end foreach
-}#end if
-
-
-$line_arr=array();
-$index=0;
-foreach($measure as $m){
-	$line_arr[$index] = new LinePlot($values["$m"], $xdata);
-	$line_arr[$index]->SetLegend("{$meaningfull_names["$m"]}");
-	if($SHOWDATA==1){
-		$line_arr[$index]->value->Show();
-	}
-	if($SHOWPOINTS==1){
-		$line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-	}
-	$color_index=$index % sizeof($color_arr);
-	$line_arr[$index]->SetColor($color_arr[$color_index]);
-	$graph->Add($line_arr[$index]);
-	$index++;
-}
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure[0] contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/drawresultsgraph.php b/nightly-test-server/drawresultsgraph.php
deleted file mode 100644
index 9c6b259..0000000
--- a/nightly-test-server/drawresultsgraph.php
+++ /dev/null
@@ -1,308 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-include("ProgramResults.php");
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$resultsgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['measure'])){
-	$measure=$HTTP_GET_VARS["measure"];
-	$preg_measure = str_replace("/","\/", $measure);
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['program'])){
-	$program=$HTTP_GET_VARS['program'];
-}
-else{$URL_ERROR=1;$error_msg="no value for program";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" $name ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(50,10,30,110+sizeof($program)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($program)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * 1.) finding all the nights associated with the provided machine
- * 2.) getting all the correct programs for that night
- *
- ********************************/
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id ";
-if(strcmp($start_query,"")!=0){
-	$night_table_statement.=" $start_query";
-}
-if(strcmp($end,"")!=0){
-	$night_table_statement.=" $end_query";
-}
-$night_table_statement.=" ORDER BY added DESC";
-if($DEBUG){
-	print "night_table_statement: $night_table_statement<br>\n";
-}
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-$night_arr=array();
-while($row = mysql_fetch_array($night_table_query)){
-	array_push($night_arr, $row['id']);
-}
-mysql_free_result($night_table_query);
-
-$data_arr=array();
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$RELEVANT_DATA=0;
-
-$index=0;
-foreach ($program as $prog){
-	$prog=str_replace(" ", "+", $prog);	
-	$program_table_statement="SELECT * FROM program WHERE program=\"$prog\" and (";
-	$night_id_arr= array();
-
-	foreach ($night_arr as $night){
-		$program_table_statement.=" night=$night or";
-		if($DEBUG){
-			print "adding night $night <br>\n";
-		}
-	}
-	$program_table_statement.=" night=0 ) order by night asc";
-	if($DEBUG){
-		print "$program_table_statement <br>\n";	
-	}
-	$night_table_query=mysql_query($program_table_statement) or die(mysql_error());
-
-	$xdata=array();
-	$values=array();
-
-	$data_max=-1;
-
-	$regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
-	while($row=mysql_fetch_array($night_table_query)){
-		$night_id = $row['night'];
-		$query = mysql_query("select added from night where id=$night_id") or die(mysql_error());
-		$added = mysql_fetch_array($query);
-		mysql_free_result($query);
-		preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $added['added'], $pjs);
-		
-		$seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-		
-		if($DEBUG){
-		  print "searching for $regexp <br>\n";
-		}
-		$row['result']=str_replace("<br>", " ", "{$row['result']}");
-		preg_match($regexp, "{$row['result']}", $ans);	
-		
-		if(isset($ans[1])){
-			array_push($values, "$ans[1]");
-			if(!isset($data_arr["$added"])){
-				$data_arr["$added"]=array();
-			}
-			$RELEVANT_DATA++;
-			if($DEBUG){
-				print "{$added['added']}: $ans[1] <br>\n";	
-			}
-			if($ans[1]>$data_max){
-				$data_max=$ans[1];
-			}
-		}
-		else{
-			array_push($values, "-");
-			if($DEBUG){
-				print "{$added['added']}: - <br>\n";	
-			}
-		}
-		array_push($xdata, $seconds);
-	} #end while	
-	mysql_free_result($night_table_query);
-
-	if($NORMALIZE){
-		for($i=0; $i<sizeof($values); $i++){
-			if(is_numeric($values[$i])){
-				$values[$i]=$values[$i]/$data_max;
-			}#end if
-		}#end for
-	}#end if
-	
-
-	$line_arr[$index] = new LinePlot($values, $xdata);
-	$line_arr[$index]->SetLegend("$prog");
-	if($SHOWDATA==1){
-		$line_arr[$index]->value->Show();
-	}
-	if($SHOWPOINTS==1){
-		$line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-	}
-	$color_index=$index % sizeof($color_arr);
-	$line_arr[$index]->SetColor($color_arr[$color_index]);
-	$graph->Add($line_arr[$index]);
-	$index++;
-}#end foreach
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/fulltest.php b/nightly-test-server/fulltest.php
deleted file mode 100644
index 2227b42..0000000
--- a/nightly-test-server/fulltest.php
+++ /dev/null
@@ -1,815 +0,0 @@
-<?php
-include("ProgramResults.php");
-include("NightlyTester.php");
-
-$machine_id = $HTTP_GET_VARS['machine'];
-$night_id = $HTTP_GET_VARS['night'];
-
-if(!$machine_id || !$night_id){
-  print "Error, incorrect URL for test.php!\n";
-  die();
-}
-
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-$machine_query = mysql_query("SELECT * FROM machine WHERE id=$machine_id") or die (mysql_error());
-$row = mysql_fetch_array($machine_query);
-mysql_free_result($machine_query);
-
-$today_query = getSuccessfulNightsHistory($machine_id, $night_id);
-$today_row = mysql_fetch_array($today_query);
-$yesterday_row = mysql_fetch_array($today_query);
-$oldday_row = mysql_fetch_array($today_query);
-mysql_free_result($today_query);
-$cur_date=$today_row['added'];
-
-$previous_succesful_id = getPreviousWorkingNight($night_id);
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results For <?php print $cur_date; ?></title>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-
-<script type="text/javascript" src="sorttable.js"></script>
-<script type="text/javascript" src="popup.js"></script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results For <?php print $cur_date; ?></b></font></center><br>
-
-<table cellspacing=0 cellpadding=0 border=0>
-  <tr>
-    <td valign=top>
-      <? 
-      $machine = $HTTP_GET_VARS['machine'];
-      $night = $HTTP_GET_VARS['night'];
-      include 'sidebar.php'; 
-      ?>      
-    </td>
-    <td>
-<?php
-
-/*****************************************************
- *
- * Printing machine information
- *
- ******************************************************/
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-/*****************************************************
- *
- * Printing link to build log
- *
- ******************************************************/
-$buildfile=str_replace(" ", "_", $cur_date);
-if(file_exists("machines/$machine_id/$buildfile-Build-Log.txt")){
-  print "<h4><a href=\"machines/$machine_id/$buildfile-Build-Log.txt\">".
-      "View Build Log</a></h4>\n";
-}
-
-/*****************************************************
- *
- * Printing the times table
- *
- ******************************************************/
-$previous_query = mysql_query("SELECT * FROM night WHERE \"$cur_date\" > added and machine=$machine_id ORDER BY added DESC") or die (mysql_error());
-
-if(strpos($today_row['buildstatus'], "OK")===FALSE){
-  $disp="";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('buildStatus');\", id=\"buildStatus_\">$sign Build Status</a></font>\n";
-print "<div id=\"buildStatus\" style=\"display: $disp;\" class=\"hideable\">\n";
-print "<h3><u>Build Status </u></h3></p>";
-print "<font color=red>{$today_row['buildstatus']}</font><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing changes in test suite
- *
- ******************************************************/
-$new_tests=htmlifyTestResults(getNewTests($night_id, $previous_succesful_id));
-if(strcmp($new_tests,"")===0){
-  $new_tests="None";
-}
-$removed_tests=htmlifyTestResults(getRemovedTests($night_id, $previous_succesful_id));
-if(strcmp($removed_tests,"")===0){
-  $removed_tests="None";
-}
-$newly_passing_tests=htmlifyTestResults(getFixedTests($night_id, $previous_succesful_id));
-if(strcmp($newly_passing_tests,"")===0){
-  $newly_passing_tests="None";
-}
-$newly_failing_tests=htmlifyTestResults(getBrokenTests($night_id, $previous_succesful_id));
-if(strcmp($newly_failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-
-if(strpos($new_tests, "None")!==FALSE &&
-   strpos($removed_tests, "None")!==FALSE &&
-   strpos($newly_passing_tests, "None")!==FALSE &&
-   strpos($newly_failing_tests, "None")!==FALSE ){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuite');\", id=\"testSuite_\">$sign Test Suite Changes</a></font>\n";
-print "<div id=\"testSuite\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite changes:</u></h3>\n";
-print"<b>New tests:</b><br>\n";
-print "$new_tests<br><br>\n";
-print"<b>Removed tests</b><br>\n";
-print "$removed_tests<br><br>\n";
-print"<b>Newly passing tests:</b><br>\n";
-print "$newly_passing_tests<br><br>\n";
-print"<b>Newly failing tests:</b><br>\n";
-print "$newly_failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing failures in test suite
- *
- ******************************************************/
-$failing_tests=htmlifyTestResults(getFailures($night_id));
-if(strcmp($failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-$disp="none";
-$sign="(-)";
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuiteFailures');\", id=\"testSuite_\">$sign Test Suite Failures</a></font>\n";
-print "<div id=\"testSuiteFailures\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite failures:</u></h3>\n";
-print"<b>Failing tests:</b><br>\n";
-print "$failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Dejagnu result go here
- *
- ******************************************************/
-$delta_exppass = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-$delta_expfail = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-$delta_unexpfail = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-$unexpected_failures = htmlifyTestResults(getUnexpectedFailures($night_id));
-
-if($delta_exppass==0 && $delta_expfail==0 && 
-   $delta_unexpfail==0 && strcmp($unexpected_failures, "")===0){
-        $disp="none";
-        $sign="(-)";
-}
-else{
-        $disp="";
-        $sign="(+)";
-}
-
-
-if(isset($today_row['teststats_exppass'])){
-        $exp_pass=$today_row['teststats_exppass'];
-}
-else{
-        $exp_pass=0;
-}
-if(isset($today_row['teststats_unexpfail'])){
-        $unexp_fail=$today_row['teststats_unexpfail'];
-}
-else{
-        $unexp_fail=0;
-}
-if(isset($today_row['teststats_expfail'])){
-        $exp_fail=$today_row['teststats_expfail'];
-}
-else{
-        $exp_fail=0;
-
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dejagnuTests');\", id=\"deja\
-gnuTests_\">$sign Dejagnu Tests</a></font>\n";
-print "<div id=\"dejagnuTests\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print"<h3><u>Dejagnu tests:</u></h3><br>\n";
-print "<table>\n";
-print "\t<tr>\n";
-print "\t\t<td></td><td># of tests</td><td>Change from yesterday</td>\n";
-print "\t</tr>\n";
-$delta = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-print "\t\t<td>Expected Passes:</td><td align=center>$exp_pass</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-print "\t\t<td>Unexpected Failures:</td><td align=center>$unexp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-print "\t\t<td>Expected Failures:</td><td align=center>$exp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<a name=\"unexpfail_tests\"><b>Unexpected test failures:</b></a><br>\n";
-print "$unexpected_failures<br><br>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing warning information
- *
- ******************************************************/
-if((strpos($today_row['warnings_added'], "none")==FALSE &&
-   strpos($today_row['warnings_removed'], "none")==FALSE) &&
-   (strcmp($today_row['warnings_added'], "")!=0 &&
-   strcmp($today_row['warnings_removed'], "")!=0)){
-        $disp=" ";
-        $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('warningsChanges');\", id=\"warningsChanges_\">$sign Warning Information</a></font>\n";
-print "<div id=\"warningsChanges\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Changes to warnings during the build:</u></h3>\n";
-print"<b>New Warnings:</b><br>\n";
-print "{$today_row['warnings_added']}<br><br>\n";
-print"<b>Removed Warnings:</b><br>\n";
-print "{$today_row['warnings_removed']}<br>\n";
-print"<a name=\"warnings\"><h3><u>Warnings during the build:</u></h3></a><tt>{$today_row['warnings']}</tt><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing execution
- *
- ******************************************************/
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('executionTimes');\", id=\"executionTimes_\">(-) Execution Times</a></font>\n";
-print "<div id=\"executionTimes\" style=\"display: none;\" class=\"hideable\">\n";
-print"<h3><u>Execution times in seconds:</u></h3><br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-
-print "\t<tr>\n";
-print "\t\t<td></td>\n";
-print "\t\t<td>CVS cpu</td>\n";
-print "\t\t<td>CVS wall</td>\n";
-print "\t\t<td>Configure cpu</td>\n";
-print "\t\t<td>Configure wall</td>\n";
-print "\t\t<td>Build cpu</td>\n";
-print "\t\t<td>Build wall</td>\n";
-print "\t\t<td>Dejagnu cpu</td>\n";
-print "\t\t<td>Dejagnu wall</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "\t\t<td>$cur_date</td>\n";
-print "\t\t<td>{$today_row['getcvstime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['getcvstime_wall']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_wall']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_wall']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_wall']}</td>\n";
-print "\t</tr>\n";
-
-if( $previous_row = mysql_fetch_array($previous_query) ){
-  print "\t<tr>\n";
-  print "\t\t<td>Previous nightly test ({$previous_row['added']})</td>\n";
-  print "\t\t<td>{$previous_row['getcvstime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['getcvstime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['configuretime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['configuretime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['buildtime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['buildtime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['dejagnutime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['dejagnutime_wall']}</td>\n";
-  print "\t</tr>\n";
-
-
-  print "\t<tr>\n";
-  print "\t\t<td>% change</td>\n";
-  
-  if($previous_row['getcvstime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_cpu'] - $previous_row['getcvstime_cpu'])/$previous_row['getcvstime_cpu']) * 100,2);  
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }  
-
-  $color="white";
-  if($previous_row['getcvstime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_wall'] - $previous_row['getcvstime_wall'])/$previous_row['getcvstime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($previous_row['configuretime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_cpu'] - $previous_row['configuretime_cpu'])/$previous_row['configuretime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-
-  if($previous_row['configuretime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_wall'] - $previous_row['configuretime_wall'])/$previous_row['configuretime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['buildtime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_cpu'] - $previous_row['buildtime_cpu'])/$previous_row['buildtime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['buildtime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_wall'] - $previous_row['buildtime_wall'])/$previous_row['buildtime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($previous_row['dejagnutime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_cpu'] - $previous_row['dejagnutime_cpu'])/$previous_row['dejagnutime_cpu']) * 100,2);
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['dejagnutime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_wall'] - $previous_row['dejagnutime_wall'])/$previous_row['dejagnutime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  print "\t</tr>\n";
-}
-mysql_free_result($previous_query);
-
-print "</table>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing CVS information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('CVSInformation');\", id=\"CVSInformation_\">(-) CVS information</a></font>\n";
-print "<div id=\"CVSInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>CVS information:</u></h3><br>\n";
-
-$query=mysql_query("SELECT * FROM night WHERE id=$night_id") or die (mysql_error());
-$row = mysql_fetch_array($query);
-mysql_free_result($query);
-$com_users = $row['cvs_usersadd'];
-$co_users  = $row['cvs_usersco'];
-$com_users = str_replace("\n","<br>",$com_users);
-$co_users = str_replace("\n","<br>",$co_users);
-print "<table border=1 cellspacing=0 cellpadding=0>\n";
-print "\t<tr>\n";
-print "\t\t<td>Users who commited</td><td>Users who checked out</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-print "\t\t<td valign=top>$com_users</td><td valign=top>$co_users</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<b>Added files:</b><br>\n";
-$added_files  = $row['cvs_added'];
-if(strcmp($added_files,"")!=0){
-  $added_files = str_replace("\n","<br>",$added_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$added_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Removed files:</b><br>\n";
-$removed_files  = $row['cvs_removed'];
-if(strcmp($removed_files,"")!=0){
-  $removed_files = str_replace("\n","<br>",$removed_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$removed_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Modified files:</b><br>\n";
-$modified_files  = $row['cvs_modified'];
-if(strcmp($modified_files,"")!=0){
-  $modified_files = str_replace("\n","<br>",$modified_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$modified_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing file size information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('FileSizeInformation');\", id=\"FileSizeInformation_\">(-) File Size information</a></font>\n";
-print "<div id=\"FileSizeInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>File Size information:</u></h3><br>\n";
-
-print "<form method=GET action=\"individualfilesizegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-$all_data=buildFileSizeTable($machine_id, $night_id);
-
-$formatted_num=number_format($all_data['Total Sum'][0],0,".",",");
-print "<b>Total size</b>: $formatted_num bytes<br>\n";
-print "<b>Percent difference from previous test</b>: {$all_data['Total Sum'][1]}<br>\n";
-print "<b>Percent difference from five tests ago</b>: {$all_data['Total Sum'][3]}<br><br>\n";
-
-print "<table class=\"sortable\" id=\"file_sizes\" border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>File</td>\n";
-print "\t\t<td>File Size in Bytes</td>\n";
-print "\t\t<td>% difference from previous test</td>\n";
-print "\t\t<td>Byte difference from previous test</td>\n";
-print "\t\t<td>% difference from five tests ago</td>\n";
-print "\t\t<td>Byte difference from five tests ago</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "\t</tr>\n";
-
-foreach (array_keys($all_data) as $d){
-  //if($all_data["$d"][1]!=0 || $all_data["$d"][3]!=0){
-    print "\t<tr>\n";
-    if(strcmp($d, "Total Sum")!=0){
-      print "\t\t<td><input type=checkbox name=files[] multiple=\"multiple\" value=\"$d\">\n";
-    }
-    else{
-      print "\t\t<td>\n";
-    }
-    print "\t\t$d</td>\n";
-    print "\t\t<td>{$all_data["$d"][0]}</td>\n";
-
-    if($all_data["$d"][1]!=0){
-      $color="bgcolor=";
-      $color.=DetermineColor($all_data["$d"][1], "\"\"");
-    }
-    else{
-      $color="";
-    }
-    print "\t\t<td $color>{$all_data["$d"][1]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][2]}</td>\n";
-
-    if($all_data["$d"][3]!=0){
-      $color="bgolor=";
-      $color.=DetermineColor($all_data["$d"][3], "white");
-    }
-    else{
-      $color="";
-    }
-    print "\t\t<td $color>{$all_data["$d"][3]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][4]}</td>\n";
-
-    print "\t</tr>\n";
-    //}
-}
-
-print "</table>\n";
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=reset>\n";
-print "</form>\n";
-
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * ending sidebar table here
- *
- ******************************************************/
-print "</td></tr></table>\n";
-
-
-/*****************************************************
- *
- * Test program statistics
- *
- ******************************************************/
-print"<h3><u>Program tests:</u></h3><br>\n";
-
-$today_results = GetDayResults($today_row['id'], $category_array);
-if(isset($yesterday_row['id'])){
-  $yesterday_results = GetDayResults($yesterday_row['id'], $category_array);
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results,.2);  
-}
-/********************** external table **********************/
-print "<form method=GET action=\"resultsgraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-print"<b>External tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"external_tests_\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"external_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('external_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"external")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";    
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-/********************** Multisource table **********************/
-
-print"<b>Multisource tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"multi_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('multi_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"multisource")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=reset>\n";
-print "</form>\n";
-
-/********************** Singlesource table **********************/
-
-print"<b>Singlesource tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"singlesource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"single_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('single_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"singlesource")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-
-
-mysql_close($mysql_link);
-?>
-
-
-
-</body>
-</html>
-
-
diff --git a/nightly-test-server/index.php b/nightly-test-server/index.php
deleted file mode 100644
index b017c2d..0000000
--- a/nightly-test-server/index.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-include("NightlyTester.php");
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-?>
-
-<html>
-<head><title>LLVM Nightly Test Results Homepage</title></head>
-<body>
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Homepage</b></font></center><br>
-<table cellspacing=5 cellpadding=3 border=0>
-        <tr>
-                <td valign=top>
-                        <?
-                        $machine = -1;
-                        $night = -1;
-                        include "sidebar.php";
-                        ?>
-                </td>
-                <td valign=top>
-
-<?
-print "<p align=right><a href='locgraph.php?xsize=900&ysize=600'><img src='locgraph.php'  border=0 align=center height=250 width=400 alt='Lines of code graph'></a></p>\n";
-
-/*
- * the following lists the tests in the last 24 hours
- */
-print "Tests submitted in last 24 hours:<br>";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "\t<tr bgcolor=#FFCC99>";
-        print "\t\t<td>Time submitted</td>\n";
-        print "\t\t<td>Machine name</td>\n";
-        print "\t\t<td>Build status</td>\n";
-	print "\t\t<td># of expected test passes</td>\n";
-        print "\t\t<td># of unexpected test failures</td>\n";
-        print "\t\t<td># of expected test failures</td>\n";
-	print "\t\t<td></td>\n";
-print "\t</tr>";
-
-$result = getRecentTests("24");
-$line=1;
-if(mysql_num_rows($result)==0){
-	print "\t<tr bgcolor='white'>";
-        print "\t\t<td>---";
-        print "</td>\n";
-	print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-	print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-	print "\t\t<td>---</a></td>\n";
-	print "\t</tr>";
-}
-while($row = mysql_fetch_array($result)){
-	$cur_machine_id = $row['machine'];
-	$cur_night_id   = $row['id'];
-	$cur_machine_row = getMachineInfo($cur_machine_id);
-	if(strcmp($cur_machine_row['nickname'], "")!=0){$machine_name = $cur_machine_row['nickname'];}
-	else{$machine_name = $cur_machine_row['name'];}
-        
-
-	if(strpos($row['buildstatus'],"OK")===FALSE){
-                print "\t<tr bgcolor=#FFCC33>\n";
-                $build_ok=0;
-        }
-	else if($line % 2 == 0){
-		print "\t<tr bgcolor=#DDDDDD>";		
-	}
-	else{
-		print "\t<tr bgcolor='white'>";
-	}
-        print "\t\t<td>";
-		preg_match("/(\d\d:\d\d:\d\d)/", $row['added'], $time);
-                print $time[1];
-        print "</td>\n";
-	print "\t\t<td><a href=\"machine.php?machine=$cur_machine_id\">$machine_name</a></td>\n";
-        print "\t\t<td>{$row['buildstatus']}</td>\n";
-	print "\t\t<td>{$row['teststats_exppass']}</td>\n";
-        print "\t\t<td>{$row['teststats_unexpfail']}</td>\n";
-        print "\t\t<td>{$row['teststats_expfail']}</td>\n";
-	print "\t\t<td><a href=\"test.php?machine=$cur_machine_id&night=$cur_night_id\">view details</a></td>\n";
-	print "\t</tr>";
-	$line++;
-
-}//end while
-print "</table>\n";
-
-mysql_free_result($result);
-
-mysql_close($mysql_link);
-?>
-
-                </td>
-        </tr>
-</table>
-</body>
-</html>
diff --git a/nightly-test-server/individualfilesizegraph.php b/nightly-test-server/individualfilesizegraph.php
deleted file mode 100644
index 78f4947..0000000
--- a/nightly-test-server/individualfilesizegraph.php
+++ /dev/null
@@ -1,426 +0,0 @@
-<?php
-/*if(!(include "jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}*/
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string, $DEBUG=0 ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if($mysql_link==FALSE){
-	$URL_ERROR=1;
-	$error_msg="Could not connect to database $!\n";
-}                        
-
-if(isset($HTTP_GET_VARS['files'])){
-        $files_arr=$HTTP_GET_VARS["files"];
-	$files_url="";
-	foreach ($files_arr as $f){
-	  $files_url.="&files[]=$f";
-	}
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-	$machine=$machine_id;
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-	        $start = $HTTP_GET_VARS['start'];
-        	$start_query = "and added >= \"$start\"";
-		$start_url = "&start=$start";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-                die();
-	}
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$start = $recent['added'];
-	mysql_free_result($result);
-
-	$start_url="&start=$start";
-        $start_query = " and added >= \"$start\"";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-        	$end = $HTTP_GET_VARS['end'];
-        	$end_query = "and added <= \"$end\"";
-	}
-	else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$end = $recent['added'];
-	mysql_free_result($result);
-
-	$end_url = "&end=$end";
-        $end_query = " and added <= \"$end\"";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-        	$normalize_url = "&normalize=true";
-		$def_normalize="CHECKED";
-		$def_unnormalize="";
-	}
-        else{
-		$normalize_url="";
-                $NORMALIZE=0;
-		$def_normalize="";
-		$def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-	$normalize_url="";
-	$def_normalize="";
-	$def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-	$SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-		$showpoints="&showpoints=true";
-        }
-        else{
-		$SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-	$SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Machine Graph</title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results File Size Graph</b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-			$machine = $HTTP_GET_VARS['machine'];
-                        $night=-1;
-			include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-print "\t<img src=\"drawfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine_id$files_url&end=$end$normalize_url$start_url$showdata$showpoints\" alt=\"File Size Graph\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$new_x&ysize=$new_y&machine=$machine$files_url&end=$end$normalize_url&start=$start\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$new_x&ysize=$new_y&machine=$machine$files_url&end=$end$normalize_url&start=$start\">Smaller</a><br>\n";
-
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-if(strcmp($start, $all_tests)!=0){
-	print "Time: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-else{ print "Time: <b>All</b> |";}
-
-if(strcmp($start, $one_year)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_month\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-	print "Data normalization: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&normalize=false&start=$start$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Data normalization: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&normalize=true&start=$start\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-	print "Show data on graph: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Show data on graph: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start&$showpoints&showdata=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-	print "Show points on graph: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start$showdata\">Off</a><br>\n";
-}
-else{
-	print "Show points on graph: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start&$showdata&showpoints=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-
-/*
- * Printing out data table
- *
- */
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-$all_data=array();
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($files_arr as $m){	
-  print "\t\t<td>$m</td>\n";
-  $file_data=get_file_history($machine_id, $m);
-  array_push($all_data, $file_data);
-}
-print "\t</tr>\n";
-
-foreach (array_keys($all_data[0]) as $d){
-	print "\t<tr>\n";
-	print "\t\t<td>$d</td>\n";
-	foreach ($all_data as $data){
-		print "\t\t<td align=center>{$data[$d][1]}</td>\n";
-	}	
-	print "\t</tr>\n";
-}
-
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/individualgraph.php b/nightly-test-server/individualgraph.php
deleted file mode 100644
index 3be47b5..0000000
--- a/nightly-test-server/individualgraph.php
+++ /dev/null
@@ -1,435 +0,0 @@
-<?php
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "ProgramResults.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if(isset($HTTP_GET_VARS['measure'])){
-        $measure_arr=$HTTP_GET_VARS["measure"];
-  $measure=$measure_arr[0];
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['program'])){
-  $program_arr=$HTTP_GET_VARS['program'];
-        $program=$HTTP_GET_VARS['program'];
-}
-else{$URL_ERROR=1;$error_msg="no value for program";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-      if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-                $start = $HTTP_GET_VARS['start'];
-                $start_query = "and added >= \"$start\"";
-                $start_url = "&start=$start";
-        }
-        else{
-                print "Error: Incorrect URL! Bad start date.\n";
-                die();
-        }
-}
-else{
-  $start_url="";
-        $start = "";
-        $start_query = " ";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-        if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", $HTTP_GET_VARS['end'])>0){
-    $end = $HTTP_GET_VARS['end'];
-                $end_url="&end=$end";
-                $end_query = "and added <= \"$end\"";
-        }
-        else{
-                print "Error: Incorrect URL! Bad end date.\n";
-                die();
-        }
-}
-else{
-  $end_url="";
-        $end = "";
-        $end_query = " ";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-          $normalize_url = "&normalize=true";
-    $def_normalize="CHECKED";
-    $def_unnormalize="";
-  }
-        else{
-    $normalize_url="";
-                $NORMALIZE=0;
-    $def_normalize="";
-    $def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-  $normalize_url="";
-  $def_normalize="";
-  $def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-    $SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-  $SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-    $showpoints="&showpoints=true";
-        }
-        else{
-    $SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-  $SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Custom Graphs For <?php print $measure; ?></title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Custom Graphs For <?php print $measure; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        $machine = $HTTP_GET_VARS['machine'];
-                        $night = $HTTP_GET_VARS['night'];
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-$list_of_programs="";
-foreach($program as $prog){
-  $list_of_programs.="&program[]=$prog";
-}
-print "\t<img src=\"drawresultsgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine_id&measure=$measure$list_of_programs$normalize_url$end_url$start_url$showdata$showpoints\" alt=\"$measure\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualgraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualgraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url\">Smaller</a><br>\n";
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$last_date = $recent['added'];
-$recent_id = $recent['id'];
-mysql_free_result($result);
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-$all=0;
-if(strcmp($start, $all_tests)==0 && strcmp($end, $last_date)==0){$all=1; print "Time: <b>All</b> |";}
-else{ 
-  print "Time: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$last_date&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-
-if($all==0 && strcmp($start, $all_tests)==0){
-  print "<b>From first measurement</b> |";
-}
-else{
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">From first measurement</a> |\n";
-}
-
-if(strcmp($start, $one_year)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_month&showdata=true&showpoints=true\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-  print "Data normalization: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&normalize=false&$start_url$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-  print "Data normalization: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&normalize=true$start_url\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-  print "Show data on graph: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showpoints\">Off</a><br>\n";
-}
-else{
-  print "Show data on graph: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showpoints&showdata=true\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-  print "Show points on graph: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showdata\">Off</a><br>\n";
-}
-else{
-  print "Show points on graph: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url&$showdata&showpoints=true\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-
-/***************************************************
- *
- * Printing out data table
- *
- ***************************************************/
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-if(strcmp($start,"")!=0 && strcmp($end,"")!=0){
-    $history = buildResultsHistory($machine_id, $program,$measure,$start,$end);
-}
-else if(strcmp($start,"")!=0){
-    $history = buildResultsHistory($machine_id, $program,$measure,$start);
-}
-else{
-    $history = buildResultsHistory($machine_id, $program,$measure);
-}
-
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($program as $prog){  
-  print "\t\t<td>$prog</td>\n";
-}
-print "\t</tr>\n";
-foreach (array_keys($history) as $date){
-  if(sizeof($history["$date"])>1){
-    print "\t<tr>\n";
-    print "\t\t<td>$date</td>\n";
-    for($x=1; $x<sizeof($history["$date"]); $x++){
-      if(isset($history["$date"][$x])){
-        print "\t\t<td align=center>{$history["$date"][$x]}</td>\n";
-      }  
-      else{
-        print "\t\t<td align=center>-</td>\n";
-      }
-    }
-    print "\t</tr>\n";
-  }
-}
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/individualmachinegraph.php b/nightly-test-server/individualmachinegraph.php
deleted file mode 100644
index 9b9b1aa..0000000
--- a/nightly-test-server/individualmachinegraph.php
+++ /dev/null
@@ -1,426 +0,0 @@
-<?php
-/*if(!(include "jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}*/
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string, $DEBUG=0 ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if($mysql_link==FALSE){
-	$URL_ERROR=1;
-	$error_msg="Could not connect to database $!\n";
-}                        
-
-if(isset($HTTP_GET_VARS['measure'])){
-        $measure_arr=$HTTP_GET_VARS["measure"];
-	$measure=$measure_arr[0];
-	$measure_url="";
-	$measure_url.="&measure[]=$measure";
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-	$machine=$machine_id;
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-	        $start = $HTTP_GET_VARS['start'];
-        	$start_query = "and added >= \"$start\"";
-		$start_url = "&start=$start";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-                die();
-	}
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$start = $recent['added'];
-	mysql_free_result($result);
-
-	$start_url="&start=$start";
-        $start_query = " and added >= \"$start\"";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-        	$end = $HTTP_GET_VARS['end'];
-        	$end_query = "and added <= \"$end\"";
-	}
-	else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$end = $recent['added'];
-	mysql_free_result($result);
-
-	$end_url = "&end=$end";
-        $end_query = " and added <= \"$end\"";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-        	$normalize_url = "&normalize=true";
-		$def_normalize="CHECKED";
-		$def_unnormalize="";
-	}
-        else{
-		$normalize_url="";
-                $NORMALIZE=0;
-		$def_normalize="";
-		$def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-	$normalize_url="";
-	$def_normalize="";
-	$def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-	$SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-		$showpoints="&showpoints=true";
-        }
-        else{
-		$SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-	$SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Machine Graph</title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Custom Graphs For <?php print "{$meaningfull_names["$measure"]}"; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-			$machine = $HTTP_GET_VARS['machine'];
-                        $night=-1;
-			include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-print "\t<img src=\"drawmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine_id$measure_url&end=$end$normalize_url$start_url$showdata$showpoints\" alt=\"$measure\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualmachinegraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine$measure_url&end=$end$normalize_url&start=$start\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine$measure_url&end=$end$normalize_url&start=$start\">Smaller</a><br>\n";
-
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-if(strcmp($start, $all_tests)!=0){
-	print "Time: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-else{ print "Time: <b>All</b> |";}
-
-if(strcmp($start, $one_year)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_month\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-	print "Data normalization: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&normalize=false&start=$start$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Data normalization: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&normalize=true&start=$start\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-	print "Show data on graph: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Show data on graph: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start&$showpoints&showdata=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-	print "Show points on graph: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start$showdata\">Off</a><br>\n";
-}
-else{
-	print "Show points on graph: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start&$showdata&showpoints=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-
-/*
- * Printing out data table
- *
- */
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id $start_query ORDER BY added DESC";
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($measure_arr as $m){	
-	print "\t\t<td>{$meaningfull_names["$m"]}</td>\n";
-}
-print "\t</tr>\n";
-while($row=mysql_fetch_array($night_table_query)){
-	print "\t<tr>\n";
-	print "\t\t<td>{$row['added']}</td>\n";
-	foreach ($measure_arr as $m){
-		print "\t\t<td align=center>{$row["$m"]}</td>\n";
-	}	
-
-}
-mysql_free_result($night_table_query);
-
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/jpgraph/CHANGELOG b/nightly-test-server/jpgraph/CHANGELOG
deleted file mode 100644
index 2a2344b..0000000
--- a/nightly-test-server/jpgraph/CHANGELOG
+++ /dev/null
@@ -1,1445 +0,0 @@
-r639: 2006-05-26 14:31  ljp
-
-	* PR#334 - Labels shown behind the bars instead of upfront
-	Modified files: jpgraph.php
-
-r637: 2006-05-26 13:21  ljp
-
-	* FR#358 - Add support for greek character conversion
-	Modified files: jpg-config.inc, jpgraph.php
-
-r635: 2006-05-26 09:34  ljp
-
-	* PR#275 - CSIM Cache Ignores URL parameters
-	Modified files: jpgraph.php
-
-r633: 2006-05-26 00:51  ljp
-
-	* PR#342 - XHTML Clean up
-	Modified files: jpgraph.php, jpgraph_bar.php,
-	  jpgraph_plotmark.inc, lang/de.inc.php, lang/en.inc.php
-
-r632: 2006-05-26 00:23  ljp
-
-	* PR#349 - Legend::Stroke casting problem
-	Modified files: jpgraph.php
-
-r631: 2006-05-26 00:09  ljp
-
-	* PR335 - Fix to to/from ordering in GRAD_DIAG
-	Modified files: jpgraph_gradient.php
-
-r627: 2006-05-08 19:37  ljp
-
-	* Added CSIM table examples
-	Modified files: table_examples/tablebarex1_csim.php,
-	  table_examples/tableex01_csim.php
-
-r625: 2006-05-08 19:00  ljp
-
-	* FR#354 - Add support for CSIM in canvas graphs
-	Modified files: jpgraph_canvas.php
-
-r624: 2006-05-07 10:47  ljp
-
-	* Make sure image class is passed as reference to adjust for SVG version of image class. Optimize SVG ath generation
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_pie.php,
-	  jpgraph_pie3d.php, svg_image.inc.php
-
-r623: 2006-05-07 10:03  ljp
-
-	* Updated svg_image class to force locale to always use a dot as decimal separator regardless of locale used
-	Modified files: svg_image.inc.php
-
-r622: 2006-05-07 09:59  ljp
-
-	* Removed local setting in example
-	Modified files: Examples/example23.php
-
-r621: 2006-05-07 02:09  ljp
-
-	* Update for new version of DateScaleUtils which cannot be called statically
-	Modified files: Examples/combgraphex1.php,
-	  Examples/manualtickex1.php
-
-r620: 2006-05-07 02:08  ljp
-
-	* Make sure gd is used by defaylt and not SVG
-	Modified files: jpgraph.php
-
-r619: 2006-05-07 01:56  ljp
-
-	* Moved class Image to its own file
-	Modified files: gd_image.inc.php
-
-r618: 2006-05-07 01:54  ljp
-
-	* Added first experiemental version of SVG output for Image class with new svg_image.inc.php file
-	Modified files: Examples/example26.1.php, jpg-config.inc,
-	  jpgraph.php, svg_image.inc.php, tests/test_antispam.php,
-	  tests/test_bkgimage.php, tests/test_linesimple.php,
-	  tests/test_linetable.php, tests/test_pie3d.php,
-	  tests/test_pielegend.php, tests/test_piesimple.php,
-	  tests/test_table2.php
-
-r613: 2006-04-19 19:35  ljp
-
-	* FS#346 - Bezier interpolation broken for attraction_factor != 1
-	Modified files: jpgraph_regstat.php
-
-r611: 2006-04-03 19:30  ljp
-
-	* FS#341 - Take daylight savings into account for date scale
-	Modified files: jpgraph.php
-
-r609: 2006-03-29 19:15  ljp
-
-	* FS#339 - Make sure there are no error messages when cliesnts forget to set Alt texts in conjunction with CSIM
-	Modified files: jpgraph_bar.php
-
-r607: 2006-03-26 10:47  ljp
-
-	* Add small 'w' to differentiate weeks in the scale as compared to dates. Don't encode entire <img> CSIM script tag with htmlentities
-	Modified files: jpgraph.php
-
-r605: 2006-03-23 18:37  ljp
-
-	* FR#336 - Make it possible to use auto-tcks on a manually specified radar scale
-	Modified files: jpgraph_radar.php
-
-r603: 2006-03-21 19:40  ljp
-
-	* FR#331 - Add new diagonal gradient type
-	Modified files: jpgraph_gradient.php
-
-r601: 2006-03-21 17:34  ljp
-
-	* Set ID property of new German language file
-	Modified files: lang/de.inc.php
-
-r600: 2006-03-21 17:32  ljp
-
-	* Added German translation of error messages
-	Modified files: lang/de.inc.php
-
-r598: 2006-03-13 19:56  ljp
-
-	* Add possibility to create semi-auto scaled date ticks in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r596: 2006-03-12 19:15  ljp
-
-	* FR#328 - Auto detect cyrillic conversion
-	Modified files: jpg-config.inc, jpgraph.php
-
-r594: 2006-03-12 09:55  ljp
-
-	* FR#329 - Add additional date tick intervals in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r592: 2006-03-12 09:49  ljp
-
-	* Removed un-neccesary exit() callse
-	Modified files: jpgraph.php
-
-r590: 2006-03-11 09:50  ljp
-
-	* Additional error checking for client trying to pass strings as X-coordinates
-	Modified files: jpgraph.php
-
-r588: 2006-03-11 09:44  ljp
-
-	* PR#327 - Duplicate internal error numbers for tables and utils
-	Modified files: jpgraph_table.php, lang/en.inc.php,
-	  lang/prod.inc.php
-
-r586: 2006-03-04 18:55  ljp
-
-	* FS#314 - Graph width incompatible with additional columns in Gantt chart
-	Modified files: jpgraph_gantt.php, tests/test_bug314.php
-
-r584: 2006-03-04 15:18  ljp
-
-	* FS235 - SetWidth() does not work for GroupBarPlot.
-	Modified files: jpgraph_bar.php, tests/test_bug235.php
-
-r581: 2006-03-04 14:36  ljp
-
-	* Make default error locale customizable
-	Modified files: jpg-config.inc, jpgraph.php
-
-r579: 2006-03-04 13:48  ljp
-
-	* FS#323 - Add automatic EUC-JP to UTF8 Japanes encoding
-	Modified files: jpg-config.inc, jpgraph.php, lang/en.inc.php,
-	  lang/prod.inc.php
-
-r576: 2006-03-04 12:13  ljp
-
-	* Bar Enhancement: Interpret a width > 1 in SetWidth() as absolute pixel width
-	Modified files: jpgraph_bar.php
-
-r574: 2006-03-04 11:04  ljp
-
-	* FS#297 - Wrong positioning of icon using antialiasing and pieplot
-	Modified files: jpgraph_pie.php, tests/test_bug297.php
-
-r572: 2006-03-04 10:41  ljp
-
-	* FS#316 - Manually scaled x-date-scale doesn't use date format
-	Modified files: jpgraph_date.php
-
-r570: 2006-03-04 10:26  ljp
-
-	* CR#293 - Add label adjustments to 3D Pie
-	Modified files: jpgraph_pie3d.php, tests/test_bug293.php
-
-r567: 2006-03-01 21:34  ljp
-
-	* CR#318 - Add check for minimum required PHP version
-	Modified files: jpgraph.php, lang/en.inc.php, lang/prod.inc.php
-
-r559: 2006-02-19 10:49  ljp
-
-	* FR#305 - Handling of endpoints for DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r558: 2006-02-19 10:33  ljp
-
-	* Make sure locale is marked as GLOBAL
-	Modified files: jpgraph.php
-
-r557: 2006-02-19 10:33  ljp
-
-	* Set property Id for locale file
-	Modified files: lang/en.inc.php
-
-r555: 2006-02-19 09:02  ljp
-
-	* Added prod error locale and method to control locale
-	Modified files: jpgraph.php, lang/en.inc.php, lang/prod.inc.php
-
-r554: 2006-02-18 07:45  ljp
-
-	* Bumped version string to 1.20.3
-	Modified files: jpgraph.php
-
-r552: 2006-02-18 07:37  ljp
-
-	* Moved table examples to its own directory
-	Modified files: Examples/combgraphex1.php, Examples/tableex00.php,
-	  Examples/tableex01.php, Examples/tableex02.php,
-	  Examples/tableex03.php, table_examples,
-	  table_examples/tablebarex1.php, table_examples/tableex00.php,
-	  table_examples/tableex01.php, table_examples/tableex02.php,
-	  table_examples/tableex03.php, table_examples/tableex04.php,
-	  table_examples/tableex05.php
-
-r549: 2006-02-18 07:31  ljp
-
-	* Added some more test cases
-	Modified files: tests/test_0bar.php, tests/test_accbartable.php,
-	  tests/test_accbartable_csim.php, tests/test_barlinecenter.php,
-	  tests/test_dateinty2.php, tests/test_flag.php,
-	  tests/test_linefillnull.php, tests/test_linelargeval.php,
-	  tests/test_linesimple.php, tests/test_linetable.php,
-	  tests/test_php5date.php, tests/test_radaraxistitle.php,
-	  tests/test_table1.php, tests/test_table2.php,
-	  tests/test_table3.php, tests/test_table_flagex1.php,
-	  tests/test_table_howto1.php, tests/test_table_howto2.php,
-	  tests/test_table_howto3.php, tests/test_table_howto4.php,
-	  tests/test_table_howto5.php, tests/test_table_howto6.php,
-	  tests/test_table_howto7.php, tests/test_table_howto8.php,
-	  tests/test_table_howto9.php, tests/test_table_iconex1.php,
-	  tests/test_table_mex0.php, tests/test_table_mex00.php,
-	  tests/test_table_mex1.php, tests/test_table_mex2.php,
-	  tests/test_table_mex3.php, tests/test_y2grouobar.php,
-	  tests/test_y2groupbar.php, tests/test_y2synch.php,
-	  tests/test_y2synch2.php
-
-r543: 2006-02-14 20:10  ljp
-
-	* FS#308 - Make JpGraph classes extendable by using is_a() instead of get_class()
-	Modified files: jpgraph_gantt.php
-
-r542: 2006-02-14 20:10  ljp
-
-	* FS#308 - Make JpGraph classes extendable by using is_a() instead of get_class()
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_pie.php,
-	  jpgraph_windrose.php
-
-r540: 2006-02-14 17:27  ljp
-
-	* Some minor code layout changes
-	Modified files: jpgraph_table.php
-
-r538: 2006-02-14 06:51  ljp
-
-	* Added error check for number of data points in each in AccBar
-	Modified files: jpgraph_bar.php, lang/en.inc.php
-
-r536: 2006-02-13 06:42  ljp
-
-	* Removed HTML formatting in error message
-	Modified files: lang/en.inc.php
-
-r534: 2006-02-12 08:56  ljp
-
-	* Added new error message for GTextTable constrains
-	Modified files: lang/en.inc.php
-
-r532: 2006-02-12 08:27  ljp
-
-	* Added SetScalePos(), SetAnchorPos() and CSIM capabilities to tables
-	Modified files: jpgraph.php, jpgraph_table.php
-
-r531: 2006-02-11 10:32  ljp
-
-	* Fixed buffer overflow for long lines, prper mysql escaping of strings
-	Modified files: utils/jpdocgen/de_utils.php,
-	  utils/jpdocgen/jpgendb.php, utils/jpdocgen/jplintphp.php
-
-r529: 2006-02-11 08:33  ljp
-
-	* Updated table image API to follow the table setting pattern
-	Modified files: jpgraph_table.php
-
-r527: 2006-02-11 08:07  ljp
-
-	* Added possibility to use current scale to position GTextTable
-	Modified files: jpgraph_table.php
-
-r525: 2006-02-09 16:34  ljp
-
-	* Make sure padding API follow the general API design for GTextTable
-	Modified files: jpgraph_table.php
-
-r523: 2006-02-08 21:29  ljp
-
-	* Height and width calculation whould use max of value and image for table cell size
-	Modified files: jpgraph_table.php
-
-r521: 2006-02-08 21:22  ljp
-
-	* Added background images in individual cells for GTextTable
-	Modified files: jpgraph_iconplot.php, jpgraph_table.php
-
-r519: 2006-02-06 06:21  ljp
-
-	* Some more error checking for GTextTable and generalization of the SetNumberFormat() method to follow the practice of range setting
-	Modified files: jpgraph_table.php, lang/en.inc.php
-
-r517: 2006-02-05 20:48  ljp
-
-	* Added additional error check and default values for Tables
-	Modified files: jpgraph_table.php, lang/en.inc.php
-
-r515: 2006-02-05 16:46  ljp
-
-	* Update GTextTable SetAlign with new error message. Added check for invalid error message index.
-	Modified files: jpgraph.php, jpgraph_table.php, lang/en.inc.php
-
-r514: 2006-02-05 10:00  ljp
-
-	* Updated table example
-	Modified files: Examples/tableex03.php
-
-r512: 2006-02-05 09:53  ljp
-
-	* Make sure comparison is type safe for handling of parameterized error messages
-	Modified files: jpgraph.php
-
-r510: 2006-02-05 09:48  ljp
-
-	* Updated localized error messages for table
-	Modified files: lang/en.inc.php
-
-r509: 2006-02-05 09:44  ljp
-
-	* Added NumberFormat option for table formatting,
-	Modified files: jpgraph_table.php
-
-r505: 2006-02-04 15:53  ljp
-
-	* Directory cleanup
-	Modified files: tests/.xvpics
-
-r504: 2006-02-04 15:51  ljp
-
-	* Propset Id
-	Modified files: jpgraph_mgraph.php, jpgraph_pdf417.php,
-	  jpgraph_table.php, jpgraph_utils.inc, pdf417_backends.inc,
-	  pdf417_clusters.inc, pdf417_compressors.inc, pdf417_error.inc
-
-r503: 2006-02-04 12:46  ljp
-
-	* Removed extra exit()
-	Modified files: jpgraph.php
-
-r501: 2006-02-04 12:45  ljp
-
-	* Localized jpgraph_gradient
-	Modified files: jpgraph_gradient.php
-
-r499: 2006-02-04 12:44  ljp
-
-	* Localized Linear Barcode error messages
-	Modified files: jpgraph_barcode.php
-
-r497: 2006-02-04 12:33  ljp
-
-	* Localized PDF417
-	Modified files: jpgraph_pdf417.php, pdf417_backends.inc,
-	  pdf417_clusters.inc, pdf417_compressors.inc, pdf417_error.inc
-
-r495: 2006-02-04 12:31  ljp
-
-	* Localized error messages in jpgraph_utils.php
-	Modified files: jpgraph_utils.inc
-
-r493: 2006-02-04 12:29  ljp
-
-	* Localized error messages in jpgraph_stock.php
-	Modified files: jpgraph_stock.php
-
-r491: 2006-02-04 12:28  ljp
-
-	* Localized error messages in jpgraph_scatter.php
-	Modified files: jpgraph_scatter.php
-
-r489: 2006-02-04 12:26  ljp
-
-	* Localized error messages in jpgraph_radar.php
-	Modified files: jpgraph_radar.php
-
-r487: 2006-02-04 12:25  ljp
-
-	* Localized error messages in jpgraph_polar.php
-	Modified files: jpgraph_polar.php
-
-r485: 2006-02-04 12:20  ljp
-
-	* Localized error messages in jpgraph_plotmark.inc
-	Modified files: jpgraph_plotmark.inc
-
-r483: 2006-02-04 12:19  ljp
-
-	* Localized error messages in jpgraph_plotband.php
-	Modified files: jpgraph_plotband.php
-
-r481: 2006-02-04 12:18  ljp
-
-	* Localized error messages in jpgraph_mgraph.php
-	Modified files: jpgraph_mgraph.php
-
-r479: 2006-02-04 12:17  ljp
-
-	* Localized error messages in jpgraph_log.php
-	Modified files: jpgraph_log.php
-
-r477: 2006-02-04 12:16  ljp
-
-	* Localized error messages in jpgraph_imgtrans.php
-	Modified files: jpgraph_imgtrans.php
-
-r475: 2006-02-04 12:15  ljp
-
-	* Localized error messages in jpgraph_iconplot.php
-	Modified files: jpgraph_iconplot.php
-
-r473: 2006-02-04 12:14  ljp
-
-	* Localized error messages in jpgraph_gantt.php
-	Modified files: jpgraph_gantt.php
-
-r471: 2006-02-04 12:12  ljp
-
-	* Localized error messages in jpgraph_flags.php
-	Modified files: jpgraph_flags.php
-
-r469: 2006-02-04 12:11  ljp
-
-	* Localized error messages in jpgraph_date.php
-	Modified files: jpgraph_date.php
-
-r467: 2006-02-04 12:10  ljp
-
-	* Localized error messages in jpgraph_windrose.php
-	Modified files: jpgraph_windrose.php
-
-r465: 2006-02-04 12:09  ljp
-
-	* Localized error messages in jpgraph_odo.php
-	Modified files: jpgraph_odo.php
-
-r463: 2006-02-04 12:07  ljp
-
-	* Localized error messages in jpgraph_regstat.php
-	Modified files: jpgraph_regstat.php
-
-r461: 2006-02-04 12:06  ljp
-
-	* Localized error messages in jpgraph_error.php
-	Modified files: jpgraph_error.php
-
-r459: 2006-02-04 12:05  ljp
-
-	* Localized error messages in jpgraph_pie3d.php
-	Modified files: jpgraph_pie3d.php
-
-r457: 2006-02-04 12:04  ljp
-
-	* Localized error messages in jpgraph_pie.php
-	Modified files: jpgraph_pie.php
-
-r455: 2006-02-04 12:01  ljp
-
-	* Localized error messages in main jpgraph_line.php
-	Modified files: jpgraph_line.php
-
-r453: 2006-02-04 11:40  ljp
-
-	* Localized error messages in main jpgraph.php
-	Modified files: jpgraph.php
-
-r451: 2006-02-04 11:31  ljp
-
-	* Further english resource file update
-	Modified files: lang/en.inc.php
-
-r450: 2006-02-04 10:06  ljp
-
-	* Added localized error messages to jpgraph_bar.php
-	Modified files: jpgraph_bar.php
-
-r448: 2006-02-04 10:03  ljp
-
-	* Updated english resource file
-	Modified files: lang/en.inc.php
-
-r447: 2006-02-04 10:03  ljp
-
-	* Added localized error messages to jpgraph_table.php
-	Modified files: jpgraph_table.php
-
-r445: 2006-02-04 09:29  ljp
-
-	* Removed backup versions of english language resource files
-	Modified files: lang/en.inc.php.backup, lang/en.inc.php.backup2
-
-r444: 2006-02-04 09:28  ljp
-
-	* Added language resource files
-	Modified files: lang, lang/en.inc.php, lang/en.inc.php.backup,
-	  lang/en.inc.php.backup2
-
-r442: 2006-02-02 18:03  ljp
-
-	* Added align arguments for Merge() methods
-	Modified files: jpgraph_table.php
-
-r440: 2006-02-02 06:35  ljp
-
-	* Added error checking when merging table cells
-	Modified files: jpgraph_table.php
-
-r439: 2006-01-30 22:35  ljp
-
-	* Fix spelling error in error message
-	Modified files: jpgraph.php
-
-r437: 2006-01-30 21:52  ljp
-
-	* API restructuring in the GTextTable to make it easier to use ranges
-	Modified files: jpgraph_table.php
-
-r436: 2006-01-29 21:36  ljp
-
-	* Added examples on the use of GTextTable
-	Modified files: Examples/tableex00.php, Examples/tableex01.php,
-	  Examples/tableex02.php, Examples/tableex03.php
-
-r435: 2006-01-29 21:26  ljp
-
-	* PR#306 - Icons are not added as references
-	Modified files: jpgraph.php
-
-r433: 2006-01-29 20:42  ljp
-
-	* Fixed typos and a problem with the width calculation of merged cells
-	Modified files: jpgraph_table.php
-
-r431: 2006-01-29 19:17  ljp
-
-	* Adjusted vertical position calculation to avoid issue with baselining of TTF fonts
-	Modified files: jpgraph_table.php
-
-r429: 2006-01-29 16:10  ljp
-
-	* Added API in table handling so that all major settings now has the same structure, entire table, specific row, specific column or specific cell
-	Modified files: jpgraph_table.php
-
-r427: 2006-01-29 12:26  ljp
-
-	* GTextTable: Added API for table row and column font color setting
-	Modified files: jpgraph_table.php
-
-r425: 2006-01-29 09:10  ljp
-
-	* Major ovehaul of GTextTable. Added possibility to merge cells, Added range error check for all methods, Major refactoring of grid line drawing for tables (this is now the responsibility of the individual cells)
-	Modified files: jpgraph_table.php
-
-r422: 2006-01-26 21:45  ljp
-
-	* Changed column width/height handling so that the specification is interpretated as a min height/width
-	Modified files: jpgraph_table.php
-
-r420: 2006-01-26 21:22  ljp
-
-	* Added possibility to use different grid styles on graphic tables
-	Modified files: jpgraph_table.php
-
-r418: 2006-01-26 07:44  ljp
-
-	* CR#160 - Data tables on the graphs. Added jpgraph_table.php that implements GTextTable class that will allow text tables to be created as graphical objects and added to teh graphs. The tables have basic formatting capabilities as well as auto-sizing depending on the data in each cell.
-	Modified files: jpgraph.php, jpgraph_canvas.php,
-	  jpgraph_table.php, tests/test_flag.php, tests/test_ttf.php
-
-r404: 2006-01-21 17:34  ljp
-
-	* Adjust date format to comply with newer versions of PHP
-	Modified files: Examples/gantthourex1.php,
-	  Examples/gantthourminex1.php
-
-r397: 2006-01-18 19:06  ljp
-
-	* Fix PR#304 - Flag index for Replublic of Peru missing
-	Modified files: jpgraph_flags.php
-
-r396: 2006-01-18 18:42  ljp
-
-	* Fix PR#303 - E_STRICT not available in PHP4
-	Modified files: jpgraph.php
-
-r391: 2006-01-15 20:25  ljp
-
-	* Small modification to error checking when streaming image to a file
-	Modified files: jpgraph.php
-
-r390: 2006-01-15 20:24  ljp
-
-	* Removed a number of backup files that was acidentely comitted
-	Modified files: tests/data.csv~, tests/test_automin.php~,
-	  tests/test_barcode128.php~, tests/test_bargrad.php~,
-	  tests/test_bargrad2.php~, tests/test_barpattern.php~,
-	  tests/test_barsimple2.php~, tests/test_barsimple3.php~,
-	  tests/test_barsimple4.php~, tests/test_bug123.php~,
-	  tests/test_bug130.php~, tests/test_bug168.php~,
-	  tests/test_bug208.php~, tests/test_bug210.php~,
-	  tests/test_bug214.php~, tests/test_bug229.php~,
-	  tests/test_bug231.php~, tests/test_bug233.php~,
-	  tests/test_bug238.php~, tests/test_bug239.php~,
-	  tests/test_bug246.php~, tests/test_bug252.php~,
-	  tests/test_bug253.php~, tests/test_bug254.php~,
-	  tests/test_bug261.php~, tests/test_bug270.php~,
-	  tests/test_bug272.php~, tests/test_bug275.php~,
-	  tests/test_bug279.php~, tests/test_bug283.php~,
-	  tests/test_bug287.php~, tests/test_bug289.php~,
-	  tests/test_bug298.php~, tests/test_bug68.php~,
-	  tests/test_datetickposbug.php~, tests/test_dateweight.php~,
-	  tests/test_ganttpro.php~, tests/test_ganttweekbug.php~,
-	  tests/test_line.php~, tests/test_lineiconstring.php~,
-	  tests/test_logscale.php~, tests/test_manualticks5.php~,
-	  tests/test_markcsim.php~, tests/test_mgraph.php~,
-	  tests/test_mgraph2.php~, tests/test_mgraph3.php~,
-	  tests/test_mulyaxis.php~, tests/test_mulycsim.php~,
-	  tests/test_odo2.php~, tests/test_pie3d.php~,
-	  tests/test_pie3d_1.php~, tests/test_radarbug248.php~,
-	  tests/test_radarticks3.php~, tests/test_readcsv.php~,
-	  tests/test_symchar.php~, tests/test_text90.php~,
-	  tests/test_texttick.php~
-
-r389: 2006-01-15 20:23  ljp
-
-	* Comitted a number of test scripts to make a cleaner status message
-	Modified files: tests/bigredtigerfront.jpg, tests/csimcache,
-	  tests/csimcache/test_bug261.png,
-	  tests/csimcache/test_bug261_csim_.html, tests/data.csv,
-	  tests/data.csv~, tests/dataforbug253.txt, tests/test_automin.php,
-	  tests/test_automin.php~, tests/test_barcode128.php,
-	  tests/test_barcode128.php~, tests/test_bargrad.php,
-	  tests/test_bargrad.php~, tests/test_bargrad2.php,
-	  tests/test_bargrad2.php~, tests/test_barpattern.php,
-	  tests/test_barpattern.php~, tests/test_barsimple2.php,
-	  tests/test_barsimple2.php~, tests/test_barsimple3.php,
-	  tests/test_barsimple3.php~, tests/test_barsimple4.php,
-	  tests/test_barsimple4.php~, tests/test_bug123.php,
-	  tests/test_bug123.php~, tests/test_bug130.php,
-	  tests/test_bug130.php~, tests/test_bug168.php,
-	  tests/test_bug168.php~, tests/test_bug208.php,
-	  tests/test_bug208.php~, tests/test_bug210.php,
-	  tests/test_bug210.php~, tests/test_bug214.php,
-	  tests/test_bug214.php~, tests/test_bug229.php,
-	  tests/test_bug229.php~, tests/test_bug231.php,
-	  tests/test_bug231.php~, tests/test_bug233.php,
-	  tests/test_bug233.php~, tests/test_bug238.php,
-	  tests/test_bug238.php~, tests/test_bug238b.php,
-	  tests/test_bug239.php, tests/test_bug239.php~,
-	  tests/test_bug246.php, tests/test_bug246.php~,
-	  tests/test_bug252.php, tests/test_bug252.php~,
-	  tests/test_bug253.php, tests/test_bug253.php~,
-	  tests/test_bug254.php, tests/test_bug254.php~,
-	  tests/test_bug261.php, tests/test_bug261.php~,
-	  tests/test_bug270.php, tests/test_bug270.php~,
-	  tests/test_bug272.php, tests/test_bug272.php~,
-	  tests/test_bug275.php, tests/test_bug275.php~,
-	  tests/test_bug279.php, tests/test_bug279.php~,
-	  tests/test_bug283.php, tests/test_bug283.php~,
-	  tests/test_bug287.php, tests/test_bug287.php~,
-	  tests/test_bug289.php, tests/test_bug289.php~,
-	  tests/test_bug298.php, tests/test_bug298.php~,
-	  tests/test_bug68.php, tests/test_bug68.php~,
-	  tests/test_datetickposbug.php, tests/test_datetickposbug.php~,
-	  tests/test_dateweight.php, tests/test_dateweight.php~,
-	  tests/test_ganttpro.php, tests/test_ganttpro.php~,
-	  tests/test_ganttweekbug.php, tests/test_ganttweekbug.php~,
-	  tests/test_line.php, tests/test_line.php~,
-	  tests/test_lineiconstring.php~, tests/test_logscale.php,
-	  tests/test_logscale.php~, tests/test_manualticks.php,
-	  tests/test_manualticks2.php, tests/test_manualticks3.php,
-	  tests/test_manualticks4.php, tests/test_manualticks5.php,
-	  tests/test_manualticks5.php~, tests/test_markcsim.php,
-	  tests/test_markcsim.php~, tests/test_mgraph.php,
-	  tests/test_mgraph.php~, tests/test_mgraph2.php,
-	  tests/test_mgraph2.php~, tests/test_mgraph3.php,
-	  tests/test_mgraph3.php~, tests/test_mulyaxis.php,
-	  tests/test_mulyaxis.php~, tests/test_mulycsim.php,
-	  tests/test_mulycsim.php~, tests/test_odo2.php,
-	  tests/test_odo2.php~, tests/test_pie3d.php, tests/test_pie3d.php~,
-	  tests/test_pie3d_1.php, tests/test_pie3d_1.php~,
-	  tests/test_radarbug248.php, tests/test_radarbug248.php~,
-	  tests/test_radarticks3.php, tests/test_radarticks3.php~,
-	  tests/test_readcsv.php, tests/test_readcsv.php~,
-	  tests/test_symchar.php, tests/test_symchar.php~,
-	  tests/test_text90.php, tests/test_text90.php~,
-	  tests/test_texttick.php, tests/test_texttick.php~,
-	  tests/tiger1.jpg
-
-r388: 2006-01-15 20:21  ljp
-
-	* Moved MGraph from utils to it's own file. Added Utility class to read CSV file of data
-	Modified files: jpgraph_mgraph.php, jpgraph_utils.inc
-
-r379: 2006-01-14 11:26  ljp
-
-	* Fix PR#302 - Individual colors for labels and axis on radar plots
-	Modified files: jpgraph_radar.php
-
-r377: 2006-01-13 18:29  ljp
-
-	* Fix PR#298 - Multiple plots for polar graphs
-	Modified files: jpgraph_polar.php
-
-r374: 2006-01-13 18:20  ljp
-
-	* Add CR#299 - File and line number information for headers sent error
-	Modified files: jpgraph.php
-
-r370: 2006-01-09 18:19  ljp
-
-	* Fix PR#296 - Wrong stop character for I25
-	Modified files: jpgraph_barcode.php
-
-r369: 2006-01-06 03:54  ljp
-
-	* Fix PR#294- Function name misspelled in startup php_errormsg check
-	Modified files: jpgraph.php
-
-r366: 2006-01-05 07:03  ljp
-
-	* Copy and paste mistake in fix for #292
-	Modified files: jpgraph_bar.php
-
-r365: 2006-01-05 07:00  ljp
-
-	* Fix PR#292 - Incorrect calculation of Min value for AccBarPlot in some cases
-	Modified files: jpgraph_bar.php
-
-r364: 2005-12-31 10:08  ljp
-
-	* Added filledlineex03.php - Example with filled line and NULL values
-	Modified files: Examples/filledlineex03.php,
-	  Examples/piebkgex1.php
-
-r361: 2005-12-31 10:00  ljp
-
-	* Fix CR#283 - Gaps should be displayed for NULL values in filled line graphs
-	Modified files: jpgraph_line.php
-
-r359: 2005-12-30 20:59  ljp
-
-	* Fix CR#290 - Make it possible to use StrokeCSIM() without argument
-	Modified files: jpgraph.php
-
-r358: 2005-12-30 18:08  ljp
-
-	* Properly Fix PR#123 - Background gradient for rotated bar plots
-	Modified files: jpgraph.php
-
-r355: 2005-12-30 17:36  ljp
-
-	* Fix PR#123 - Background gradient for rotated bar plots
-	Modified files: jpgraph.php
-
-r353: 2005-12-30 17:22  ljp
-
-	* Fix CR#130 - Add option to use background gradient to Pie plots
-	Modified files: jpgraph_pie.php
-
-r351: 2005-12-30 16:26  ljp
-
-	* Fix PR#68 - Setting title side for X-axis title was not implemented
-	Modified files: jpgraph.php
-
-r350: 2005-12-30 14:31  ljp
-
-	* Fix PR#289 and improve performance by reducing the number of internal copies of class Image by using more references
-	Modified files: jpgraph.php, jpgraph_plotmark.inc
-
-r349: 2005-12-30 14:31  ljp
-
-	* Fix PR#289 and improve performance by reducing the number of internal copies of class Image by using more references
-	Modified files: jpgraph_gantt.php, jpgraph_gradient.php,
-	  jpgraph_iconplot.php, jpgraph_odo.php, jpgraph_polar.php,
-	  jpgraph_scatter.php, jpgraph_stock.php, jpgraph_windrose.php
-
-r346: 2005-12-29 09:32  ljp
-
-	* Renamed odo_examples odometer_examples
-	Modified files: odo_examples, odometer_examples
-
-r344: 2005-12-29 06:56  ljp
-
-	* Make ShowBorder() show a deprecated function error for 3D Pies
-	Modified files: jpgraph_pie3d.php
-
-r340: 2005-12-29 06:51  ljp
-
-	* Added additional error check to spline and bezier interpolation
-	Modified files: jpgraph_regstat.php
-
-r339: 2005-12-29 06:44  ljp
-
-	* Comitted multiple y-axis and combined graph examples
-	Modified files: Examples/combgraphex1.php,
-	  Examples/mulyaxiscsimex1.php, Examples/mulyaxisex1.php
-
-r338: 2005-12-29 06:43  ljp
-
-	* Added bezier example
-	Modified files: Examples/bezierex1.php
-
-r336: 2005-12-28 11:05  ljp
-
-	* PR #288. Dateline scale is not properly formatted
-	Modified files: jpgraph.php
-
-r334: 2005-12-15 22:34  ljp
-
-	* Remove HTML entitites encoding in CSIM targets for barplots
-	Modified files: jpgraph_bar.php
-
-r332: 2005-12-14 18:21  ljp
-
-	* Fix PR#280 - Wrong legends in some cases for 3D Pies
-	Modified files: jpgraph_pie3d.php
-
-r330: 2005-12-10 08:28  ljp
-
-	* Merged 328:329. Add possibility to use CSIM on multi Y-axes. Made it possibly to use 'auto' as special filename for CSIM to avoid having to supply file name.
-	Modified files: jpgraph.php
-
-r327: 2005-12-10 08:24  ljp
-
-	* Added Bezier interpolation class
-	Modified files: jpgraph_regstat.php
-
-r325: 2005-12-07 18:43  ljp
-
-	* Removed extra check for UPC-A barcodes. Allow 10 number systems (0-9) as the first specification.
-	Modified files: jpgraph_barcode.php
-
-r324: 2005-12-06 19:13  ljp
-
-	* Really Fixded PR #271. SetDateFormat()
-	Modified files: jpgraph.php
-
-r322: 2005-12-06 19:09  ljp
-
-	* Fixded PR #271. Problem with SetDateFormat()
-	Modified files: jpgraph.php
-
-r320: 2005-12-05 10:54  ljp
-
-	* Added error check for empty plots when client constructs group or acc bars
-	Modified files: jpgraph_bar.php
-
-r303: 2005-12-03 08:56  ljp
-
-	* Fixed lost startyear variable in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r297: 2005-11-30 22:12  ljp
-
-	* Rounding problem fixing. It turns out that according to PHP (a < b)==TRUE assuming a:INT and b:float. This could cause the last tick on an axis to not be shown in some rare cases
-	Modified files: jpgraph.php
-
-r296: 2005-11-30 19:55  ljp
-
-	* Fix PR #269. Make sure that the title of the axis is only stroken once
-	Modified files: jpgraph.php
-
-r287: 2005-11-28 22:12  ljp
-
-	* Fixed gantthourminex1.php example to be compatible with PHP 5.1.0
-	Modified files: Examples/gantthourminex1.php
-
-r286: 2005-11-28 22:09  ljp
-
-	* Added error check for too large width caused by a faulty input date
-	Modified files: jpgraph_gantt.php
-
-r282: 2005-11-27 20:34  ljp
-
-	* Updated math function examples to include jpgraph_utils.inc
-	Modified files: Examples/dupyaxisex1.php, Examples/funcex1.php,
-	  Examples/funcex2.php, Examples/funcex3.php, Examples/funcex4.php
-
-r279: 2005-11-27 11:13  ljp
-
-	* Added option to put the background image for MGraph at a specific x,y location
-	Modified files: jpgraph_utils.inc
-
-r278: 2005-11-27 11:12  ljp
-
-	* Updated and added manual tick examples
-	Modified files: Examples/manualtickex1.php,
-	  Examples/manualtickex2.php
-
-r276: 2005-11-26 15:42  ljp
-
-	* Moved class FuncGenerator from jpgraph.php to jpgraph_utility.inc
-	Modified files: jpgraph.php, jpgraph_utils.inc
-
-r274: 2005-11-26 14:42  ljp
-
-	* Simplified DateScaleUtils interface
-	Modified files: jpgraph_utils.inc
-
-r272: 2005-11-26 14:26  ljp
-
-	* Various minor adjustments in jpgraph.php * Added maj_tick_label as instance variable. That had always been missing !! * Adjusted the default margin fox X-axis labels slightly, slightly larger * Adjusted the left/right default graph margin (They were unecessarily large). * Added error checking when client specifies to few manual major ticks
-	Modified files: jpgraph.php
-
-r267: 2005-11-25 16:35  ljp
-
-	* Added option to use background images in MGraph (combined graphs)
-	Modified files: jpgraph_utils.inc
-
-r265: 2005-11-25 16:23  ljp
-
-	* Added Graph proxy method for Image::SetImgFormat()
-	Modified files: jpgraph.php
-
-r262: 2005-11-25 11:00  ljp
-
-	* Modified the MGraph::Add() method to accept Graph argument instead of just an image handler. Much more elegant and user friendly. Allso added the possibility for the MGraph::Stroke() method to return an image handler as well. This will allow MGraph to have MGraph as objects.
-	Modified files: jpgraph_utils.inc
-
-r261: 2005-11-24 06:51  ljp
-
-	* Borrowed some methods from class Graph to class MGraph in ordedr to avoid having to instantiate class Graph when using the MGraph functionality to save some memory. Added Class DateScaleUtils to jpgraph_utils.inc to make it easy to manually work with month scale where the tick positions are manually set
-	Modified files: jpgraph_utils.inc
-
-r260: 2005-11-23 19:52  ljp
-
-	* Added CR#266 "Add option to set a background fill for Axis labels" by adding a new method Graph::SetAxisLabelBackground() which will allow a client to specify a number of different variants of background for the labels on the primary X and Y axis.
-	Modified files: jpgraph.php
-
-r259: 2005-11-23 16:25  ljp
-
-	* Added Class MGraph in jpgraph_utils.inc. This is a utility class that can be used to easily combine several graphs into one image
-	Modified files: jpgraph_utils.inc
-
-r258: 2005-11-23 16:04  ljp
-
-	* Updated manual tick example to show X-grid as well to better illustrate the differenc between major and minor tick marks
-	Modified files: Examples/manualtickex1.php
-
-r256: 2005-11-23 05:38  ljp
-
-	* Updated the manual tick example to also make use of minor tick marks (without a label)
-	Modified files: Examples/manualtickex1.php
-
-r255: 2005-11-22 19:49  ljp
-
-	* Extended the manual tick positioning Axis::SetTickPosition() to also include the setting of the minor tick marks, i.e. tick marks without labels.
-	Modified files: jpgraph.php
-
-r253: 2005-11-21 19:35  ljp
-
-	* Added example for how to set manual tick positions
-	Modified files: Examples/manualtickex1.php
-
-r251: 2005-11-21 19:33  ljp
-
-	* Removed double entry in code table for greek characters
-	Modified files: jpgraph_utils.inc
-
-r246: 2005-11-20 12:11  ljp
-
-	* Adapted jpgraph_utils.inc for use in v1.x branch (for PHP4)
-	Modified files: jpgraph_utils.inc
-
-r245: 2005-11-20 12:07  ljp
-
-	* Copied jpgraph_utils to v1.x branch
-	Modified files: jpgraph_utils.inc
-
-r243: 2005-11-20 11:41  ljp
-
-	* Added CR#263. Possibility to have completely manual tick positions. One new method Axis::SetTickPositions($aTickPos,$aTickLabel) can be used to manually specify the exact positions for the ticks as well as an optional specified label. If no label array is specified then the labels will be determined by the scale value and any set formatting strings.
-	Modified files: jpgraph.php
-
-r242: 2005-11-20 11:34  ljp
-
-	* Removed newline at end of jpg-config.inc file since some Windows setups have problems with newlines
-	Modified files: jpg-config.inc
-
-r225: 2005-11-04 04:37  ljp
-
-	* Added parameter to SetTextLabelInterval()
-	Modified files: jpgraph.php
-
-r222: 2005-11-04 04:31  ljp
-
-	* Fix #253 Gradient in legends. Micro speeed improvement in min/max methods
-	Modified files: jpgraph_line.php
-
-r220: 2005-10-15 16:53  ljp
-
-	* Fix for issue #229. Special case when only having a single data point in date scale
-	Modified files: jpgraph_date.php
-
-r218: 2005-10-15 10:52  ljp
-
-	* Fix for issue #247 boundary check in while loop
-	Modified files: jpgraph_gantt.php
-
-r217: 2005-10-15 10:29  ljp
-
-	* Fix for feature request #243. Allow 1.x branch to be used in compatibility mode in PHP5
-	Modified files: jpgraph.php
-
-r215: 2005-10-14 17:39  ljp
-
-	* Fix for #251 where the ID attribute in the MAP tag makes it hard to save an CSIM image
-	Modified files: jpgraph.php
-
-r213: 2005-10-11 18:22  ljp
-
-	* Fix axis title positioning issue #248
-	Modified files: jpgraph_radar.php
-
-r211: 2005-10-06 16:29  ljp
-
-	* Fix for #244. Missing ALT value for CSIM for Bars
-	Modified files: jpgraph_bar.php
-
-r209: 2005-09-26 17:23  ljp
-
-	* Fix #231. Image markers are not rotated
-	Modified files: jpgraph_plotmark.inc
-
-r207: 2005-09-04 15:25  ljp
-
-	* PHP Bug workaround (#226)
-	Modified files: jpgraph.php
-
-r201: 2005-09-03 09:39  ljp
-
-	* Moved old directories up to dust
-	Modified files: barcode, jpgraph_gantt.php, pdf417, windrose
-
-r196: 2005-09-01 05:03  ljp
-
-	* Fixed #222 Gantt day header too small in some circumstances
-	Modified files: jpgraph_gantt.php
-
-r193: 2005-08-31 19:23  ljp
-
-	* Moved windrose word-doc to docs main directory
-	Modified files: windrose/windrose.doc
-
-r192: 2005-08-31 19:22  ljp
-
-	* Removed html dir in windrose
-	Modified files: windrose/html
-
-r191: 2005-08-31 19:21  ljp
-
-	* UTF8 directory from windrose and moved it to asian_lang instead
-	Modified files: windrose/utf8
-
-r190: 2005-08-31 19:19  ljp
-
-	* Moved Example in UTF8 windrose to asian_lang
-	Modified files: windrose/utf8/Examples, windrose/utf8/jpgraph.php,
-	  windrose/utf8/jpgraph_gradient.php,
-	  windrose/utf8/jpgraph_plotmark.inc,
-	  windrose/utf8/jpgraph_windrose.php
-
-r186: 2005-08-31 19:06  ljp
-
-	* Moved windrose img to main docs directory
-	Modified files: windrose/img
-
-r185: 2005-08-31 19:06  ljp
-
-	* Moved windrose docs to main docs directory
-	Modified files: windrose/manual.book, windrose/manualpdf.book,
-	  windrose/polar_function_3.gif, windrose/windrose.png,
-	  windrose/windrose_html_manual, windrose/windrose_manual.php
-
-r184: 2005-08-31 16:17  ljp
-
-	* Added possibility to create icons and backgrounds from strings
-	Modified files: jpgraph.php, jpgraph_iconplot.php,
-	  tests/test_lineiconstring.php
-
-r176: 2005-08-29 23:25  ljp
-
-	* Cleaned up windrose directory
-	Modified files: windrose/contour.gif, windrose/contour.png,
-	  windrose/dust, windrose/dust/contour.gif,
-	  windrose/dust/contour.png, windrose/dust/jpgraph_windrose-1.0.php,
-	  windrose/dust/jpgraph_windrose-1.05.php,
-	  windrose/dust/jpgraph_windrose-1.0beta.php,
-	  windrose/dust/mockup_ex1.png, windrose/dust/windchart_3.gif,
-	  windrose/dust/windrose-1.1.tar.gz,
-	  windrose/dust/windrose_manual-1.0.php,
-	  windrose/dust/windrose_manual-1.0beta.php,
-	  windrose/jpgraph_windrose-1.0.php,
-	  windrose/jpgraph_windrose-1.05.php,
-	  windrose/jpgraph_windrose-1.0beta.php, windrose/mockup_ex1.png,
-	  windrose/windchart_3.gif, windrose/windrose-1.0.tar.gz,
-	  windrose/windrose-1.1, windrose/windrose-1.1.tar.gz,
-	  windrose/windrose_manual-1.0.php,
-	  windrose/windrose_manual-1.0beta.php
-
-r175: 2005-08-29 23:18  ljp
-
-	* Removed wrong jpgtutlib link
-	Modified files: windrose/jpgtutlib.inc
-
-r174: 2005-08-29 23:13  ljp
-
-	* Removed old sym links to jpgraph.php etc
-	Modified files: barcode/jpgraph.php, barcode/jpgraph_canvas.php
-
-r173: 2005-08-29 23:12  ljp
-
-	* Removed wrong barcode demoapp directory
-	Modified files: barcode/barcode_demoapp
-
-r172: 2005-08-29 23:12  ljp
-
-	* Removed barcode examples from it's old location
-	Modified files: barcode/barcode_ex0.php, barcode/barcode_ex1.php,
-	  barcode/barcode_ex2.php, barcode/barcode_ex3.php,
-	  barcode/barcode_ex4.php
-
-r171: 2005-08-29 23:08  ljp
-
-	* Changed path for windrose examples
-	Modified files: windrose_examples/windrose_ex0.php,
-	  windrose_examples/windrose_ex1.php,
-	  windrose_examples/windrose_ex1b.php,
-	  windrose_examples/windrose_ex2.php,
-	  windrose_examples/windrose_ex3.php,
-	  windrose_examples/windrose_ex4.php,
-	  windrose_examples/windrose_ex5.php,
-	  windrose_examples/windrose_ex6.php,
-	  windrose_examples/windrose_ex7.php,
-	  windrose_examples/windrose_ex8.php,
-	  windrose_examples/windrose_ex9.php
-
-r170: 2005-08-29 23:05  ljp
-
-	* Changed path for all PDF417 examples
-	Modified files: pdf417_examples/pdf417_ex1.php,
-	  pdf417_examples/pdf417_ex2.php, pdf417_examples/pdf417_ex3.php,
-	  pdf417_examples/pdf417_ex4.php, pdf417_examples/pdf417_ex5.php,
-	  pdf417_examples/pdf417_ex6.php
-
-r169: 2005-08-29 22:50  ljp
-
-	* Removed .directory
-	Modified files: windrose_examples/.directory
-
-r168: 2005-08-29 22:46  ljp
-
-	* Updated directory structure to match release structure
-	Modified files: barcode/barcode_demoapp,
-	  barcode/barcode_image.php, barcode/barcode_menu.php,
-	  barcode/index.html, barcode/jpgraph_barcode.php, barcode_demoapp,
-	  barcode_demoapp/barcode_image.php,
-	  barcode_demoapp/barcode_menu.php, barcode_demoapp/index.html,
-	  barcode_examples, barcode_examples/barcode_ex0.php,
-	  barcode_examples/barcode_ex1.php,
-	  barcode_examples/barcode_ex2.php,
-	  barcode_examples/barcode_ex3.php,
-	  barcode_examples/barcode_ex4.php, jpgraph_barcode.php,
-	  jpgraph_pdf417.php, odo_examples, odoexamples, pdf417/Examples,
-	  pdf417/demoapp, pdf417/jpgraph_pdf417.php,
-	  pdf417/pdf417_backends.inc, pdf417/pdf417_clusters.inc,
-	  pdf417/pdf417_compressors.inc, pdf417/pdf417_error.inc,
-	  pdf417_backends.inc, pdf417_clusters.inc, pdf417_compressors.inc,
-	  pdf417_demoapp, pdf417_demoapp/pdf417_demo_image.php,
-	  pdf417_error.inc, pdf417_examples, windrose/examples,
-	  windrose_examples
-
-r167: 2005-08-29 22:41  ljp
-
-	* Made Y2 axis default always at the right end of X
-	Modified files: jpgraph.php
-
-r166: 2005-08-29 22:35  ljp
-
-	* Changed include path for pdf417 demo app
-	Modified files: pdf417/demoapp/pdf417_demo_image.php
-
-r91: 2005-08-27 23:03  ljp
-
-	* Updted jpdocgen to skip returning object with &
-	Modified files: utils/jpdocgen/jpgendb.php
-
-r90: 2005-08-27 23:02  ljp
-
-	* Added more test scripts
-	Modified files: tests/bug_axisy2title.php, tests/gdtest.php,
-	  tests/test_axisy2.php, tests/test_baraccint.php,
-	  tests/test_baraccnull.php, tests/test_bb2671.php,
-	  tests/test_bug144.php, tests/test_bug148.php,
-	  tests/test_bug189.php, tests/test_bug190.php,
-	  tests/test_bug191.php, tests/test_bug197.php,
-	  tests/test_bug203.php, tests/test_bug3.php, tests/test_bug58.php,
-	  tests/test_bug9.php, tests/test_dateaxis3.php,
-	  tests/test_dateaxisy2.php, tests/test_datesparse.php,
-	  tests/test_datesparsebug.php, tests/test_datprobug.php,
-	  tests/test_fieldrot.php, tests/test_gantt.php,
-	  tests/test_ganttcsim.php, tests/test_horizbarcsim.php,
-	  tests/test_legendbox.php, tests/test_line.php,
-	  tests/test_linebug-104.php, tests/test_linesimple.php,
-	  tests/test_logline.php, tests/test_multiline.php,
-	  tests/test_patternbug.php, tests/test_piecsim.php,
-	  tests/test_pietheme.php, tests/test_scattermark.php,
-	  tests/test_scatternulls.php, tests/test_textalign.php,
-	  tests/test_ttf.php, tests/test_ttfread.php
-
-r88: 2005-08-07 17:18  ljp
-
-	* Chnaged some count() in for loop to a variable instead. Minor formatting change to date class
-	Modified files: jpgraph.php, jpgraph_date.php, jpgraph_error.php,
-	  jpgraph_gantt.php, jpgraph_pie.php, jpgraph_radar.php
-
-r86: 2005-07-12 17:55  ljp
-
-	* Feature #208. Added WindrosePlot::SetRangeStyle()
-	Modified files: jpgraph_windrose.php,
-	  windrose/examples/windrose_ex1b.php
-
-r84: 2005-07-10 18:22  ljp
-
-	* Added debug lines in legend and fine-tuned calculation of legend height
-	Modified files: jpgraph.php
-
-r82: 2005-07-09 21:23  ljp
-
-	* Fixed #196 - Better layout for legend box
-	Modified files: jpgraph.php
-
-r76: 2005-06-25 21:59  ljp
-
-	* Final fix for bug #191 by commenting out some strange adjustment Stroke() for accbar plot
-	Modified files: jpgraph_bar.php
-
-r75: 2005-06-25 21:59  ljp
-
-	* Fix for possible undefined CSIM alt tag. Bumbped version number to 1.19dev
-	Modified files: jpgraph.php
-
-r73: 2005-06-25 11:16  ljp
-
-	* Make sure pie csim center coordinates are integers
-	Modified files: jpgraph_pie.php
-
-r72: 2005-06-22 21:28  ljp
-
-	* Added zero option to line interpolation
-	Modified files: jpgraph_line.php
-
-r69: 2005-06-17 19:46  ljp
-
-	* Added linear interpolation for acc lines (#189)
-	Modified files: jpgraph_line.php
-
-r68: 2005-06-16 21:29  ljp
-
-	* Propset Id
-	Modified files: barcode/jpgraph_barcode.php
-
-r67: 2005-06-16 21:24  ljp
-
-	* Added Id tag
-	Modified files: barcode/jpgraph_barcode.php
-
-r65: 2005-06-16 21:18  ljp
-
-	* Implemented multipe data chunks for EAN128
-	Modified files: barcode/jpgraph_barcode.php
-
-r63: 2005-06-10 04:55  ljp
-
-	* Added individual legend mark size for horiz/vert (#144)
-	Modified files: jpgraph.php
-
-r60: 2005-06-08 11:04  ljp
-
-	* Better handling of bars with an Absolute Width (#190)
-	Modified files: jpgraph.php, jpgraph_bar.php
-
-r58: 2005-06-08 09:21  ljp
-
-	* Compensation for handling of barcenter number of data points (#190)
-	Modified files: jpgraph.php
-
-r56: 2005-06-06 20:14  ljp
-
-	* Fixed HideTicks for log scale (#90)
-	Modified files: jpgraph_log.php
-
-r53: 2005-06-06 18:12  ljp
-
-	* Fix so that 'x' and '-' are interpretated as null in ScatterPlot
-	Modified files: jpgraph_scatter.php
-
-r51: 2005-06-06 16:08  ljp
-
-	* Fix for #188 CSIM for Titles in PieGraphs
-	Modified files: jpgraph_pie.php
-
-r49: 2005-06-06 14:46  ljp
-
-	* Fixed wrong parameter to imagefilledarc() in CakeSlice() #66
-	Modified files: jpgraph.php
-
-r46: 2005-06-06 13:59  ljp
-
-	* Fixed rounding problem #164
-	Modified files: jpgraph_windrose.php
-
-r45: 2005-06-06 13:48  ljp
-
-	* Fixed problem with AccBar PreStrokeAdjust #103
-	Modified files: jpgraph_bar.php
-
-r42: 2005-06-06 13:08  ljp
-
-	* Fixed remaining problem with single slice Pie and CSIM (#107)
-	Modified files: jpgraph_pie.php
-
-r41: 2005-06-06 10:46  ljp
-
-	* Better (X)HTML compliance for generated CSIM HTML
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_gantt.php,
-	  jpgraph_pie.php, jpgraph_pie3d.php, jpgraph_plotmark.inc,
-	  jpgraph_stock.php
-
-r38: 2005-06-06 10:12  ljp
-
-	* Added formatting callback #172
-	Modified files: jpgraph_radar.php
-
-r36: 2005-06-06 10:03  ljp
-
-	* Fixed anti-alias pie problem #71
-	Modified files: jpgraph_pie.php
-
-r35: 2005-06-05 23:05  ljp
-
-	* Test scale positioned icon
-	Modified files: tests/test_barscaleicon.php
-
-r28: 2005-06-05 16:36  ljp
-
-	* More example for guide-lines and date axis
-	Modified files: Examples/dateaxisex2.php,
-	  Examples/dateaxisex3.php, Examples/dateaxisex4.php,
-	  Examples/pielabelsex1.php, Examples/pielabelsex4.php,
-	  jpgraph_date.php, tests/test_barpattern.php,
-	  tests/test_ganttsimple.php, tests/test_pienewlabels.php
-
-r26: 2005-06-05 15:33  ljp
-
-	* Added SetTimeAlign() and adjusted constants
-	Modified files: jpgraph_date.php
-
-r24: 2005-06-05 11:51  ljp
-
-	* Some small backporting from v2 branch to handle arrays in Add()
-	Modified files: jpgraph_pie.php
-
-r23: 2005-06-05 11:31  ljp
-
-	* Added pie guide line examples
-	Modified files: Examples/pielabelsex1.php,
-	  Examples/pielabelsex2.php, Examples/pielabelsex3.php
-
-r21: 2005-05-30 20:35  ljp
-
-	* Added Id keyword property
-	Modified files: Todo, flags_full.inc, imgdata_balls.inc,
-	  imgdata_bevels.inc, imgdata_diamonds.inc, imgdata_pushpins.inc,
-	  imgdata_squares.inc, imgdata_stars.inc, jpg-config.inc,
-	  jpgraph.php, jpgraph_antispam-digits.php, jpgraph_antispam.php,
-	  jpgraph_bar.php, jpgraph_canvas.php, jpgraph_canvtools.php,
-	  jpgraph_date.php, jpgraph_error.php, jpgraph_flags.php,
-	  jpgraph_gantt.php, jpgraph_gb2312.php, jpgraph_gradient.php,
-	  jpgraph_iconplot.php, jpgraph_imgtrans.php, jpgraph_line.php,
-	  jpgraph_log.php, jpgraph_odo.php, jpgraph_pie.php,
-	  jpgraph_pie3d.php, jpgraph_plotband.php, jpgraph_plotmark.inc,
-	  jpgraph_polar.php, jpgraph_radar.php, jpgraph_regstat.php,
-	  jpgraph_scatter.php, jpgraph_stock.php, jpgraph_windrose.php
-
-r18: 2005-05-29 18:16  ljp
-
-	* Adaption for icon plot new behaviour in jpgraph.php
-	Modified files: jpgraph_gantt.php
-
-r17: 2005-05-29 15:30  ljp
-
-	* Fix icon positioning
-	Modified files: jpgraph.php, jpgraph_iconplot.php
-
-r13: 2005-05-29 10:40  ljp
-
-	* Added test_barsmallicon test_radarticks2
-	Modified files: tests/test_barsmallicon.php,
-	  tests/test_radarticks2.php
-
-r10: 2005-05-29 10:11  ljp
-
-	* Fixed #181, #182 Scale positions for icon plots and also add rotation of icons
-	Modified files: jpgraph.php, jpgraph_iconplot.php
-
diff --git a/nightly-test-server/jpgraph/Examples/accbarex1.php b/nightly-test-server/jpgraph/Examples/accbarex1.php
deleted file mode 100644
index 2af8062..0000000
--- a/nightly-test-server/jpgraph/Examples/accbarex1.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(-8,8,9,3,5,6);
-$data2y=array(18,2,1,7,5,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(500,400,"auto"); 
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b1plot->value->Show();
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$b2plot->value->Show();
-
-// Create the grouped bar plot
-$gbplot = new AccBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/alphabarex1.php b/nightly-test-server/jpgraph/Examples/alphabarex1.php
deleted file mode 100644
index f873040..0000000
--- a/nightly-test-server/jpgraph/Examples/alphabarex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay1=array(140,110,50,60);
-$datay2=array(35,90,190,190);
-$datay3=array(20,60,70,140);
-
-// Create the basic graph
-$graph = new Graph(450,250,'auto');	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(40,80,30,40);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.02,0.15);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.3');
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Set a nice summer (in Stockholm) image
-$graph->SetBackgroundImage('stship.jpg',BGIMG_COPY);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('white');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('white');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using alpha blending with a background');
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('orange@0.4');
-$bplot2->SetFillColor('brown@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/antispamex01.php b/nightly-test-server/jpgraph/Examples/antispamex01.php
deleted file mode 100644
index f34e52c..0000000
--- a/nightly-test-server/jpgraph/Examples/antispamex01.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-// Antispam example using a random string
-require_once "../jpgraph_antispam.php";
-
-// Create new anti-spam challenge creator
-// Note: Neither '0' (digit) or 'O' (letter) can be used to avoid confusion
-$spam = new AntiSpam();
-
-// Create a random 5 char challenge and return the string generated
-$chars = $spam->Rand(5);
-
-// Stroke random cahllenge
-if( $spam->Stroke() === false ) {
-    die('Illegal or no data to plot');
-}
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex01.php b/nightly-test-server/jpgraph/Examples/backgroundex01.php
deleted file mode 100644
index d7c804d..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex01.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLPLOT);
-
-// Adjust brightness and contrast for background image
-// must be between -1 <= x <= 1, (0,0)=original image
-$graph->AdjBackgroundImage(0,0);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex02.php b/nightly-test-server/jpgraph/Examples/backgroundex02.php
deleted file mode 100644
index 0805fe4..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex02.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex03.php b/nightly-test-server/jpgraph/Examples/backgroundex03.php
deleted file mode 100644
index 587dbd3..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex03.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_COPY);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/balloonex1.php b/nightly-test-server/jpgraph/Examples/balloonex1.php
deleted file mode 100644
index a223680..0000000
--- a/nightly-test-server/jpgraph/Examples/balloonex1.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-// Some data
-$datax = array(1,2,3,4,5,6,7,8);
-$datay = array(12,23,95,18,65,28,86,44);
-// Callback for markers
-// Must return array(width,color,fill_color)
-// If any of the returned values are "" then the
-// default value for that parameter will be used.
-function FCallback($aVal) {
-    // This callback will adjust the fill color and size of
-    // the datapoint according to the data value according to
-    if( $aVal < 30 ) $c = "blue";
-    elseif( $aVal < 70 ) $c = "green";
-    else $c="red";
-    return array(floor($aVal/3),"",$c);
-}
-
-// Setup a basic graph
-$graph = new Graph(400,300,'auto');
-$graph->SetScale("linlin");
-$graph->img->SetMargin(40,100,40,40);		
-$graph->SetShadow();
-$graph->title->Set("Example of ballon scatter plot");
-// Use a lot of grace to get large scales
-$graph->yaxis->scale->SetGrace(50,10);
-
-// Make sure X-axis as at the bottom of the graph
-$graph->xaxis->SetPos('min');
-
-// Create the scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-
-// Uncomment the following two lines to display the values
-$sp1->value->Show();
-$sp1->value->SetFont(FF_FONT1,FS_BOLD);
-
-// Specify the callback
-$sp1->mark->SetCallback("FCallback");
-
-// Setup the legend for plot
-$sp1->SetLegend('Year 2002');
-
-// Add the scatter plot to the graph
-$graph->Add($sp1);
-
-// ... and send to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bar2scalesex1.php b/nightly-test-server/jpgraph/Examples/bar2scalesex1.php
deleted file mode 100644
index 4f34b28..0000000
--- a/nightly-test-server/jpgraph/Examples/bar2scalesex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(20,30,50,80);
-$datay2=array(430,645,223,690);
-$datazero=array(0,0,0,0);
-
-// Create the graph. 
-$graph = new Graph(450,200);
-$graph->title->Set('Example with 2 scale bars');
-
-// Setup Y and Y2 scales with some "grace"	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->yaxis->scale->SetGrace(30);
-$graph->y2axis->scale->SetGrace(30);
-
-//$graph->ygrid->Show(true,true);
-$graph->ygrid->SetColor('gray','lightgray@0.5');
-
-// Setup graph colors
-$graph->SetMarginColor('white');
-$graph->y2axis->SetColor('darkred');
-
-
-// Create the "dummy" 0 bplot
-$bplotzero = new BarPlot($datazero);
-
-// Create the "Y" axis group
-$ybplot1 = new BarPlot($datay);
-$ybplot1->value->Show();
-$ybplot = new GroupBarPlot(array($ybplot1,$bplotzero));
-
-// Create the "Y2" axis group
-$ybplot2 = new BarPlot($datay2);
-$ybplot2->value->Show();
-$ybplot2->value->SetColor('darkred');
-$ybplot2->SetFillColor('darkred');
-$y2bplot = new GroupBarPlot(array($bplotzero,$ybplot2));
-
-// Add the grouped bar plots to the graph
-$graph->Add($ybplot);
-$graph->AddY2($y2bplot);
-
-// .. and finally stroke the image back to browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex1.php b/nightly-test-server/jpgraph/Examples/bar_csimex1.php
deleted file mode 100644
index 9783b59..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$datay=array(12,26,9,17,31);
-
-// Create the graph. 
-// One minute timeout for the cached image
-// INLINE_NO means don't stream it back to the browser.
-$graph = new Graph(310,250,'auto');
-$graph->SetScale("textlin");
-$graph->img->SetMargin(60,30,20,40);
-$graph->yaxis->SetTitleMargin(45);
-$graph->yaxis->scale->SetGrace(30);
-$graph->SetShadow();
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Create targets for the image maps. One for each column
-$targ=array("bar_clsmex1.php#1","bar_clsmex1.php#2","bar_clsmex1.php#3","bar_clsmex1.php#4","bar_clsmex1.php#5","bar_clsmex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-$bplot->SetFillColor("orange");
-
-// Use a shadow on the bar graphs (just use the default settings)
-$bplot->SetShadow();
-$bplot->value->SetFormat(" $ %2.1f",70);
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->SetColor("blue");
-$bplot->value->Show();
-
-$graph->Add($bplot);
-
-$graph->title->Set("Image maps barex1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex1.php','bar_csimex1');
-
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex2.php b/nightly-test-server/jpgraph/Examples/bar_csimex2.php
deleted file mode 100644
index fbaf010..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex2.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,12,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,'auto');
-$graph->SetScale("textlin");
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
-"bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b1plot->SetCSIMTargets($targ,$alts);
-
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
-"bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b2plot->SetCSIMTargets($targ,$alts);
-
-// Create the grouped bar plot
-$abplot = new AccBarPlot(array($b1plot,$b2plot));
-
-$abplot->SetShadow();
-$abplot->value->Show();
-
-// ...and add it to the graPH
-$graph->Add($abplot);
-
-$graph->title->Set("Image map barex2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex2.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex3.php b/nightly-test-server/jpgraph/Examples/bar_csimex3.php
deleted file mode 100644
index 9844738..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex3.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-// $Id$
-// Horiontal bar graph with image maps
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(5,8,19,3,10,5);
-$data2y=array(12,2,12,7,14,4);
-
-// Setup the basic parameters for the graph
-$graph = new Graph(400,700);
-$graph->SetAngle(90);
-$graph->SetScale("textlin");
-
-// The negative margins are necessary since we
-// have rotated the image 90 degress and shifted the 
-// meaning of width, and height. This means that the 
-// left and right margins now becomes top and bottom
-// calculated with the image width and not the height.
-$graph->img->SetMargin(-80,-80,210,210);
-
-$graph->SetMarginColor('white');
-
-// Setup title for graph
-$graph->title->Set('Horizontal bar graph');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->subtitle->Set("With image map\nNote: The URL just points back to this image");
-
-// Setup X-axis.
-$graph->xaxis->SetTitle("X-title",'center');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetAngle(90);
-$graph->xaxis->SetTitleMargin(30);
-$graph->xaxis->SetLabelMargin(15);
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Setup Y-axis
-
-// First we want it at the bottom, i.e. the 'max' value of the
-// x-axis
-$graph->yaxis->SetPos('max');
-
-// Arrange the title
-$graph->yaxis->SetTitle("Turnaround (mkr)",'center');
-$graph->yaxis->SetTitleSide(SIDE_RIGHT);
-$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->yaxis->title->SetAngle(0);
-$graph->yaxis->title->Align('center','top');
-$graph->yaxis->SetTitleMargin(30);
-
-// Arrange the labels
-$graph->yaxis->SetLabelSide(SIDE_RIGHT);
-$graph->yaxis->SetLabelAlign('center','top');
-
-// Create the bar plots with image maps
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
-            "bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b1plot->SetCSIMTargets($targ,$alts);
-
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
-            "bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b2plot->SetCSIMTargets($targ,$alts);
-
-// Create the accumulated bar plot
-$abplot = new AccBarPlot(array($b1plot,$b2plot));
-$abplot->SetShadow();
-
-// We want to display the value of each bar at the top
-$abplot->value->Show();
-$abplot->value->SetFont(FF_FONT1,FS_NORMAL);
-$abplot->value->SetAlign('left','center');
-$abplot->value->SetColor("black","darkred");
-$abplot->value->SetFormat('%.1f mkr');
-
-// ...and add it to the graph
-$graph->Add($abplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex3.php','bar_csimex3');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php b/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php
deleted file mode 100644
index b1f136f..0000000
--- a/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data = array(0.1235,0.4567,0.67,0.45,0.832);
-
-// Callback function
-// Get called with the actual value and should return the
-// value to be displayed as a string
-function cbFmtPercentage($aVal) {
-    return sprintf("%.1f%%",100*$aVal); // Convert to string
-}
-
-// Create the graph. 
-$graph = new Graph(400,300);	
-$graph->SetScale("textlin");
-
-// Create a bar plots
-$bar1 = new BarPlot($data);
-
-// Setup the callback function
-$bar1->value->SetFormatCallback("cbFmtPercentage");
-$bar1->value->Show();
-
-// Add the plot to the graph
-$graph->Add($bar1);
-
-// .. and send the graph back to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex1.php b/nightly-test-server/jpgraph/Examples/bargradex1.php
deleted file mode 100644
index eb5e880..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex1.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(0.13,0.25,0.21,0.35,0.31,0.06);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("lightblue");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Bar gradient (Left reflection)");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","#EEEEEE",GRAD_LEFT_REFLECTION);
-
-// Set color for the frame of each bar
-$bplot->SetColor("white");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex2.php b/nightly-test-server/jpgraph/Examples/bargradex2.php
deleted file mode 100644
index cc8e66a..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex2.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,18);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->xaxis->SetColor("black","red");
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,11);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex3.php b/nightly-test-server/jpgraph/Examples/bargradex3.php
deleted file mode 100644
index f9454b6..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex3.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,16);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex4.php b/nightly-test-server/jpgraph/Examples/bargradex4.php
deleted file mode 100644
index 00a6a66..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex4.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 19:44
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(0.3031,0.3044,0.3049,0.3040,0.3024,0.3047);
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,30,30,40);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("teal");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Bargraph with small variations");
-$graph->title->SetColor("white");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
-
-// Setup color for axis and labels
-$graph->xaxis->SetColor("black","white");
-$graph->yaxis->SetColor("black","white");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Setup X-axis title (color & font)
-$graph->xaxis->title->Set("X-axis");
-$graph->xaxis->title->SetColor("white");
-$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$tcol=array(100,100,255);
-$fcol=array(255,100,100);
-$bplot->SetFillGradient($fcol,$tcol,GRAD_HOR);
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex5.php b/nightly-test-server/jpgraph/Examples/bargradex5.php
deleted file mode 100644
index 6ea062f..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex5.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 19:44
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-// We need some data
-$datay=array(0.3031,0.3044,0.3049,0.3040,0.3024,0.3047);
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,30,30,40);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("teal");
-$graph->SetShadow();
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// This is how you make the bar graph start from something other than 0
-$bplot->SetYMin(0.302);
-
-// Setup color for gradient fill style 
-$tcol=array(100,100,255);
-$fcol=array(255,100,100);
-$bplot->SetFillGradient($fcol,$tcol,GRAD_HOR);
-$bplot->SetFillColor("orange");
-$graph->Add($bplot);
-
-// Set up the title for the graph
-$graph->title->Set("Bargraph which doesn't start from y=0");
-$graph->title->SetColor("yellow");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
-
-// Setup color for axis and labels
-$graph->xaxis->SetColor("black","white");
-$graph->yaxis->SetColor("black","white");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Setup X-axis title (color & font)
-$graph->xaxis->title->Set("X-axis");
-$graph->xaxis->title->SetColor("white");
-$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex6.php b/nightly-test-server/jpgraph/Examples/bargradex6.php
deleted file mode 100644
index b3b7bd1..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex6.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(500,200,"auto");	
-$graph->img->SetMargin(60,150,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,16);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-$bplot->SetLegend("Result 1999","blue");
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex1.php b/nightly-test-server/jpgraph/Examples/bargradsmallex1.php
deleted file mode 100644
index 10b60be..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex1.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_MIDVER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex2.php b/nightly-test-server/jpgraph/Examples/bargradsmallex2.php
deleted file mode 100644
index 5761008..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_MIDHOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_MIDHOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex3.php b/nightly-test-server/jpgraph/Examples/bargradsmallex3.php
deleted file mode 100644
index c16eaa6..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex3.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_HOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_HOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex4.php b/nightly-test-server/jpgraph/Examples/bargradsmallex4.php
deleted file mode 100644
index 63bf0a7..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex4.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_VER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_VER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex5.php b/nightly-test-server/jpgraph/Examples/bargradsmallex5.php
deleted file mode 100644
index f9f738b..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex5.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_WIDE_MIDVER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_WIDE_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex6.php b/nightly-test-server/jpgraph/Examples/bargradsmallex6.php
deleted file mode 100644
index b762a87..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex6.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_WIDE_MIDHOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_WIDE_MIDHOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex7.php b/nightly-test-server/jpgraph/Examples/bargradsmallex7.php
deleted file mode 100644
index cb18edc..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex7.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_CENTER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_CENTER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex8.php b/nightly-test-server/jpgraph/Examples/bargradsmallex8.php
deleted file mode 100644
index a1a0ea9..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex8.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_RAISED_PANEL"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient('navy','orange',GRAD_RAISED_PANEL);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barimgex1.php b/nightly-test-server/jpgraph/Examples/barimgex1.php
deleted file mode 100644
index 324adda..0000000
--- a/nightly-test-server/jpgraph/Examples/barimgex1.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-$datay=array(5,3,11,6,3);
-
-$graph = new Graph(400,300,'auto');	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Images on top of bars');
-$graph->title->SetFont(FF_VERA,FS_BOLD,13);
-
-$graph->SetTitleBackground('lightblue:1.1',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-
-$lplot = new LinePlot($datay);
-//$lplot->SetColor('white@1');
-$lplot->SetBarCenter();
-$lplot->mark->SetType(MARK_IMG_LBALL,'red');
-
-$graph->Add($bplot);
-$graph->Add($lplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barintex1.php b/nightly-test-server/jpgraph/Examples/barintex1.php
deleted file mode 100644
index 55c9eac..0000000
--- a/nightly-test-server/jpgraph/Examples/barintex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay=array(1,1,0.5);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(40,30,30,40);
-$graph->SetScale("textint");
-$graph->SetShadow();
-$graph->SetFrame(false); // No border around the graph
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-$graph->yaxis->scale->SetGrace(100);
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT2);
-
-// Setup graph title ands fonts
-$graph->title->Set("Example of integer Y-scale");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetShadow();
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barintex2.php b/nightly-test-server/jpgraph/Examples/barintex2.php
deleted file mode 100644
index 9047a1d..0000000
--- a/nightly-test-server/jpgraph/Examples/barintex2.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay=array(3,1,7,5,12,11,9,4,17);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(40,30,40,40);
-$graph->SetScale("textint");
-$graph->SetFrame(true,'blue',1); 
-$graph->SetColor('lightblue');
-$graph->SetMarginColor('lightblue');
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-$graph->yaxis->scale->SetGrace(20);
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->xaxis->SetColor('darkblue','black');
-
-// Stup "hidden" y-axis by given it the same color
-// as the background
-$graph->yaxis->SetColor('lightblue','darkblue');
-$graph->ygrid->SetColor('white');
-
-// Setup graph title ands fonts
-$graph->title->Set('Example of integer Y-scale');
-$graph->subtitle->Set('(With "hidden" y-axis)');
-
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor('darkblue');
-$bplot->SetColor('darkblue');
-$bplot->SetWidth(0.5);
-$bplot->SetShadow('darkgray');
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,8);
-$bplot->value->SetFormat('$%d');
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barline_csimex1.php b/nightly-test-server/jpgraph/Examples/barline_csimex1.php
deleted file mode 100644
index 9469956..0000000
--- a/nightly-test-server/jpgraph/Examples/barline_csimex1.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php 
-include ("../jpgraph.php"); 
-include ("../jpgraph_line.php"); 
-include ("../jpgraph_bar.php"); 
-
-$ydata = array(2,3,4,5,6,7,8,9,10,11); 
-$ydata2 = array(1,2,3,4,5,6,7,8,9,10); 
-$targ = array("#1","#2","#3","#4","#5","#6","#7","#8","#9","#10");
-$alt = array(1,2,3,4,5,6,7,8,9,10); 
-
-// Create the graph. 
-$graph = new Graph(300,200,"auto");     
-$graph->SetScale("textlin"); 
-$graph->img->SetMargin(40,20,30,40); 
-$graph->title->Set("CSIM example with bar and line"); 
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup axis titles
-$graph->xaxis->title->Set("X-title"); 
-$graph->yaxis->title->Set("Y-title"); 
-
-// Create the linear plot 
-$lineplot=new LinePlot($ydata); 
-$lineplot->mark->SetType(MARK_FILLEDCIRCLE);
-$lineplot->mark->SetWidth(5);
-$lineplot->mark->SetColor('black');
-$lineplot->mark->SetFillColor('red');
-$lineplot->SetCSIMTargets($targ,$alt);
-
-// Create line plot
-$barplot=new barPlot($ydata2); 
-$barplot->SetCSIMTargets($targ,$alt);
-
-// Add the plots to the graph 
-$graph->Add($lineplot); 
-$graph->Add($barplot); 
-
-$graph->StrokeCSIM('barline_csimex1.php');
-
-?> 
-
-
diff --git a/nightly-test-server/jpgraph/Examples/barlinealphaex1.php b/nightly-test-server/jpgraph/Examples/barlinealphaex1.php
deleted file mode 100644
index ec995c4..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinealphaex1.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-// Some "random" data
-$ydata  = array(10,120,80,190,260,170,60,40,20,230);
-$ydata2 = array(10,70,40,120,200,60,80,40,20,5);
-
-// Get a list of month using the current locale
-$months = $gDateLocale->GetShortMonth();
-
-// Create the graph. 
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMarginColor('white');
-
-// Adjust the margin slightly so that we use the 
-// entire area (since we don't use a frame)
-$graph->SetMargin(30,1,20,5);
-
-// Box around plotarea
-$graph->SetBox(); 
-
-// No frame around the image
-$graph->SetFrame(false);
-
-// Setup the tab title
-$graph->tabtitle->Set('Year 2003');
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,10);
-
-// Setup the X and Y grid
-$graph->ygrid->SetFill(true,'#DDDDDD@0.5','#BBBBBB@0.5');
-$graph->ygrid->SetLineStyle('dashed');
-$graph->ygrid->SetColor('gray');
-$graph->xgrid->Show();
-$graph->xgrid->SetLineStyle('dashed');
-$graph->xgrid->SetColor('gray');
-
-// Setup month as labels on the X-axis
-$graph->xaxis->SetTickLabels($months);
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->xaxis->SetLabelAngle(45);
-
-// Create a bar pot
-$bplot = new BarPlot($ydata);
-$bplot->SetWidth(0.6);
-$fcol='#440000';
-$tcol='#FF9090';
-
-$bplot->SetFillGradient($fcol,$tcol,GRAD_LEFT_REFLECTION);
-
-// Set line weigth to 0 so that there are no border
-// around each bar
-$bplot->SetWeight(0);
-
-$graph->Add($bplot);
-
-// Create filled line plot
-$lplot = new LinePlot($ydata2);
-$lplot->SetFillColor('skyblue@0.5');
-$lplot->SetColor('navy@0.7');
-$lplot->SetBarCenter();
-
-$lplot->mark->SetType(MARK_SQUARE);
-$lplot->mark->SetColor('blue@0.5');
-$lplot->mark->SetFillColor('lightblue');
-$lplot->mark->SetSize(6);
-
-$graph->Add($lplot);
-
-// .. and finally send it back to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php b/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php
deleted file mode 100644
index 0af5d86..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-//
-// Example of CSIM frequence bar that uses the cache
-//
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-include_once ("../jpgraph_line.php");
-
-
-// Utility function to calculate the accumulated frequence
-// for a set of values and ocurrences
-function accfreq($data) {
-    rsort($data);
-    $s = array_sum($data);
-    $as = array($data[0]);
-    $asp = array(100*$as[0]/$s);
-    $n = count($data);
-    for( $i=1; $i < $n; ++$i ) {
-	$as[$i] = $as[$i-1]+$data[$i];
-	$asp[$i] = 100.0*$as[$i]/$s;
-    }
-    return $asp;
-}
-
-// some data
-$data_freq = array(22,20,12,10,5,4,2);
-$data_accfreq = accfreq($data_freq);
-
-// Create the graph. 
-$graph = new Graph(350,250);
-
-// We need to make this extra call for CSIM scripts
-// that make use of the cache. If the cache contains this
-// graph the HTML wrapper will be returned and then the
-// method will call exit() and hence NO LINES AFTER THIS 
-// CALL WILL BE EXECUTED.
-// $graph->CheckCSIMCache('auto');
-
-// Setup some basic graph parameters
-$graph->SetScale("textlin");
-$graph->SetY2Scale('lin',0,100);
-$graph->img->SetMargin(50,70,30,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->SetMarginColor('#EEEEEE');
-
-// Setup titles and fonts
-$graph->title->Set("Frequence plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-$graph->y2axis->SetTickSide(SIDE_RIGHT);
-$graph->y2axis->SetColor('black','blue');
-$graph->y2axis->SetLabelFormat('%3d.0%%');
-
-// Create a bar pot
-$bplot = new BarPlot($data_freq);
-
-// Create targets and alt texts for the image maps. One for each bar
-// (In this example this is just "dummy" targets)
-$targ=array("#1","#2","#3","#4","#5","#6","#7");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-
-
-// Create accumulative graph
-$lplot = new LinePlot($data_accfreq);
-
-// We want the line plot data point in the middle of the bars
-$lplot->SetBarCenter();
-
-// Use transperancy
-$lplot->SetFillColor('lightblue@0.6');
-$lplot->SetColor('blue@0.6');
-//$lplot->SetColor('blue');
-$graph->AddY2($lplot);
-
-
-// Setup the bars
-$bplot->SetFillColor("orange@0.2");
-$bplot->SetValuePos('center');
-$bplot->value->SetFormat("%d");
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->Show();
-
-// Add it to the graph
-$graph->Add($bplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('barlinefreq_csimex1.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barlinefreqex1.php b/nightly-test-server/jpgraph/Examples/barlinefreqex1.php
deleted file mode 100644
index 210b5bf..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinefreqex1.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-//
-// Example of frequence bar 
-//
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-include_once ("../jpgraph_line.php");
-
-// Utility function to calculate the accumulated frequence
-// for a set of values and ocurrences
-function accfreq($data) {
-    rsort($data);
-    $s = array_sum($data);
-    $as = array($data[0]);
-    $asp = array(100*$as[0]/$s);
-    $n = count($data);
-    for( $i=1; $i < $n; ++$i ) {
-	$as[$i] = $as[$i-1]+$data[$i];
-	$asp[$i] = 100.0*$as[$i]/$s;
-    }
-    return $asp;
-}
-
-// some data
-$data_freq = array(22,20,12,10,5,4,2);
-$data_accfreq = accfreq($data_freq);
-
-// Create the graph. 
-$graph = new Graph(350,250);
-
-// Setup some basic graph parameters
-$graph->SetScale("textlin");
-$graph->SetY2Scale('lin',0,100);
-$graph->img->SetMargin(50,70,30,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->SetMarginColor('#EEEEEE');
-
-// Setup titles and fonts
-$graph->title->Set("Frequence plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-$graph->y2axis->SetTickSide(SIDE_RIGHT);
-$graph->y2axis->SetColor('black','blue');
-$graph->y2axis->SetLabelFormat('%3d.0%%');
-
-// Create a bar pot
-$bplot = new BarPlot($data_freq);
-
-// Create accumulative graph
-$lplot = new LinePlot($data_accfreq);
-
-// We want the line plot data point in the middle of the bars
-$lplot->SetBarCenter();
-
-// Use transperancy
-$lplot->SetFillColor('lightblue@0.6');
-$lplot->SetColor('blue@0.6');
-$graph->AddY2($lplot);
-
-// Setup the bars
-$bplot->SetFillColor("orange@0.2");
-$bplot->SetValuePos('center');
-$bplot->value->SetFormat("%d");
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->Show();
-
-// Add it to the graph
-$graph->Add($bplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barpatternex1.php b/nightly-test-server/jpgraph/Examples/barpatternex1.php
deleted file mode 100644
index deac421..0000000
--- a/nightly-test-server/jpgraph/Examples/barpatternex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-$datay=array(2,3,5,8.5,11.5,6,3);
-
-// Create the graph. 
-$graph = new Graph(350,300);	
-
-$graph->SetScale("textlin");
-
-$graph->SetMarginColor('navy:1.9');
-$graph->SetBox();
-
-$graph->title->Set('Bar Pattern');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
-
-$graph->SetTitleBackground('lightblue:1.3',TITLEBKG_STYLE2,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'lightblue','blue');
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor('darkorange');
-$bplot->SetWidth(0.6);
-
-$bplot->SetPattern(PATTERN_CROSS1,'navy');
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php b/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php
deleted file mode 100644
index 906bc1a..0000000
--- a/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Callback function for Y-scale
-function yScaleCallback($aVal) {
-	return number_format($aVal);
-}
-
-// Some data
-$datay=array(120567,134013,192000,87000);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(80,30,30,40);
-$graph->SetScale("textint");
-$graph->SetShadow();
-$graph->SetFrame(false); // No border around the graph
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-// Since we are using integer scale the gace gets intervalled
-// to adding integer values.
-// For example grace 10 to 100 will add 1 to max, 101-200 adds 2
-// and so on...
-$graph->yaxis->scale->SetGrace(30);
-$graph->yaxis->SetLabelFormatCallback('yScaleCallback');
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT2);
-
-// Setup graph title ands fonts
-$graph->title->Set("Example of Y-scale callback formatting");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetShadow();
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('$ %0.0f');
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bartutex1.php b/nightly-test-server/jpgraph/Examples/bartutex1.php
deleted file mode 100644
index fc70613..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$databary=array(12,7,16,5,7,14,9,3);
-
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Set title and subtitle
-$graph->title->Set("Elementary barplot with a text scale");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex12.php b/nightly-test-server/jpgraph/Examples/bartutex12.php
deleted file mode 100644
index 41eca7f..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex12.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-// A medium complex example of JpGraph
-// Note: You can create a graph in far fewwr lines of code if you are
-// willing to go with the defaults. This is an illustrative example of
-// some of the capabilities of JpGraph.
-
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$month=array(
-"Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
-
-// Create some datapoints 
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$databarx[]=sprintf("198%d %s",floor($i/12),$month[$i%12]);
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	if( $i % 6 == 0 && $i<$steps-6) {
-		$databary[]=abs(25*sin($i)+5);
-	}
-	else {
-		$databary[]=0;
-	}
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use text X-scale so we can text labels on the X-axis
-$graph->SetScale("textlin");
-
-// Y2-axis is linear
-$graph->SetY2Scale("lin");
-
-// Color the two Y-axis to make them easier to associate
-// to the corresponding plot (we keep the axis black though)
-$graph->yaxis->SetColor("black","red");
-$graph->y2axis->SetColor("black","orange");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("100 data points, X-Scale: 'text'");
-
-// Use built in font (don't need TTF support)
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger then default
-$graph->img->SetMargin(40,140,40,80);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.03,0.5,"right","center");
-
-// Display every 6:th tickmark
-$graph->xaxis->SetTextTickInterval(6);
-
-// Label every 2:nd tick mark
-$graph->xaxis->SetTextLabelInterval(2);
-
-// Setup the labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetLabelAngle(90);
-
-// Create a red line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("red");
-$p1->SetLegend("Pressure");
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetFillColor("orange");
-$b1->SetAbsWidth(8);
-
-// Drop shadow on bars adjust the default values a little bit
-$b1->SetShadow("steelblue",2,2);
-
-// The order the plots are added determines who's ontop
-$graph->Add($p1);
-$graph->AddY2($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex2.php b/nightly-test-server/jpgraph/Examples/bartutex2.php
deleted file mode 100644
index 4072d98..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex2.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$databary=array(12,7,16,6,7,14,9,3);
-$months=$gDateLocale->GetShortMonth();
-
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($months);
-
-// Set title and subtitle
-$graph->title->Set("Textscale with specified labels");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex3.php b/nightly-test-server/jpgraph/Examples/bartutex3.php
deleted file mode 100644
index 4ab88a0..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex3.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 3");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex4.php b/nightly-test-server/jpgraph/Examples/bartutex4.php
deleted file mode 100644
index 65a4a32..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex4.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-//$databarx = array('tXi','','','xxx','','','iXii','','','OOO','','','tOO');
-$graph->xaxis->SetFont(FF_FONT1,FS_NORMAL);
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(3);
-
-// Set title and subtitle
-$graph->title->Set("Displaying only every third label");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex5.php b/nightly-test-server/jpgraph/Examples/bartutex5.php
deleted file mode 100644
index 93a092e..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex5.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(1);
-$graph->xaxis->SetTextTickInterval(3);
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 5");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetWidth(0.4);
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex6.php b/nightly-test-server/jpgraph/Examples/bartutex6.php
deleted file mode 100644
index 375fd70..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex6.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(3);
-
-// Hide the tick marks
-$graph->xaxis->HideTicks();
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 6");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetWidth(0.4);
-
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bezierex1.php b/nightly-test-server/jpgraph/Examples/bezierex1.php
deleted file mode 100644
index ba1af08..0000000
--- a/nightly-test-server/jpgraph/Examples/bezierex1.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ('../jpgraph.php');
-include ('../jpgraph_line.php');
-include ('../jpgraph_scatter.php');
-include ('../jpgraph_regstat.php');
-
-// Original data points
-$xdata = array(1,3,12,15);
-$ydata = array(5,15,2,19);
-
-// Get the interpolated values by creating
-// a new Spline object.
-$bez = new Bezier($xdata,$ydata);
-
-// For the new data set we want 40 points to
-// get a smooth curve.
-list($newx,$newy) = $bez->Get(50);
-
-// Create the graph
-$g = new Graph(300,200);
-$g->SetMargin(30,20,40,30);
-$g->title->Set("Bezier interpolation");
-$g->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$g->subtitle->Set('(Control points shown in red)');
-$g->subtitle->SetColor('darkred');
-$g->SetMarginColor('lightblue');
-
-//$g->img->SetAntiAliasing();
-
-// We need a linlin scale since we provide both
-// x and y coordinates for the data points.
-$g->SetScale('linlin');
-
-// We want 1 decimal for the X-label
-$g->xaxis->SetLabelFormat('%1.1f');
-
-// We use a scatterplot to illustrate the original
-// contro points.
-$bplot = new ScatterPlot($ydata,$xdata);
-$bplot->mark->SetFillColor('red@0.3');
-$bplot->mark->SetColor('red@0.5');
-
-// And a line plot to stroke the smooth curve we got
-// from the original control points
-$lplot = new LinePlot($newy,$newx);
-$lplot->SetColor('navy');
-
-// Add the plots to the graph and stroke
-$g->Add($lplot);
-$g->Add($bplot);
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php
deleted file mode 100644
index 289180a..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php
deleted file mode 100644
index bdd5437..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_UP,100,180);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php
deleted file mode 100644
index a70d855..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_DOWN,100,180);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php
deleted file mode 100644
index d7011c5..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_LEFT,350,320,true);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png b/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png
deleted file mode 100644
index 8852862..0000000
--- a/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php b/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php
deleted file mode 100644
index 77cd690..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Setup URL target for image map
-$p1->SetCSIMTargets(array('#1','#2','#3','#4','#5'));
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-//$p1->SetCenter();
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->StrokeCSIM(basename(__FILE__));
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/boxstockex1.php b/nightly-test-server/jpgraph/Examples/boxstockex1.php
deleted file mode 100644
index e85eed7..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/boxstockex2.php b/nightly-test-server/jpgraph/Examples/boxstockex2.php
deleted file mode 100644
index c9330e7..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-$graph->subtitle->Set('(Indented X-axis)');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Indent bars so they dont start and end at the edge of the
-// plot area
-$p1->SetCenter();
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php b/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php
deleted file mode 100644
index 28775c4..0000000
--- a/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(2,6,7,12,13,18);
-$datay2 = array(5,12,12,19,25,20);
-
-// Setup the graph
-$graph = new Graph(350,200);
-$graph->SetMargin(30,20,60,20);
-$graph->SetMarginColor('white');
-$graph->SetScale("linlin");
-
-// Hide the frame around the graph
-$graph->SetFrame(false);
-
-// Setup title
-$graph->title->Set("Using Builtin PlotMarks");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-// Note: requires jpgraph 1.12p or higher
-// $graph->SetBackgroundGradient('blue','navy:0.5',GRAD_HOR,BGRAD_PLOT);
-$graph->tabtitle->Set('Region 1' );
-$graph->tabtitle->SetWidth(TABTITLE_WIDTHFULL);
-
-// Enable X and Y Grid
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('gray@0.5');
-$graph->ygrid->SetColor('gray@0.5');
-
-// Format the legend box
-$graph->legend->SetColor('navy');
-$graph->legend->SetFillColor('lightgreen');
-$graph->legend->SetLineWeight(1);
-$graph->legend->SetFont(FF_ARIAL,FS_BOLD,8);
-$graph->legend->SetShadow('gray@0.4',3);
-$graph->legend->SetAbsPos(15,120,'right','bottom');
-
-// Create the line plots
-
-$p1 = new LinePlot($datay1);
-$p1->SetColor("red");
-$p1->SetFillColor("yellow@0.5");
-$p1->SetWeight(2);
-$p1->mark->SetType(MARK_IMG_DIAMOND,5,0.6);
-$p1->SetLegend('2006');
-$graph->Add($p1);
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor("darkgreen");
-$p2->SetWeight(2);
-$p2->SetLegend('2001');
-$p2->mark->SetType(MARK_IMG_MBALL,'red');
-$graph->Add($p2);
-
-// Add a vertical line at the end scale position '7'
-$l1 = new PlotLine(VERTICAL,7);
-$graph->Add($l1);
-
-// Output the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php b/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php
deleted file mode 100644
index 2bd84dd..0000000
--- a/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Scale we are using
-$ymax=24;
-$xmax=20;
-
-// Setup the basic canvas
-$g = new CanvasGraph(700,650,'auto');
-$g->SetMargin(2,3,2,3);
-$g->SetMarginColor("teal");
-$g->InitFrame();
-
-// ... and a scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// ... we need shape since we want the indented rectangle
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-// ... basic parameters for the overall image
-$l = 2;		// Left margin
-$r = 18;	// Row number to start the lowest line on
-$width = 16;	// Total width
-
-// Setup the two basic rectangle text object we  will use
-$tt = new CanvasRectangleText();
-$tt->SetFont(FF_ARIAL,FS_NORMAL,14);
-$tt->SetFillColor('');
-$tt->SetColor('');
-$tt->SetFontColor('navy');
-
-$t = new CanvasRectangleText();
-$t->SetFont(FF_ARIAL,FS_NORMAL,14);
-$t->SetFillColor('goldenrod1');
-$t->SetFontColor('navy');
-
-
-// Now start drawing the arch overview from the bottom and up
-// This is all pretty manual and one day I will write a proper
-// framework to make it easy to construct these types of architecture
-// overviews. But for now, just plain old coordinates..
-
-// Line: GD Library and image libraries
-$h=3;
-$s  = 3; $d=$l + $width-9;
-$t->SetFillColor('cadetblue3');
-$t->Set("TTF",$d,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$t->Set("PNG",$d+$s,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$t->Set("JPEG",$d+2*$s,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$shape->IndentedRectangle($l,$r,$width,$h,$s*3,1,2,'lightgreen');
-$tt->Set("GD Basic library\n(1.8.x or 2.x)",$l,$r,$width,$h-1); 
-$tt->Stroke($g->img,$scale);
-
-
-// Area: Basic internal JpGraph architecture
-$t->SetFillColor('goldenrod1');
-$h = 2;
-$r -= $h; $d=8;
-$t->Set("Image primitives\n(RGB, Anti-aliasing,\nGD Abstraction)",$l,$r-0.5,$width*0.5,$h+0.5);
-$t->Stroke($g->img,$scale);
-$t->Set("Image Cache &\nStreaming",$l+0.5*$width,$r,$width*0.4,$h);
-$t->Stroke($g->img,$scale);
-
-$r -= $h; $d=8;
-$t->Set("2D Rot & Transformation",$l,$r,$width*0.5,$h-0.5); $t->Stroke($g->img,$scale);
-
-
-$r -= 2; $h = 4;
-$shape->IndentedRectangle($l,$r,$width*0.9,$h,$d,2,3,'goldenrod1');
-$tt->Set("Axis, Labelling, (Auto)-Scaling",$l,$r,$width*0.9,$h-2); $tt->Stroke($g->img,$scale);
-
-$r -= 1;
-$shape->IndentedRectangle($l,$r,$width,7,$width*0.9,6,3,'goldenrod1');
-$tt->Set("Error handling & Utility classes",$l,$r,$width,1); $tt->Stroke($g->img,$scale);
-
-
-// Area: Top area with graph components
-$t->SetFillColor('gold1');
-$r -= 3;
-$w = $width*0.55/4; $h = 2;
-$t->Set("Gantt\nGraph",$l,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-
-$t->Set("Pie\nGraph",$l+$w,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-$t->Set("Radar\nGraph",$l+$w*2,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-
-$shape->IndentedRectangle($l,$r,$width,3,4*$w,2,0,'gold1');
-$tt->Set("Base Graph\n(Orthogonal\ncoordinate system)",$l+4*$w,$r,$width-$w*4,3); 
-$tt->Stroke($g->img,$scale);
-
-$r -= 2;
-$d = 0.7;
-$shape->IndentedRectangle($l+3*$w,$r,$w,4, $w*$d,2,0,'gold1');
-$t->Set("Canv\nUtil",$l+3*$w,$r,$w*$d,$h);     $t->Stroke($g->img,$scale);
-$tt->Set("Canvas\nGraph",$l+3*$w,$r+2,$w,2); $tt->Stroke($g->img,$scale);
-
-// Top line of plotting plugins
-$t->SetFillColor('cyan');
-$t->Set("Gantt\nPlot",$l,$r,$w,$h); $t->Stroke($g->img,$scale);
-$t->Set("2D\nPlot",$l+$w,$r,$w/2,$h);     $t->Stroke($g->img,$scale);
-$t->Set("3D\nPlot",$l+$w+$w/2,$r,$w/2,$h);$t->Stroke($g->img,$scale);
-$t->Set("Radar\nPlot",$l+2*$w,$r,$w,$h); $t->Stroke($g->img,$scale);
-
-$wp = ($width - 4*$w)/4; 
-$t->Set("Error\nPlot",$l+4*$w,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Line\nPlot",$l+4*$w+$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Bar\nPlot",$l+4*$w+2*$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Scatter\nPlot",$l+4*$w+3*$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-
-// Show application top
-$r -= 2.5; $h=2; 
-$t->SetFillColor('blue');
-$t->SetFontColor('white');
-$t->SetFont(FF_ARIAL,FS_BOLD,20);
-$t->Set("PHP Application",$l,$r,$width,$h); $t->Stroke($g->img,$scale);
-
-// Stroke title
-$r = 0.5;
-$tt->SetFontColor('black');
-$tt->SetFont(FF_TIMES,FS_BOLD,28);
-$tt->Set("JpGraph Architecture Overview",$l,$r,$width,1); 
-$tt->Stroke($g->img,$scale);
-
-// Stroke footer
-$tt->SetFont(FF_VERDANA,FS_NORMAL,10);
-$tt->Set("Generated: ".date("ymd H:m",time()),0.1,$ymax*0.95); 
-$tt->Stroke($g->img,$scale);
-
-// .. and stream it all back
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasbezierex1.php b/nightly-test-server/jpgraph/Examples/canvasbezierex1.php
deleted file mode 100644
index 5a69bbf..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasbezierex1.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Setup canvas graph
-$g = new CanvasGraph(400,300);
-$scale = new CanvasScale($g);
-$shape = new Shape($g,$scale);
-
-$g->title->Set('Bezier line with control points');
-
-// Setup control point for bezier
-$p = array(3,6,
-	   6,9,
-	   5,3,
-	   7,4);
-
-// Visualize control points
-$shape->SetColor('blue');
-$shape->Line($p[0],$p[1],$p[2],$p[3]);
-$shape->FilledCircle($p[2],$p[3],-6);
-
-$shape->SetColor('red');
-$shape->Line($p[4],$p[5],$p[6],$p[7]);
-$shape->FilledCircle($p[4],$p[5],-6);
-
-// Draw bezier
-$shape->SetColor('black');
-$shape->Bezier($p);
-
-// Frame it with a square
-$shape->SetColor('navy');
-$shape->Rectangle(0.5,2,9.5,9.5);
-
-// ... and stroke it
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex01.php b/nightly-test-server/jpgraph/Examples/canvasex01.php
deleted file mode 100644
index dd03c12..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex01.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,300,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Draw a text box in the middle
-$txt="This\nis\na TEXT!!!";
-$t = new Text($txt,200,10);
-$t->SetFont(FF_ARIAL,FS_BOLD,40);
-
-// How should the text box interpret the coordinates?
-$t->Align('center','top');
-
-// How should the paragraph be aligned?
-$t->ParagraphAlign('center');
-
-// Add a box around the text, white fill, black border and gray shadow
-$t->SetBox("white","black","gray");
-
-// Stroke the text
-$t->Stroke($g->img);
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex02.php b/nightly-test-server/jpgraph/Examples/canvasex02.php
deleted file mode 100644
index f62adf2..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex02.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Add a black line
-$g->img->SetColor('black');
-$g->img->Line(0,0,100,100);
-
-// .. and a circle (x,y,diameter)
-$g->img->Circle(100,100,50);
-
-// .. and a filled circle (x,y,diameter)
-$g->img->SetColor('red');
-$g->img->FilledCircle(200,100,50);
-
-// .. add a rectangle
-$g->img->SetColor('green');
-$g->img->FilledRectangle(10,10,50,50);
-
-// .. add a filled rounded rectangle
-$g->img->SetColor('green');
-$g->img->FilledRoundedRectangle(300,30,350,80,10);
-// .. with a darker border
-$g->img->SetColor('darkgreen');
-$g->img->RoundedRectangle(300,30,350,80,10);
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex03.php b/nightly-test-server/jpgraph/Examples/canvasex03.php
deleted file mode 100644
index 4889862..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex03.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=20;
-$ymax=20;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex04.php b/nightly-test-server/jpgraph/Examples/canvasex04.php
deleted file mode 100644
index dcc5f50..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex04.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=20;
-$ymax=20;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(200,100,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex05.php b/nightly-test-server/jpgraph/Examples/canvasex05.php
deleted file mode 100644
index d3e9bf1..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex05.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=40;
-$ymax=40;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex06.php b/nightly-test-server/jpgraph/Examples/canvasex06.php
deleted file mode 100644
index 00c1c01..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex06.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=40;
-$ymax=40;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-$shape->IndentedRectangle(1,2,15,15,8,8,CORNER_TOPLEFT,'khaki');
-
-$shape->IndentedRectangle(1,20,15,15,8,8,CORNER_BOTTOMLEFT,'khaki');
-
-$shape->IndentedRectangle(20,2,15,15,8,8,CORNER_TOPRIGHT,'khaki');
-
-$shape->IndentedRectangle(20,20,15,15,8,8,CORNER_BOTTOMRIGHT,'khaki');
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvaspiralex1.php b/nightly-test-server/jpgraph/Examples/canvaspiralex1.php
deleted file mode 100644
index 0f30289..0000000
--- a/nightly-test-server/jpgraph/Examples/canvaspiralex1.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-
-if( empty($_GET['r']) ) 
-    $r = 0.44;
-else
-    $r = $_GET['r'];
-
-if( empty($_GET['w']) ) 
-    $w=150;
-else
-    $w = $_GET['w'];
-
-if( empty($_GET['h']) ) 
-    $h=240;
-else
-    $h = $_GET['h'];
-
-if( $w < 60 ) $w=60;
-if( $h < 60 ) $h=60;
-
-
-function SeaShell($img,$x,$y,$w,$h,$r,$n=12,$color1='navy',$color2='red') {
-
-    $x += $w;
-    $w = (1-$r)/$r*$w;
-
-    $sa = 0;
-    $ea = 90;
-
-    $s1 = 1;
-    $s2 = -1;
-    $x_old=$x; $y_old=$y;
-    for($i=1; $i < $n; ++$i) {
-	$sa += 90;
-	$ea += 90;
-	if( $i % 2 == 1 ) {
-	    $y = $y + $s1*$h*$r;
-	    $h = (1-$r)*$h;
-	    $w = $w / (1-$r) * $r ;
-	    $s1 *= -1;
-	    $img->SetColor($color1);
-	    $img->Line($x,$y,$x+$s1*$w,$y);
-	}
-	else {
-	    $x = $x + $s2*$w*$r;
-	    $w = (1-$r)*$w;
-	    $h = $h / (1-$r) * $r;
-	    $s2 *= -1;
-	    $img->SetColor($color1);
-	    $img->Line($x,$y,$x,$y-$s2*$h);
-	}
-	$img->SetColor($color2);
-	$img->FilledRectangle($x-1,$y-1,$x+1,$y+1);
-	$img->Arc($x,$y,2*$w+1,2*$h+1,$sa,$ea);
-	$img->Arc($x,$y,2*$w,2*$h,$sa,$ea);
-	$img->Arc($x,$y,2*$w-1,2*$h-1,$sa,$ea);
-	$img->Line($x_old,$y_old,$x,$y);
-	$x_old=$x; $y_old=$y;
-    }
-}
-
-$g = new CanvasGraph($w,$h);
-//$gr = 1.61803398874989484820;
-
-$p = SeaShell($g->img,0,20,$w-1,$h-21,$r,19);
-$g->img->SetColor('black');
-$g->img->Rectangle(0,20,$w-1,$h-1);
-$g->img->SetFont(FF_FONT2,FS_BOLD);
-$g->img->SetTextAlign('center','top');
-$g->img->StrokeText($w/2,0,"Canvas Spiral");
-
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex01.php b/nightly-test-server/jpgraph/Examples/centeredlineex01.php
deleted file mode 100644
index 61a92ae..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex01.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-
-//$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of line centered plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Use 20% "grace" to get slightly larger scale then min/max of
-// data
-$graph->yscale->SetGrace(20);
-
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex02.php b/nightly-test-server/jpgraph/Examples/centeredlineex02.php
deleted file mode 100644
index 8a11368..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex02.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-
-//$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line centered plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("green");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex03.php b/nightly-test-server/jpgraph/Examples/centeredlineex03.php
deleted file mode 100644
index 2ed6cfb..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex03.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$labels = array("Oct 2000","Nov 2000","Dec 2000","Jan 2001","Feb 2001","Mar 2001","Apr 2001","May 2001");
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,250,"auto");
-$graph->img->SetMargin(40,40,40,80);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example slanted X-labels");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,14);
-
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,11);
-$graph->xaxis->SetTickLabels($labels);
-$graph->xaxis->SetLabelAngle(45);
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centerlinebarex1.php b/nightly-test-server/jpgraph/Examples/centerlinebarex1.php
deleted file mode 100644
index e9b8393..0000000
--- a/nightly-test-server/jpgraph/Examples/centerlinebarex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(12,15,22,19,5);
-
-$graph = new Graph(400,200);
-$graph->img->SetMargin(40,80,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->Set('Center the line points in bars');
-
-$line = new LinePlot($ydata);
-$line->SetBarCenter();
-$line->SetWeight(2);
-
-$bar = new BarPlot($ydata);
-$bar2 = new BarPlot($ydata);
-$bar2->SetFillColor("red");
-
-$gbar = new GroupbarPlot(array($bar,$bar2));
-
-$graph->Add($gbar);
-$graph->Add($line);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/combgraphex1.php b/nightly-test-server/jpgraph/Examples/combgraphex1.php
deleted file mode 100644
index 3651f9d..0000000
--- a/nightly-test-server/jpgraph/Examples/combgraphex1.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_utils.inc");
-include ("../jpgraph_mgraph.php");
-
-//------------------------------------------------------------------
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//------------------------------------------------------------------
-$datay = array();
-$datax = array();
-$ts = time();
-$n=70; // Number of data points
-for($i=0; $i < $n; ++$i ) {
-    $datax[$i] = $ts+$i*150000; 
-    $datay[$i] = rand(5,60);
-    $datay2[$i] = rand(1,8);
-}
-
-// Now get labels at the start of each month
-$dateUtils = new DateScaleUtils();
-list($tickPositions,$minTickPositions) = $dateUtils->getTicks($datax,DSUTILS_MONTH1);
-
-// Now create the real graph
-// Combine a line and a bar graph
-
-// We add some grace to the end of the X-axis scale so that the first and last
-// data point isn't exactly at the very end or beginning of the scale
-$grace = 400000;
-$xmin = $datax[0]-$grace;
-$xmax = $datax[$n-1]+$grace;;
-
-// Overall width of graphs
-$w = 450;
-// Left and right margin for each graph
-$lm=25; $rm=15; 
-
-//----------------------
-// Setup the line graph
-//----------------------
-$graph = new Graph($w,250);
-$graph->SetScale('linlin',0,0,$xmin,$xmax);
-$graph->SetMargin($lm,$rm,10,30);
-$graph->SetMarginColor('white');
-$graph->SetFrame(false);
-$graph->SetBox(true);
-$graph->title->Set('Example of combined graph');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,14);
-$graph->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-$graph->xaxis->SetLabelFormatString('My',true);
-$graph->xgrid->Show();
-$p1 = new LinePlot($datay,$datax);
-$graph->Add($p1);
-
-//----------------------
-// Setup the bar graph
-//----------------------
-$graph2 = new Graph($w,110);
-$graph2->SetScale('linlin',0,0,$xmin,$xmax);
-$graph2->SetMargin($lm,$rm,5,10);
-$graph2->SetMarginColor('white');
-$graph2->SetFrame(false);
-$graph2->SetBox(true);
-$graph2->xgrid->Show();
-$graph2->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-$graph2->xaxis->SetLabelFormatString('My',true);
-$graph2->xaxis->SetPos('max');
-$graph2->xaxis->HideLabels();
-$graph2->xaxis->SetTickSide(SIDE_DOWN);
-$b1 = new BarPlot($datay2,$datax);
-$b1->SetFillColor('teal');
-$b1->SetColor('teal:1.2');
-$graph2->Add($b1);
-
-//-----------------------
-// Create a multigraph
-//----------------------
-$mgraph = new MGraph();
-$mgraph->SetMargin(2,2,2,2);
-$mgraph->SetFrame(true,'darkgray',2);
-$mgraph->Add($graph);
-$mgraph->Add($graph2,0,240);
-$mgraph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex1.php b/nightly-test-server/jpgraph/Examples/dateaxisex1.php
deleted file mode 100644
index e391432..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// The callback that converts timestamp to minutes and seconds
-function TimeCallback($aVal) {
-    return Date('H:i:s',$aVal);
-}
-
-// Fake some suitable random data
-$now = time();
-$datax = array($now);
-for( $i=0; $i < 360; $i += 10 ) {
-    $datax[] = $now + $i;
-}
-$n = count($datax);
-$datay=array();
-for( $i=0; $i < $n; ++$i ) {
-    $datay[] = rand(30,150);
-}
-
-// Setup the basic graph
-$graph = new Graph(324,250);
-$graph->SetMargin(40,40,30,70);	
-$graph->title->Set('Date: '.date('Y-m-d',$now));
-$graph->SetAlphaBlending();
-
-// Setup a manual x-scale (We leave the sentinels for the
-// Y-axis at 0 which will then autoscale the Y-axis.)
-// We could also use autoscaling for the x-axis but then it
-// probably will start a little bit earlier than the first value
-// to make the first value an even number as it sees the timestamp
-// as an normal integer value.
-$graph->SetScale("intlin",0,200,$now,$datax[$n-1]);
-
-// Setup the x-axis with a format callback to convert the timestamp
-// to a user readable time
-$graph->xaxis->SetLabelFormatCallback('TimeCallback');
-$graph->xaxis->SetLabelAngle(90);
-
-// Create the line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor("blue");
-
-// Set the fill color partly transparent
-$p1->SetFillColor("blue@0.4");
-
-// Add lineplot to the graph
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex2.php b/nightly-test-server/jpgraph/Examples/dateaxisex2.php
deleted file mode 100644
index c9935a7..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex3.php b/nightly-test-server/jpgraph/Examples/dateaxisex3.php
deleted file mode 100644
index 4fa810c..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex3.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-// It is possible to adjust the density for the X-axis as well
-// The following call makes the dates a little more sparse
-// $graph->SetTickDensity(TICKD_NORMAL,TICKD_SPARSE);
-
-// The automatic format string for dates can be overridden
-// $graph->xaxis->scale->SetDateFormat('h:i');
-
-// Adjust the start/end to a specific alignment
-$graph->xaxis->scale->SetTimeAlign(MINADJ_15);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex4.php b/nightly-test-server/jpgraph/Examples/dateaxisex4.php
deleted file mode 100644
index 9d7dd66..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex4.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-// The automatic format string for dates can be overridden
-$graph->xaxis->scale->SetDateFormat('H:i');
-
-// Adjust the start/end to a specific alignment
-$graph->xaxis->scale->SetTimeAlign(MINADJ_10);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dbschemaex1.php b/nightly-test-server/jpgraph/Examples/dbschemaex1.php
deleted file mode 100644
index 914a317..0000000
--- a/nightly-test-server/jpgraph/Examples/dbschemaex1.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	DBSCHEMAEX1.PHP
-// Description:	Draw a DB schema of the DDDA architecture
-// Created: 	2002-08-25
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// License:     This code is released under QPL
-//              Copyright (C) 2001,2002 Johan Persson
-// Note:        The actual drawing of the tables are semi-automatically
-//              but you can easily adjust the individual tables position
-//              with the 'tblposadj' array. 
-//
-//========================================================================
-*/
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-include "../utils/misc/imgdbschema.inc";
-include "../utils/jpdocgen/jpdb.php";
-
-
-// Global callback to format the table header names
-function FormatTblName($aName) {
-    // We want to replace any specifi references to the
-    // 'JpGraph' project with the generic '<project>'
-    return str_replace('JpGraph','<project>', $aName);
-}
-
-// Global callback to format each field name in the table
-function FormatFldName($aName,$aTable) {
-    return $aName;
-}
-
-
-class Driver {
-
-    var $ig, $img, $iscale, $ishape;
-    var $iymax,$ixmax;
-    var $iwidth,$iheight;
-
-    function Driver() {
-
-	// Define Image size and coordinate grid space to work within
-	$this->iwidth = 600;
-	$this->iheight= 750;
-	$this->iymax  = 50;
-	$this->ixmax  = 55;
-
-	// Setup a basic canvas
-	$this->ig = new CanvasGraph($this->iwidth,$this->iheight,'auto');
-	$this->img = $this->ig->img;
-
-	// Define the scale to be used
-	$this->iscale = new CanvasScale($this->ig);
-	$this->iscale->Set(0,$this->ixmax,0,$this->iymax);
-	$this->ishape = new Shape($this->ig,$this->iscale);
-
-	// A small frame around the canvas
-	$this->ig->SetMargin(2,3,2,3);
-	$this->ig->SetMarginColor("teal");
-	$this->ig->InitFrame();
-
-    }
-
-    function Run() {
-
-	$leftm=1.5;	// Left margin (for table schemes) 
-	$topm=5;	// Top margin (for table schemes) 
-	$tblwidth=15;	// Individual table width
-	$tlo=1;		// Offset for top line
-
-	// Add the background color for the project specific tables
-	$this->ishape->IndentedRectangle($leftm,$topm-1,3*$tblwidth+$tlo+6,45,
-					 $tlo+2*$tblwidth+2,30,CORNER_BOTTOMLEFT,
-					 'lightblue');
-
-	// Stroke the tables (series of x,y offsets, If =-1 then use the
-	// automtic positioning
-	$tblposadj=array($tlo,0,$tblwidth+$tlo+2,0,2*$tblwidth+$tlo+4,
-			 0,-1,16,-1,16);
-	$dbschema = new ImgDBSchema('jpgraph_doc','FormatTblName','FormatFldName');
-	$dbschema->SetMargin($leftm,$topm);
-	$dbschema->SetTableWidth($tblwidth);
-	$dbschema->Stroke($this->img,$this->iscale,$tblposadj);
-
-	$tt = new CanvasRectangleText();
-	$tt->SetFillColor('');
-	$tt->SetColor('');
-	$tt->SetFontColor('navy');
-
-	// Add explanation
-	$tt->SetFont(FF_ARIAL,FS_NORMAL,12);
-	$tt->Set('Project specific tables',$tblwidth+$leftm+3,16,15);
-	$tt->Stroke($this->img,$this->iscale);
-
-	// Add title
-	$tt->SetColor('');
-	$tt->SetFont(FF_VERDANA,FS_BOLD,26);
-	$tt->Set('DDDA - DB Schema',9,0.5,30);
-	$tt->Stroke($this->img,$this->iscale);
-
-	// Add a version and date
-	$tt->SetFillColor('yellow');
-	$tt->SetFont(FF_FONT1,FS_NORMAL,10);
-	$tt->Set("Generated: ".date("ymd H:i",time()),1,$this->iymax*0.96,15); 
-	$tt->Stroke($this->img,$this->iscale);
-
-	$this->ig->Stroke();
-    }
-}
-
-$driver = new Driver();
-$driver->Run();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/dupyaxisex1.php b/nightly-test-server/jpgraph/Examples/dupyaxisex1.php
deleted file mode 100644
index 7aa0194..0000000
--- a/nightly-test-server/jpgraph/Examples/dupyaxisex1.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-$graph->SetMargin(50,50,20,30);	
-$graph->SetFrame(false);
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-
-$graph->title->Set('Duplicating Y-axis');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->SetAxisStyle(AXSTYLE_YBOXIN);
-$graph->xgrid->Show();
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor("blue");
-$lp1->SetWeight(2);
-$graph->Add($lp1);
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example0.php b/nightly-test-server/jpgraph/Examples/example0.php
deleted file mode 100644
index 9ccff2b..0000000
--- a/nightly-test-server/jpgraph/Examples/example0.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetColor("blue");
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.1.php b/nightly-test-server/jpgraph/Examples/example1.1.php
deleted file mode 100644
index 3e87553..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
- 
-$ydata = array(11,11,11);
-
-// Create the graph. 
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(30,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Example 1.1 same y-values");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(5);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.2.php b/nightly-test-server/jpgraph/Examples/example1.2.php
deleted file mode 100644
index 77a103c..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.2.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(30,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Dashed lineplot");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-
-// Style can also be specified as SetStyle([1|2|3|4]) or
-// SetStyle("solid"|"dotted"|"dashed"|"lobgdashed")
-$lineplot->SetStyle("dashed");
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.php b/nightly-test-server/jpgraph/Examples/example1.php
deleted file mode 100644
index 14921c4..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(50,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Examples for graph");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example10.php b/nightly-test-server/jpgraph/Examples/example10.php
deleted file mode 100644
index f870cd0..0000000
--- a/nightly-test-server/jpgraph/Examples/example10.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-$datax=array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetScale("textlog");
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-$graph->y2axis->scale->ticks->SupressFirst();
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 10");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example11.php b/nightly-test-server/jpgraph/Examples/example11.php
deleted file mode 100644
index fa9c018..0000000
--- a/nightly-test-server/jpgraph/Examples/example11.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$ydata2 = array(1,19,15,7,22,14,5,9,21,13);
-
-$gJpgBrandTiming=true;
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($ydata2);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->Add($lineplot2);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Timing a graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example13.php b/nightly-test-server/jpgraph/Examples/example13.php
deleted file mode 100644
index 0ea9ede..0000000
--- a/nightly-test-server/jpgraph/Examples/example13.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the error plot
-$errplot=new ErrorPlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Simple error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example14.php b/nightly-test-server/jpgraph/Examples/example14.php
deleted file mode 100644
index 98f1c71..0000000
--- a/nightly-test-server/jpgraph/Examples/example14.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the error plot
-$errplot=new ErrorPlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Simple error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example15.php b/nightly-test-server/jpgraph/Examples/example15.php
deleted file mode 100644
index 5d93eee..0000000
--- a/nightly-test-server/jpgraph/Examples/example15.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$errplot=new ErrorLinePlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-$errplot->line->SetWeight(2);
-$errplot->line->SetColor("blue");
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Linear error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/example16.1.php b/nightly-test-server/jpgraph/Examples/example16.1.php
deleted file mode 100644
index a6c315a..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$l2plot = new LinePlot($l2datay);
-$l2plot->SetFillColor("orange");
-$l2plot->SetLegend("Result");
-
-// Add the plots to the graph
-$graph->Add($l2plot);
-$graph->Add($l1plot);
-
-$graph->title->Set("Mixing line and filled line");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.2.php b/nightly-test-server/jpgraph/Examples/example16.2.php
deleted file mode 100644
index bae6e2f..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.2.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($l1plot);
-$graph->Add($bplot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.3.php b/nightly-test-server/jpgraph/Examples/example16.3.php
deleted file mode 100644
index 7c58688..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.3.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.4.php b/nightly-test-server/jpgraph/Examples/example16.4.php
deleted file mode 100644
index 24ff875..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.4.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("intlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-$graph->title->Set("Adding a line plot to a bar graph v3");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.5.php b/nightly-test-server/jpgraph/Examples/example16.5.php
deleted file mode 100644
index 820fb0b..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.5.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Create the graph. 
-$graph = new Graph(350,200,"auto");	
-$graph->img->SetMargin(40,70,20,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->SetColor(array(250,250,250));
-
-$graph->img->SetTransparent("white");
-
-$t1 = new Text("This is a text");
-$t1->Pos(0.5,0.5);
-$t1->SetOrientation("h");
-$t1->SetFont(FF_FONT1,FS_BOLD);
-$t1->SetBox("white","black","gray");
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("blue");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$l2plot = new BarPlot($l2datay);
-$l2plot->SetFillColor("orange");
-$l2plot->SetLegend("Result");
-
-// Add the plots to the graph
-$graph->Add($l1plot);
-$graph->Add($l2plot);
-
-
-$graph->title->Set("Example 16.3");
-$graph->xaxis->title->Set("Month");
-$graph->yaxis->title->Set("x10,000 US$");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.6.php b/nightly-test-server/jpgraph/Examples/example16.6.php
deleted file mode 100644
index 45fecea..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.6.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-include ("../jpgraph_line.php");
-
-// Create some "fake" regression data
-$datay = array();
-$datay2 = array();
-$datax = array();
-$a=rand(-3,3);
-$b=rand(-5,5);
-for($x=0; $x<20; ++$x) {
-    $datay[] = $a*$x + $b;
-    $datay2[] = $a*$x + $b + rand(-30,30);
-    $datax[] = $x;
-}
- 
-// Create the graph
-$graph = new Graph(300,200,'auto');
-$graph->SetScale("linlin");
-
-// Setup title
-$graph->title->Set("Example of linear regression");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// make sure that the X-axis is always at the
-// bottom at the plot and not just at Y=0 which is
-// the default position
-$graph->xaxis->SetPos('min');
-
-// Create the scatter plot with some nice colors
-$sp1 = new ScatterPlot($datay2,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-
-// Create the regression line
-$lplot = new LinePlot($datay);
-$lplot->SetWeight(2);
-$lplot->SetColor('navy');
-
-// Add the pltos to the line
-$graph->Add($sp1);
-$graph->Add($lplot);
-
-// ... and stroke
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example16.php b/nightly-test-server/jpgraph/Examples/example16.php
deleted file mode 100644
index 4a680a4..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$errplot=new ErrorLinePlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-$errplot->line->SetWeight(2);
-$errplot->line->SetColor("blue");
-
-// Setup the legends
-$errplot->SetLegend("Min/Max");
-$errplot->line->SetLegend("Average");
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Linear error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/example17.php b/nightly-test-server/jpgraph/Examples/example17.php
deleted file mode 100644
index c53f9dd..0000000
--- a/nightly-test-server/jpgraph/Examples/example17.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = 		array(11,7,5,8,3,5,5,4,8,6,5,5,3,2,5,1,2,0);
-$datay2 = 	array( 4,5,4,5,6,5,7,4,7,4,4,3,2,4,1,2,2,1);
-$datay3 = 		array(4,5,7,10,13,15,15,22,26,26,30,34,40,43,47,55,60,62);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the linear plots for each category
-$dplot[] = new LinePLot($datay1);
-$dplot[] = new LinePLot($datay2);
-$dplot[] = new LinePLot($datay3);
-
-$dplot[0]->SetFillColor("red");
-$dplot[1]->SetFillColor("blue");
-$dplot[2]->SetFillColor("green");
-
-// Create the accumulated graph
-$accplot = new AccLinePlot($dplot);
-
-// Add the plot to the graph
-$graph->Add($accplot);
-
-$graph->xaxis->SetTextTickInterval(2);
-$graph->title->Set("Example 17");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example18.php b/nightly-test-server/jpgraph/Examples/example18.php
deleted file mode 100644
index cb9bf19..0000000
--- a/nightly-test-server/jpgraph/Examples/example18.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example19.1.php b/nightly-test-server/jpgraph/Examples/example19.1.php
deleted file mode 100644
index 4abe276..0000000
--- a/nightly-test-server/jpgraph/Examples/example19.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(260,100,"auto");	
-$graph->SetScale("linlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph, linear scale");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example19.php b/nightly-test-server/jpgraph/Examples/example19.php
deleted file mode 100644
index 4523eae..0000000
--- a/nightly-test-server/jpgraph/Examples/example19.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.1.php b/nightly-test-server/jpgraph/Examples/example2.1.php
deleted file mode 100644
index 6c7e02f..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot->value->Show();
-$lineplot->value->SetColor("red");
-$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.5.php b/nightly-test-server/jpgraph/Examples/example2.5.php
deleted file mode 100644
index af673e2..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.5.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.5");
-$graph->xaxis->title->Set("X-title");
-$graph->xaxis->SetPos("min");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.6.php b/nightly-test-server/jpgraph/Examples/example2.6.php
deleted file mode 100644
index 300abc1..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.6.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetStepStyle();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.6 (Line with stepstyle)");
-$graph->xaxis->title->Set("X-title");
-$graph->xaxis->SetPos("min");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.php b/nightly-test-server/jpgraph/Examples/example2.php
deleted file mode 100644
index 3345e5c..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,10,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Setup margin and titles
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.1.php b/nightly-test-server/jpgraph/Examples/example20.1.php
deleted file mode 100644
index b778f8d..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.1.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.2.php b/nightly-test-server/jpgraph/Examples/example20.2.php
deleted file mode 100644
index 317342c..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.2.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with Y-scale grace");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.3.php b/nightly-test-server/jpgraph/Examples/example20.3.php
deleted file mode 100644
index abbedcc..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.3.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('%0.1f');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with Y-scale grace");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.4.php b/nightly-test-server/jpgraph/Examples/example20.4.php
deleted file mode 100644
index 60acb07..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.4.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->SetShadow();
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('%0.1f');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with drop shadow");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.5.php b/nightly-test-server/jpgraph/Examples/example20.5.php
deleted file mode 100644
index 78bc5ef..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.5.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-
-// Setup values
-$bplot->value->Show();
-$bplot->value->SetFormat('%d');
-$bplot->value->SetFont(FF_FONT1,FS_BOLD);
-
-// Center the values in the bar
-$bplot->SetValuePos('center');
-
-// Make the bar a little bit wider
-$bplot->SetWidth(0.7);
-
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Centered values for bars");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.php b/nightly-test-server/jpgraph/Examples/example20.php
deleted file mode 100644
index b98d04d..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->SetWidth(1.0);
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example21.php b/nightly-test-server/jpgraph/Examples/example21.php
deleted file mode 100644
index d843f50..0000000
--- a/nightly-test-server/jpgraph/Examples/example21.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Example 21");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example22.php b/nightly-test-server/jpgraph/Examples/example22.php
deleted file mode 100644
index 17cb818..0000000
--- a/nightly-test-server/jpgraph/Examples/example22.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($b1plot,$b2plot));
-$gbplot->SetWidth(0.9);
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Adjusting the width");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example23.php b/nightly-test-server/jpgraph/Examples/example23.php
deleted file mode 100644
index d529f10..0000000
--- a/nightly-test-server/jpgraph/Examples/example23.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("blue");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("orange");
-
-// Create the grouped bar plot
-$gbplot = new AccBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example24.php b/nightly-test-server/jpgraph/Examples/example24.php
deleted file mode 100644
index dce7868..0000000
--- a/nightly-test-server/jpgraph/Examples/example24.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-$data3y=array(3,9,2,7,5,8);
-$data4y=array(1,5,11,2,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$b3plot = new BarPlot($data3y);
-$b3plot->SetFillColor("green");
-$b4plot = new BarPlot($data4y);
-$b4plot->SetFillColor("brown");
-
-// Create the accumulated bar plots
-$ab1plot = new AccBarPlot(array($b1plot,$b2plot));
-$ab2plot = new AccBarPlot(array($b3plot,$b4plot));
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($ab1plot,$ab2plot));
-
-// ...and add it to the graph
-$graph->Add($gbplot);
-
-$graph->title->Set("Grouped Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.1.php b/nightly-test-server/jpgraph/Examples/example25.1.php
deleted file mode 100644
index 5ecee62..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.1.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text");
-$txt->Pos(10,25);
-$txt->SetFont(FF_FONT1,FS_BOLD);
-$txt->SetBox('yellow','navy','gray');
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.2.php b/nightly-test-server/jpgraph/Examples/example25.2.php
deleted file mode 100644
index 42d52c0..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.2.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text\nwith many\nand even\nmore\nlines of text");
-$txt->Pos(0.5,0.5,"center","center");
-$txt->SetFont(FF_FONT2,FS_BOLD);
-$txt->ParagraphAlign('cenetered');
-$txt->SetBox('yellow','navy','gray');
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.php b/nightly-test-server/jpgraph/Examples/example25.php
deleted file mode 100644
index 004efdd..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text");
-$txt->Pos(0,0);
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example26.1.php b/nightly-test-server/jpgraph/Examples/example26.1.php
deleted file mode 100644
index 9176262..0000000
--- a/nightly-test-server/jpgraph/Examples/example26.1.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-$p1->SetCenter(0.4);
-$p1->SetValueType(PIE_VALUE_ABS);
-$p1->value->SetFormat('%d');
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example26.php b/nightly-test-server/jpgraph/Examples/example26.php
deleted file mode 100644
index f9c0ed2..0000000
--- a/nightly-test-server/jpgraph/Examples/example26.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-
-$p1 = new PiePlot($data);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.1.php b/nightly-test-server/jpgraph/Examples/example27.1.php
deleted file mode 100644
index bbcf2cb..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->SetAngle(20);
-$p1->SetSize(0.5);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.2.php b/nightly-test-server/jpgraph/Examples/example27.2.php
deleted file mode 100644
index 0566380..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->ExplodeSlice(1);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.3.php b/nightly-test-server/jpgraph/Examples/example27.3.php
deleted file mode 100644
index d55bfe8..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.3.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(330,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple 3D Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->ExplodeSlice(1);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.php b/nightly-test-server/jpgraph/Examples/example27.php
deleted file mode 100644
index 918830f..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->SetSize(0.5);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.1.php b/nightly-test-server/jpgraph/Examples/example28.1.php
deleted file mode 100644
index ed4f17f..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'earth' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("earth");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.2.php b/nightly-test-server/jpgraph/Examples/example28.2.php
deleted file mode 100644
index 9eb755d..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.2.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'pastel' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("pastel");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.3.php b/nightly-test-server/jpgraph/Examples/example28.3.php
deleted file mode 100644
index 0b12e4e..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.3.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'water' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("water");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.php b/nightly-test-server/jpgraph/Examples/example28.php
deleted file mode 100644
index 8b8d36b..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'sand' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example3.1.php b/nightly-test-server/jpgraph/Examples/example3.1.php
deleted file mode 100644
index fa57d0e..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.1.php b/nightly-test-server/jpgraph/Examples/example3.2.1.php
deleted file mode 100644
index 5a3da51..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(10,10);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Grace value, version 1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.2.php b/nightly-test-server/jpgraph/Examples/example3.2.2.php
deleted file mode 100644
index 8d2839f..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.2.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(10,10);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Grace value version 2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->xaxis->SetPos('min');
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.php b/nightly-test-server/jpgraph/Examples/example3.2.php
deleted file mode 100644
index 55637f9..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3.2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.3.php b/nightly-test-server/jpgraph/Examples/example3.3.php
deleted file mode 100644
index b8b8ab6..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.3.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Adjust the margin
-$graph->img->SetMargin(40,20,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-$lineplot->value->show();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Displaying the values");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.4.php b/nightly-test-server/jpgraph/Examples/example3.4.php
deleted file mode 100644
index 05b1e44..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.4.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Adjust the margin
-$graph->img->SetMargin(40,20,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-$lineplot->value->show();
-$lineplot->value->SetColor('darkred');
-$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
-$lineplot->value->SetFormat('$%0.1f');
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Displaying the values");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.php b/nightly-test-server/jpgraph/Examples/example3.php
deleted file mode 100644
index bebbf91..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example4.php b/nightly-test-server/jpgraph/Examples/example4.php
deleted file mode 100644
index 201cefb..0000000
--- a/nightly-test-server/jpgraph/Examples/example4.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$ydata2 = array(1,19,15,7,22,14,5,9,21,13);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($ydata2);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->Add($lineplot2);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 4");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example5.1.php b/nightly-test-server/jpgraph/Examples/example5.1.php
deleted file mode 100644
index df1d4f4..0000000
--- a/nightly-test-server/jpgraph/Examples/example5.1.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->img->SetMargin(40,40,20,40);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 5");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example5.php b/nightly-test-server/jpgraph/Examples/example5.php
deleted file mode 100644
index d2a27db..0000000
--- a/nightly-test-server/jpgraph/Examples/example5.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->img->SetMargin(40,40,20,40);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 5");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.1.php b/nightly-test-server/jpgraph/Examples/example6.1.php
deleted file mode 100644
index f00e08c..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(300,240,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,40,20,70);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Adjust the axis color
-$graph->y2axis->SetColor("orange");
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Adjust the legend position
-$graph->legend->SetLayout(LEGEND_HOR);
-$graph->legend->Pos(0.4,0.95,"center","bottom");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.2.php b/nightly-test-server/jpgraph/Examples/example6.2.php
deleted file mode 100644
index b5e38cd..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.2.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(300,240,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,40,20,70);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetStepStyle();
-
-// Adjust the axis color
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6.2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Adjust the legend position
-$graph->legend->SetLayout(LEGEND_HOR);
-$graph->legend->Pos(0.4,0.95,"center","bottom");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.php b/nightly-test-server/jpgraph/Examples/example6.php
deleted file mode 100644
index 6e4b22f..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,140,20,40);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Adjust the axis color
-$graph->y2axis->SetColor("orange");
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Adjust the legend position
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example7.php b/nightly-test-server/jpgraph/Examples/example7.php
deleted file mode 100644
index 24d9f7a..0000000
--- a/nightly-test-server/jpgraph/Examples/example7.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,70,265,29,111,91,198,225,593,251);
-
-// Create the graph.
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-$graph->img->SetMargin(40,110,20,40);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$graph->yaxis->SetColor('blue');
-
-$graph->title->Set("Example 7");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetWeight(2);
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example8.1.php b/nightly-test-server/jpgraph/Examples/example8.1.php
deleted file mode 100644
index 3025c2b..0000000
--- a/nightly-test-server/jpgraph/Examples/example8.1.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlog");
-$graph->SetY2Scale("log");
-
-$graph->SetShadow();
-$graph->SetMargin(40,110,20,40);
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($y2data);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-
-$graph->title->Set("Example 8");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-$graph->y2axis->SetColor("orange");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example8.php b/nightly-test-server/jpgraph/Examples/example8.php
deleted file mode 100644
index 64c62e7..0000000
--- a/nightly-test-server/jpgraph/Examples/example8.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlog");
-$graph->SetShadow();
-$graph->img->SetMargin(40,110,20,40);
-
-// Show the gridlines
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Example 8");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-// Adjust the color of the Y axis
-$graph->yaxis->SetColor("blue");
-
-// Specifya a legend
-$lineplot->SetLegend("Plot 1");
-
-// Adjust the position of the grid box
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.1.php b/nightly-test-server/jpgraph/Examples/example9.1.php
deleted file mode 100644
index 896682e..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetTextLabelInterval(2);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.2.php b/nightly-test-server/jpgraph/Examples/example9.2.php
deleted file mode 100644
index 3e5bf49..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.2.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,50);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-//$graph->xaxis->SetTextLabelInterval(2);
-$graph->xaxis->SetLabelAngle(90);
-
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.php b/nightly-test-server/jpgraph/Examples/example9.php
deleted file mode 100644
index 27a73f5..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/exampleex9.php b/nightly-test-server/jpgraph/Examples/exampleex9.php
deleted file mode 100644
index 0c7a61f..0000000
--- a/nightly-test-server/jpgraph/Examples/exampleex9.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-// We also specify a 2 min timeout for the cached image
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-$graph->y2axis->scale->ticks->SupressFirst();
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/fieldscatterex1.php b/nightly-test-server/jpgraph/Examples/fieldscatterex1.php
deleted file mode 100644
index ed2a542..0000000
--- a/nightly-test-server/jpgraph/Examples/fieldscatterex1.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$polex = 6;
-$poley = 40;
-
-function FldCallback($x,$y,$a) {
-    GLOBAL $polex, $poley;
-    $maxr = 3000;
-
-    // Size and arrow size is constant
-    $size="";
-    $arrowsize="";
-
-    // Since we have different scales we need the data points
-    // to be of the same magnitude to give it a distance
-    // interpretation.
-    $x *= 10; 
-
-    // Colors gets colder the further out we go from the center
-    $r = ($x-$polex*10)*($x-$polex*10)+($y-$poley)*($y-$poley);
-    $f = $r/$maxr;
-    if( $f > 1 ) $f=1;
-    $red = floor((1-$f)*255);
-    $blue = floor($f*255);
-    $color = array($red,0,$blue);
-    //echo "x=$x, y=$y, blue=$blue, red=$red<br>";
-    return array($color,$size,$arrowsize);
-}
-
-// Create data for a simulated pseudo-magnetic radient field
-$datax = array();
-$datay = array();
-$angle = array();
-for($x=1; $x < 10; ++$x ) {
-    for($y=10; $y<100; $y += 10) {
-	$a = -1;
-	if( $x==$polex && $y==$poley ) continue;
-	if( $x==$polex ) {
-	    if( $y > $poley ) $a=90;
-	    else $a = 270;
-	}
-	if( $y==$poley ) {
-	    if( $x  > $polex ) $a=0;
-	    else  $a=180;	    
-	}
-	if( $a == -1 ) {
-	    $d1 = $y-$poley;
-	    $d2 = ($polex-$x)*20;
-	    if( $y < $poley ) $d2 *= -1;
-	    $h = sqrt($d1*$d1+$d2*$d2);
-	    $t = -$d2/$h;
-	    $ac = acos($t);
-	    if( $y < $poley ) $ac += M_PI;
-	    $a = $ac * 180/M_PI;
-	}
-	$datax[] = $x;
-	$datay[] = $y;
-	$angle[] = $a;
-    }
-}
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetScale("intlin",0,100,0,10);
-$graph->SetMarginColor('lightblue');
-
-
-// ..and titles
-$graph->title->Set("Field plot");
-
-// Setup the field plot
-$fp = new FieldPlot($datay,$datax,$angle);
-
-// Setup formatting callback
-$fp->SetCallback('FldCallback');
-
-// First size argument is length (in pixels of arrow) 
-// Second size argument is roughly size of arrow. Arrow size is specified as
-// an integer in the range [0,9]
-$fp->arrow->SetSize(20,2);
-$fp->arrow->SetColor('navy');
-
-$graph->Add($fp);
-
-// .. and output
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledgridex1.php b/nightly-test-server/jpgraph/Examples/filledgridex1.php
deleted file mode 100644
index adac888..0000000
--- a/nightly-test-server/jpgraph/Examples/filledgridex1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(20,15,23,15);
-$datay2 = array(12,9,42,8);
-$datay3 = array(5,17,32,24);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,50,30,30);
-
-$graph->title->Set('Filled Y-grid');
-
-
-$graph->yaxis->HideZeroLabel();
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-$p1->SetLegend('Line 1');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("red");
-$p2->SetLegend('Line 2');
-$graph->Add($p2);
-
-// Create the third line
-$p3 = new LinePlot($datay3);
-$p3->SetColor("orange");
-$p3->SetLegend('Line 3');
-$graph->Add($p3);
-
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.1,0.1,'right','top');
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledline01.php b/nightly-test-server/jpgraph/Examples/filledline01.php
deleted file mode 100644
index e1177b8..0000000
--- a/nightly-test-server/jpgraph/Examples/filledline01.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,'auto');
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex01.1.php b/nightly-test-server/jpgraph/Examples/filledlineex01.1.php
deleted file mode 100644
index 124690d..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex01.1.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetShadow();
-$graph->SetGridDepth(DEPTH_FRONT);
-
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex01.php b/nightly-test-server/jpgraph/Examples/filledlineex01.php
deleted file mode 100644
index 3bc240b..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex01.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetShadow();
-
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex02.php b/nightly-test-server/jpgraph/Examples/filledlineex02.php
deleted file mode 100644
index 9147608..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex02.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(Starting from Y=0)");
-
-$graph->yaxis->scale->SetAutoMin(0);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex03.php b/nightly-test-server/jpgraph/Examples/filledlineex03.php
deleted file mode 100644
index 21698b6..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex03.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(11,30,20,13,10,'x',16,12,'x',15,4,9);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetScale('intlin');
-$graph->title->Set('Filled line with NULL values');
-//Make sure data starts from Zero whatever data we have
-$graph->yscale->SetAutoMin(0);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor('lightblue');
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php b/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php
deleted file mode 100644
index 41bcbae..0000000
--- a/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-include("../jpgraph.php");
-include("../jpgraph_line.php");
-
-// create the graph
-$graph= new Graph(400,250,"auto");
-
-$ydata = array(5,10,15,20,15,10);
-
-$graph->SetScale("textlin");
-$graph->SetShadow(true);
-$graph->SetMarginColor("antiquewhite");
-$graph->img->SetMargin(60,40,40,50);
-$graph->img->setTransparent("white");
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->xaxis->setTextTickInterval(1);
-$graph->xaxis->SetTextLabelInterval(1);
-$graph->legend->SetFillColor("antiquewhite");
-$graph->legend->SetShadow(true);
-$graph->legend->SetLayout(LEGEND_VERT);
-$graph->legend->Pos(0.02,0.01);
-$graph->title->Set("Step Styled Example");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot = new LinePlot($ydata);
-$lineplot->SetColor("black");
-$lineplot->setFillColor("gray7");
-$lineplot->SetStepStyle();
-$lineplot->SetLegend(" 2002 ");
-
-// add plot to the graph
-$graph->Add($lineplot);
-$graph->ygrid->show(false,false);
-
-// display graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php b/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php
deleted file mode 100644
index b2cb121..0000000
--- a/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-$graph = new RadarGraph(300,300,'auto');
-$graph->SetScale("lin",0,50);
-$graph->yscale->ticks->Set(25,5);
-$graph->SetColor("white");
-$graph->SetShadow();
-
-$graph->SetCenter(0.5,0.55);
-
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-$graph->axis->SetWeight(2);
-
-// Uncomment the following lines to also show grid lines.
-//$graph->grid->SetLineStyle("longdashed");
-//$graph->grid->SetColor("navy");
-//$graph->grid->Show();
-	
-$graph->ShowMinorTickMarks();
-		
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles(array("One","Two","Three","Four","Five","Sex","Seven","Eight","Nine","Ten"));
-		
-$plot = new RadarPlot(array(12,35,20,30,33,15,37));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFillColor('lightblue');
-$plot->SetLineWeight(2);
-
-$graph->Add($plot);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/funcex1.php b/nightly-test-server/jpgraph/Examples/funcex1.php
deleted file mode 100644
index b3832d3..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex1.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($x)*$x');
-list($xdata,$ydata) = $f->E(-1.2*M_PI,1.2*M_PI);
-
-$f = new FuncGenerator('$x*$x');
-list($x2data,$y2data) = $f->E(-2,2);
-
-// Setup the basic graph
-$graph = new Graph(450,350,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-
-// ... and titles
-$graph->title->Set('Example of Function plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(With some more advanced axis formatting\nHiding first and last label)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->xgrid->Show();
-
-$graph->yaxis->SetPos(0);
-$graph->yaxis->SetWeight(2);
-$graph->yaxis->HideZeroLabel();
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('black','darkblue');
-$graph->yaxis->HideTicks(true,false);
-$graph->yaxis->HideFirstLastLabel();
-
-$graph->xaxis->SetWeight(2);
-$graph->xaxis->HideZeroLabel();
-$graph->xaxis->HideFirstLastLabel();
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('black','darkblue');
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor('blue');
-$lp1->SetWeight(2);
-
-$lp2 = new LinePlot($y2data,$x2data);
-list($xm,$ym)=$lp2->Max();
-$lp2->SetColor('red');
-$lp2->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Add($lp2);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex2.php b/nightly-test-server/jpgraph/Examples/funcex2.php
deleted file mode 100644
index ae0d38f..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(380,450,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-$graph->SetAxisStyle(AXSTYLE_SIMPLE);
-
-//$graph->xaxis->SetLabelFormat('%.1f');
-
-$graph->title->Set("Function plot with marker");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXOUT Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->mark->SetType(MARK_FILLEDCIRCLE);
-$lp1->mark->SetFillColor("red");
-$lp1->SetColor("blue");
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex3.php b/nightly-test-server/jpgraph/Examples/funcex3.php
deleted file mode 100644
index e49d626..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex3.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(350,430,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-$graph->SetAxisStyle(AXSTYLE_BOXIN);
-$graph->xgrid->Show();
-
-
-//$graph->xaxis->SetLabelFormat('%.0f');
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Function plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXIN Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor("blue");
-$lp1->SetWeight(2);
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex4.php b/nightly-test-server/jpgraph/Examples/funcex4.php
deleted file mode 100644
index 087e8cd..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex4.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($x)*$x');
-list($xdata,$ydata) = $f->E(-1.2*M_PI,1.2*M_PI);
-
-$f = new FuncGenerator('$x*$x');
-list($x2data,$y2data) = $f->E(-2,2);
-
-// Setup the basic graph
-$graph = new Graph(450,350,"auto");
-$graph->SetScale("linlin");
-//$graph->SetShadow();
-$graph->img->SetMargin(5,10,60,9);	
-$graph->SetBox(true,'green',2);	
-$graph->SetMarginColor('black');
-$graph->SetColor('black');
-
-// ... and titles
-$graph->title->Set('Example of Function plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor('lightgreen');
-$graph->subtitle->Set("(With some more advanced axis formatting\nHiding first and last label)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor('lightgreen');
-
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('darkgreen');
-$graph->ygrid->SetColor('darkgreen');
-
-$graph->yaxis->SetPos(0);
-$graph->yaxis->SetWeight(2);
-$graph->yaxis->HideZeroLabel();
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('green','green');
-$graph->yaxis->HideTicks(true,true);
-$graph->yaxis->HideFirstLastLabel();
-
-$graph->xaxis->SetWeight(2);
-$graph->xaxis->HideZeroLabel();
-$graph->xaxis->HideFirstLastLabel();
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('green','green');
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor('yellow');
-$lp1->SetWeight(2);
-
-$lp2 = new LinePlot($y2data,$x2data);
-list($xm,$ym)=$lp2->Max();
-$lp2->SetColor('blue');
-$lp2->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Add($lp2);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php
deleted file mode 100644
index a9a8920..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",''),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",''),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-//$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-//		    array(2,3,CONSTRAIN_STARTSTART));
-$constrains = array();
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php
deleted file mode 100644
index 7d3ed53..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 1",      "2001-10-26","2001-11-18",''),
-  array(2,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",''),
-  array(3,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",''),
-  array(4,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-		    array(1,3,CONSTRAIN_STARTSTART),
-		    array(3,4,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php
deleted file mode 100644
index 2e079dd..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-
-// 
-// The data for the graphs
-//
-$data = array(
-    array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-    array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-11-01","2001-11-20",''),
-    array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-10-26","2001-11-03",''),
-    array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-$constrains = array(array(2,1,CONSTRAIN_ENDSTART),
-		    array(1,3,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-//$graph->SetFrame(false);
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttcsimex01.php b/nightly-test-server/jpgraph/Examples/ganttcsimex01.php
deleted file mode 100644
index a575c9c..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttcsimex01.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-// Gantt example to create CSIM
-
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$bar1 = new GanttBar(0,"Activity 1","2001-12-21","2002-01-20");
-$bar1->SetCSIMTarget('#','Go back 1');
-$bar1->title->SetCSIMTarget('#','Go back 1 (title)');
-$bar2 = new GanttBar(1,"Activity 2","2002-01-03","2002-01-25");
-$bar2->SetCSIMTarget('#','Go back 2');
-$bar2->title->SetCSIMTarget('#','Go back 2 (title)');
-
-$graph = new GanttGraph(500);
-$graph->title->Set("Example with image map");
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-$graph->Add(array($bar1,$bar2));
-
-// And stroke
-$graph->StrokeCSIM('ganttcsimex01.php');
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttcsimex02.php b/nightly-test-server/jpgraph/Examples/ganttcsimex02.php
deleted file mode 100644
index da51f88..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttcsimex02.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-// Gantt example to create CSIM using CreateSimple()
-
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",'',
-	'#1','Go home'),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",'ab,cd',
-	'#2','Go home'),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",'ek',
-	'#3','Go home'),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2',
-	'#4','Go home') );
-
-// The constrains between the activities
-$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-		    array(2,3,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-$graph = new GanttGraph(500);
-$graph->title->Set("Example with image map");
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-$graph->CreateSimple($data,$constrains,$progress);
-
-// Add the specified activities
-//SetupSimpleGantt($graph,$data,$constrains,$progress);
-
-// And stroke
-$graph->StrokeCSIM('ganttcsimex02.php');
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttex00.php b/nightly-test-server/jpgraph/Examples/ganttex00.php
deleted file mode 100644
index 4214189..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex00.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// A new graph with automatic size
-$graph = new GanttGraph(0,0,"auto");
-
-//  A new activity on row '0'
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-$graph->Add($activity);
-
-// Display the Gantt chart
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex01.php b/nightly-test-server/jpgraph/Examples/ganttex01.php
deleted file mode 100644
index 30e6263..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex01.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex02.php b/nightly-test-server/jpgraph/Examples/ganttex02.php
deleted file mode 100644
index 76ec5b4..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex02.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Show day, week and month scale
-//$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-$graph->ShowHeaders(GANTT_HWEEK );
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_WNBR);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-02-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex03.php b/nightly-test-server/jpgraph/Examples/ganttex03.php
deleted file mode 100644
index d4a0e40..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex03.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(7,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex04.php b/nightly-test-server/jpgraph/Examples/ganttex04.php
deleted file mode 100644
index 5796854..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex04.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$graph->Add($milestone);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex05.php b/nightly-test-server/jpgraph/Examples/ganttex05.php
deleted file mode 100644
index 1ea07b0..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex05.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex06.php b/nightly-test-server/jpgraph/Examples/ganttex06.php
deleted file mode 100644
index 35b28d5..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex06.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex07.php b/nightly-test-server/jpgraph/Examples/ganttex07.php
deleted file mode 100644
index d2902b9..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex07.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex08.php b/nightly-test-server/jpgraph/Examples/ganttex08.php
deleted file mode 100644
index 9255433..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex08.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex09.php b/nightly-test-server/jpgraph/Examples/ganttex09.php
deleted file mode 100644
index 7ebf6b5..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex09.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(8);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex10.php b/nightly-test-server/jpgraph/Examples/ganttex10.php
deleted file mode 100644
index 1966ea1..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex10.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(1);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(1);
-
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex11.php b/nightly-test-server/jpgraph/Examples/ganttex11.php
deleted file mode 100644
index 0408f55..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex11.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex12.php b/nightly-test-server/jpgraph/Examples/ganttex12.php
deleted file mode 100644
index e19dd39..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex12.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(0);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex13.php b/nightly-test-server/jpgraph/Examples/ganttex13.php
deleted file mode 100644
index aff2d2f..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex13.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex13.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[ER,TR]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[BO,SW,JC]");
-
-// ADjust font for caption
-$activity2->caption->SetFont(FF_ARIAL,FS_BOLD);
-$activity2->caption->SetColor("darkred");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex14.php b/nightly-test-server/jpgraph/Examples/ganttex14.php
deleted file mode 100644
index ef7195c..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex14.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex14.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex15.php b/nightly-test-server/jpgraph/Examples/ganttex15.php
deleted file mode 100644
index af1468d..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex15.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex15.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex16.php b/nightly-test-server/jpgraph/Examples/ganttex16.php
deleted file mode 100644
index c8e2a03..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex16.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex16.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-$graph->scale->tableTitle->Show();
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex17.php b/nightly-test-server/jpgraph/Examples/ganttex17.php
deleted file mode 100644
index f8f90f8..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex17.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex17.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-
-// Modify the appearance of the dividing lines 
-$graph->scale->divider->SetWeight(3);
-$graph->scale->divider->SetColor("navy");
-$graph->scale->dividerh->SetWeight(3);
-$graph->scale->dividerh->SetColor("navy");
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex18.php b/nightly-test-server/jpgraph/Examples/ganttex18.php
deleted file mode 100644
index 7ccfe4f..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex18.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex18.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-
-// Modify the appearance of the dividing lines 
-$graph->scale->divider->SetWeight(3);
-$graph->scale->divider->SetColor("navy");
-
-$graph->scale->dividerh->SetWeight(3);
-$graph->scale->dividerh->SetColor("navy");
-
-$graph->SetBox(true,"navy",3);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex19.php b/nightly-test-server/jpgraph/Examples/ganttex19.php
deleted file mode 100644
index 091d82e..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex19.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Use swedish locale
-$graph->scale->SetDateLocale("sv_SE");
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex19.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-$graph->scale->tableTitle->Show();
-
-$graph->scale->divider->SetStyle('solid');
-$graph->scale->divider->SetWeight(2);
-$graph->scale->divider->SetColor('black');
-
-
-$graph->SetBox(true,"navy",2);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex30.php b/nightly-test-server/jpgraph/Examples/ganttex30.php
deleted file mode 100644
index 9d73de2..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex30.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-// Gantt example 30
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Standard calls to create a new graph
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-$graph->SetBox();
-
-// Titles for chart
-$graph->title->Set("General conversion plan");
-$graph->subtitle->Set("(Revision: 2001-11-18)");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// For illustration we enable all headers. 
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-
-// For the week we choose to show the start date of the week
-// the default is to show week number (according to ISO 8601)
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Change the scale font 
-$graph->scale->week->SetFont(FF_FONT0);
-$graph->scale->year->SetFont(FF_ARIAL,FS_BOLD,12);
-
-
-// Setup some data for the gantt bars
-$data = array(
-	array(0,"Group 1", "2001-10-29","2001-11-27",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-11-8","2001-12-14"),
-	array(2,"  Label 3", "2001-11-01","2001-11-8"),
-	array(4,"Group 2", "2001-11-07","2001-12-19",FF_FONT1,FS_BOLD,8),
-	array(5,"  Label 4", "2001-11-8","2001-12-19"),
-	array(6,"  Label 5", "2001-11-01","2001-11-8")
-	);
-
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",0.5);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-		
-	// If you like each bar can have a shadow
-	// $bar->SetShadow(true,"darkgray");	
-	
-	// For illustration lets make each bar be red with yellow diagonal stripes
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	
-	// To indicate progress each bar can have a smaller bar within
-	// For illustrative purpose just set the progress to 50% for each bar
-	$bar->progress->Set(0.5);
-	
-	// Each bar may also have optional left and right plot marks
-	// As illustration lets put a filled circle with a number at the end
-	// of each bar
-	$bar->rightMark->SetType(MARK_FILLEDCIRCLE);
-	$bar->rightMark->SetFillColor("red");
-	$bar->rightMark->SetColor("red");
-	$bar->rightMark->SetWidth(10);
-	
-	// Title for the mark
-	$bar->rightMark->title->Set("".$i+1);
-	$bar->rightMark->title->SetColor("white");
-	$bar->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,10);
-	$bar->rightMark->Show();
-	
-	// ... and add the bar to the gantt chart
-	$graph->Add($bar);
-}
-
-// Create a milestone mark
-$ms = new MileStone(7,"M5","2001-12-10","10/12");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-// Create a vertical line to emphasize the milestone
-$vl = new GanttVLine("2001-12-10","Phase 1","darkred");
-$vl->SetDayOffset(0.5);	// Center the line in the day
-$graph->Add($vl);
-
-// Output the graph
-$graph->Stroke();
-
-// EOF
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/ganttex_slice.php b/nightly-test-server/jpgraph/Examples/ganttex_slice.php
deleted file mode 100644
index 6ff7405..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex_slice.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-// $Id$
-// Gantt example with sunday week start and only shows a partial graph
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Setup Gantt graph
-$graph = new GanttGraph(0,0,'auto');
-$graph->SetShadow();
-$graph->SetBox();
-
-// Only show part of the Gantt
-$graph->SetDateRange('2001-11-22','2002-1-24');
-
-// Weeks start on Sunday
-$graph->scale->SetWeekStart(0);
-
-$graph->title->Set("General conversion plan");
-$graph->subtitle->Set("(Slice between 2001-11-22 to 2002-01-24)");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
-
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-
-$data = array(
-	array(0,"Group 1\tJohan", "2002-1-23","2002-01-28",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-16"),
-	array(2,"  Label 3", "2001-11-30","2001-12-01"),
-	array(4,"Group 2", "2001-11-30","2001-12-22",FF_FONT1,FS_BOLD,8),
-	array(5,"  Label 4", "2001-11-30","2001-12-1"),
-	array(6,"  Label 5", "2001-12-6","2001-12-8"),
-	array(8,"    Label 8", "2001-11-30","2002-01-02")			
-	);
-
-
-// make up some fictionary activity bars
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-		
-	$bar->rightMark->Show();
-	$bar->rightMark->SetType(MARK_FILLEDCIRCLE);
-	$bar->rightMark->SetWidth(8);
-	$bar->rightMark->SetColor("red");
-	$bar->rightMark->SetFillColor("red");
-	$bar->rightMark->title->Set($i+1);
-	$bar->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-	$bar->rightMark->title->SetColor("white");
-
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$bar->progress->Set($i/10);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	
-	$graph->Add($bar);
-}
-
-
-// The line will NOT be shown since it is outside the specified slice
-$vline = new GanttVLine("2002-02-28");
-$vline->title->Set("2002-02-28");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-// The milestone will NOT be shown since it is outside the specified slice
-$ms = new MileStone(7,"M5","2002-01-28","28/1");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-$graph->Stroke();
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthgridex1.php b/nightly-test-server/jpgraph/Examples/gantthgridex1.php
deleted file mode 100644
index 21ce4d1..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthgridex1.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-// Gantt horizontal grid example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-
-// Some dummy data for some activities
-$data = array(
-	array(0,"Group 1  Johan", "2001-10-23","2001-11-06",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-04"),
-	array(3,"Group 2", "2001-11-20","2001-11-28",FF_FONT1,FS_BOLD,8),
-	array(4,"  Label 1", "2001-11-20","2001-12-1"));
-
-// New Gantt Graph
-$graph = new GanttGraph(500);
-
-// Setup a title
-$graph->title->Set("Grid example");
-$graph->subtitle->Set("(Horizontal grid)");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,14);
-
-// Specify what headers to show
-$graph->ShowHeaders(GANTT_HMONTH|GANTT_HDAY );
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Setup a horizontal grid
-$graph->hgrid->Show();
-$graph->hgrid->SetRowFillColor('darkblue@0.9');
-
-
-for($i=0; $i<count($data); ++$i) {
-    $bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-    if( count($data[$i]) > 4 )
-	$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-    $bar->SetPattern(BAND_RDIAG,"yellow");
-    $bar->SetFillColor("red");
-    $graph->Add($bar);
-}
-
-// Setup a vertical marker line 
-$vline = new GanttVLine("2001-11-01");
-$vline->SetDayOffset(0.5);
-$vline->title->Set("2001-11-01");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-// Setup a milestone
-$ms = new MileStone(6,"M5","2001-11-28","28/12");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-// And to show that you can also add an icon we add "Tux"
-$icon = new IconPlot('penguin.png',0.01,0.95,1,15);
-$icon->SetAnchor('left','bottom');
-$graph->Add($icon);
-
-// .. and finally send it back to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthourex1.php b/nightly-test-server/jpgraph/Examples/gantthourex1.php
deleted file mode 100644
index 0cd89fe..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthourex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-// Gantt hour example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-$graph->SetMarginColor('blue:1.7');
-$graph->SetColor('white');
-
-$graph->SetBackgroundGradient('navy','white',GRAD_HOR,BGRAD_MARGIN);
-$graph->scale->hour->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->hour->SetFont(FF_FONT1);
-$graph->scale->day->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->day->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set("Example of hours in scale");
-$graph->title->SetColor('white');
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HHOUR);
-
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-$graph->scale->hour->SetIntervall(4);
-
-$graph->scale->hour->SetStyle(HOURSTYLE_HM24);
-$graph->scale->day->SetStyle(DAYSTYLE_SHORTDAYDATE3);
-
-$data = array(
-    array(0,"  Label 1", "2001-01-26 04:00","2001-01-26 14:00"),
-    array(1,"  Label 2", "2001-01-26 10:00","2001-01-26 18:00"),
-    array(2,"  Label 3", "2001-01-26","2001-01-27 10:00")
-);
-
-
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$graph->Add($bar);
-}
-
-$graph->Stroke();
-
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthourminex1.php b/nightly-test-server/jpgraph/Examples/gantthourminex1.php
deleted file mode 100644
index 749c275..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthourminex1.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-// Gantt hour + minute example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Some sample Gantt data
-$data = array(
-    array(0,array("Group 1","345 days","2004-03-01","2004-05-05"), "2001-11-27 10:00","2001-11-27 14:00",FF_FONT2,FS_NORMAL,0),
-    array(1,array("  Label one",' 122,5 days',' 2004-03-01',' 2003-05-05','MJ'), "2001-11-27 16:00","2001-11-27 18:00"),
-    array(2,"  Label two", "2001-11-27","2001-11-27 10:00"),
-    array(3,"  Label three", "2001-11-27","2001-11-27 08:00")
-);
-
-
-// Basic graph parameters
-$graph = new GanttGraph();
-$graph->SetMarginColor('darkgreen@0.8');
-$graph->SetColor('white');
-
-// We want to display day, hour and minute scales
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HHOUR | GANTT_HMIN);
-
-// We want to have the following titles in our columns
-// describing each activity
-$graph->scale->actinfo->SetColTitles(
-    array('Act','Duration','Start','Finish','Resp'));//,array(100,70,70,70));
-
-// Uncomment the following line if you don't want the 3D look
-// in the columns headers
-//$graph->scale->actinfo->SetStyle(ACTINFO_2D);
-
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-
-//These are the default values for use in the columns
-//$graph->scale->actinfo->SetFontColor('black');
-//$graph->scale->actinfo->SetBackgroundColor('lightgray');
-//$graph->scale->actinfo->vgrid->SetStyle('solid');
-
-$graph->scale->actinfo->vgrid->SetColor('gray');
-$graph->scale->actinfo->SetColor('darkgray');
-
-// Setup day format
-$graph->scale->day->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->day->SetFont(FF_ARIAL);
-$graph->scale->day->SetStyle(DAYSTYLE_SHORTDAYDATE1);
-
-// Setup hour format
-$graph->scale->hour->SetIntervall(1);
-$graph->scale->hour->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->hour->SetFont(FF_FONT0);
-$graph->scale->hour->SetStyle(HOURSTYLE_H24);
-$graph->scale->hour->grid->SetColor('gray:0.8');
-
-// Setup minute format
-$graph->scale->minute->SetIntervall(30);
-$graph->scale->minute->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->minute->SetFont(FF_FONT0);
-$graph->scale->minute->SetStyle(MINUTESTYLE_MM);
-$graph->scale->minute->grid->SetColor('lightgray');
-
-$graph->scale->tableTitle->Set('Phase 1');
-$graph->scale->tableTitle->SetFont(FF_ARIAL,FS_NORMAL,12);
-$graph->scale->SetTableTitleBackground('darkgreen@0.6');
-$graph->scale->tableTitle->Show(true);
-
-$graph->title->Set("Example of hours & mins scale");
-$graph->title->SetColor('darkgray');
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-
-for($i=0; $i<count($data); ++$i) {
-    $bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3]);
-    if( count($data[$i])>4 )
-	$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-    $bar->SetPattern(BAND_RDIAG,"yellow");
-    $bar->SetFillColor("gray");
-    $graph->Add($bar);
-}
-
-
-$vline = new GanttVLine("2001-11-27 13:00");
-$vline->title->Set("27/11 13:00");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantticonex1.php b/nightly-test-server/jpgraph/Examples/gantticonex1.php
deleted file mode 100644
index 6b36329..0000000
--- a/nightly-test-server/jpgraph/Examples/gantticonex1.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Basic Gantt graph
-$graph = new GanttGraph();
-$graph->title->Set("Using the builtin icons");
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-
-// 1.5 line spacing to make more room
-$graph->SetVMarginFactor(1.5);
-
-// Setup some nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Note','Task','Duration','Start','Finish'),array(30,100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Uncomment this to keep the columns but show no headers
-//$graph->scale->actinfo->Show(false);
-
-// Setup the icons we want to use
-$erricon = new IconImage(GICON_FOLDER,0.6);
-$startconicon = new IconImage(GICON_FOLDEROPEN,0.6);
-$endconicon = new IconImage(GICON_TEXTIMPORTANT,0.5);
-
-// Store the icons in the first column and use plain text in the others
-$data = array(
-	array(0,array($erricon,"Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array($startconicon,"Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array($endconicon,"Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$bar->title->SetCSIMTarget(array('#1'.$i,'#2'.$i,'#3'.$i,'#4'.$i,'#5'.$i),array('11'.$i,'22'.$i,'33'.$i));
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php
deleted file mode 100644
index 25128ff..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-01');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-// Data for our example activities
-$data = array(
-	array(0,"Group 1  Johan", "2001-11-23","2002-03-1",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-16"));
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php
deleted file mode 100644
index 02703b6..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-
-// Setup activity info
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Name','Duration','Start','Finish'),array(100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Data for our example activities
-$data = array(
-	array(0,array("Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array("Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array("Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php
deleted file mode 100644
index 2dbf314..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-
-// Setup activity info
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Type','Name','Duration','Start','Finish'),array(40,100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Data for our example activities
-$data = array(
-	array(0,array("","Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array("","Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array("","Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php b/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php
deleted file mode 100644
index 64e9cf7..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-13",'[KJ]'),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",'[EP]'),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Gantt Graph using CreateSimple()");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Add the specified activities
-$graph->CreateSimple($data);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradbkgex1.php b/nightly-test-server/jpgraph/Examples/gradbkgex1.php
deleted file mode 100644
index 0f25c64..0000000
--- a/nightly-test-server/jpgraph/Examples/gradbkgex1.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(4,26,12,18,8,22);
-$datay2 = array(12,9,42,8,20,19);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin",0,50);
-$graph->SetMargin(30,50,30,30);
-
-// We must have the frame enabled to get the gradient
-// However, we don't want the frame line so we set it to
-// white color which makes it invisible.
-$graph->SetFrame(true,'white');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('blue','navy:0.5',GRAD_HOR,BGRAD_PLOT);
-
-// Setup the tab title
-$graph->tabtitle->Set(' 3rd Division ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-
-// Setup x,Y grid
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('gray@0.5');
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-$graph->ygrid->SetColor('gray@0.5');
-
-// Setup color for axis and labels on axis
-$graph->xaxis->SetColor('orange','black');
-$graph->yaxis->SetColor('orange','black');
-
-// Ticks on the outsid
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Setup the legend box colors and font
-$graph->legend->SetColor('white','navy');
-$graph->legend->SetFillColor('navy@0.25');
-$graph->legend->SetFont(FF_ARIAL,FS_BOLD,8);
-$graph->legend->SetShadow('darkgray@0.4',3);
-$graph->legend->SetPos(0.05,0.05,'right','top');
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("red");
-$p1->SetWeight(2);
-$p1->SetLegend('2002');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("lightyellow");
-$p2->SetLegend('2001');
-$p2->SetWeight(2);
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex1.php b/nightly-test-server/jpgraph/Examples/gradlinefillex1.php
deleted file mode 100644
index c5b11cb..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex1.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,15,33,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetMarginColor('darkgreen@0.8');
-
-$graph->title->Set('Gradient filled line plot');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetWeight(0);
-$p1->SetFillGradient('red','yellow');
-
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex2.php b/nightly-test-server/jpgraph/Examples/gradlinefillex2.php
deleted file mode 100644
index 2c3d9fe..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex2.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex2');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen');
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex3.php b/nightly-test-server/jpgraph/Examples/gradlinefillex3.php
deleted file mode 100644
index 4f842d3..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex3.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex3');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen',4);
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex4.php b/nightly-test-server/jpgraph/Examples/gradlinefillex4.php
deleted file mode 100644
index 59760c6..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex4.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex2');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen');
-$p1->SetStepStyle();
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/groupbarex1.php b/nightly-test-server/jpgraph/Examples/groupbarex1.php
deleted file mode 100644
index 024fdd9..0000000
--- a/nightly-test-server/jpgraph/Examples/groupbarex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay1=array(35,160,0,0,0,0);
-$datay2=array(35,190,190,190,190,190);
-$datay3=array(20,70,70,140,230,260);
-
-$graph = new Graph(450,200,'auto');	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,40,40);
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Group bar plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-$bplot1->SetFillColor("orange");
-$bplot2->SetFillColor("brown");
-$bplot3->SetFillColor("darkgreen");
-
-$bplot1->SetShadow();
-$bplot2->SetShadow();
-$bplot3->SetShadow();
-
-$bplot1->SetShadow();
-$bplot2->SetShadow();
-$bplot3->SetShadow();
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex1.php b/nightly-test-server/jpgraph/Examples/horizbarex1.php
deleted file mode 100644
index 8c9258c..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex1.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-// Rotate graph 90 degrees and set margin
-$graph->Set90AndMargin(50,20,50,30);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 1");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(No Y-axis)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(10);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// We don't want to display Y-axis
-$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-// .. and stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex2.php b/nightly-test-server/jpgraph/Examples/horizbarex2.php
deleted file mode 100644
index a0cc418..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex2.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 80;
-$bottom = 30;
-$left = 50;
-$right = 30;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 2");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(Axis at top)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(5);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-$graph->yaxis->SetLabelAlign('center','bottom');
-$graph->yaxis->SetLabelAngle(45);
-$graph->yaxis->SetLabelFormat('%d');
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// We don't want to display Y-axis
-//$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex3.php b/nightly-test-server/jpgraph/Examples/horizbarex3.php
deleted file mode 100644
index 1105e06..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex3.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,-5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 50;
-$bottom = 80;
-$left = 50;
-$right = 20;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-$graph->xaxis->SetPos('min');
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 3");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(Axis at bottom)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_FONT2,FS_BOLD,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(5);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// Setup the Y-axis to be displayed in the bottom of the 
-// graph. We also finetune the exact layout of the title,
-// ticks and labels to make them look nice.
-$graph->yaxis->SetPos('max');
-
-// First make the labels look right
-$graph->yaxis->SetLabelAlign('center','top');
-$graph->yaxis->SetLabelFormat('%d');
-$graph->yaxis->SetLabelSide(SIDE_RIGHT);
-
-// The fix the tick marks
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Finally setup the title
-$graph->yaxis->SetTitleSide(SIDE_RIGHT);
-$graph->yaxis->SetTitleMargin(35);
-
-// To align the title to the right use :
-$graph->yaxis->SetTitle('Turnaround 2002','high');
-$graph->yaxis->title->Align('right');
-
-// To center the title use :
-//$graph->yaxis->SetTitle('Turnaround 2002','center');
-//$graph->yaxis->title->Align('center');
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->yaxis->title->SetAngle(0);
-
-$graph->yaxis->SetFont(FF_FONT2,FS_NORMAL);
-// If you want the labels at an angle other than 0 or 90
-// you need to use TTF fonts
-//$graph->yaxis->SetLabelAngle(0);
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex4.php b/nightly-test-server/jpgraph/Examples/horizbarex4.php
deleted file mode 100644
index a704e87..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex4.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(1992,1993,1995,1996,1997,1998,2001);
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 60;
-$bottom = 30;
-$left = 80;
-$right = 30;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup labels
-$lbl = array("Andrew\nTait","Thomas\nAnderssen","Kevin\nSpacey","Nick\nDavidsson",
-"David\nLindquist","Jason\nTait","Lorin\nPersson");
-$graph->xaxis->SetTickLabels($lbl);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center','right');
-
-// Label align for Y-axis
-$graph->yaxis->SetLabelAlign('center','bottom');
-
-// Titles
-$graph->title->Set('Year Married');
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetYMin(1990);
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex6.php b/nightly-test-server/jpgraph/Examples/horizbarex6.php
deleted file mode 100644
index 0612e63..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex6.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("320x240","640x480","600x800","1024x768","1280x1024(16)","1280x1024(32)",
-	     "1600x1200(32)");
-
-// Size of graph
-$width=300; 
-$height=400;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-// No frame around the image
-$graph->SetFrame(false);
-
-// Rotate graph 90 degrees and set margin
-$graph->Set90AndMargin(100,20,50,30);
-
-// Set white margin color
-$graph->SetMarginColor('white');
-
-// Use a box around the plot area
-$graph->SetBox();
-
-// Use a gradient to fill the plot area
-$graph->SetBackgroundGradient('white','lightblue',GRAD_HOR,BGRAD_PLOT);
-
-// Setup title
-$graph->title->Set("Graphic card performance");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,11);
-$graph->subtitle->Set("(Non optimized)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,8);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(10);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// We don't want to display Y-axis
-$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// Set gradient fill for bars
-$bplot->SetFillGradient('darkred','yellow',GRAD_HOR);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-//$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("white");
-$bplot->value->SetFormat('%.1f');
-$bplot->SetValuePos('max');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-// Add some explanation text
-$txt = new Text('Note: Higher value is better.');
-$txt->SetPos(190,399,'center','bottom');
-$txt->SetFont(FF_COMIC,FS_NORMAL,8);
-$graph->Add($txt);
-
-// .. and stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php b/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php
deleted file mode 100644
index dcef758..0000000
--- a/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay1 = array(4,26,15,44);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Setup the tab
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->tabtitle->SetColor('darkred','#E1E1FF');
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the plot
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-
-$p1->SetCSIMTargets(array('#1','#2','#3','#4','#5'));
-
-// Use an image of favourite car as 
-$p1->mark->SetType(MARK_IMG,'saab_95.jpg',0.5);
-//$p1->mark->SetType(MARK_SQUARE);
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-$graph->StrokeCSIM('imgmarkercsimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/imgmarkerex1.php b/nightly-test-server/jpgraph/Examples/imgmarkerex1.php
deleted file mode 100644
index 536622a..0000000
--- a/nightly-test-server/jpgraph/Examples/imgmarkerex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay1 = array(4,26,15,44);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Setup the tab
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->tabtitle->SetColor('darkred','#E1E1FF');
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the plot
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-
-// Use an image of favourite car as marker
-$p1->mark->SetType(MARK_IMG,'saab_95.jpg',0.5);
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/impulsex1.php b/nightly-test-server/jpgraph/Examples/impulsex1.php
deleted file mode 100644
index bcb1109..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex1.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Simple mpuls plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->SetImpuls();
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex2.php b/nightly-test-server/jpgraph/Examples/impulsex2.php
deleted file mode 100644
index 4ca1ca4..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex2.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Impuls plot, variant 2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->Set("Impuls respons");
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay);//,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(4);
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(3);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex3.php b/nightly-test-server/jpgraph/Examples/impulsex3.php
deleted file mode 100644
index 8b1dc6a..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex3.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$numpoints=50;
-$k=0.05;
-
-// Create some data points
-for($i=0; $i<$numpoints; ++$i) {
-	$datay[$i]=exp(-$k*$i)*cos(2*M_PI/10*$i);
-}
-
-// A format callbakc function
-function mycallback($l) {
-	return sprintf("%02.2f",$l);
-}
-
-// Setup the basic parameters for the graph
-$graph = new Graph(400,200,"auto");
-$graph->SetScale("intlin");
-$graph->SetShadow();
-$graph->SetBox();
-
-$graph->title->Set("Impuls Example 3");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set format callback for labels
-$graph->yaxis->SetLabelFormatCallback("mycallback");
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Extend the margin for the labels on the Y-axis and reverse the direction
-// of the ticks on the Y-axis
-$graph->yaxis->SetLabelMargin(12);
-$graph->xaxis->SetLabelMargin(6);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Create a new impuls type scatter plot
-$sp1 = new ScatterPlot($datay);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(1);
-$sp1->mark->SetWidth(3);
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex4.php b/nightly-test-server/jpgraph/Examples/impulsex4.php
deleted file mode 100644
index 08acb75..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex4.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-include ("../jpgraph_line.php");
-
-$numpoints=50;
-$k=0.05;
-
-// Create some data points
-for($i=-$numpoints+1; $i<0; ++$i) {
-	$datay[$i+$numpoints-1]=exp($k*$i)*cos(2*M_PI/10*$i)*14;
-	$datayenv[$i+$numpoints-1]=exp($k*$i)*14;
-	$datax[$i+$numpoints-1]=$i;
-}
-
-for($i=0; $i<$numpoints; ++$i) {
-	$datay[$i+$numpoints-1]=exp(-$k*$i)*cos(2*M_PI/10*$i)*14;
-	$datayenv[$i+$numpoints-1]=exp(-$k*$i)*14;
-	$datax[$i+$numpoints-1]=$i;
-}
-
-// Setup the basic parameters for the graph
-$graph = new Graph(500,250,"auto");
-$graph->SetScale("intlin");
-
-$graph->SetShadow();
-$graph->SetBox();
-$graph->title->Set("Impuls Example 4");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set some other color then the boring default
-$graph->SetColor("lightyellow");
-$graph->SetMarginColor("khaki");
-
-// Set legend box specification
-$graph->legend->SetFillColor("white");
-$graph->legend->SetLineWeight(2);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Extend the margin for the labels on the Y-axis and reverse the direction
-// of the ticks on the Y-axis
-$graph->yaxis->SetLabelMargin(12);
-$graph->xaxis->SetLabelMargin(6);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Add mark graph with static lines
-$line = new PlotLine(HORIZONTAL,0,"black",2);
-$graph->AddLine($line);
-
-// Create a new impuls type scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(3);
-
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(1);
-$sp1->SetLegend("Non-causal signal");
-
-$graph->Add($sp1);
-
-// Create the envelope plot
-$ep1 = new LinePlot($datayenv,$datax);
-$ep1->SetStyle("dotted");
-$ep1->SetLegend("Positive envelope");
-
-$graph->Add($ep1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex1.php b/nightly-test-server/jpgraph/Examples/inyaxisex1.php
deleted file mode 100644
index 5954eb6..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-
-$graph->title->Set("Depth curve. Dive #2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y-axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex2.php b/nightly-test-server/jpgraph/Examples/inyaxisex2.php
deleted file mode 100644
index 51da310..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex2.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-$graph->SetBackgroundImage("blueblack400x300grad.png",1);
-//$graph->SetBackgroundImage("lightbluedarkblue400x300grad.png",1);
-
-$graph->title->Set("Depth curve. Dive #2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y-axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex3.php b/nightly-test-server/jpgraph/Examples/inyaxisex3.php
deleted file mode 100644
index 702549f..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex3.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-$n = count($ydata);
-$y2data = array();
-for( $i=0; $i< $n; ++$i ) {
-    $y2data[] = $ydata[$i]+10;
-}
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-    $y2data[$i] = round(-$y2data[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->SetY2Scale("lin");
-$graph->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-
-// Setup titles
-$graph->title->Set("Inverting both Y-axis");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y & Y2 axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-// Setup Y2 axis
-$graph->y2axis->SetLabelFormatCallback("_cb_negate");
-$graph->y2axis->SetColor("darkred","white");
-$graph->y2scale->SetAutoMax(0); // To make sure it starts with 0
-
-// Setup plot 1
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-$graph->Add($lp1);
-
-// Setup plot 2
-$lp2 = new LinePlot($y2data);
-$lp2->SetColor("darkred");
-$lp2->SetWeight(2);
-$graph->AddY2($lp2);
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png b/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png
deleted file mode 100644
index 86092ec..0000000
--- a/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/linebarcentex1.php b/nightly-test-server/jpgraph/Examples/linebarcentex1.php
deleted file mode 100644
index 9c220c5..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarcentex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-
-$datax=$gDateLocale->GetShortMonth();
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,130,20,40);
-$graph->SetShadow();
-$graph->xaxis->SetTickLabels($datax);
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-//Center the line plot in the center of the bars
-$l1plot->SetBarCenter();
-
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/linebarex1.php b/nightly-test-server/jpgraph/Examples/linebarex1.php
deleted file mode 100644
index c821d82..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$month=array(
-"Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
-
-// Create datapoints where every point
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	$databarx[]=sprintf("198%d %s",floor($i/12),$month[$i%12]);
-	
-	// Simulate an accumulated value for every 5:th data point
-	if( $i % 6 == 0 ) {
-		$databary[]=abs(25*sin($i)+5);
-	}
-	else {
-		$databary[]=0;
-	}
-	
-}
-
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use an integer X-scale
-$graph->SetScale("textlin");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("100 data points, X-Scale: 'text'");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger
-// then default
-$graph->img->SetMargin(40,140,40,80);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display every 10:th datalabel
-$graph->xaxis->SetTextTickInterval(6);
-$graph->xaxis->SetTextLabelInterval(2);
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetLabelAngle(90);
-
-// Create a red line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("red");
-$p1->SetLegend("Pressure");
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetAbsWidth(6);
-$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($p1);
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linebarex2.php b/nightly-test-server/jpgraph/Examples/linebarex2.php
deleted file mode 100644
index 2db2402..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex2.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	$datax[]=$i;
-	if( $i % 10 == 0 ) {
-		$databarx[]=$i;
-		$databary[]=$datay[$i]/2;
-	}
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use an integer X-scale
-$graph->SetScale("intlin");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("(\"left\" aligned bars)");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger
-// then default
-$graph->img->SetMargin(40,120,40,40);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create a red line plot
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor("red");
-$p1->SetLegend("Status one");
-$graph->Add($p1);
-
-// Create the bar plot
-$b1 = new BarPlot($databary,$databarx);
-$b1->SetLegend("Status two");
-$b1->SetAlign("left");
-$b1->SetShadow();
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linebarex3.php b/nightly-test-server/jpgraph/Examples/linebarex3.php
deleted file mode 100644
index 8fa7923..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex3.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-
-$steps=100;for($i=0; $i<$steps; ++$i) {	
-    $datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;	
-    $datax[]=$i;	
-    if( $i % 10 == 0 ) {		
-	$databarx[]=$i;		
-	$databary[]=$datay[$i]/2;	
-    }
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-
-//$graph->img->SetAntiAliasing();
-
-$graph->SetScale("intlin");
-$graph->SetShadow();
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("(\"center\" aligned bars)");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-
-$p1 = new LinePlot($datay,$datax);
-$p1->SetWeight(1);
-$p1->SetColor("red");
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-$b1 = new BarPlot($databary,$databarx);
-$b1->SetAbsWidth(10);
-$b1->SetAlign("center");
-$b1->SetShadow();
-$graph->Add($b1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/linegraceex.php b/nightly-test-server/jpgraph/Examples/linegraceex.php
deleted file mode 100644
index e9b7c30..0000000
--- a/nightly-test-server/jpgraph/Examples/linegraceex.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(0.2980,0.3039,0.3020,0.3027,0.3015);
-
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of 10% top/bottom grace");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Add 10% grace to top and bottom of plot
-$graph->yscale->SetGrace(10,10);
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lineiconex1.php b/nightly-test-server/jpgraph/Examples/lineiconex1.php
deleted file mode 100644
index 5bc4ad2..0000000
--- a/nightly-test-server/jpgraph/Examples/lineiconex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_iconplot.php");
-
-
-//$datay = array(20,15,23,15,17,35,22);
-$datay = array(30,25,33,25,27,45,32);
-$datay2 = array(3,25,10,15,50,5,18);
-$datay3 = array(10,5,10,15,5,2,1);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Adding an icon ("tux") in the background');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//$graph->SetBackgroundGradient('red','blue');
-
-$graph->xaxis->SetPos('min');
-
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetFillGradient('yellow@0.4','red@0.4');
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor("black");
-$p2->SetFillGradient('green@0.4','white');
-
-$p3 = new LinePlot($datay3);
-$p3->SetColor("blue");
-$p3->SetFillGradient('navy@0.4','white@0.4');
-
-$graph->Add($p1);
-$graph->Add($p2);
-$graph->Add($p3);
-
-$icon = new IconPlot('penguin.png',0.2,0.3,1,30);
-$icon->SetAnchor('center','center');
-$graph->Add($icon);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lineiconex2.php b/nightly-test-server/jpgraph/Examples/lineiconex2.php
deleted file mode 100644
index 6215ab5..0000000
--- a/nightly-test-server/jpgraph/Examples/lineiconex2.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_flags.php");
-include ("../jpgraph_iconplot.php");
-
-$datay = array(30,25,33,25,27,45,32);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Adding a country flag as a an icon');
-
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetFillGradient('yellow@0.4','red@0.4');
-
-$graph->Add($p1);
-
-$icon = new IconPlot();
-$icon->SetCountryFlag('iceland',50,30,1.5,40,3);
-$icon->SetAnchor('left','top');
-$graph->Add($icon);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linlogex1.php b/nightly-test-server/jpgraph/Examples/linlogex1.php
deleted file mode 100644
index 68aa454..0000000
--- a/nightly-test-server/jpgraph/Examples/linlogex1.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_error.php");
-
-$xdata = array( 2.0,  2.5,  3.0,  4.0,  5.0,  6.0,  8.0, 10.0,
-               12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0,
-               75.0, 100., 125., 150., 175., 200., 250., 300.,
-               400., 500., 600., 800., 950.,
-              1200., 1500., 2000., 2500.);
-$ydata = array(270.,  280., // 2 m
-               330.,  340., // 2.5
-               410.,  420., // 3
-               550.,  560., // 4
-               670.,  680., // 5
-               770.,  780., // 6
-               930.,  940., // 8
-              1010., 1020., // 10
-              1040., 1050., // 12
-               980.,  990., // 15
-               860.,  870., // 20
-               720.,  730., // 25
-               590.,  600., // 30
-               370.,  380., // 40
-               330.,  340., // 50
-               320.,  330., // 60
-               320.,  330., // 75
-               300.,  310., // 100
-               305.,  315., // 125
-               310.,  320., // 150
-               315.,  325., // 175
-               300.,  310., // 200
-               270.,  280., // 250
-               240.,  250., // 300
-               200.,  210., // 400
-               150.,  160., // 500
-               120.,  130., // 600
-                50.,   60., // 800
-                30.,   40., // 950
-                15.,   20., // 1200
-                 8.,   10., // 1500
-                 7.,    9., // 2000
-                 8.,   10.  // 2500 m
-               );
-
-$graph = new Graph(500,300,"auto");
-$graph->SetScale("linlog");
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->Set("ab/2");
-$graph->yaxis->title->Set("rho_s");
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,true);
-
-$errorplot=new ErrorPlot($ydata, $xdata);
-
-$graph->Add($errorplot);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/listallflags.php b/nightly-test-server/jpgraph/Examples/listallflags.php
deleted file mode 100644
index 8cb7370..0000000
--- a/nightly-test-server/jpgraph/Examples/listallflags.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-// List all current supported flags.
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_flags.php";
-
-// Flag size to use in table 
-$s = FLAGSIZE2 ;
-$w = 60;
-$flags = new FlagImages($s) ;
-
-// Create a nice table wil all flags and their full name (and index)
-echo "<table width=100%><tr>\n";
-$cols=0;
-while( list($key,$val) = each($flags->iCountryNameMap) ) {
-
-    echo '<td width=20%><a href="javascript:window.open(\'listallflags_helper.php?size=4&idx='.$val.'\',\'_new\',\'width=500,height=350\');void(0)"><img src="listallflags_helper.php?size='.$s.'&idx='.$val.'"></a><br>';
-    echo "<small>$key</small><br><small><font color=blue><i>idx=$val</i></font></small></td>\n";
-    
-    if( ++$cols == 5 ) {
-	echo "</tr>\n<tr>";
-	$cols=0;
-    }
-}
-
-echo "</tr></table>";
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/listallflags_helper.php b/nightly-test-server/jpgraph/Examples/listallflags_helper.php
deleted file mode 100644
index 29681ca..0000000
--- a/nightly-test-server/jpgraph/Examples/listallflags_helper.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-require_once '../jpgraph.php';
-require_once '../jpgraph_flags.php';
-
-if( empty($_GET['size']) ) {
-    $size = FLAGSIZE2;
-}
-else {
-    $size = $_GET['size'];
-}
-
-if( empty($_GET['idx']) ) {
-    $idx = 'ecua';
-}
-else {
-    $idx = $_GET['idx'];
-}
-
-
-$flags = new FlagImages($size) ;
-$img = $flags->GetImgByIdx($idx);
-header ("Content-type: image/png");
-ImagePng ($img);
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/listfontsex1.php b/nightly-test-server/jpgraph/Examples/listfontsex1.php
deleted file mode 100644
index d69f7e8..0000000
--- a/nightly-test-server/jpgraph/Examples/listfontsex1.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-
-$g = new CanvasGraph(550,450,'auto');
-$scale = new CanvasScale($g);
-$scale->Set(0,27,0,53);
-$g->SetMargin(5,6,5,6);
-$g->SetColor('white');
-$g->SetMarginColor("teal");
-$g->InitFrame();
-
-
-$t = new CanvasRectangleText();
-$t->SetFillColor('lightgreen');
-$t->SetFontColor('navy');
-$t->SetFont(FF_ARIAL,FS_NORMAL,16);
-$t->Set("\n\n\n\n\n\n\n\n\n\n\nTTF Fonts",0.5,19,26,32);
-$t->Stroke($g->img,$scale);
-
-
-$t = new CanvasRectangleText();
-
-$t->SetFillColor('');
-$t->SetFontColor('black');
-$t->SetColor('');
-$t->SetShadow('');
-$t->SetFont(FF_ARIAL,FS_BOLD,18);
-$t->Set('Family',1,1,8);
-$t->Stroke($g->img,$scale);
-
-$t->Set('Italic style',9,1,8);
-$t->Stroke($g->img,$scale);
-
-$t->Set('Bold style',17.5,1,8);
-$t->Stroke($g->img,$scale);
-
-
-$t->SetFillColor('yellow');
-$t->SetFontColor('black');
-$t->SetColor('black');
-$t->SetShadow('gray');
-
-$r=6;$c=1;$w=7.5;$h=3.5;
-
-$fonts=array(
-    array("Font 0",FF_FONT0,FS_NORMAL),
-    array("",FF_FONT0,FS_ITALIC),
-    array("",FF_FONT0,FS_BOLD),
-
-    array("Font 1",FF_FONT1,FS_NORMAL),
-    array("",FF_FONT1,FS_ITALIC),
-    array("Font 1 bold",FF_FONT1,FS_BOLD),
-
-    array("Font 2",FF_FONT2,FS_NORMAL),
-    array("",FF_FONT2,FS_ITALIC),
-    array("Font 2 bold",FF_FONT2,FS_BOLD),
-
-    array("Arial",FF_ARIAL,FS_NORMAL),
-    array("Arial italic",FF_ARIAL,FS_ITALIC),
-    array("Arial bold",FF_ARIAL,FS_BOLD),
-
-    array("Verdana",FF_VERDANA,FS_NORMAL),
-    array("Verdana italic",FF_VERDANA,FS_ITALIC),
-    array("Verdana bold",FF_VERDANA,FS_BOLD),
-
-
-    array("Trebuche",FF_TREBUCHE,FS_NORMAL),
-    array("Trebuche italic",FF_TREBUCHE,FS_ITALIC),
-    array("Trebuche bold",FF_TREBUCHE,FS_BOLD),
-
-    array("Georgia",FF_GEORGIA,FS_NORMAL),
-    array("Georgia italic",FF_GEORGIA,FS_ITALIC),
-    array("Georgia bold",FF_GEORGIA,FS_BOLD),
-
-    array("Comic",FF_COMIC,FS_NORMAL),
-    array("",FF_COMIC,FS_ITALIC),
-    array("Comic bold",FF_COMIC,FS_BOLD),
-
-    array("Courier",FF_COURIER,FS_NORMAL),
-    array("Courier italic",FF_COURIER,FS_ITALIC),
-    array("Courier bold",FF_COURIER,FS_BOLD),
-
-
-    array("Times normal",FF_TIMES,FS_NORMAL),
-    array("Times italic",FF_TIMES,FS_ITALIC),
-    array("Times bold italic",FF_TIMES,FS_BOLDITALIC),
-    );
-
-
-$n=count($fonts);
-
-for( $i=0; $i < $n; ++$i ) {
-    
-    if( $i==9 ) $r += 3;
-
-    if( $fonts[$i][0] ) {
-	$t->SetTxt($fonts[$i][0]);
-	$t->SetPos($c,$r,$w,$h);
-	$t->SetFont($fonts[$i][1],$fonts[$i][2],13);
-	$t->Stroke($g->img,$scale);
-    }
-
-    $c += $w+1;
-    if( $c > 30-$w-2 ) {
-	$c = 1;
-	$r += 4;
-    }
-
-}
-
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/logbarex1.php b/nightly-test-server/jpgraph/Examples/logbarex1.php
deleted file mode 100644
index 6e904a1..0000000
--- a/nightly-test-server/jpgraph/Examples/logbarex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(4,13,30,28,12,45,30,12,55,3,0.5);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov");
-
-// Create the graph. 
-$graph = new Graph(400,220,'auto');	
-//$graph->img->SetMargin(50,30,50,50);
-$graph->SetScale("textlog");
-//$graph->SetShadow();
-
-// Setup titles for graph and axis
-$graph->title->Set("Bar with logarithmic Y-scale");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,18);
-
-$graph->xaxis->SetTitle("2002");
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-$graph->yaxis->SetTitle("Y-title",'center');
-$graph->yaxis->SetTitleMargin(30);
-
-// Setup month on X-scale
-//$graph->xaxis->SetTickLabels($datax);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-//You can also set a manual base of the bars
-//$bplot->SetYBase(0.001);
-
-/*
-$bplot->SetShadow();
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-$bplot->value->SetColor("black","darkred");
-*/
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/loglogex1.php b/nightly-test-server/jpgraph/Examples/loglogex1.php
deleted file mode 100644
index d136437..0000000
--- a/nightly-test-server/jpgraph/Examples/loglogex1.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-
-$ab2  = array( 1.5,  2.0,  2.5,  3.0,  4.0,  5.0,  6.0,  8.0, 10.0,
-              12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0 ,75.0,
-              100., 125., 150.);
-$mn2  = array( 0.5,  0.5,  0.5,  0.5,  0.8,  0.8,  0.8,  0.8,  1.0,
-               1.0,  1.0,  1.0,  1.0,  2.0,  2.0,  2.0,  2.0,  2.0,
-               5.0,  5.0,  5.0);
-$rhos = array(30.0, 31.0, 32.0, 34.0, 35.5, 37.5, 38.0, 39.5, 41.5,
-              43.0, 41.0, 42.0, 42.5, 45.0, 49.0, 53.5, 58.0, 66.5,
-              75.0, 81.0, 89.0);
-
-// Create the graph.
-$graph = new Graph(500,300,"auto");     
-$graph->SetScale("loglog");              
-$graph->SetY2Scale("lin");               
-$graph->y2axis->SetColor("blue","blue"); 
-
-$graph->img->SetMargin(50,70,40,50);     
-$graph->title->Set("Geoelektrik");       
-$graph->xaxis->title->Set("Auslage ab/2 [m]");  
-$graph->yaxis->title->Set("rho_s [Ohm m]");     
-$graph->y2axis->title->Set("mn/2 [m]");         
-$graph->y2axis->title->SetColor("blue");
-$graph->y2axis->SetTitleMargin(35);
-$graph->title->SetFont(FF_FONT1,FS_BOLD);       
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); 
-$graph->xgrid->Show(true,true);                  
-$graph->ygrid->Show(true,true);                  
-
-// Create the linear plot
-
-$lineplot=new LinePlot($rhos,$ab2);       
-$lineplot->SetWeight(1);
-$lineplot->mark->SetType(MARK_FILLEDCIRCLE);
-$lineplot->mark->SetWidth(2);
-
-// Create scatter plot 
-
-$scplot=new ScatterPlot($mn2,$ab2);
-$scplot->mark->SetType(MARK_FILLEDCIRCLE);
-$scplot->mark->SetColor("blue");
-$scplot->mark->SetWidth(2);
-
-// Add plots to the graph
-
-$graph->AddY2($scplot);
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex1.php b/nightly-test-server/jpgraph/Examples/manscaleex1.php
deleted file mode 100644
index 4bb452f..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-$graph->yscale->ticks->Set(7,2);
-
-$graph->title->Set('Manual scale, manual ticks');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex2.php b/nightly-test-server/jpgraph/Examples/manscaleex2.php
deleted file mode 100644
index 79abb18..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex2.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-
-$graph->title->Set('Manual scale, exact limits');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex3.php b/nightly-test-server/jpgraph/Examples/manscaleex3.php
deleted file mode 100644
index 4d1d8d8..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex3.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(250,200);
-$graph->SetScale("textlin",3,35);
-$graph->SetTickDensity(TICKD_DENSE);
-$graph->yscale->SetAutoTicks();
-
-$graph->title->Set('Manual scale, auto ticks');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex4.php b/nightly-test-server/jpgraph/Examples/manscaleex4.php
deleted file mode 100644
index b1f01fd..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex4.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-$graph->yscale->SetAutoTicks();
-
-$graph->title->Set('Manual scale, allow adjustment');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manualtickex1.php b/nightly-test-server/jpgraph/Examples/manualtickex1.php
deleted file mode 100644
index 95f5584..0000000
--- a/nightly-test-server/jpgraph/Examples/manualtickex1.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-//
-// Basic example on how to use custom tickmark feature to have a label
-// at the start of each month.
-//
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-// 
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//
-$datay = array();
-$datax = array();
-$ts = time();
-$n=15; // Number of data points
-for($i=0; $i < $n; ++$i ) {
-    $datax[$i] = $ts+$i*700000; 
-    $datay[$i] = rand(5,60);
-}
-
-// Now get labels at the start of each month
-$dateUtils = new DateScaleUtils();
-list($tickPositions,$minTickPositions) = $dateUtils->GetTicks($datax);
-
-// We add some grace to the end of the X-axis scale so that the first and last
-// data point isn't exactly at the very end or beginning of the scale
-$grace = 400000;
-$xmin = $datax[0]-$grace;
-$xmax = $datax[$n-1]+$grace;
-
-//
-// The code to setup a very basic graph
-//
-$graph = new Graph(400,200);
-
-//
-// We use an integer scale on the X-axis since the positions on the X axis
-// are assumed to be UNI timestamps
-$graph->SetScale('intlin',0,0,$xmin,$xmax);
-$graph->title->Set('Basic example with manual ticks');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//
-// Make sure that the X-axis is always at the bottom of the scale
-// (By default the X-axis is alwys positioned at Y=0 so if the scale
-// doesn't happen to include 0 the axis will not be shown)
-$graph->xaxis->SetPos('min');
-
-// Now set the tic positions
-$graph->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-
-// The labels should be formatted at dates with "Year-month"
-$graph->xaxis->SetLabelFormatString('My',true);
-
-// Use Ariel font
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,9);
-
-// Add a X-grid
-$graph->xgrid->Show();
-
-// Create the plot line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor('teal');
-$graph->Add($p1);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manualtickex2.php b/nightly-test-server/jpgraph/Examples/manualtickex2.php
deleted file mode 100644
index 124d085..0000000
--- a/nightly-test-server/jpgraph/Examples/manualtickex2.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-//
-// Basic example on how to use custom tickmark feature to have a label
-// at the start of each month.
-//
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-// 
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//
-$f = new FuncGenerator('cos($x)+1.5*cos(2*$x)');
-list($datax,$datay) = $f->E(0,10);
-
-// Now get labels at 1/2 PI intervall
-$tickPositions = array();
-$tickLabels = array();
-$tickPositions[0] = 0;
-$tickLabels[0] = '0';
-for($i=1; $i/2*M_PI < 11 ; ++$i ) {
-    $tickPositions[$i] = $i/2*M_PI;
-    if( $i % 2 )
-	$tickLabels[$i] = $i.'/2'.SymChar::Get('pi');
-    else
-	$tickLabels[$i] = ($i/2).SymChar::Get('pi');
-}
-
-$n = count($datax);
-$xmin = $datax[0];
-$xmax = $datax[$n-1];
-
-//
-// The code to setup a very basic graph
-//
-$graph = new Graph(400,200);
-
-//
-// We use an integer scale on the X-axis since the positions on the X axis
-// are assumed to be UNI timestamps
-$graph->SetScale('linlin',0,0,$xmin,$xmax);
-$graph->title->Set('Example with manual tick labels');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//
-// Make sure that the X-axis is always at the bottom of the scale
-// (By default the X-axis is alwys positioned at Y=0 so if the scale
-// doesn't happen to include 0 the axis will not be shown)
-$graph->xaxis->SetPos('min');
-
-// Now set the tic positions
-$graph->xaxis->SetMajTickPositions($tickPositions,$tickLabels);
-
-// Use Times font
-$graph->xaxis->SetFont(FF_TIMES,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_TIMES,FS_NORMAL,10);
-
-// Add a X-grid
-$graph->xgrid->Show();
-
-// Create the plot line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor('teal');
-$graph->Add($p1);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/markflagex1.php b/nightly-test-server/jpgraph/Examples/markflagex1.php
deleted file mode 100644
index a68c43e..0000000
--- a/nightly-test-server/jpgraph/Examples/markflagex1.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(
-    array(4,26,15,44),
-    array(20,51,32,20));
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-//------------------------
-// Create the plots
-//------------------------
-$p1 = new LinePlot($datay[0]);
-$p1->SetColor("navy");
-
-// Use a flag
-$p1->mark->SetType(MARK_FLAG1,'chin');
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-//------------
-// 2:nd plot
-//------------
-$p2 = new LinePlot($datay[1]);
-$p2->SetColor("navy");
-
-// Use a flag
-$p2->mark->SetType(MARK_FLAG1,'united states');
-
-// Displayes value on top of marker image
-$p2->value->SetFormat('%d mil');
-$p2->value->Show();
-$p2->value->SetColor('darkred');
-$p2->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p2->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p2->SetCenter();
-$graph->Add($p2);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/multconstganttex01.php b/nightly-test-server/jpgraph/Examples/multconstganttex01.php
deleted file mode 100644
index d59d5e6..0000000
--- a/nightly-test-server/jpgraph/Examples/multconstganttex01.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php 
-// Gantt example 
-include ("../jpgraph.php"); 
-include ("../jpgraph_gantt.php"); 
-
-// Create the basic graph 
-$graph = new GanttGraph(); 
-$graph->title->Set("Example with multiple constrains"); 
-
-$bar1 = new GanttBar(0, "Label 1", "2003-06-08", "2003-06-12"); 
-$bar2 = new GanttBar(1, "Label 2", "2003-06-16", "2003-06-19"); 
-$bar3 = new GanttBar(2, "Label 3", "2003-06-15", "2003-06-21"); 
-
-//create constraints 
-$bar1->SetConstrain(1, CONSTRAIN_ENDSTART); 
-$bar1->SetConstrain(2, CONSTRAIN_ENDSTART); 
-
-// Setup scale 
-$graph->ShowHeaders(/*GANTT_HYEAR | GANTT_HMONTH |*/ GANTT_HDAY | GANTT_HWEEK); 
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR); 
-
-// Add the specified activities 
-$graph->Add($bar1); 
-$graph->Add($bar2); 
-$graph->Add($bar3); 
-
-// .. and stroke the graph 
-$graph->Stroke(); 
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php b/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php
deleted file mode 100644
index 90a6d05..0000000
--- a/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_line.php");
-
-
-// Setup some dummy targets for the CSIM
-$n = 5;
-for($i=0; $i < $n; ++$i ) {
-    $targ1[$i] = "#$i";
-    $targ2[$i] = "#$i";
-    $targ3[$i] = "#$i";
-    $alts1[$i] = "val=%d";
-    $alts2[$i] = "val=%d";
-    $alts3[$i] = "val=%d";
-}
-
-// Some data for the points
-$datay1 = array(3,10,4,1,6);
-$datay2 = array(25,22,18,24,20);
-$datay3 = array(89,70,92,77,96);
-
-// Create a basic graph with some suitable margins
-$graph = new Graph(500,250);
-$graph->SetMargin(60,180,50,40);
-$graph->SetMarginColor('white');
-$graph->title->Set("Multi Y-axes with Image Map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the scales for all axes
-$graph->SetScale("intlin");
-$graph->SetYScale(0,'int');
-$graph->SetYScale(1,'int');
-
-// Standard Y-axis plot
-$lp1 = new LinePlot($datay1);
-$lp1->SetLegend('2001');
-$lp1->mark->SetType(MARK_DIAMOND);
-$lp1->mark->SetWidth(15);
-$lp1->mark->SetFillColor('orange');
-$lp1->SetCSIMTargets($targ1,$alts1);
-$graph->yaxis->title->Set('Basic Rate');
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->yaxis->title->SetColor('black');
-$graph->Add($lp1);
-
-// First multi Y-axis plot
-$lp2 = new LinePlot($datay2);
-$lp2->SetLegend('2002');
-$lp2->mark->SetType(MARK_DIAMOND);
-$lp2->mark->SetWidth(15);
-$lp2->mark->SetFillColor('darkred');
-$lp2->SetCSIMTargets($targ2,$alts2);
-$graph->ynaxis[0]->SetColor('darkred');
-$graph->ynaxis[0]->title->Set('Rate A');
-$graph->ynaxis[0]->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->ynaxis[0]->title->SetColor('darkred');
-$graph->AddY(0,$lp2);
-
-// Second multi Y-axis plot
-$lp3 = new LinePlot($datay3);
-$lp3->SetLegend('2003');
-$lp3->mark->SetType(MARK_DIAMOND);
-$lp3->mark->SetWidth(15);
-$lp3->mark->SetFillColor('darkgreen');
-$lp3->SetCSIMTargets($targ3,$alts3);
-$graph->ynaxis[1]->SetColor('darkgreen');
-$graph->ynaxis[1]->title->Set('Rate B');
-$graph->ynaxis[1]->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->ynaxis[1]->title->SetColor('darkgreen');
-$graph->AddY(1,$lp3);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('auto');
-?>
diff --git a/nightly-test-server/jpgraph/Examples/mulyaxisex1.php b/nightly-test-server/jpgraph/Examples/mulyaxisex1.php
deleted file mode 100644
index 638042c..0000000
--- a/nightly-test-server/jpgraph/Examples/mulyaxisex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$n = 8;
-for($i=0; $i < $n; ++$i ) {
-    $datay[$i] = rand(1,10);
-    $datay2[$i] = rand(10,55);
-    $datay3[$i] = rand(200,600);
-    $datay4[$i] = rand(521,655);
-}
-
-$datay4[0] = 520;
-$datay4[7] = 660;
-
-// Setup the graph
-$graph = new Graph(450,250);
-$graph->SetMargin(40,150,40,30);
-$graph->SetMarginColor('white');
-
-$graph->SetScale('intlin');
-$graph->title->Set('Using multiple Y-axis');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,14);
-
-$graph->SetYScale(0,'lin');
-$graph->SetYScale(1,'lin');
-$graph->SetYScale(2,'lin');
-
-$p1 = new LinePlot($datay);
-$graph->Add($p1);
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor('teal');
-$graph->AddY(0,$p2);
-$graph->ynaxis[0]->SetColor('teal');
-
-$p3 = new LinePlot($datay3);
-$p3->SetColor('red');
-$graph->AddY(1,$p3);
-$graph->ynaxis[1]->SetColor('red');
-
-$p4 = new LinePlot($datay4);
-$p4->SetColor('blue');
-$graph->AddY(2,$p4);
-$graph->ynaxis[2]->SetColor('blue');
-
-// Output line
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/negbarvalueex01.php b/nightly-test-server/jpgraph/Examples/negbarvalueex01.php
deleted file mode 100644
index 5c60ee9..0000000
--- a/nightly-test-server/jpgraph/Examples/negbarvalueex01.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,40,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// DIsplay value at top of each bar
-$bplot->value->Show();
-$bplot->SetShadow();
-
-$graph->Add($bplot);
-
-// Position the scale at the min of the other axis
-$graph->xaxis->SetPos("min");
-
-// Add 10% more space at top and bottom of graph
-$graph->yscale->SetGrace(10,10);
-
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->title->Set("Example of bar plot with absolute labels");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/nullvalueex01.php b/nightly-test-server/jpgraph/Examples/nullvalueex01.php
deleted file mode 100644
index 50cfec9..0000000
--- a/nightly-test-server/jpgraph/Examples/nullvalueex01.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datax = array("2001-04-01","2001-04-02","2001-04-03","2001-04-04","2001-04-05","2001-04-06");
-$datay = array(28,13,24,"",90,11);
-$data2y = array(11,41,"-",33,"-",63);
-
-// Setup graph
-$graph = new Graph(400,250,"auto");
-$graph->img->SetMargin(40,150,40,80);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-//Setup title
-$graph->title->Set("Line plot with null values");
-
-// Use built in font
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,14);
-
-// Slightly adjust the legend from it's default position
-$graph->legend->Pos(0.03,0.5,"right","center");
-$graph->legend->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup X-scale
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->xaxis->SetLabelAngle(45);
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Undefined\nvariant 1");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("Undefined\nvariant 2");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php b/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php
deleted file mode 100644
index 4f5fae9..0000000
--- a/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-include("../jpgraph.php");
-include("../jpgraph_line.php");
-
-// Some data
-$ydata = array(5,10,15,20,15,10,8,7,4,10,5);
-
-// Create the graph
-$graph= new Graph(400,300,"auto");
-$graph->SetScale("textlin");
-$graph->SetShadow(true);
-$graph->SetMarginColor("lightblue");
-
-// Setup format for legend
-$graph->legend->SetFillColor("antiquewhite");
-$graph->legend->SetShadow(true);
-
-// Setup title
-$graph->title->Set("Filled Area Example");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-
-// Setup semi-filled line plot
-$lineplot = new LinePlot($ydata);
-$lineplot->SetLegend("Semi-filled\nLineplot");
-
-// Set line color
-$lineplot->SetColor("black");
-
-// Setup the two areas to be filled
-$lineplot->AddArea(2,5,LP_AREA_FILLED,"red");
-$lineplot->AddArea(6,8,LP_AREA_FILLED,"green");
-
-// Display the marks on the lines
-$lineplot->mark->SetType(MARK_DIAMOND);
-$lineplot->mark->SetSize(8);
-$lineplot->mark->Show();
-
-// add plot to the graph
-$graph->Add($lineplot);
-
-// display graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/penguin.png b/nightly-test-server/jpgraph/Examples/penguin.png
deleted file mode 100644
index 2ae426a..0000000
--- a/nightly-test-server/jpgraph/Examples/penguin.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php b/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php
deleted file mode 100644
index 57c1db7..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_pie.php");
-include_once ("../jpgraph_pie3d.php");
-
-//$gJpgBrandTiming=true;
-
-// Some data
-$data = array(40,21,17,27,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(400,200,'auto');
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("3D Pie Client side image map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot3D($data);
-$p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
-$targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
-			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-
-// Use absolute labels
-$p1->SetLabelType(1);
-$p1->value->SetFormat("%d kr");
-
-// Move the pie slightly to the left
-$p1->SetCenter(0.4,0.5);
-
-$graph->Add($p1);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('pie3d_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex1.php b/nightly-test-server/jpgraph/Examples/pie3dex1.php
deleted file mode 100644
index aa0bfdd..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex1.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 1 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetAngle(30);
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,12);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex2.php b/nightly-test-server/jpgraph/Examples/pie3dex2.php
deleted file mode 100644
index 50057ff..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex2.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-
-// Set A title for the plot
-$graph->title->Set("Example 2 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(0.4);
-$p1->SetHeight(5);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// You can explode several slices by specifying the explode
-// distance for some slices in an array
-$p1->Explode(array(0,40,0,30));
-
-// As a shortcut you can easily explode one numbered slice with
-// $p1->ExplodeSlice(3);
-
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,10);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex3.php b/nightly-test-server/jpgraph/Examples/pie3dex3.php
deleted file mode 100644
index cc4b52a..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex3.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 3 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// As a shortcut you can easily explode one numbered slice with
-$p1->ExplodeSlice(3);
-
-// Setup the slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex4.php b/nightly-test-server/jpgraph/Examples/pie3dex4.php
deleted file mode 100644
index d86aeec..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex4.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 4 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// Adjsut angle for first slice
-$p1->SetStartAngle(45);
-
-// As a shortcut you can easily explode one numbered slice with
-$p1->ExplodeSlice(3);
-
-// Setup slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex5.php b/nightly-test-server/jpgraph/Examples/pie3dex5.php
deleted file mode 100644
index 4843157..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex5.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 5 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// Adjsut angle for first slice
-$p1->SetStartAngle(45);
-
-// Display the slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-// Add colored edges to the 3D pie
-// NOTE: You can't have exploded slices with edges!
-$p1->SetEdge("navy");
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie_csimex1.php b/nightly-test-server/jpgraph/Examples/pie_csimex1.php
deleted file mode 100644
index 4cd3f73..0000000
--- a/nightly-test-server/jpgraph/Examples/pie_csimex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(300,200,'auto');
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Client side image map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.4,0.5);
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul"));
-$targ=array("pie_csimex1.php#1","pie_csimex1.php#2","pie_csimex1.php#3",
-"pie_csimex1.php#4","pie_csimex1.php#5","pie_csimex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-
-$graph->Add($p1);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('pie_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piebkgex1.php b/nightly-test-server/jpgraph/Examples/piebkgex1.php
deleted file mode 100644
index bb83a43..0000000
--- a/nightly-test-server/jpgraph/Examples/piebkgex1.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(
-    array(80,18,15,17),
-    array(35,28,6,34),
-    array(10,28,10,5),
-    array(22,22,10,17));
-
-$piepos = array(0.2,0.4,0.65,0.28,0.25,0.75,0.8,0.75);
-$titles = array('USA','Sweden','South America','Australia');
-
-$n = count($piepos)/2;
- 
-// A new graph
-$graph = new PieGraph(550,400,'auto');
-
-// Specify margins since we put the image in the plot area
-$graph->SetMargin(1,1,40,1);
-$graph->SetMarginColor('navy');
-$graph->SetShadow(false);
-
-// Setup background
-$graph->SetBackgroundImage('worldmap1.jpg',BGIMG_FILLPLOT);
-
-// Setup title
-$graph->title->Set("Pie plots with background image");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,20);
-$graph->title->SetColor('white');
-
-$p = array();
-// Create the plots
-for( $i=0; $i < $n; ++$i ) {
-    $d = "data$i";
-    $p[] = new PiePlot3D($data[$i]);
-}
-
-// Position the four pies
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetCenter($piepos[2*$i],$piepos[2*$i+1]);
-}
-
-// Set the titles
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->title->Set($titles[$i]);
-    $p[$i]->title->SetColor('white');
-    $p[$i]->title->SetFont(FF_ARIAL,FS_BOLD,12);
-}
-
-// Label font and color setup
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->SetFont(FF_ARIAL,FS_BOLD);
-    $p[$i]->value->SetColor('white');
-}
-
-// Show the percetages for each slice
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->Show();
-}
-
-// Label format
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->SetFormat("%01.1f%%");
-}
-
-// Size of pie in fraction of the width of the graph
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetSize(0.15);
-}
-
-// Format the border around each slice
-
-
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetEdge(false);
-    $p[$i]->ExplodeSlice(1);
-}
-
-// Use one legend for the whole graph
-$p[0]->SetLegends(array("May","June","July","Aug"));
-$graph->legend->Pos(0.05,0.35);
-$graph->legend->SetShadow(false);
-
-for( $i=0; $i < $n; ++$i ) {
-    $graph->Add($p[$i]);
-}
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piec_csimex1.php b/nightly-test-server/jpgraph/Examples/piec_csimex1.php
deleted file mode 100644
index aa70770..0000000
--- a/nightly-test-server/jpgraph/Examples/piec_csimex1.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-// $Id$
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(400,400);
-
-// If you don't want any  border just uncomment this line
-// $graph->SetFrame(false);
-
-// Uncomment this line to add a drop shadow to the border
-// $graph->SetShadow();
-
-// Setup title
-$graph->title->Set("CSIM Center Pie plot ex 1");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,18);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set the radius of pie (as fraction of image size)
-$p1->SetSize(0.32);
-
-// Move the center of the pie slightly to the top of the image
-$p1->SetCenter(0.5,0.45);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$p1->value->SetColor('white');
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_ARIAL,FS_NORMAL,14);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// The label array values may have printf() formatting in them. The argument to the
-// form,at string will be the value of the slice (either the percetage or absolute
-// depending on what was specified in the SetLabelType() above.
-$lbl = array("adam\n%.1f%%","bertil\n%.1f%%","johan\n%.1f%%",
-	     "peter\n%.1f%%","daniel\n%.1f%%","erik\n%.1f%%");
-$p1->SetLabels($lbl);
-
-// Uncomment this line to remove the borders around the slices
-// $p1->ShowBorder(false);
-
-// Add drop shadow to slices
-$p1->SetShadow();
-
-// Explode all slices 15 pixels
-$p1->ExplodeAll(15);
-
-// Setup the CSIM targets
-$targ=array("piec_csimex1.php#1","piec_csimex1.php#2","piec_csimex1.php#3",
-	    "piec_csimex1.php#4","piec_csimex1.php#5","piec_csimex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-$p1->SetMidCSIM("piec_csimex1.php#7","Center");
-
-
-// Setup a small help text in the image
-$txt = new Text("Note: This is an example of image map. Hold\nyour mouse over the slices to see the values.\nThe URL just points back to this page");
-$txt->SetFont(FF_FONT1,FS_BOLD);
-$txt->Pos(0.5,0.97,'center','bottom');
-$txt->SetBox('yellow','black');
-$txt->SetShadow();
-$graph->AddText($txt);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->StrokeCSIM('piec_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piecex1.php b/nightly-test-server/jpgraph/Examples/piecex1.php
deleted file mode 100644
index 1d39ba2..0000000
--- a/nightly-test-server/jpgraph/Examples/piecex1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-// $Id
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(300,300,'auto');
-
-// Setup title
-$graph->title->Set("Pie plot with center circle");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,14);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set size of pie
-$p1->SetSize(0.32);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$p1->value->SetColor('black');
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_COMIC,FS_NORMAL,10);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piecex2.php b/nightly-test-server/jpgraph/Examples/piecex2.php
deleted file mode 100644
index 5d99812..0000000
--- a/nightly-test-server/jpgraph/Examples/piecex2.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-// $Id$
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(400,400,'auto');
-
-// Don't display the border
-$graph->SetFrame(false);
-
-// Uncomment this line to add a drop shadow to the border
-// $graph->SetShadow();
-
-// Setup title
-$graph->title->Set("PiePlotC");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,18);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set size of pie
-$p1->SetSize(0.35);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$p1->value->SetColor('white');
-
-$p1->value->Show();
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_COMIC,FS_NORMAL,14);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// The label array values may have printf() formatting in them. The argument to the
-// form,at string will be the value of the slice (either the percetage or absolute
-// depending on what was specified in the SetLabelType() above.
-$lbl = array("adam\n%.1f%%","bertil\n%.1f%%","johan\n%.1f%%",
-	     "peter\n%.1f%%","daniel\n%.1f%%","erik\n%.1f%%");
-$p1->SetLabels($lbl);
-
-// Uncomment this line to remove the borders around the slices
-// $p1->ShowBorder(false);
-
-// Add drop shadow to slices
-$p1->SetShadow();
-
-// Explode all slices 15 pixels
-$p1->ExplodeAll(15);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex1.php b/nightly-test-server/jpgraph/Examples/pieex1.php
deleted file mode 100644
index bf00510..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex1.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(113,5,160,3,15,10,1);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 1 Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14); 
-$graph->title->SetColor("brown");
-
-// Create pie plot
-$p1 = new PiePlot($data);
-//$p1->SetSliceColors(array("red","blue","yellow","green"));
-$p1->SetTheme("earth");
-
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,10);
-// Set how many pixels each slice should explode
-$p1->Explode(array(0,15,15,25,15));
-
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex2.php b/nightly-test-server/jpgraph/Examples/pieex2.php
deleted file mode 100644
index d80a8d5..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 2 Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot($data);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul"));
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex3.php b/nightly-test-server/jpgraph/Examples/pieex3.php
deleted file mode 100644
index 0f1ac21..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex3.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,300,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Multiple - Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create plots
-$size=0.13;
-$p1 = new PiePlot($data);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-$p1->SetSize($size);
-$p1->SetCenter(0.25,0.32);
-$p1->value->SetFont(FF_FONT0);
-$p1->title->Set("2001");
-
-$p2 = new PiePlot($data);
-$p2->SetSize($size);
-$p2->SetCenter(0.65,0.32);
-$p2->value->SetFont(FF_FONT0);
-$p2->title->Set("2002");
-
-$p3 = new PiePlot($data);
-$p3->SetSize($size);
-$p3->SetCenter(0.25,0.75);
-$p3->value->SetFont(FF_FONT0);
-$p3->title->Set("2003");
-
-$p4 = new PiePlot($data);
-$p4->SetSize($size);
-$p4->SetCenter(0.65,0.75);
-$p4->value->SetFont(FF_FONT0);
-$p4->title->Set("2004");
-
-$graph->Add($p1);
-$graph->Add($p2);
-$graph->Add($p3);
-$graph->Add($p4);
-
-$graph->Stroke();
-
-?>
-
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex4.php b/nightly-test-server/jpgraph/Examples/pieex4.php
deleted file mode 100644
index 2a1a168..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("Example 4 of pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetSize(0.3);
-$p1->SetCenter(0.4);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex5.php b/nightly-test-server/jpgraph/Examples/pieex5.php
deleted file mode 100644
index 89c2bb4..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex5.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-// Setup graph
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Setup graph title
-$graph->title->Set("Example 5 of pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->value->SetFont(FF_VERDANA,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetSize(0.3);
-$p1->SetCenter(0.4);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-//$p1->SetStartAngle(M_PI/8);
-$p1->ExplodeSlice(3);
-
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex6.php b/nightly-test-server/jpgraph/Examples/pieex6.php
deleted file mode 100644
index bba3187..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex6.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(27,23,47,17);
-
-// A new graph
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Example of pie plot with absolute labels");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// The pie plot
-$p1 = new PiePlot($data);
-
-// Move center of pie to the left to make better room
-// for the legend
-$p1->SetCenter(0.35,0.5);
-
-// No border
-$p1->ShowBorder(false);
-
-// Label font and color setup
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-
-// Use absolute values (type==1)
-$p1->SetLabelType(PIE_VALUE_ABS);
-
-// Label format
-$p1->value->SetFormat("$%d");
-$p1->value->Show();
-
-// Size of pie in fraction of the width of the graph
-$p1->SetSize(0.3);
-
-// Legends
-$p1->SetLegends(array("May ($%d)","June ($%d)","July ($%d)","Aug ($%d)"));
-$graph->legend->Pos(0.05,0.15);
-
-$graph->Add($p1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex7.php b/nightly-test-server/jpgraph/Examples/pieex7.php
deleted file mode 100644
index 37d84db..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex7.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-//$Id$
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(27,23,0,17);
-
-// A new graph
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Pie plot with absolute labels");
-$graph->subtitle->Set('(With hidden 0 labels)');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// The pie plot
-$p1 = new PiePlot($data);
-
-
-// Move center of pie to the left to make better room
-// for the legend
-$p1->SetCenter(0.35,0.5);
-
-// No border
-$p1->ShowBorder(false);
-
-// Label font and color setup
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-
-// Use absolute values (type==1)
-$p1->SetLabelType(PIE_VALUE_ABS);
-
-// Label format
-$p1->value->SetFormat("$%d");
-$p1->value->HideZero();
-$p1->value->Show();
-
-// Size of pie in fraction of the width of the graph
-$p1->SetSize(0.3);
-
-// Legends
-$p1->SetLegends(array("May ($%d)","June ($%d)","July ($%d)","Aug ($%d)"));
-$graph->legend->Pos(0.05,0.2);
-
-$graph->Add($p1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex8.php b/nightly-test-server/jpgraph/Examples/pieex8.php
deleted file mode 100644
index c5ea25f..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex8.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,31,35);
-
-// A new pie graph
-$graph = new PieGraph(250,200,"auto");
-$graph->SetShadow();
-
-// Title setup
-$graph->title->Set("Adjusting the label pos");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the pie plot
-$p1 = new PiePlot($data);
-
-// Adjust size and position of plot
-$p1->SetSize(0.4);
-$p1->SetCenter(0.5,0.52);
-
-// Setup slice labels and move them into the plot
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetLabelPos(0.6);
-
-// Finally add the plot
-$graph->Add($p1);
-
-// ... and stroke it
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pieex9.php b/nightly-test-server/jpgraph/Examples/pieex9.php
deleted file mode 100644
index 5a5536a..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex9.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,31,35);
-
-// A new pie graph
-$graph = new PieGraph(250,200,"auto");
-$graph->SetShadow();
-
-// Title setup
-$graph->title->Set("Exploding all slices");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the pie plot
-$p1 = new PiePlot($data);
-
-// Adjust size and position of plot
-$p1->SetSize(0.35);
-$p1->SetCenter(0.5,0.52);
-
-// Setup slice labels and move them into the plot
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetLabelPos(0.65);
-
-// Explode all slices
-$p1->ExplodeAll(10);
-
-// Add drop shadow
-$p1->SetShadow();
-
-// Finally add the plot
-$graph->Add($p1);
-
-// ... and stroke it
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex1.php b/nightly-test-server/jpgraph/Examples/pielabelsex1.php
deleted file mode 100644
index 65c6100..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex1.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines
-$p1->SetGuideLines();
-$p1->SetGuideLinesAdjust(1.4);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex2.php b/nightly-test-server/jpgraph/Examples/pielabelsex2.php
deleted file mode 100644
index beaa7c7..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-$p1->SetGuideLines(true,false);
-$p1->SetGuideLinesAdjust(1.5);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex3.php b/nightly-test-server/jpgraph/Examples/pielabelsex3.php
deleted file mode 100644
index d0296c7..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex3.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-// and force guide lines to always beeing used
-$p1->SetGuideLines(true,false,true);
-$p1->SetGuideLinesAdjust(1.5);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex4.php b/nightly-test-server/jpgraph/Examples/pielabelsex4.php
deleted file mode 100644
index 0c74461..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex4.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-$p1->SetGuideLines(true,false);
-$p1->SetGuideLinesAdjust(1.1);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/polarex0-180.php b/nightly-test-server/jpgraph/Examples/polarex0-180.php
deleted file mode 100644
index 68f93df..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex0-180.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-// A simple Polar graph, example 0
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(250,250);
-$graph->SetScale('lin');
-$graph->SetMargin(35,35,25,25);
-$graph->SetType(POLAR_180);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex0.php b/nightly-test-server/jpgraph/Examples/polarex0.php
deleted file mode 100644
index 46cddfe..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex0.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-// A simple Polar graph, example 0
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(250,250);
-$graph->SetScale('lin');
-$graph->SetMargin(35,35,25,25);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex1.php b/nightly-test-server/jpgraph/Examples/polarex1.php
deleted file mode 100644
index dc65337..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-// A simple Polar graph, example 1
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(600,500);
-$graph->SetScale('lin');
-$graph->SetType(POLAR_180);
-//$graph->SetAngle(90);
-//$graph->SetMargin(30-150,30-150,30+150,30+150);
-$graph->Set90AndMargin(40,40,40,40);
-//$graph->axis->SetLabelAlign('right','center');
-
-$p = new PolarPlot($data);
-$p->SetLegend("Test");
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex10.php b/nightly-test-server/jpgraph/Examples/polarex10.php
deleted file mode 100644
index 093c1e5..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex10.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-$data = array(5,1,20,5,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,160,5,175,1);
-$n = count($data);
-/*
-for($i=0; $i < $n; $i+=2 ) {
-    $data[$n+$i] = 360-$data[$i];
-    $data[$n+$i+1] = $data[$i+1];
-}
-*/
-$graph = new PolarGraph(350,480);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_360);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.9','lightblue:0.9','lightblue:0.9');
-
-// Set label and axis colors
-$graph->axis->SetColor('black','navy','darkred');
-
-// Draw the ticks on the bottom side of the radius axis
-$graph->axis->SetTickSide(SIDE_DOWN);
-
-// Increase the margin for the labels since we changed the
-// side of the ticks.
-$graph->axis->SetLabelMargin(6);
-
-// Change fonts
-$graph->axis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->axis->SetAngleFont(FF_ARIAL,FS_NORMAL,8);
-
-
-// Setup graph title
-$graph->title->Set('Polar plot #10');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Setup tab title
-$graph->tabtitle->Set('Microphone #1');
-$graph->tabtitle->SetColor('brown:0.5','lightyellow');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex2.php b/nightly-test-server/jpgraph/Examples/polarex2.php
deleted file mode 100644
index 3bb7004..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('lin');
-
-$graph->title->Set('Polar plot #2');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex3-lin.php b/nightly-test-server/jpgraph/Examples/polarex3-lin.php
deleted file mode 100644
index 29e5bb0..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex3-lin.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,300);
-$graph->SetScale('lin',200);
-$graph->SetType(POLAR_180);
-
-$graph->title->Set('Polar plot #3');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-$graph->axis->ShowGrid(true,false);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex3.php b/nightly-test-server/jpgraph/Examples/polarex3.php
deleted file mode 100644
index c0b160e..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex3.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,300);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-
-$graph->title->Set('Polar plot #3');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-$graph->axis->ShowGrid(true,false);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex4.php b/nightly-test-server/jpgraph/Examples/polarex4.php
deleted file mode 100644
index f9c6950..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex4.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-
-$graph->title->Set('Polar plot #4');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex5.php b/nightly-test-server/jpgraph/Examples/polarex5.php
deleted file mode 100644
index 69a9910..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex5.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-$graph->title->Set('Polar plot #5');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex6.php b/nightly-test-server/jpgraph/Examples/polarex6.php
deleted file mode 100644
index dddde32..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex6.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,270,
-	      90,480,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-$graph->SetType(POLAR_180);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-$graph->title->Set('Polar plot #6');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7-1.php b/nightly-test-server/jpgraph/Examples/polarex7-1.php
deleted file mode 100644
index bbdd3e6..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7-1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,30,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,150,2,180,1);
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-$graph->SetPlotSize(220,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_HOR,BGRAD_PLOT);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #7');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7-2.php b/nightly-test-server/jpgraph/Examples/polarex7-2.php
deleted file mode 100644
index 342fc57..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7-2.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,30,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,150,2,180,1);
-
-$n = count($data);
-for($i=0; $i < $n; $i+=2 ) {
-    $data[$n+$i] = 360-$data[$i];
-    $data[$n+$i+1] = $data[$i+1];
-}
-
-
-$graph = new PolarGraph(300,400);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_360);
-$graph->SetPlotSize(220,300);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_MIDHOR,BGRAD_PLOT);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-$graph->title->Set('Polar plot #7-2');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('yellow@0.6');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7.php b/nightly-test-server/jpgraph/Examples/polarex7.php
deleted file mode 100644
index 735aa8f..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('lin',300);
-$graph->SetType(POLAR_180);
-$graph->SetPlotSize(220,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_HOR,BGRAD_PLOT);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #7');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex8.php b/nightly-test-server/jpgraph/Examples/polarex8.php
deleted file mode 100644
index 84b1167..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex8.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(350,400);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-//$graph->SetPlotSize(250,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Set plotarea color
-$graph->SetColor('lightblue');
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.8','lightblue:0.8','lightblue:0.8');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #8');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('white@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex9.php b/nightly-test-server/jpgraph/Examples/polarex9.php
deleted file mode 100644
index 206413c..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex9.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(350,320);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.9','lightblue:0.9','lightblue:0.9');
-
-// Set label and axis colors
-$graph->axis->SetColor('black','navy','darkred');
-
-// Draw the ticks on the bottom side of the radius axis
-$graph->axis->SetTickSide(SIDE_DOWN);
-
-// Increase the margin for the labels since we changed the
-// side of the ticks.
-$graph->axis->SetLabelMargin(6);
-
-// Change fonts
-$graph->axis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->axis->SetAngleFont(FF_ARIAL,FS_NORMAL,8);
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup graph title
-$graph->title->Set('Polar plot #9');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Setup tab title
-$graph->tabtitle->Set('Microphone #1');
-$graph->tabtitle->SetColor('brown:0.5','lightyellow');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pushpinex1.php b/nightly-test-server/jpgraph/Examples/pushpinex1.php
deleted file mode 100644
index 3102d30..0000000
--- a/nightly-test-server/jpgraph/Examples/pushpinex1.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-DEFINE('WORLDMAP','worldmap1.jpg');
-
-function markCallback($y,$x) {
-    // Return array width
-    // width,color,fill color, marker filename, imgscale
-    // any value can be false, in that case the default value will
-    // be used.
-    // We only make one pushpin another color
-    if( $x == 54 ) 
-	return array(false,false,false,'red',0.8);
-    else
-	return array(false,false,false,'green',0.8);
-}
-
-// Data arrays
-$datax = array(10,20,30,40,54,60,70,80);
-$datay = array(12,23,65,18,84,28,86,44);
-
-// Setup the graph
-$graph = new Graph(400,270);
-
-// We add a small 1pixel left,right,bottom margin so the plot area
-// doesn't cover the frame around the graph.
-$graph->img->SetMargin(1,1,1,1);
-$graph->SetScale('linlin',0,100,0,100);
-
-// We don't want any axis to be shown
-$graph->xaxis->Hide();
-$graph->yaxis->Hide();
-
-// Use a worldmap as the background and let it fill the plot area
-$graph->SetBackgroundImage(WORLDMAP,BGIMG_FILLPLOT);
-
-// Setup a nice title with a striped bevel background
-$graph->title->Set("Pushpin graph");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('white');
-$graph->SetTitleBackground('darkgreen',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'blue','darkgreen');
-
-// Finally create the scatterplot
-$sp = new ScatterPlot($datay,$datax);
-
-// We want the markers to be an image
-$sp->mark->SetType(MARK_IMG_PUSHPIN,'blue',0.6);
-
-// Install the Y-X callback for the markers
-$sp->mark->SetCallbackYX('markCallback');
-
-// ...  and add it to the graph
-$graph->Add($sp);    
-
-// .. and output to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pushpinex2.php b/nightly-test-server/jpgraph/Examples/pushpinex2.php
deleted file mode 100644
index 58c9773..0000000
--- a/nightly-test-server/jpgraph/Examples/pushpinex2.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-DEFINE('WORLDMAP','worldmap1.jpg');
-
-function markCallback($y,$x) {
-    // Return array width
-    // width,color,fill color, marker filename, imgscale
-    // any value can be false, in that case the default value will
-    // be used.
-    // We only make one pushpin another color
-    if( $x == 54 ) 
-	return array(false,false,false,'red',0.8);
-    else
-	return array(false,false,false,'green',0.8);
-}
-
-// Data arrays
-$datax = array(10,20,30,40,54,60,70,80);
-$datay = array(12,23,65,18,84,28,86,44);
-
-// Setup the graph
-$graph = new Graph(400,270);
-
-// We add a small 1pixel left,right,bottom margin so the plot area
-// doesn't cover the frame around the graph.
-$graph->img->SetMargin(1,1,1,1);
-$graph->SetScale('linlin',0,100,0,100);
-
-// We don't want any axis to be shown
-$graph->xaxis->Hide();
-$graph->yaxis->Hide();
-
-// Use a worldmap as the background and let it fill the plot area
-$graph->SetBackgroundImage(WORLDMAP,BGIMG_FILLPLOT);
-
-// Setup a nice title with a striped bevel background
-$graph->title->Set("Pushpin graph");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('white');
-$graph->SetTitleBackground('darkgreen',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'blue','darkgreen');
-
-// Finally create the lineplot
-$lp = new LinePlot($datay,$datax);
-$lp->SetColor('lightgray');
-
-// We want the markers to be an image
-$lp->mark->SetType(MARK_IMG_PUSHPIN,'blue',0.6);
-
-// Install the Y-X callback for the markers
-$lp->mark->SetCallbackYX('markCallback');
-
-// ...  and add it to the graph
-$graph->Add($lp);    
-
-// .. and output to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/radarex1.php b/nightly-test-server/jpgraph/Examples/radarex1.php
deleted file mode 100644
index e300697..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex1.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-$plot = new RadarPlot($data);
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex2.php b/nightly-test-server/jpgraph/Examples/radarex2.php
deleted file mode 100644
index 18ddb0c..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex2.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(300,200,"auto");
-
-$graph->title->Set('Weekly goals');
-$graph->subtitle->Set('Year 2003');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightred');
-$graph->SetSize(0.6);
-$graph->SetPos(0.5,0.6);
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex3.php b/nightly-test-server/jpgraph/Examples/radarex3.php
deleted file mode 100644
index a61e394..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex3.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex4.php b/nightly-test-server/jpgraph/Examples/radarex4.php
deleted file mode 100644
index c285e10..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex5.php b/nightly-test-server/jpgraph/Examples/radarex5.php
deleted file mode 100644
index 901db85..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex5.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex6.1.php b/nightly-test-server/jpgraph/Examples/radarex6.1.php
deleted file mode 100644
index f6ca02b..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex6.1.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-$data2 = array(15,50,46,39,25);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Add a drop shadow to the graph
-$graph->SetShadow();
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-$graph->SetColor('lightyellow');
-
-// ADjust the position to make more room
-// for the legend
-$graph->SetCenter(0.4,0.55);
-$graph->SetSize(0.6);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-$plot->SetLegend("QA results");
-
-$plot2 = new RadarPlot($data2);
-$plot2->SetLegend("Target");
-$plot2->SetColor('red');
-$plot2->SetFill(false);
-$plot2->SetLineWeight(2);
-
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Add($plot2);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex6.php b/nightly-test-server/jpgraph/Examples/radarex6.php
deleted file mode 100644
index 8b71761..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex6.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Add a drop shadow to the graph
-$graph->SetShadow();
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-$graph->SetColor('lightyellow');
-
-// ADjust the position to make more room
-// for the legend
-$graph->SetCenter(0.4,0.5);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-$plot->SetLegend("QA results");
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex7.php b/nightly-test-server/jpgraph/Examples/radarex7.php
deleted file mode 100644
index 5340f25..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex7.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic rtadar graph
-$graph = new RadarGraph(300,200,"auto");
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-$graph->axis->SetWeight(2);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("longdashed");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles(array("One","Two","Three","Four","Five","Sex","Seven","Eight","Nine","Ten"));
-// Create the first radar plot		
-$plot = new RadarPlot(array(30,80,60,40,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetColor("blue","lightred");
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex8.1.php b/nightly-test-server/jpgraph/Examples/radarex8.1.php
deleted file mode 100644
index 4d85dd2..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex8.1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic radar graph
-$graph = new RadarGraph(300,200,"auto");
-$graph->img->SetAntiAliasing();
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("solid");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->SetTitles($gDateLocale->GetShortMonth());
-
-// Create the first radar plot		
-$plot = new RadarPlot(array(70,80,60,90,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetLineWeight(2);
-$plot2->SetColor("blue");
-$plot2->SetFill(false);
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex8.php b/nightly-test-server/jpgraph/Examples/radarex8.php
deleted file mode 100644
index 0e7a2a1..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex8.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic radar graph
-$graph = new RadarGraph(300,200,"auto");
-//$graph->img->SetAntiAliasing();
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("solid");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles($gDateLocale->GetShortMonth());
-
-// Create the first radar plot		
-$plot = new RadarPlot(array(70,80,60,90,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetLineWeight(2);
-$plot2->SetColor("blue");
-$plot2->SetFill(false);
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex9.php b/nightly-test-server/jpgraph/Examples/radarex9.php
deleted file mode 100644
index 14f97c2..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex9.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-include ("../jpgraph.php"); 
-include ("../jpgraph_radar.php");
-
-$titles=array("N", '', "NW", '', "W", '', "SW", '', 'S', '', "SE", '', "E", '', "NE", '');
-$data=array(0, 0, 8, 10, 70, 90, 42, 0, 70, 60, 50, 40, 30, 40, 37.8, 72);
-
-$graph = new RadarGraph (250,270,"auto"); 
-
-$graph->title->Set("Accumulated PPM");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-$graph->subtitle->Set("(according to direction)");
-$graph->subtitle->SetFont(FF_VERDANA,FS_ITALIC,10);
-
-
-$graph->SetTitles($titles);
-$graph->SetCenter(0.5,0.55);
-$graph->HideTickMarks(); 
-$graph->SetColor('lightyellow');
-$graph->axis->SetColor('darkgray@0.3'); 
-$graph->grid->SetColor('darkgray@0.3');
-$graph->grid->Show();
-
-$graph->SetGridDepth(DEPTH_BACK);
-
-$plot = new RadarPlot($data);
-$plot->SetColor('red@0.2');
-$plot->SetLineWeight(1);
-$plot->SetFillColor('red@0.7');
-$graph->Add($plot);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/radarlogex1.php b/nightly-test-server/jpgraph/Examples/radarlogex1.php
deleted file mode 100644
index 390c2fb..0000000
--- a/nightly-test-server/jpgraph/Examples/radarlogex1.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_radar.php");
-
-// Some data to plot
-$data = array(242,58,1500,12,1397,810,373);
-$data2 = array(447,176,1472,191,1616,42,46);
-
-// Create the graph
-$graph = new RadarGraph(300,300,"auto");
-
-// Uncomment the following line to use anti-aliasing 
-// Note: Enabling this results in a very noticable slow
-// down of the image generation! And more load on your
-// server. Use it wisly!!
-$graph->img->SetAntiAliasing();
-
-// Make the spider graph fill out it's bounding box
-$graph->SetPlotSize(0.85);
-
-// Use logarithmic scale (If you don't use any SetScale()
-// the spider graph will default to linear scale
-$graph->SetScale("log");
-
-// Uncomment the following line if you want to supress
-// minor tick marks
-//$graph->yscale->ticks->SupressMinorTickMarks();
-
-// We want the major tick marks to be black and minor
-// slightly less noticable
-$graph->yscale->ticks->SetMarkColor("black","darkgray");
-
-// Set the axis title font 
-$graph->axis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Use blue axis
-$graph->axis->SetColor("blue");
-
-$plot = new RadarPlot($data);
-$plot->SetLineWeight(1);
-$plot->SetColor('forestgreen');
-
-$plot2 = new RadarPlot($data2);
-$plot2->SetLineWeight(2);
-$plot2->SetColor('red');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Add($plot2);
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/radarlogex2.php b/nightly-test-server/jpgraph/Examples/radarlogex2.php
deleted file mode 100644
index 3198f42..0000000
--- a/nightly-test-server/jpgraph/Examples/radarlogex2.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_radar.php");
-
-// Some data to plot
-$data = array(242,58,500,12,397,810,373);
-
-// Create the graph
-$graph = new RadarGraph(200,200,"auto");
-
-// Uncomment the following line to use anti-aliasing 
-// Note: Enabling this results in a very noticable slow
-// down of the image generation! And more load on your
-// server. Use it wisly!!
-$graph->img->SetAntiAliasing();
-
-// Make the spider graph fill out it's bounding box
-$graph->SetPlotSize(0.85);
-
-// Use logarithmic scale (If you don't use any SetScale()
-// the spider graph will default to linear scale
-$graph->SetScale("log");
-
-// Uncomment the following line if you want to supress
-// minor tick marks
-// $graph->yscale->ticks->SupressMinorTickMarks();
-
-// We want the major tick marks to be black and minor
-// slightly less noticable
-$graph->yscale->ticks->SetMarkColor("black","darkgray");
-
-// Set the axis title font 
-$graph->axis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Use blue axis
-$graph->axis->SetColor("blue");
-
-$plot = new RadarPlot($data);
-$plot->SetLineWeight(2);
-$plot->SetColor('forestgreen');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/radarmarkex1.php b/nightly-test-server/jpgraph/Examples/radarmarkex1.php
deleted file mode 100644
index af4cba5..0000000
--- a/nightly-test-server/jpgraph/Examples/radarmarkex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php"); 
-include ("../jpgraph_radar.php");
-
-$titles=array('Planning','Quality','Time','RR','CR','DR');
-$data=array(18, 40, 70, 90, 42,66);
-
-$graph = new RadarGraph (300,280,"auto"); 
-
-$graph->title->Set("Radar with marks");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-$graph->SetTitles($titles);
-$graph->SetCenter(0.5,0.55);
-$graph->HideTickMarks(); 
-$graph->SetColor('lightgreen@0.7');
-$graph->axis->SetColor('darkgray'); 
-$graph->grid->SetColor('darkgray');
-$graph->grid->Show();
-
-$graph->axis->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$graph->axis->title->SetMargin(5);
-$graph->SetGridDepth(DEPTH_BACK);
-$graph->SetSize(0.6);
-
-$plot = new RadarPlot($data);
-$plot->SetColor('red@0.2');
-$plot->SetLineWeight(1);
-$plot->SetFillColor('red@0.7');
-
-$plot->mark->SetType(MARK_IMG_SBALL,'red');
-
-$graph->Add($plot);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/rotateex1.php b/nightly-test-server/jpgraph/Examples/rotateex1.php
deleted file mode 100644
index 5bfc823..0000000
--- a/nightly-test-server/jpgraph/Examples/rotateex1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-$graph = new Graph(350,300,"auto");	
-$graph->SetAngle(40);
-$graph->img->SetMargin(80,80,80,80);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 1 rotated graph (40 degree)");
-$graph->legend->Pos(0.05,0.1,"right","top");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/rotex0.php b/nightly-test-server/jpgraph/Examples/rotex0.php
deleted file mode 100644
index fe990e0..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex0.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex1.php b/nightly-test-server/jpgraph/Examples/rotex1.php
deleted file mode 100644
index 455e35d..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex1.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(45);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex2.php b/nightly-test-server/jpgraph/Examples/rotex2.php
deleted file mode 100644
index 2e3a330..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(90);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex3.php b/nightly-test-server/jpgraph/Examples/rotex3.php
deleted file mode 100644
index 2f05091..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex3.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(45);
-$graph->img->SetCenter(floor(270/2),floor(170/2));
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex4.php b/nightly-test-server/jpgraph/Examples/rotex4.php
deleted file mode 100644
index eeb2d97..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(90);
-$graph->img->SetCenter(floor(270/2),floor(170/2));
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex5.php b/nightly-test-server/jpgraph/Examples/rotex5.php
deleted file mode 100644
index c61dcea..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex5.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(-30);
-$graph->img->SetCenter(30,170-30);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/saab_95.jpg b/nightly-test-server/jpgraph/Examples/saab_95.jpg
deleted file mode 100644
index 189b0d4..0000000
--- a/nightly-test-server/jpgraph/Examples/saab_95.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/scatter_csimex1.php b/nightly-test-server/jpgraph/Examples/scatter_csimex1.php
deleted file mode 100644
index 572e8c8..0000000
--- a/nightly-test-server/jpgraph/Examples/scatter_csimex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_scatter.php");
-
-// Some data for the points
-$datax = array(3.5,13.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(10,22,12,13,17,20,16,19,30,31,40,43);
-
-// A new scatter graph
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-$graph->SetScale("linlin");
-
-//$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Scatter plot with Image Map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Client side image map targets
-$targ=array("pie_csimex1.php#1","pie_csimex1.php#2","pie_csimex1.php#3",
-"pie_csimex1.php#4","pie_csimex1.php#5","pie_csimex1.php#6",
-"pie_csimex1.php#7","pie_csimex1.php#8","pie_csimex1.php#9" );
-
-// Strings to put as "alts" (and "title" value)
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-
-// Create a new scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-
-// Use diamonds as markerss
-$sp1->mark->SetType(MARK_DIAMOND);
-$sp1->mark->SetWidth(10);
-
-// Set the scatter plot image map targets
-$sp1->SetCSIMTargets($targ,$alts);
-
-// Add the plot
-$graph->Add($sp1);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('scatter_csimex1.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterex1.php b/nightly-test-server/jpgraph/Examples/scatterex1.php
deleted file mode 100644
index ed47006..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterex1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A simple scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterex2.php b/nightly-test-server/jpgraph/Examples/scatterex2.php
deleted file mode 100644
index c68414c..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterex2.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A simple scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(8);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex1.php b/nightly-test-server/jpgraph/Examples/scatterlinkex1.php
deleted file mode 100644
index 4ad155b..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex1.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->title->Set("Linked Scatter plot ex1");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->SetLinkPoints(true,"red",2);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("navy");
-$sp1->mark->SetWidth(3);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex2.php b/nightly-test-server/jpgraph/Examples/scatterlinkex2.php
deleted file mode 100644
index 98615a0..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex2.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->SetShadow();
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex3.php b/nightly-test-server/jpgraph/Examples/scatterlinkex3.php
deleted file mode 100644
index 1909a93..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex3.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-$graph = new Graph(350,230,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXOUT Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex4.php b/nightly-test-server/jpgraph/Examples/scatterlinkex4.php
deleted file mode 100644
index 1c90712..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex4.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-$graph = new Graph(350,230,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->SetAxisStyle(AXSTYLE_BOXIN);
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXIN Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterrotex1.php b/nightly-test-server/jpgraph/Examples/scatterrotex1.php
deleted file mode 100644
index 9061e21..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterrotex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->Set90AndMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A 90 degrees rotated scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Adjust the label align for X-axis so they look good rotated
-$graph->xaxis->SetLabelAlign('right','center','right');
-
-// Adjust the label align for Y-axis so they look good rotated
-$graph->yaxis->SetLabelAlign('center','bottom');
-
-$graph->xaxis->SetTitle('X-Axis title','low');
-$graph->xaxis->title->SetAngle(90);
-$graph->xaxis->title->SetMargin(15);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(5);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/show-example.php b/nightly-test-server/jpgraph/Examples/show-example.php
deleted file mode 100644
index 0907ce4..0000000
--- a/nightly-test-server/jpgraph/Examples/show-example.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php $target = urldecode($HTTP_GET_VARS['target']); ?>
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN">
-<html>
-<head>
-<title> Test suite for JpGraph - <?php echo $target; ?></title>
-<script type="text/javascript" language="javascript">
-<!--
-function resize()
-{
-	return true;
-}
-//-->
-</script>
-</head>
-<frameset rows="*,*" onLoad="resize()">
-	<?php 
-	if( !strstr($target,"csim") )
-		echo "<frame src=\"show-image.php?target=".basename($target)."\" name=\"image\">";
-	else
-		echo	"<frame src=\"".basename($target)."\" name=\"image\">";
-	?>
-	<frame src="show-source.php?target=<?php echo basename($target); ?>" name="source">
-</frameset>
-</html>
diff --git a/nightly-test-server/jpgraph/Examples/show-image.php b/nightly-test-server/jpgraph/Examples/show-image.php
deleted file mode 100644
index 95766ae..0000000
--- a/nightly-test-server/jpgraph/Examples/show-image.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php $target =  urldecode($HTTP_GET_VARS['target']); ?>
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title> Image <?php echo basename($target); ?></title>
-</head>
-<body>
-<img src="<?php echo basename($target); ?>" border=0 alt="<?php echo basename($target); ?>" align="left">
-</body>
-</html>
diff --git a/nightly-test-server/jpgraph/Examples/show-source.php b/nightly-test-server/jpgraph/Examples/show-source.php
deleted file mode 100644
index 7c3c232..0000000
--- a/nightly-test-server/jpgraph/Examples/show-source.php
+++ /dev/null
@@ -1 +0,0 @@
-<?php highlight_file(basename(urldecode($HTTP_GET_VARS['target']))); ?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php
deleted file mode 100644
index e1434d2..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_RDIAG,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_RDIAG');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php
deleted file mode 100644
index 86b79b5..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_DIAGCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_DIAGCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php
deleted file mode 100644
index 86b79b5..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_DIAGCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_DIAGCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php
deleted file mode 100644
index 9417a1b..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_LDIAG,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_LDIAG');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php
deleted file mode 100644
index 8af0b7c..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_SOLID,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_SOLID');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php
deleted file mode 100644
index 2fb8cb0..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_3DPLANE,15,35,'khaki4');
-$band->SetDensity(60);
-$band->ShowFrame(true);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_3DPLANE, Density=60');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php
deleted file mode 100644
index 8ce3432..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HVCROSS,15,35,'khaki4');
-$band->ShowFrame(true);
-$band->SetOrder(DEPTH_FRONT);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HVCROSS, In front');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php
deleted file mode 100644
index 15d12aa..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_VLINE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_VLINE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php
deleted file mode 100644
index 3923458..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HLINE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HLINE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php
deleted file mode 100644
index 71fca24..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_3DPLANE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_3DPLANE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php
deleted file mode 100644
index 53213f4..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HVCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HVCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/splineex1.php b/nightly-test-server/jpgraph/Examples/splineex1.php
deleted file mode 100644
index 4130b79..0000000
--- a/nightly-test-server/jpgraph/Examples/splineex1.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-include "../jpgraph.php";
-include "../jpgraph_line.php";
-include "../jpgraph_scatter.php";
-include "../jpgraph_regstat.php";
-
-// Original data points
-$xdata = array(1,3,5,7,9,12,15,17.1);
-$ydata = array(5,1,9,6,4,3,19,12);
-
-// Get the interpolated values by creating
-// a new Spline object.
-$spline = new Spline($xdata,$ydata);
-
-// For the new data set we want 40 points to
-// get a smooth curve.
-list($newx,$newy) = $spline->Get(50);
-
-// Create the graph
-$g = new Graph(300,200);
-$g->SetMargin(30,20,40,30);
-$g->title->Set("Natural cubic splines");
-$g->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$g->subtitle->Set('(Control points shown in red)');
-$g->subtitle->SetColor('darkred');
-$g->SetMarginColor('lightblue');
-
-//$g->img->SetAntiAliasing();
-
-// We need a linlin scale since we provide both
-// x and y coordinates for the data points.
-$g->SetScale('linlin');
-
-// We want 1 decimal for the X-label
-$g->xaxis->SetLabelFormat('%1.1f');
-
-// We use a scatterplot to illustrate the original
-// contro points.
-$splot = new ScatterPlot($ydata,$xdata);
-
-// 
-$splot->mark->SetFillColor('red@0.3');
-$splot->mark->SetColor('red@0.5');
-
-// And a line plot to stroke the smooth curve we got
-// from the original control points
-$lplot = new LinePlot($newy,$newx);
-$lplot->SetColor('navy');
-
-// Add the plots to the graph and stroke
-$g->Add($lplot);
-$g->Add($splot);
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex1.php b/nightly-test-server/jpgraph/Examples/staticbandbarex1.php
deleted file mode 100644
index 6d3c7be..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$graph->AddBand(new PlotBand(HORIZONTAL,BAND_HLINE,0,10));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex2.php b/nightly-test-server/jpgraph/Examples/staticbandbarex2.php
deleted file mode 100644
index 7364ae1..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex2.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$graph->AddBand(new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","red",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex3.php b/nightly-test-server/jpgraph/Examples/staticbandbarex3.php
deleted file mode 100644
index 2832f35..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex3.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$uband=new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","green");
-$uband->ShowFrame(false);
-$lband=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",0,"red");
-$lband->ShowFrame(false);
-
-$graph->AddBand($uband);
-$graph->AddBand($lband);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex4.php b/nightly-test-server/jpgraph/Examples/staticbandbarex4.php
deleted file mode 100644
index abf5fa5..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex4.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$uband=new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","green");
-$uband->ShowFrame(false);
-$uband->SetDensity(50); // 50% line density
-$lband=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",0,"red");
-$lband->ShowFrame(false);
-$lband->SetDensity(20); // 20% line density
-
-$graph->AddBand($uband);
-$graph->AddBand($lband);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex5.php b/nightly-test-server/jpgraph/Examples/staticbandbarex5.php
deleted file mode 100644
index 85d2eef..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex5.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_RDIAG,10,20,"green");
-$band[0]->ShowFrame(false);
-$band[0]->SetDensity(30);
-$band[1]=new PlotBand(HORIZONTAL,BAND_LDIAG,-20,-10,"red");
-$band[1]->ShowFrame(false);
-$band[1]->SetDensity(40);
-$band[2]=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",-20,"red");
-$band[2]->ShowFrame(false);
-$band[2]->SetDensity(80);
-
-// We can also add band in an array
-$graph->AddBand($band);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex6.php b/nightly-test-server/jpgraph/Examples/staticbandbarex6.php
deleted file mode 100644
index 8c618b3..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex6.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("Shows some possible patterns for bands");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_RDIAG,10,20,"green");
-$band[0]->ShowFrame(false);
-$band[1]=new PlotBand(HORIZONTAL,BAND_LDIAG,-20,-10,"red");
-$band[1]->ShowFrame(false);
-$band[1]->SetDensity(20);
-$band[2]=new PlotBand(HORIZONTAL,BAND_DIAGCROSS,"min",-20,"red");
-$band[2]->ShowFrame(false);
-$band[2]->SetDensity(40);
-$band[3]=new PlotBand(VERTICAL,BAND_HLINE,0,1,"darkgray");
-$band[3]->ShowFrame(false);
-$band[3]->SetOrder(DEPTH_FRONT);
-$band[4]=new PlotBand(VERTICAL,BAND_HVCROSS,5,"max","darkgray");
-$band[4]->ShowFrame(false);
-$band[4]->SetOrder(DEPTH_FRONT);
-$band[5]=new PlotBand(HORIZONTAL,BAND_SOLID,20,"max","lightgreen");
-$band[6]=new PlotBand(HORIZONTAL,BAND_3DPLANE,-10,0,"blue");
-$band[6]->SetDensity(70);
-$graph->AddBand($band);
-
-$graph->AddLine(new PlotLine(HORIZONTAL,0,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex7.php b/nightly-test-server/jpgraph/Examples/staticbandbarex7.php
deleted file mode 100644
index 87eb20b..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex7.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,5,19,22,17,6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("Use of static line, 3D and solid band");
-
-// Turn off Y-grid (it's on by default)
-$graph->ygrid->Show(false);
-
-// Add 10% grace ("space") at top of Y-scale. 
-$graph->yscale->SetGrace(10);
-$graph->yscale->SetAutoMin(-20);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow("darkblue");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_3DPLANE,"min",0,"blue");
-$band[0]->ShowFrame(false);
-$band[0]->SetDensity(20);
-$band[1]=new PlotBand(HORIZONTAL,BAND_SOLID,0,"max","steelblue");
-$band[1]->ShowFrame(false);
-$graph->Add($band);
-
-$graph->Add(new PlotLine(HORIZONTAL,0,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticlinebarex1.php b/nightly-test-server/jpgraph/Examples/staticlinebarex1.php
deleted file mode 100644
index 67a9829..0000000
--- a/nightly-test-server/jpgraph/Examples/staticlinebarex1.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show();
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add mark graph with static lines
-$graph->AddLine(new PlotLine(HORIZONTAL,0,"black",2));
-$graph->AddLine(new PlotLine(VERTICAL,3,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stockex1.php b/nightly-test-server/jpgraph/Examples/stockex1.php
deleted file mode 100644
index 78dfcfb..0000000
--- a/nightly-test-server/jpgraph/Examples/stockex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max
-$datay = array(
-    34,42,27,45,
-    55,25,14,59,
-    15,40,12,47,
-    62,38,25,65,
-    38,49,32,64);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Stockchart example');
-
-// Create a new stock plot
-$p1 = new StockPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stockex2.php b/nightly-test-server/jpgraph/Examples/stockex2.php
deleted file mode 100644
index 41304b6..0000000
--- a/nightly-test-server/jpgraph/Examples/stockex2.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-
-$datay = array(
-    34,42,27,45,
-    55,25,12,59,
-    38,49,32,64,
-    34,40,29,42,
-    40,29,22,45 );
-
-// Setup basic graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('white');
-$graph->SetFrame(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->SetBox();
-
-$graph->tabtitle->Set(' Week 34 ');
-$graph->tabtitle->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-// Get week days in curent locale
-$days = $gDateLocale->GetShortDay();
-array_shift($days); // Start on monday
-$graph->xaxis->SetTickLabels($days);
-
-// Create stock plot
-$p1 = new StockPlot($datay);
-
-// Indent plot so first and last bar isn't on the edges
-$p1->SetCenter();
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stship.jpg b/nightly-test-server/jpgraph/Examples/stship.jpg
deleted file mode 100644
index 7f3bae6..0000000
--- a/nightly-test-server/jpgraph/Examples/stship.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tabtitleex1.php b/nightly-test-server/jpgraph/Examples/tabtitleex1.php
deleted file mode 100644
index babf212..0000000
--- a/nightly-test-server/jpgraph/Examples/tabtitleex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(20,15,23,15);
-$datay2 = array(12,9,42,8);
-$datay3 = array(5,17,32,24);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,50,30,30);
-
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-
-
-$graph->yaxis->HideZeroLabel();
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-$p1->SetLegend('Line 1');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("red");
-$p2->SetLegend('Line 2');
-$graph->Add($p2);
-
-// Create the third line
-$p3 = new LinePlot($datay3);
-$p3->SetColor("orange");
-$p3->SetLegend('Line 3');
-$graph->Add($p3);
-
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.1,0.1,'right','top');
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/testsuit.php b/nightly-test-server/jpgraph/Examples/testsuit.php
deleted file mode 100644
index 00319e7..0000000
--- a/nightly-test-server/jpgraph/Examples/testsuit.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-//=======================================================================
-// File:	TESTSUIT.PHP
-// Description:	Run all the example script in current directory
-// Created: 	2002-07-11
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// License:	This code is released under QPL 1.0 
-// Copyright (C) 2001,2002 Johan Persson 
-//========================================================================
-
-//-------------------------------------------------------------------------
-//
-// Usage: testsuit.php[?type=1]    Generates all non image map scripts
-//        testsuit.php?type=2      Generates client side image map scripts 
-//       
-//-------------------------------------------------------------------------
-class TestDriver {
-    
-    var $iType;
-    var $iDir;
-
-    function TestDriver($aType=1,$aDir='') {
-	$this->iType = $aType;
-	if( $aDir == '' ) {
-	    $aDir = getcwd();
-	}
-	if( !chdir($aDir) ) {
-	    die("PANIC: Can't access directory : $aDir");
-	}
-	$this->iDir = $aDir;
-    }
-
-    function GetFiles() {
-	$d = dir($this->iDir);
-	$a = array();
-	while( $entry=$d->Read() ) {
-	    if( strstr($entry,".php") && strstr($entry,"x") && !strstr($entry,"show") && !strstr($entry,"csim") ) {
-		$a[] = $entry;
-	    }
-	}
-	$d->Close();
-	if( count($a) == 0 ) {
-	    die("PANIC: Apache/PHP does not have enough permission to read the scripts in directory: $this->iDir");	    
-	}
-	sort($a);
-	return $a;
-    }
-
-    function GetCSIMFiles() {
-	$d = dir($this->iDir);
-	$a = array();
-	while( $entry=$d->Read() ) {
-	    if( strstr($entry,".php") && strstr($entry,"csim") ) {
-		$a[] = $entry;
-	    }
-	}
-	$d->Close();
-	if( count($a) == 0 ) {
-	    die("PANIC: Apache/PHP does not have enough permission to read the CSIM scripts in directory: $this->iDir");	    
-	}
-	sort($a);
-	return $a;
-    }
-
-    
-    function Run() {
-	switch( $this->iType ) {
-	    case 1:
-		$files = $this->GetFiles();
-		break;
-	    case 2:
-		$files = $this->GetCSIMFiles();
-		break;
-	    default:
-		die('Panic: Unknown type of test');
-		break;
-	}
-	$n = count($files);
-	echo "<h2>Visual test suit for JpGraph</h2>";
-	echo "Testtype: " . ($this->iType==1 ? ' Standard images ':' Image map tests ');
-	echo "<br>Number of tests: $n<p>";
-	echo "<ol>";
-	
-	for( $i=0; $i<$n; ++$i ) {
-	    if( $this->iType ==1 ) {
-	    echo '<li><a href="show-example.php?target='.urlencode($files[$i]).'"><img src="'.$files[$i].'" border=0 align=top></a><br><strong>Filename:</strong> <i>'.basename($files[$i])."</i>\n";
-	    }
-	    else {
-		echo '<li><a href="show-example.php?target='.urlencode($files[$i]).'">'.$files[$i]."</a>\n";
-	    }
-	}
-	echo "</ol>";
-
-	echo "<p>Done.</p>";
-    }
-}
-
-$type=@$HTTP_GET_VARS['t'];
-if( empty($type) ) {
-    $type=1;
-}
-
-$driver = new TestDriver($type);
-$driver->Run();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/text-example1.php b/nightly-test-server/jpgraph/Examples/text-example1.php
deleted file mode 100644
index a8ac965..0000000
--- a/nightly-test-server/jpgraph/Examples/text-example1.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_canvas.php");
-
-// Create the graph. 
-$graph = new CanvasGraph(350,200,"auto");	
-
-$t1 = new Text("This is a text with more text");
-$t1->Pos(0.05,0.5);
-$t1->SetOrientation("h");
-$t1->SetFont(FF_FONT1,FS_NORMAL);
-$t1->SetBox("white","black",'gray');
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/text-example2.php b/nightly-test-server/jpgraph/Examples/text-example2.php
deleted file mode 100644
index 4bfa961..0000000
--- a/nightly-test-server/jpgraph/Examples/text-example2.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_canvas.php");
-
-// Create the graph. 
-$graph = new CanvasGraph(350,200,"auto");	
-
-$t1 = new Text("a good\nas you can see right now per see\nThis is a text with\nseveral lines\n");
-$t1->Pos(0.05,100);
-$t1->SetFont(FF_FONT1,FS_NORMAL);
-$t1->SetBox("white","black",true);
-$t1->ParagraphAlign("right");
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/textalignex1.php b/nightly-test-server/jpgraph/Examples/textalignex1.php
deleted file mode 100644
index 4a866c3..0000000
--- a/nightly-test-server/jpgraph/Examples/textalignex1.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-// $Id$
-require_once "../jpgraph.php";
-require_once "../jpgraph_canvas.php";
-
-if( empty($_GET['a']) ) {
-    $angle=40;
-}
-else {
-    $angle=$_GET['a'];
-}
-
-$caption = "Demonstration of different anchor points for texts as specified with\nTextAlign(). The red cross marks the coordinate that was given to\nstroke each instance of the string.\n(The green box is the bounding rectangle for the text.)";
-$txt="TextAlign()";
-
-
-// Initial width and height since we need a "dummy" canvas to
-// calculate the height of the text strings
-$w=480;$h=50;
-$xm=90;$ym=80;
-
-$g = new CanvasGraph($w,$h);
-
-$aImg = $g->img;
-$aImg->SetFont(FF_ARIAL,FS_NORMAL,16);
-$tw=$aImg->GetBBoxWidth($txt,$angle);
-$th=$aImg->GetBBoxHeight($txt,$angle);
-
-$aImg->SetFont(FF_ARIAL,FS_NORMAL,11);
-$ch=$aImg->GetBBoxHeight($caption);
-
-// Calculate needed height for the image
-$h = 3*$th+2*$ym + $ch;
-$g = new CanvasGraph($w,$h);
-$aImg = $g->img;
-
-$prof = array('left','top',
-	      'center','top',
-	      'right','top',
-	      'left','center',
-	      'center','center',
-	      'right','center',
-	      'left','bottom',
-	      'center','bottom',
-	      'right','bottom');
-$n = count($prof)/2;
-
-for( $i=0,$r=0,$c=0; $i < $n; ++$i ) {
-    $x = $c*($tw+$xm)+$xm/2;
-    $y = $r*($th+$ym)+$ym/2-10;
-    $aImg->SetColor('blue');
-    $aImg->SetTextAlign($prof[$i*2],$prof[$i*2+1]);			
-    $aImg->SetFont(FF_ARIAL,FS_NORMAL,16);
-    $aImg->StrokeText($x,$y,$txt,$angle,"left",true);
-
-    $aImg->SetColor('black');
-    $aImg->SetFont(FF_FONT1,FS_BOLD);
-    $aImg->SetTextAlign('center','top');			
-    $align = sprintf('("%s","%s")',$prof[$i*2],$prof[$i*2+1]);
-    $aImg->StrokeText($c*($tw/2+$xm)+$xm/2+$tw/2,$r*($th/2+$ym)+$th+$ym/2-4,$align);
-    $c++;
-    if( $c==3 ) {
-	$c=0;$r++;
-    }
-}
-
-$aImg->SetTextAlign('center','bottom');			
-$aImg->SetFont(FF_ARIAL,FS_ITALIC,11);
-$aImg->StrokeText($w/2,$h-10,$caption,0,'left');
-
-$aImg->SetColor('navy');
-$aImg->Rectangle(0,0,$w-1,$h-1);
-
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.gif b/nightly-test-server/jpgraph/Examples/tiger_bkg.gif
deleted file mode 100644
index 3faaa17..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.gif
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg b/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg
deleted file mode 100644
index 43d45f3..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.png b/nightly-test-server/jpgraph/Examples/tiger_bkg.png
deleted file mode 100644
index 78d8e25..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/timestampex01.php b/nightly-test-server/jpgraph/Examples/timestampex01.php
deleted file mode 100644
index 62142a9..0000000
--- a/nightly-test-server/jpgraph/Examples/timestampex01.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-// Example on how to treat and format timestamp as human readable labels
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-
-// Number of "fake" data points
-DEFINE('NDATAPOINTS',500);
-
-// Assume data points are sample every 10th second
-DEFINE('SAMPLERATE',10); 
-
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function TimeCallback($aVal) {
-    return Date('H:i', $aVal);
-}
-
-// Get start time
-$start = time();
-// Set the start time to be on the closest minute just before the "start" timestamp
-$adjstart = floor($start / 60);
-
-// Create a data set in range (20,100) and X-positions
-// We also apply a simple low pass filter on the data to make it less
-// random and a little smoother
-$data = array();
-$xdata = array();
-$data[0] = rand(20,100);
-$xdata[0] = $adjstart;
-for( $i=1; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(20,100)*0.2 + $data[$i-1]*0.8;
-    $xdata[$i] = $adjstart + $i * SAMPLERATE;
-}
-
-// Assume that the data points represents data that is sampled every 10s
-// when determing the end value on the scale. We also add some extra
-// length to end on an even label tick.
-$adjend = $adjstart  + (NDATAPOINTS+10)*10;
-
-$graph = new Graph(500,250);
-$graph->SetMargin(40,20,30,50);
-
-// Now specify the X-scale explicit but let the Y-scale be auto-scaled
-$graph->SetScale("intlin",0,0,$adjstart,$adjend);
-$graph->title->Set("Example on TimeStamp Callback");
-
-// Setup the callback and adjust the angle of the labels
-$graph->xaxis->SetLabelFormatCallback('TimeCallback');
-$graph->xaxis->SetLabelAngle(90);
-
-// Set the labels every 5min (i.e. 300seconds) and minor ticks every minute
-$graph->xaxis->scale->ticks->Set(300,60);
-
-$line = new LinePlot($data,$xdata);
-$line->SetColor('lightblue');
-$graph->Add($line);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/titlecsimex01.php b/nightly-test-server/jpgraph/Examples/titlecsimex01.php
deleted file mode 100644
index 613585b..0000000
--- a/nightly-test-server/jpgraph/Examples/titlecsimex01.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$datay=array(12,26,9,17,31);
-
-// Create the graph. 
-$graph = new Graph(400,250);
-$graph->SetScale("textlin");
-$graph->SetMargin(50,80,20,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->yaxis->scale->SetGrace(30);
-$graph->SetShadow();
-
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Create targets for the bars image maps. One for each column
-$targ=array("bar_clsmex1.php#1","bar_clsmex1.php#2","bar_clsmex1.php#3","bar_clsmex1.php#4","bar_clsmex1.php#5","bar_clsmex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend('Year 2001 %%','#kalle ','%s');
-
-// Display the values on top of each bar
-$bplot->SetShadow();
-$bplot->value->SetFormat(" $ %2.1f",70);
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->SetColor("blue");
-$bplot->value->Show();
-
-$graph->Add($bplot);
-
-// Create a big "button" that has an image map action
-$txt1 = new Text("A simple text with\ntwo rows");
-$txt1->SetFont(FF_ARIAL);
-$txt1->SetBox('lightblue','black','white@1',5);
-$txt1->SetParagraphAlign('center');
-$txt1->SetPos(40,50);
-$txt1->SetCSIMTarget('#88','Text element');
-$graph->Add($txt1);
-
-// Add image map to the graph title as well (you can do this to the 
-// sub- and subsub-title as well)
-$graph->title->Set("Image maps barex1");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetCSIMTarget('#45','Title for Bar');
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-// Setup the axis title image map and font style
-$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->yaxis->title->SetCSIMTarget('#55','Y-axis title');
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->SetCSIMTarget('#55','X-axis title');
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('titlecsimex01.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/topxaxisex1.php b/nightly-test-server/jpgraph/Examples/topxaxisex1.php
deleted file mode 100644
index 956fcbf..0000000
--- a/nightly-test-server/jpgraph/Examples/topxaxisex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(25,29,29,39,55);
-
-$graph = new Graph(400,200,'auto');
-$graph->img->SetMargin(40,40,40,20);
-
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->title->Set("Top X-axis");
-
-// Start at 0
-$graph->yscale->SetAutoMin(0);
-
-// Add some air around the Y-scale
-$graph->yscale->SetGrace(100);
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Adjust the X-axis
-$graph->xaxis->SetPos("max");
-$graph->xaxis->SetLabelSide(SIDE_UP);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Create the line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-
-// Specify marks for the line plots
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-
-// Show values
-$p1->value->Show();
-
-// Add lineplot to graph
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/worldmap1.jpg b/nightly-test-server/jpgraph/Examples/worldmap1.jpg
deleted file mode 100644
index caa7c14..0000000
--- a/nightly-test-server/jpgraph/Examples/worldmap1.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags.dat b/nightly-test-server/jpgraph/flags.dat
deleted file mode 100644
index d70d792..0000000
--- a/nightly-test-server/jpgraph/flags.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb100x100.dat b/nightly-test-server/jpgraph/flags_thumb100x100.dat
deleted file mode 100644
index f22a194..0000000
--- a/nightly-test-server/jpgraph/flags_thumb100x100.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb35x35.dat b/nightly-test-server/jpgraph/flags_thumb35x35.dat
deleted file mode 100644
index e14b9dd..0000000
--- a/nightly-test-server/jpgraph/flags_thumb35x35.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb60x60.dat b/nightly-test-server/jpgraph/flags_thumb60x60.dat
deleted file mode 100644
index 8ea1f6e..0000000
--- a/nightly-test-server/jpgraph/flags_thumb60x60.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/gd_image.inc.php b/nightly-test-server/jpgraph/gd_image.inc.php
deleted file mode 100644
index 421f34d..0000000
--- a/nightly-test-server/jpgraph/gd_image.inc.php
+++ /dev/null
@@ -1,2381 +0,0 @@
-<?php
-//=======================================================================
-// File:	GD_IMAGE.INC.PHP
-// Description:	GD Instance of Image class
-// Created: 	2006-05-06
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-// TTF Font families
-DEFINE("FF_COURIER",10);
-DEFINE("FF_VERDANA",11);
-DEFINE("FF_TIMES",12);
-DEFINE("FF_COMIC",14);
-DEFINE("FF_ARIAL",15);
-DEFINE("FF_GEORGIA",16);
-DEFINE("FF_TREBUCHE",17);
-
-// Gnome Vera font
-// Available from http://www.gnome.org/fonts/
-DEFINE("FF_VERA",19);
-DEFINE("FF_VERAMONO",20);
-DEFINE("FF_VERASERIF",21);
-
-// Chinese font
-DEFINE("FF_SIMSUN",30);
-DEFINE("FF_CHINESE",31);
-DEFINE("FF_BIG5",31);
-
-// Japanese font
-DEFINE("FF_MINCHO",40);
-DEFINE("FF_PMINCHO",41);
-DEFINE("FF_GOTHIC",42);
-DEFINE("FF_PGOTHIC",43);
-
-// Limits for TTF fonts
-DEFINE('_FF_FIRST',10);
-DEFINE('_FF_LAST',43);
-
-// Older deprecated fonts 
-DEFINE("FF_BOOK",91);    // Deprecated fonts from 1.9
-DEFINE("FF_HANDWRT",92); // Deprecated fonts from 1.9
-
-// TTF Font styles
-DEFINE("FS_NORMAL",9001);
-DEFINE("FS_BOLD",9002);
-DEFINE("FS_ITALIC",9003);
-DEFINE("FS_BOLDIT",9004);
-DEFINE("FS_BOLDITALIC",9004);
-
-//Definitions for internal font, new style
-DEFINE("FF_FONT0",1);
-DEFINE("FF_FONT1",2);
-DEFINE("FF_FONT2",4);
-
-
-//===================================================
-// CLASS RGB
-// Description: Color definitions as RGB triples
-//===================================================
-class RGB {
-    var $rgb_table;
-    var $img;
-    function RGB(&$aImg) {
-	$this->img = &$aImg;
-		
-	// Conversion array between color names and RGB
-	$this->rgb_table = array(
-	    "aqua"=> array(0,255,255),		
-	    "lime"=> array(0,255,0),		
-	    "teal"=> array(0,128,128),
-	    "whitesmoke"=>array(245,245,245),
-	    "gainsboro"=>array(220,220,220),
-	    "oldlace"=>array(253,245,230),
-	    "linen"=>array(250,240,230),
-	    "antiquewhite"=>array(250,235,215),
-	    "papayawhip"=>array(255,239,213),
-	    "blanchedalmond"=>array(255,235,205),
-	    "bisque"=>array(255,228,196),
-	    "peachpuff"=>array(255,218,185),
-	    "navajowhite"=>array(255,222,173),
-	    "moccasin"=>array(255,228,181),
-	    "cornsilk"=>array(255,248,220),
-	    "ivory"=>array(255,255,240),
-	    "lemonchiffon"=>array(255,250,205),
-	    "seashell"=>array(255,245,238),
-	    "mintcream"=>array(245,255,250),
-	    "azure"=>array(240,255,255),
-	    "aliceblue"=>array(240,248,255),
-	    "lavender"=>array(230,230,250),
-	    "lavenderblush"=>array(255,240,245),
-	    "mistyrose"=>array(255,228,225),
-	    "white"=>array(255,255,255),
-	    "black"=>array(0,0,0),
-	    "darkslategray"=>array(47,79,79),
-	    "dimgray"=>array(105,105,105),
-	    "slategray"=>array(112,128,144),
-	    "lightslategray"=>array(119,136,153),
-	    "gray"=>array(190,190,190),
-	    "lightgray"=>array(211,211,211),
-	    "midnightblue"=>array(25,25,112),
-	    "navy"=>array(0,0,128),
-	    "cornflowerblue"=>array(100,149,237),
-	    "darkslateblue"=>array(72,61,139),
-	    "slateblue"=>array(106,90,205),
-	    "mediumslateblue"=>array(123,104,238),
-	    "lightslateblue"=>array(132,112,255),
-	    "mediumblue"=>array(0,0,205),
-	    "royalblue"=>array(65,105,225),
-	    "blue"=>array(0,0,255),
-	    "dodgerblue"=>array(30,144,255),
-	    "deepskyblue"=>array(0,191,255),
-	    "skyblue"=>array(135,206,235),
-	    "lightskyblue"=>array(135,206,250),
-	    "steelblue"=>array(70,130,180),
-	    "lightred"=>array(211,167,168),
-	    "lightsteelblue"=>array(176,196,222),
-	    "lightblue"=>array(173,216,230),
-	    "powderblue"=>array(176,224,230),
-	    "paleturquoise"=>array(175,238,238),
-	    "darkturquoise"=>array(0,206,209),
-	    "mediumturquoise"=>array(72,209,204),
-	    "turquoise"=>array(64,224,208),
-	    "cyan"=>array(0,255,255),
-	    "lightcyan"=>array(224,255,255),
-	    "cadetblue"=>array(95,158,160),
-	    "mediumaquamarine"=>array(102,205,170),
-	    "aquamarine"=>array(127,255,212),
-	    "darkgreen"=>array(0,100,0),
-	    "darkolivegreen"=>array(85,107,47),
-	    "darkseagreen"=>array(143,188,143),
-	    "seagreen"=>array(46,139,87),
-	    "mediumseagreen"=>array(60,179,113),
-	    "lightseagreen"=>array(32,178,170),
-	    "palegreen"=>array(152,251,152),
-	    "springgreen"=>array(0,255,127),
-	    "lawngreen"=>array(124,252,0),
-	    "green"=>array(0,255,0),
-	    "chartreuse"=>array(127,255,0),
-	    "mediumspringgreen"=>array(0,250,154),
-	    "greenyellow"=>array(173,255,47),
-	    "limegreen"=>array(50,205,50),
-	    "yellowgreen"=>array(154,205,50),
-	    "forestgreen"=>array(34,139,34),
-	    "olivedrab"=>array(107,142,35),
-	    "darkkhaki"=>array(189,183,107),
-	    "khaki"=>array(240,230,140),
-	    "palegoldenrod"=>array(238,232,170),
-	    "lightgoldenrodyellow"=>array(250,250,210),
-	    "lightyellow"=>array(255,255,200),
-	    "yellow"=>array(255,255,0),
-	    "gold"=>array(255,215,0),
-	    "lightgoldenrod"=>array(238,221,130),
-	    "goldenrod"=>array(218,165,32),
-	    "darkgoldenrod"=>array(184,134,11),
-	    "rosybrown"=>array(188,143,143),
-	    "indianred"=>array(205,92,92),
-	    "saddlebrown"=>array(139,69,19),
-	    "sienna"=>array(160,82,45),
-	    "peru"=>array(205,133,63),
-	    "burlywood"=>array(222,184,135),
-	    "beige"=>array(245,245,220),
-	    "wheat"=>array(245,222,179),
-	    "sandybrown"=>array(244,164,96),
-	    "tan"=>array(210,180,140),
-	    "chocolate"=>array(210,105,30),
-	    "firebrick"=>array(178,34,34),
-	    "brown"=>array(165,42,42),
-	    "darksalmon"=>array(233,150,122),
-	    "salmon"=>array(250,128,114),
-	    "lightsalmon"=>array(255,160,122),
-	    "orange"=>array(255,165,0),
-	    "darkorange"=>array(255,140,0),
-	    "coral"=>array(255,127,80),
-	    "lightcoral"=>array(240,128,128),
-	    "tomato"=>array(255,99,71),
-	    "orangered"=>array(255,69,0),
-	    "red"=>array(255,0,0),
-	    "hotpink"=>array(255,105,180),
-	    "deeppink"=>array(255,20,147),
-	    "pink"=>array(255,192,203),
-	    "lightpink"=>array(255,182,193),
-	    "palevioletred"=>array(219,112,147),
-	    "maroon"=>array(176,48,96),
-	    "mediumvioletred"=>array(199,21,133),
-	    "violetred"=>array(208,32,144),
-	    "magenta"=>array(255,0,255),
-	    "violet"=>array(238,130,238),
-	    "plum"=>array(221,160,221),
-	    "orchid"=>array(218,112,214),
-	    "mediumorchid"=>array(186,85,211),
-	    "darkorchid"=>array(153,50,204),
-	    "darkviolet"=>array(148,0,211),
-	    "blueviolet"=>array(138,43,226),
-	    "purple"=>array(160,32,240),
-	    "mediumpurple"=>array(147,112,219),
-	    "thistle"=>array(216,191,216),
-	    "snow1"=>array(255,250,250),
-	    "snow2"=>array(238,233,233),
-	    "snow3"=>array(205,201,201),
-	    "snow4"=>array(139,137,137),
-	    "seashell1"=>array(255,245,238),
-	    "seashell2"=>array(238,229,222),
-	    "seashell3"=>array(205,197,191),
-	    "seashell4"=>array(139,134,130),
-	    "AntiqueWhite1"=>array(255,239,219),
-	    "AntiqueWhite2"=>array(238,223,204),
-	    "AntiqueWhite3"=>array(205,192,176),
-	    "AntiqueWhite4"=>array(139,131,120),
-	    "bisque1"=>array(255,228,196),
-	    "bisque2"=>array(238,213,183),
-	    "bisque3"=>array(205,183,158),
-	    "bisque4"=>array(139,125,107),
-	    "peachPuff1"=>array(255,218,185),
-	    "peachpuff2"=>array(238,203,173),
-	    "peachpuff3"=>array(205,175,149),
-	    "peachpuff4"=>array(139,119,101),
-	    "navajowhite1"=>array(255,222,173),
-	    "navajowhite2"=>array(238,207,161),
-	    "navajowhite3"=>array(205,179,139),
-	    "navajowhite4"=>array(139,121,94),
-	    "lemonchiffon1"=>array(255,250,205),
-	    "lemonchiffon2"=>array(238,233,191),
-	    "lemonchiffon3"=>array(205,201,165),
-	    "lemonchiffon4"=>array(139,137,112),
-	    "ivory1"=>array(255,255,240),
-	    "ivory2"=>array(238,238,224),
-	    "ivory3"=>array(205,205,193),
-	    "ivory4"=>array(139,139,131),
-	    "honeydew"=>array(193,205,193),
-	    "lavenderblush1"=>array(255,240,245),
-	    "lavenderblush2"=>array(238,224,229),
-	    "lavenderblush3"=>array(205,193,197),
-	    "lavenderblush4"=>array(139,131,134),
-	    "mistyrose1"=>array(255,228,225),
-	    "mistyrose2"=>array(238,213,210),
-	    "mistyrose3"=>array(205,183,181),
-	    "mistyrose4"=>array(139,125,123),
-	    "azure1"=>array(240,255,255),
-	    "azure2"=>array(224,238,238),
-	    "azure3"=>array(193,205,205),
-	    "azure4"=>array(131,139,139),
-	    "slateblue1"=>array(131,111,255),
-	    "slateblue2"=>array(122,103,238),
-	    "slateblue3"=>array(105,89,205),
-	    "slateblue4"=>array(71,60,139),
-	    "royalblue1"=>array(72,118,255),
-	    "royalblue2"=>array(67,110,238),
-	    "royalblue3"=>array(58,95,205),
-	    "royalblue4"=>array(39,64,139),
-	    "dodgerblue1"=>array(30,144,255),
-	    "dodgerblue2"=>array(28,134,238),
-	    "dodgerblue3"=>array(24,116,205),
-	    "dodgerblue4"=>array(16,78,139),
-	    "steelblue1"=>array(99,184,255),
-	    "steelblue2"=>array(92,172,238),
-	    "steelblue3"=>array(79,148,205),
-	    "steelblue4"=>array(54,100,139),
-	    "deepskyblue1"=>array(0,191,255),
-	    "deepskyblue2"=>array(0,178,238),
-	    "deepskyblue3"=>array(0,154,205),
-	    "deepskyblue4"=>array(0,104,139),
-	    "skyblue1"=>array(135,206,255),
-	    "skyblue2"=>array(126,192,238),
-	    "skyblue3"=>array(108,166,205),
-	    "skyblue4"=>array(74,112,139),
-	    "lightskyblue1"=>array(176,226,255),
-	    "lightskyblue2"=>array(164,211,238),
-	    "lightskyblue3"=>array(141,182,205),
-	    "lightskyblue4"=>array(96,123,139),
-	    "slategray1"=>array(198,226,255),
-	    "slategray2"=>array(185,211,238),
-	    "slategray3"=>array(159,182,205),
-	    "slategray4"=>array(108,123,139),
-	    "lightsteelblue1"=>array(202,225,255),
-	    "lightsteelblue2"=>array(188,210,238),
-	    "lightsteelblue3"=>array(162,181,205),
-	    "lightsteelblue4"=>array(110,123,139),
-	    "lightblue1"=>array(191,239,255),
-	    "lightblue2"=>array(178,223,238),
-	    "lightblue3"=>array(154,192,205),
-	    "lightblue4"=>array(104,131,139),
-	    "lightcyan1"=>array(224,255,255),
-	    "lightcyan2"=>array(209,238,238),
-	    "lightcyan3"=>array(180,205,205),
-	    "lightcyan4"=>array(122,139,139),
-	    "paleturquoise1"=>array(187,255,255),
-	    "paleturquoise2"=>array(174,238,238),
-	    "paleturquoise3"=>array(150,205,205),
-	    "paleturquoise4"=>array(102,139,139),
-	    "cadetblue1"=>array(152,245,255),
-	    "cadetblue2"=>array(142,229,238),
-	    "cadetblue3"=>array(122,197,205),
-	    "cadetblue4"=>array(83,134,139),
-	    "turquoise1"=>array(0,245,255),
-	    "turquoise2"=>array(0,229,238),
-	    "turquoise3"=>array(0,197,205),
-	    "turquoise4"=>array(0,134,139),
-	    "cyan1"=>array(0,255,255),
-	    "cyan2"=>array(0,238,238),
-	    "cyan3"=>array(0,205,205),
-	    "cyan4"=>array(0,139,139),
-	    "darkslategray1"=>array(151,255,255),
-	    "darkslategray2"=>array(141,238,238),
-	    "darkslategray3"=>array(121,205,205),
-	    "darkslategray4"=>array(82,139,139),
-	    "aquamarine1"=>array(127,255,212),
-	    "aquamarine2"=>array(118,238,198),
-	    "aquamarine3"=>array(102,205,170),
-	    "aquamarine4"=>array(69,139,116),
-	    "darkseagreen1"=>array(193,255,193),
-	    "darkseagreen2"=>array(180,238,180),
-	    "darkseagreen3"=>array(155,205,155),
-	    "darkseagreen4"=>array(105,139,105),
-	    "seagreen1"=>array(84,255,159),
-	    "seagreen2"=>array(78,238,148),
-	    "seagreen3"=>array(67,205,128),
-	    "seagreen4"=>array(46,139,87),
-	    "palegreen1"=>array(154,255,154),
-	    "palegreen2"=>array(144,238,144),
-	    "palegreen3"=>array(124,205,124),
-	    "palegreen4"=>array(84,139,84),
-	    "springgreen1"=>array(0,255,127),
-	    "springgreen2"=>array(0,238,118),
-	    "springgreen3"=>array(0,205,102),
-	    "springgreen4"=>array(0,139,69),
-	    "chartreuse1"=>array(127,255,0),
-	    "chartreuse2"=>array(118,238,0),
-	    "chartreuse3"=>array(102,205,0),
-	    "chartreuse4"=>array(69,139,0),
-	    "olivedrab1"=>array(192,255,62),
-	    "olivedrab2"=>array(179,238,58),
-	    "olivedrab3"=>array(154,205,50),
-	    "olivedrab4"=>array(105,139,34),
-	    "darkolivegreen1"=>array(202,255,112),
-	    "darkolivegreen2"=>array(188,238,104),
-	    "darkolivegreen3"=>array(162,205,90),
-	    "darkolivegreen4"=>array(110,139,61),
-	    "khaki1"=>array(255,246,143),
-	    "khaki2"=>array(238,230,133),
-	    "khaki3"=>array(205,198,115),
-	    "khaki4"=>array(139,134,78),
-	    "lightgoldenrod1"=>array(255,236,139),
-	    "lightgoldenrod2"=>array(238,220,130),
-	    "lightgoldenrod3"=>array(205,190,112),
-	    "lightgoldenrod4"=>array(139,129,76),
-	    "yellow1"=>array(255,255,0),
-	    "yellow2"=>array(238,238,0),
-	    "yellow3"=>array(205,205,0),
-	    "yellow4"=>array(139,139,0),
-	    "gold1"=>array(255,215,0),
-	    "gold2"=>array(238,201,0),
-	    "gold3"=>array(205,173,0),
-	    "gold4"=>array(139,117,0),
-	    "goldenrod1"=>array(255,193,37),
-	    "goldenrod2"=>array(238,180,34),
-	    "goldenrod3"=>array(205,155,29),
-	    "goldenrod4"=>array(139,105,20),
-	    "darkgoldenrod1"=>array(255,185,15),
-	    "darkgoldenrod2"=>array(238,173,14),
-	    "darkgoldenrod3"=>array(205,149,12),
-	    "darkgoldenrod4"=>array(139,101,8),
-	    "rosybrown1"=>array(255,193,193),
-	    "rosybrown2"=>array(238,180,180),
-	    "rosybrown3"=>array(205,155,155),
-	    "rosybrown4"=>array(139,105,105),
-	    "indianred1"=>array(255,106,106),
-	    "indianred2"=>array(238,99,99),
-	    "indianred3"=>array(205,85,85),
-	    "indianred4"=>array(139,58,58),
-	    "sienna1"=>array(255,130,71),
-	    "sienna2"=>array(238,121,66),
-	    "sienna3"=>array(205,104,57),
-	    "sienna4"=>array(139,71,38),
-	    "burlywood1"=>array(255,211,155),
-	    "burlywood2"=>array(238,197,145),
-	    "burlywood3"=>array(205,170,125),
-	    "burlywood4"=>array(139,115,85),
-	    "wheat1"=>array(255,231,186),
-	    "wheat2"=>array(238,216,174),
-	    "wheat3"=>array(205,186,150),
-	    "wheat4"=>array(139,126,102),
-	    "tan1"=>array(255,165,79),
-	    "tan2"=>array(238,154,73),
-	    "tan3"=>array(205,133,63),
-	    "tan4"=>array(139,90,43),
-	    "chocolate1"=>array(255,127,36),
-	    "chocolate2"=>array(238,118,33),
-	    "chocolate3"=>array(205,102,29),
-	    "chocolate4"=>array(139,69,19),
-	    "firebrick1"=>array(255,48,48),
-	    "firebrick2"=>array(238,44,44),
-	    "firebrick3"=>array(205,38,38),
-	    "firebrick4"=>array(139,26,26),
-	    "brown1"=>array(255,64,64),
-	    "brown2"=>array(238,59,59),
-	    "brown3"=>array(205,51,51),
-	    "brown4"=>array(139,35,35),
-	    "salmon1"=>array(255,140,105),
-	    "salmon2"=>array(238,130,98),
-	    "salmon3"=>array(205,112,84),
-	    "salmon4"=>array(139,76,57),
-	    "lightsalmon1"=>array(255,160,122),
-	    "lightsalmon2"=>array(238,149,114),
-	    "lightsalmon3"=>array(205,129,98),
-	    "lightsalmon4"=>array(139,87,66),
-	    "orange1"=>array(255,165,0),
-	    "orange2"=>array(238,154,0),
-	    "orange3"=>array(205,133,0),
-	    "orange4"=>array(139,90,0),
-	    "darkorange1"=>array(255,127,0),
-	    "darkorange2"=>array(238,118,0),
-	    "darkorange3"=>array(205,102,0),
-	    "darkorange4"=>array(139,69,0),
-	    "coral1"=>array(255,114,86),
-	    "coral2"=>array(238,106,80),
-	    "coral3"=>array(205,91,69),
-	    "coral4"=>array(139,62,47),
-	    "tomato1"=>array(255,99,71),
-	    "tomato2"=>array(238,92,66),
-	    "tomato3"=>array(205,79,57),
-	    "tomato4"=>array(139,54,38),
-	    "orangered1"=>array(255,69,0),
-	    "orangered2"=>array(238,64,0),
-	    "orangered3"=>array(205,55,0),
-	    "orangered4"=>array(139,37,0),
-	    "deeppink1"=>array(255,20,147),
-	    "deeppink2"=>array(238,18,137),
-	    "deeppink3"=>array(205,16,118),
-	    "deeppink4"=>array(139,10,80),
-	    "hotpink1"=>array(255,110,180),
-	    "hotpink2"=>array(238,106,167),
-	    "hotpink3"=>array(205,96,144),
-	    "hotpink4"=>array(139,58,98),
-	    "pink1"=>array(255,181,197),
-	    "pink2"=>array(238,169,184),
-	    "pink3"=>array(205,145,158),
-	    "pink4"=>array(139,99,108),
-	    "lightpink1"=>array(255,174,185),
-	    "lightpink2"=>array(238,162,173),
-	    "lightpink3"=>array(205,140,149),
-	    "lightpink4"=>array(139,95,101),
-	    "palevioletred1"=>array(255,130,171),
-	    "palevioletred2"=>array(238,121,159),
-	    "palevioletred3"=>array(205,104,137),
-	    "palevioletred4"=>array(139,71,93),
-	    "maroon1"=>array(255,52,179),
-	    "maroon2"=>array(238,48,167),
-	    "maroon3"=>array(205,41,144),
-	    "maroon4"=>array(139,28,98),
-	    "violetred1"=>array(255,62,150),
-	    "violetred2"=>array(238,58,140),
-	    "violetred3"=>array(205,50,120),
-	    "violetred4"=>array(139,34,82),
-	    "magenta1"=>array(255,0,255),
-	    "magenta2"=>array(238,0,238),
-	    "magenta3"=>array(205,0,205),
-	    "magenta4"=>array(139,0,139),
-	    "mediumred"=>array(140,34,34),         
-	    "orchid1"=>array(255,131,250),
-	    "orchid2"=>array(238,122,233),
-	    "orchid3"=>array(205,105,201),
-	    "orchid4"=>array(139,71,137),
-	    "plum1"=>array(255,187,255),
-	    "plum2"=>array(238,174,238),
-	    "plum3"=>array(205,150,205),
-	    "plum4"=>array(139,102,139),
-	    "mediumorchid1"=>array(224,102,255),
-	    "mediumorchid2"=>array(209,95,238),
-	    "mediumorchid3"=>array(180,82,205),
-	    "mediumorchid4"=>array(122,55,139),
-	    "darkorchid1"=>array(191,62,255),
-	    "darkorchid2"=>array(178,58,238),
-	    "darkorchid3"=>array(154,50,205),
-	    "darkorchid4"=>array(104,34,139),
-	    "purple1"=>array(155,48,255),
-	    "purple2"=>array(145,44,238),
-	    "purple3"=>array(125,38,205),
-	    "purple4"=>array(85,26,139),
-	    "mediumpurple1"=>array(171,130,255),
-	    "mediumpurple2"=>array(159,121,238),
-	    "mediumpurple3"=>array(137,104,205),
-	    "mediumpurple4"=>array(93,71,139),
-	    "thistle1"=>array(255,225,255),
-	    "thistle2"=>array(238,210,238),
-	    "thistle3"=>array(205,181,205),
-	    "thistle4"=>array(139,123,139),
-	    "gray1"=>array(10,10,10),
-	    "gray2"=>array(40,40,30),
-	    "gray3"=>array(70,70,70),
-	    "gray4"=>array(100,100,100),
-	    "gray5"=>array(130,130,130),
-	    "gray6"=>array(160,160,160),
-	    "gray7"=>array(190,190,190),
-	    "gray8"=>array(210,210,210),
-	    "gray9"=>array(240,240,240),
-	    "darkgray"=>array(100,100,100),
-	    "darkblue"=>array(0,0,139),
-	    "darkcyan"=>array(0,139,139),
-	    "darkmagenta"=>array(139,0,139),
-	    "darkred"=>array(139,0,0),
-	    "silver"=>array(192, 192, 192),
-	    "eggplant"=>array(144,176,168),
-	    "lightgreen"=>array(144,238,144));		
-    }
-//----------------
-// PUBLIC METHODS
-    // Colors can be specified as either
-    // 1. #xxxxxx			HTML style
-    // 2. "colorname" 	as a named color
-    // 3. array(r,g,b)	RGB triple
-    // This function translates this to a native RGB format and returns an 
-    // RGB triple.
-    function Color($aColor) {
-	if (is_string($aColor)) {
-	    // Strip of any alpha factor
-	    $pos = strpos($aColor,'@');
-	    if( $pos === false ) {
-		$alpha = 0;
-	    }
-	    else {
-		$pos2 = strpos($aColor,':');
-		if( $pos2===false ) 
-		    $pos2 = $pos-1; // Sentinel
-		if( $pos > $pos2 ) {
-		    $alpha = substr($aColor,$pos+1);
-		    $aColor = substr($aColor,0,$pos);
-		}
-		else {
-		    $alpha = substr($aColor,$pos+1,$pos2-$pos-1);
-		    $aColor = substr($aColor,0,$pos).substr($aColor,$pos2);
-		}
-	    }
-
-	    // Extract potential adjustment figure at end of color
-	    // specification
-	    $pos = strpos($aColor,":");
-	    if( $pos === false ) {
-		$adj = 1.0;
-	    }
-	    else {
-		$adj = 0.0 + substr($aColor,$pos+1);
-		$aColor = substr($aColor,0,$pos);
-	    }
-	    if( $adj < 0 )
-		JpGraphError::RaiseL(25077);//('Adjustment factor for color must be > 0');
-
-	    if (substr($aColor, 0, 1) == "#") {
-		$r = hexdec(substr($aColor, 1, 2));
-		$g = hexdec(substr($aColor, 3, 2));
-		$b = hexdec(substr($aColor, 5, 2));
-	    } else {
-      		if(!isset($this->rgb_table[$aColor]) )
-		    JpGraphError::RaiseL(25078,$aColor);//(" Unknown color: $aColor");
-		$tmp=$this->rgb_table[$aColor];
-		$r = $tmp[0];
-		$g = $tmp[1];
-		$b = $tmp[2];
-	    }
-	    // Scale adj so that an adj=2 always
-	    // makes the color 100% white (i.e. 255,255,255. 
-	    // and adj=1 neutral and adj=0 black.
-	    if( $adj > 1 ) {
-		$m = ($adj-1.0)*(255-min(255,min($r,min($g,$b))));
-		return array(min(255,$r+$m), min(255,$g+$m), min(255,$b+$m),$alpha);
-	    }
-	    elseif( $adj < 1 ) {
-		$m = ($adj-1.0)*max(255,max($r,max($g,$b)));
-		return array(max(0,$r+$m), max(0,$g+$m), max(0,$b+$m),$alpha);
-	    }
-	    else {
-		return array($r,$g,$b,$alpha);
-	    }
-
-	} elseif( is_array($aColor) ) {
-	    if( count($aColor)==3 ) {
-		$aColor[3]=0;
-		return $aColor;
-	    }
-	    else
-		return $aColor;
-	}
-	else
-	    JpGraphError::RaiseL(25079,$aColor,count($aColor));//(" Unknown color specification: $aColor , size=".count($aColor));
-    }
-	
-    // Compare two colors
-    // return true if equal
-    function Equal($aCol1,$aCol2) {
-	$c1 = $this->Color($aCol1);
-	$c2 = $this->Color($aCol2);
-	if( $c1[0]==$c2[0] && $c1[1]==$c2[1] && $c1[2]==$c2[2] )
-	    return true;
-	else
-	    return false;
-    }
-	
-    // Allocate a new color in the current image
-    // Return new color index, -1 if no more colors could be allocated
-    function Allocate($aColor,$aAlpha=0.0) {
-	list ($r, $g, $b, $a) = $this->color($aColor);
-	// If alpha is specified in the color string then this
-	// takes precedence over the second argument
-	if( $a > 0 )
-	    $aAlpha = $a;
-	if( $GLOBALS['gd2'] ) {
-	    if( $aAlpha < 0 || $aAlpha > 1 ) {
-		JpGraphError::RaiseL(25080);//('Alpha parameter for color must be between 0.0 and 1.0');
-	    }
-	    return imagecolorresolvealpha($this->img, $r, $g, $b, round($aAlpha * 127));
-	} else {
-	    $index = imagecolorexact($this->img, $r, $g, $b);
-	    if ($index == -1) {
-      		$index = imagecolorallocate($this->img, $r, $g, $b);
-      		if( USE_APPROX_COLORS && $index == -1 )
-		    $index = imagecolorresolve($this->img, $r, $g, $b);
-	    } 
-	    return $index;
-	}
-    }
-} // Class
-
-	
-//===================================================
-// CLASS Image
-// Description: Wrapper class with some goodies to form the
-// Interface to low level image drawing routines.
-//===================================================
-class Image {
-    var $img_format;
-    var $expired=true;
-    var $img=null;
-    var $left_margin=30,$right_margin=20,$top_margin=20,$bottom_margin=30;
-    var $plotwidth=0,$plotheight=0;
-    var $rgb=null;
-    var $current_color,$current_color_name;
-    var $lastx=0, $lasty=0;
-    var $width=0, $height=0;
-    var $line_weight=1;
-    var $line_style=1;	// Default line style is solid
-    var $obs_list=array();
-    var $font_size=12,$font_family=FF_FONT1, $font_style=FS_NORMAL;
-    var $font_file='';
-    var $text_halign="left",$text_valign="bottom";
-    var $ttf=null;
-    var $use_anti_aliasing=false;
-    var $quality=null;
-    var $colorstack=array(),$colorstackidx=0;
-    var $canvascolor = 'white' ;
-    var $langconv = null ;
-
-    //---------------
-    // CONSTRUCTOR
-    function Image($aWidth,$aHeight,$aFormat=DEFAULT_GFORMAT) {
-	$this->CreateImgCanvas($aWidth,$aHeight);
-	$this->SetAutoMargin();		
-
-	if( !$this->SetImgFormat($aFormat) ) {
-	    JpGraphError::RaiseL(25081,$aFormat);//("JpGraph: Selected graphic format is either not supported or unknown [$aFormat]");
-	}
-	$this->ttf = new TTF();
-	$this->langconv = new LanguageConv();
-    }
-
-    // Should we use anti-aliasing. Note: This really slows down graphics!
-    function SetAntiAliasing() {
-	$this->use_anti_aliasing=true;
-    }
-
-    function CreateRawCanvas($aWidth=0,$aHeight=0) {
-	if( $aWidth <= 1 || $aHeight <= 1 ) {
-	    JpGraphError::RaiseL(25082,$aWidth,$aHeight);//("Illegal sizes specified for width or height when creating an image, (width=$aWidth, height=$aHeight)");
-	}
-	if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-	    $this->img = @imagecreatetruecolor($aWidth, $aHeight);
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(25126);
-		//die("Can't create truecolor image. Check that you really have GD2 library installed.");
-	    }
-	    $this->SetAlphaBlending();
-	} else {
-	    $this->img = @imagecreate($aWidth, $aHeight);	
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(25126);
-		//die("<b>JpGraph Error:</b> Can't create image. Check that you really have the GD library installed.");
-	    }
-	}
-	if( $this->rgb != null ) 
-	    $this->rgb->img = $this->img ;
-	else
-	    $this->rgb = new RGB($this->img);				
-    }
-
-    function CloneCanvasH() {
-	$oldimage = $this->img;
-	$this->CreateRawCanvas($this->width,$this->height);
-	imagecopy($this->img,$oldimage,0,0,0,0,$this->width,$this->height);
-	return $oldimage;
-    }
-    
-    function CreateImgCanvas($aWidth=0,$aHeight=0) {
-
-	$old = array($this->img,$this->width,$this->height);
-	
-	$aWidth = round($aWidth);
-	$aHeight = round($aHeight);
-
-	$this->width=$aWidth;
-	$this->height=$aHeight;		
-
-	
-	if( $aWidth==0 || $aHeight==0 ) {
-	    // We will set the final size later. 
-	    // Note: The size must be specified before any other
-	    // img routines that stroke anything are called.
-	    $this->img = null;
-	    $this->rgb = null;
-	    return $old;
-	}
-	
-	$this->CreateRawCanvas($aWidth,$aHeight);
-		
-	// Set canvas color (will also be the background color for a 
-	// a pallett image
-	$this->SetColor($this->canvascolor);	
-	$this->FilledRectangle(0,0,$aWidth,$aHeight);
-
-	return $old ;
-    }
-
-    function CopyCanvasH($aToHdl,$aFromHdl,$aToX,$aToY,$aFromX,$aFromY,$aWidth,$aHeight,$aw=-1,$ah=-1) {
-	if( $aw === -1 ) {
-	    $aw = $aWidth;
-	    $ah = $aHeight;
-	    $f = 'imagecopyresized';
-	}
-	else {
-	    $f = $GLOBALS['copyfunc'] ;
-	}
-	$f($aToHdl,$aFromHdl,
-	   $aToX,$aToY,$aFromX,$aFromY, $aWidth,$aHeight,$aw,$ah);
-    }
-
-    function Copy($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1) {
-	$this->CopyCanvasH($this->img,$fromImg,$toX,$toY,$fromX,$fromY,
-			   $toWidth,$toHeight,$fromWidth,$fromHeight);
-    }
-
-    function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) {
-	if( $aMix == 100 ) {
-	    $this->CopyCanvasH($this->img,$fromImg,
-			       $toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight);
-	}
-	else {
-	    if( ($fromWidth  != -1 && ($fromWidth != $toWidth))  ||
-		($fromHeight != -1 && ($fromHeight != $fromHeight)) ) {
-		// Create a new canvas that will hold the re-scaled original from image
-		if( $toWidth <= 1 || $toHeight <= 1 ) {
-		    JpGraphError::RaiseL(25083);//('Illegal image size when copying image. Size for copied to image is 1 pixel or less.');
-		}
-		if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-		    $tmpimg = @imagecreatetruecolor($toWidth, $toHeight);
-		} else {
-		    $tmpimg = @imagecreate($toWidth, $toHeight);	
-		}	    
-		if( $tmpimg < 1 ) {
-		    JpGraphError::RaiseL(25084);//('Failed to create temporary GD canvas. Out of memory ?');
-		}
-		$this->CopyCanvasH($tmpimg,$fromImg,0,0,0,0,
-				   $toWidth,$toHeight,$fromWidth,$fromHeight);
-		$fromImg = $tmpimg;
-	    }
-	    imagecopymerge($this->img,$fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$aMix);
-	}
-    }
-
-    function GetWidth($aImg=null) {
-	if( $aImg === null ) 
-	    $aImg = $this->img;
-	return imagesx($aImg);
-    }
-
-    function GetHeight($aImg=null) {
-	if( $aImg === null ) 
-	    $aImg = $this->img;
-	return imagesy($aImg);
-    }
-    
-    function CreateFromString($aStr) {
-	$img = imagecreatefromstring($aStr);
-	if( $img === false ) {
-	    JpGraphError::RaiseL(25085);//('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.');
-	}
-	return $img;
-    }
-
-    function SetCanvasH($aHdl) {
-	$this->img = $aHdl;
-	$this->rgb->img = $aHdl;
-    }
-
-    function SetCanvasColor($aColor) {
-	$this->canvascolor = $aColor ;
-    }
-
-    function SetAlphaBlending($aFlg=true) {
-	if( $GLOBALS['gd2'] )
-	    ImageAlphaBlending($this->img,$aFlg);
-	else 
-	    JpGraphError::RaiseL(25086);//('You only seem to have GD 1.x installed. To enable Alphablending requires GD 2.x or higher. Please install GD or make sure the constant USE_GD2 is specified correctly to reflect your installation. By default it tries to autodetect what version of GD you have installed. On some very rare occasions it may falsely detect GD2 where only GD1 is installed. You must then set USE_GD2 to false.');
-    }
-
-	
-    function SetAutoMargin() {	
-	GLOBAL $gJpgBrandTiming;
-	$min_bm=10;
-	/*
-	if( $gJpgBrandTiming )
-	    $min_bm=15;		
-	*/
-	$lm = min(40,$this->width/7);
-	$rm = min(20,$this->width/10);
-	$tm = max(20,$this->height/7);
-	$bm = max($min_bm,$this->height/7);
-	$this->SetMargin($lm,$rm,$tm,$bm);		
-    }
-
-				
-    //---------------
-    // PUBLIC METHODS	
-	
-    function SetFont($family,$style=FS_NORMAL,$size=10) {
-	$this->font_family=$family;
-	$this->font_style=$style;
-	$this->font_size=$size;
-	$this->font_file='';
-	if( ($this->font_family==FF_FONT1 || $this->font_family==FF_FONT2) && $this->font_style==FS_BOLD ){
-	    ++$this->font_family;
-	}
-	if( $this->font_family > FF_FONT2+1 ) { // A TTF font so get the font file
-
-	    // Check that this PHP has support for TTF fonts
-	    if( !function_exists('imagettfbbox') ) {
-		JpGraphError::RaiseL(25087);//('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.');
-	    }
-	    $this->font_file = $this->ttf->File($this->font_family,$this->font_style);
-	}
-    }
-
-    // Get the specific height for a text string
-    function GetTextHeight($txt="",$angle=0) {
-	$tmp = split("\n",$txt);
-	$n = count($tmp);
-	$m=0;
-	for($i=0; $i< $n; ++$i)
-	    $m = max($m,strlen($tmp[$i]));
-
-	if( $this->font_family <= FF_FONT2+1 ) {
-	    if( $angle==0 ) {
-		$h = imagefontheight($this->font_family);
-		if( $h === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-
-		return $n*$h;
-	    }
-	    else {
-		$w = @imagefontwidth($this->font_family);
-		if( $w === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-
-		return $m*$w;
-	    }
-	}
-	else {
-	    $bbox = $this->GetTTFBBox($txt,$angle);
-	    return $bbox[1]-$bbox[5];
-	}
-    }
-	
-    // Estimate font height
-    function GetFontHeight($angle=0) {
-	$txt = "XOMg";
-	return $this->GetTextHeight($txt,$angle);
-    }
-	
-    // Approximate font width with width of letter "O"
-    function GetFontWidth($angle=0) {
-	$txt = 'O';
-	return $this->GetTextWidth($txt,$angle);
-    }
-	
-    // Get actual width of text in absolute pixels
-    function GetTextWidth($txt,$angle=0) {
-
-	$tmp = split("\n",$txt);
-	$n = count($tmp);
-	if( $this->font_family <= FF_FONT2+1 ) {
-
-	    $m=0;
-	    for($i=0; $i < $n; ++$i) {
-		$l=strlen($tmp[$i]);
-		if( $l > $m ) {
-		    $m = $l;
-		}
-	    }
-
-	    if( $angle==0 ) {
-		$w = @imagefontwidth($this->font_family);
-		if( $w === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-		return $m*$w;
-	    }
-	    else {
-		// 90 degrees internal so height becomes width
-		$h = @imagefontheight($this->font_family); 
-		if( $h === false ) {
-		    JpGraphError::RaiseL(25089);//('You have a misconfigured GD font support. The call to imagefontheight() fails.');
-		}
-		return $n*$h;
-	    }
-	}
-	else {
-	    // For TTF fonts we must walk through a lines and find the 
-	    // widest one which we use as the width of the multi-line
-	    // paragraph
-	    $m=0;
-	    for( $i=0; $i < $n; ++$i ) {
-		$bbox = $this->GetTTFBBox($tmp[$i],$angle);
-		$mm =  $bbox[2] - $bbox[0];
-		if( $mm > $m ) 
-		    $m = $mm;
-	    }
-	    return $m;
-	}
-    }
-	
-    // Draw text with a box around it
-    function StrokeBoxedText($x,$y,$txt,$dir=0,$fcolor="white",$bcolor="black",
-			     $shadowcolor=false,$paragraph_align="left",
-			     $xmarg=6,$ymarg=4,$cornerradius=0,$dropwidth=3) {
-
-	if( !is_numeric($dir) ) {
-	    if( $dir=="h" ) $dir=0;
-	    elseif( $dir=="v" ) $dir=90;
-	    else JpGraphError::RaiseL(25090,$dir);//(" Unknown direction specified in call to StrokeBoxedText() [$dir]");
-	}
-		
-	if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) {	
-	    $width=$this->GetTextWidth($txt,$dir) ;
-	    $height=$this->GetTextHeight($txt,$dir) ;
-	}
-	else {
-	    $width=$this->GetBBoxWidth($txt,$dir) ;
-	    $height=$this->GetBBoxHeight($txt,$dir) ;
-	}
-
-	$height += 2*$ymarg;
-	$width  += 2*$xmarg;
-
-	if( $this->text_halign=="right" ) $x -= $width;
-	elseif( $this->text_halign=="center" ) $x -= $width/2;
-	if( $this->text_valign=="bottom" ) $y -= $height;
-	elseif( $this->text_valign=="center" ) $y -= $height/2;
-	
-	if( $shadowcolor ) {
-	    $this->PushColor($shadowcolor);
-	    $this->FilledRoundedRectangle($x-$xmarg+$dropwidth,$y-$ymarg+$dropwidth,
-					  $x+$width+$dropwidth,$y+$height-$ymarg+$dropwidth,
-					  $cornerradius);
-	    $this->PopColor();
-	    $this->PushColor($fcolor);
-	    $this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg,
-					  $x+$width,$y+$height-$ymarg,
-					  $cornerradius);		
-	    $this->PopColor();
-	    $this->PushColor($bcolor);
-	    $this->RoundedRectangle($x-$xmarg,$y-$ymarg,
-				    $x+$width,$y+$height-$ymarg,$cornerradius);
-	    $this->PopColor();
-	}
-	else {
-	    if( $fcolor ) {
-		$oc=$this->current_color;
-		$this->SetColor($fcolor);
-		$this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius);
-		$this->current_color=$oc;
-	    }
-	    if( $bcolor ) {
-		$oc=$this->current_color;
-		$this->SetColor($bcolor);			
-		$this->RoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius);
-		$this->current_color=$oc;			
-	    }
-	}
-		
-	$h=$this->text_halign;
-	$v=$this->text_valign;
-	$this->SetTextAlign("left","top");
-	$this->StrokeText($x, $y, $txt, $dir, $paragraph_align);
-	$bb = array($x-$xmarg,$y+$height-$ymarg,$x+$width,$y+$height-$ymarg,
-		    $x+$width,$y-$ymarg,$x-$xmarg,$y-$ymarg);
-	$this->SetTextAlign($h,$v);
-	return $bb;
-    }
-
-    // Set text alignment	
-    function SetTextAlign($halign,$valign="bottom") {
-	$this->text_halign=$halign;
-	$this->text_valign=$valign;
-    }
-	
-
-    function _StrokeBuiltinFont($x,$y,$txt,$dir=0,$paragraph_align="left",&$aBoundingBox,$aDebug=false) {
-
-	if( is_numeric($dir) && $dir!=90 && $dir!=0) 
-	    JpGraphError::RaiseL(25091);//(" Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead.");
-
-	$h=$this->GetTextHeight($txt);
-	$fh=$this->GetFontHeight();
-	$w=$this->GetTextWidth($txt);
-	
-	if( $this->text_halign=="right") 				
-	    $x -= $dir==0 ? $w : $h;
-	elseif( $this->text_halign=="center" ) {
-	    // For center we subtract 1 pixel since this makes the middle
-	    // be prefectly in the middle
-	    $x -= $dir==0 ? $w/2-1 : $h/2;
-	}
-	if( $this->text_valign=="top" )
-	    $y += $dir==0 ? $h : $w;
-	elseif( $this->text_valign=="center" ) 				
-	    $y += $dir==0 ? $h/2 : $w/2;
-	
-	if( $dir==90 ) {
-	    imagestringup($this->img,$this->font_family,$x,$y,$txt,$this->current_color);
-	    $aBoundingBox = array(round($x),round($y),round($x),round($y-$w),round($x+$h),round($y-$w),round($x+$h),round($y));
-            if( $aDebug ) {
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($aBoundingBox,true);
-		$this->PopColor();
-	    }
-	}
-	else {
-	    if( ereg("\n",$txt) ) { 
-		$tmp = split("\n",$txt);
-		for($i=0; $i < count($tmp); ++$i) {
-		    $w1 = $this->GetTextWidth($tmp[$i]);
-		    if( $paragraph_align=="left" ) {
-			imagestring($this->img,$this->font_family,$x,$y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		    elseif( $paragraph_align=="right" ) {
-			imagestring($this->img,$this->font_family,$x+($w-$w1),
-				    $y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		    else {
-			imagestring($this->img,$this->font_family,$x+$w/2-$w1/2,
-				    $y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		}
-	    } 
-	    else {
-		//Put the text
-		imagestring($this->img,$this->font_family,$x,$y-$h+1,$txt,$this->current_color);
-	    }
-            if( $aDebug ) {
-		// Draw the bounding rectangle and the bounding box
-		$p1 = array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y));
-		
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($p1,true);
-		$this->PopColor();
-
-            }
-	    $aBoundingBox=array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y));
-	}
-    }
-
-    function AddTxtCR($aTxt) {
-	// If the user has just specified a '\n'
-	// instead of '\n\t' we have to add '\r' since
-	// the width will be too muchy otherwise since when
-	// we print we stroke the individually lines by hand.
-	$e = explode("\n",$aTxt);
-	$n = count($e);
-	for($i=0; $i<$n; ++$i) {
-	    $e[$i]=str_replace("\r","",$e[$i]);
-	}
-	return implode("\n\r",$e);
-    }
-
-    function GetTTFBBox($aTxt,$aAngle=0) {
-	$bbox = @ImageTTFBBox($this->font_size,$aAngle,$this->font_file,$aTxt);
-	if( $bbox === false ) {
-	    JpGraphError::RaiseL(25092,$this->font_file);
-//("There is either a configuration problem with TrueType or a problem reading font file (".$this->font_file."). Make sure file exists and is in a readable place for the HTTP process. (If 'basedir' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try uppgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library.");
-	}
-	return $bbox;
-    }
-
-    function GetBBoxTTF($aTxt,$aAngle=0) {
-	// Normalize the bounding box to become a minimum
-	// enscribing rectangle
-
-	$aTxt = $this->AddTxtCR($aTxt);
-
-	if( !is_readable($this->font_file) ) {
-	    JpGraphError::RaiseL(25093,$this->font_file);
-//('Can not read font file ('.$this->font_file.') in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.');
-	}
-	$bbox = $this->GetTTFBBox($aTxt,$aAngle);
-
-	if( $aAngle==0 ) 
-	    return $bbox;
-	if( $aAngle >= 0 ) {
-	    if(  $aAngle <= 90 ) { //<=0		
-		$bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1],
-			      $bbox[2],$bbox[5],$bbox[6],$bbox[5]);
-	    }
-	    elseif(  $aAngle <= 180 ) { //<= 2
-		$bbox = array($bbox[4],$bbox[7],$bbox[0],$bbox[7],
-			      $bbox[0],$bbox[3],$bbox[4],$bbox[3]);
-	    }
-	    elseif(  $aAngle <= 270 )  { //<= 3
-		$bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5],
-			      $bbox[6],$bbox[1],$bbox[2],$bbox[1]);
-	    }
-	    else {
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	}
-	elseif(  $aAngle < 0 ) {
-	    if( $aAngle <= -270 ) { // <= -3
-		$bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1],
-			      $bbox[2],$bbox[5],$bbox[6],$bbox[5]);
-	    }
-	    elseif( $aAngle <= -180 ) { // <= -2
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	    elseif( $aAngle <= -90 ) { // <= -1
-		$bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5],
-			      $bbox[6],$bbox[1],$bbox[2],$bbox[1]);
-	    }
-	    else {
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	}	
-	return $bbox;
-    }
-
-    function GetBBoxHeight($aTxt,$aAngle=0) {
-	$box = $this->GetBBoxTTF($aTxt,$aAngle);
-	return $box[1]-$box[7]+1;
-    }
-
-    function GetBBoxWidth($aTxt,$aAngle=0) {
-	$box = $this->GetBBoxTTF($aTxt,$aAngle);
-	return $box[2]-$box[0]+1;	
-    }
-
-    function _StrokeTTF($x,$y,$txt,$dir=0,$paragraph_align="left",&$aBoundingBox,$debug=false) {
-
-	// Setupo default inter line margin for paragraphs to
-	// 25% of the font height.
-	$ConstLineSpacing = 0.25 ;
-
-	// Remember the anchor point before adjustment
-	if( $debug ) {
-	    $ox=$x;
-	    $oy=$y;
-	}
-
-	if( !ereg("\n",$txt) || ($dir>0 && ereg("\n",$txt)) ) {
-	    // Format a single line
-
-	    $txt = $this->AddTxtCR($txt);
-
-	    $bbox=$this->GetBBoxTTF($txt,$dir);
-	    
-	    // Align x,y ot lower left corner of bbox
-	    $x -= $bbox[0];
-	    $y -= $bbox[1];
-
-	    // Note to self: "topanchor" is deprecated after we changed the
-	    // bopunding box stuff. 
-	    if( $this->text_halign=="right" || $this->text_halign=="topanchor" ) 
-		$x -= $bbox[2]-$bbox[0];
-	    elseif( $this->text_halign=="center" ) $x -= ($bbox[2]-$bbox[0])/2; 
-	    
-	    if( $this->text_valign=="top" ) $y += abs($bbox[5])+$bbox[1];
-	    elseif( $this->text_valign=="center" ) $y -= ($bbox[5]-$bbox[1])/2; 
-
-	    ImageTTFText ($this->img, $this->font_size, $dir, $x, $y, 
-			  $this->current_color,$this->font_file,$txt); 
-
-	    // Calculate and return the co-ordinates for the bounding box
-	    $box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$txt);
-	    $p1 = array();
-
-
-	    for($i=0; $i < 4; ++$i) {
-		$p1[] = round($box[$i*2]+$x);
-		$p1[] = round($box[$i*2+1]+$y);
-	    }
-	    $aBoundingBox = $p1;
-
-	    // Debugging code to highlight the bonding box and bounding rectangle
-	    // For text at 0 degrees the bounding box and bounding rectangle are the
-	    // same
-            if( $debug ) {
-		// Draw the bounding rectangle and the bounding box
-		$box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$txt);
-		$p = array();
-		$p1 = array();
-		for($i=0; $i < 4; ++$i) {
-		    $p[] = $bbox[$i*2]+$x;
-		    $p[] = $bbox[$i*2+1]+$y;
-		    $p1[] = $box[$i*2]+$x;
-		    $p1[] = $box[$i*2+1]+$y;
-		}
-
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($p1,true);
-		$this->PopColor();
-		
-		// Draw bounding rectangle
-		$this->PushColor('darkgreen');
-		$this->Polygon($p,true);
-		$this->PopColor();
-		
-		// Draw a cross at the anchor point
-		$this->PushColor('red');
-		$this->Line($ox-15,$oy,$ox+15,$oy);
-		$this->Line($ox,$oy-15,$ox,$oy+15);
-		$this->PopColor();
-            }
-	}
-	else {
-	    // Format a text paragraph
-	    $fh=$this->GetFontHeight();
-
-	    // Line margin is 25% of font height
-	    $linemargin=round($fh*$ConstLineSpacing);
-	    $fh += $linemargin;
-	    $w=$this->GetTextWidth($txt);
-
-	    $y -= $linemargin/2;
-	    $tmp = split("\n",$txt);
-	    $nl = count($tmp);
-	    $h = $nl * $fh;
-
-	    if( $this->text_halign=="right") 				
-		$x -= $dir==0 ? $w : $h;
-	    elseif( $this->text_halign=="center" ) {
-		$x -= $dir==0 ? $w/2 : $h/2;
-	    }
-	    
-	    if( $this->text_valign=="top" )
-		$y +=	$dir==0 ? $h : $w;
-	    elseif( $this->text_valign=="center" ) 				
-		$y +=	$dir==0 ? $h/2 : $w/2;
-
-	    // Here comes a tricky bit. 
-	    // Since we have to give the position for the string at the
-	    // baseline this means thaht text will move slightly up
-	    // and down depending on any of it's character descend below
-	    // the baseline, for example a 'g'. To adjust the Y-position
-	    // we therefore adjust the text with the baseline Y-offset
-	    // as used for the current font and size. This will keep the
-	    // baseline at a fixed positoned disregarding the actual 
-	    // characters in the string. 
-	    $standardbox = $this->GetTTFBBox('Gg',$dir);
-	    $yadj = $standardbox[1];
-	    $xadj = $standardbox[0];
-	    $aBoundingBox = array();
-	    for($i=0; $i < $nl; ++$i) {
-		$wl = $this->GetTextWidth($tmp[$i]);
-		$bbox = $this->GetTTFBBox($tmp[$i],$dir);
-		if( $paragraph_align=="left" ) {
-		    $xl = $x; 
-		}
-		elseif( $paragraph_align=="right" ) {
-		    $xl = $x + ($w-$wl);
-		}
-		else {
-		    // Center
-		    $xl = $x + $w/2 - $wl/2 ;
-		}
-
-		$xl -= $bbox[0];
-		$yl = $y - $yadj; 
-		$xl = $xl - $xadj; 
-		ImageTTFText ($this->img, $this->font_size, $dir, 
-			      $xl, $yl-($h-$fh)+$fh*$i,
-			      $this->current_color,$this->font_file,$tmp[$i]); 
-
-		if( $debug  ) {
-		    // Draw the bounding rectangle around each line
-		    $box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$tmp[$i]);
-		    $p = array();
-		    for($j=0; $j < 4; ++$j) {
-			$p[] = $bbox[$j*2]+$xl;
-			$p[] = $bbox[$j*2+1]+$yl-($h-$fh)+$fh*$i;
-		    }
-		    
-		    // Draw bounding rectangle
-		    $this->PushColor('darkgreen');
-		    $this->Polygon($p,true);
-		    $this->PopColor();
-		}
-	    }
-
-	    // Get the bounding box
-	    $bbox = $this->GetBBoxTTF($txt,$dir);
-	    for($j=0; $j < 4; ++$j) {
-		$bbox[$j*2]+= round($x);
-		$bbox[$j*2+1]+= round($y - ($h-$fh) - $yadj);
-	    }
-	    $aBoundingBox = $bbox;
-
-	    if( $debug ) {	
-		// Draw a cross at the anchor point
-		$this->PushColor('red');
-		$this->Line($ox-25,$oy,$ox+25,$oy);
-		$this->Line($ox,$oy-25,$ox,$oy+25);
-		$this->PopColor();
-	    }
-
-	}
-    }
-	
-    function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) {
-
-	$x = round($x);
-	$y = round($y);
-
-	// Do special language encoding
-	$txt = $this->langconv->Convert($txt,$this->font_family);
-
-	if( !is_numeric($dir) )
-	    JpGraphError::RaiseL(25094);//(" Direction for text most be given as an angle between 0 and 90.");
-			
-	if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) {	
-	    $this->_StrokeBuiltinFont($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug);
-	}
-	elseif($this->font_family >= _FF_FIRST && $this->font_family <= _FF_LAST)  {
-	    $this->_StrokeTTF($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug);
-	}
-	else
-	    JpGraphError::RaiseL(25095);//(" Unknown font font family specification. ");
-	return $boundingbox;
-    }
-	
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->left_margin=$lm;
-	$this->right_margin=$rm;
-	$this->top_margin=$tm;
-	$this->bottom_margin=$bm;
-	$this->plotwidth=$this->width - $this->left_margin-$this->right_margin ; 
-	$this->plotheight=$this->height - $this->top_margin-$this->bottom_margin ;
-	if( $this->width  > 0 && $this->height > 0 ) {
-	    if( $this->plotwidth < 0  || $this->plotheight < 0 )
-		JpGraphError::raise("Too small plot area. ($lm,$rm,$tm,$bm : $this->plotwidth x $this->plotheight). With the given image size and margins there is to little space left for the plot. Increase the plot size or reduce the margins.");
-	}
-    }
-
-    function SetTransparent($color) {
-	imagecolortransparent ($this->img,$this->rgb->allocate($color));
-    }
-	
-    function SetColor($color,$aAlpha=0) {
-	$this->current_color_name = $color;
-	$this->current_color=$this->rgb->allocate($color,$aAlpha);
-	if( $this->current_color == -1 ) {
-	    $tc=imagecolorstotal($this->img);
-	    JpGraphError::RaiseL(25096);
-//("Can't allocate any more colors. Image has already allocated maximum of <b>$tc colors</b>. This might happen if you have anti-aliasing turned on together with a background image or perhaps gradient fill since this requires many, many colors. Try to turn off anti-aliasing. If there is still a problem try downgrading the quality of the background image to use a smaller pallete to leave some entries for your graphs. You should try to limit the number of colors in your background image to 64. If there is still problem set the constant DEFINE(\"USE_APPROX_COLORS\",true); in jpgraph.php This will use approximative colors when the palette is full. Unfortunately there is not much JpGraph can do about this since the palette size is a limitation of current graphic format and what the underlying GD library suppports."); 
-	}
-	return $this->current_color;
-    }
-	
-    function PushColor($color) {
-	if( $color != "" ) {
-	    $this->colorstack[$this->colorstackidx]=$this->current_color_name;
-	    $this->colorstack[$this->colorstackidx+1]=$this->current_color;
-	    $this->colorstackidx+=2;
-	    $this->SetColor($color);
-	}
-	else {
-	    JpGraphError::RaiseL(25097);//("Color specified as empty string in PushColor().");
-	}
-    }
-	
-    function PopColor() {
-	if($this->colorstackidx<1)
-	    JpGraphError::RaiseL(25098);//(" Negative Color stack index. Unmatched call to PopColor()");
-	$this->current_color=$this->colorstack[--$this->colorstackidx];
-	$this->current_color_name=$this->colorstack[--$this->colorstackidx];
-    }
-	
-	
-    // Why this duplication? Because this way we can call this method
-    // for any image and not only the current objsct
-    function AdjSat($sat) {	
-	if( $GLOBALS['gd2'] && USE_TRUECOLOR )
-	    return;
-	$this->_AdjSat($this->img,$sat);	
-    }	
-	
-    function _AdjSat($img,$sat) {
-	$nbr = imagecolorstotal ($img);
-	for( $i=0; $i<$nbr; ++$i ) {
-	    $colarr = imagecolorsforindex ($img,$i);
-	    $rgb[0]=$colarr["red"];
-	    $rgb[1]=$colarr["green"];
-	    $rgb[2]=$colarr["blue"];
-	    $rgb = $this->AdjRGBSat($rgb,$sat);
-	    imagecolorset ($img, $i, $rgb[0], $rgb[1], $rgb[2]);
-	}
-    }
-	
-    function AdjBrightContrast($bright,$contr=0) {
-	if( $GLOBALS['gd2'] && USE_TRUECOLOR )
-	    return;
-	$this->_AdjBrightContrast($this->img,$bright,$contr);
-    }
-
-    function _AdjBrightContrast($img,$bright,$contr=0) {
-	if( $bright < -1 || $bright > 1 || $contr < -1 || $contr > 1 )
-	    JpGraphError::RaiseL(25099);//(" Parameters for brightness and Contrast out of range [-1,1]");		
-	$nbr = imagecolorstotal ($img);
-	for( $i=0; $i<$nbr; ++$i ) {
-	    $colarr = imagecolorsforindex ($img,$i);
-	    $r = $this->AdjRGBBrightContrast($colarr["red"],$bright,$contr);
-	    $g = $this->AdjRGBBrightContrast($colarr["green"],$bright,$contr);
-	    $b = $this->AdjRGBBrightContrast($colarr["blue"],$bright,$contr);		
-	    imagecolorset ($img, $i, $r, $g, $b);
-	}
-    }
-	
-    // Private helper function for adj sat
-    // Adjust saturation for RGB array $u. $sat is a value between -1 and 1
-    // Note: Due to GD inability to handle true color the RGB values are only between
-    // 8 bit. This makes saturation quite sensitive for small increases in parameter sat.
-    // 
-    // Tip: To get a grayscale picture set sat=-100, values <-100 changes the colors
-    // to it's complement.
-    // 
-    // Implementation note: The saturation is implemented directly in the RGB space
-    // by adjusting the perpendicular distance between the RGB point and the "grey"
-    // line (1,1,1). Setting $sat>0 moves the point away from the line along the perp.
-    // distance and a negative value moves the point closer to the line.
-    // The values are truncated when the color point hits the bounding box along the
-    // RGB axis.
-    // DISCLAIMER: I'm not 100% sure this is he correct way to implement a color 
-    // saturation function in RGB space. However, it looks ok and has the expected effect.
-    function AdjRGBSat($rgb,$sat) {
-	// TODO: Should be moved to the RGB class
-	// Grey vector
-	$v=array(1,1,1);
-
-	// Dot product
-	$dot = $rgb[0]*$v[0]+$rgb[1]*$v[1]+$rgb[2]*$v[2];
-
-	// Normalize dot product
-	$normdot = $dot/3;	// dot/|v|^2
-
-	// Direction vector between $u and its projection onto $v
-	for($i=0; $i<3; ++$i)
-	    $r[$i] = $rgb[$i] - $normdot*$v[$i];
-
-	// Adjustment factor so that sat==1 sets the highest RGB value to 255
-	if( $sat > 0 ) {
-	    $m=0;
-	    for( $i=0; $i<3; ++$i) {
-		if( sign($r[$i]) == 1 && $r[$i]>0)
-		    $m=max($m,(255-$rgb[$i])/$r[$i]);
-	    }
-	    $tadj=$m;
-	}
-	else
-	    $tadj=1;
-		
-	$tadj = $tadj*$sat;	
-	for($i=0; $i<3; ++$i) {
-	    $un[$i] = round($rgb[$i] + $tadj*$r[$i]);		
-	    if( $un[$i]<0 ) $un[$i]=0;		// Truncate color when they reach 0
-	    if( $un[$i]>255 ) $un[$i]=255;// Avoid potential rounding error
-	}		
-	return $un;	
-    }	
-
-    // Private helper function for AdjBrightContrast
-    function AdjRGBBrightContrast($rgb,$bright,$contr) {
-	// TODO: Should be moved to the RGB class
-	// First handle contrast, i.e change the dynamic range around grey
-	if( $contr <= 0 ) {
-	    // Decrease contrast
-	    $adj = abs($rgb-128) * (-$contr);
-	    if( $rgb < 128 ) $rgb += $adj;
-	    else $rgb -= $adj;
-	}
-	else { // $contr > 0
-	    // Increase contrast
-	    if( $rgb < 128 ) $rgb = $rgb - ($rgb * $contr);
-	    else $rgb = $rgb + ((255-$rgb) * $contr);
-	}
-	
-	// Add (or remove) various amount of white
-	$rgb += $bright*255;	
-	$rgb=min($rgb,255);
-	$rgb=max($rgb,0);
-	return $rgb;	
-    }
-	
-    function SetLineWeight($weight) {
-	$this->line_weight = $weight;
-    }
-	
-    function SetStartPoint($x,$y) {
-	$this->lastx=round($x);
-	$this->lasty=round($y);
-    }
-	
-    function Arc($cx,$cy,$w,$h,$s,$e) {
-	// GD Arc doesn't like negative angles
-	while( $s < 0) $s += 360;
-	while( $e < 0) $e += 360;
-    	
-	imagearc($this->img,round($cx),round($cy),round($w),round($h),
-		 $s,$e,$this->current_color);
-    }
-    
-    function FilledArc($xc,$yc,$w,$h,$s,$e,$style="") {
-
-	if( $GLOBALS['gd2'] ) {
-	    while( $s < 0 ) $s += 360;
-	    while( $e < 0 ) $e += 360;
-	    if( $style=="" ) 
-		$style=IMG_ARC_PIE;
-	    imagefilledarc($this->img,round($xc),round($yc),round($w),round($h),
-			   round($s),round($e),$this->current_color,$style);
-	    return;
-	}
-
-
-	// In GD 1.x we have to do it ourself interesting enough there is surprisingly
-	// little difference in time between doing it PHP and using the optimised GD 
-	// library (roughly ~20%) I had expected it to be at least 100% slower doing it
-	// manually with a polygon approximation in PHP.....
-	$fillcolor = $this->current_color_name;
-
-	$w /= 2; // We use radius in our calculations instead
-	$h /= 2;
-
-	// Setup the angles so we have the same conventions as the builtin
-	// FilledArc() which is a little bit strange if you ask me....
-
-	$s = 360-$s;
-	$e = 360-$e;
-
-	if( $e > $s ) {
-	    $e = $e - 360;
-	    $da = $s - $e; 
-	}
-	$da = $s-$e;
-
-	// We use radians
-	$s *= M_PI/180;
-	$e *= M_PI/180;
-	$da *= M_PI/180;
-
-	// Calculate a polygon approximation
-	$p[0] = $xc;
-	$p[1] = $yc;
-
-	// Heuristic on how many polygons we need to make the
-	// arc look good
-	$numsteps = round(8 * abs($da) * ($w+$h)*($w+$h)/1500);
-
-	if( $numsteps == 0 ) return;
-	if( $numsteps < 7 ) $numsteps=7;
-	$delta = abs($da)/$numsteps;
-	
-	$pa=array();
-	$a = $s;
-	for($i=1; $i<=$numsteps; ++$i ) {
-	    $p[2*$i] = round($xc + $w*cos($a));
-	    $p[2*$i+1] = round($yc - $h*sin($a));
-	    //$a = $s + $i*$delta; 
-	    $a -= $delta; 
-	    $pa[2*($i-1)] = $p[2*$i];
-	    $pa[2*($i-1)+1] = $p[2*$i+1];
-	}
-
-	// Get the last point at the exact ending angle to avoid
-	// any rounding errors.
-	$p[2*$i] = round($xc + $w*cos($e));
-	$p[2*$i+1] = round($yc - $h*sin($e));
-	$pa[2*($i-1)] = $p[2*$i];
-	$pa[2*($i-1)+1] = $p[2*$i+1];
-	$i++;
-
-	$p[2*$i] = $xc;
-    	$p[2*$i+1] = $yc;
-	if( $fillcolor != "" ) {
-	    $this->PushColor($fillcolor);
-	    imagefilledpolygon($this->img,$p,count($p)/2,$this->current_color);
-	    $this->PopColor();
-	}
-    }
-
-    function FilledCakeSlice($cx,$cy,$w,$h,$s,$e) {
-	$this->CakeSlice($cx,$cy,$w,$h,$s,$e,$this->current_color_name);
-    }
-
-    function CakeSlice($xc,$yc,$w,$h,$s,$e,$fillcolor="",$arccolor="") {
-	$s = round($s); $e = round($e);
-	$w = round($w); $h = round($h);
-	$xc = round($xc); $yc = round($yc);
-	$this->PushColor($fillcolor);
-	$this->FilledArc($xc,$yc,2*$w,2*$h,$s,$e);
-	$this->PopColor();
-	if( $arccolor != "" ) {
-	    $this->PushColor($arccolor);
-	    // We add 2 pixels to make the Arc() better aligned with the filled arc. 
-	    if( $GLOBALS['gd2'] ) {
-		imagefilledarc($this->img,$xc,$yc,2*$w,2*$h,$s,$e,$this->current_color,IMG_ARC_NOFILL | IMG_ARC_EDGED ) ;
-	    }
-	    else {
-		$this->Arc($xc,$yc,2*$w+2,2*$h+2,$s,$e);
-		$xx = $w * cos(2*M_PI - $s*M_PI/180) + $xc;
-		$yy = $yc - $h * sin(2*M_PI - $s*M_PI/180);
-		$this->Line($xc,$yc,$xx,$yy);
-		$xx = $w * cos(2*M_PI - $e*M_PI/180) + $xc;
-		$yy = $yc - $h * sin(2*M_PI - $e*M_PI/180);
-		$this->Line($xc,$yc,$xx,$yy);
-	    }
-	    $this->PopColor();
-	}
-    }
-
-    function Ellipse($xc,$yc,$w,$h) {
-	$this->Arc($xc,$yc,$w,$h,0,360);
-    }
-	
-    // Breseham circle gives visually better result then using GD
-    // built in arc(). It takes some more time but gives better
-    // accuracy.
-    function BresenhamCircle($xc,$yc,$r) {
-	$d = 3-2*$r;
-	$x = 0;
-	$y = $r;
-	while($x<=$y) {
-	    $this->Point($xc+$x,$yc+$y);			
-	    $this->Point($xc+$x,$yc-$y);
-	    $this->Point($xc-$x,$yc+$y);
-	    $this->Point($xc-$x,$yc-$y);
-			
-	    $this->Point($xc+$y,$yc+$x);
-	    $this->Point($xc+$y,$yc-$x);
-	    $this->Point($xc-$y,$yc+$x);
-	    $this->Point($xc-$y,$yc-$x);
-			
-	    if( $d<0 ) $d += 4*$x+6;
-	    else {
-		$d += 4*($x-$y)+10;		
-		--$y;
-	    }
-	    ++$x;
-	}
-    }
-			
-    function Circle($xc,$yc,$r) {
-	if( USE_BRESENHAM )
-	    $this->BresenhamCircle($xc,$yc,$r);
-	else {
-
-	    /*
-            // Some experimental code snippet to see if we can get a decent 
-	    // result doing a trig-circle
-	    // Create an approximated circle with 0.05 rad resolution
-	    $end = 2*M_PI;
-	    $l = $r/10;
-	    if( $l < 3 ) $l=3;
-	    $step_size = 2*M_PI/(2*$r*M_PI/$l);
-	    $pts = array();
-	    $pts[] = $r + $xc;
-	    $pts[] = $yc;
-	    for( $a=$step_size; $a <= $end; $a += $step_size ) {
-		$pts[] = round($xc + $r*cos($a));
-		$pts[] = round($yc - $r*sin($a));
-	    }
-	    imagepolygon($this->img,$pts,count($pts)/2,$this->current_color);
-	    */
-
-	    $this->Arc($xc,$yc,$r*2,$r*2,0,360);		
-
-	    // For some reason imageellipse() isn't in GD 2.0.1, PHP 4.1.1
-	    //imageellipse($this->img,$xc,$yc,$r,$r,$this->current_color);
-	}
-    }
-	
-    function FilledCircle($xc,$yc,$r) {
-	if( $GLOBALS['gd2'] ) {
-	    imagefilledellipse($this->img,round($xc),round($yc),
-	    		       2*$r,2*$r,$this->current_color);
-	}
-	else {
-	    for( $i=1; $i < 2*$r; $i += 2 ) {
-		// To avoid moire patterns we have to draw some
-		// 1 extra "skewed" filled circles
-		$this->Arc($xc,$yc,$i,$i,0,360);
-		$this->Arc($xc,$yc,$i+1,$i,0,360);
-		$this->Arc($xc,$yc,$i+1,$i+1,0,360);
-	    }
-	}	
-    }
-	
-    // Linear Color InterPolation
-    function lip($f,$t,$p) {
-	$p = round($p,1);
-	$r = $f[0] + ($t[0]-$f[0])*$p;
-	$g = $f[1] + ($t[1]-$f[1])*$p;
-	$b = $f[2] + ($t[2]-$f[2])*$p;
-	return array($r,$g,$b);
-    }
-
-    // Anti-aliased line. 
-    // Note that this is roughly 8 times slower then a normal line!
-    function WuLine($x1,$y1,$x2,$y2) {
-	// Get foreground line color
-	$lc = imagecolorsforindex($this->img,$this->current_color);
-	$lc = array($lc["red"],$lc["green"],$lc["blue"]);
-
-	$dx = $x2-$x1;
-	$dy = $y2-$y1;
-	
-	if( abs($dx) > abs($dy) ) {
-	    if( $dx<0 ) {
-		$dx = -$dx;$dy = -$dy;
-		$tmp=$x2;$x2=$x1;$x1=$tmp;
-		$tmp=$y2;$y2=$y1;$y1=$tmp;
-	    }
-	    $x=$x1<<16; $y=$y1<<16;
-	    $yinc = ($dy*65535)/$dx;
-	    while( ($x >> 16) < $x2 ) {
-				
-		$bc = @imagecolorsforindex($this->img,imagecolorat($this->img,$x>>16,$y>>16));
-		if( $bc <= 0 ) {
-		    JpGraphError::RaiseL(25100);//('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and that truecolor is enabled.');
-		}
-		$bc=array($bc["red"],$bc["green"],$bc["blue"]);
-				
-		$this->SetColor($this->lip($lc,$bc,($y & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,$y>>16,$this->current_color);
-		$this->SetColor($this->lip($lc,$bc,(~$y & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,($y>>16)+1,$this->current_color);
-		$x += 65536; $y += $yinc;
-	    }
-	}
-	else {
-	    if( $dy<0 ) {
-		$dx = -$dx;$dy = -$dy;
-		$tmp=$x2;$x2=$x1;$x1=$tmp;
-		$tmp=$y2;$y2=$y1;$y1=$tmp;
-	    }
-	    $x=$x1<<16; $y=$y1<<16;
-	    $xinc = ($dx*65535)/$dy;	
-	    while( ($y >> 16) < $y2 ) {
-				
-		$bc = @imagecolorsforindex($this->img,imagecolorat($this->img,$x>>16,$y>>16));
-		if( $bc <= 0 ) {
-		    JpGraphError::RaiseL(25100);//('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and truecolor is enabled.');
-
-		}
-
-		$bc=array($bc["red"],$bc["green"],$bc["blue"]);				
-				
-		$this->SetColor($this->lip($lc,$bc,($x & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,$y>>16,$this->current_color);
-		$this->SetColor($this->lip($lc,$bc,(~$x & 0xFFFF)/65535));
-		imagesetpixel($this->img,($x>>16)+1,$y>>16,$this->current_color);
-		$y += 65536; $x += $xinc;
-	    }
-	}
-	$this->SetColor($lc);
-	imagesetpixel($this->img,$x2,$y2,$this->current_color);		
-	imagesetpixel($this->img,$x1,$y1,$this->current_color);			
-    }
-
-    // Set line style dashed, dotted etc
-    function SetLineStyle($s) {
-	if( is_numeric($s) ) {
-	    if( $s<1 || $s>4 ) 
-		JpGraphError::RaiseL(25101,$s);//(" Illegal numeric argument to SetLineStyle(): ($s)");
-	}
-	elseif( is_string($s) ) {
-	    if( $s == "solid" ) $s=1;
-	    elseif( $s == "dotted" ) $s=2;
-	    elseif( $s == "dashed" ) $s=3;
-	    elseif( $s == "longdashed" ) $s=4;
-	    else JpGraphError::RaiseL(25102,$s);//(" Illegal string argument to SetLineStyle(): $s");
-	}
-	else JpGraphError::RaiseL(25103,$s);//(" Illegal argument to SetLineStyle $s");
-	$this->line_style=$s;
-    }
-	
-    // Same as Line but take the line_style into account
-    function StyleLine($x1,$y1,$x2,$y2) {
-	switch( $this->line_style ) {
-	    case 1:// Solid
-		$this->Line($x1,$y1,$x2,$y2);
-		break;
-	    case 2: // Dotted
-		$this->DashedLine($x1,$y1,$x2,$y2,1,6);
-		break;
-	    case 3: // Dashed
-		$this->DashedLine($x1,$y1,$x2,$y2,2,4);
-		break;
-	    case 4: // Longdashes
-		$this->DashedLine($x1,$y1,$x2,$y2,8,6);
-		break;
-	    default:
-		JpGraphError::RaiseL(25104,$this->line_style);//(" Unknown line style: $this->line_style ");
-		break;
-	}
-    }
-
-    function Line($x1,$y1,$x2,$y2) {
-
-	$x1 = round($x1);
-	$x2 = round($x2);
-	$y1 = round($y1);
-	$y2 = round($y2);
-
-	if( $this->line_weight==0 ) return;
-	if( $this->use_anti_aliasing ) {
-	    $dx = $x2-$x1;
-	    $dy = $y2-$y1;
-	    // Vertical, Horizontal or 45 lines don't need anti-aliasing
-	    if( $dx!=0 && $dy!=0 && $dx!=$dy ) {
-		$this->WuLine($x1,$y1,$x2,$y2);
-		return;
-	    }
-	}
-	if( $this->line_weight==1 ) {
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	}
-	elseif( $x1==$x2 ) {		// Special case for vertical lines
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	    $w1=floor($this->line_weight/2);
-	    $w2=floor(($this->line_weight-1)/2);
-	    for($i=1; $i<=$w1; ++$i) 
-		imageline($this->img,$x1+$i,$y1,$x2+$i,$y2,$this->current_color);
-	    for($i=1; $i<=$w2; ++$i) 
-		imageline($this->img,$x1-$i,$y1,$x2-$i,$y2,$this->current_color);
-	}
-	elseif( $y1==$y2 ) {		// Special case for horizontal lines
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	    $w1=floor($this->line_weight/2);
-	    $w2=floor(($this->line_weight-1)/2);
-	    for($i=1; $i<=$w1; ++$i) 
-		imageline($this->img,$x1,$y1+$i,$x2,$y2+$i,$this->current_color);
-	    for($i=1; $i<=$w2; ++$i) 
-		imageline($this->img,$x1,$y1-$i,$x2,$y2-$i,$this->current_color);		
-	}
-	else {	// General case with a line at an angle
-	    $a = atan2($y1-$y2,$x2-$x1);
-	    // Now establish some offsets from the center. This gets a little
-	    // bit involved since we are dealing with integer functions and we
-	    // want the apperance to be as smooth as possible and never be thicker
-	    // then the specified width.
-			
-	    // We do the trig stuff to make sure that the endpoints of the line
-	    // are perpendicular to the line itself.
-	    $dx=(sin($a)*$this->line_weight/2);
-	    $dy=(cos($a)*$this->line_weight/2);
-
-	    $pnts = array($x2+$dx,$y2+$dy,$x2-$dx,$y2-$dy,$x1-$dx,$y1-$dy,$x1+$dx,$y1+$dy);
-	    imagefilledpolygon($this->img,$pnts,count($pnts)/2,$this->current_color);
-	}		
-	$this->lastx=$x2; $this->lasty=$y2;		
-    }
-
-    function Polygon($p,$closed=FALSE,$fast=FALSE) {
-	if( $this->line_weight==0 ) return;
-	$n=count($p);
-	$oldx = $p[0];
-	$oldy = $p[1];
-	if( $fast ) {
-	    for( $i=2; $i < $n; $i+=2 ) {
-		imageline($this->img,$oldx,$oldy,$p[$i],$p[$i+1],$this->current_color);
-		$oldx = $p[$i];
-		$oldy = $p[$i+1];
-	    }
-	    if( $closed ) {
-		imageline($this->img,$p[$n*2-2],$p[$n*2-1],$p[0],$p[1],$this->current_color);
-	    }
-	}
-	else {
-	    for( $i=2; $i < $n; $i+=2 ) {
-		$this->StyleLine($oldx,$oldy,$p[$i],$p[$i+1]);
-		$oldx = $p[$i];
-		$oldy = $p[$i+1];
-	    }
-	}
-	if( $closed )
-	    $this->Line($oldx,$oldy,$p[0],$p[1]);
-    }
-	
-    function FilledPolygon($pts) {
-	$n=count($pts);
-	if( $n == 0 ) {
-	    JpGraphError::RaiseL(25105);//('NULL data specified for a filled polygon. Check that your data is not NULL.');
-	}
-	for($i=0; $i < $n; ++$i) 
-	    $pts[$i] = round($pts[$i]);
-	imagefilledpolygon($this->img,$pts,count($pts)/2,$this->current_color);
-    }
-	
-    function Rectangle($xl,$yu,$xr,$yl) {
-	$this->Polygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl,$xl,$yu));
-    }
-	
-    function FilledRectangle($xl,$yu,$xr,$yl) {
-	$this->FilledPolygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl));
-    }
-
-    function FilledRectangle2($xl,$yu,$xr,$yl,$color1,$color2,$style=1) {
-	// Fill a rectangle with lines of two colors
-	if( $style===1 ) {
-	    // Horizontal stripe
-	    if( $yl < $yu ) {
-		$t = $yl; $yl=$yu; $yu=$t;
-	    }
-	    for( $y=$yu; $y <= $yl; ++$y) {
-		$this->SetColor($color1);
-		$this->Line($xl,$y,$xr,$y);
-		++$y;
-		$this->SetColor($color2);
-		$this->Line($xl,$y,$xr,$y);
-	    }
-	}
-	else {
-	    if( $xl < $xl ) {
-		$t = $xl; $xl=$xr; $xr=$t;
-	    }
-	    for( $x=$xl; $x <= $xr; ++$x) {
-		$this->SetColor($color1);
-		$this->Line($x,$yu,$x,$yl);
-		++$x;
-		$this->SetColor($color2);
-		$this->Line($x,$yu,$x,$yl);
-	    }
-	}
-    }
-
-    function ShadowRectangle($xl,$yu,$xr,$yl,$fcolor=false,$shadow_width=3,$shadow_color=array(102,102,102)) {
-	// This is complicated by the fact that we must also handle the case where
-        // the reactangle has no fill color
-	$this->PushColor($shadow_color);
-	$this->FilledRectangle($xr-$shadow_width,$yu+$shadow_width,$xr,$yl-$shadow_width-1);
-	$this->FilledRectangle($xl+$shadow_width,$yl-$shadow_width,$xr,$yl);
-	//$this->FilledRectangle($xl+$shadow_width,$yu+$shadow_width,$xr,$yl);
-	$this->PopColor();
-	if( $fcolor==false )
-	    $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	else {		
-	    $this->PushColor($fcolor);
-	    $this->FilledRectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	    $this->PopColor();
-	    $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	}
-    }
-
-    function FilledRoundedRectangle($xt,$yt,$xr,$yl,$r=5) {
-	if( $r==0 ) {
-	    $this->FilledRectangle($xt,$yt,$xr,$yl);
-	    return;
-	}
-
-	// To avoid overlapping fillings (which will look strange
-	// when alphablending is enabled) we have no choice but 
-	// to fill the five distinct areas one by one.
-	
-	// Center square
-	$this->FilledRectangle($xt+$r,$yt+$r,$xr-$r,$yl-$r);
-	// Top band
-	$this->FilledRectangle($xt+$r,$yt,$xr-$r,$yt+$r-1);
-	// Bottom band
-	$this->FilledRectangle($xt+$r,$yl-$r+1,$xr-$r,$yl);
-	// Left band
-	$this->FilledRectangle($xt,$yt+$r+1,$xt+$r-1,$yl-$r);
-	// Right band
-	$this->FilledRectangle($xr-$r+1,$yt+$r,$xr,$yl-$r);
-
-	// Topleft & Topright arc
-	$this->FilledArc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-	$this->FilledArc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-	// Bottomleft & Bottom right arc
-	$this->FilledArc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-	$this->FilledArc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-    }
-
-    function RoundedRectangle($xt,$yt,$xr,$yl,$r=5) {    
-
-	if( $r==0 ) {
-	    $this->Rectangle($xt,$yt,$xr,$yl);
-	    return;
-	}
-
-	// Top & Bottom line
-	$this->Line($xt+$r,$yt,$xr-$r,$yt);
-	$this->Line($xt+$r,$yl,$xr-$r,$yl);
-
-	// Left & Right line
-	$this->Line($xt,$yt+$r,$xt,$yl-$r);
-	$this->Line($xr,$yt+$r,$xr,$yl-$r);
-
-	// Topleft & Topright arc
-	$this->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-	$this->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-	// Bottomleft & Bottomright arc
-	$this->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-	$this->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-    }
-
-    function FilledBevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='darkgray@0.4') {
-	$this->FilledRectangle($x1,$y1,$x2,$y2);
-	$this->Bevel($x1,$y1,$x2,$y2,$depth,$color1,$color2);
-    }
-
-    function Bevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='black@0.5') {
-	$this->PushColor($color1);
-	for( $i=0; $i < $depth; ++$i ) {
-	    $this->Line($x1+$i,$y1+$i,$x1+$i,$y2-$i);
-	    $this->Line($x1+$i,$y1+$i,$x2-$i,$y1+$i);
-	}
-	$this->PopColor();
-	
-	$this->PushColor($color2);
-	for( $i=0; $i < $depth; ++$i ) {
-	    $this->Line($x1+$i,$y2-$i,$x2-$i,$y2-$i);
-	    $this->Line($x2-$i,$y1+$i,$x2-$i,$y2-$i-1);
-	}
-	$this->PopColor();
-    }
-
-    function StyleLineTo($x,$y) {
-	$this->StyleLine($this->lastx,$this->lasty,$x,$y);
-	$this->lastx=$x;
-	$this->lasty=$y;
-    }
-	
-    function LineTo($x,$y) {
-	$this->Line($this->lastx,$this->lasty,$x,$y);
-	$this->lastx=$x;
-	$this->lasty=$y;
-    }
-	
-    function Point($x,$y) {
-	imagesetpixel($this->img,round($x),round($y),$this->current_color);
-    }
-	
-    function Fill($x,$y) {
-	imagefill($this->img,round($x),round($y),$this->current_color);
-    }
-
-    function FillToBorder($x,$y,$aBordColor) {
-	$bc = $this->rgb->allocate($aBordColor);
-	if( $bc == -1 ) {
-	    JpGraphError::RaiseL(25106);//('Image::FillToBorder : Can not allocate more colors');
-	}
-	imagefilltoborder($this->img,round($x),round($y),$bc,$this->current_color);
-    }
-	
-    function DashedLine($x1,$y1,$x2,$y2,$dash_length=1,$dash_space=4) {
-
-	$x1 = round($x1);
-	$x2 = round($x2);
-	$y1 = round($y1);
-	$y2 = round($y2);
-
-	// Code based on, but not identical to, work by Ariel Garza and James Pine
-	$line_length = ceil (sqrt(pow(($x2 - $x1),2) + pow(($y2 - $y1),2)) );
-	$dx = ($line_length) ? ($x2 - $x1) / $line_length : 0;
-	$dy = ($line_length) ? ($y2 - $y1) / $line_length : 0;
-	$lastx = $x1; $lasty = $y1;
-	$xmax = max($x1,$x2);
-	$xmin = min($x1,$x2);
-	$ymax = max($y1,$y2);
-	$ymin = min($y1,$y2);
-	for ($i = 0; $i < $line_length; $i += ($dash_length + $dash_space)) {
-	    $x = ($dash_length * $dx) + $lastx;
-	    $y = ($dash_length * $dy) + $lasty;
-			
-	    // The last section might overshoot so we must take a computational hit
-	    // and check this.
-	    if( $x>$xmax ) $x=$xmax;
-	    if( $y>$ymax ) $y=$ymax;
-			
-	    if( $x<$xmin ) $x=$xmin;
-	    if( $y<$ymin ) $y=$ymin;
-
-	    $this->Line($lastx,$lasty,$x,$y);
-	    $lastx = $x + ($dash_space * $dx);
-	    $lasty = $y + ($dash_space * $dy);
-	} 
-    } 
-
-    function SetExpired($aFlg=true) {
-	$this->expired = $aFlg;
-    }
-	
-    // Generate image header
-    function Headers() {
-	
-	// In case we are running from the command line with the client version of
-	// PHP we can't send any headers.
-	$sapi = php_sapi_name();
-	if( $sapi == 'cli' )
-	    return;
-	
-	if( headers_sent($file,$lineno) ) {
-	    $file=basename($file);
-	    $t = new ErrMsgText();
-	    $msg = $t->Get(10,$file,$lineno);
-	    die($msg);
-	}	
-	
-	if ($this->expired) {
-	    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-	    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
-	    header("Cache-Control: no-cache, must-revalidate");
-	    header("Pragma: no-cache");
-	}
-	header("Content-type: image/$this->img_format");
-    }
-
-    // Adjust image quality for formats that allow this
-    function SetQuality($q) {
-	$this->quality = $q;
-    }
-	
-    // Stream image to browser or to file
-    function Stream($aFile="") {
-	$func="image".$this->img_format;
-	if( $this->img_format=="jpeg" && $this->quality != null ) {
-	    $res = @$func($this->img,$aFile,$this->quality);
-	}
-	else {
-	    if( $aFile != "" ) {
-		$res = @$func($this->img,$aFile);
-		if( !$res )
-		    JpGraphError::RaiseL(25107,$aFile);//("Can't write to file '$aFile'. Check that the process running PHP has enough permission.");
-	    }
-	    else {
-		$res = @$func($this->img);
-		if( !$res )
-		    JpGraphError::RaiseL(25108);//("Can't stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP.");
-		
-	    }
-	}
-    }
-		
-    // Clear resource tide up by image
-    function Destroy() {
-	imagedestroy($this->img);
-    }
-	
-    // Specify image format. Note depending on your installation
-    // of PHP not all formats may be supported.
-    function SetImgFormat($aFormat,$aQuality=75) {		
-	$this->quality = $aQuality;
-	$aFormat = strtolower($aFormat);
-	$tst = true;
-	$supported = imagetypes();
-	if( $aFormat=="auto" ) {
-	    if( $supported & IMG_PNG )
-		$this->img_format="png";
-	    elseif( $supported & IMG_JPG )
-		$this->img_format="jpeg";
-	    elseif( $supported & IMG_GIF )
-		$this->img_format="gif";
-	    else
-		JpGraphError::RaiseL(25109);//("Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details.");
-				
-	    return true;
-	}
-	else {
-	    if( $aFormat=="jpeg" || $aFormat=="png" || $aFormat=="gif" ) {
-		if( $aFormat=="jpeg" && !($supported & IMG_JPG) )
-		    $tst=false;
-		elseif( $aFormat=="png" && !($supported & IMG_PNG) ) 
-		    $tst=false;
-		elseif( $aFormat=="gif" && !($supported & IMG_GIF) ) 	
-		    $tst=false;
-		else {
-		    $this->img_format=$aFormat;
-		    return true;
-		}
-	    }
-	    else 
-		$tst=false;
-	    if( !$tst )
-		JpGraphError::RaiseL(25110,$aFormat);//(" Your PHP installation does not support the chosen graphic format: $aFormat");
-	}
-    }	
-} // CLASS
-
-//===================================================
-// CLASS RotImage
-// Description: Exactly as Image but draws the image at
-// a specified angle around a specified rotation point.
-//===================================================
-class RotImage extends Image {
-    var $m=array();
-    var $a=0;
-    var $dx=0,$dy=0,$transx=0,$transy=0; 
-	
-    function RotImage($aWidth,$aHeight,$a=0,$aFormat=DEFAULT_GFORMAT) {
-	$this->Image($aWidth,$aHeight,$aFormat);
-	$this->dx=$this->left_margin+$this->plotwidth/2;
-	$this->dy=$this->top_margin+$this->plotheight/2;
-	$this->SetAngle($a);	
-    }
-	
-    function SetCenter($dx,$dy) {
-	$old_dx = $this->dx;
-	$old_dy = $this->dy;
-	$this->dx=$dx;
-	$this->dy=$dy;
-	$this->SetAngle($this->a);
-	return array($old_dx,$old_dy);
-    }
-	
-    function SetTranslation($dx,$dy) {
-	$old = array($this->transx,$this->transy);
-	$this->transx = $dx;
-	$this->transy = $dy;
-	return $old;
-    }
-
-    function UpdateRotMatrice()  {
-	$a = $this->a;
-	$a *= M_PI/180;
-	$sa=sin($a); $ca=cos($a);		
-	// Create the rotation matrix
-	$this->m[0][0] = $ca;
-	$this->m[0][1] = -$sa;
-	$this->m[0][2] = $this->dx*(1-$ca) + $sa*$this->dy ;
-	$this->m[1][0] = $sa;
-	$this->m[1][1] = $ca;
-	$this->m[1][2] = $this->dy*(1-$ca) - $sa*$this->dx ;
-    }
-
-    function SetAngle($a) {
-	$tmp = $this->a;
-	$this->a = $a;
-	$this->UpdateRotMatrice();
-	return $tmp;
-    }
-
-    function Circle($xc,$yc,$r) {
-	// Circle get's rotated through the Arc() call
-	// made in the parent class
-	parent::Circle($xc,$yc,$r);
-    }
-
-    function FilledCircle($xc,$yc,$r) {
-	// If we use GD1 then Image::FilledCircle will use a 
-	// call to Arc so it will get rotated through the Arc
-	// call.
-	if( $GLOBALS['gd2'] ) {
-	    list($xc,$yc) = $this->Rotate($xc,$yc);
-	}
-	parent::FilledCircle($xc,$yc,$r);
-    }
-	
-    function Arc($xc,$yc,$w,$h,$s,$e) {
-	list($xc,$yc) = $this->Rotate($xc,$yc);
-	$s += $this->a;
-	$e += $this->a;
-	parent::Arc($xc,$yc,$w,$h,$s,$e);
-    }
-
-    function FilledArc($xc,$yc,$w,$h,$s,$e) {
-	list($xc,$yc) = $this->Rotate($xc,$yc);
-	$s += $this->a;
-	$e += $this->a;
-	parent::FilledArc($xc,$yc,$w,$h,$s,$e);
-    }
-
-    function SetMargin($lm,$rm,$tm,$bm) {
-	parent::SetMargin($lm,$rm,$tm,$bm);
-	$this->dx=$this->left_margin+$this->plotwidth/2;
-	$this->dy=$this->top_margin+$this->plotheight/2;
-	$this->UpdateRotMatrice();
-    }
-	
-    function Rotate($x,$y) {
-	// Optimization. Ignore rotation if Angle==0 || ANgle==360
-	if( $this->a == 0 || $this->a == 360 ) {
-	    return array($x + $this->transx, $y + $this->transy );
-	}
-	else {
-	    $x1=round($this->m[0][0]*$x + $this->m[0][1]*$y,1) + $this->m[0][2] + $this->transx;
-	    $y1=round($this->m[1][0]*$x + $this->m[1][1]*$y,1) + $this->m[1][2] + $this->transy;
-	    return array($x1,$y1);
-	}
-    }
-
-    function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) {
-	list($toX,$toY) = $this->Rotate($toX,$toY);
-	parent::CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight,$aMix);
-
-    }
-	
-    function ArrRotate($pnts) {
-	$n = count($pnts)-1;
-	for($i=0; $i < $n; $i+=2) {
-	    list ($x,$y) = $this->Rotate($pnts[$i],$pnts[$i+1]);
-	    $pnts[$i] = $x; $pnts[$i+1] = $y;
-	}
-	return $pnts;
-    }
-	
-    function Line($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->Rotate($x1,$y1);
-	list($x2,$y2) = $this->Rotate($x2,$y2);
-	parent::Line($x1,$y1,$x2,$y2);
-    }
-
-    function Rectangle($x1,$y1,$x2,$y2) {
-	// Rectangle uses Line() so it will be rotated through that call
-	parent::Rectangle($x1,$y1,$x2,$y2);
-    }
-	
-    function FilledRectangle($x1,$y1,$x2,$y2) {
-	if( $y1==$y2 || $x1==$x2 )
-	    $this->Line($x1,$y1,$x2,$y2);
-	else 
-	    $this->FilledPolygon(array($x1,$y1,$x2,$y1,$x2,$y2,$x1,$y2));
-    }
-	
-    function Polygon($pnts,$closed=FALSE,$fast=false) {
-	//Polygon uses Line() so it will be rotated through that call
-	parent::Polygon($pnts,$closed,$fast);
-    }
-	
-    function FilledPolygon($pnts) {
-	parent::FilledPolygon($this->ArrRotate($pnts));
-    }
-	
-    function Point($x,$y) {
-	list($xp,$yp) = $this->Rotate($x,$y);
-	parent::Point($xp,$yp);
-    }
-	
-    function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) {
-	list($xp,$yp) = $this->Rotate($x,$y);
-	return parent::StrokeText($xp,$yp,$txt,$dir,$paragraph_align,$debug);
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/imgdata_balls.inc b/nightly-test-server/jpgraph/imgdata_balls.inc
deleted file mode 100644
index 7f02c70..0000000
--- a/nightly-test-server/jpgraph/imgdata_balls.inc
+++ /dev/null
@@ -1,1064 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_ROUNDBALLS.INC
-// Description:	Base64 encoded images for small round markers
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Balls extends ImgData {
-    var $name = 'Round Balls';
-    var $an = array(MARK_IMG_LBALL => 'imgdata_large',
-		    MARK_IMG_MBALL => 'imgdata_small',
-		    MARK_IMG_SBALL => 'imgdata_xsmall',
-		    MARK_IMG_BALL => 'imgdata_xsmall');
-    var $colors_1 = array('blue','lightblue','brown','darkgreen',
-			      'green','purple','red','gray','yellow','silver','gray');
-    var $index_1  = array('blue'=>9,'lightblue'=>1,'brown'=>6,'darkgreen'=>7,
-			      'green'=>8,'purple'=>4,'red'=>0,'gray'=>5,'silver'=>3,'yellow'=>2);
-    var $maxidx_1 = 9 ;
-
-    var $colors_2 = array('blue','bluegreen','brown','cyan',
-			  'darkgray','greengray','gray','green',
-			  'greenblue','lightblue','lightred',
-			  'purple','red','white','yellow');
-			  
-	
-    var $index_2 =  array('blue'=>9,'bluegreen'=>13,'brown'=>8,'cyan'=>12,
-			  'darkgray'=>5,'greengray'=>6,'gray'=>2,'green'=>10,
-			  'greenblue'=>3,'lightblue'=>1,'lightred'=>14,
-			  'purple'=>7,'red'=>0,'white'=>11,'yellow'=>4);
-			
-    var $maxidx_2 = 14 ;
-
-
-    var $colors_3 = array('bluegreen','cyan','darkgray','greengray',
-			  'gray','graypurple','green','greenblue','lightblue',
-			  'lightred','navy','orange','purple','red','yellow');
-	
-    var $index_3 = array('bluegreen'=>1,'cyan'=>11,'darkgray'=>14,'greengray'=>10,
-			 'gray'=>3,'graypurple'=>4,'green'=>9,'greenblue'=>7,
-			 'lightblue'=>13,'lightred'=>0,'navy'=>2,'orange'=>12,
-			 'purple'=>8,'red'=>5,'yellow'=>6);
-    var $maxidx_3 = 14 ;
-
-    var $colors,$index,$maxidx;
-    var $imgdata_large ;
-    var $imgdata_small ;
-    var $imgdata_xsmall ;
-
-
-    function GetImg($aMark,$aIdx) {
-	switch( $aMark ) {
-	    case MARK_IMG_SBALL:
-	    case MARK_IMG_BALL:
-		$this->colors = $this->colors_3;
-		$this->index = $this->index_3 ;
-		$this->maxidx = $this->maxidx_3 ;
-		break;
-	    case MARK_IMG_MBALL:
-		$this->colors = $this->colors_2;
-		$this->index = $this->index_2 ;
-		$this->maxidx = $this->maxidx_2 ;
-		break;
-	    default:
-		$this->colors = $this->colors_1;
-		$this->index = $this->index_1 ;
-		$this->maxidx = $this->maxidx_1 ;
-		break;
-	}
-	return parent::GetImg($aMark,$aIdx);
-    }
-
-    function ImgData_Balls() {
-
-//==========================================================
-// File: bl_red.png
-//==========================================================
-	$this->imgdata_large[0][0]= 1072 ;
-	$this->imgdata_large[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAByF'.
-	    'BMVEX/////////xsb/vb3/lIz/hIT/e3v/c3P/c2v/a2v/Y2P/'.
-	    'UlL/Skr/SkL/Qjn/MTH/MSn/KSn/ISH/IRj/GBj/GBD/EBD/EA'.
-	    'j/CAj/CAD/AAD3QkL3MTH3KSn3KSH3GBj3EBD3CAj3AAD1zMzv'.
-	    'QkLvISHvIRjvGBjvEBDvEAjvAADnUlLnSkrnMTnnKSnnIRjnGB'.
-	    'DnEBDnCAjnAADec3PeSkreISHeGBjeGBDeEAjWhITWa2vWUlLW'.
-	    'SkrWISnWGBjWEBDWEAjWCAjWAADOnp7Oa2vOGCHOGBjOGBDOEB'.
-	    'DOCAjOAADJrq7Gt7fGGBjGEBDGCAjGAADEpKS/v7+9QkK9GBC9'.
-	    'EBC9CAi9AAC1e3u1a2u1Skq1KSm1EBC1CAi1AACtEBCtCBCtCA'.
-	    'itAACngYGlCAilAACghIScOTmcCAicAACYgYGUGAiUCAiUAAiU'.
-	    'AACMKSmMEACMAACEa2uEGAiEAAB7GBh7CAB7AABzOTlzGBBzCA'.
-	    'BzAABrSkprOTlrGBhrAABjOTljAABaQkJaOTlaCABaAABSKSlS'.
-	    'GBhSAABKKSlKGBhKAABCGBhCCABCAAA5CAA5AAAxCAAxAAApCA'.
-	    'ApAAAhAAAYAACc9eRyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFD'.
-	    'UHLytKAAAB4UlEQVR4nGNgIAK4mGjrmNq6BmFIWMmISUpKSmk5'.
-	    'B8ZEokj4qoiLiQCBgqald3xaBpKMj6y4sLCQkJCIvIaFV0RaUR'.
-	    'lCSk5cWEiAn19ASN7QwisuraihHiajKyEixM/NwckjoKrvEACU'.
-	    'qumpg7pAUlREiJdNmZmLT9/cMzwps7Smc3I2WEpGUkxYkJuFiY'.
-	    'lTxszePzY1v7Shc2oX2D+K4iLCgjzsrOw8embuYUmZeTVtPVOn'.
-	    'gqSslYAOF+Ln4ZHWtXMPTcjMrWno7J82rRgoZWOsqaCgrqaqqm'.
-	    'fn5peQmlsK1DR52vRaoFSIs5GRoYG5ub27n19CYm5pdVPnxKnT'.
-	    'pjWDpLydnZwcHTz8QxMSEnJLgDL9U6dNnQ6Sio4PDAgICA+PTU'.
-	    'zNzSkph8hADIxKS46Pj0tKTc3MLSksqWrtmQySAjuDIT8rKy0r'.
-	    'Kz+vtLSmur6jb9JUIJgGdjxDQUVRUVFpaUVNQ1NrZ9+kKVOmTZ'.
-	    'k6vR0sldJUAwQNTU2dnX0TgOJTQLrSIYFY2dPW1NbW2TNxwtQp'.
-	    'U6ZMmjJt2rRGWNB3TO7vnzh5MsgSoB6gy7sREdY7bRrQEDAGOb'.
-	    'wXOQW0TJsOEpwClmxBTTbZ7UDVIPkp7dkYaYqhuLa5trYYUxwL'.
-	    'AADzm6uekAAcXAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bl_bluegreen.png
-//==========================================================
-	$this->imgdata_large[1][0]= 1368 ;
-	$this->imgdata_large[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMMFi8hE9b2uAAABOVJREFUeNq9lk2sJFUVx3+3qv'.
-	    'tW95t57zFvhiFxmCFRUJRoNCQiJARMhiFx/Igxii5goTG6ZDAu'.
-	    '/EhcSCIrTAgLEiKsJ8ywABNZEMJXEDYCukAmjgjzBkK/j35V1d'.
-	    '333FtV97io97pfzwxfG86qcu/N+Z3zP+fcW/Apmfk4hx57+R/6'.
-	    'Rqmc9ykhsWjlsUngAA1fXIQ7b73pI/186IGHnn9dH/8frC8v4I'.
-	    'PiG53uaerR4GmKkv31mB8cyfjd946ZTwR66qVX9OTWIi8UKUv9'.
-	    'BOrZXpYZvFeiBvzI0fgSUSFKwbVG+Pl1V3HH0VvNR4KeeukV/f'.
-	    'PmMmdHhst76aXD64AbeVQ9bjNHaiGOC2o3wLrAb2/4LL/84ffn'.
-	    'fCdzkOdayKpLppBemrBsU5Y1Zdmm9LJdGU6E/t4M24Q26jRDRL'.
-	    'j3mdc49cSTekFsMzs5XuTsyLDUNSDQ25NwKOly9YIl22MYhJr/'.
-	    'uoDtBBoT0CxBRGYOAhibIaOCe//2MpfM6KHnX9cXipSlbkKWmS'.
-	    'nk9iv38J0jixw7vJfrTMYBOvhSoQHJBS09ANELloAGDxW8tfoW'.
-	    'J+5/UC8CPS0LU7r3SpYarr7M8rmFjMPLXT6/33L4si7Z2GCrQC'.
-	    '+0ctlOaNs9DReV8vSLr85ndPLpZ/WNvHW+01kAVFBOGvJx0wYg'.
-	    'Sp47RIQ4Emwa8FGJXlDxSCFo5YlVgAo2hwPue/hRndboTV3EW2'.
-	    'Wp3k6wBp8q56QiWzecW6vwQfnPRkAWhFgILnq08jQ+R2nlUzzN'.
-	    'uES9Q7Vd+9fba7NmWJW61db2247qACmcjxXr45psYphsFGSLBu'.
-	    'kIajxqtjNwHkvAjQt0sg3crhPA2+fPz0CuyNFOghsGsr19mnFg'.
-	    'DGwrRm8UoAtNmQPQtRXDgdC4HImCFEKcCE0oieUWUYq2LtbiGp'.
-	    'mBQmppfIkjw45DK0QNNkvQ0jMBtPL0UnDRM1rN+cxKwzvOo2NP'.
-	    'tykR9a1kfpZNDLMG6QDYJqCTBvUe1+uxs+YKyPoGrTwY2HhvC4'.
-	    'CDWQd5d4xNApNQEEMgjgLdUCLBQ5cprL/trwNwKG2IUmDqDFd5'.
-	    'sr5BWrlxuSdLDFEFlqAzXGc4zFjupqh6uqYihpxJcEgp026l2w'.
-	    '7wFUv7Z6AvrfRo/n0OYzPwIKE3HUKAJg2otMBiElnsF7wngis9'.
-	    '3ZDjNnLi7huCWUZfueZKTu/M0V3HvmkOFDVxVKDG04ScejSgW5'.
-	    'V0q5JYFEghuDLHlTmToqDeGOCKIVtrW9hsdmXufEcNLPSXuPHa'.
-	    'a+bvuh9df5AH/v5PDFmbWQC3Mx+TVvfGVTRB2CodNgT2JBX003'.
-	    'aANZAYS/BxCv32TV/l2C03G7jgmfjGiT/qmeEmibEYm7XzAO2k'.
-	    'A+pbgHhBgydqu54YO5eRiLCy7yDvPP6Xqf+5Z+Lu277OYuOpiw'.
-	    'H15oBmlNOMcmK5RbP+PrEscGU+DSAxdg4CICIkxnLP8aNz63Og'.
-	    'H3/rdvOb795GVhuaYo0oBc3GGrEsUPVTwO6a7LYd+X51x3Hu/t'.
-	    'lP5tS65FN+6okn9U+n/sqb596dTvhOF+02myXTmkQNrOw7yD3H'.
-	    'j14E+UDQjp24/0E9/eKrbA4HH3aMK1b2ccvXvswjv//1J/s5ud'.
-	    'Due/hRPfP+OmfOrk7vrn7a48ihA3zh8CH+8Iuffiw/n4r9H1ZZ'.
-	    '0zz7G56hAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_yellow.png
-//==========================================================
-	$this->imgdata_large[2][0]= 1101 ;
-	$this->imgdata_large[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'.
-	    'BMVEX//////////+///+f//9b//8b//73//7X//63//6X//5T/'.
-	    '/4z//4T//3P//2v//1r//0r//0L//zH//yn//yH//xj//xD//w'.
-	    'j//wD/90L/9zn/9zH/9xj/9xD/9wj/9wD39yn37zn37zH37yH3'.
-	    '7xD37wj37wDv70Lv50rv50Lv5znv5yHv5xjv5wjv5wDn51Ln5x'.
-	    'Dn3jHn3iHn3hjn3hDn3gje3oze3nPe3lLe1oze1nPe1lLe1ine'.
-	    '1iHe1hje1hDe1gje1gDW1qXW1mvWzqXWzkLWzhjWzhDWzgjWzg'.
-	    'DOzrXOzq3OzpzOzgDOxkrOxinOxhjOxhDOxgjOxgDGxqXGxnvG'.
-	    'xmvGvRjGvRDGvQjGvQDFxbnAvr6/v7+9vaW9vZS9vQi9vQC9tR'.
-	    'C9tQi9tQC7u7W1tZS1tXu1tTG1tQi1rRC1rQi1rQCtrYytrSGt'.
-	    'rQitrQCtpYStpSGtpQitpQClpYSlpXulpQClnBClnAilnACcnG'.
-	    'ucnAicnACclAiclACUlFqUlCmUlAiUlACUjFKUjAiUjACMjFKM'.
-	    'jEqMjACMhACEhACEewB7ezF7exB7ewB7cwBzcylzcwBzaxBzaw'.
-	    'BraxhrawhrawBrYxBrYwBjYwBjWgBaWgBaUgCXBwRMAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwkRFBKiJZ4hAAAB7ElEQVR4nI3S+1vS'.
-	    'UBgHcB67WJmIMWAVdDHEDLBC6Go0slj3Ft0m9RRBWQEmFZFDEM'.
-	    'Qgt0EMFBY7p/+198hj1kM/9N1+++x73rOd6XT/kStnTx4fPzd9'.
-	    'uwfOjFhomj7smAhwj/6Cm2O0xUwy6g7cCL99uCW3jtBmE7lsdr'.
-	    'fvejgpzP7uEDFRRoqy2k8xQPnypo2BUMP6waF9Vpf3ciiSzErL'.
-	    'XTkPc0zDe3bsHDAcc00yoVgqL3UWN2iENpspff+2vn6D0+NnZ9'.
-	    '6lC5K6RuSqBTZn1O/a3rd7v/MSez+WyIpVFX8GuuCA9SjD4N6B'.
-	    'oRNTfo5PCAVR0fBXoIuOQzab1XjwwNHx00GOj8/nKtV1DdeArk'.
-	    '24R+0ul9PjmbrHPYl+EipyU0OoQSjg8/m83kl/MMhx0fjCkqio'.
-	    'SMOE7t4JMAzDsizH81AqSdW2hroLPg4/CEF4PhKNx98vlevrbY'.
-	    'QQXgV6kXwVfjkTiSXmhYVcSa7DIE1DOENe7GM6lUym0l+EXKks'.
-	    'K20VAeH2M0JvVgrZfL5Qqkiy0lRVaMBd7H7EZUmsiJJcrTdVja'.
-	    'wGpdbTLj3/3qwrUOjAfGgg4LnNA5tdQx14Hm00QFBm65hfNzAm'.
-	    '+yIFhFtzuj+z2MI/MQn6Uez5pz4Ua41G7VumB/6RX4zMr1TKBr'.
-	    'SXAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_silver.png
-//==========================================================
-	$this->imgdata_large[3][0]= 1481 ;
-	$this->imgdata_large[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAADAF'.
-	    'BMVEUAAADOzs7Gxsa9vb21tbXOxsbOzsbGzsb3///O1ta1vb2c'.
-	    'paVSWlpKWlpSY2ve5+97hIze7/9aY2vO5/9zhJRaa3tSY3PGzt'.
-	    'aMlJxrc3tja3NKUlpCSlK1vcZze4RSWmPW5/+Upb3G3v9zhJxS'.
-	    'Y3t7jKVaa4TO3veltc6ElK1re5Rjc4ycpbV7hJRaY3M5QlLn7/'.
-	    '/Gzt6lrb2EjJzO3v9ja3vG1ve9zu+1xueltdacrc6UpcaMnL1C'.
-	    'SlqElLV7jK1zhKVre5zW3u/O1ue1vc6ttcaMlKVze4xrc4RSWm'.
-	    'tKUmPG1v+9zve1xu+tveeltd6crdbe5/+9xt6cpb17hJxaY3s5'.
-	    'QlrW3vfO1u/Gzue1vdattc6lrcaUnLWMlK2EjKVze5Rrc4xja4'.
-	    'RSWnNKUmtCSmO9xuecpcZ7hKVaY4TW3v/O1vfGzu+1vd6ttdal'.
-	    'rc69xu+UnL2MlLWEjK1ze5xrc5R7hK1ja4zO1v+1veettd6lrd'.
-	    'aMlL3Gzv/39//W1t7Gxs61tb29vcatrbWlpa2cnKWUlJyEhIx7'.
-	    'e4TW1ufGxta1tcZSUlqcnK3W1u+UlKW9vda1tc57e4ytrcalpb'.
-	    '1ra3vOzu9jY3OUlK29vd6MjKWEhJxaWmtSUmNzc4xKSlpjY3tK'.
-	    'SmNCQlqUjJzOxs7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAD///9fnkWVAAAAAnRSTlP/AOW3'.
-	    'MEoAAAABYktHRP+lB/LFAAAACXBIWXMAAABFAAAARQBP+QatAA'.
-	    'AB/klEQVR42mNgxAsYqCdd3+lcb4hLmj8wMMvEu8DCMqYbU9op'.
-	    'UEFB2MTb26eyysomFl06XEEhUCHLpAKo2z/fujikEUVaXUFBMB'.
-	    'BouLePuV+VVWGRciIXknSEsImCQd3//xwmPr65llaFcSFJHkjS'.
-	    '3iYmWUDZ//8NfCr989NjNUMSUyTg0jneSiaCINn/gmlVQM12qg'.
-	    'lJnp5waTMTE5NAkCyHWZW/lXWNfUlikmdYK0zax7siS4EDKJtd'.
-	    'mQeU1XRwLBdLkRGASucWmGVnZ4dnhZvn5lmm29iVOWpnJqcuko'.
-	    'JKR1Wm5eTkRKYF5eblp9sU2ZeUJiV7zbfVg0pH56UFBQXNjIqK'.
-	    'jgkujItX1koKTVmYajsdKu2qETVhwgSXiUDZ2Bn9xqUeoZ5e0t'.
-	    'LzYYZ3B092ndjtOnmKTmycW1s7SHa+l5dtB8zlccE6RlN0dGbM'.
-	    'mDVbd5KupNBcL6+F82XgHouLj5vRP2PWLGNdd4+ppnxe8tJec6'.
-	    'XnNsKkm0uVQ5RDRHQTPTym68nPlZbvkfYCexsa5rpJ2qXa5Umm'.
-	    'ocmec3m8vHjmSs+fgxyhC5JDQ8WSPT2lvbzm8vDIe0nbtiBLN8'.
-	    '8BigNdu1B6Lsje+fPbUFMLi5TMfGmvHi/puUAv23q2YCTFNqH5'.
-	    'MvPnSwPh3HasCbm3XUpv+nS5VtrkEkwAANSTpGHdye9PAAAASn'.
-	    'RFWHRzaWduYXR1cmUANGJkODkyYmE4MWZhNTk4MTIyNDJjNjUx'.
-	    'NzZhY2UxMDAzOGFhZjdhZWIyNzliNTM2ZGFmZDlkM2RiNDU3Zm'.
-	    'NlNT9CliMAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bl_purple.png
-//==========================================================
-	$this->imgdata_large[4][0]= 1149 ;
-	$this->imgdata_large[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACAV'.
-	    'BMVEX/////////7///5///1v//xv//rf//pf//lP//jP//hP//'.
-	    'c///a///Wv//Wvf/Uv//Sv//Qv//Qvf/Off/Mf//Kf//If//If'.
-	    'f/GP//GPf/EP//EPf/CP//CPf/CO//AP//APf3Oe/3Kff3Ke/3'.
-	    'Ie/3GO/3EO/3AO/vSu/vSufvOefvMefvIefvGOfvEOfvCOfvAO'.
-	    'fnUufnSufnMd7nId7nGN7nGNbnEN7nCN7nAN7ejN7ejNbec97e'.
-	    'c9beUtbeQtbeIdbeGNbeENbeCNbeANbWpdbWa9bWQs7WGM7WEM'.
-	    '7WCM7WAM7Otc7Orc7OnM7OSsbOIb3OGMbOEMbOCMbOAM7OAMbG'.
-	    'pcbGnMbGe8bGa8bGKbXGEL3GCL3GAL3FucXBu73AvsC/v7+9pb'.
-	    '29Ka29GLW9ELW9CLW9AL29ALW5rrm1lLW1e7W1MbW1GKW1EK21'.
-	    'CLW1CK21AK2tjK2thKWtMaWtIaWtGJytCK2tCKWtAK2tAKWlhK'.
-	    'Wle6WlEJylCJylAKWlAJyca5ycGJScEJScCJScAJycAJSUWpSU'.
-	    'UoyUKZSUEIyUCIyUAJSUAIyMUoyMSoyMIYSMEISMCISMAIyMAI'.
-	    'SECHuEAISEAHt7MXt7EHt7CHt7AHt7AHNzKXNzEGtzAHNzAGtr'.
-	    'GGtrEGNrCGtrAGtrAGNjCFpjAGNjAFpaAFpaAFIpZn4bAAAAAX'.
-	    'RSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsS'.
-	    'AdLdfvwAAAAHdElNRQfTAwkRFB0ymoOwAAAB9UlEQVR4nGNgIA'.
-	    'K42hhqGtm5+WFIWClKycvLK6gbuARGoEj4aMjLSElISUir6Tt7'.
-	    'x+aEIWR8leQlwEBSTc/CK7awLguuR0lGQkJMVFRUTFJVzwko1d'.
-	    'oFk9OQl5IQE+Dh5hVR0TV3CkkvbJgyASJjDZIR5GBl5eRX0TH1'.
-	    'DEqrbJ2ypBEspSgvJSXKw8bMxMavbOLoGZNf1TZlybw4oIyfLN'.
-	    'BxotxsLEzsQiaOHkFpBQ2905esrAZK2SpIAaUEuDm5+LTNPAKj'.
-	    'C+pbps1evrIDKGWnLictKSkuLKyoZQyUya9o7Z2+YMXKGUApew'.
-	    'M9PTVdXR0TEwf3wOjUirruafOXL18xFyjl72Kpb25qaurg4REU'.
-	    'EFVe2zJ5zpLlK1aCpbydnZ2dnDwDA6NTopLLeiZNXbB8BcTAyP'.
-	    'TQ0JDg4KCY1NS83JKmiVOBepYvX9UPlAovzEiPSU/LLyior2vq'.
-	    'mjZr3vLlIF01IC+XVhUWFlZW1Lc290ycOGfxohVATSsXx4Oksn'.
-	    'vaWlsb2tq6J0+bM2/RohVA81asbIcEYueU3t7JU6ZNnwNyGkhm'.
-	    '+cp5CRCppJnzZ8+ZM3/JUogECBbBIixr8Yqly8FCy8F6ltUgoj'.
-	    'lz7sqVK2ByK+cVMSCDxoUrwWDVysXt8WhJKqG4Y8bcuTP6qrGk'.
-	    'QwwAABiMu7T4HMi4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_gray.png
-//==========================================================
-	$this->imgdata_large[5][0]= 905 ;
-	$this->imgdata_large[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAABO1'.
-	    'BMVEX////////3///39/fv7+/e5+fW3t7Wzs7WxsbG1tbGzsbG'.
-	    'xsbDxMS/v7++wMC+v7+9zsa9xsa9vb29tbW9ra29pa24uLi1xs'.
-	    'a1vb21tbWxtrattbWmpqalra2cra2cpaWcnJycjIyUpaWUnJyU'.
-	    'lJSUjIyMnJyMnJSMlJSMlIyMjJSMjIyElJSElIyEjIyEhIR7jI'.
-	    'x7hIR7hHt7e3t7e3N7e2tzhIRze3tze3Nzc3Nre3trc3Nrc2tr'.
-	    'a2tjc3Njc2tja3Nja2tjY2NjWlpaa2taY2taY2NaY1paWlpaUl'.
-	    'JSY2NSY1pSWlpSWlJSUlJSUkpKWlpKWlJKUlpKUlJKUkpKSkpK'.
-	    'SkJCUlJCUkJCSkpCSkJCQkI5Sko5QkI5Qjk5OUI5OTkxQkIxOT'.
-	    'kxMTkxMTEpMTEhMTEhKSkYISEpy7AFAAAAAXRSTlMAQObYZgAA'.
-	    'AAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdE'.
-	    'lNRQfTAwkRFQfW40uLAAABx0lEQVR4nI3SbXfSMBQA4NV3nce5'.
-	    'TecAHUywRMHSgFuBCFsQUqwBS1OsWQh0GTj//y8wZUzdwQ/efM'.
-	    'tzcm/uuXdj4z9ic/PR9k4qk1qDnf0X2/uZzKt8GaRvSubg4LVp'.
-	    'mkWzCGAT/i3Zsm2XNQHLsm2n2937LaaNnGoJFAEo27B50qN0ay'.
-	    'Wg26lXsw8fP8nmzcJb2CbsnF5JmmCE8ncN404KvLfsYwd7/MdV'.
-	    'Pdgl/VbKMIzbuwVgVZw2JlSKJTVJ3609vWUY957lgAUd1KNcqr'.
-	    'yWnOcOPn8q7d5/8PywAqsOOiVDrn42NFk+HQ7dVuXNYeFdBTpN'.
-	    'nY5JdZl8xI5Y+HXYaTVqEDp1hAnRohZM03EUjMdhn5wghOoNnD'.
-	    'wSK7KiiDPqEtz+iD4ctdyAifNYzUnScBSxwPd6GLfRURW7Ay5i'.
-	    'pS5bmrY8348C5vvUI+TLiIVSJrVA0heK/GDkJxYMRoyfCSmk4s'.
-	    'uWc3yic/oBo4yF374LGQs5Xw0GyQljI8bYmEsxVUoKxa6HMpAT'.
-	    'vgyhU2mR8uU1pXmsa8ezqb6U4mwWF/5MeY8uLtQ0nmmQ8UWYvb'.
-	    'EcJaYWar7QhztrO5Wr4Q4hDbAG/4hfTAF2iCiWrCEAAAAASUVO'.
-	    'RK5CYII=' ; 
-
-//==========================================================
-// File: bl_brown.png
-//==========================================================
-	$this->imgdata_large[6][0]= 1053 ;
-	$this->imgdata_large[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAABoV'.
-	    'BMVEX////Gzs7GvbXGrZTGpXu9nHO1nHO1nIy9taXGxs7GtaXO'.
-	    'nHPGlFrGjEq9hEq1hEqte0Klczmcazmce1KtnIzGxsbGvb3OlF'.
-	    'LOlFq9hFKte0qcc0KUYzGEWimMc1K9ta3OnGvOnGPWnGO9jFq9'.
-	    'jFKlc0KUazmMYzl7UilzUjGtpZzGxr3GnGPWpWvepXO1hFJ7Wj'.
-	    'FrSiFjUjG1ra3GnHPvxpT/5733zpythFKUa0KEYzlzUilaOSF7'.
-	    'Wjm9jErvvYz/99b///f/78bnrYS1hFqle0p7UjFrSiljQiFCMR'.
-	    'iMhHO9lGvGjFLWnGv/3q3////erXuthEqlc0paQiFKMRhSQin/'.
-	    '1qX/997//++cc0pjSilaQilKORhCKRiclIy9pYzGlGPntYT33q'.
-	    '3vvZSEWjlSOSE5KRB7c2O1lHutczmthFqte1JrWkqtjGtCKRBa'.
-	    'SjmljGuca0KMYzGMaznOztaclISUYzmEWjFKOSF7a1qEYzFaSi'.
-	    'GUjISEa0pKOSm9vb2llIxaQhg5IQiEc2tzY0paORilnJy1raVS'.
-	    'OSljUkJjWkKTpvQWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkREiei'.
-	    'zP2EAAAB9UlEQVR4nGWS/VfSUBjHL5QluhhBxtwyWcCus5Blpm'.
-	    'wDC4ONaWXCyBi7RMZmpQ2Bypm9W/byV3cHHo/W88s95/s5z/d5'.
-	    'uwCcCh/4L3zAf+bs0NC588On9QAYGSUuBINk6GI4cmnsBLk8Go'.
-	    '1SFEGMkzRzZeLq5JE8FvDHouw1lqXiCZJOcnCKnx4AcP0GBqmZ'.
-	    'mRgRT9MMB4Wbs7cGSXNRik3dnp9fiMUzNCNKgpzN9bsaWaQo9s'.
-	    '7dfH7pXiFTZCBU1JK27LmtBO8TDx7mV1eXHqXXyiIUFLWiVzHx'.
-	    'BxcJIvV4/cn6wkqmWOOwmVE3UQOAp6HxRKL5bGPj+VwhUhalFq'.
-	    '8alm5vAt+LlySZTsebzcKrraIIW4JqZC3N3ga+1+EQTZKZta1M'.
-	    'pCZCSeDViqVrThsEdsLJZLJYLpZrHVGScrKBvTQNtQHY6XIM02'.
-	    'E6Ik7odRW1Dzy3N28n3kGuB3tQagm7UMBFXI/sATAs7L5vdbEs'.
-	    '8Lycm923NB0j5wMe6KOsKIIyxcuqauxbrmlqyEWfPmPy5assY1'.
-	    'U1SvWKZWom9nK/HfQ3+v2HYZSMStayTNN0PYKqg11P1nWsWq7u'.
-	    '4gJeY8g9PLrddNXRdW8Iryv86I3ja/9s26gvukhDdvUQnIjlKr'.
-	    'IdZCNH+3Xw779qbG63f//ZOzb6C4+ofdbzERrSAAAAAElFTkSu'.
-	    'QmCC' ; 
-
-//==========================================================
-// File: bl_darkgreen.png
-//==========================================================
-	$this->imgdata_large[7][0]= 1113 ;
-	$this->imgdata_large[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'.
-	    'BMVEX////////3///v///n/+/e99bW/+/W99bO786/v7++vr69'.
-	    '/96999a7wb24vbu1/9a1zqW1u7itxrWosq6l772l1qWlxrWlxq'.
-	    '2lva2cxpSU562U3q2UxqWUvaWUpZyM77WM57WMvYyMtZyMrZyM'.
-	    'pZSMnJSEvZyEtYyErZSElIx7zpR7xpx7xpR7vZR7jIRz1pRzxp'.
-	    'RzjIRrzpRrzoxrxoxrtYRrrYxrrXtrpYRrhHNjzoxjxoxjxoRj'.
-	    'vYRjtYRjrXtjpXtjlGNje2tazoxazoRaxoxaxoRavYRatYRatX'.
-	    'tarXtapXNanHNajFpae2tSzoRSxoRSvXtStXtSrXtSrXNSpXNS'.
-	    'nHNSnGtSlGtSlGNSjGtSjGNKvXtKtXNKrXNKpWtKnGtKlGNKjG'.
-	    'NKhGNKhFJKc1pKa1JCrWtCpWtCnGtClGNCjGNCjFpChFpCe1JC'.
-	    'a1JCY1I5pWs5nGM5lGM5jFo5hFo5e1o5c0o5WkoxjFoxhFoxhF'.
-	    'Ixe1Ixc1Ixc0oxa0ophFIpe0opc0opa0opa0IpY0IpWkIpWjkp'.
-	    'UkIpUjkhc0oha0IhY0IhWjkhWjEhUjkhUjEhSjEhSikhQjEhQi'.
-	    'kYWjkYSjEYSikYQjEYQikQSikQQikQQiEQOSExf8saAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwkRFCaDkWqUAAAB+ElEQVR4nI3S+1vS'.
-	    'UBgHcGZlPV0ks/vFrmQWFimJjiwiYUJWjFBWFhClyZCy5hLrwA'.
-	    'x2EIwJC1w7zf2vnU0re+iHvs9++7x7zznvORbLf+TA6ct9fYMX'.
-	    'jrfAUYefpp+/iM1ykxf/lmuhUZ/PTwXC8dml5Wcd23o5H5Mk6b'.
-	    '5NUU8icXbhS67rNzn9JDnguOEYGQtEEtwC+Crs3RJ76P5A/znr'.
-	    'vsNX7wQnEiwHCtK7TTkW8rvdZ9uJtvZTLkxpHhSrP66bNEj7/P'.
-	    '3WNoLYeeSWQQCIpe9lQw7RNEU5rDsIYtcJ14Nocg7kRUlBNkxn'.
-	    'YmGKcp7cv3vPwR7XOJPmc0VYU3Sv0e9NOBAYG7Hbz/cMjTMveZ'.
-	    'CHkqxuTBv0PhYJB4N3XR6PJ5rMAPMnpGUxDX1IxSeMTEaZp1OZ'.
-	    'nGAIQiYtsalUIhFlmGTy3sO3AizJCKn6DKYryxzHsWyaneMzr6'.
-	    'cWxRVZVlFTe4SpE3zm+U/4+whyiwJcWVMQNr3XONirVWAklxcE'.
-	    'EdbqchPhjhVzGpeqhUKhWBQhLElr9fo3pDaQPrw5xOl1CGG1JE'.
-	    'k1uYEBIVkrb02+o6RItfq6rBhbw/tuINT96766KhuqYpY3UFPF'.
-	    'BbY/19yZ1XF1U0UNBa9T7rZsz80K0jWk6bpWGW55UzbvTHZ+3t'.
-	    'vbAv/IT+K1uCmhIrKJAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_green.png
-//==========================================================
-	$this->imgdata_large[8][0]= 1484 ;
-	$this->imgdata_large[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMMFjM4kcoDJQAABVlJREFUeNq9ll2MJFUVx3/11V'.
-	    'Vd/TE9vU0v4zLDwJIF16jBqLAPhsRXEiDqg0QTJiQSjcSNvCzw'.
-	    'sBEDDxizhvAAxBgf1oR9QF9NiE9ESFZkQyZB5WtddmdnZ3qqqr'.
-	    'uqbt367Cofqu3ZZpWVaDzJfbkf53//55z/PVdZXV3l/2H6f7Lp'.
-	    '5VdOV/4Nb+GmHpUeA7AdBNxc3kafNb73jRPK9Xwon8ToxVefqU'.
-	    'b91wibH5EkCQBCizFihTSviHUHR0hWws9xe3wvJ7/7nPKpgX5y'.
-	    '9oFqt3eOgWniRBoAbUBGGqZUibSYaeoT2B5bnkdaSA6793Cv/S'.
-	    'QPPbihXBfo5VdOV+8dfgnvwAU62YH5fCZ12sDujFkwyegCqTrB'.
-	    'iUOKTOJKj8jr88jS8zy6cXwBTP048nuHX0I0nDlIp7RpTG7kM0'.
-	    'sdyAYsTVukUuWGhlWHMq0ITL92lnUp9R1Obz/GmTNnqn9bDD8/'.
-	    '+0D1oX0O0zQZZDYCsK2j3Gl9jQqDfHiei8GfiKVLlsZkJaBAN1'.
-	    '0i6PgwUbB0GxG5/PrtE/xLRr959Znqw9452oVNI+jiJhnr1pe4'.
-	    'k29zB1/nFr5Kj7tpt1YYhJ0FJ7nUYbcJQBgahN2MzeCP/OipR6'.
-	    'prgN6Qr6ELFQFUWoRpNVjlKwxZB8DCpE+PtfEKqV1cUzxpVudu'.
-	    'GTBHA5Y1g99e+dUio9O/P1Vpq+/WE5GGjDSMoAtAQjrf3C52IP'.
-	    'QxpY4WK2hpReka9Gfrhqgz0bACRoCWjDh56kQ1z9FeuUUQxVhK'.
-	    'B92sD1VahM+bAJgcoJhGjP/6Ln8rAgDiRCVRKiIzxMkkodBJ85'.
-	    'im1IlEHbE4k1xyNveL4YP8HarmGJIOpqyjeQmfNHmTvnqZTWBt'.
-	    'vIJXpPwlukJSuSTKGK3pEwtJmiX00ZlInTyNscImO6XBITvH1c'.
-	    '8vVt2OucdKvIyeKRTNCivsEMgcpg6taYs30nfq0Gqg6hOSSFJ4'.
-	    'BSnJPht0IqEjWmOGocEI6F0J94F0qaL6BntTF0MtUfweKQKAPU'.
-	    'Wwp4OcVnQAmVb0p9DLOzjEhEKnGRmoRc7EzRGlwA6NujAKG4yP'.
-	    '6Sjwc4aVznZ7DK0xXdkDoJf0kGmFBniFBOBGcZSCCSKd0IwN0k'.
-	    'IS+QZWCGVZex4BnUxya3+Zt9iugQbcRFpIAtuHvAZulPUdLhUJ'.
-	    'RqegI3WcqaSXddlT3idsWMSRRGkEtNwmyTifAwyBo7LP+11J0e'.
-	    '7tM7pZOYblHkBLcqZ5LcYtw6Wbd4CM3SpE9foYZsIHoqDKCrbz'.
-	    'mLSQtPwmuhXgtBLs0GBdbXOhFGB7WBKO2F8GXt9/VO97Ya3atF'.
-	    '7nUHnwGjGGQqcPxFEdFqURkEidiZszAERoYIsGju1hq21kWee3'.
-	    'bw15+8WpsvAy3K1+i3JkkhZyPpxxjjPOsfOYiZ+TFhLPzQnHOU'.
-	    'tpzGB2dgA4tscIkKIx19Cxg/fPL7vQJu47eXt1VvsDK8pwPueZ'.
-	    'PuZoQMOqhRoJHSs0kKLBWjvjYinmeQGw1TaX1RFdfZ3LMzYLjA'.
-	    'C++dkn6AaH2Nobk6cxEzdnuG0TdC8zvdJkN0hqkFkO/jwL0fxa'.
-	    'so8sBcuFzQ+/+MRC+BeAHnpwQzn++ee5KT9Eshuy46dcKAXm32'.
-	    '0uzPQhS4GttkH2GQID2Wc0Y4LtAbDxhZ/x5A+e/uTG9+jGceXH'.
-	    '9/ySnnIXnUzOxXe1038mW3ZynNmam4yYWkO+f9cv+Oljz16/lV'.
-	    '9tDz/9nerc1hm8ZEScSRK7VvtYl1i1dklsOKyvc+zg/bzw1O8+'.
-	    '/efkajt56kR1ydlEJBc5H46xzbrJ3dY9wrB7hGcff+6/+279L+'.
-	    '0fHxyiE8XMLl4AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bl_blue.png
-//==========================================================
-	$this->imgdata_large[9][0]= 1169 ;
-	$this->imgdata_large[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACEF'.
-	    'BMVEX/////////7//35//v1v/exv/Wvf/Wrf/Wpf/Orf+/v7+9'.
-	    'tc69jP+9hP+5ucW1tc6tlP+rq7Wlpdalpcalpb2cnM6cnMacc/'.
-	    '+cWv+UlLWUjN6UjK2Uc/+Ma/+MUv+EhKWEa/+EQvd7e8Z7e7V7'.
-	    'e6V7c957Wv9za9Zza8ZzSv9ra5xrSv9rOf9rMe9jUudjQv9jOe'.
-	    '9aWpRaUt5aUpRaSu9aSudSUoxSSs5SSoxSMf9KQtZKOfdKMedK'.
-	    'Kf9KKe9CKf9CKb1CKa1CIfdCIedCId45MXs5Kfc5If85Iec5Id'.
-	    'Y5GP8xMbUxMXsxKc4xKZQxIf8xGP8xGO8xGN4xGNYxGL0xGK0p'.
-	    'KXMpIYwpGP8pGO8pGOcpGNYpGM4pEP8pEPcpEOcpEN4pENYpEM'.
-	    'YpEL0hGKUhEP8hEPchEO8hEOchEN4hENYhEM4hEMYhELUhCP8h'.
-	    'CO8hCN4YGJwYGGsYEL0YEK0YEHMYCN4YCM4YCMYYCL0YCKUYAP'.
-	    '8QEJQQEIwQEHsQEGsQCM4QCLUQCK0QCKUQCJwQCJQQCIwQCHMQ'.
-	    'CGsQAP8QAPcQAO8QAOcQAN4QANYQAM4QAMYQAL0QALUQAKUQAJ'.
-	    'QQAIQICGsICGMIAO8IANYIAL0IALUIAK0IAKUIAJwIAJQIAIwI'.
-	    'AIQIAHsIAHMIAGsIAGMAAN4AAMYAAK0AAJQAAIwAAIQAAHMAAG'.
-	    'sAAGMAAFrR1dDlAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFRPMOZ'.
-	    '/2AAAB+klEQVR4nGNgIAIIqeqZmBqpi2JISNml5lVXV3d198Yo'.
-	    'oUjwm1SnxsbGRsSm5ZfNXO4tjCTjVh0ABhFx6QV9E1Y0S8JkuN'.
-	    '3yAgLc7W3t/QPi4jPKJ8ye1yoIlTKpjvVy15eVUbN0i4zKLJ8w'.
-	    'ae6qcKgLqmMj3PUFWFl5NJ0CExLLJzbNW7BWCyxlXR0ba6/Axs'.
-	    'zELmfnkRBT0QiSKgXJCOflxUbYy3KyMHEoOrtEZ1c2TZ6/cMl6'.
-	    'eaCUamdsbIC7tjgPr4SBS3BMMVDTwkXr1hsDpYy6UmMj/O0tdX'.
-	    'QNbDxjknJLWqYsXLx0vStQynxGflpkZGCgs7Onp29SbtNkoMy6'.
-	    'pevCgFJWy3oyMuKjgoKCPWNCvEuqWhcsWrJ06XqQlPnMvrKyrM'.
-	    'TomJjkZAfHlNa2qdOWrlu63gcopbG8v7+hvLwip7g4JdSxsLZu'.
-	    '8dKlS9ettwBKic2eNXHChIkTG5tKqgpr2uo6loLAehWQx0LnzJ'.
-	    '49p6mpeXLLlNq6RUvqly6dvnR9Bx9ISnnlvLmT582bMr9t4aL2'.
-	    '+vrp60GaDCGB6Ld6wfwFCxYCJZYsXQ+SmL6+FBryInVrFi1atH'.
-	    'jJkqVQsH6pNCzCJNvXrQW6CmQJREYFEc2CYevXrwMLAyXXl0oz'.
-	    'IAOt0vVQUGSIkabkDV3DwlzNVDAksAAAfUbNQRCwr88AAAAASU'.
-	    'VORK5CYII=' ; 
-
-//==========================================================
-// File: bs_red.png
-//==========================================================
-	$this->imgdata_small[0][0]= 437 ;
-	$this->imgdata_small[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'.
-	    'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'.
-	    'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'.
-	    'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'.
-	    'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'.
-	    'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGDNEMgOYAAAAm0'.
-	    'lEQVR4nI3Q3RKCIBAFYGZMy9RKzX7MVUAUlQTe/+kS0K49d3wD'.
-	    '7JlFaG+CvIR3FvzPXgpLatxevVVS+Jzv0BDGk/UJwOkQ1ph2g/'.
-	    'Ct5ACX4wNT1o/zzUoJUFUGBiGfVnDTYGJgmrWy8iKEtp0Bpd2d'.
-	    'jLGu56MB7f4JOOfDJAwoNwslk/jOUi+Jts6RVNrC1hkhPy50Ef'.
-	    'u79/ADQMQSGQ8bBywAAAAASUVORK5CYII=' ; 
-
-
-//==========================================================
-// File: bs_lightblue.png
-//==========================================================
-	$this->imgdata_small[1][0]= 657 ;
-	$this->imgdata_small[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABVl'.
-	    'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'.
-	    'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'.
-	    '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'.
-	    'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'.
-	    'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'.
-	    'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'.
-	    'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'.
-	    'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'.
-	    'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'.
-	    'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGTok'.
-	    '9Yp9AAAAtElEQVR4nGNgIBaw8wkpKghzwvksPAKiUsraprYiLF'.
-	    'ARXkE2JiZ1PXMHXzGIAIekOFBE08TGLTCOCyzCLyvDxsZqZOnk'.
-	    'E56kAhaRV9NQUjW2tPcMjs9wBYsY6Oobmlk7egRGpxZmgkW0zC'.
-	    '2s7Jy9giKT8gohaiQcnVzc/UNjkrMLCyHmcHr7BYREJKTlFxbm'.
-	    'QOxiEIuKTUzJKgQCaZibpdOzQfwCOZibGRi4dcJyw3S4iQ4HAL'.
-	    'qvIlIAMH7YAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_gray.png
-//==========================================================
-	$this->imgdata_small[2][0]= 550 ;
-	$this->imgdata_small[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAMAAADH72RtAAABI1'.
-	    'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'.
-	    'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'.
-	    'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'.
-	    'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'.
-	    'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'.
-	    'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'.
-	    '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'.
-	    'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'.
-	    'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIA'.
-	    'AAsSAdLdfvwAAAAHdElNRQfTAwkUGiIctEHoAAAAfElEQVR4nI'.
-	    '2N2xKDIAwF+bZ2kAa8cNFosBD//yvKWGh9dN+yk9kjxH28R7ze'.
-	    'wzBOYSX6CaNB927Z9qZ66KTSNmBM7UU9Hx2c5qjmJaWCaV5j4t'.
-	    'o1ANr40sn5a+x4biElrqHgrXMeac/c1nEpFHG0LSFoo/jO/BeF'.
-	    'lJnFbT58ayUf0BpA8wAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_greenblue.png
-//==========================================================
-	$this->imgdata_small[3][0]= 503 ;
-	$this->imgdata_small[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAxl'.
-	    'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'.
-	    '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'.
-	    '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'.
-	    'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'.
-	    'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'.
-	    'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'.
-	    'dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfT'.
-	    'AwkUGTIqLgJPAAAAqklEQVR4nI2QVxOCMBCEM6Mi2OiCvSslJB'.
-	    'CUoqjn//9TYgCfubf9Zu9uZxFqO+rscO7b6l/LljMZX29J2pNr'.
-	    'YjmX4ZaIEs2NeiWO19NNacl8rHAyD4LR6jjw6PMRdTjZE0JOiU'.
-	    'dDv2ALTlzRvSdCCfAHGCc7yRPSrAQRQOWxKc3C/IUjBlDdUcM8'.
-	    '97vFGwBY9QsZGBc/A4DWZNbeXIPWZEZI0c2lqSute/gCO9MXGY'.
-	    '4/IOkAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bs_yellow.png
-//==========================================================
-	$this->imgdata_small[4][0]= 507 ;
-	$this->imgdata_small[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAzF'.
-	    'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'.
-	    'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'.
-	    'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'.
-	    'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'.
-	    'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'.
-	    '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'.
-	    'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAH'.
-	    'dElNRQfTAwkUGSDZl3MHAAAAqElEQVR4nI3QWRNDMBAA4My09E'.
-	    'IF1SME0VT1okXvM/3//6kEfbZv+81eswA0DfHxRpOV+M+zkDGG'.
-	    'rL63zCoJ2ef2RLZDIqNqYexyvFrY9ePkxGWdpvfzC7tEGtIRly'.
-	    'nqzboFKMlizAXbNnZyiFUKAy4bZ+B6W0lRaQDLmg4h/k7eFwDL'.
-	    'OWIky8qhXUBQ7gKGmsxpC+ah1TdriwByqG8GQNDNr6kLjf/wAx'.
-	    'KgEq+FpPbfAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_darkgray.png
-//==========================================================
-	$this->imgdata_small[5][0]= 611 ;
-	$this->imgdata_small[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAABJl'.
-	    'BMVEX////////o8v/f6O7W4OnR3PXL1OTL0evEyLvCzePAwMC/'.
-	    'v7a8wsq7t7C1xum1vtS1q6GzopmyxeKsrsOqvNWoq7anvN+nsb'.
-	    'qhrcGgqbGfpq6cp7+bqMuVmJKRm7yPlKKMnL6FkKWFipOEkLSE'.
-	    'j6qEhoqAiaB+jqd8haF7hZR4iJt4g5l3hZl2gIt2cod1hJVzeY'.
-	    'VzboJvhp9sfJJsb41peY1pd5xpdoVod4xndI5lcHxka4BjcYVg'.
-	    'Z3BfboFbb4lbZnZbYntaZ4laZYVZV3JYYWpXX3JWWm5VX4RVW2'.
-	    'NUYX9SXHxPWn5OVFxNWWtNVXVMVWFKV3xHUGZGU3dGTldFSlxE'.
-	    'Sk9ESXBCRlNBS3k/SGs/RU4+R1k9R2U6RFU2PUg0PEQxNU0ECL'.
-	    'QWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAA'.
-	    'CxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGQmbJetrAAAAtklEQV'.
-	    'R4nGNgwAK4JZTNNOWlYDxhMT4ZDTOzQE1uMF9CiJWVU0LbxDlS'.
-	    'G8QVF+FnZ2KRNHAIiPUHaZGSlmZj5lH19A1KjLUA8lXU5MWllF'.
-	    'yjo30TYr2BfG19G11b37CEeN84H38gX1HbwTUkOjo+zjfG3hLI'.
-	    'l1exCvCNCwnxjfMz0gTyRdXNHXx9fUNCQu2MwU6SN3ZwD42LCH'.
-	    'W30IK4T8vUJSAkNMhDiwPqYiktXWN9JZj7UQAAjWEfhlG+kScA'.
-	    'AAAASUVORK5CYII=' ; 
-
-
-//==========================================================
-// File: bs_darkgreen.png
-//==========================================================
-	$this->imgdata_small[6][0]= 666 ;
-	$this->imgdata_small[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABX1'.
-	    'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'.
-	    'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'.
-	    'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'.
-	    'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'.
-	    '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'.
-	    'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'.
-	    'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'.
-	    'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'.
-	    'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'.
-	    'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAwkUGRjxlcuZAAAAtElEQVR4nGNgIBZw8osqqIpzw/msfI'.
-	    'IiUmr6lo6SbFARASEOJiYtQ2uXADmIAJeEGFBE18LBMySBBywi'.
-	    'LC/LwcFiZuvmH5WiAxZR0tRW1DC3dfYJS8zyAouYGBibWtm7+o'.
-	    'TEpZfkgEX0rG3snNx9Q2NSCksgaqRd3Ty8gyLiU/NKSiDmcPsF'.
-	    'BodHJ2UUlZTkQ+xikIlNSE7LLgECZagL2VQyc0H8YnV2uD94jS'.
-	    'ILIo14iQ4HALarJBNwbJVNAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_purple.png
-//==========================================================
-	$this->imgdata_small[7][0]= 447 ;
-	$this->imgdata_small[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAnF'.
-	    'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'.
-	    'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'.
-	    'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'.
-	    'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'.
-	    'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGS'.
-	    'o5QpoZAAAAnElEQVR4nI3Q2xJDMBAG4MyQokWrZz3oSkJISJH3'.
-	    'f7dK0Gv/Xb7J7vyzCK0NjtPsHuH/2wlhTE7LnTNLCO/TFQjjIp'.
-	    'hHAA6bY06LSqppMAY47x+04HXTba2kAFlmQKr+YuVDCGUG2k6/'.
-	    'rNwYK8rKwKCnPxHnVS0aA3rag4UQslUGhrlk0Kpv1+sx3tLZ6w'.
-	    'dtYemMkOsnz8R3V9/hB87DEu2Wos5+AAAAAElFTkSuQmCC' ; 
-
-
-//==========================================================
-// File: bs_brown.png
-//==========================================================
-	$this->imgdata_small[8][0]= 677 ;
-	$this->imgdata_small[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABaF'.
-	    'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'.
-	    'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'.
-	    'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'.
-	    'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'.
-	    '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'.
-	    'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'.
-	    'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'.
-	    'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'.
-	    'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'.
-	    'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'.
-	    'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLd'.
-	    'fvwAAAAHdElNRQfTAwkUGho0tvl2AAAAtklEQVR4nGNgIBaoSg'.
-	    'mLKGpowfkGMty8AqJKpi4mRlAROR5ONg4JFUv3YHOIgDo/HwsT'.
-	    'q6yps29EsjZYREFIkJ2ZS9/OMzA20wEsIi8uKSZtaOPmH5WSFw'.
-	    'YW0VRW07Vw8vCLSMguLwCL6FlaObp6B0TGZxSXQ9TouHv6+IXG'.
-	    'JGYWlpdDzNEKCgmPjkvLKS0vL4LYxWAen5SelV8OBNZQFxrZ5h'.
-	    'aC+GX2MDczMBh7pZakehkTHQ4AA0Am/jsB5gkAAAAASUVORK5C'.
-	    'YII=' ; 
-
-//==========================================================
-// File: bs_blue.png
-//==========================================================
-	$this->imgdata_small[9][0]= 436 ;
-	$this->imgdata_small[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'.
-	    'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'.
-	    'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'.
-	    'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'.
-	    'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'.
-	    'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGhNNakHSAAAAmk'.
-	    'lEQVR4nI3P2xKCIBAGYGfM6SBWo1nauIqogaDA+z9dK9Lhrv47'.
-	    'vtl/2A2CfxNlJRRp9IETYGraJeEb7ocLNKznia8A7Db7umWDUG'.
-	    'sxAzhurxRHxok4KQGqCuEhlL45oU1D2w5BztY4KRhj/bCAsetM'.
-	    '2uObjwvY8/oX50JItYDxSyZSTrO2mNhvGMbaWAevnbFIcpuTr7'.
-	    't+5AkyfBIKSJHdSQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_green.png
-//==========================================================
-	$this->imgdata_small[10][0]= 452 ;
-	$this->imgdata_small[10][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAn1'.
-	    'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'.
-	    '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'.
-	    'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'.
-	    '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'.
-	    'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'.
-	    'AIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAw'.
-	    'kUGgW5vvSDAAAAnklEQVR4nI3QSxKCMAwA0M4gqCgoiiJ+kEAL'.
-	    'LQUq0PufzX7ENdnlJZNkgtDS2CYZvK6bf+7EoKLA9cH5SQzv6A'.
-	    'YloTywsAbYr44FrlgrXCMJwHl3xxVtuuFkJAPIcw2tGB9GcFli'.
-	    'oqEf5GTkSUhVMw2TtD0XSlnDOw3SznE5520vNEi7CwW9+Ayjyq'.
-	    'U/3+yPuq5gvhkhL0xlGnqL//AFf14UIh4mkEkAAAAASUVORK5C'.
-	    'YII=' ; 
-
-
-//==========================================================
-// File: bs_white.png
-//==========================================================
-	$this->imgdata_small[11][0]= 480 ;
-	$this->imgdata_small[11][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFTsY/ewvBQAAAW1JREFUeJytkz2u4jAUhT/jic'.
-	    'gfBUKiZhE0bIKeVbCWrIKenp6eDiGlCEEEBArIxvzGU4xeZjLk'.
-	    'jWb05lRXuvbx+exr4bouX1Xjyw7Atz81F4uFBYjjGIDhcCjq1o'.
-	    'k6nN1uZwFerxfP55Msy1itVmRZBsB4PK6YveHkeW5d18XzPIIg'.
-	    'wPd9Wq0WnU6HMAxJkoQoiuynOIfDwUopkVIihKAoCgAcx6Hdbm'.
-	    'OMIU1T5vN55eBKEikljUYDIX6kFUKU9e8aDAZlmjcca+1b7TgO'.
-	    '1+uVy+VS9nzfr8e53++VzdZaiqIgz3OMMWitOZ/PaK0JgqDeRC'.
-	    'mF53lIKYGfr3O73TDGoJQiTVO01nS73XqT4/FIs9kkCAIej0eZ'.
-	    'brPZEMcxSZKgtQZgMpmIWpN+vy+m06n1PK9yTx8Gy+WS/X5Pr9'.
-	    'er9GuHLYoiG4YhSilOpxPr9Zrtdlti/JriU5MPjUYjq7UuEWaz'.
-	    '2d+P/b/qv/zi75oetJcv7QQXAAAAAElFTkSuQmCC' ; 
-
-
-//==========================================================
-// File: bs_cyan.png
-//==========================================================
-	$this->imgdata_small[12][0]= 633 ;
-	$this->imgdata_small[12][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABPl'.
-	    'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'.
-	    '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'.
-	    'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'.
-	    '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'.
-	    'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'.
-	    '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'.
-	    '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'.
-	    'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'.
-	    'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwkUGQDi+VPPAAAAtElEQVR4nGNgIBawikipyIiy'.
-	    'wfksfJpGRkamNtr8LFARPiMFHmFDcztXfwGoFi0jLiZuZRtnry'.
-	    'BddrCIiJEGL6eklYO7X3iCOFhE2thESdHawdUnJDZFDiyiamZh'.
-	    'aevk5h0UlZSpBhaRtbN3dPHwDY5MSM+EqBFzc/f0DgiLTkjLzI'.
-	    'SYw6bjHxgaEZeckZmpD7GLQSAqJj4xNRMIBGFuFtRLA/ENhGBu'.
-	    'ZmDgkJBXl5fgIDocAAKcINaFePT4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_bluegreen.png
-//==========================================================
-	$this->imgdata_small[13][0]= 493 ;
-	$this->imgdata_small[13][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAvV'.
-	    'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'.
-	    'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'.
-	    '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'.
-	    'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'.
-	    '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'.
-	    'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'.
-	    'AJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGxNUcXCT'.
-	    'AAAAqUlEQVR4nI2Q1xKCMBREM2NHLCCogAGCjd6SqLT8/2cZKT'.
-	    '6zb3tm987OBWCsXoejp8rC35fi4+l6gXFZlD0Rz6fZ1tdDmKR9'.
-	    'RdOmkzmP7DDpilfX3SzvRgQ/Vr1uiZplfsCBiVf03RJd140wgj'.
-	    'kmNqMtuYXcxyYmNWJdRoYwzpM9qRvGujuCmSR7q7ARY00/MiWk'.
-	    'sCnjkobNEm1+HknDZgAqR0GKU43+wxdu2hYzbsHU6AAAAABJRU'.
-	    '5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_lightred.png
-//==========================================================
-	$this->imgdata_small[14][0]= 532 ;
-	$this->imgdata_small[14][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAA3l'.
-	    'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'.
-	    'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'.
-	    'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'.
-	    'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'.
-	    'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'.
-	    'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'.
-	    'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGjoP2Nm+AAAAr0'.
-	    'lEQVR4nGNgIBaYiOk62imYwPnMkiIyso76yhJSzFARMxkRNk49'.
-	    'a3t5OW6oFk1LVkYOfWUHKxUXiEYzLS12DnN3VXkjIRtFsIiSk5'.
-	    '6evqGqhYGKugAfWMRa1FpD2UHeQEXQRlgALCJur+rgbCUNFOAS'.
-	    'hqjRkZe3MpBTcwEKCEPMMTGSs3Xz8OQHCnBBHckt6OJpIyAMBD'.
-	    'wwN/MYc4H4LK4wNzMwmGrzcvFqmxIdDgDiHRT6VVQkrAAAAABJ'.
-	    'RU5ErkJggg==' ;
-
-//==========================================================
-// File: bxs_lightred.png
-//==========================================================
-	$this->imgdata_xsmall[0][0]= 432 ;
-	$this->imgdata_xsmall[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAA3l'.
-	    'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'.
-	    'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'.
-	    'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'.
-	    'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'.
-	    'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'.
-	    'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'.
-	    'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKBOgGhWjAAAAS0'.
-	    'lEQVR4nGNgQAEmunYmEJaMCKe1vBxYzJKVQ9lKBSSupKdnaKGi'.
-	    'zgdkiqs6WKnYcIGYJnK2HvzCwmCNgi42wsLCECNMeXlNUY0HAL'.
-	    'DaB7Du8MiEAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bxs_bluegreen.png
-//==========================================================
-	$this->imgdata_xsmall[1][0]= 397 ;
-	$this->imgdata_xsmall[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAvV'.
-	    'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'.
-	    'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'.
-	    '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'.
-	    'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'.
-	    '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'.
-	    'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'.
-	    'AJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKDVyF5Be'.
-	    'AAAASUlEQVR4nGNgQAFmYqJcEJaEOJ+UrD5YTJKFTZrfGCQuaq'.
-	    'glLWvMaQ5kqujo6hnbKIKYXPr68gp2dmCNJiZAlh3ECGsREWtU'.
-	    '4wF1kwdpAHfnSwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_navy.png
-//==========================================================
-	$this->imgdata_xsmall[2][0]= 353 ;
-	$this->imgdata_xsmall[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'.
-	    'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'.
-	    'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'.
-	    'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'.
-	    'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'.
-	    'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJxXO4axZAAAAR0'.
-	    'lEQVR4nGNgQAGskhKsEJaslIi8ijpYTJaDU1FVAyQuKSujoKKh'.
-	    'LQ5kSigpqWro6oOYrOoaWroGBmCNWiCWAdQwUVFWVOMBOp4GCJ'.
-	    's5S60AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_gray.png
-//==========================================================
-	$this->imgdata_xsmall[3][0]= 492 ;
-	$this->imgdata_xsmall[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABI1'.
-	    'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'.
-	    'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'.
-	    'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'.
-	    'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'.
-	    'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'.
-	    'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'.
-	    '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'.
-	    'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'.
-	    'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEA'.
-	    'AAsRAX9kX5EAAAAHdElNRQfTAwkUKC74clmyAAAAQklEQVR4nG'.
-	    'NgQAVBYVCGt5dXYEQ0mOnp5h4QFgVmeri6+4dHxYMVeHoFRUTH'.
-	    'gTUFBIZBWAwMkZEx8bFQM2Lj0UwHANc/DV6yq/BiAAAAAElFTk'.
-	    'SuQmCC' ; 
-
-//==========================================================
-// File: bxs_graypurple.png
-//==========================================================
-	$this->imgdata_xsmall[4][0]= 542 ;
-	$this->imgdata_xsmall[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABSl'.
-	    'BMVEX////////11P/MqdvKrNfAwMC+u7+9u7+4rr24lsi3rby3'.
-	    'lMe1rLq1o720q7i0oL20ksSzoryyqbaykMGxlb2wkL+vnbiujb'.
-	    '2sjLuri7qpl7GoirWoibenmK2mla6mjLKmhrSllauki7CjhrCj'.
-	    'hLGihLChg6+ggq2fkqadkKOcfqqai6Gag6WYe6WXeqSWeaOTd6'.
-	    'CTd5+Rdp6RdZ6RdZ2Qg5eOc5qMcpiLcZeJb5WIbpOHbZKGbJGE'.
-	    'a4+CaY2AZ4t/Z4p/Zop/Zol+Zol7ZIZ6Y4V5YoR1ZH11X391Xn'.
-	    '9zXX1yXXtxXHtvWnluWXhsV3VqVnNpVXJoVHFnU3BmUm9jUGth'.
-	    'VGdgTmheTGZcS2RcSmRaSWJYR19XRl5SQllRQlhQQVdPQFZOP1'.
-	    'VLPlFJO09IPE5IOk5FOEtEN0lDOEpDOElDNklCNkc/M0XhbrfD'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'EAAAsRAX9kX5EAAAAHdElNRQfTAwkUKCgREfyHAAAATUlEQVR4'.
-	    'nGNgQAEcIko8EBY3M5Ougy+IxSXMwmTsFsAHZMqrSRvZB0W7A5'.
-	    'k6FlYugXEZICaPr394Um4uSAFDRFRCbm4uxAihsDAhVOMBHT0L'.
-	    'hkeRpo8AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_red.png
-//==========================================================
-	$this->imgdata_xsmall[5][0]= 357 ;
-	$this->imgdata_xsmall[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'.
-	    'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'.
-	    'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'.
-	    'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'.
-	    'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'.
-	    'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIyjy5SVMAAAAS0'.
-	    'lEQVR4nGNgQAFsUpJsEJastIi8ijpYTJaDU0FVgxXIlJKVUVDR'.
-	    '0BYHMiUUlVQ1dPVBTDZ1dS1dAwOQAgYtbSDLAGIEq6goK6rxAD'.
-	    'yXBg73lwGUAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bxs_yellow.png
-//==========================================================
-	$this->imgdata_xsmall[6][0]= 414 ;
-	$this->imgdata_xsmall[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAzF'.
-	    'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'.
-	    'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'.
-	    'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'.
-	    'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'.
-	    'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'.
-	    '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'.
-	    'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAH'.
-	    'dElNRQfTAwkUIzoBXFQEAAAAS0lEQVR4nGNgQAFsDhJsEJaTo5'.
-	    '2skj5YzMnSSk7ZwBzIlOSUklPiMxYHMnW4FXT5VNVBTDZeXiNV'.
-	    'QUGQAgYBYyBLEGIEq5gYK6rxAH4kBmHBaMQQAAAAAElFTkSuQm'.
-	    'CC' ; 
-
-//==========================================================
-// File: bxs_greenblue.png
-//==========================================================
-	$this->imgdata_xsmall[7][0]= 410 ;
-	$this->imgdata_xsmall[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAxl'.
-	    'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'.
-	    '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'.
-	    '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'.
-	    'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'.
-	    'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'.
-	    'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'.
-	    'dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfT'.
-	    'AwkUJy5/6kV9AAAATUlEQVR4nGNgQAGCyuyCEJaGugKHviVYzF'.
-	    'hO3sxCWwDIVNLTM9PXtpEGMhW12Cy0DR1ATEFLSxZ7BweQAgYd'.
-	    'HUMHBweIEQKiogKoxgMAo/4H5AfSehsAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_purple.png
-//==========================================================
-	$this->imgdata_xsmall[8][0]= 364 ;
-	$this->imgdata_xsmall[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAnF'.
-	    'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'.
-	    'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'.
-	    'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'.
-	    'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'.
-	    'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIj'.
-	    'mBTjT/AAAASUlEQVR4nGNgQAGskhKsEJaCrJiSuhZYTEFASFlD'.
-	    'GyQuqSCnrK6tJwpkiquoamgbGIGYrFpaugbGxmCNunpAljHECB'.
-	    'ZBQRZU4wFSMAZsXeM71AAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_green.png
-//==========================================================
-	$this->imgdata_xsmall[9][0]= 370 ;
-	$this->imgdata_xsmall[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAn1'.
-	    'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'.
-	    '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'.
-	    'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'.
-	    '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'.
-	    'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'.
-	    'AIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAw'.
-	    'kUKBrZxq0HAAAATElEQVR4nGNgQAGccrIcEJaivISyhjaIxa7I'.
-	    'I6CiqcMKZMopKqho6OhLA5kyqmqaOobGICartraeoYkJSAGDnj'.
-	    '6QZQIxgk1Skg3VeABlVgbItqEBUwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_darkgreen.png
-//==========================================================
-	$this->imgdata_xsmall[10][0]= 563 ;
-	$this->imgdata_xsmall[10][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABX1'.
-	    'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'.
-	    'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'.
-	    'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'.
-	    'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'.
-	    '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'.
-	    'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'.
-	    'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'.
-	    'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'.
-	    'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'.
-	    'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'.
-	    'RQfTAwkUKCFozUQjAAAATUlEQVR4nGNgQAGcoqrcEJYQB5OhSw'.
-	    'CIxSXGwWThGcIDZCppK5o7hyV6AZl6NnbuoSmFICZ3YHB0RkkJ'.
-	    'SAFDbEJaSUkJxAjeyEheVOMBQj4MOEkWew4AAAAASUVORK5CYI'.
-	    'I=' ; 
-
-//==========================================================
-// File: bxs_cyan.png
-//==========================================================
-	$this->imgdata_xsmall[11][0]= 530 ;
-	$this->imgdata_xsmall[11][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABPl'.
-	    'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'.
-	    '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'.
-	    'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'.
-	    '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'.
-	    'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'.
-	    '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'.
-	    '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'.
-	    'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'.
-	    'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAA'.
-	    'AHdElNRQfTAwkUKQFKuFWqAAAATUlEQVR4nGNgQAGsUjJsEJaR'.
-	    'grC5qz9YzIiL28YriB3IlDZRsnYNiZUDMmXtHT2CE9JBTDb/wI'.
-	    'jkzEyQAoaomMTMzEyIERzy8hyoxgMAN2MLVPW0f4gAAAAASUVO'.
-	    'RK5CYII=' ; 
-
-//==========================================================
-// File: bxs_orange.png
-//==========================================================
-	$this->imgdata_xsmall[12][0]= 572 ;
-	$this->imgdata_xsmall[12][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABaF'.
-	    'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'.
-	    'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'.
-	    'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'.
-	    'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'.
-	    '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'.
-	    'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'.
-	    'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'.
-	    'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'.
-	    'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'.
-	    'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'.
-	    'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9k'.
-	    'X5EAAAAHdElNRQfTAwkUJBSSy88MAAAATUlEQVR4nGNgQAGqwo'.
-	    'paEBYPJ4eKezCIpc7HwmrqG6ENZMpLihm6RaWEAZl6Vo7ekRnF'.
-	    'IKZWSHhcTnk5SAFDfFJWeXk5xAjj1FRjVOMBeFwNcWYSLjsAAA'.
-	    'AASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_lightblue.png
-//==========================================================
-	$this->imgdata_xsmall[13][0]= 554 ;
-	$this->imgdata_xsmall[13][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABVl'.
-	    'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'.
-	    'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'.
-	    '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'.
-	    'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'.
-	    'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'.
-	    'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'.
-	    'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'.
-	    'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'.
-	    'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'.
-	    'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJziL'.
-	    'PvAsAAAATUlEQVR4nGNgQAHsQgqcEJYgG5Oegy+IxSHOxmTiFs'.
-	    'gFZMprKBnbB8e7AplaFlbOQUl5ICanX0BEWmEhSAFDVGxKYWEh'.
-	    'xAjusDBuVOMBJO8LrFHRAykAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_darkgray.png
-//==========================================================
-	$this->imgdata_xsmall[14][0]= 574 ;
-	$this->imgdata_xsmall[14][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABm'.
-	    'JLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsRAAALEQF/ZF+RAAAB'.
-	    'iElEQVR42k3QPU8TYRwA8P//ebkXrgdIColXRAOEkJqbaExMut'.
-	    'DBhE1GNjYHPg+DG6ODiU6QOLjVxITBcFKBYCstlAC2Bz17fe76'.
-	    'vLD6+wg/1FpTRFR5lpaub/u1eGBGaAT4HneD4OlXx7avtDYUjT'.
-	    'HQabd2Ti8e3vVSKzxrtHS32wIpFVldno22Nqvvg2Bhl0gp/aNm'.
-	    'vJ3qqXAtLIva+ks1H0wqlSXi4+d6+OFTfRsAfHJx2d1od24rZP'.
-	    'xP2HzopINr1mkesX7ccojqif0v9crxWXODZTno3+dNGA7uWLsd'.
-	    'mUYU4fHJCViMG9umLBmM4L6fagZGg9QKfjZ+Qfy3C3G/B3mugF'.
-	    'IHHNcDf64E3KJALApk2p8CSolUUqLjFkyxOGMsTtFyJ+Wz57NQ'.
-	    '8DghS4sLB0svioeZZo7nPhFoUKZDIVFbglkTTnl5/rC8snjAkJ'.
-	    'Bk/XV5LxHC/v7tR8jzTFPbg8LENK9WX0Vv31T2AEmCSmlKCCoh'.
-	    'ROnP1U1tPFYjJBRcbtzSf+GPsFTAQBq1n4AAAABKdEVYdHNpZ2'.
-	    '5hdHVyZQBiYzYyMDIyNjgwYThjODMyMmUxNjk0NWUzZjljOGFh'.
-	    'N2VmZWFhMjA4OTE2ZjkwOTdhZWE1MzYyMjk0MWRkM2I5EqaPDA'.
-	    'AAAABJRU5ErkJggg==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_bevels.inc b/nightly-test-server/jpgraph/imgdata_bevels.inc
deleted file mode 100644
index 2186671..0000000
--- a/nightly-test-server/jpgraph/imgdata_bevels.inc
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_BEVELS.INC
-// Description:	Base64 encoded images for round bevels
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Bevels extends ImgData {
-    var $name = 'Round Bevels';
-    var $an = array(MARK_IMG_BEVEL => 'imgdata');
-    
-    var $colors = array('green','purple','orange','red','yellow');
-    var $index  = array('green'=>1,'purple'=>4,'orange'=>2,'red'=>0,'yellow'=>3);
-    var $maxidx = 4 ;
-
-    var $imgdata ;
-
-    function ImgData_Bevels() {
-//==========================================================
-// File: bullets_balls_red_013.png
-//==========================================================
-	$this->imgdata[0][0]= 337 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/f3+LFwcmNxMuxm62DmqKth1VpZmIWg6fv'.
-	    'HCa7K0BwMEytCjFnIyUlEBg9vhQvAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNhk+pYJVAAAAl0lEQVR4nE2Q2xLDIAgFHUWBKJf//9'.
-	    'oekmbafVDZARRbK/pYTKP9WNcNv64zzUdd9BjmrgnsVXRNSzO3'.
-	    'CJ5ahdhy0XKQkxld1kxb45j7dp0x2lBNOyVgQpMaoadX7Hs7zr'.
-	    'P1yKj47DKBnKaBKiSAkNss7O6PkMx6kIgYXISQJpcZCqdY6KR+'.
-	    'J1PkS5Xob/h7MNz8x6D3fz5DKQjpkZOBYAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: bullets_balls_green_013.png
-//==========================================================
-	$this->imgdata[1][0]= 344 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/e3+K3vriUub/Dm18j4xc3ob10k0ItqQlU'.
-	    'e5JBmwpxY1ENaKBgUh0iHgwsSre9AAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNTfJXtxZAAAAnklEQVR4nE2QWY4EMQhDUVhSIRC4/2'.
-	    'kbaqLp9p+f2AxAayAzDfiK9znPORuvH0x8Ss9z6I9sHp6tcxE9'.
-	    'nLmWmebmt5F5p2AR0+C9AWpLBjXRaZsCAT3SqklVp0YkAWaGtd'.
-	    'c5Z41/STYpPzW7BjyiRrwkVmQto/Cw9tNEMvsgcekyCyFPboIu'.
-	    'IsuXiKffYB4NK4r/h6d4g9HPPwCR7i8+GscIiiaonUAAAAAASU'.
-	    'VORK5CYII=' ; 
-
-//==========================================================
-// File: bullets_balls_oy_035.png
-//==========================================================
-	$this->imgdata[2][0]= 341 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/f3+K5tbqNwcjnkjXjbxR2i5anfEoNkbis'.
-	    'PBxpU0sZbZejKgdqIRIlERIwYtkYAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNgK0wEu5AAAAm0lEQVR4nE3QVxIEIQgEUErAgTHA/U'.
-	    '+7zbipf9RXgoGo0liMmX6RdSPLPtZM9F4LuuSIaZtZWffiU6Iz'.
-	    'Y8SOMF0NogBj30ioGRGLZgiPvce1TbIRz6oBQEbOFGK0rIoxrn'.
-	    '5hDomMA1cfGRCaRVhjS3gkzheM+4HtnlkXcvdZhWG4qZawewe6'.
-	    '9Jnz/TKLB/ML6HUepn//QczazuwFO/0Ivpolhi4AAAAASUVORK'.
-	    '5CYII=' ; 
-
-//==========================================================
-// File: bullets_balls_oy_036.png
-//==========================================================
-	$this->imgdata[3][0]= 340 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/e3+LO3hfYzz65ubiNwci6uQ12ipadgVGa'.
-	    'fwsNkbhnVkcaZ5dwSA8lFg7CEepmAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'.
-	    'RQfTAxcCBySi1nevAAAAjElEQVR4nFXPWw7EIAgFUNMoCMhj/6'.
-	    'staKczc/2RkwjS2glQ+w3YytgXCXCZpRo8gJdGxZadJws13CUP'.
-	    '4SZI4MYiUxypeiGGw1XShVBTNN9kLXP2GRrZPFvKgd7z/sqGGV'.
-	    '7C7r7r3l09alYN3iA8Yn+ImdVrNoEeSRqJPAaHfhZzLYwXstdZ'.
-	    'rP3n2bvdAI4INwtihiwAAAAASUVORK5CYII=' ;
-
-//==========================================================
-// File: bullets_balls_pp_019.png
-//==========================================================
-	$this->imgdata[4][0]= 334 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////+/v7i4eO/w8eHxcvKroNVormtfkjrMN2BeXQrepPc'.
-	    'Esy4IL+OFaR7F25LHF8mFRh5XXtUAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNgkjEpIxAAAAlElEQVR4nE2QAQ7FIAhDDTAVndL7n3'.
-	    'ZV/7JfEwMvFIWUlkTMVNInbVv5ZeJqG7Smh2QTBwJBpsdizAZP'.
-	    '5NyW0awhK8kYodnZxS6ECvPRp2sI+y7PBv1mN02KH7h77QCJ8D'.
-	    '4VvY5NUgEmCwj6ZMzHtJRgRSXwC1gfcqJJH0GBnSnK1kUQ72DY'.
-	    'CPBv+MCS/e0jib77eQAJxwiEWm7hFwAAAABJRU5ErkJggg==' ; 
-
-    }
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_diamonds.inc b/nightly-test-server/jpgraph/imgdata_diamonds.inc
deleted file mode 100644
index 49c9efb..0000000
--- a/nightly-test-server/jpgraph/imgdata_diamonds.inc
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_DIAMONDS.INC
-// Description:	Base64 encoded images for diamonds
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Diamonds extends ImgData {
-    var $name = 'Diamonds';
-    var $an = array(MARK_IMG_DIAMOND =>'imgdata');
-    var $colors = array('lightblue','darkblue','gray', 
-			'blue','pink','purple','red','yellow');
-    var $index  = array('lightblue' =>7,'darkblue'=>2,'gray'=>6, 
-			'blue'=>4,'pink'=>1,'purple'=>5,'red'=>0,'yellow'=>3);
-
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Diamonds() {
-//==========================================================
-// File: diam_red.png
-//==========================================================
-	$this->imgdata[0][0]= 668 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'.
-	    'BMVEX///////+cAAD/AADOAABjAABrAADWGBjOCAj/CAj/GBj/'.
-	    'EBCcCAiMOTl7KSl7ISFzGBilGBjOEBBrCAjv5+eMQkK1QkKtMT'.
-	    'GtKSnWKSn/KSlzEBCcEBDexsb/tbXOe3ucWlqcUlKUSkr/e3vn'.
-	    'a2u9UlL/a2uEMTHeUlLeSkqtOTn/UlL/SkrWOTn/QkL/OTmlIS'.
-	    'H/MTH/ISH39/f/9/f35+fezs7/5+fvzs7WtbXOra3nvb3/zs7G'.
-	    'nJzvtbXGlJTepaW9jIy1hITWlJS1e3uta2ulY2P/lJTnhITne3'.
-	    'vGY2O9Wlr/c3PeY2O1Skr/Y2P/WlreQkLWISGlEBCglEUaAAAA'.
-	    'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'.
-	    'sSAdLdfvwAAAAHdElNRQfTAwsWEw5WI4qnAAABGUlEQVR4nHXQ'.
-	    '1XLDMBAFUKUCM1NiO8zcpIxpp8z0//9SWY7b2LHv6EU6s1qtAN'.
-	    'iMBAojLPkigpJvogKC4pxDuQipjanlICXof1RQDkYEF21mKIfg'.
-	    '/GGKtjAmOKt9oSyuCU7OhyiDCQnjowGfRnooCJIkiWJvv8NxnG'.
-	    'nyNAwFcekvZpPP3mu7Vrp8fOq8DYbTyjdnAvBj7Jbd7nP95urs'.
-	    '+MC2D6unF+Cu0VJULQBAlsOQuueN3Hrp2nGUvqppemBZ0aU7Se'.
-	    'SXvYZFMKaLJn7MH3btJmZEMEmGSOreqy0SI/4ffo3uiUOYEACy'.
-	    'OFopmNWlP5uZd9uPWmUoxvK9ilO9NtBo6mS7KkZD0fOJYqgGBU'.
-	    'S/T7OKCAA9tfsFOicXcbxt29cAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_pink.png
-//==========================================================
-	$this->imgdata[1][0]= 262 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgID/M5n/Zpn/zMz/mZn1xELhAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEi3tX8qUAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_blue.png
-//==========================================================
-	$this->imgdata[2][0]= 662 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA+V'.
-	    'BMVEX///+AgIAAAJwAAP8AAM4AAGMAAGsQEP8YGHMQEHMYGP8Q'.
-	    'EKUICJwICM5KSpQxMYQpKXsYGNYQEM4ICGsICP97e85aWpw5OY'.
-	    'xSUv85ObVCQt4xMa0pKa0hIaUpKf+9vd6EhLVra+dzc/9SUr1r'.
-	    'a/9aWt5SUt5CQrVaWv9KSv8hIXs5Of8xMf8pKdYhIdYYGKUhIf'.
-	    '/Ozs739//v7/fn5+/v7//n5/fW1ufOzufOzu/W1v+trc69veel'.
-	    'pc6trd6UlMa9vf+MjL21tfe1tf+UlNZzc61ra6Wlpf+EhOeMjP'.
-	    '9ra8ZSUpyEhP9CQoxKSrVCQv85Od4xMdYQENZnJhlWAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwsWEx3Snct5AAABFklEQVR4nHXR5XbD'.
-	    'IBgGYM6AuHsaqbvOfeuknev9X8xISbplSd5/8JyXwwcA/I0AKm'.
-	    'PFchVBdvKNKggKQx2VIoRwMZihMiQE49YUlWBCcPL0hYq4ITh+'.
-	    'qKECUoLDZWqoQNA766F/mJHlHXblPJJNiyURhM5eU9cNw5BlmS'.
-	    'IrLOLxhzfotF7vwO2j3ez2ap/TmW4AIM7DoN9+tu+vLk6Pdg9O'.
-	    '6ufXjfXLm6pxPACSJIpRFAa+/26DhuK6qjbiON40k0N3skjOvm'.
-	    'NijBmchF5mi+1jhQqDmWyIzPp1hUlrv8On5l+6mMm1tigFNyrt'.
-	    '5R97g+FKKyGKkTNKesXPJTZXOFIrUoKiypcTQVHjK4g8H2dWEQ'.
-	    'B8bvUDLSQXSr41rmEAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_yellow.png
-//==========================================================
-	$this->imgdata[3][0]= 262 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgIBmMwCZZgD/zADMmQD/QLMZAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEwcv/zIDAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_lightblue.png
-//==========================================================
-	$this->imgdata[4][0]= 671 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/1'.
-	    'BMVEX///+AgIAAnP8A//8Azv8AY/8Aa/8I//8Y1v8Izv8Y//8Q'.
-	    '//8InP8Qzv8Ypf85jP8he/8Yc/8Ia/8pe/8p//8p1v9Ctf8xrf'.
-	    '8prf8QnP8Qc/9CjP+1//97//9r//9S//9K//9C//85//8x//8h'.
-	    '//9r5/9K3v9S3v851v97zv9Svf85rf8hpf/G3v9SnP9anP9KlP'.
-	    '8xhP/n7//v7+f3///n///O//+U//9z//9j//9a//975/9C3v8h'.
-	    '1v+E5/+17/9j3v/O7//n9/+95/+l3v9jxv+U1v8Qpf9avf9Ktf'.
-	    '+Uxv+11v97tf9rrf+cxv+Mvf9jpf+tzv+Etf/O3v/39/8Akkxr'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'IAAAsSAdLdfvwAAAAHdElNRQfTAwsWEiHk6Ya/AAABGUlEQVR4'.
-	    'nHXQ13KDMBAF0J2o0E01GHDvJa7p3em95/+/JQJMYjDc0Yt0Zr'.
-	    'VaAaxHgtxwbSGPkGQpOIeQ2ORxJiJmNWYZyAhZR0WcgQGhViU0'.
-	    'nEGoedDHGxgRapRPcRpXhOr7XZzCmLjaXk9IIjvkOEmSRLG62+'.
-	    'F5XlEElhA5sW21GvXj6mGlDBfnJ51lr9svnvEKwH1hu2QPbwd3'.
-	    'N9eXVzuL7/Hn29frdKaamgcgy67L3HFG9gDefV+dm5qme4YRXL'.
-	    'oVR374mRqUELZYosf84XAxISFRQuMh4rrH8YxGSP6HX6H97NNQ'.
-	    'KEAaR08qCeuSnx2a8zIPWqUowtKHSRK91rAw0elmVYQFVc8mhq'.
-	    '7p5RD7Ps3IIwA9sfsFxFUX6eZ4Zh4AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_purple.png
-//==========================================================
-	$this->imgdata[5][0]= 657 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'.
-	    'BMVEX///////8xAP/OAP+cAP9jAP9rAP+cCP85CP/OEP9SKf/O'.
-	    'CP9CEP9zGP9rCP+lGP/WOf/WIf9KIf9jOf+MQv+EMf97If9zEP'.
-	    '+1Sv+lIf/ne//eUv/na//n5//Oxv/Wzv+chP9zUv97Wv9rQv9a'.
-	    'Mf9KGP/v5/+te/97Kf+9Y/+tOf+tKf+lEP/vtf/WMf/WKf/v7+'.
-	    'f39/+tnP+9rf9rSv9jQv9CGP+ljP+EY//Gtf+tlP+Ma/9zSv/e'.
-	    'zv+UUv+9lP+cWv+lY/+cUv+MOf+EKf+UQv/Opf/OhP/Ga/+1Qv'.
-	    '/Oe/+9Uv/ntf/eWv/eSv/WGP/3zv/vlP/WEP//9/+pL4oHAAAA'.
-	    'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'.
-	    'sSAdLdfvwAAAAHdElNRQfTAwsWEjX+M1LCAAABDklEQVR4nHXQ'.
-	    '1bLDIBAGYFqIEW+ksbr7cXd3ff93OUCamdOE/Mxw882yywLwPz'.
-	    '+gNKotlRFUVnNUQlCxTMRFCKEdE+MgpJaEiIOU4DKaoSIygtb3'.
-	    'FBUQrm3xjPK4JvXjK0A5hFniYSBtIilQVYUm+X0KTVNiYah+2q'.
-	    'ulFb8nUbSovD2+TCavwXQWmnMA6ro+di+uR5cPzfPhVqPV3N1p'.
-	    'n3b3+rimAWAYhP3xnXd7P6oc9vadPsa1wYEs00dFQRAFehlX21'.
-	    '25Sg9NOgwF5jeNTjVL9om0TjDc1lmeCKZ17nFPzhPtSRt6J06R'.
-	    'WKUoeG3MoXRa/wjLHGLodwZcotPqjsYngnWslRBZH91hWTbpD2'.
-	    'EdF1ECWW1SAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: diam_gray.png
-//==========================================================
-	$this->imgdata[6][0]= 262 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX//////wAzMzNmZmbMzMyZmZlq4Qo5AAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWExZFTxLxAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_blgr.png
-//==========================================================
-	$this->imgdata[7][0]= 262 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgIBmzP9m///M//+Z//8hMmBVAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEwCxm6egAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_pushpins.inc b/nightly-test-server/jpgraph/imgdata_pushpins.inc
deleted file mode 100644
index 2e588dc..0000000
--- a/nightly-test-server/jpgraph/imgdata_pushpins.inc
+++ /dev/null
@@ -1,518 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_PUSHPINS.INC
-// Description:	Base64 encoded images for pushpins
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_PushPins extends ImgData {
-    var $name = 'Push pins';
-    var $an = array(MARK_IMG_PUSHPIN => 'imgdata_small',
-		    MARK_IMG_SPUSHPIN => 'imgdata_small',
-		    MARK_IMG_LPUSHPIN => 'imgdata_large');
-
-    var $colors = array('blue','green','orange','pink','red');
-    var $index  = array('red' => 0, 'orange' => 1, 'pink' => 2, 'blue' => 3, 'green' => 4 ) ;
-    var $maxidx = 4 ;
-    var $imgdata_large, $imgdata_small ;
-
-    function ImgData_PushPins() {
-
-	// The anchor should be where the needle "hits" the paper
-	// (bottom left corner)
-	$this->anchor_x = 0;
-	$this->anchor_y = 1;
-
-//==========================================================
-// File: ppl_red.png
-//==========================================================
-	$this->imgdata_large[0][0]= 2490 ;
-	$this->imgdata_large[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMKBh4Ryh89CgAACUdJREFUeJy9mNtTFFcexz+/7p'.
-	    '4Lw1wZJKDGCAwmDAqUySamcCq1ed6k9mn3UfMP7F+1T3nYqn2J'.
-	    'lZdoDEjpbq0KG8EBFBFBEJye6Zmenkv32Ydu5GYiUMmeqq6uqT'.
-	    '6Xz3zP73aOcIKmAQkIFyD3N/jrBPwlKjLQEglVlJKyUjR3u7cc'.
-	    'WLoP3/4dvv03LNrQ8I6x1rFbDML9kOmHvh7IRHU9JKmUSG8vpF'.
-	    'IoXX/TV0AiEM5A5jT0noFMFMJHXUt/d5f9TUAbhtQ3cPFruDog'.
-	    '8klHMnmO0dGYe/myOJGINEwTz3F2higFXgy8PpAkOC+h8hoaCt'.
-	    '4ppHFcQAWSgOQlyI/p+lUjmRxWAwNJd3xca/f34yoFi4tgmjtD'.
-	    'NIFkJ4xcgBCgVqEBFJ9DqcZea/gNAAVEg7AOGYnHe9XoaJd3+X'.
-	    'LISSSwnz6lsbKCZ9sHh4UVdBkwdA6cPwNnIfJPmC3Ctgft3wwQ'.
-	    'QPkvTZJJnbExzfvsM2nMzVG7e5fG48d4lnXwTwEYCjJxuHQBog'.
-	    'BHUfKkgAIIhiGk06hTp/Dm5qS1uYlXLvtWd4gPgIiCrAEcVckT'.
-	    'Ab5p7TaYJrK1hQaEenrwSiVfQdc91P0kSp7Ii89D5ksY/kAkLy'.
-	    'IZXFdXkQjS1YUSEbdcRu168V6+HTUNIKJDRwdE+sBIQmP9Ld59'.
-	    'bEBA3of4F/D+uXb7rGaaCSmXI3pPj64PDaHCYfEqFVSjgWo2D2'.
-	    '73XlJNQTgCyQykIuBWoNKEeh1aLXBPBCggGdBOgxZVSjoajVhH'.
-	    'o5HWlIpq4bCQSgm9vXhK4ZZKh5SUYygp4J1EQVUD9xlU18BJQD'.
-	    'bUbJ5T5XJStyxN9fSI099P3baxV1dRloW2h2ivx/yakg2ot6F1'.
-	    'EkCa4G1D+zVEq5ArKTWM42Q6HUczQV7U66w9e0ZpdRXlOIQ5vF'.
-	    'VHUXILKify4jiEzkOqC3peQMoBQymFlMt4Dx6wUSxSsm2UZXEK'.
-	    'P30QvOUt8/2Sd78CdWwFDTA+gsw3cOlPcPUD+CQB52oQ21RKXM'.
-	    'eRhGXhOg7VoKrx8KuS4ygZhVg3ZI8FGIfwR9BVgAtfwxdXdP3L'.
-	    '86nUR91dXelNXTeWWy10paQHX602YAP1ADASAL7LJvFtMpOCc0'.
-	    'cG3FHuGlz6Gr4YEpnoTCbzsdHRbOzy5RCRiLRMk5rjyOtAimwA'.
-	    'U4U3SurBN/0wnAASBCVDIKpB4kiAB5Ub0/UvO9LpPAMDGfn005'.
-	    'AxPCzxep3Q6iqPLUseBoufCZRsAE6g5g5kKIDfKUj3wnpAG8QB'.
-	    '/Z1OIqANQuI65AtwNScyYXR2XlAXL2YZHzcklRKWl5GVFXFtGx'.
-	    'MoAiV/EQaAGH6BUQNWgQpwFngv+Ca8KUAQEBcwgTJHyMV7679R'.
-	    'XS8YqdSI6u/PMD5ukMtJY3GR2uQkr5aXeWVZOEALmA8WsIAxfL'.
-	    'd0goVLAdCOd+/YpgqeVtBv4yiA++q/RKKXixe7GB8PSyoljcVF'.
-	    'yg8fyubyMpulEk2lyAIfAAvAC+B+oOQFoAt/+0rAejB/EzjNri'.
-	    'vvqNnCd64jxcE39V8spnP+vMbAgDSePKE2NcXm06dslMuUlcID'.
-	    'TuFvqwXMBU8N39bGgRR+ki0Dz4L5DSAe9NGD7zq+6kcN1L6H2b'.
-	    'ao5WWaQHllRTafPmWrVMJUimoAQrBYJFjQwre7B6A8YAi8LCgD'.
-	    '5DVo6/hbb/iHK1KggvFeD3hHziQKEMuiNTNDbXGRTdtmw7Iwla'.
-	    'KGH0oqwbscLOoG46rAY6AOzRhY74PT6QuUKEN4PegXxd/yEDTT'.
-	    'YMWOk+oEaLkuFdNk0zTZwjfkavDUArXWgGXgFb4dEShXhfYqlI'.
-	    'ow3w9rg3B6ED60IOOA5oEYQBrcpG+mj9bg0VG8GMJhVDZLyzAo'.
-	    'VSq8rFYxXXefcjVgG9+uisDrXUCApoKSBcUHMBmHhfcgNwhtD3'.
-	    'q9IG6Lr15b4OUTmPwBJt8JqGuapp05o0mhoHnptLQfPsR+8IBK'.
-	    'uYyNH3yr+B77LHheA3tK1Ta+IrMeTL2C6Xl48TOsNWDDgAz7s5'.
-	    '/r+krP/eddCsbj8fDQ4GBm9MqVvvRXX2VULBayRGRzaYn1SoWa'.
-	    'UjgB4PIB5QK4ZgBXBKaAHxQsrED1H7CRgCUPwgHZDqACmhWwXv'.
-	    '2aDRqGYeRyufS169cvThQKV88PDuYbW1vJ5VRK+5euqxWlPMdX'.
-	    'SRqgreHbZGN3ijfKBXBTAeh2Fdwi2MofshP/dvKwCmKhp4m83Y'.
-	    'vj8Xg4l8tlCoXC0MTExMTFkZE/1m37wvLGRvKRacoD1209E7Fc'.
-	    'pZwYREOQqEJ4z3HskHLsz4AoXykPIBSN0t3dTTQafROoHdumXC'.
-	    '4fjoMiog0ODiauX7+eLxQKV3O53ETdti88nJnJ3rl505ifmWm3'.
-	    'arWSodR8GNbycDoNHy5C5jFold1k8d+DyvELNwg93d18/vnn9P'.
-	    'X1oes6nufx/Plz7t+/fxhQKSWJRCI5NjaWHxkZKdj1+sjSwkJm'.
-	    '+uZN/dZ337VqCwullGUVdZjsgIUC5LqhrUPvCugWuApeApPAzY'.
-	    'PKHWyaphGNRunt7WVwcBARwfM8Ojo6sCzrMKBhGLphGFEF2Wq1'.
-	    '2jc7M5OZ/vHH0MPbt93awkJJmeZsC6ZaMK3DCwvWdNioQUb5B6'.
-	    'AdBR+9SzkAz/NwHIeXL18iIui6TjgcJplMMjY2th8wHo+Hh4aG'.
-	    'MsPDw6fddru7+Phxx51bt/RbN260qwsLpZhlFZsw9QJ+2Pbrga'.
-	    'oJG2FY2oKwuTtVEz9uV34NbqdtbW0xPT1NNBoF4MyZM1y5coWu'.
-	    'rq5dQBHRcrlc4tq1a/l8Pj9RMs38ndu3Ez//9JNXLRZNyuXZJk'.
-	    'xVYKoExQpsK/+IaAuYb7no8zjC/R+A4zisrq7u+53NZjl16tQ+'.
-	    'QIlEIslsNpuPRCJXZ2dnh2/duNFRW1oy07a96MKd575yxRqU1B'.
-	    '5vPMpF5HHa1tYW9+7do7Ozc/eQpZTSQ6FQt1Lq8pMnT/5w7969'.
-	    'nuLcXE1rNufO9fRMhlKpOyvt9qPtVmvb25fFfvvWbrepVCqHwo'.
-	    'xaX19vff/996ZhGC8qlkW9Wt1Onz073fXxxz+6MB+9e9dUjuO+'.
-	    '7ebq9wLdB9hoNCrr6+s/4wf3FCJW3fPmTZhXsNWCprjuW66Dfr'.
-	    '928KAfBhJAEgiJSLuzs7OSTqctoFkqlZRt26j/I+L/AGjPTN4d'.
-	    'Nqn4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: ppl_orange.png
-//==========================================================
-	$this->imgdata_large[1][0]= 2753 ;
-	$this->imgdata_large[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQ0VCkHCzQAACk5JREFUeJytmGtzG0d2hp8zNw'.
-	    'AEcRdJ6EJK9FL0CqZUm9jWbkwq3vhDstl8dmLvz8rP2H8Q75ZT'.
-	    'pkRfpLgqsS6WIFEKGYkiSBCDO+banQ8DUpRWEkklXQUUqlCDfv'.
-	    'rp857pgfAOQ4AMOJdg4R/hX96Hf06bvDc5iT07i8yeg8ksiIAI'.
-	    '4TBi/ds9/vivD/njapNHvRBfHXMu410AM+BUoVSF05NQsi1sO4'.
-	    '8402AXwLQTuP31OAZO2aG0MEn14iSlnI1z3LnMk8IZYJyBwjIs'.
-	    '/TWsVIWPJkvMFS4zMfMhUp5BsoCpAAEBLYKaMFGn00jBxnvu02'.
-	    '35+JHmSJEnBpQEcPo38MmCxd/nS9Ry71Ga/g1W9a8gn0GsHkgA'.
-	    '6DGjxkqb5CoO+YxF3A3p+jGjQUzoK+L/V0ADzFMwtSR8eLbAr8'.
-	    'uXOTf9NzhTc0geSLUQcYHgYEH786RMg0zWJHV2Aitv4x/HpHVS'.
-	    'QA2YBqTTGIUq5qkPMWaWkVwPnPtAA/BevmZcjxaaUtHh8pJJGu'.
-	    'DpCB9FvT7A7YT7S3p5vFMNzmWo/O0MSx/Ms3TqI8r59zFTfUQe'.
-	    'I7SBODE3tnfoIxYnNHligwik0zAzDdVpyKbA8sff5YAeMEwgkV'.
-	    'cufQeTJzZoCsaFLKXPTnNpoUTNsSgJmNoGsuNQjIDwYD2HlnZy'.
-	    'k++yxTKXZfKTU8zOpjhneeQYkorSmGERtIlICBKRbLX+y98YN3'.
-	    'ADcNIm+bJD4U3pPnmbEaRgYVRTGBkDSSsmxKfY7ZLuDJA4hdjl'.
-	    'JEgyBB2SJOvQ9RzTpNKoEwNq0CNFvOXR3/HxMgYVPObaz8kPmh'.
-	    'hkEWMatAfRONGGvLizyOE9P8KkpwhPDAgQKJQbELUD0oOIhbbH'.
-	    'JeVTmowxjAgZutB5AoOngA+2DdYrcTyOyYZP9+QpBvI29vwEhb'.
-	    'It042BVQgDy9KTMfkwQG1A9ACCLlgBBGUwxxoc52WDh2ATyEPp'.
-	    '1hoaPvrEBh0Dq5an9OUsl/9hylk5b5c+mowLc4E2Jtw4Eoljyf'.
-	    'ogA/AGEAagNRjGyUxOmEycyVA5EWDBxrmUp3ytLIv/NJP69Goh'.
-	    '+9mFydIvS5PZYkvH1oY/RFtKymlwBFQAgQd+kAA6qSQ8pvn2mp'.
-	    'SkJkuVFHPHBnQMrEt5Sl+e4/Lvp51PF1PF5Xy6WMvOWZXMom8z'.
-	    'OZTQ8+j5sbQiMEwopsCIwRtBGIJSCdzbTGo9NimkDcgdC7Bg49'.
-	    'TG5n4/nfr0Si77WdYp1YzyZEkWPdteaEnB7pPqBTxuIf/VgciE'.
-	    'SgasCPwh+GNIkaNNag1RiPge5pEhMQVjfoLcF+eoXSvbKxedwn'.
-	    'LKzC3KWbOi5/sW5a44/SHFUSgVA7SCzRG0AvA9mPOgFIETgu4n'.
-	    'Ww0wNQWFAqRSL6D2ZQYBdDrQ7R7jXiwgRcvIL02makuTmWtpM/'.
-	    '+BlLMl5vuWzLVEuwH6oYnR1KS8kJINGXMM2YdfRlALoQoQQKeb'.
-	    'bDVwoMdxQMaLCwLo96HZTF5HbrEhmOftianfZisfzueKv7ZmrX'.
-	    'MsjhxKXZGBjzyeEHmSE3oWiggtyVGmE8DTIXTC5NxgAxOAGUM8'.
-	    'fun9mnSSLQ/CxNzOTgJ3LIMgoGwkKBiiMyaVviHVkdCO4FEKNv'.
-	    'LQzWBYHfITPa4UBVM0LR/WB7ARJsdDDTjA6deYFIFUOimJ3d0E'.
-	    'sNdLavYYgBpthqKcjiiJRO8K6CK0CsJTjfQAGaJtD9vQFAxNNQ'.
-	    '1FB0yBAfA8gdMAIagLoCVAen0M00zMOTYShNDtoHs9CAIUoI4E'.
-	    '1IBihCdNhsMhsj6NuV7BCC2IBpBqQaaFOENCCeiEsO1BO4RQgy'.
-	    'I5Hm4k4oIU9MrgZSAdBeTabZz+ODxKQRRBFBJo6IUc51anYRQo'.
-	    'dto+24FNxYCiaWKkQsj00KkO4gxRRkAngJ868M0u3OkkM+hxQA'.
-	    'cQ7YD7GO5XYSsPZybh/TCkFIYY+kWniTW4Q7jXgHvHMhiRpmuW'.
-	    'ca08GZkkZ/nY6TZMNhCnf2CuPoDVJvxpB+q9BHA8Ag1uH+oP4c'.
-	    'YEPCzDwmzSLquShHW/E0YRbG/BjZtw40hAy7aNzJlzRn75E6N0'.
-	    'qiwTzafI7kOU3gWrhzZC2iHcbsPqLlxvJnCt4KC1RYAL3I5hzY'.
-	    'Xv/huePYCtITQMKEnyB4KQvMURuJvw889HGSwUCs7CwkLpo6tX'.
-	    'Ty/+7nel6VLGDn/8N9m+eZuo1UP8iNhLau6b3RfmOsHBGTUYw9'.
-	    'WBNeDrGB4+h/4qNLKwTnLbHj9CJw/6GoIh9Jpvq0HHcayFhYXi'.
-	    'l3/4w9LK8vLKexfma3G/mb/3n1njTivS7tNQaaU1grQDjJ868D'.
-	    'Axx6vmxnBrY9C9IcSbSXbavNjb/S3eN6/0m1JcKBScixcvllZW'.
-	    'Vi6uLC8v12q1v/M8b/HxVjP//YYr32yE4dYWvShO0ogi14xwxq'.
-	    'F4rbnxZ3cMjtpvEEeMvwA0TdOYn5/PffHFF7Vr166tvPeLXyx7'.
-	    'nrd4+/btyg/frFo//Xgncnd67qCn78earQqcmYD3fSi1wPCTSV'.
-	    '3gzqvm9uFOMl5nUAqFQn5paal26dKla57vf7D+6FHph9VV88af'.
-	    'vgq79bo70e3VT2l9A3hYg4UiRALVHTCHSZvYBm4A//6quf8zoG'.
-	    '3bpuM4acMwKr1+//SDe/dK31+/bv90/Xrcq9fduNW6rbVeC+E7'.
-	    'gWdD2DKg4UEpBmPcm10RuScida31ntb62HAigoigDw6Gh0axWH'.
-	    'QWFhZKi4uLZ+I4PrVer2e+u37dXPvqq6hbr7tOp1NXWq89h6/b'.
-	    '8FBB34WGBesdcPrj38lkMkGlUuml0+mu53nR3t4eo9HoSLhMJk'.
-	    'OlUiGdTuN5Hq7rvgA0TdO4cOFC7vPPP6/VarXldqdTu7m2lrv7'.
-	    '7beq++BBO263b/tKrfWSXlbvwJ6CuAtDgTYiaBFMw6BSqfDxxx'.
-	    '+rarWqGo0GN2/eZGtrC6XenAkRoVKpcPXqVWZmZmg0Gty6desF'.
-	    'oIhIOp3Ol8vlmmVZK3fv3Lm09uc/Zwbr653ccPgoNIzvnmn99Z'.
-	    '7W9QG46lAaM5mM2l95GIYUi0VOnz7N7OwsWmsymQzyuse5Q8Mw'.
-	    'DNLpNDMzM5w/f/7A6AGgUkoajYa9urpayOXzUz/fvZutr68Pim'.
-	    'F4/2y1+n2o9Q/ru7uPesPhXnyo4A+vfHp6mmazybNnz9jZ2UFr'.
-	    'TbPZJAhe+8/aS0Mphed5NBoNABqNBqPR6MWBVWstvu/nnj9/Pv'.
-	    'vo0aPq5uZmPBgM/qcwPf39xV/9ajU1M3Nvq9PZaw8GoT50PjdN'.
-	    'k6mpKa5cucL58+eJ45j19XWePHnCzs4OnudhmiaWZRGGIVH05r'.
-	    'yEYYjrumxubrKxsfFyDQJ6NBp1Pc+7C4jWumBaVm+kVL2l1H2l'.
-	    '1G6otS+H6V6z8u3tbVzXpdFooJRicXGRqakptre3uXXr1ltrcT'.
-	    'Qa8ezZszemWAE9rfUdYBOwtVLRbrPZ+48ff+wDvuu6Sr3MB4Dr'.
-	    'uty6desgfa1WC3iRyrNnz4pSSmezWUzTfGtYtNYcdvC/9sMlgP'.
-	    'n5N4cAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: ppl_pink.png
-//==========================================================
-	$this->imgdata_large[2][0]= 2779 ;
-	$this->imgdata_large[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQolY9lkpgAACmhJREFUeJy9mOtzFNl5h5+3b9'.
-	    'Mz0kzPBWmEVtIiWYhIiC0HCDhB8lb8ISk7nzdZ5+/zJ/8BTmpT'.
-	    '660CZLwG1pVFgBkgGIHECEaa+/T9nHzQCCQuRpCNz6mp6g893U'.
-	    '8/c37ve3qEjxiC4OA4n/Lp/EUu/tsMM/+aEWduVBx7WhdkShcY'.
-	    'xUH2zo0Dwod/5N6vf8V//PoGdx8M8EOFPtK9jI8BdHCcMuVSmf'.
-	    'LxHLmSZdm2U8xIbmKETDGDZZnIy4dBbCynyGhphurEDBOlHFnn'.
-	    'qPcyPxTOwDCOccw7w5nlBRZWylI+ny/mZ6rL1dzUZ5/IWGZU3D'.
-	    'ZIOMQDDaJcHDVGWUbJBi9odVr0QoVSPzigIEaZ8vgSS/8wZU3/'.
-	    'k1fylipz5dLM2WlrZqHKaGCKbEbontq3KAKWQyZfZKTgYqc9Bp'.
-	    '2I2PcJ4ogk/UEBQcwipbFZmT13vDBx8fhnE1Ofnp9yJopFyT3X'.
-	    'yANfks0QHSQMDaL37pOxMLIu2UyVkjVKLjyKSeuD8dAYCFkso1'.
-	    'gYMaeWJ40T56cl8yAi/O4FSa2P6kYczIDsgVpAqcDImZPMuAB1'.
-	    'dkLQtcc8a/bwox8IUHAxZVxGZMouSLVYwKuMkD5IxN+JSdsRJB'.
-	    'pexuTVgYYM6EoGmxkmg3/hEhNUMr/hd7dqbOzExMn/GRDAxWZc'.
-	    'j3I8HiXfMjF2FQowKw7pjoN6E/Llw/GBJj8qxVOMlX4ipxc/lY'.
-	    'kl2zBLkmrTcEzMkoNoRLVidLi/9g+Z3I+1xRHX5EcAihxnbPRv'.
-	    'OTU9kZSmpKPy9FTGrLimPZ1H+UiyGaF67w6n7E1DwMngFDxGvc'.
-	    'w70v0xZUby5IxjlIyMssUJrJwVWkXBdbXvSvwEibcSdKCAFI16'.
-	    '4/sc0SRo9cGAGq1DwvQFzV6DVuBiV4zYnlEts6A2TSPcSiXoxo'.
-	    'QqJCEEFMbQ2b69o5qMiOOPqIMQkagu/aSL7waE8101WFShLjk9'.
-	    'yxgEvjRUiyYd+gwAjY2J9VpXfZ/JEXLhDp3OR6U4T97+hEnPwx'.
-	    'tv4HsRjy2tTQSFzQgDUnwSLBQRI+x1ZgcH87Vcv4SF19Kt0ezS'.
-	    '1h9s0Ma25pgr/YJfnLnEysok0+ezjM6EBLldGqKIJYuDRhOQEJ'.
-	    'Oih8X9Q0xmcXNjlCofBJgn78wxVz7L2YWf8tPPz1hnfjbjzfxN'.
-	    'qVwutq2etZXUQSXikcXGIgUiUkJSDIQMJgYGJsaB3c7b1qQ4GZ'.
-	    'xSkdGZIwMeNLfK6uezMnvJK3pLxeVixfvMsyVjSNSO6IV9adPG'.
-	    'AArkEEz8oUkFmBjYGO80qfd6pCWIayD59wIKcsjcKqufn7JO/S'.
-	    'xfyi+5c24pey5rZ09mJRNkiDdT/tzbkBr3SYkpMYpgEaIJSYhI'.
-	    'kSOY1GhilAQk5ntDIojxCZ/kf87Pl85xbuWEnLiUy+cW3NNuJX'.
-	    'MmY5meKf6mT7wZS+THdOjxlG06tIlIOMZxchSxcFFEGAwAGGME'.
-	    'jwyZYSnWL3cXWiIUbUI6hO/vxXuFOV84ycmlBWthNeflTjuzTi'.
-	    'lzJmM5s46Ej0J63/ZoPmoy6PYxtYVNhmfs0mbAND1mmKVMBY1L'.
-	    'mxA1LN7WgXQbCApNhKJHRIM+DQbv7yQGhjnJ5NgFuXBuxpu5mD'.
-	    'udm3LPuY7pmZLUE6L1SIJaIPFuDAqyw9lnwDYv6NFHkWJh4ZDB'.
-	    'wCBFD3uMxsTAwcBAiElpE/KcPg36dIiOvpsRxDCyhmlP2YY9ZU'.
-	    'v8NMb/1id+FGO0DTztkSXLOONUqeITsMkW2zwnJEIDFhYGx+A1'.
-	    'kwK4mASkvKDPc3p0iYhRRwYUhZLUTyV6Eu0t4s1Y4kcx6W6KaM'.
-	    'EZThcXH59RRhGEgIAddnBwNEBKqqpUtWBIF22YDIhJsbEkJqFN'.
-	    'qLtERHs7GnUkwISEQAf0uj30bY39PzbiC6qrDu2cExJ69Nhhhz'.
-	    '59UlIUipCQOnVi4sjG7ubJBy6um0C+he/0iDHQKIQERYyKFLqr'.
-	    'SI/W6kJCnvOcrWSLSquC1/Jw9Ks3R0FQKHr0uMc9bnCDGjX69A'.
-	    'H0XlcJkibN5jOe/alCZStHbjJL9lSMLkXExvCXRiDV6GZEeGeX'.
-	    '3TvvBVQoEjfBL/v0rT75Th7VU5C8gktI6NLlMY+5yU3WWGODDf'.
-	    'r098tHpNFNH7/2lKdXXdz7efLzVaqJIBOCmK8AJUlI6g0aV+9y'.
-	    '9+p7AR3bMQpTBWPy7yeN6fy0jNwewfpvC9Xe+3kFoUuXe9zj5n'.
-	    'BusEGHjh6GIAGawC2FWuvSvbbF1maFylZAsC1ISZADBiVNSJrP'.
-	    'eX73MY//skHP85z5+fnSxQsXj//4n39cmnPn7LbZlsajBmEnBL'.
-	    '1nuEGDG9x4aa5Ldz+h0RCuBqwBv1Wo+7vs9r7n++0MmYeAM+zB'.
-	    '+61EK1QUEnbbtN+9Bh3Hsebn54u//PdfLq9eWl2ZnZ1dSnaSwu'.
-	    'Pin40b9g3doKE0WoNIl65xj3v75njd3BBubQi6ExKmDWkMRKSl'.
-	    'tSbVKQcMao1Go5Ugb0+x53nOyZMnSysrKydXLq1cWlxa/McgCB'.
-	    'Yev3hU+GPrD3I5/q94k3pXYQY58q6B5Bs0HB//neaGx00gyWaz'.
-	    'VCoV7bquCoKAnZ0dfN/f03egLGj0m3XQNE1jdnY2/+WXXy6trq'.
-	    '6uzP3oR5eCIFi4detW5feXL1vr679Let37zVB3/mQytjXJwmSB'.
-	    'wikHp9ShY0RESqObwPrr5oBERKhUKly4cIFqtUq9XufmzZtsbW'.
-	    '2hXvuDwTTNtxZq8TyvsLy8vLS4uLgahOHphw8elL69fNlc++qr'.
-	    'uFOrNXPddm1cczVL5f5P+Lv5MuOJgTGxwYbZpZsCdeAq8M1Bcw'.
-	    'CGYeC6LtVqlRMnTjAyMkKn0yGXyx0N0LZt03Ec1zCMSrfXO37v'.
-	    'zp3S769csb+/ciXt1mrNdHf3ltZ6Lca8ZpJsduhtCdb2gEFJoQ'.
-	    'xADYHuHDS3f32lFEEQUK/XGRkZoVAocP78eZaXl9FaI/Jq25Uk'.
-	    'yWHAYrHozM/PlxYWFibTND32sFbLXrtyxVz76qukXas1M61WTW'.
-	    'm99gx+20TdN9jqtfjP7QzOwwYNp037Zd0DukDnIByA1pqdnR2+'.
-	    '++472u02Z8+eZWJiAsMwDsEBRNGBzYJpmsaJEyfyX3zxxdLS0t'.
-	    'KlVqu1dP3q1cLta9ekU6u1dat1J9b6Sk9kraV1rYXegW7apDYw'.
-	    'kFY6fPc4MNTw88bwfZ/NzU2UUnieRxAEiAiGcXiXfcigiIjruo'.
-	    'VyubxkWdbK7fX1xWvffFMInjzBM82uMT5+p++6V1UUrSe7u03t'.
-	    '+8lezlKt3gHyl0aSJDQaDa5fv876+vo+w6FzDq1BpZRsb2/bly'.
-	    '9f9vL5/Njdu3fzG0+eMJHNxsfn532vXN5NPG/7abPZal6/Hvfe'.
-	    'kroPHfsm98f7AHW9Xo+//vrrlmVZm71+37QNw3JnZ9PK4uJGpV'.
-	    'pt4Dh+vLGhsrmcfv1iHzu01m89HjIdCon2fb8TBMHtvYeRUn50'.
-	    '1Oj4vqp3Ok1f5LYSadfr9dQfDN642P/XeF2DA+SBAuA4jkOhUK'.
-	    'BQKESO43S11p3BYBDt7u4y+CtB/i/q7jp1GMiw2AAAAABJRU5E'.
-	    'rkJggg==' ; 
-
-//==========================================================
-// File: ppl_blue.png
-//==========================================================
-	$this->imgdata_large[3][0]= 2284 ;
-	$this->imgdata_large[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFRAiTZAL3gAACHlJREFUeJy9mGtv29YZgJ9zKF'.
-	    'F3y/Q9jh05tuQkarKgbYasde0UBdZgwNou/Vqga/sD9mP2B4a1'.
-	    'BbZ9atFPxb5sqOtmXbI19bqsluPYiR3HN90vFEWRZx/IJI5zqa'.
-	    'x0OwBBSgR5Hj7v+55zSEFXTUgIJyA9C6/9RsjMjAyFIxxJCDc7'.
-	    'iBqKgyZACGg3G2x9+xXf/fG33P3mC9qNKsp1O+1JdkEnQTdgIO'.
-	    'ttCSMUi8gj072MnugllAyB9G8rBGi6RsToJTF6iuRoFi1kHKZf'.
-	    '7fB8Iggj0/Dy23D2dakNTR3JDsXPvzstxmZGRMER1EwHhQAEgE'.
-	    'CLhIkPD6InY9S3djGLJVBtQP1Qb4HDAyoJYQOOZkPx49nhTH9i'.
-	    '7MUBGT7egxkJgd70wZS/CUkoZtA/fRoE1DZ2ACiv52ibReCp4e'.
-	    '7CIEHomxDiuVdGTqUnf/ZeOjR8fpiVXZul5ZrY3bWwbdcLr/dA'.
-	    'AAIpAwQjUWIjQ+g9HZvswiCgBVF9/SI6OSLGzo0i+oLi6+Utbq'.
-	    '+bKEftgwOE/0Ohocf66M+cBjo22U2RQLIHMhmYnvaOpR9S8bSU'.
-	    'UqCURGpRkuMZMm9cIvPGJZLj0yBjT2LprkiSkykx9cuXIhOnUs'.
-	    'm+QNC2XdG02ggBTcvFabsPWwTPpBAChSCgh4kYBpoeplWp47Qs'.
-	    '7EYDt21xINzd5GCAxLExRl89Z+nHjpbKMmjbmkgfDzI0JEW53K'.
-	    'Jaa6NcAOEX8v52uJzsBlAS6u0hcnTIccPRqhWPCUcLD+s1EaUp'.
-	    'HCEhEMCyHNpt9SjgIU12A6iw6xb123vYhaaKjB9tlgMD5X+uBp'.
-	    'zdkpg6azA8EaNQtKlVba+Xez4eCntnJrsDdFsW5nYFpxlFN846'.
-	    'DXe8utkM4mhi+EgQmjYbS2WqexZKk6BpjwJ2YlK5VjeA3pNDiH'.
-	    'YjRWPzPE7tmBo8EWwGhkXx+z3uXL7D3rU97LIF8RBEAl6lK/Uo'.
-	    '6JNM1rZ2aTcr3eUgIQOGTgbdwXMGyRejenLYTvQGbAdRuetSud'.
-	    'OivVuFZgtCEgICghICnZoMhmlVTPR49LCAEkQUhk/B7KXe0MWf'.
-	    'nxj8xVR/cDheK14WZmtVMJSBnlGoN6FmQq0FLfdwJgORKPHRo/'.
-	    'Snzx4G0F/FjJ4KiOdmjPCrrx8bffnMybMv9MQGNG3rzlVqtR1B'.
-	    'sh/CYXCD4Aag1oCW7ZnUOjSp6WFi/QNEB8Y7BfTNjZyCmUvJ0I'.
-	    'XXT47MTp98Ybon9VZCk8cVazfqlNargsY34G7ByAlIjkHd9CCr'.
-	    'LbBdiHViUgiECuDKYCdz8b2cywREdiYZOj8zNnLuzOTzx6ODp+'.
-	    'OaGaqwVzBFqz0Idhz2loE7YEwBLaAJLQcKbW8qjAcBF5Jh0AMP'.
-	    'IOHe6kxgtb3UMO2OxkF//ffK28nQqxfvm3szrtnDVa799Qb/+v'.
-	    'NtsbNSpm3tAv8B+w7Ub0FhAyoBcMPec9oK6raXk48ziQBXQcmC'.
-	    'pT3YqHa0mpEBkTR6wz/Jjo2cy04+fzwxdDquNfQKO7sFUbpu0c'.
-	    'wp3JoAYsA42Bbkl4GCryUNDEM7Avm6Z/CgSYBWG8pNuFuDu1Wo'.
-	    'tjoxKIJGeHIiM/jmK9NnX5ycuJQMtUcqXPvLDTa+qIie4hAJ1U'.
-	    'vdrmO2HaDfB931twJgAn1A4lGT96obPHPLBbhVgUoTHHWo9aAA'.
-	    'JVAKpyKEmQNzWRENAsL18ycKjAFN/9gCNvzLB/390MMmE7pnDi'.
-	    'Bvwt0K5Jv3O+0oB22nJ1Vvjb/UMhOpcKknqN1OiMB2DNHU2G5s'.
-	    'sVndpGJVcZXjX1IAlvw9PmhRQcOFPhsSDkiBrQR1G7brgs0a7D'.
-	    'ag3FK4rguqBXarI4Nt1SJv5gls7TEWtJDRBO2GwnIs8maevFnA'.
-	    'Gx6awLZvzeTBu4kFbLigijC47pscpx0xyDfkvtUEnlarCDtrUC'.
-	    't2HGIhvPHVdVwqjTIrxRU2a5uUrYoP0QZ2gMvACl7+3V/LuKDq'.
-	    'sJuDy597516+CEezIHXv7vcgXQu2l+Bvn8He9Y4AE4kgk5P9DE'.
-	    'R6aFdq5Et5Nit3yTf3m9sBcsAN3+D98c0Fit5JawE25r1zg1Fo'.
-	    '5B8GFD7g+nVYnu8EUEop9XTa0N/9dUbqcphP/rDJzbUClVbpgR'.
-	    'y2fXM3fND95qj75J8AC6BWPINfVSBieK+x+6cS5UCzCLu3oFV9'.
-	    'GqCMx2NGOp2Znpv7aXZudsool3T5J/179sxVlHJ4kGPrP2COBX'.
-	    '/7DmiApWCjxIMXpYNznYuXM+6TAKWUMppOZzLvv//ery5cuDCT'.
-	    'SqVS336bCwr1JfAPB9r+2KAFwJS+OcETzZHz/7v3etl6ipz77X'.
-	    'GAMh6PG+l0OjM3NzczOzs3k0pNnFlbW43+e/GKtMqrblSsF03V'.
-	    'WHcJA0PjIAzvg9JTze2H67g9DjAwOTmZ+uCDD96anZ2dnZiYmF'.
-	    '5dW41++Lvfa1fnr7qllVK9103mXNTnJgPA+YugsvB3HTaEl+Qs'.
-	    'AZ/yeHPPDCiTyaRx5syZbGoilV1dW00szC9oV+avusuLy0Xd0X'.
-	    'MgFkDM+zkYBZEHV8f7wwKu84zmngQoNU0LaZoWUa4K31y5qX/8'.
-	    '4cfyyvwVN5/L10NOKNeg8UmDxoKF5Vfj1xXAgD0JrgAcvBDfel'.
-	    'a4g4AykUgY6XR6emJiIru2ttZXq9S0K19eUcuLy8WQE8o5OAsN'.
-	    'Ggsmpl+NpoL1g9X4UBU+C9xDgEKIwNTUVOqdd955M9mbnJ3/cj'.
-	    '6Vu5aTheXCQXNdVeMzAwJSCGEA2XKpnF1cXIzlFnOVhJPIKdR+'.
-	    'c88ctq4AlVKsrKzw0UcfKcC5uXqzXnNqSzb2pwLxOHP/l7Z/BN'.
-	    'eB01LKt4HTrusKvGr8jB+hGn8MQAkYQMrfw4Nq/MFPtf+rdvDb'.
-	    'k8QL+/5Z4Uepxm7bfwHuTAVUWpWaqAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: ppl_green.png
-//==========================================================
-	$this->imgdata_large[4][0]= 2854 ;
-	$this->imgdata_large[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQ4hANhluwAACrNJREFUeJytmF1zE1eagJ+3u9'.
-	    'XdkvUty2AbmLEtEzDBgZ0UpDBOalNTUzU3czl7tct/2n+wt3M/'.
-	    'NVM12SSTQQSyW2TA+QAJQogtYYFtyfrqL3WfvWj5g8AEjzfvhS'.
-	    'SXjk8//Zz3Pf3qCMcJAWxMKlT4kH+jwu/FknnJSUItKFHzCrKA'.
-	    'BggBQx5ziz/wn/yBz3hED4/oaJfSjgVoYjJJgTLTZCjohp7IGT'.
-	    'k5aZ4kb+bRTR30Q7djj8f/kpPMUSCFedRL6W8e8qMQNE6S4xpv'.
-	    'c5HrTPFubiJ3ZnlyOXV59rJYU5Z00h1c3d0brxAiUkScRijisk'.
-	    '6XLTyiN3s8HuAJpniXa/q8/pt8Or+0kF8oXJm5YiydWcIpOrJu'.
-	    'rjOQwd54AQwsMpTJYhPSoYuLQ58An/DnBQSdImXO8avsTPbqpc'.
-	    'lLp67OXDVzMznZLGxSs2qyIRu4at8gKHQEC50kE1icxqCAdxST'.
-	    'xjEA44tqaJlERl8uLWvvnX5PHuQfcCdxh5qq0aX76vj4WgWyXO'.
-	    'QiNgBP8IAaddr08X8+wHFmJSQhBbPAZGoSZSt5wQs6qoNC7UEd'.
-	    '4AEoLIQSCaCCy78Dv8Tiv1hjjW1CRj8XIAgEKqDtt9keboMJZa'.
-	    'vMjuzQVd3Xr9prTJo+GF/jKZea95R25Lxs8jg5qFGiwDnOS0mW'.
-	    'NE0rjNRIt3WbklUCA9mV3Zdz8OBT/JfCQLB0SKYVVjGFYSfx/E'.
-	    '26ow4e6uDujlPFQpE0FU6P8qNTHdXJdEdda0qf0itWBVM3pa/3'.
-	    'ccUlIECJet0cAJoeYk5EZCeS5IwEoerSxccJBwRqFFf38QCTaO'.
-	    'TRVFKJm3NTbtLNSyh2IkhIXsvLCesEGNCWdmwyruSD/z9kUlRc'.
-	    '3bqNlSxhJNJ43p5JITrOEis8Qtr0cXEpU/JT/pmO18n2vb42pU'.
-	    '3JnDnHMBqyPlpnoAaxhr2llv1ZUBqEGlqYwDQMsskMOcMgVL3Y'.
-	    'ZOQTHAcQQiIGjHCwCaiovjrv4hbcpKuJJjIcDHm685RGr4GLCx'.
-	    'YHkAcrLoAoDSLBiAQrMkjqybHJCbxgh+7xAC1MpsgzwRwD3qHL'.
-	    'WyTIBdlAa6u2rHfXaew06PV78ZZjAwleNnkolECoH5i090wOcY'.
-	    '+TgwYzFHiPi1zkOkXexeAMASnVU+LiyiA1wFUuaqggACLizeWw'.
-	    'ycMzyssmVYKkbpGyC5T+OUALk2mKLHKWf+ED/az+YW42d66YL+'.
-	    'aNrmEEzQCFEnKw368EgEvcN1m80eTIQIt0TFOjMJHkzNEBBYPp'.
-	    'sblf8QHzrORO5JaWZ5ZLl6cuJyyxpNPv4PZdoT+GyIxBfI5uUg'.
-	    'eJMCwP2/bIHO1JEudcgUUWOceKNq99mCvnzs5PzRcuTV4y5mRO'.
-	    'SMIjo47z5S7a94oQCNKgJsZwO7D/IDNg3/LLhRNXt4JohBb4aG'.
-	    '82GLdXcf93mQ+Y43r2RHZp+cRy6cqJK4l8MS+tdItaqiYtc0Mm'.
-	    'QpfJARh98HYh9IiXVcaAo58wGb+LBAjbSPgCOcoSa0wzxXtc08'.
-	    '/pv8mfyL+9MLVQvDJ1JVHJV6SZbFI1qtTsB+KlehRtRTGE8Afo'.
-	    'P4DRcAxiEudhAHjjzz+ubgX4oHowakHQOlqzICQwyVPITGVOXi'.
-	    'xfLF6aumzmczl5lHzMff2+fCdPaGttEkXoLQAO9B7C6EugPYby'.
-	    'gVPjGXc5eIbNAJPjGwiAbaAJUQv8wVG7GROkJFpyOqn/ovgLba'.
-	    '44L0+sDaraXb6jzq7aBQWjBOyUoHcaopOgmaA3IRyNDZnA1HjO'.
-	    'HSBkr7eEFDAEngHrQCf+/s2A8cSiSkqcKUeeTjwFy2Jd78t3+L'.
-	    'TR4itIiBLwLQhzkJyB5Cx4HXDaENVQCBAQcRqFIHTRaBIvuYXg'.
-	    'AdsouuNxEL0ZUBHnSQp66R73zYfUtQ6OytKT8RckQAJQoLtgO5'.
-	    'BJgj0D/WfgdyHaAHx8THoUcbGx8ciwhUl3bDEiToURPooeI7pH'.
-	    'MziK9Yd9nU5a6GgKjOH41vsgI4hAcyC5AZkapF+AoYNrjjsuhx'.
-	    'FbtPmeB5ykyQQzTPAWAQWC8S9oAI0QRRuPb9jkmyMZNAOTklvC'.
-	    'GGYZaFkGmkVAh8h4DtKFMIBunG+pB5B5AIkGBDsQ+qBiL20caj'.
-	    'zhJknq5KlgMkLjJHJos4kYEbFJi5vc5eYbATVN02bNWe19+32t'.
-	    'aJWlFm3wbf8Rz5NbDFJdlOFBF/g7cBf0JkrbBb+F6j1DOduEkU'.
-	    '8bWCOiSofPWadBnSZDWmgUkEMGhZCINut8S/0NBtPptFlZrBSu'.
-	    'vnt1+ndnflfIp9OJ/279Ubbbd+lP7KBKPoEBsgnqLph/BRzwdS'.
-	    'LnBUFvHcfdpRsGPAGqwMco6jynz+e0SPKYCHMfLX5VKHwcenR+'.
-	    'Igd1XTcqlUr+xn/cePv91fevzy8sLO2OtrOpWkqL7gXKSAVRdh'.
-	    'ZFEmEXoYkwBNqovoc/3GHH3aUR+jwC1oD/AWrANi4hGwyBzqEG'.
-	    'Vvb77Dgi0eT1VZzJZMxKpVJYXV1dXF1dXVm6sPSvruue3Xzcyj'.
-	    '6/syvDzwj0lNazK6Fj5LFCRZouZpBABj6jXouu3+Np6HNvDHaf'.
-	    'g91t74msbMuOJicnSSaTKKUQEUQEpRSO69But1/dB0VEm5uby9'.
-	    'y4cWNpdXX1+sLCworrume//PuXpeqnVeOban0U1PW2kcx+O9L7'.
-	    'Te9sUB4lWFR9SqNtNGcHx+/RDD2+Am4D94CnQA8OjjlEhMnyJC'.
-	    'srK8zOzu7BiYioMAzZ2Njg9u3brwIqpSSXy2WXl5eXLly4sOo4'.
-	    'zoV6vV6oflrVP/7Tx8Hmw1Zb6ydqmpWp7ha8h4O3gjOhzVANmF'.
-	    'XPMNQWvdDnCXCXuHR+APqH4fbCtm2mp6eZn59H13WJuYXRaKSU'.
-	    'UiSTyVcBdV3XDcOwRaTU7/en19bWCn/79G+JL/76RbhZ22y7u+'.
-	    '6ahl71nPDz/nO17m7wAxlabFOihy4+DvAcqAMbPzZ3OFzX5dmz'.
-	    'Z2iahoiosUUVhiGNRgPHcV4GzGQy5uLiYuH8+fMzo9FoslarJW'.
-	    '9+elP75E+fBJu1zY7qqpqBUW3T/niohnVvy+1zm5aVtp+WE2XT'.
-	    'nrHFzbjh1tYLz3XdPjD4R3BKKba2tqhWq4dzUO3noBPn4H5PKy'.
-	    'LaO++8U7hx48byhQsXVne7u6tf3/v64t3P7mbq9+odt+OuaWi3'.
-	    'PLxbW2ytubjbQCgiMnt6VlaurWgz0zM0m02q1WrUaDSUUuqI56'.
-	    'ivDxE5MCgiYllWtlwuL5mmufLV/a/O/uXPf9Ff1F+80Lv6Yx29'.
-	    '2qHzyZBh3cdvc7gaTZuZkzPh/Py8ACqVSv1/uPZDKXUAGEWRtF'.
-	    'qtxEcffZTL5XLF+2v39fqjeivshA/TpP83JLwzYFBzcA4370Cc'.
-	    'S81nTRBUs9lkOByi1GuOPI4Rh3+26JZlnSkWi781DOPXvV4v3+'.
-	    '/2G0R8kSBxB/jew+tERK+c49m2TblcxrZtXNfl+fPneJ6HZVmU'.
-	    'y2VJJpNyaJ9TSinlOA5bW1u4rntkQA0oAG8D54gb9W3ianxM3A'.
-	    'e/cn73U3Hq1Cm5du2aPjs7a+ztcSIShmE4ajQa6tatWzQajZ+0'.
-	    'fbiKI+It4SvijVUj7kL2qvGfgkskEqTTaZmcnDROnTplJhIJTU'.
-	    'QiwPd9P/Q8T6XTaQzDIAiCfzjP/wFVfszuFqdHXgAAAABJRU5E'.
-	    'rkJggg==' ; 
-
-
-//==========================================================
-// File: pp_red.png
-//==========================================================
-	$this->imgdata_small[0][0]= 384 ;
-	$this->imgdata_small[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhouFobZrQAAAQ1JREFUeJyV1dFtwyAQBuD/og'.
-	    'xQdYxa8gRY6hJ0jK6QdohMkTEuE5wUj5ERen05IoLvID7Jkn2G'.
-	    'j8MgTMyMXqRlUQBYq9ydmaL2h1cwqD7l30t+L1iwlbYFRegY7I'.
-	    'SHjkEifGg4ww3aBa/l4+9AhxWWr/dLhEunXUGHq6yGniw3QkOw'.
-	    '3jJ7UBd82n/VVAlAtvsfp98lAj2sAJOhU4AeQ7DC1ubVBODWDJ'.
-	    'TtCsEWa6u5M1NeFs1NzgdtuhHGtj+9Q2IDppQUAL6Cyrlz0gDN'.
-	    'ohSMiJCt861672EiAhEhESG3woJ9V9OKTkwRKbdqz4cHmFLSFg'.
-	    's69+LvAZKdeZ/n89uLnd2g0S+gjd5g8zzjH5Y/eLLi+NPEAAAA'.
-	    'AElFTkSuQmCC' ; 
-
-//==========================================================
-// File: pp_orange.png
-//==========================================================
-	$this->imgdata_small[1][0]= 403 ;
-	$this->imgdata_small[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhwAnApz5AAAASBJREFUeJyN1dFthDAMBuDf7S'.
-	    '3BCm2VCRKpS4QxbhikW6IewzcBqm6Fm6JyH7iEEByCn5AJH38g'.
-	    'BBIRHNUzBAWAGNfe/SrUGv92CtNt309BrfFdMGPjvt9CD8Fyml'.
-	    'ZZaDchRgA/59FDMD18pvNoNyHxMnUmgLmPHoJ+CqqfMaNAH22C'.
-	    'fgqKRwR+GRpxGjXBEiuXDBWQhTK3plxijyWWvtKVS5KNG1xM8I'.
-	    'OBr7geV1WupDqpmTAPKjCqLhxk/z0PImQmjKrAuI6vMXlhFroD'.
-	    'vfdqITXWqg2YMSJEAFcReoag6UXU2DzPG8w5t09YYsAyLWvHrL'.
-	    'HUy6D3XmvMAAhAay8kAJpBosX4vt0G4+4Jam6s6Rz1fgFG0ncA'.
-	    'f3XfOQcA+Acv5IUSdQw9hgAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: pp_pink.png
-//==========================================================
-	$this->imgdata_small[2][0]= 419 ;
-	$this->imgdata_small[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhsQzvz1RwAAATBJREFUeJyd1MFthDAQheF/oi'.
-	    'gF+JYWQKICkCJRA1vGtrDbxFbhGvY0HVjCLeS2BeTiHFgTB2wg'.
-	    'eRISstCnmcG2qCpbuXf3ADBQzWsPfZfS9y9HsEu4/Fo33Wf4Fx'.
-	    'gxL3a1XkI3wbTNXHLoboVeLFUYDqObYBy+Fw/Uh9DdCmtOwIjF'.
-	    'YvG76CZoOhNGRmpO8zz30CJoOhMAqlDxFzQLppgXj2XaNlP7FF'.
-	    'GLL7ccMYCBgZERgCvXLBrfi2DEclmiKZwFY4tp6sW26bVfnede'.
-	    'e5Hc5dC2bUgrXGKqWrwcXnNYDjmCrcCIiQgDcFYV05kQ8SXmnB'.
-	    'NgPiVN06wrTDGAhz5EWY/FOccTk+cTnHM/YNu2YYllgFxCWuUM'.
-	    'ikzGx+2Gc+4N+CoJW8n+5a2UKm2aBoBvGA6L7wfl8aoAAAAASU'.
-	    'VORK5CYII=' ; 
-
-
-//==========================================================
-// File: pp_blue.png
-//==========================================================
-	$this->imgdata_small[3][0]= 883 ;
-	$this->imgdata_small[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAACi1'.
-	    'BMVEX///8AAAAAADMAAGYAAJkAAMwAAP8zAAAzADMzAGYzAJkz'.
-	    'AMwzAP9mAABmADNmAGZmAJlmAMxmAP+ZAACZADOZAGaZAJmZAM'.
-	    'yZAP/MAADMADPMAGbMAJnMAMzMAP//AAD/ADP/AGb/AJn/AMz/'.
-	    'AP8AMwAAMzMAM2YAM5kAM8wAM/8zMwAzMzMzM2YzM5kzM8wzM/'.
-	    '9mMwBmMzNmM2ZmM5lmM8xmM/+ZMwCZMzOZM2aZM5mZM8yZM//M'.
-	    'MwDMMzPMM2bMM5nMM8zMM///MwD/MzP/M2b/M5n/M8z/M/8AZg'.
-	    'AAZjMAZmYAZpkAZswAZv8zZgAzZjMzZmYzZpkzZswzZv9mZgBm'.
-	    'ZjNmZmZmZplmZsxmZv+ZZgCZZjOZZmaZZpmZZsyZZv/MZgDMZj'.
-	    'PMZmbMZpnMZszMZv//ZgD/ZjP/Zmb/Zpn/Zsz/Zv8AmQAAmTMA'.
-	    'mWYAmZkAmcwAmf8zmQAzmTMzmWYzmZkzmcwzmf9mmQBmmTNmmW'.
-	    'ZmmZlmmcxmmf+ZmQCZmTOZmWaZmZmZmcyZmf/MmQDMmTPMmWbM'.
-	    'mZnMmczMmf//mQD/mTP/mWb/mZn/mcz/mf8AzAAAzDMAzGYAzJ'.
-	    'kAzMwAzP8zzAAzzDMzzGYzzJkzzMwzzP9mzABmzDNmzGZmzJlm'.
-	    'zMxmzP+ZzACZzDOZzGaZzJmZzMyZzP/MzADMzDPMzGbMzJnMzM'.
-	    'zMzP//zAD/zDP/zGb/zJn/zMz/zP8A/wAA/zMA/2YA/5kA/8wA'.
-	    '//8z/wAz/zMz/2Yz/5kz/8wz//9m/wBm/zNm/2Zm/5lm/8xm//'.
-	    '+Z/wCZ/zOZ/2aZ/5mZ/8yZ///M/wDM/zPM/2bM/5nM/8zM////'.
-	    '/wD//zP//2b//5n//8z///9jJVUgAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAwkWGTNerea3AAAAYUlEQVR4nHXNwQ3AIAxDUUfyoROxRZ'.
-	    'icARin0EBTIP3Hp1gBRqSqYo0seqjZpnngojlWBir5+b8o06lM'.
-	    'ha5uFKEpDZulV8l52axhVzqaCdxQp32qVSSwC1wN3fYiw7b76w'.
-	    'bN4SMue4/KbwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: pp_green.png
-//==========================================================
-	$this->imgdata_small[4][0]= 447 ;
-	$this->imgdata_small[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhkLdq9eKQAAAUxJREFUeJyN1LFVwzAQxvH/8f'.
-	    'IeDS0FLKABlN6eIwPYAzCHB0gWYI2jj+i1ABUTQN4TRSQ7iiWZ'.
-	    'qxLn9Mt9ydmiqrSq930AYFiu6YdKrf/hP1gYQn6960PxwBaYMG'.
-	    'E9UA3dBFtVQjdBOQmBakLennK0CapRwbZRZ3N0O/IeEsqp3HKL'.
-	    'Smtt5pUZgTPg4gdDud+6xoS97wM2rsxxmRSoTgoVcMZsXJkBho'.
-	    'SmKqCuOuEtls6nmGMFPTUmxBKx/MeyNfQGLoOOiC2ddsxb1Kzv'.
-	    'ZzUqu5IXbGDvBJf+hDisi77qFSuhq7Xpuu66TyJLRGbsXVUPxV'.
-	    'SxsgkzDMt0mKT3/RcjL8C5hHnvJToXY0xYRZ4xnVKsV/S+a8YA'.
-	    'AvCb3s9g13UhYj+TTo93B3fApRV1FVlEAD6H42DjN9/WvzDYuJ'.
-	    'dL5b1/ji+/IX8EGWP4AwRii8PdFHTqAAAAAElFTkSuQmCC' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_squares.inc b/nightly-test-server/jpgraph/imgdata_squares.inc
deleted file mode 100644
index 9850abf..0000000
--- a/nightly-test-server/jpgraph/imgdata_squares.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_SQUARES.INC
-// Description:	Base64 encoded images for squares
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Squares extends ImgData {
-    var $name = 'Squares';
-    var $an = array(MARK_IMG_SQUARE =>'imgdata');
-    
-    var $colors = array('bluegreen','blue','green', 
-			'lightblue','orange','purple','red','yellow');
-    var $index  = array('bluegreen' =>2,'blue'=>5,'green'=>6, 
-			'lightblue'=>0,'orange'=>7,'purple'=>4,'red'=>3,'yellow'=>1);
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Squares () {
-//==========================================================
-//sq_lblue.png
-//==========================================================
-	$this->imgdata[0][0]= 362 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFgojiPx/ygAAAPdJREFUeNpj/P377+kzHx89/c'.
-	    'VAHNBQ5VBX52HavPWWjg6nnDQbkXoUFTnnL7zD9PPXrz17HxCj'.
-	    'E6Jn6fL7H7/+ZWJgYCBGJ7IeBgYGJogofp1oehDa8OjE1IOiDa'.
-	    'tOrHoYGBhY0NwD0enirMDAwMDFxYRVD7ptyDrNTAU0NXix6sGu'.
-	    'jYGBgZOT9e/f/0xMjFyczFgVsGAKCfBza2kKzpl3hIuT1c9Xb/'.
-	    'PW58/foKchJqx6tmy98vbjj8cvPm/afMnXW1JShA2fNmQ9EBFc'.
-	    'Opnw6MGjkwm/Hlw6mQjqwaqTiRg9mDoZv//4M2/+UYJ64EBWgj'.
-	    'cm2hwA8l24oNDl+DMAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-//sq_yellow.png
-//==========================================================
-	$this->imgdata[1][0]= 338 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAWl'.
-	    'BMVEX////+/+H+/9/9/9v8/8P8/8H8/7v8/7n6/4P5/335/3n5'.
-	    '/3X4/1f4/1P3/031/w30/wn0/wPt+ADp9ADm8ADk7gDc5gDa5A'.
-	    'DL1ADFzgCwuACqsgClrABzeAC9M0MzAAAAAWJLR0QAiAUdSAAA'.
-	    'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEDlOgDj'.
-	    'EAAAB+SURBVHjaVcpbCsQgDEDRGERGKopjDa2a/W9zfLWj9/Nw'.
-	    'Ac21ZRBOtZlRN9ApzSYFaDUj79KIorRDbJNO9bN/GUSh2ZRJFJ'.
-	    'S18iorURBiyksO8buT0zkfYaUqzI91ckfhWhoGXTLzsDjI68Sz'.
-	    'pGMjrzPzauA/iXk1AtykmvgBC8UcWUdc9HkAAAAASUVORK5CYI'.
-	    'I=' ; 
-
-//==========================================================
-//sq_blgr.png
-//==========================================================
-	$this->imgdata[2][0]= 347 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAZl'.
-	    'BMVEX////0+vv0+vrz+fry+frv+Png7e/d7e/a6+zY6+250tSz'.
-	    '0tSyztCtztGM0NWIz9SDzdNfsLVcrrRZrbJOp61MpqtIr7dHn6'.
-	    'RErrZArLQ6q7M2g4kygYcsp68npa4ctr8QZ20JnqepKsl4AAAA'.
-	    'AWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU'.
-	    '1FB9MDCxYEByp8tpUAAAB7SURBVHjaVcjRFoIgDADQWZpWJpjY'.
-	    'MsnG//9kzIFn3McLzfArDA3MndFjrhvgfDHFBEB9pt0CVzwrY3'.
-	    'n2yicjhY4vTSp0nbXtN+hCV53SHDWe61dZY+/9463r2XuifHAM'.
-	    '0SoH+6xEcovUlCfefeFSIwfTTQ3fB+pi4lV/bTIgvmaA7a0AAA'.
-	    'AASUVORK5CYII=' ; 
-
-//==========================================================
-//sq_red.png
-//==========================================================
-	$this->imgdata[3][0]= 324 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'.
-	    'BMVEX////++Pn99/j99ff99fb98/X98/T98PL55uj43+P24+bw'.
-	    'kKPvjaHviJ3teJHpxMnoL2Pjs73WW3rWNljVWXnUVnbUK1DTJk'.
-	    '3SUHPOBz/KQmmxPVmuOFasNFOeIkWVka/fAAAAAWJLR0QAiAUd'.
-	    'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEHd'.
-	    'ceT+8AAABtSURBVHjaVchbAkMwEAXQq6i3VrQiQfa/zDYTw8z5'.
-	    'PCjGt9JVWFt1XWPh1fWNdfDy+tq6WPfRUPENNKnSnXNWPB4uv2'.
-	    'b54nSZ8jHrMtOxvWZZZtpD4KP6xLkO9/AhzhaCOMhJh68cOjzV'.
-	    '/K/4Ac2cG+nBcaRuAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-//sq_pink.png
-//==========================================================
-	$this->imgdata[4][0]= 445 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAApV'.
-	    'BMVEX////6+Pz69/v49Pr38/r17/jr4+/l3Onj2efh1ua/L+i+'.
-	    'q8m+Lue9Lua8qsS8LuW8LeS7pca5LOG4LN+2Y9O2YNW1ZdO1Kt'.
-	    'y0atC0aNGzb82zbc6zKtuzKdqycsuwa8qtJtOISZ2GRpuFN6GE'.
-	    'NqCDQpmCMZ+BPpd/LJ1/K519S5B9Jpx9Jpt9JZt6RY11BJZ1BJ'.
-	    'V0BJV0BJRzBJNvNoRtIoJUEmdZ/XbrAAAAAWJLR0QAiAUdSAAA'.
-	    'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYDF3iKMD'.
-	    'YAAACeSURBVHjaVczbEoIgGARgCiMtrexoWpaa2FHUgvd/tH4Y'.
-	    'BnEvv9ldhNPradPnnGBUTtPDzMRPSIF46SaBoR25dYjz3I20Lb'.
-	    'ek6BgQz73Il7KKpSgCO0pTHU0886J1sCe0ZYbALjGhjFnEM2es'.
-	    'VhZVI4d+B1QtfnV47ywCEaKeP/p7JdLejSYt0j6NIiOq1wJZIs'.
-	    'QTDA0ELHwhPBCwyR/Cni9cOmzJtwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_blue.png
-//==========================================================
-	$this->imgdata[5][0]= 283 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAQl'.
-	    'BMVEX////4+fz39/z19vvy8vru7/ni4+7g4fHW1ue8vteXmt6B'.
-	    'hdhiZ7FQVaZETcxCSJo1Oq4zNoMjKakhJHcKFaMEC2jRVYdWAA'.
-	    'AAAWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0'.
-	    'SU1FB9MDCxYDN0PkEP4AAABfSURBVHjaVchHAoAgDATAVcCCIF'.
-	    'j4/1elJEjmOFDHKVgDv4iz640gLs+LMF6ZUv/VqcXXplU7Gqpy'.
-	    'PFzBT5qml9NzlOX259riWHlS4kOffviHD8PQYZx2EFMPRkw+9Q'.
-	    'FSnRPeWEDzKAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_green.png
-//==========================================================
-	$this->imgdata[6][0]= 325 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'.
-	    'BMVEX////2+vX1+vX1+fT0+fPz+PPx9/Dv9u7u9e3h7uHe697a'.
-	    '6dnO2s3I1sa10LOvza2ay5aEwYBWlE9TqE5Tkk1RkEpMrUJMg0'.
-	    'hKiUNGpEFBojw8oTcsbScaYBMWlwmMT0NtAAAAAWJLR0QAiAUd'.
-	    'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEFd'.
-	    'nFx90AAABuSURBVHjaVc9HAoAgDADB2HuJWLDx/2cKBITscW4L'.
-	    '5byzMIWtZobNDZIZtrcCGZsRQ8GwvRSRNxIiMuysODKG3alikl'.
-	    'ueOPlpKTLBaRmOZxQxaXlfb5ZWI9om4WntrXiDSJzp7SBkwMQa'.
-	    'FEy0VR/NAB2kNuj7rgAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_orange.png
-//==========================================================
-	$this->imgdata[7][0]= 321 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAUV'.
-	    'BMVEX/////8+n/8uf/8OP/59H/5Mv/zqH/zJ3/ypv/yJf/vYH/'.
-	    'u33/uXn/n0n/nUX/m0H/lzn/ljf/lDP/kS3/kCv/iR//hxv/fg'.
-	    'n/fAX/eQDYZgDW6ia5AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAL'.
-	    'EgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEJIgbx+cAAAB2SURBVH'.
-	    'jaVczRCoQwDETRbLAWLZSGUA35/w/dVI0283i4DODew3YESmWW'.
-	    'kg5gWkoQAe6TleUQI/66Sy7i56+kLk7cht2N0+hcnJgQu0SqiC'.
-	    '1SzSIbzWSi6gavqJ63wSduRi2f+kwyD5rEukwCdZ1kGAMGMfv9'.
-	    'AbWuGMOr5COSAAAAAElFTkSuQmCC' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_stars.inc b/nightly-test-server/jpgraph/imgdata_stars.inc
deleted file mode 100644
index 3e864eb..0000000
--- a/nightly-test-server/jpgraph/imgdata_stars.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_STARS.INC
-// Description:	Base64 encoded images for stars
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-class ImgData_Stars extends ImgData {
-    var $name = 'Stars';
-    var $an = array(MARK_IMG_STAR => 'imgdata');
-
-    var $colors = array('bluegreen','lightblue','purple','blue','green','pink','red','yellow');
-    var $index  = array('bluegreen'=>3,'lightblue'=>4,'purple'=>1, 
-			'blue'=>5,'green'=>0,'pink'=>7,'red'=>2,'yellow'=>6);
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Stars() {
-//==========================================================
-// File: bstar_green_001.png
-//==========================================================
-	$this->imgdata[0][0]= 329 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAAUV'.
-	    'BMVEX///////+/v7+83rqcyY2Q/4R7/15y/1tp/05p/0lg/zdX'.
-	    '/zdX/zVV/zdO/zFJ9TFJvDFD4yg+8Bw+3iU68hwurhYotxYosx'.
-	    'YokBoTfwANgQFUp7DWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJj'.
-	    'CRyxgTAAAAcUlEQVR4nH3MSw6AIAwEUBL/IKBWwXL/g0pLojUS'.
-	    'ZzGLl8ko9Zumhr5iy66/GH0dp49llNPB5sTotDY5PVuLG6tnM9'.
-	    'CVKSIe1joSgPsAKSuANNaENFQvTAGzmheSkUpMBWeJZwqBT8wo'.
-	    'hmysD4bnnPsC/x8ItUdGPfAAAAAASUVORK5CYII=' ; 
-//==========================================================
-// File: bstar_blred.png
-//==========================================================
-	$this->imgdata[1][0]= 325 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79uRJ6jWPOSUtKrb+ejWO+gWPaGTruJTr6rZvF2'.
-	    'RqC2ocqdVuCeV+egV/GsnLuIXL66rMSpcOyATbipY/OdWOp+VK'.
-	    'aTU9WhV+yJKBoLAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJwynv1'.
-	    'XVAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_red_001.png
-//==========================================================
-	$this->imgdata[2][0]= 325 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+eRFHzWG3SUmHnb37vWGr2WHG7Tlm+TljxZneg'.
-	    'Rk3KoaXgVmXnV2nxV227nJ++XGzErK3scIS4TVzzY3fqWG2mVF'.
-	    'zVU2PsV2rJFw9VAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJzCI0C'.
-	    'lSAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blgr_001.png
-//==========================================================
-	$this->imgdata[3][0]= 325 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79Ehp5Yx/NSq9Jvw+dYwu9YzfZOmbtOmb5myPFG'.
-	    'gqChvcpWteBXvedXxvGcsbtcpb6su8RwzOxNmrhjyvNYwupUjK'.
-	    'ZTr9VXwOyJhmWNAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJTC65k'.
-	    'vQAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blgr_002.png
-//==========================================================
-	$this->imgdata[4][0]= 325 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79EnpxY8/FS0dJv5+dY7+9Y9vBOubtOur5m8fFG'.
-	    'nKChycpW3uBX5+ZX8e2curtcvrqswsRw7OdNuLZj8/BY6udUpK'.
-	    'ZT1dRX7OtNkrW5AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJgXHeN'.
-	    'wwAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blue_001.png
-//==========================================================
-	$this->imgdata[5][0]= 325 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79EY55Yi/NSetJvledYiO9YkPZOb7tObr5mkvFG'.
-	    'X6ChrcpWgOBXhedXi/Gcpbtcf76sssRwnOxNcbhjk/NYiepUbK'.
-	    'ZTfdVXh+ynNEzzAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJhStyP'.
-	    'zCAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_oy_007.png
-//==========================================================
-	$this->imgdata[6][0]= 325 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+ejUTz11jSvVLn02/v1lj21li7q06+r07x2mag'.
-	    'lUbKxKHgy1bnz1fx1Ve7t5y+qlzEwqzs03C4pE3z2WPqz1imml'.
-	    'TVv1Ps01dGRjeyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJjsGGc'.
-	    'GbAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_lred.png
-//==========================================================
-	$this->imgdata[7][0]= 325 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+eRJPzWN3SUr7nb9TvWNj2WOS7Tqi+TqnxZtyg'.
-	    'Ro/KocPgVsjnV9LxV927nLa+XLTErL7scN24TarzY9/qWNemVJ'.
-	    'jVU8LsV9VCwcc9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJxi9ZY'.
-	    'GoAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpg-config.inc b/nightly-test-server/jpgraph/jpg-config.inc
deleted file mode 100644
index 1e803df..0000000
--- a/nightly-test-server/jpgraph/jpg-config.inc
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPG-CONFIG.INC
-// Description:	Configuration file for JpGraph library
-// Created: 	2004-03-27
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-
-//------------------------------------------------------------------------
-// Directories for cache and font directory. 
-//
-// CACHE_DIR:
-// The full absolute name of the directory to be used to store the
-// cached image files. This directory will not be used if the USE_CACHE
-// define (further down) is false. If you enable the cache please note that
-// this directory MUST be readable and writable for the process running PHP.
-// Must end with '/'
-//
-// TTF_DIR:
-// Directory where TTF fonts can be found. Must end with '/'
-//
-// The default values used if these defines are left commented out are:
-//
-// UNIX:
-//   CACHE_DIR /tmp/jpgraph_cache/
-//   TTF_DIR   /usr/X11R6/lib/X11/fonts/truetype/
-//   MBTTF_DIR /usr/share/fonts/ja/TrueType/
-//
-// WINDOWS:
-//   CACHE_DIR $SERVER_TEMP/jpgraph_cache/
-//   TTF_DIR   $SERVER_SYSTEMROOT/fonts/
-//   MBTTF_DIR $SERVER_SYSTEMROOT/fonts/
-//
-//------------------------------------------------------------------------
-// DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
-// DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
-// DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");
-
-//-------------------------------------------------------------------------
-// Cache directory specification for use with CSIM graphs that are
-// using the cache.
-// The directory must be the filesysystem name as seen by PHP
-// and the 'http' version must be the same directory but as 
-// seen by the HTTP server relative to the 'htdocs' ddirectory. 
-// If a relative path is specified it is taken to be relative from where
-// the image script is executed.
-// Note: The default setting is to create a subdirectory in the 
-// directory from where the image script is executed and store all files
-// there. As ususal this directory must be writeable by the PHP process.
-DEFINE("CSIMCACHE_DIR","csimcache/"); 
-DEFINE("CSIMCACHE_HTTP_DIR","csimcache/");
-
-//------------------------------------------------------------------------
-// Defines for font setup
-//------------------------------------------------------------------------
-
-// Actual name of the TTF file used together with FF_CHINESE aka FF_BIG5
-// This is the TTF file being used when the font family is specified as
-// either FF_CHINESE or FF_BIG5
-DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
-
-// Special unicode greek language support
-DEFINE("LANGUAGE_GREEK",false);
-
-// If you are setting this config to true the conversion of greek characters
-// will assume that the input text is windows 1251 
-DEFINE("GREEK_FROM_WINDOWS",false);
-
-// Special unicode cyrillic language support
-DEFINE("LANGUAGE_CYRILLIC",false);
-
-// If you are setting this config to true the conversion
-// will assume that the input text is windows 1251, if
-// false it will assume koi8-r
-DEFINE("CYRILLIC_FROM_WINDOWS",false);
-
-// The following constant is used to auto-detect
-// whether cyrillic conversion is really necessary
-// if enabled. Just replace 'windows-1251' with a variable
-// containing the input character encoding string
-// of your application calling jpgraph.
-// A typical such string would be 'UTF-8' or 'utf-8'.
-// The comparison is case-insensitive.
-// If this charset is not a 'koi8-r' or 'windows-1251'
-// derivate then no conversion is done.
-//
-// This constant can be very important in multi-user
-// multi-language environments where a cyrillic conversion
-// could be needed for some cyrillic people
-// and resulting in just erraneous conversions
-// for not-cyrillic language based people.
-//
-// Example: In the free project management
-// software dotproject.net $locale_char_set is dynamically
-// set by the language environment the user has chosen.
-//
-// Usage: DEFINE('LANGUAGE_CHARSET', $locale_char_set);
-//
-// where $locale_char_set is a GLOBAL (string) variable
-// from the application including JpGraph.
-// 
-DEFINE('LANGUAGE_CHARSET', null);
-
-// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
-DEFINE('MINCHO_TTF_FONT','ipam.ttf');
-DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
-DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
-DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');
-
-// Assume that Japanese text have been entered in EUC-JP encoding.
-// If this define is true then conversion from EUC-JP to UTF8 is done 
-// automatically in the library using the mbstring module in PHP.
-DEFINE('ASSUME_EUCJP_ENCODING',false);
-
-//------------------------------------------------------------------------
-// Various JpGraph Settings. Adjust accordingly to your
-// preferences. Note that cache functionality is turned off by
-// default (Enable by setting USE_CACHE to true)
-//------------------------------------------------------------------------
-
-// Deafult locale for error messages.
-// This defaults to English = 'en'
-DEFINE('DEFAULT_ERR_LOCALE','en');
-
-// Deafult graphic format set to "auto" which will automatically
-// choose the best available format in the order png,gif,jpeg
-// (The supported format depends on what your PHP installation supports)
-DEFINE("DEFAULT_GFORMAT","auto");
-
-// Should the image be a truecolor image? 
-// Note 1: Has only effect with GD 2.0.1 and above.
-// Note 2: GD 2.0.1 + PHP 4.0.6 on Win32 crashes when trying to use 
-// trucolor.
-// Note 3: MUST be enabled to get background images working with GD2
-DEFINE('USE_TRUECOLOR',true);
-
-// Specify what version of the GD library is installed.
-// If this is set to 'auto' the version will be automatically 
-// determined.
-// However since determining the library takes ~1ms you can also 
-// manually specify the version if you know what version you have. 
-// This means that you should 
-// set this define to true if you have GD 2.x installed to save 1ms. 
-DEFINE("USE_LIBRARY_GD2",'auto');
-
-// Should the cache be used at all? By setting this to false no
-// files will be generated in the cache directory.  
-// The difference from READ_CACHE being that setting READ_CACHE to
-// false will still create the image in the cache directory
-// just not use it. By setting USE_CACHE=false no files will even
-// be generated in the cache directory.
-DEFINE("USE_CACHE",false);
-
-// Should we try to find an image in the cache before generating it? 
-// Set this define to false to bypass the reading of the cache and always
-// regenerate the image. Note that even if reading the cache is 
-// disabled the cached will still be updated with the newly generated
-// image. Set also "USE_CACHE" below.
-DEFINE("READ_CACHE",true);
-
-// Determine if the error handler should be image based or purely
-// text based. Image based makes it easier since the script will
-// always return an image even in case of errors.
-DEFINE("USE_IMAGE_ERROR_HANDLER",true);
-
-// Determine if the library should also setup the default PHP
-// error handler to generate a graphic error mesage. This is useful
-// during development to be able to see the error message as an image
-// instead as a "red-cross" in a page where an image is expected.
-DEFINE("INSTALL_PHP_ERR_HANDLER",false);
-
-// Should the library examin the global php_errmsg string and convert
-// any error in it to a graphical representation. This is handy for the
-// occasions when, for example, header files cannot be found and this results
-// in the graph not being created and just a "red-cross" image would be seen.
-// This should be turned off for a production site.
-DEFINE("CATCH_PHPERRMSG",true);
-
-// If the color palette is full should JpGraph try to allocate
-// the closest match? If you plan on using background images or
-// gradient fills it might be a good idea to enable this.
-// If not you will otherwise get an error saying that the color palette is 
-// exhausted. The drawback of using approximations is that the colors 
-// might not be exactly what you specified. 
-// Note1: This does only apply to paletted images, not truecolor 
-// images since they don't have the limitations of maximum number
-// of colors.
-DEFINE("USE_APPROX_COLORS",true);
-
-// Should usage of deprecated functions and parameters give a fatal error?
-// (Useful to check if code is future proof.)
-DEFINE("ERR_DEPRECATED",true);
-
-// Should the time taken to generate each picture be branded to the lower
-// left in corner in each generated image? Useful for performace measurements
-// generating graphs
-DEFINE("BRAND_TIMING",false);
-
-// What format should be used for the timing string?
-DEFINE("BRAND_TIME_FORMAT","(%01.3fs)");
-
-//------------------------------------------------------------------------
-// The following constants should rarely have to be changed !
-//------------------------------------------------------------------------
-
-// What group should the cached file belong to
-// (Set to "" will give the default group for the "PHP-user")
-// Please note that the Apache user must be a member of the
-// specified group since otherwise it is impossible for Apache
-// to set the specified group.
-DEFINE("CACHE_FILE_GROUP","wwwadmin");
-
-// What permissions should the cached file have
-// (Set to "" will give the default persmissions for the "PHP-user")
-DEFINE("CACHE_FILE_MOD",0664);
-
-// Decide if we should use the bresenham circle algorithm or the
-// built in Arc(). Bresenham gives better visual apperance of circles 
-// but is more CPU intensive and slower then the built in Arc() function
-// in GD. Turned off by default for speed
-DEFINE("USE_BRESENHAM",false);
-
-// Special file name to indicate that we only want to calc
-// the image map in the call to Graph::Stroke() used
-// internally from the GetHTMLCSIM() method.
-DEFINE("_CSIM_SPECIALFILE","_csim_special_");
-
-// HTTP GET argument that is used with image map
-// to indicate to the script to just generate the image
-// and not the full CSIM HTML page.
-DEFINE("_CSIM_DISPLAY","_jpg_csimd");
-
-// Special filename for Graph::Stroke(). If this filename is given
-// then the image will NOT be streamed to browser of file. Instead the
-// Stroke call will return the handler for the created GD image.
-DEFINE("_IMG_HANDLER","__handle");
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph.php b/nightly-test-server/jpgraph/jpgraph.php
deleted file mode 100644
index 8a1c2e6..0000000
--- a/nightly-test-server/jpgraph/jpgraph.php
+++ /dev/null
@@ -1,6314 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH.PHP
-// Description:	PHP Graph Plotting library. Base module.
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-require_once('jpg-config.inc');
-
-require_once('gd_image.inc.php');
-
-// Version info
-DEFINE('JPG_VERSION','1.20.3');
-
-// Minimum required PHP version
-DEFINE('MIN_PHPVERSION','4.3.1');
-
-// For internal use only
-DEFINE("_JPG_DEBUG",false);
-DEFINE("_FORCE_IMGTOFILE",false);
-DEFINE("_FORCE_IMGDIR",'/tmp/jpgimg/');
-
-//------------------------------------------------------------------------
-// Automatic settings of path for cache and font directory
-// if they have not been previously specified
-//------------------------------------------------------------------------
-if(USE_CACHE) {
-    if (!defined('CACHE_DIR')) {
-	if ( strstr( PHP_OS, 'WIN') ) {
-	    if( empty($_SERVER['TEMP']) ) {
-		$t = new ErrMsgText();
-		$msg = $t->Get(11,$file,$lineno);
-		die($msg);
-	    }
-	    else {
-		DEFINE('CACHE_DIR', $_SERVER['TEMP'] . '/');
-	    }
-	} else {
-	    DEFINE('CACHE_DIR','/tmp/jpgraph_cache/');
-	}
-    }
-}
-elseif( !defined('CACHE_DIR') ) {
-    DEFINE('CACHE_DIR', '');
-}
-
-if (!defined('TTF_DIR')) {
-    if (strstr( PHP_OS, 'WIN') ) {
-	$sroot = getenv('SystemRoot');
-        if( empty($sroot) ) {
-	    $t = new ErrMsgText();
-	    $msg = $t->Get(12,$file,$lineno);
-	    die($msg);
-        }
-	else {
-	  DEFINE('TTF_DIR', $sroot.'/fonts/');
-        }
-    } else {
-	DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/truetype/');
-    }
-}
-
-//------------------------------------------------------------------
-// Constants which are used as parameters for the method calls
-//------------------------------------------------------------------
-
-// Tick density
-DEFINE("TICKD_DENSE",1);
-DEFINE("TICKD_NORMAL",2);
-DEFINE("TICKD_SPARSE",3);
-DEFINE("TICKD_VERYSPARSE",4);
-
-// Side for ticks and labels. 
-DEFINE("SIDE_LEFT",-1);
-DEFINE("SIDE_RIGHT",1);
-DEFINE("SIDE_DOWN",-1);
-DEFINE("SIDE_BOTTOM",-1);
-DEFINE("SIDE_UP",1);
-DEFINE("SIDE_TOP",1);
-
-// Legend type stacked vertical or horizontal
-DEFINE("LEGEND_VERT",0);
-DEFINE("LEGEND_HOR",1);
-
-// Mark types for plot marks
-DEFINE("MARK_SQUARE",1);
-DEFINE("MARK_UTRIANGLE",2);
-DEFINE("MARK_DTRIANGLE",3);
-DEFINE("MARK_DIAMOND",4);
-DEFINE("MARK_CIRCLE",5);
-DEFINE("MARK_FILLEDCIRCLE",6);
-DEFINE("MARK_CROSS",7);
-DEFINE("MARK_STAR",8);
-DEFINE("MARK_X",9);
-DEFINE("MARK_LEFTTRIANGLE",10);
-DEFINE("MARK_RIGHTTRIANGLE",11);
-DEFINE("MARK_FLASH",12);
-DEFINE("MARK_IMG",13);
-DEFINE("MARK_FLAG1",14);
-DEFINE("MARK_FLAG2",15);
-DEFINE("MARK_FLAG3",16);
-DEFINE("MARK_FLAG4",17);
-
-// Builtin images
-DEFINE("MARK_IMG_PUSHPIN",50);
-DEFINE("MARK_IMG_SPUSHPIN",50);
-DEFINE("MARK_IMG_LPUSHPIN",51);
-DEFINE("MARK_IMG_DIAMOND",52);
-DEFINE("MARK_IMG_SQUARE",53);
-DEFINE("MARK_IMG_STAR",54);
-DEFINE("MARK_IMG_BALL",55);
-DEFINE("MARK_IMG_SBALL",55);
-DEFINE("MARK_IMG_MBALL",56);
-DEFINE("MARK_IMG_LBALL",57);
-DEFINE("MARK_IMG_BEVEL",58);
-
-// Inline defines
-DEFINE("INLINE_YES",1);
-DEFINE("INLINE_NO",0);
-
-// Format for background images
-DEFINE("BGIMG_FILLPLOT",1);
-DEFINE("BGIMG_FILLFRAME",2);
-DEFINE("BGIMG_COPY",3);
-DEFINE("BGIMG_CENTER",4);
-
-// Depth of objects
-DEFINE("DEPTH_BACK",0);
-DEFINE("DEPTH_FRONT",1);
-
-// Direction
-DEFINE("VERTICAL",1);
-DEFINE("HORIZONTAL",0);
-
-
-// Axis styles for scientific style axis
-DEFINE('AXSTYLE_SIMPLE',1);
-DEFINE('AXSTYLE_BOXIN',2);
-DEFINE('AXSTYLE_BOXOUT',3);
-DEFINE('AXSTYLE_YBOXIN',4);
-DEFINE('AXSTYLE_YBOXOUT',5);
-
-// Style for title backgrounds
-DEFINE('TITLEBKG_STYLE1',1);
-DEFINE('TITLEBKG_STYLE2',2);
-DEFINE('TITLEBKG_STYLE3',3);
-DEFINE('TITLEBKG_FRAME_NONE',0);
-DEFINE('TITLEBKG_FRAME_FULL',1);
-DEFINE('TITLEBKG_FRAME_BOTTOM',2);
-DEFINE('TITLEBKG_FRAME_BEVEL',3);
-DEFINE('TITLEBKG_FILLSTYLE_HSTRIPED',1);
-DEFINE('TITLEBKG_FILLSTYLE_VSTRIPED',2);
-DEFINE('TITLEBKG_FILLSTYLE_SOLID',3);
-
-// Style for background gradient fills
-DEFINE('BGRAD_FRAME',1);
-DEFINE('BGRAD_MARGIN',2);
-DEFINE('BGRAD_PLOT',3);
-
-// Width of tab titles
-DEFINE('TABTITLE_WIDTHFIT',0);
-DEFINE('TABTITLE_WIDTHFULL',-1);
-
-// Defines for 3D skew directions
-DEFINE('SKEW3D_UP',0);
-DEFINE('SKEW3D_DOWN',1);
-DEFINE('SKEW3D_LEFT',2);
-DEFINE('SKEW3D_RIGHT',3);
-
-
-
-//
-// Get hold of gradient class (In Version 2.x)
-// A client of the library has to manually include this
-//
-require_once 'jpgraph_gradient.php';
-
-GLOBAL $__jpg_err;
-GLOBAL $__jpg_err_locale ;
-$__jpg_err_locale = DEFAULT_ERR_LOCALE;
-
-class ErrMsgText {
-    var $lt=NULL;
-    function ErrMsgText() {
-	GLOBAL $__jpg_err_locale;
-	$file = 'lang/'.$__jpg_err_locale.'.inc.php';
-
-	// If the chosen locale doesn't exist try english
-	if( !file_exists(dirname(__FILE__).'/'.$file) ) {
-	    $__jpg_err_locale = 'en';
-	}
-
-	$file = 'lang/'.$__jpg_err_locale.'.inc.php';
-	if( !file_exists(dirname(__FILE__).'/'.$file) ) {
-	    die('Internal error: Chosen locale file for error messages does not exist.');
-	}
-	require_once($file);
-	$this->lt = $_jpg_messages;
-    }
-
-    function Get($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) {
-	GLOBAL $__jpg_err_locale;
-	if( !isset($this->lt[$errnbr]) ) {
-	    return 'Internal error: The specified error message ('.$errnbr.') does not exist in the chosen locale ('.$__jpg_err_locale.')';
-	}
-	$ea = $this->lt[$errnbr];
-	$j=0;
-	if( $a1 !== null ) {
-	    $argv[$j++] = $a1;
-	    if( $a2 !== null ) {
-		$argv[$j++] = $a2;
-		if( $a3 !== null ) {
-		    $argv[$j++] = $a3;
-		    if( $a4 !== null ) {
-			$argv[$j++] = $a4;
-			if( $a5 !== null ) {
-			    $argv[$j++] = $a5;
-			}
-		    }
-		}
-	    }
-	}
-	$numargs = $j; 
-	if( $ea[1] != $numargs ) {
-	    // Error message argument count do not match.
-	    // Just return the error message without arguments.
-	    return $ea[0];
-	}
-	switch( $numargs ) {
-	    case 1:
-		$msg = sprintf($ea[0],$argv[0]);
-		break;
-	    case 2:
-		$msg = sprintf($ea[0],$argv[0],$argv[1]);
-		break;
-	    case 3:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2]);
-		break;
-	    case 4:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3]);
-		break;
-	    case 5:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3],$argv[4]);
-		break;
-	    case 0:
-	    default:
-		$msg = sprintf($ea[0]);
-		break;
-	}
-	return $msg;
-    }
-}
-
-//
-// A wrapper class that is used to access the specified error object
-// (to hide the global error parameter and avoid having a GLOBAL directive
-// in all methods.
-//
-class JpGraphError {
-    function Install($aErrObject) {
-	GLOBAL $__jpg_err;
-	$__jpg_err = $aErrObject;
-    }
-    function SetErrLocale($aLoc) {
-	GLOBAL $__jpg_err_locale ;
-	$__jpg_err_locale = $aLoc;
-    }
-    function Raise($aMsg,$aHalt=true){
-	GLOBAL $__jpg_err;
-	$tmp = new $__jpg_err;
-	$tmp->Raise($aMsg,$aHalt);
-    }
-    function RaiseL($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) {
-	GLOBAL $__jpg_err;
-	$t = new ErrMsgText();
-	$msg = $t->Get($errnbr,$a1,$a2,$a3,$a4,$a5);
-	$tmp = new $__jpg_err;
-	$tmp->Raise($msg);
-    }
-}
- 
-//
-// ... and install the default error handler
-//
-if( USE_IMAGE_ERROR_HANDLER ) {
-    $__jpg_err = "JpGraphErrObjectImg";
-}
-else {
-    $__jpg_err = "JpGraphErrObject"; 
-}
-
-function CheckPHPVersion($aMinVersion)
-{
-    list($majorC, $minorC, $editC) = split('[/.-]', PHP_VERSION);
-    list($majorR, $minorR, $editR) = split('[/.-]', $aMinVersion);
-  
-    if ($majorC > $majorR) return true;
-    if ($majorC < $majorR) return false;
-    // same major - check ninor
-    if ($minorC > $minorR) return true;
-    if ($minorC < $minorR) return false;
-    // and same minor
-    if ($editC  >= $editR)  return true;
-    return true;
-}
-
-//
-// Make GD sanity check
-//
-if( !function_exists("imagetypes") || !function_exists('imagecreatefromstring') ) {
-    JpGraphError::RaiseL(25001);
-//("This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)");
-}
-
-
-//
-// Routine to determine if GD1 or GD2 is installed
-//
-function CheckGDVersion() {
-    $GDfuncList = get_extension_funcs('gd');
-    if( !$GDfuncList ) return 0 ;
-    else {
-	if( in_array('imagegd2',$GDfuncList) && 
-	    in_array('imagecreatetruecolor',$GDfuncList))
-	    return 2;
-	else
-	    return 1;
-    } 
-}
-
-//
-// Check what version of the GD library is installed.
-//
-$GLOBALS['gd2'] = false;
-if( USE_LIBRARY_GD2 === 'auto' ) {
-    $gdversion = CheckGDVersion();
-    if( $gdversion == 2 ) {
-	$GLOBALS['gd2'] = true;
-	$GLOBALS['copyfunc'] = 'imagecopyresampled';
-    }
-    elseif( $gdversion == 1 ) {
-	$GLOBALS['gd2'] = false;
-	$GLOBALS['copyfunc'] = 'imagecopyresized';
-    }
-    else {
-	JpGraphError::RaiseL(25002);
-//(" Your PHP installation does not seem to have the required GD library. Please see the PHP documentation on how to install and enable the GD library.");
-    }
-}
-else {
-    $GLOBALS['gd2'] = USE_LIBRARY_GD2;
-    $GLOBALS['copyfunc'] = USE_LIBRARY_GD2 ? 'imagecopyresampled' : 'imagecopyresized';
-}
-
-//
-// Make sure PHP version is high enough
-//
-if( !CheckPHPVersion(MIN_PHPVERSION) ) {
-    JpGraphError::RaiseL(13,PHP_VERSION,MIN_PHPVERSION);
-}
-
-//
-// First of all set up a default error handler
-//
-
-
-//=============================================================
-// The default trivial text error handler.
-//=============================================================
-class JpGraphErrObject {
-
-    var $iTitle = "JpGraph Error";
-    var $iDest = false;
-
-    function JpGraphErrObject() {
-	// Empty. Reserved for future use
-    }
-
-    function SetTitle($aTitle) {
-	$this->iTitle = $aTitle;
-    }
-
-    function SetStrokeDest($aDest) { 
-	$this->iDest = $aDest; 
-    }
-
-    // If aHalt is true then execution can't continue. Typical used for fatal errors.
-    function Raise($aMsg,$aHalt=true) {
-	$aMsg = $this->iTitle.' '.$aMsg;
-	if ($this->iDest) {
-	    $f = @fopen($this->iDest,'a');
-	    if( $f ) {
-		@fwrite($f,$aMsg);
-		@fclose($f);
-	    }
-	}
-	else {
-	    echo $aMsg;
-	}
-	if( $aHalt )
-	    die();
-    }
-}
-
-//==============================================================
-// An image based error handler
-//==============================================================
-class JpGraphErrObjectImg extends JpGraphErrObject {
-
-    function Raise($aMsg,$aHalt=true) {
-	$img_iconerror = 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaV'.
-	    'BMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'.
-	    'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpY'.
-	    'iYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'IAAAsSAdLdfvwAAAAHdElNRQfTBgISOCqusfs5AAABLUlEQVR4'.
-	    '2tWV3XKCMBBGWfkranCIVClKLd/7P2Q3QsgCxjDTq+6FE2cPH+'.
-	    'xJ0Ogn2lQbsT+Wrs+buAZAV4W5T6Bs0YXBBwpKgEuIu+JERAX6'.
-	    'wM2rHjmDdEITmsQEEmWADgZm6rAjhXsoMGY9B/NZBwJzBvn+e3'.
-	    'wHntCAJdGu9SviwIwoZVDxPB9+Rc0TSEbQr0j3SA1gwdSn6Db0'.
-	    '6Tm1KfV6yzWGQO7zdpvyKLKBDmRFjzeB3LYgK7r6A/noDAfjtS'.
-	    'IXaIzbJSv6WgUebTMV4EoRB8a2mQiQjgtF91HdKDKZ1gtFtQjk'.
-	    'YcWaR5OKOhkYt+ZsTFdJRfPAApOpQYJTNHvCRSJR6SJngQadfc'.
-	    'vd69OLMddVOPCGVnmrFD8bVYd3JXfxXPtLR/+mtv59/ALWiiMx'.
-	    'qL72fwAAAABJRU5ErkJggg==' ;
-
-	if( function_exists("imagetypes") )
-	    $supported = imagetypes();
-	else
-	    $supported = 0;
-
-	if( !function_exists('imagecreatefromstring') )
-	    $supported = 0;
-
-	if( ob_get_length() || headers_sent() || !($supported & IMG_PNG) ) {
-	    // Special case for headers already sent or that the installation doesn't support
-	    // the PNG format (which the error icon is encoded in). 
-	    // Dont return an image since it can't be displayed
-	    die($this->iTitle.' '.$aMsg);		
-	}
-
-	$aMsg = wordwrap($aMsg,55);
-	$lines = substr_count($aMsg,"\n");
-
-	// Create the error icon GD
-	$erricon = Image::CreateFromString(base64_decode($img_iconerror));   
-
-	// Create an image that contains the error text.
-	$w=400; 	
-	$h=100 + 15*max(0,$lines-3);
-
-	$img = new Image($w,$h);
-
-	// Drop shadow
-	$img->SetColor("gray");
-	$img->FilledRectangle(5,5,$w-1,$h-1,10);
-	$img->SetColor("gray:0.7");
-	$img->FilledRectangle(5,5,$w-3,$h-3,10);
-	
-	// Window background
-	$img->SetColor("lightblue");
-	$img->FilledRectangle(1,1,$w-5,$h-5);
-	$img->CopyCanvasH($img->img,$erricon,5,30,0,0,40,40);
-
-	// Window border
-	$img->SetColor("black");
-	$img->Rectangle(1,1,$w-5,$h-5);
-	$img->Rectangle(0,0,$w-4,$h-4);
-	
-	// Window top row
-	$img->SetColor("darkred");
-	for($y=3; $y < 18; $y += 2 ) 
-	    $img->Line(1,$y,$w-6,$y);
-
-	// "White shadow"
-	$img->SetColor("white");
-
-	// Left window edge
-	$img->Line(2,2,2,$h-5);
-	$img->Line(2,2,$w-6,2);
-
-	// "Gray button shadow"
-	$img->SetColor("darkgray");
-
-	// Gray window shadow
-	$img->Line(2,$h-6,$w-5,$h-6);
-	$img->Line(3,$h-7,$w-5,$h-7);
-
-	// Window title
-	$m = floor($w/2-5);
-	$l = 100;
-	$img->SetColor("lightgray:1.3");
-	$img->FilledRectangle($m-$l,2,$m+$l,16);
-
-	// Stroke text
-	$img->SetColor("darkred");
-	$img->SetFont(FF_FONT2,FS_BOLD);
-	$img->StrokeText($m-50,15,$this->iTitle);
-	$img->SetColor("black");
-	$img->SetFont(FF_FONT1,FS_NORMAL);
-	$txt = new Text($aMsg,52,25);
-	$txt->Align("left","top");
-	$txt->Stroke($img);
-	if ($this->iDest) {
-           $img->Stream($this->iDest);
-	} else {
-	    $img->Headers();
-	    $img->Stream();
-	}
-	if( $aHalt )
-	    die();
-    }
-}
-
-//
-// Setup PHP error handler
-//
-function _phpErrorHandler($errno,$errmsg,$filename, $linenum, $vars) {
-    // Respect current error level
-    if( $errno & error_reporting() ) {
-	JpGraphError::RaiseL(25003,basename($filename),$linenum,$errmsg); 
-    }
-}
-
-if( INSTALL_PHP_ERR_HANDLER ) {
-    set_error_handler("_phpErrorHandler");
-}
-
-//
-//Check if there were any warnings, perhaps some wrong includes by the user
-//
-if( isset($GLOBALS['php_errormsg']) && CATCH_PHPERRMSG && 
-    !preg_match('|Deprecated|', $GLOBALS['php_errormsg'])) {
-    JpGraphError::RaiseL(25004,$GLOBALS['php_errormsg']);
-}
-
-
-// Useful mathematical function
-function sign($a) {return $a >= 0 ? 1 : -1;}
-
-// Utility function to generate an image name based on the filename we
-// are running from and assuming we use auto detection of graphic format
-// (top level), i.e it is safe to call this function
-// from a script that uses JpGraph
-function GenImgName() {
-    global $_SERVER;
-
-    // Determine what format we should use when we save the images
-    $supported = imagetypes();
-    if( $supported & IMG_PNG )	   $img_format="png";
-    elseif( $supported & IMG_GIF ) $img_format="gif";
-    elseif( $supported & IMG_JPG ) $img_format="jpeg";
-
-    if( !isset($_SERVER['PHP_SELF']) )
-	JpGraphError::RaiseL(25005);
-//(" Can't access PHP_SELF, PHP global variable. You can't run PHP from command line if you want to use the 'auto' naming of cache or image files.");
-    $fname = basename($_SERVER['PHP_SELF']);
-    if( !empty($_SERVER['QUERY_STRING']) ) {
-	$q = @$_SERVER['QUERY_STRING'];
-	$fname .= '?'.preg_replace("/\W/", "_", $q).'.'.$img_format;
-    }
-    else {
-	$fname = substr($fname,0,strlen($fname)-4).'.'.$img_format;
-    }
-    return $fname;
-}
-
-class LanguageConv {
-    var $g2312 = null ;
-
-    function Convert($aTxt,$aFF) {
-	if( LANGUAGE_GREEK ) {
-	    if( GREEK_FROM_WINDOWS ) {
-		$unistring = LanguageConv::gr_win2uni($aTxt); 
-	    } else  {
-		$unistring = LanguageConv::gr_iso2uni($aTxt);
-	    }
-	    return $unistring;
-	} elseif( LANGUAGE_CYRILLIC ) {
-	    if( CYRILLIC_FROM_WINDOWS && (!defined('LANGUAGE_CHARSET') || stristr(LANGUAGE_CHARSET, 'windows-1251')) ) {
-		$aTxt = convert_cyr_string($aTxt, "w", "k"); 
-	    }
-	    if( !defined('LANGUAGE_CHARSET') || stristr(LANGUAGE_CHARSET, 'koi8-r') || stristr(LANGUAGE_CHARSET, 'windows-1251')) {
-		$isostring = convert_cyr_string($aTxt, "k", "i");
-		$unistring = LanguageConv::iso2uni($isostring);
-	    }
-	    else {
-		$unistring = $aTxt;
-	    }
-	    return $unistring;
-	}
-	elseif( $aFF === FF_SIMSUN ) {
-	    // Do Chinese conversion
-	    if( $this->g2312 == null ) {
-		include_once 'jpgraph_gb2312.php' ;
-		$this->g2312 = new GB2312toUTF8();
-	    }
-	    return $this->g2312->gb2utf8($aTxt);
-	}
-	elseif( $aFF === FF_CHINESE ) {
-	    if( !function_exists('iconv') ) {
-		JpGraphError::RaiseL(25006);
-//('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).');
-	    }
-	    return iconv('BIG5','UTF-8',$aTxt);
-	}
-	elseif( ASSUME_EUCJP_ENCODING &&
-		($aFF == FF_MINCHO || $aFF == FF_GOTHIC || $aFF == FF_PMINCHO || $aFF == FF_PGOTHIC) ) {
-	    if( !function_exists('mb_convert_encoding') ) {
-		JpGraphError::RaiseL(25127);
-	    }
-	    return mb_convert_encoding($aTxt, 'UTF-8','EUC-JP');
-	}
-	else 
-	    return $aTxt;
-    }
-
-    // Translate iso encoding to unicode
-    function iso2uni ($isoline){
-	$uniline='';
-	for ($i=0; $i < strlen($isoline); $i++){
-	    $thischar=substr($isoline,$i,1);
-	    $charcode=ord($thischar);
-	    $uniline.=($charcode>175) ? "&#" . (1040+($charcode-176)). ";" : $thischar;
-	}
-	return $uniline;
-    }
-
-    // Translate greek iso encoding to unicode
-    function gr_iso2uni ($isoline) {
-	$uniline='';
-	for ($i=0; $i < strlen($isoline); $i++)	{
-	    $thischar=substr($isoline,$i,1);
-	    $charcode=ord($thischar);
-	    $uniline.=($charcode>179 && $charcode!=183 && $charcode!=187 && $charcode!=189) ? "&#" . (900+($charcode-180)). ";" : $thischar;
-	}
-	return $uniline;
-    }
-
-    // Translate greek win encoding to unicode
-    function gr_win2uni ($winline) {
-	$uniline='';
-	for ($i=0; $i < strlen($winline); $i++) {
-	    $thischar=substr($winline,$i,1);
-	    $charcode=ord($thischar);
-	    if ($charcode==161 || $charcode==162) {
-		$uniline.="&#" . (740+$charcode). ";";
-	    }
-	    else {
-		$uniline.=(($charcode>183 && $charcode!=187 && $charcode!=189) || $charcode==180) ? "&#" . (900+($charcode-180)). ";" : $thischar;
-	    }
-	}
-	return $uniline;
-    }
-}
-
-//===================================================
-// CLASS JpgTimer
-// Description: General timing utility class to handle
-// time measurement of generating graphs. Multiple
-// timers can be started.
-//===================================================
-class JpgTimer {
-    var $start;
-    var $idx;	
-//---------------
-// CONSTRUCTOR
-    function JpgTimer() {
-	$this->idx=0;
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Push a new timer start on stack
-    function Push() {
-	list($ms,$s)=explode(" ",microtime());	
-	$this->start[$this->idx++]=floor($ms*1000) + 1000*$s;	
-    }
-
-    // Pop the latest timer start and return the diff with the
-    // current time
-    function Pop() {
-	assert($this->idx>0);
-	list($ms,$s)=explode(" ",microtime());	
-	$etime=floor($ms*1000) + (1000*$s);
-	$this->idx--;
-	return $etime-$this->start[$this->idx];
-    }
-} // Class
-
-$gJpgBrandTiming = BRAND_TIMING;
-//===================================================
-// CLASS DateLocale
-// Description: Hold localized text used in dates
-//===================================================
-class DateLocale {
- 
-    var $iLocale = 'C'; // environmental locale be used by default
-
-    var $iDayAbb = null;
-    var $iShortDay = null;
-    var $iShortMonth = null;
-    var $iMonthName = null;
-
-//---------------
-// CONSTRUCTOR	
-    function DateLocale() {
-	settype($this->iDayAbb, 'array');
-	settype($this->iShortDay, 'array');
-	settype($this->iShortMonth, 'array');
-	settype($this->iMonthName, 'array');
-
-
-	$this->Set('C');
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Set($aLocale) {
-	if ( in_array($aLocale, array_keys($this->iDayAbb)) ){ 
-	    $this->iLocale = $aLocale;
-	    return TRUE;  // already cached nothing else to do!
-	}
-
-	$pLocale = setlocale(LC_TIME, 0); // get current locale for LC_TIME
-	$res = @setlocale(LC_TIME, $aLocale);
-	if ( ! $res ){
-	    JpGraphError::RaiseL(25007,$aLocale);
-//("You are trying to use the locale ($aLocale) which your PHP installation does not support. Hint: Use '' to indicate the default locale for this geographic region.");
-	    return FALSE;
-	}
- 
-	$this->iLocale = $aLocale;
-
-	for ( $i = 0, $ofs = 0 - strftime('%w'); $i < 7; $i++, $ofs++ ){
-	    $day = strftime('%a', strtotime("$ofs day"));
-	    $day{0} = strtoupper($day{0});
-	    $this->iDayAbb[$aLocale][]= $day{0};
-	    $this->iShortDay[$aLocale][]= $day;
-	}
-
-	for($i=1; $i<=12; ++$i) {
-	    list($short ,$full) = explode('|', strftime("%b|%B",strtotime("2001-$i-01")));
-	    $this->iShortMonth[$aLocale][] = ucfirst($short);
-	    $this->iMonthName [$aLocale][] = ucfirst($full);
-	}
-
-	// Return to original locale
-	setlocale(LC_TIME, $pLocale);
-
-	return TRUE;
-    }
-
-
-    function GetDayAbb() {
-	return $this->iDayAbb[$this->iLocale];
-    }
-	
-    function GetShortDay() {
-	return $this->iShortDay[$this->iLocale];
-    }
-
-    function GetShortMonth() {
-	return $this->iShortMonth[$this->iLocale];
-    }
-	
-    function GetShortMonthName($aNbr) {
-	return $this->iShortMonth[$this->iLocale][$aNbr];
-    }
-
-    function GetLongMonthName($aNbr) {
-	return $this->iMonthName[$this->iLocale][$aNbr];
-    }
-
-    function GetMonth() {
-	return $this->iMonthName[$this->iLocale];
-    }
-}
-
-$gDateLocale = new DateLocale();
-$gJpgDateLocale = new DateLocale();
-
-
-//=======================================================
-// CLASS Footer
-// Description: Encapsulates the footer line in the Graph
-//=======================================================
-class Footer {
-    var $left,$center,$right;
-    var $iLeftMargin = 3;
-    var $iRightMargin = 3;
-    var $iBottomMargin = 3;
-
-    function Footer() {
-	$this->left = new Text();
-	$this->left->ParagraphAlign('left');
-	$this->center = new Text();
-	$this->center->ParagraphAlign('center');
-	$this->right = new Text();
-	$this->right->ParagraphAlign('right');
-    }
-
-    function Stroke(&$aImg) {
-	$y = $aImg->height - $this->iBottomMargin;
-	$x = $this->iLeftMargin;
-	$this->left->Align('left','bottom');
-	$this->left->Stroke($aImg,$x,$y);
-
-	$x = ($aImg->width - $this->iLeftMargin - $this->iRightMargin)/2;
-	$this->center->Align('center','bottom');
-	$this->center->Stroke($aImg,$x,$y);
-
-	$x = $aImg->width - $this->iRightMargin;
-	$this->right->Align('right','bottom');
-	$this->right->Stroke($aImg,$x,$y);
-    }
-}
-
-
-//===================================================
-// CLASS Graph
-// Description: Main class to handle graphs
-//===================================================
-class Graph {
-    var $cache=null;		// Cache object (singleton)
-    var $img=null;			// Img object (singleton)
-    var $plots=array();	// Array of all plot object in the graph (for Y 1 axis)
-    var $y2plots=array();// Array of all plot object in the graph (for Y 2 axis)
-    var $ynplots=array();
-    var $xscale=null;		// X Scale object (could be instance of LinearScale or LogScale
-    var $yscale=null,$y2scale=null, $ynscale=array();
-    var $iIcons = array();      // Array of Icons to add to 
-    var $cache_name;		// File name to be used for the current graph in the cache directory
-    var $xgrid=null;		// X Grid object (linear or logarithmic)
-    var $ygrid=null,$y2grid=null; 
-    var $doframe=true,$frame_color=array(0,0,0), $frame_weight=1;	// Frame around graph
-    var $boxed=false, $box_color=array(0,0,0), $box_weight=1;		// Box around plot area
-    var $doshadow=false,$shadow_width=4,$shadow_color=array(102,102,102);	// Shadow for graph
-    var $xaxis=null;		// X-axis (instane of Axis class)
-    var $yaxis=null, $y2axis=null, $ynaxis=array();	// Y axis (instance of Axis class)
-    var $margin_color=array(200,200,200);	// Margin color of graph
-    var $plotarea_color=array(255,255,255);	// Plot area color
-    var $title,$subtitle,$subsubtitle; 	// Title and subtitle(s) text object
-    var $axtype="linlin";		// Type of axis
-    var $xtick_factor;			// Factot to determine the maximum number of ticks depending on the plot with
-    var $texts=null, $y2texts=null; 	// Text object to ge shown in the graph
-    var $lines=null, $y2lines=null;
-    var $bands=null, $y2bands=null;
-    var $text_scale_off=0, $text_scale_abscenteroff=-1; // Text scale offset in fractions and for centering bars in absolute pixels
-    var $background_image="",$background_image_type=-1,$background_image_format="png";
-    var $background_image_bright=0,$background_image_contr=0,$background_image_sat=0;
-    var $image_bright=0, $image_contr=0, $image_sat=0;
-    var $inline;
-    var $showcsim=0,$csimcolor="red"; //debug stuff, draw the csim boundaris on the image if <>0
-    var $grid_depth=DEPTH_BACK;	// Draw grid under all plots as default
-    var $iAxisStyle = AXSTYLE_SIMPLE;
-    var $iCSIMdisplay=false,$iHasStroked = false;
-    var $footer;
-    var $csimcachename = '', $csimcachetimeout = 0;
-    var $iDoClipping = false;
-    var $y2orderback=true;
-    var $tabtitle;
-    var $bkg_gradtype=-1,$bkg_gradstyle=BGRAD_MARGIN;
-    var $bkg_gradfrom='navy', $bkg_gradto='silver';
-    var $titlebackground = false;
-    var	$titlebackground_color = 'lightblue',
-	$titlebackground_style = 1,
-	$titlebackground_framecolor = 'blue',
-	$titlebackground_framestyle = 2,
-	$titlebackground_frameweight = 1,
-	$titlebackground_bevelheight = 3 ;
-    var $titlebkg_fillstyle=TITLEBKG_FILLSTYLE_SOLID;
-    var $titlebkg_scolor1='black',$titlebkg_scolor2='white';
-    var $framebevel = false, $framebeveldepth = 2 ;
-    var $framebevelborder = false, $framebevelbordercolor='black';
-    var $framebevelcolor1='white@0.4', $framebevelcolor2='black@0.4';
-    var $background_image_mix=100;
-    var $background_cflag = '';
-    var $background_cflag_type = BGIMG_FILLPLOT;
-    var $background_cflag_mix = 100;
-    var $iImgTrans=false,
-	$iImgTransHorizon = 100,$iImgTransSkewDist=150,
-	$iImgTransDirection = 1, $iImgTransMinSize = true,
-	$iImgTransFillColor='white',$iImgTransHighQ=false,
-	$iImgTransBorder=false,$iImgTransHorizonPos=0.5;
-    var $iYAxisDeltaPos=50;
-    var $iIconDepth=DEPTH_BACK;
-    var $iAxisLblBgType = 0,
-	$iXAxisLblBgFillColor = 'lightgray', $iXAxisLblBgColor = 'black',
-	$iYAxisLblBgFillColor = 'lightgray', $iYAxisLblBgColor = 'black';
-    var $iTables=NULL;
-
-//---------------
-// CONSTRUCTOR
-
-    // aWIdth 		Width in pixels of image
-    // aHeight  	Height in pixels of image
-    // aCachedName	Name for image file in cache directory 
-    // aTimeOut		Timeout in minutes for image in cache
-    // aInline		If true the image is streamed back in the call to Stroke()
-    //			If false the image is just created in the cache
-    function Graph($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) {
-	GLOBAL $gJpgBrandTiming;
-	// If timing is used create a new timing object
-	if( $gJpgBrandTiming ) {
-	    global $tim;
-	    $tim = new JpgTimer();
-	    $tim->Push();
-	}
-
-	if( !is_numeric($aWidth) || !is_numeric($aHeight) ) {
-	    JpGraphError::RaiseL(25008);//('Image width/height argument in Graph::Graph() must be numeric');
-	}
-		
-	// Automatically generate the image file name based on the name of the script that
-	// generates the graph
-	if( $aCachedName=="auto" )
-	    $aCachedName=GenImgName();
-			
-	// Should the image be streamed back to the browser or only to the cache?
-	$this->inline=$aInline;
-		
-	$this->img	= new RotImage($aWidth,$aHeight);
-
-	$this->cache 	= new ImgStreamCache($this->img);
-	$this->cache->SetTimeOut($aTimeOut);
-
-	$this->title = new Text();
-	$this->title->ParagraphAlign('center');
-	$this->title->SetFont(FF_FONT2,FS_BOLD);
-	$this->title->SetMargin(3);
-	$this->title->SetAlign('center');
-
-	$this->subtitle = new Text();
-	$this->subtitle->ParagraphAlign('center');
-	$this->subtitle->SetMargin(2);
-	$this->subtitle->SetAlign('center');
-
-	$this->subsubtitle = new Text();
-	$this->subsubtitle->ParagraphAlign('center');
-	$this->subsubtitle->SetMargin(2);
-	$this->subsubtitle->SetAlign('center');
-
-	$this->legend = new Legend();
-	$this->footer = new Footer();
-
-	// Window doesn't like '?' in the file name so replace it with an '_'
-	$aCachedName = str_replace("?","_",$aCachedName);
-
-	// If the cached version exist just read it directly from the
-	// cache, stream it back to browser and exit
-	if( $aCachedName!="" && READ_CACHE && $aInline )
-	    if( $this->cache->GetAndStream($aCachedName) ) {
-		exit();
-	    }
-				
-	$this->cache_name = $aCachedName;
-	$this->SetTickDensity(); // Normal density
-
-	$this->tabtitle = new GraphTabTitle();
-    }
-//---------------
-// PUBLIC METHODS	
-    // Enable final image perspective transformation
-    function Set3DPerspective($aDir=1,$aHorizon=100,$aSkewDist=120,$aQuality=false,$aFillColor='#FFFFFF',$aBorder=false,$aMinSize=true,$aHorizonPos=0.5) {
-	$this->iImgTrans = true;
-	$this->iImgTransHorizon = $aHorizon;
-	$this->iImgTransSkewDist= $aSkewDist;
-	$this->iImgTransDirection = $aDir;
-	$this->iImgTransMinSize = $aMinSize;
-	$this->iImgTransFillColor=$aFillColor;
-	$this->iImgTransHighQ=$aQuality;
-	$this->iImgTransBorder=$aBorder;
-	$this->iImgTransHorizonPos=$aHorizonPos;
-    }
-
-    // Set Image format and optional quality
-    function SetImgFormat($aFormat,$aQuality=75) {
-	$this->img->SetImgFormat($aFormat,$aQuality);
-    }
-
-    // Should the grid be in front or back of the plot?
-    function SetGridDepth($aDepth) {
-	$this->grid_depth=$aDepth;
-    }
-
-    function SetIconDepth($aDepth) {
-	$this->iIconDepth=$aDepth;
-    }
-	
-    // Specify graph angle 0-360 degrees.
-    function SetAngle($aAngle) {
-	$this->img->SetAngle($aAngle);
-    }
-
-    function SetAlphaBlending($aFlg=true) {
-	$this->img->SetAlphaBlending($aFlg);
-    }
-
-    // Shortcut to image margin
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->img->SetMargin($lm,$rm,$tm,$bm);
-    }
-
-    function SetY2OrderBack($aBack=true) {
-	$this->y2orderback = $aBack;
-    }
-
-    // Rotate the graph 90 degrees and set the margin 
-    // when we have done a 90 degree rotation
-    function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) {
-	$lm = $lm ==0 ? floor(0.2 * $this->img->width)  : $lm ;
-	$rm = $rm ==0 ? floor(0.1 * $this->img->width)  : $rm ;
-	$tm = $tm ==0 ? floor(0.2 * $this->img->height) : $tm ;
-	$bm = $bm ==0 ? floor(0.1 * $this->img->height) : $bm ;
-
-	$adj = ($this->img->height - $this->img->width)/2;
-	$this->img->SetMargin($tm-$adj,$bm-$adj,$rm+$adj,$lm+$adj);
-	$this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2));
-	$this->SetAngle(90);
-	if( empty($this->yaxis) || empty($this->xaxis) ) {
-	    JpgraphError::RaiseL(25009);//('You must specify what scale to use with a call to Graph::SetScale()');
-	}
-	$this->xaxis->SetLabelAlign('right','center');
-	$this->yaxis->SetLabelAlign('center','bottom');
-    }
-	
-    function SetClipping($aFlg=true) {
-	$this->iDoClipping = $aFlg ;
-    }
-
-    // Add a plot object to the graph
-    function Add(&$aPlot) {
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25010);//("Graph::Add() You tried to add a null plot to the graph.");
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aPlot);
-	elseif( is_a($cl,'PlotLine') )
-	    $this->AddLine($aPlot);
-	elseif( is_a($cl,'PlotBand') )
-	    $this->AddBand($aPlot);
-	elseif( is_a($cl,'IconPlot') )
-	    $this->AddIcon($aPlot);
-	elseif( is_a($cl,'GTextTable') )
-	    $this->AddTable($aPlot);
-	else
-	    $this->plots[] = &$aPlot;
-    }
-
-
-    function AddTable(&$aTable) {
-	if( is_array($aTable) ) {
-	    for($i=0; $i < count($aTable); ++$i )
-		$this->iTables[]=&$aTable[$i];
-	}
-	else {
-	    $this->iTables[] = &$aTable ;
-	}	
-    }
-
-    function AddIcon(&$aIcon) {
-	if( is_array($aIcon) ) {
-	    for($i=0; $i < count($aIcon); ++$i )
-		$this->iIcons[]=&$aIcon[$i];
-	}
-	else {
-	    $this->iIcons[] = &$aIcon ;
-	}	
-    }
-
-    // Add plot to second Y-scale
-    function AddY2(&$aPlot) {
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25011);//("Graph::AddY2() You tried to add a null plot to the graph.");	
-
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aPlot,true);
-	elseif( is_a($cl,'PlotLine') )
-	    $this->AddLine($aPlot,true);
-	elseif( is_a($cl,'PlotBand') )
-	    $this->AddBand($aPlot,true);
-	else
-	    $this->y2plots[] = &$aPlot;
-    }
-
-    // Add plot to second Y-scale
-    function AddY($aN,&$aPlot) {
-
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25012);//("Graph::AddYN() You tried to add a null plot to the graph.");	
-
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') || is_a($cl,'PlotLine') || is_a($cl,'PlotBand') )
-	    JpGraph::RaiseL(25013);//('You can only add standard plots to multiple Y-axis');
-	else
-	    $this->ynplots[$aN][] = &$aPlot;
-    }
-    
-    // Add text object to the graph
-    function AddText(&$aTxt,$aToY2=false) {
-	if( $aTxt == null )
-	    JpGraphError::RaiseL(25014);//("Graph::AddText() You tried to add a null text to the graph.");		
-	if( $aToY2 ) {
-	    if( is_array($aTxt) ) {
-		for($i=0; $i < count($aTxt); ++$i )
-		    $this->y2texts[]=&$aTxt[$i];
-	    }
-	    else
-		$this->y2texts[] = &$aTxt;
-	}
-	else {
-	    if( is_array($aTxt) ) {
-		for($i=0; $i < count($aTxt); ++$i )
-		    $this->texts[]=&$aTxt[$i];
-	    }
-	    else
-		$this->texts[] = &$aTxt;
-	}
-    }
-	
-    // Add a line object (class PlotLine) to the graph
-    function AddLine(&$aLine,$aToY2=false) {
-	if( $aLine == null )
-	    JpGraphError::RaiseL(25015);//("Graph::AddLine() You tried to add a null line to the graph.");	
-
-	if( $aToY2 ) {
- 	    if( is_array($aLine) ) {
-		for($i=0; $i < count($aLine); ++$i )
-		    $this->y2lines[]=&$aLine[$i];
-	    }
-	    else
-		$this->y2lines[] = &$aLine;
-	}
-	else {
- 	    if( is_array($aLine) ) {
-		for($i=0; $i < count($aLine); ++$i )
-		    $this->lines[]=&$aLine[$i];
-	    }
-	    else
-		$this->lines[] = &$aLine;
-	}
-    }
-
-    // Add vertical or horizontal band
-    function AddBand(&$aBand,$aToY2=false) {
-	if( $aBand == null )
-	    JpGraphError::RaiseL(25016);//(" Graph::AddBand() You tried to add a null band to the graph.");
-
-	if( $aToY2 ) {
-	    if( is_array($aBand) ) {
-		for($i=0; $i < count($aBand); ++$i )
-		    $this->y2bands[] = &$aBand[$i];
-	    }
-	    else
-		$this->y2bands[] = &$aBand;
-	}
-	else {
-	    if( is_array($aBand) ) {
-		for($i=0; $i < count($aBand); ++$i )
-		    $this->bands[] = &$aBand[$i];
-	    }
-	    else
-		$this->bands[] = &$aBand;
-	}
-    }
-
-    function SetBackgroundGradient($aFrom='navy',$aTo='silver',$aGradType=2,$aStyle=BGRAD_FRAME) {
-	$this->bkg_gradtype=$aGradType;
-	$this->bkg_gradstyle=$aStyle;
-	$this->bkg_gradfrom = $aFrom;
-	$this->bkg_gradto = $aTo;
-    } 
-	
-    // Set a country flag in the background
-    function SetBackgroundCFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {
-	$this->background_cflag = $aName;
-	$this->background_cflag_type = $aBgType;
-	$this->background_cflag_mix = $aMix;
-    }
-
-    // Alias for the above method
-    function SetBackgroundCountryFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {
-	$this->background_cflag = $aName;
-	$this->background_cflag_type = $aBgType;
-	$this->background_cflag_mix = $aMix;
-    }
-
-
-    // Specify a background image
-    function SetBackgroundImage($aFileName,$aBgType=BGIMG_FILLPLOT,$aImgFormat="auto") {
-
-	if( $GLOBALS['gd2'] && !USE_TRUECOLOR ) {
-	    JpGraphError::RaiseL(25017);//("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x you <b>must</b> enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.");
-	}
-
-	// Get extension to determine image type
-	if( $aImgFormat == "auto" ) {
-	    $e = explode('.',$aFileName);
-	    if( !$e ) {
-		JpGraphError::RaiseL(25018,$aFileName);//('Incorrect file name for Graph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type');
-	    }
-
-	    $valid_formats = array('png', 'jpg', 'gif');
-	    $aImgFormat = strtolower($e[count($e)-1]);
-	    if ($aImgFormat == 'jpeg')  {
-		$aImgFormat = 'jpg';
-	    }
-	    elseif (!in_array($aImgFormat, $valid_formats) )  {
-		JpGraphError::RaiseL(25019,$aImgFormat);//('Unknown file extension ($aImgFormat) in Graph::SetBackgroundImage() for filename: '.$aFileName);
-	    }    
-	}
-
-	$this->background_image = $aFileName;
-	$this->background_image_type=$aBgType;
-	$this->background_image_format=$aImgFormat;
-    }
-
-    function SetBackgroundImageMix($aMix) {
-	$this->background_image_mix = $aMix ;
-    }
-	
-    // Adjust brightness and constrast for background image
-    function AdjBackgroundImage($aBright,$aContr=0,$aSat=0) {
-	$this->background_image_bright=$aBright;
-	$this->background_image_contr=$aContr;
-	$this->background_image_sat=$aSat;
-    }
-	
-    // Adjust brightness and constrast for image
-    function AdjImage($aBright,$aContr=0,$aSat=0) {
-	$this->image_bright=$aBright;
-	$this->image_contr=$aContr;
-	$this->image_sat=$aSat;
-    }
-
-    // Specify axis style (boxed or single)
-    function SetAxisStyle($aStyle) {
-        $this->iAxisStyle = $aStyle ;
-    }
-	
-    // Set a frame around the plot area
-    function SetBox($aDrawPlotFrame=true,$aPlotFrameColor=array(0,0,0),$aPlotFrameWeight=1) {
-	$this->boxed = $aDrawPlotFrame;
-	$this->box_weight = $aPlotFrameWeight;
-	$this->box_color = $aPlotFrameColor;
-    }
-	
-    // Specify color for the plotarea (not the margins)
-    function SetColor($aColor) {
-	$this->plotarea_color=$aColor;
-    }
-	
-    // Specify color for the margins (all areas outside the plotarea)
-    function SetMarginColor($aColor) {
-	$this->margin_color=$aColor;
-    }
-	
-    // Set a frame around the entire image
-    function SetFrame($aDrawImgFrame=true,$aImgFrameColor=array(0,0,0),$aImgFrameWeight=1) {
-	$this->doframe = $aDrawImgFrame;
-	$this->frame_color = $aImgFrameColor;
-	$this->frame_weight = $aImgFrameWeight;
-    }
-
-    function SetFrameBevel($aDepth=3,$aBorder=false,$aBorderColor='black',$aColor1='white@0.4',$aColor2='darkgray@0.4',$aFlg=true) {
-	$this->framebevel = $aFlg ;
-	$this->framebeveldepth = $aDepth ;
-	$this->framebevelborder = $aBorder ;
-	$this->framebevelbordercolor = $aBorderColor ;
-	$this->framebevelcolor1 = $aColor1 ;
-	$this->framebevelcolor2 = $aColor2 ;
-
-	$this->doshadow = false ;
-    }
-
-    // Set the shadow around the whole image
-    function SetShadow($aShowShadow=true,$aShadowWidth=5,$aShadowColor=array(102,102,102)) {
-	$this->doshadow = $aShowShadow;
-	$this->shadow_color = $aShadowColor;
-	$this->shadow_width = $aShadowWidth;
-	$this->footer->iBottomMargin += $aShadowWidth;
-	$this->footer->iRightMargin += $aShadowWidth;
-    }
-
-    // Specify x,y scale. Note that if you manually specify the scale
-    // you must also specify the tick distance with a call to Ticks::Set()
-    function SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1) {
-	$this->axtype = $aAxisType;
-
-	if( $aYMax < $aYMin || $aXMax < $aXMin )
-	    JpGraphError::RaiseL(25020);//('Graph::SetScale(): Specified Max value must be larger than the specified Min value.');
-
-	$yt=substr($aAxisType,-3,3);
-	if( $yt=="lin" )
-	    $this->yscale = new LinearScale($aYMin,$aYMax);
-	elseif( $yt == "int" ) {
-	    $this->yscale = new LinearScale($aYMin,$aYMax);
-	    $this->yscale->SetIntScale();
-	}
-	elseif( $yt=="log" )
-	    $this->yscale = new LogScale($aYMin,$aYMax);
-	else
-	    JpGraphError::RaiseL(25021,$aAxisType);//("Unknown scale specification for Y-scale. ($aAxisType)");
-			
-	$xt=substr($aAxisType,0,3);
-	if( $xt == "lin" || $xt == "tex" ) {
-	    $this->xscale = new LinearScale($aXMin,$aXMax,"x");
-	    $this->xscale->textscale = ($xt == "tex");
-	}
-	elseif( $xt == "int" ) {
-	    $this->xscale = new LinearScale($aXMin,$aXMax,"x");
-	    $this->xscale->SetIntScale();
-	}
-	elseif( $xt == "dat" ) {
-	    $this->xscale = new DateScale($aXMin,$aXMax,"x");
-	}
-	elseif( $xt == "log" )
-	    $this->xscale = new LogScale($aXMin,$aXMax,"x");
-	else
-	    JpGraphError::RaiseL(25022,$aAxisType);//(" Unknown scale specification for X-scale. ($aAxisType)");
-
-	$this->xaxis = new Axis($this->img,$this->xscale);
-	$this->yaxis = new Axis($this->img,$this->yscale);
-	$this->xgrid = new Grid($this->xaxis);
-	$this->ygrid = new Grid($this->yaxis);	
-	$this->ygrid->Show();			
-    }
-	
-    // Specify secondary Y scale
-    function SetY2Scale($aAxisType="lin",$aY2Min=1,$aY2Max=1) {
-	if( $aAxisType=="lin" ) 
-	    $this->y2scale = new LinearScale($aY2Min,$aY2Max);
-	elseif( $aAxisType == "int" ) {
-	    $this->y2scale = new LinearScale($aY2Min,$aY2Max);
-	    $this->y2scale->SetIntScale();
-	}
-	elseif( $aAxisType=="log" ) {
-	    $this->y2scale = new LogScale($aY2Min,$aY2Max);
-	}
-	else JpGraphError::RaiseL(25023,$aAxisType);//("JpGraph: Unsupported Y2 axis type: $aAxisType\nMust be one of (lin,log,int)");
-			
-	$this->y2axis = new Axis($this->img,$this->y2scale);
-	$this->y2axis->scale->ticks->SetDirection(SIDE_LEFT); 
-	$this->y2axis->SetLabelSide(SIDE_RIGHT); 
-	$this->y2axis->SetPos('max');
-	$this->y2axis->SetTitleSide(SIDE_RIGHT);
-		
-	// Deafult position is the max x-value
-	$this->y2grid = new Grid($this->y2axis);							
-    }
-
-    // Set the delta position (in pixels) between the multiple Y-axis
-    function SetYDeltaDist($aDist) {
-	$this->iYAxisDeltaPos = $aDist;
-    }
-	
-    // Specify secondary Y scale
-    function SetYScale($aN,$aAxisType="lin",$aYMin=1,$aYMax=1) {
-
-	if( $aAxisType=="lin" ) 
-	    $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax);
-	elseif( $aAxisType == "int" ) {
-	    $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax);
-	    $this->ynscale[$aN]->SetIntScale();
-	}
-	elseif( $aAxisType=="log" ) {
-	    $this->ynscale[$aN] = new LogScale($aYMin,$aYMax);
-	}
-	else JpGraphError::RaiseL(25024,$aAxisType);//("JpGraph: Unsupported Y axis type: $aAxisType\nMust be one of (lin,log,int)");
-			
-	$this->ynaxis[$aN] = new Axis($this->img,$this->ynscale[$aN]);
-	$this->ynaxis[$aN]->scale->ticks->SetDirection(SIDE_LEFT); 
-	$this->ynaxis[$aN]->SetLabelSide(SIDE_RIGHT); 
-    }
-
-	
-    // Specify density of ticks when autoscaling 'normal', 'dense', 'sparse', 'verysparse'
-    // The dividing factor have been determined heuristically according to my aesthetic 
-    // sense (or lack off) y.m.m.v !
-    function SetTickDensity($aYDensity=TICKD_NORMAL,$aXDensity=TICKD_NORMAL) {
-	$this->xtick_factor=30;
-	$this->ytick_factor=25;		
-	switch( $aYDensity ) {
-	    case TICKD_DENSE:
-		$this->ytick_factor=12;			
-		break;
-	    case TICKD_NORMAL:
-		$this->ytick_factor=25;			
-		break;
-	    case TICKD_SPARSE:
-		$this->ytick_factor=40;			
-		break;
-	    case TICKD_VERYSPARSE:
-		$this->ytick_factor=100;			
-		break;		
-	    default:
-		JpGraphError::RaiseL(25025,$densy);//("JpGraph: Unsupported Tick density: $densy");
-	}
-	switch( $aXDensity ) {
-	    case TICKD_DENSE:
-		$this->xtick_factor=15;							
-		break;
-	    case TICKD_NORMAL:
-		$this->xtick_factor=30;			
-		break;
-	    case TICKD_SPARSE:
-		$this->xtick_factor=45;					
-		break;
-	    case TICKD_VERYSPARSE:
-		$this->xtick_factor=60;								
-		break;		
-	    default:
-		JpGraphError::RaiseL(25025,$densx);//("JpGraph: Unsupported Tick density: $densx");
-	}		
-    }
-	
-
-    // Get a string of all image map areas	
-    function GetCSIMareas() {
-	if( !$this->iHasStroked )
-	    $this->Stroke(_CSIM_SPECIALFILE);
-
-	$csim = $this->title->GetCSIMAreas();
-	$csim .= $this->subtitle->GetCSIMAreas();
-	$csim .= $this->subsubtitle->GetCSIMAreas();
-	$csim .= $this->legend->GetCSIMAreas();
-
-	if( $this->y2axis != NULL ) {
-	    $csim .= $this->y2axis->title->GetCSIMAreas();
-	}
-
-	if( $this->texts != null ) {
-	    $n = count($this->texts);
-	    for($i=0; $i < $n; ++$i ) {
-		$csim .= $this->texts[$i]->GetCSIMAreas();
-	    }
-	}
-
-	if( $this->y2texts != null && $this->y2scale != null ) {
-	    $n = count($this->y2texts);
-	    for($i=0; $i < $n; ++$i ) {
-		$csim .= $this->y2texts[$i]->GetCSIMAreas();
-	    }
-	}
-
-	if( $this->yaxis != null && $this->xaxis != null ) {
-	    $csim .= $this->yaxis->title->GetCSIMAreas();	
-	    $csim .= $this->xaxis->title->GetCSIMAreas();
-	}
-
-	$n = count($this->plots);
-	for( $i=0; $i < $n; ++$i ) 
-	    $csim .= $this->plots[$i]->GetCSIMareas();
-
-	$n = count($this->y2plots);
-	for( $i=0; $i < $n; ++$i ) 
-	    $csim .= $this->y2plots[$i]->GetCSIMareas();
-
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	    $m = count($this->ynplots[$i]); 
-	    for($j=0; $j < $m; ++$j ) {
-		$csim .= $this->ynplots[$i][$j]->GetCSIMareas();
-	    }
-	}
-
-	$n = count($this->iTables);
-	for( $i=0; $i < $n; ++$i ) {
-	    $csim .= $this->iTables[$i]->GetCSIMareas();
-	}
-
-	return $csim;
-    }
-	
-    // Get a complete <MAP>..</MAP> tag for the final image map
-    function GetHTMLImageMap($aMapName) {
-	$im = "<map name=\"$aMapName\" id=\"$aMapName\" >\n";
-	$im .= $this->GetCSIMareas();
-	$im .= "</map>"; 
-	return $im;
-    }
-
-    function CheckCSIMCache($aCacheName,$aTimeOut=60) {
-	global $_SERVER;
-
-	if( $aCacheName=='auto' )
-	    $aCacheName=basename($_SERVER['PHP_SELF']);
-
-	$urlarg = $this->GetURLArguments();
-	$this->csimcachename = CSIMCACHE_DIR.$aCacheName.$urlarg;
-	$this->csimcachetimeout = $aTimeOut;
-
-	// First determine if we need to check for a cached version
-	// This differs from the standard cache in the sense that the
-	// image and CSIM map HTML file is written relative to the directory
-	// the script executes in and not the specified cache directory.
-	// The reason for this is that the cache directory is not necessarily
-	// accessible from the HTTP server.
-	if( $this->csimcachename != '' ) {
-	    $dir = dirname($this->csimcachename);
-	    $base = basename($this->csimcachename);
-	    $base = strtok($base,'.');
-	    $suffix = strtok('.');
-	    $basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html';
-	    $baseimg = $dir.'/'.$base.'?'.$urlarg.'.'.$this->img->img_format;
-
-	    $timedout=false;
-	    // Does it exist at all ?
-	    
-	    if( file_exists($basecsim) && file_exists($baseimg) ) {
-		// Check that it hasn't timed out
-		$diff=time()-filemtime($basecsim);
-		if( $this->csimcachetimeout>0 && ($diff > $this->csimcachetimeout*60) ) {
-		    $timedout=true;
-		    @unlink($basecsim);
-		    @unlink($baseimg);
-		}
-		else {
-		    if ($fh = @fopen($basecsim, "r")) {
-			fpassthru($fh);
-			return true;
-		    }
-		    else
-			JpGraphError::RaiseL(25027,$basecsim);//(" Can't open cached CSIM \"$basecsim\" for reading.");
-		}
-	    }
-	}
-	return false;
-    }
-
-    // Build the argument string to be used with the csim images
-    function GetURLArguments() {
-		
-	// This is a JPGRAPH internal defined that prevents
-	// us from recursively coming here again
-	$urlarg = _CSIM_DISPLAY.'=1';
-
-	// Now reconstruct any user URL argument
-	reset($_GET);
-	while( list($key,$value) = each($_GET) ) {
-	    if( is_array($value) ) {
-		$n = count($value);
-		for( $i=0; $i < $n; ++$i ) {
-		    $urlarg .= '&'.$key.'%5B%5D='.urlencode($value[$i]);
-		}
-	    }
-	    else {
-		$urlarg .= '&'.$key.'='.urlencode($value);
-	    }
-	}
-
-	// It's not ideal to convert POST argument to GET arguments
-	// but there is little else we can do. One idea for the 
-	// future might be recreate the POST header in case.
-	reset($_POST);
-	while( list($key,$value) = each($_POST) ) {
-	    if( is_array($value) ) {
-		$n = count($value);
-		for( $i=0; $i < $n; ++$i ) {
-		    $urlarg .= '&'.$key.'%5B%5D='.urlencode($value[$i]);
-		}
-	    }
-	    else {
-		$urlarg .= '&'.$key.'='.urlencode($value);
-	    }
-	}
-
-	return $urlarg;
-    }
-
-    function StrokeCSIM($aScriptName='auto',$aCSIMName='',$aBorder=0) {
-	if( $aCSIMName=='' ) {
-	    // create a random map name
-	    srand ((double) microtime() * 1000000);
-	    $r = rand(0,100000);
-	    $aCSIMName='__mapname'.$r.'__';
-	}
-
-	if( $aScriptName=='auto' )
-	    $aScriptName=basename($_SERVER['PHP_SELF']);
-
-	$urlarg = $this->GetURLArguments();
-
-	if( empty($_GET[_CSIM_DISPLAY]) ) {
-	    // First determine if we need to check for a cached version
-	    // This differs from the standard cache in the sense that the
-	    // image and CSIM map HTML file is written relative to the directory
-	    // the script executes in and not the specified cache directory.
-	    // The reason for this is that the cache directory is not necessarily
-	    // accessible from the HTTP server.
-	    if( $this->csimcachename != '' ) {
-		$dir = dirname($this->csimcachename);
-		$base = basename($this->csimcachename);
-		$base = strtok($base,'.');
-		$suffix = strtok('.');
-		$basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html';
-		$baseimg = $base.'?'.$urlarg.'.'.$this->img->img_format;
-
-		// Check that apache can write to directory specified
-
-		if( file_exists($dir) && !is_writeable($dir) ) {
-		    JpgraphError::RaiseL(25028,$dir);//('Apache/PHP does not have permission to write to the CSIM cache directory ('.$dir.'). Check permissions.');
-		}
-		
-		// Make sure directory exists
-		$this->cache->MakeDirs($dir);
-
-		// Write the image file
-		$this->Stroke(CSIMCACHE_DIR.$baseimg);
-
-		// Construct wrapper HTML and write to file and send it back to browser
-
-		// In the src URL we must replace the '?' with its encoding to prevent the arguments
-		// to be converted to real arguments.
-		$tmp = str_replace('?','%3f',$baseimg);
-		$htmlwrap = $this->GetHTMLImageMap($aCSIMName)."\n".
-		    '<img src="'.CSIMCACHE_HTTP_DIR.$tmp.'" ismap="ismap" usemap="#'.$aCSIMName.'" border="'.$aBorder.'" width="'.$this->img->width.'" height="'.$this->img->height."\" alt=\"\" />\n";
-
-		if($fh =  @fopen($basecsim,'w') ) {
-		    fwrite($fh,$htmlwrap);
-		    fclose($fh);
-		    echo $htmlwrap;
-		}
-		else
-		    JpGraphError::RaiseL(25029,$basecsim);//(" Can't write CSIM \"$basecsim\" for writing. Check free space and permissions.");
-	    }
-	    else {
-
-		if( $aScriptName=='' ) {
-		    JpGraphError::RaiseL(25030);//('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().');
-		}
-		echo $this->GetHTMLImageMap($aCSIMName);
-		echo "<img src=\"".$aScriptName.'?'.$urlarg."\" ismap=\"ismap\" usemap=\"#".$aCSIMName.'" border="'.$aBorder.'" width="'.$this->img->width.'" height="'.$this->img->height."\" alt=\"\" />\n";
-	    }
-	}
-	else {
-	    $this->Stroke();
-	}
-    }
-
-    function GetTextsYMinMax($aY2=false) {
-	if( $aY2 ) 
-	    $txts = $this->y2texts;
-	else
-	    $txts = $this->texts;
-	$n = count($txts);
-	$min=null;
-	$max=null;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $txts[$i]->iScalePosY !== null && 
-		$txts[$i]->iScalePosX !== null  ) {
-		if( $min === null  ) {
-		    $min = $max = $txts[$i]->iScalePosY ;
-		}
-		else {
-		    $min = min($min,$txts[$i]->iScalePosY);
-		    $max = max($max,$txts[$i]->iScalePosY);
-		}
-	    }
-	}
-	if( $min !== null ) {
-	    return array($min,$max);
-	}
-	else
-	    return null;
-    }
-
-    function GetTextsXMinMax($aY2=false) {
-	if( $aY2 ) 
-	    $txts = $this->y2texts;
-	else
-	    $txts = $this->texts;
-	$n = count($txts);
-	$min=null;
-	$max=null;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $txts[$i]->iScalePosY !== null && 
-		$txts[$i]->iScalePosX !== null  ) {
-		if( $min === null  ) {
-		    $min = $max = $txts[$i]->iScalePosX ;
-		}
-		else {
-		    $min = min($min,$txts[$i]->iScalePosX);
-		    $max = max($max,$txts[$i]->iScalePosX);
-		}
-	    }
-	}
-	if( $min !== null ) {
-	    return array($min,$max);
-	}
-	else
-	    return null;
-    }
-
-    function GetXMinMax() {
-	list($min,$ymin) = $this->plots[0]->Min();
-	list($max,$ymax) = $this->plots[0]->Max();
-	foreach( $this->plots as $p ) {
-	    list($xmin,$ymin) = $p->Min();
-	    list($xmax,$ymax) = $p->Max();			
-	    $min = Min($xmin,$min);
-	    $max = Max($xmax,$max);
-	}
-
-	if( $this->y2axis != null ) {
-	    foreach( $this->y2plots as $p ) {
-		list($xmin,$ymin) = $p->Min();
-		list($xmax,$ymax) = $p->Max();			
-		$min = Min($xmin,$min);
-		$max = Max($xmax,$max);
-	    }		    
-	}
-
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $this->ynaxis[$i] != null) {
-		foreach( $this->ynplots[$i] as $p ) {
-		    list($xmin,$ymin) = $p->Min();
-		    list($xmax,$ymax) = $p->Max();			
-		    $min = Min($xmin,$min);
-		    $max = Max($xmax,$max);
-		}		    
-	    }
-	}
-
-	return array($min,$max);
-    }
-
-    function AdjustMarginsForTitles() {
-	$totrequired = 
-	    ($this->title->t != '' ? 
-	     $this->title->GetTextHeight($this->img) + $this->title->margin + 5 : 0 ) +
-	    ($this->subtitle->t != '' ? 
-	     $this->subtitle->GetTextHeight($this->img) + $this->subtitle->margin + 5 : 0 ) + 
-	    ($this->subsubtitle->t != '' ? 
-	     $this->subsubtitle->GetTextHeight($this->img) + $this->subsubtitle->margin + 5 : 0 ) ;
-	
-
-	$btotrequired = 0;
-	if($this->xaxis != null &&  !$this->xaxis->hide && !$this->xaxis->hide_labels ) {
-	    // Minimum bottom margin
-	    if( $this->xaxis->title->t != '' ) {
-		if( $this->img->a == 90 ) 
-		    $btotrequired = $this->yaxis->title->GetTextHeight($this->img) + 5 ;
-		else
-		    $btotrequired = $this->xaxis->title->GetTextHeight($this->img) + 5 ;
-	    }
-	    else
-		$btotrequired = 0;
-	    
-	    if( $this->img->a == 90 ) {
-		$this->img->SetFont($this->yaxis->font_family,$this->yaxis->font_style,
-				    $this->yaxis->font_size);
-		$lh = $this->img->GetTextHeight('Mg',$this->yaxis->label_angle);
-	    }
-	    else {
-		$this->img->SetFont($this->xaxis->font_family,$this->xaxis->font_style,
-				    $this->xaxis->font_size);
-		$lh = $this->img->GetTextHeight('Mg',$this->xaxis->label_angle);
-	    }
-	    
-	    $btotrequired += $lh + 5;
-	}
-
-	if( $this->img->a == 90 ) {
-	    // DO Nothing. It gets too messy to do this properly for 90 deg...
-	}
-	else{
-	    if( $this->img->top_margin < $totrequired ) {
-		$this->SetMargin($this->img->left_margin,$this->img->right_margin,
-				 $totrequired,$this->img->bottom_margin);
-	    }
-	    if( $this->img->bottom_margin < $btotrequired ) {
-		$this->SetMargin($this->img->left_margin,$this->img->right_margin,
-				 $this->img->top_margin,$btotrequired);
-	    }
-	}
-    }
-
-    // Stroke the graph
-    // $aStrokeFileName	If != "" the image will be written to this file and NOT
-    // streamed back to the browser
-    function Stroke($aStrokeFileName="") {		
-
-	// Fist make a sanity check that user has specified a scale
-	if( empty($this->yscale) ) {
-	    JpGraphError::RaiseL(25031);//('You must specify what scale to use with a call to Graph::SetScale().');
-	}
-
-	// Start by adjusting the margin so that potential titles will fit.
-	$this->AdjustMarginsForTitles();
-
-	// Setup scale constants
-	if( $this->yscale ) $this->yscale->InitConstants($this->img);
-	if( $this->xscale ) $this->xscale->InitConstants($this->img);
-	if( $this->y2scale ) $this->y2scale->InitConstants($this->img);
-	
-	$n=count($this->ynscale);
-	for($i=0; $i < $n; ++$i) {
-	  if( $this->ynscale[$i] ) $this->ynscale[$i]->InitConstants($this->img);
-	}
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	// Do any pre-stroke adjustment that is needed by the different plot types
-	// (i.e bar plots want's to add an offset to the x-labels etc)
-	for($i=0; $i < count($this->plots) ; ++$i ) {
-	    $this->plots[$i]->PreStrokeAdjust($this);
-	    $this->plots[$i]->DoLegend($this);
-	}
-		
-	// Any plots on the second Y scale?
-	if( $this->y2scale != null ) {
-	    for($i=0; $i<count($this->y2plots)	; ++$i ) {
-		$this->y2plots[$i]->PreStrokeAdjust($this);
-		$this->y2plots[$i]->DoLegend($this);
-	    }
-	}
-
-	// Any plots on the extra Y axises?
-	$n = count($this->ynaxis);
-	for($i=0; $i<$n	; ++$i ) {
-	    if( $this->ynplots == null || $this->ynplots[$i] == null) {
-		JpGraphError::RaiseL(25032,$i);//("No plots for Y-axis nbr:$i");
-	    } 
-	    $m = count($this->ynplots[$i]); 
-	    for($j=0; $j < $m; ++$j ) {
-		$this->ynplots[$i][$j]->PreStrokeAdjust($this);
-		$this->ynplots[$i][$j]->DoLegend($this);
-	    }
-	}
-
-		
-	// Bail out if any of the Y-axis not been specified and
-	// has no plots. (This means it is impossible to do autoscaling and
-	// no other scale was given so we can't possible draw anything). If you use manual
-	// scaling you also have to supply the tick steps as well.
-	if( (!$this->yscale->IsSpecified() && count($this->plots)==0) ||
-	    ($this->y2scale!=null && !$this->y2scale->IsSpecified() && count($this->y2plots)==0) ) {
-	    //$e = "n=".count($this->y2plots)."\n";
-	    // $e = "Can't draw unspecified Y-scale.<br>\nYou have either:<br>\n";
-	    // $e .= "1. Specified an Y axis for autoscaling but have not supplied any plots<br>\n";
-	    // $e .= "2. Specified a scale manually but have forgot to specify the tick steps";
-	    JpGraphError::RaiseL(25026);
-	}
-		
-	// Bail out if no plots and no specified X-scale
-	if( (!$this->xscale->IsSpecified() && count($this->plots)==0 && count($this->y2plots)==0) )
-	    JpGraphError::RaiseL(25034);//("<strong>JpGraph: Can't draw unspecified X-scale.</strong><br>No plots.<br>");
-
-	//Check if we should autoscale y-axis
-	if( !$this->yscale->IsSpecified() && count($this->plots)>0 ) {
-	    list($min,$max) = $this->GetPlotsYMinMax($this->plots);
- 	    $lres = $this->GetLinesYMinMax($this->lines);
-	    if( is_array($lres) ) {
-		list($linmin,$linmax) = $lres ;
-		$min = min($min,$linmin);
-		$max = max($max,$linmax);
-	    }
-	    $tres = $this->GetTextsYMinMax();
-	    if( is_array($tres) ) {
-		list($tmin,$tmax) = $tres ;
-		$min = min($min,$tmin);
-		$max = max($max,$tmax);
-	    }
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotheight/$this->ytick_factor);
-	}
-	elseif( $this->yscale->IsSpecified() && 
-		( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->yscale->scale[0];
-	    $max = $this->yscale->scale[1];
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotheight/$this->ytick_factor,
-				     $this->yscale->auto_ticks);
-	}
-
-	if( $this->y2scale != null) {
-	  
-	    if( !$this->y2scale->IsSpecified() && count($this->y2plots)>0 ) {
-		list($min,$max) = $this->GetPlotsYMinMax($this->y2plots);
-		$lres = $this->GetLinesYMinMax($this->y2lines);
-		if( is_array($lres) ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-		$tres = $this->GetTextsYMinMax(true);
-		if( is_array($tres) ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-		$this->y2scale->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor);
-	    }			
-	    elseif( $this->y2scale->IsSpecified() && 
-		    ( $this->y2scale->auto_ticks || !$this->y2scale->ticks->IsSpecified()) ) {
-		// The tick calculation will use the user suplied min/max values to determine
-		// the ticks. If auto_ticks is false the exact user specifed min and max
-		// values will be used for the scale. 
-		// If auto_ticks is true then the scale might be slightly adjusted
-		// so that the min and max values falls on an even major step.
-		$min = $this->y2scale->scale[0];
-		$max = $this->y2scale->scale[1];
-		$this->y2scale->AutoScale($this->img,$min,$max,
-					  $this->img->plotheight/$this->ytick_factor,
-					  $this->y2scale->auto_ticks);
-	    }
-	}
-
-	//
-	// Autoscale the multiple Y-axis
-	//
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	  if( $this->ynscale[$i] != null) {
-	    if( !$this->ynscale[$i]->IsSpecified() && count($this->ynplots[$i])>0 ) {
-	      list($min,$max) = $this->GetPlotsYMinMax($this->ynplots[$i]);
-	      $this->ynscale[$i]->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor);
-	    }			
-	    elseif( $this->ynscale[$i]->IsSpecified() && 
-		    ( $this->ynscale[$i]->auto_ticks || !$this->ynscale[$i]->ticks->IsSpecified()) ) {
-		// The tick calculation will use the user suplied min/max values to determine
-		// the ticks. If auto_ticks is false the exact user specifed min and max
-		// values will be used for the scale. 
-		// If auto_ticks is true then the scale might be slightly adjusted
-		// so that the min and max values falls on an even major step.
-	      $min = $this->ynscale[$i]->scale[0];
-	      $max = $this->ynscale[$i]->scale[1];
-	      $this->ynscale[$i]->AutoScale($this->img,$min,$max,
-					    $this->img->plotheight/$this->ytick_factor,
-					    $this->ynscale[$i]->auto_ticks);
-	    }
-	  }
-	}
-		
-
-	//Check if we should autoscale x-axis
-	if( !$this->xscale->IsSpecified() ) {
-	    if( substr($this->axtype,0,4) == "text" ) {
-		$max=0;
-		$n = count($this->plots);
-		for($i=0; $i < $n; ++$i ) {
-		    $p = $this->plots[$i];
-		    // We need some unfortunate sub class knowledge here in order
-		    // to increase number of data points in case it is a line plot
-		    // which has the barcenter set. If not it could mean that the
-		    // last point of the data is outside the scale since the barcenter
-		    // settings means that we will shift the entire plot half a tick step
-		    // to the right in oder to align with the center of the bars.
-		    if( is_a($p,'BarPlot') || empty($p->barcenter)) {
-			$max=max($max,$p->numpoints-1);
-		    }
-		    else {
-			$max=max($max,$p->numpoints);
-		    }
-		}
-		$min=0;
-		if( $this->y2axis != null ) {
-		    foreach( $this->y2plots as $p ) {
-			$max=max($max,$p->numpoints-1);
-		    }		    
-		}
-		$n = count($this->ynaxis);
-		for( $i=0; $i < $n; ++$i ) {
-		    if( $this->ynaxis[$i] != null) {
-			foreach( $this->ynplots[$i] as $p ) {
-			    $max=max($max,$p->numpoints-1);
-			}		    
-		    }
-		}
-		
-		$this->xscale->Update($this->img,$min,$max);
-		$this->xscale->ticks->Set($this->xaxis->tick_step,1);
-		$this->xscale->ticks->SupressMinorTickMarks();
-	    }
-	    else {
-		list($min,$max) = $this->GetXMinMax();
-
-		$lres = $this->GetLinesXMinMax($this->lines);
-		if( $lres ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-		$lres = $this->GetLinesXMinMax($this->y2lines);
-		if( $lres ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-
-		$tres = $this->GetTextsXMinMax();
-		if( $tres ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-
-		$tres = $this->GetTextsXMinMax(true);
-		if( $tres ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-
-		$this->xscale->AutoScale($this->img,$min,$max,round($this->img->plotwidth/$this->xtick_factor));
-	    }
-			
-	    //Adjust position of y-axis and y2-axis to minimum/maximum of x-scale
-	    if( !is_numeric($this->yaxis->pos) && !is_string($this->yaxis->pos) )
-	    	$this->yaxis->SetPos($this->xscale->GetMinVal());
-	    if( $this->y2axis != null ) {
-		if( !is_numeric($this->y2axis->pos) && !is_string($this->y2axis->pos) )
-		    $this->y2axis->SetPos($this->xscale->GetMaxVal());
-		$this->y2axis->SetTitleSide(SIDE_RIGHT);
-	    }
-
-	    $n = count($this->ynaxis);
-	    $nY2adj = $this->y2axis != null ? $this->iYAxisDeltaPos : 0;
-	    for( $i=0; $i < $n; ++$i ) { 
-		if( $this->ynaxis[$i] != null ) {
-		    if( !is_numeric($this->ynaxis[$i]->pos) && !is_string($this->ynaxis[$i]->pos) ) {
-			$this->ynaxis[$i]->SetPos($this->xscale->GetMaxVal());
-		  $this->ynaxis[$i]->SetPosAbsDelta($i*$this->iYAxisDeltaPos + $nY2adj);
-		    }
-		    $this->ynaxis[$i]->SetTitleSide(SIDE_RIGHT);
-		}
-	    }
-	}	
-	elseif( $this->xscale->IsSpecified() &&  
-		( $this->xscale->auto_ticks || !$this->xscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->xscale->scale[0];
-	    $max = $this->xscale->scale[1];
-
-
-	    $this->xscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotwidth/$this->xtick_factor,
-				     false);
-
-	    if( $this->y2axis != null ) {
-		if( !is_numeric($this->y2axis->pos) && !is_string($this->y2axis->pos) )
-		    $this->y2axis->SetPos($this->xscale->GetMaxVal());
-		$this->y2axis->SetTitleSide(SIDE_RIGHT);
-	    }
-
-	}
-		
-	// If we have a negative values and x-axis position is at 0
-	// we need to supress the first and possible the last tick since
-	// they will be drawn on top of the y-axis (and possible y2 axis)
-	// The test below might seem strange the reasone being that if
-	// the user hasn't specified a value for position this will not
-	// be set until we do the stroke for the axis so as of now it
-	// is undefined.
-	// For X-text scale we ignore all this since the tick are usually
-	// much further in and not close to the Y-axis. Hence the test 
-	// for 'text'	
-
-	if( ($this->yaxis->pos==$this->xscale->GetMinVal() || 
-	     (is_string($this->yaxis->pos) && $this->yaxis->pos=='min')) &&  
-	    !is_numeric($this->xaxis->pos) && $this->yscale->GetMinVal() < 0 && 
-	    substr($this->axtype,0,4) != 'text' && $this->xaxis->pos!="min" ) {
-
-	    //$this->yscale->ticks->SupressZeroLabel(false);
-	    $this->xscale->ticks->SupressFirst();
-	    if( $this->y2axis != null ) {
-		$this->xscale->ticks->SupressLast();
-	    }
-	}
-	elseif( !is_numeric($this->yaxis->pos) && $this->yaxis->pos=='max' ) {
-	    $this->xscale->ticks->SupressLast();
-	}
-	
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	    if( $this->iIconDepth == DEPTH_BACK ) {
-		$this->StrokeIcons();
-	    }
-	}
-	$this->StrokeAxis(false);
-
-	// Stroke bands
-	if( $this->bands != null && !$_csim) 
-	    for($i=0; $i < count($this->bands); ++$i) {
-		// Stroke all bands that asks to be in the background
-		if( $this->bands[$i]->depth == DEPTH_BACK )
-		    $this->bands[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-
-	if( $this->y2bands != null && $this->y2scale != null && !$_csim )
-	    for($i=0; $i < count($this->y2bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->y2bands[$i]->depth == DEPTH_BACK )
-		    $this->y2bands[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-
-
-	if( $this->grid_depth == DEPTH_BACK && !$_csim) {
-	    $this->ygrid->Stroke();
-	    $this->xgrid->Stroke();
-	}
-				
-	// Stroke Y2-axis 
-	if( $this->y2axis != null && !$_csim) {		
-	    $this->y2axis->Stroke($this->xscale); 				
-	    $this->y2grid->Stroke();
-	}
-
-	// Stroke yn-axis
-	$n = count($this->ynaxis); 
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->ynaxis[$i]->Stroke($this->xscale); 				
-	}
-	
-	$oldoff=$this->xscale->off;
-	if(substr($this->axtype,0,4)=="text") {
-	    if( $this->text_scale_abscenteroff > -1 ) {
-		// For a text scale the scale factor is the number of pixel per step. 
-		// Hence we can use the scale factor as a substitute for number of pixels
-		// per major scale step and use that in order to adjust the offset so that
-		// an object of width "abscenteroff" becomes centered.
-		$this->xscale->off += round($this->xscale->scale_factor/2)-round($this->text_scale_abscenteroff/2);
-	    }
-	    else {
-		$this->xscale->off += 
-		    ceil($this->xscale->scale_factor*$this->text_scale_off*$this->xscale->ticks->minor_step);
-	    }
-	}
-
-	if( $this->iDoClipping ) {
-	    $oldimage = $this->img->CloneCanvasH();
-	}
-
-	if( ! $this->y2orderback ) {
-	    // Stroke all plots for Y axis
-	    for($i=0; $i < count($this->plots); ++$i) {
-		$this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-		$this->plots[$i]->StrokeMargin($this->img);
-	    }						
-	}
-
-	// Stroke all plots for Y2 axis
-	if( $this->y2scale != null )
-	    for($i=0; $i< count($this->y2plots); ++$i ) {	
-		$this->y2plots[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }		
-
-	if( $this->y2orderback ) {
-	    // Stroke all plots for Y1 axis
-	    for($i=0; $i < count($this->plots); ++$i) {
-		$this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-		$this->plots[$i]->StrokeMargin($this->img);
-	    }						
-	}
-
-	$n = count($this->ynaxis); 
-	for( $i=0; $i < $n; ++$i ) {
-	    $m = count($this->ynplots[$i]);
-	    for( $j=0; $j < $m; ++$j ) { 
-		$this->ynplots[$i][$j]->Stroke($this->img,$this->xscale,$this->ynscale[$i]);
-		$this->ynplots[$i][$j]->StrokeMargin($this->img);
-	    }
-	}
-
-	if( $this->iIconDepth == DEPTH_FRONT) {
-	    $this->StrokeIcons();
-	}
-	
-	if( $this->iDoClipping ) {
-	    // Clipping only supports graphs at 0 and 90 degrees
-	    if( $this->img->a == 0 ) {
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->plotwidth+1,$this->img->plotheight);
-	    }
-	    elseif( $this->img->a == 90 ) {
-		$adj = ($this->img->height - $this->img->width)/2;
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->plotheight+1,$this->img->plotwidth);
-	    }
-	    else {
-		JpGraphError::RaiseL(25035,$this->img->a);//('You have enabled clipping. Cliping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (='.$this->img->a.' degrees) or disable clipping.');
-	    }
-	    $this->img->Destroy();
-	    $this->img->SetCanvasH($oldimage);
-	}
-
-	$this->xscale->off=$oldoff;
-		
-	if( $this->grid_depth == DEPTH_FRONT && !$_csim ) {
-	    $this->ygrid->Stroke();
-	    $this->xgrid->Stroke();
-	}
-
-	// Stroke bands
-	if( $this->bands!= null )
-	    for($i=0; $i < count($this->bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->bands[$i]->depth == DEPTH_FRONT )
-		    $this->bands[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-
-	if( $this->y2bands!= null && $this->y2scale != null )
-	    for($i=0; $i < count($this->y2bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->y2bands[$i]->depth == DEPTH_FRONT )
-		    $this->y2bands[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-
-
-	// Stroke any lines added
-	if( $this->lines != null ) {
-	    for($i=0; $i < count($this->lines); ++$i) {
-		$this->lines[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-
-	if( $this->y2lines != null && $this->y2scale != null ) {
-	    for($i=0; $i < count($this->y2lines); ++$i) {
-		$this->y2lines[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-	}
-
-	// Finally draw the axis again since some plots may have nagged
-	// the axis in the edges.However we do no stroke the labels again
-	// since any user defined callback would be called twice. It also
-	// enhances performance.
-
-	if( !$_csim ) {
-	    $this->StrokeAxis();
-	}
-
-	if( $this->y2scale != null && !$_csim ) 
-	    $this->y2axis->Stroke($this->xscale,false); 	
-		
-	if( !$_csim ) {
-	    $this->StrokePlotBox();
-	}
-		
-	// The titles and legends never gets rotated so make sure
-	// that the angle is 0 before stroking them				
-	$aa = $this->img->SetAngle(0);
-	$this->StrokeTitles();
-	$this->footer->Stroke($this->img);
-	$this->legend->Stroke($this->img);		
-	$this->img->SetAngle($aa);	
-	$this->StrokeTexts();	
-	$this->StrokeTables();
-
-	if( !$_csim ) {
-
-	    $this->img->SetAngle($aa);	
-			
-	    // Draw an outline around the image map	
-	    if(_JPG_DEBUG) {
-		$this->DisplayClientSideaImageMapAreas();		
-	    }
-	    
-	    // Adjust the appearance of the image
-	    $this->AdjustSaturationBrightnessContrast();
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		    //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.');
-		}
-	       
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName);		
-	    }
-	}
-    }
-
-    function SetAxisLabelBackground($aType,$aXFColor='lightgray',$aXColor='black',$aYFColor='lightgray',$aYColor='black') {
-	$this->iAxisLblBgType = $aType;
-	$this->iXAxisLblBgFillColor = $aXFColor;
-	$this->iXAxisLblBgColor = $aXColor;
-	$this->iYAxisLblBgFillColor = $aYFColor;
-	$this->iYAxisLblBgColor = $aYColor;
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    function StrokeAxisLabelBackground() {
-	// Types 
-	// 0 = No background
-	// 1 = Only X-labels, length of axis
-	// 2 = Only Y-labels, length of axis
-	// 3 = As 1 but extends to width of graph
-	// 4 = As 2 but extends to height of graph
-	// 5 = Combination of 3 & 4
-	// 6 = Combination of 1 & 2
- 
-	$t = $this->iAxisLblBgType ;
-	if( $t < 1 ) return;
-	// Stroke optional X-axis label background color
-	if( $t == 1 || $t == 3 || $t == 5 || $t == 6 ) {
-	    $this->img->PushColor($this->iXAxisLblBgFillColor);
-	    if( $t == 1 || $t == 6 ) {
-		$xl = $this->img->left_margin;
-		$yu = $this->img->height - $this->img->bottom_margin + 1;
-		$xr = $this->img->width - $this->img->right_margin ;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-	    else { // t==3 || t==5
-		$xl = $this->frame_weight;
-		$yu = $this->img->height - $this->img->bottom_margin + 1;
-		$xr = $this->img->width - 1 - $this->frame_weight;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-
-	    $this->img->FilledRectangle($xl,$yu,$xr,$yl);
-	    $this->img->PopColor();
-
-	    // Check if we should add the vertical lines at left and right edge
-	    if( $this->iXAxisLblBgColor !== '' ) {
-		$this->img->PushColor($this->iXAxisLblBgColor);
-		if( $t == 1 || $t == 6 ) {
-		    $this->img->Line($xl,$yu,$xl,$yl);
-		    $this->img->Line($xr,$yu,$xr,$yl);
-		}
-		else {
-		    $xl = $this->img->width - $this->img->right_margin ;
-		    $this->img->Line($xl,$yu-1,$xr,$yu-1);
-		}
-		$this->img->PopColor();
-	    }
-	}
-
-	if( $t == 2 || $t == 4 || $t == 5 || $t == 6 ) {
-	    $this->img->PushColor($this->iYAxisLblBgFillColor);
-	    if( $t == 2 || $t == 6 ) {	    
-		$xl = $this->frame_weight;
-		$yu = $this->frame_weight+$this->img->top_margin;
-		$xr = $this->img->left_margin - 1;
-		$yl = $this->img->height - $this->img->bottom_margin + 1;
-	    }
-	    else {
-		$xl = $this->frame_weight;
-		$yu = $this->frame_weight;
-		$xr = $this->img->left_margin - 1;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-
-	    $this->img->FilledRectangle($xl,$yu,$xr,$yl);
-	    $this->img->PopColor();
-
-	    // Check if we should add the vertical lines at left and right edge
-	    if( $this->iXAxisLblBgColor !== '' ) {
-		$this->img->PushColor($this->iXAxisLblBgColor);
-		if( $t == 2 || $t == 6 ) {
-		    $this->img->Line($xl,$yu-1,$xr,$yu-1);
-		    $this->img->Line($xl,$yl-1,$xr,$yl-1);		    
-		}
-		else {
-		    $this->img->Line($xr+1,$yu,$xr+1,$this->img->top_margin);		    
-		}
-		$this->img->PopColor();
-	    }
-
-	}
-    }
-
-    function StrokeAxis($aStrokeLabels=true) {
-	
-	if( $aStrokeLabels ) {
-	    $this->StrokeAxisLabelBackground();
-	}
-
-	// Stroke axis
-	if( $this->iAxisStyle != AXSTYLE_SIMPLE ) {
-	    switch( $this->iAxisStyle ) {
-	        case AXSTYLE_BOXIN :
-	            $toppos = SIDE_DOWN;
-		    $bottompos = SIDE_UP;
-	            $leftpos = SIDE_RIGHT;
-	            $rightpos = SIDE_LEFT;
-	            break;
-		case AXSTYLE_BOXOUT :
-		    $toppos = SIDE_UP;
-	            $bottompos = SIDE_DOWN;	    
-	            $leftpos = SIDE_LEFT;
-		    $rightpos = SIDE_RIGHT;
-	            break;
-		case AXSTYLE_YBOXIN:
-	            $toppos = -100;
-		    $bottompos = SIDE_UP;
-	            $leftpos = SIDE_RIGHT;
-	            $rightpos = SIDE_LEFT;
-		    break;
-		case AXSTYLE_YBOXOUT:
-		    $toppos = -100;
-	            $bottompos = SIDE_DOWN;	    
-	            $leftpos = SIDE_LEFT;
-		    $rightpos = SIDE_RIGHT;
-		    break;
-		default:
-	            JpGRaphError::RaiseL(25036,$this->iAxisStyle); //('Unknown AxisStyle() : '.$this->iAxisStyle);
-	            break;
-	    }
-	    $this->xaxis->SetPos('min');
-	    
-	    // By default we hide the first label so it doesn't cross the
-	    // Y-axis in case the positon hasn't been set by the user.
-	    // However, if we use a box we always want the first value
-	    // displayed so we make sure it will be displayed.
-	    $this->xscale->ticks->SupressFirst(false);
-	    
-	    $this->xaxis->SetLabelSide(SIDE_DOWN);
-	    $this->xaxis->scale->ticks->SetSide($bottompos);
-	    $this->xaxis->Stroke($this->yscale);
-
-	    if( $toppos != -100 ) {
-		// To avoid side effects we work on a new copy
-		$maxis = $this->xaxis;
-		$maxis->SetPos('max');
-		$maxis->SetLabelSide(SIDE_UP);
-		$maxis->SetLabelMargin(7);
-		$this->xaxis->scale->ticks->SetSide($toppos);
-		$maxis->Stroke($this->yscale);
-	    }
-
-	    $this->yaxis->SetPos('min');
-	    $this->yaxis->SetLabelMargin(10);
-	    $this->yaxis->SetLabelSide(SIDE_LEFT);
-	    $this->yaxis->scale->ticks->SetSide($leftpos);
-	    $this->yaxis->Stroke($this->xscale);
-
-	    $myaxis = $this->yaxis;
-	    $myaxis->SetPos('max');
-	    $myaxis->SetLabelMargin(10);
-	    $myaxis->SetLabelSide(SIDE_RIGHT);
-	    $myaxis->title->Set('');
-	    $myaxis->scale->ticks->SetSide($rightpos);
-	    $myaxis->Stroke($this->xscale);
-	    
-	}
-	else {
-	    $this->xaxis->Stroke($this->yscale,$aStrokeLabels);
-	    $this->yaxis->Stroke($this->xscale,$aStrokeLabels);		
-	}
-    }
-
-
-    // Private helper function for backgound image
-    function LoadBkgImage($aImgFormat='',$aFile='',$aImgStr='') {
-	if( $aImgStr != '' ) {
-	    return Image::CreateFromString($aImgStr);
-	}
-	if( $aFile == '' )
-	    $aFile = $this->background_image;
-	// Remove case sensitivity and setup appropriate function to create image
-	// Get file extension. This should be the LAST '.' separated part of the filename
-	$e = explode('.',$aFile);
-	$ext = strtolower($e[count($e)-1]);
-	if ($ext == "jpeg")  {
-	    $ext = "jpg";
-	}
-	
-	if( trim($ext) == '' ) 
-	    $ext = 'png';  // Assume PNG if no extension specified
-
-	if( $aImgFormat == '' )
-	    $imgtag = $ext;
-	else
-	    $imgtag = $aImgFormat;
-
-	$supported = imagetypes();
-	if( ( $ext == 'jpg' && !($supported & IMG_JPG) ) ||
-	    ( $ext == 'gif' && !($supported & IMG_GIF) ) ||
-	    ( $ext == 'png' && !($supported & IMG_PNG) ) ) {
-	    JpGraphError::RaiseL(25037,$aFile);//('The image format of your background image ('.$aFile.') is not supported in your system configuration. ');
-	}
-
-
-	if( $imgtag == "jpg" || $imgtag == "jpeg")
-	{
-	    $f = "imagecreatefromjpeg";
-	    $imgtag = "jpg";
-	}
-	else
-	{
-	    $f = "imagecreatefrom".$imgtag;
-	}
-
-	// Compare specified image type and file extension
-	if( $imgtag != $ext ) {
-	    //$t = "Background image seems to be of different type (has different file extension) than specified imagetype. Specified: '".$aImgFormat."'File: '".$aFile."'";
-	    JpGraphError::RaiseL(25038, $aImgFormat, $aFile);
-	}
-
-	$img = @$f($aFile);
-	if( !$img ) {
-	    JpGraphError::RaiseL(25039,$aFile);//(" Can't read background image: '".$aFile."'");   
-	}
-	return $img;
-    }	
-
-    function StrokeBackgroundGrad() {
-	if( $this->bkg_gradtype < 0  ) 
-	    return;
-	$grad = new Gradient($this->img);
-	if( $this->bkg_gradstyle == BGRAD_PLOT ) {
-	    $xl = $this->img->left_margin;
-	    $yt = $this->img->top_margin;
-	    $xr = $xl + $this->img->plotwidth+1 ;
-	    $yb = $yt + $this->img->plotheight ;
-	    $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype);
-	}
-	else {
-	    $xl = 0;
-	    $yt = 0;
-	    $xr = $xl + $this->img->width - 1;
-	    $yb = $yt + $this->img->height;
-	    if( $this->doshadow  ) {
-		$xr -= $this->shadow_width; 
-		$yb -= $this->shadow_width; 
-	    }
-	    if( $this->doframe ) {
-		$yt += $this->frame_weight;
-		$yb -= $this->frame_weight;
-		$xl += $this->frame_weight;
-		$xr -= $this->frame_weight;
-	    }
-	    $aa = $this->img->SetAngle(0);
-	    $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype);
-	    $aa = $this->img->SetAngle($aa);
-	}
-    }
-
-    function StrokeFrameBackground() {
-	if( $this->background_image != "" && $this->background_cflag != "" ) {
-	    JpGraphError::RaiseL(25040);//('It is not possible to specify both a background image and a background country flag.');
-	}
-	if( $this->background_image != "" ) {
-	    $bkgimg = $this->LoadBkgImage($this->background_image_format);
-	    $this->img->_AdjBrightContrast($bkgimg,$this->background_image_bright,
-					   $this->background_image_contr);
-	    $this->img->_AdjSat($bkgimg,$this->background_image_sat);
-	}
-	elseif( $this->background_cflag != "" ) {
-	    if( ! class_exists('FlagImages') ) {
-		JpGraphError::RaiseL(25041);//('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.');
-	    }
-	    $fobj = new FlagImages(FLAGSIZE4);
-	    $dummy='';
-	    $bkgimg = $fobj->GetImgByName($this->background_cflag,$dummy);
-	    $this->background_image_mix = $this->background_cflag_mix;
-	    $this->background_image_type = $this->background_cflag_type;
-	}
-	else {
-	    return ;
-	}
-
-	$bw = ImageSX($bkgimg);
-	$bh = ImageSY($bkgimg);
-
-	// No matter what the angle is we always stroke the image and frame
-	// assuming it is 0 degree
-	$aa = $this->img->SetAngle(0);
-		
-	switch( $this->background_image_type ) {
-	    case BGIMG_FILLPLOT: // Resize to just fill the plotarea
-		$this->FillMarginArea();
-		$this->StrokeFrame();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,
-				 $this->img->left_margin,$this->img->top_margin,
-				 0,0,$this->img->plotwidth+1,$this->img->plotheight,
-				 $bw,$bh,$this->background_image_mix);
-		break;
-	    case BGIMG_FILLFRAME: // Fill the whole area from upper left corner, resize to just fit
-		$hadj=0; $vadj=0;
-		if( $this->doshadow ) {
-		    $hadj = $this->shadow_width;
-		    $vadj = $this->shadow_width;
-		}
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,0,0,0,0,$this->img->width-$hadj,$this->img->height-$vadj,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    case BGIMG_COPY: // Just copy the image from left corner, no resizing
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,0,0,0,0,$bw,$bh,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    case BGIMG_CENTER: // Center original image in the plot area
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$centerx = round($this->img->plotwidth/2+$this->img->left_margin-$bw/2);
-		$centery = round($this->img->plotheight/2+$this->img->top_margin-$bh/2);
-		$this->img->CopyMerge($bkgimg,$centerx,$centery,0,0,$bw,$bh,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    default:
-		JpGraphError::RaiseL(25042);//(" Unknown background image layout");
-	}			
-	$this->img->SetAngle($aa);		
-    }
-
-    // Private
-    // Draw a frame around the image
-    function StrokeFrame() {
-	if( !$this->doframe ) return;
-
-	if( $this->background_image_type <= 1 && 
-	    ($this->bkg_gradtype < 0 || ($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_PLOT)) ) { 
-	    $c = $this->margin_color;
-	}
-	else {
-	    $c = false;
-	}
-	
-	if( $this->doshadow ) {
-	    $this->img->SetColor($this->frame_color);			
-	    $this->img->ShadowRectangle(0,0,$this->img->width,$this->img->height,
-					$c,$this->shadow_width,$this->shadow_color);
-	}
-	elseif( $this->framebevel ) {
-	    if( $c ) {
-		$this->img->SetColor($this->margin_color);
-		$this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); 
-	    }
-	    $this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2,
-			      $this->framebeveldepth,
-			      $this->framebevelcolor1,$this->framebevelcolor2);
-	    if( $this->framebevelborder ) {
-		$this->img->SetColor($this->framebevelbordercolor);
-		$this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);
-	    }
-	}
-	else {
-	    $this->img->SetLineWeight($this->frame_weight);
-	    if( $c ) {
-		$this->img->SetColor($this->margin_color);
-		$this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); 
-	    }
-	    $this->img->SetColor($this->frame_color);
-	    $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);		
-	}
-    }
-
-    function FillMarginArea() {
-	$hadj=0; $vadj=0;
-	if( $this->doshadow ) {
-	    $hadj = $this->shadow_width;
-	    $vadj = $this->shadow_width;
-	}
-
-	$this->img->SetColor($this->margin_color);
-//	$this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->height-1-$vadj); 
-
-	$this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->top_margin); 
-	$this->img->FilledRectangle(0,$this->img->top_margin,$this->img->left_margin,$this->img->height-1-$hadj); 
-	$this->img->FilledRectangle($this->img->left_margin+1,
-				    $this->img->height-$this->img->bottom_margin,
-				    $this->img->width-1-$hadj,
-				    $this->img->height-1-$hadj); 
-	$this->img->FilledRectangle($this->img->width-$this->img->right_margin,
-				    $this->img->top_margin+1,
-				    $this->img->width-1-$hadj,
-				    $this->img->height-$this->img->bottom_margin-1); 
-    }
-
-    function FillPlotArea() {
-	$this->img->PushColor($this->plotarea_color);
-	$this->img->FilledRectangle($this->img->left_margin,
-				    $this->img->top_margin,
-				    $this->img->width-$this->img->right_margin,
-				    $this->img->height-$this->img->bottom_margin);	
-	$this->img->PopColor();
-    }
-    
-    // Stroke the plot area with either a solid color or a background image
-    function StrokePlotArea() {
-	// Note: To be consistent we really should take a possible shadow
-	// into account. However, that causes some problem for the LinearScale class
-	// since in the current design it does not have any links to class Graph which
-	// means it has no way of compensating for the adjusted plotarea in case of a 
-	// shadow. So, until I redesign LinearScale we can't compensate for this.
-	// So just set the two adjustment parameters to zero for now.
-	$boxadj = 0; //$this->doframe ? $this->frame_weight : 0 ;
-	$adj = 0; //$this->doshadow ? $this->shadow_width : 0 ;
-
-	if( $this->background_image != "" || $this->background_cflag != "" ) {
-	    $this->StrokeFrameBackground();
-	}
-	else {
-	    $aa = $this->img->SetAngle(0);
-	    $this->StrokeFrame();
-	    $aa = $this->img->SetAngle($aa);
-	    $this->StrokeBackgroundGrad();
-	    if( $this->bkg_gradtype < 0 || 
-		($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_MARGIN) ) {
-		$this->FillPlotArea();
-	    }
-	}	
-    }	
-
-    function StrokeIcons() {
-	$n = count($this->iIcons);
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->iIcons[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	}
-    }
-	
-    function StrokePlotBox() {
-	// Should we draw a box around the plot area?
-	if( $this->boxed ) {
-	    $this->img->SetLineWeight(1);
-	    $this->img->SetLineStyle('solid');
-	    $this->img->SetColor($this->box_color);
-	    for($i=0; $i < $this->box_weight; ++$i ) {
-		$this->img->Rectangle(
-		    $this->img->left_margin-$i,$this->img->top_margin-$i,
-		    $this->img->width-$this->img->right_margin+$i,
-		    $this->img->height-$this->img->bottom_margin+$i);
-	    }
-	}						
-    }		
-
-    function SetTitleBackgroundFillStyle($aStyle,$aColor1='black',$aColor2='white') {
-	$this->titlebkg_fillstyle = $aStyle;
-	$this->titlebkg_scolor1 = $aColor1;
-	$this->titlebkg_scolor2 = $aColor2;
-    }
-
-    function SetTitleBackground($aBackColor='gray', $aStyle=TITLEBKG_STYLE1, $aFrameStyle=TITLEBKG_FRAME_NONE, $aFrameColor='black', $aFrameWeight=1, $aBevelHeight=3, $aEnable=true) {
-	$this->titlebackground = $aEnable;
-	$this->titlebackground_color = $aBackColor;
-	$this->titlebackground_style = $aStyle;
-	$this->titlebackground_framecolor = $aFrameColor;
-	$this->titlebackground_framestyle = $aFrameStyle;
-	$this->titlebackground_frameweight = $aFrameWeight;	
-	$this->titlebackground_bevelheight = $aBevelHeight ;
-    }
-
-
-    function StrokeTitles() {
-
-	$margin=3;
-
-	if( $this->titlebackground ) {
-
-	    // Find out height
-	    $this->title->margin += 2 ;
-	    $h = $this->title->GetTextHeight($this->img)+$this->title->margin+$margin;
-	    if( $this->subtitle->t != "" && !$this->subtitle->hide ) {
-		$h += $this->subtitle->GetTextHeight($this->img)+$margin+
-		    $this->subtitle->margin;
-		$h += 2;
-	    }
-	    if( $this->subsubtitle->t != "" && !$this->subsubtitle->hide ) {
-		$h += $this->subsubtitle->GetTextHeight($this->img)+$margin+
-		    $this->subsubtitle->margin;
-		$h += 2;
-	    }
-	    $this->img->PushColor($this->titlebackground_color);
-	    if( $this->titlebackground_style === TITLEBKG_STYLE1 ) {
-		// Inside the frame
-		if( $this->framebevel ) {
-		    $x1 = $y1 = $this->framebeveldepth + 1 ;
-		    $x2 = $this->img->width - $this->framebeveldepth - 2 ; 
-		    $this->title->margin += $this->framebeveldepth + 1 ;
-		    $h += $y1 ;
-		    $h += 2;
-		}
-		else {
-		    $x1 = $y1 = $this->frame_weight;
-		    $x2 = $this->img->width - 2*$x1;
-		}
-	    }
-	    elseif( $this->titlebackground_style === TITLEBKG_STYLE2 ) {
-		// Cover the frame as well
-		$x1 = $y1 = 0;
-		$x2 = $this->img->width - 1 ;
-	    }
-	    elseif( $this->titlebackground_style === TITLEBKG_STYLE3 ) {
-		// Cover the frame as well (the difference is that
-		// for style==3 a bevel frame border is on top
-		// of the title background)
-		$x1 = $y1 = 0;
-		$x2 = $this->img->width - 1 ;
-		$h += $this->framebeveldepth ;
-		$this->title->margin += $this->framebeveldepth ;
-	    }
-	    else {
-		JpGraphError::RaiseL(25043);//('Unknown title background style.');
-	    }
-
-	    if( $this->titlebackground_framestyle === 3 ) {
-		$h += $this->titlebackground_bevelheight*2 + 1  ;
-		$this->title->margin += $this->titlebackground_bevelheight ;
-	    }
-
-	    if( $this->doshadow ) {
-		$x2 -= $this->shadow_width ;
-	    }
-	    
-	    $indent=0;
-	    if( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) {
-		$ind = $this->titlebackground_bevelheight;
-	    }
-
-	    if( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_HSTRIPED ) {
-		$this->img->FilledRectangle2($x1+$ind,$y1+$ind,$x2-$ind,$h-$ind,
-					     $this->titlebkg_scolor1,
-					     $this->titlebkg_scolor2);
-	    }
-	    elseif( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_VSTRIPED ) {
-		$this->img->FilledRectangle2($x1+$ind,$y1+$ind,$x2-$ind,$h-$ind,
-					     $this->titlebkg_scolor1,
-					     $this->titlebkg_scolor2,2);
-	    }
-	    else {
-		// Solid fill
-		$this->img->FilledRectangle($x1,$y1,$x2,$h);
-	    }
-	    $this->img->PopColor();
-
-	    $this->img->PushColor($this->titlebackground_framecolor);
-	    $this->img->SetLineWeight($this->titlebackground_frameweight);
-	    if( $this->titlebackground_framestyle == TITLEBKG_FRAME_FULL ) {
-		// Frame background
-		$this->img->Rectangle($x1,$y1,$x2,$h);
-	    }
-	    elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BOTTOM ) {
-		// Bottom line only
-		$this->img->Line($x1,$h,$x2,$h);
-	    }
-	    elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) {
-		$this->img->Bevel($x1,$y1,$x2,$h,$this->titlebackground_bevelheight);
-	    }
-	    $this->img->PopColor();
-
-	    // This is clumsy. But we neeed to stroke the whole graph frame if it is
-	    // set to bevel to get the bevel shading on top of the text background
-	    if( $this->framebevel && $this->doframe && 
-		$this->titlebackground_style === 3 ) {
-		$this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2,
-				  $this->framebeveldepth,
-				  $this->framebevelcolor1,$this->framebevelcolor2);
-		if( $this->framebevelborder ) {
-		    $this->img->SetColor($this->framebevelbordercolor);
-		    $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);
-		}
-	    }
-	}
-
-	// Stroke title
-	$y = $this->title->margin; 
-	if( $this->title->halign == 'center' ) 
-	    $this->title->Center(0,$this->img->width,$y);
-	elseif( $this->title->halign == 'left' ) {
-	    $this->title->SetPos($this->title->margin+2,$y);
-	}
-	elseif( $this->title->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->title->SetPos($this->img->width-$this->title->margin-$indent,$y,'right');	    
-	}
-	$this->title->Stroke($this->img);
-		
-	// ... and subtitle
-	$y += $this->title->GetTextHeight($this->img) + $margin + $this->subtitle->margin;
-	if( $this->subtitle->halign == 'center' ) 
-	    $this->subtitle->Center(0,$this->img->width,$y);
-	elseif( $this->subtitle->halign == 'left' ) {
-	    $this->subtitle->SetPos($this->subtitle->margin+2,$y);
-	}
-	elseif( $this->subtitle->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->subtitle->SetPos($this->img->width-$this->subtitle->margin-$indent,$y,'right'); 
-	}
-	$this->subtitle->Stroke($this->img);
-
-	// ... and subsubtitle
-	$y += $this->subtitle->GetTextHeight($this->img) + $margin + $this->subsubtitle->margin;
-	if( $this->subsubtitle->halign == 'center' ) 
-	    $this->subsubtitle->Center(0,$this->img->width,$y);
-	elseif( $this->subsubtitle->halign == 'left' ) {
-	    $this->subsubtitle->SetPos($this->subsubtitle->margin+2,$y);
-	}
-	elseif( $this->subsubtitle->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->subsubtitle->SetPos($this->img->width-$this->subsubtitle->margin-$indent,$y,'right'); 
-	}
-	$this->subsubtitle->Stroke($this->img);
-
-	// ... and fancy title
-	$this->tabtitle->Stroke($this->img);
-
-    }
-
-    function StrokeTexts() {
-	// Stroke any user added text objects
-	if( $this->texts != null ) {
-	    for($i=0; $i < count($this->texts); ++$i) {
-		$this->texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-
-	if( $this->y2texts != null && $this->y2scale != null ) {
-	    for($i=0; $i < count($this->y2texts); ++$i) {
-		$this->y2texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->y2scale);
-	    }
-	}
-
-    }
-
-    function StrokeTables() {
-	if( $this->iTables != null ) {
-	    $n = count($this->iTables);
-	    for( $i=0; $i < $n; ++$i ) {
-		$this->iTables[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-    }
-
-    function DisplayClientSideaImageMapAreas() {
-	// Debug stuff - display the outline of the image map areas
-	$csim='';
-	foreach ($this->plots as $p) {
-	    $csim.= $p->GetCSIMareas();
-	}
-	$csim .= $this->legend->GetCSIMareas();
-	if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) {
-	    $this->img->SetColor($this->csimcolor);
-	    $n = count($coords[0]);
-	    for ($i=0; $i < $n; $i++) {
-		if ($coords[1][$i]=="poly") {
-		    preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts);
-		    $this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]);
-		    $m = count($pts[0]);
-		    for ($j=0; $j < $m; $j++) {
-			$this->img->LineTo($pts[1][$j],$pts[2][$j]);
-		    }
-		} else if ($coords[1][$i]=="rect") {
-		    $pts = preg_split('/,/', $coords[2][$i]);
-		    $this->img->SetStartPoint($pts[0],$pts[1]);
-		    $this->img->LineTo($pts[2],$pts[1]);
-		    $this->img->LineTo($pts[2],$pts[3]);
-		    $this->img->LineTo($pts[0],$pts[3]);
-		    $this->img->LineTo($pts[0],$pts[1]);					
-		}
-	    }
-	}
-    }
-
-    function AdjustSaturationBrightnessContrast() {
-	// Adjust the brightness and contrast of the image
-	if( $this->image_contr || $this->image_bright )
-	    $this->img->AdjBrightContrast($this->image_bright,$this->image_contr);
-	if( $this->image_sat )											 
-	    $this->img->AdjSat($this->image_sat);
-    }
-
-    // Text scale offset in fractions of a major scale step
-    function SetTextScaleOff($aOff) {
-	$this->text_scale_off = $aOff;
-	$this->xscale->text_scale_off = $aOff;
-    }
-
-    // Text width of bar to be centered in absolute pixels
-    function SetTextScaleAbsCenterOff($aOff) {
-	$this->text_scale_abscenteroff = $aOff;
-    }
-
-    // Get Y min and max values for added lines
-    function GetLinesYMinMax( $aLines ) {
-	$n = count($aLines);
-	if( $n == 0 ) return false;
-	$min = $aLines[0]->scaleposition ;
-	$max = $min ;
-	$flg = false;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $aLines[$i]->direction == HORIZONTAL ) {
-		$flg = true ;
-		$v = $aLines[$i]->scaleposition ;
-		if( $min > $v ) $min = $v ;
-		if( $max < $v ) $max = $v ;
-	    }
-	}
-	return $flg ? array($min,$max) : false ;
-    }
-
-    // Get X min and max values for added lines
-    function GetLinesXMinMax( $aLines ) {
-	$n = count($aLines);
-	if( $n == 0 ) return false ;
-	$min = $aLines[0]->scaleposition ;
-	$max = $min ;
-	$flg = false;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $aLines[$i]->direction == VERTICAL ) {
-		$flg = true ;
-		$v = $aLines[$i]->scaleposition ;
-		if( $min > $v ) $min = $v ;
-		if( $max < $v ) $max = $v ;
-	    }
-	}
-	return $flg ? array($min,$max) : false ;
-    }
-
-    // Get min and max values for all included plots
-    function GetPlotsYMinMax(&$aPlots) {
-	$n = count($aPlots);
-	$i=0;
-	do {
-	    list($xmax,$max) = $aPlots[$i]->Max();
-	} while( ++$i < $n && !is_numeric($max) );
-	
-	$i=0;
-	do {
-           list($xmin,$min) = $aPlots[$i]->Min();
-       } while( ++$i < $n && !is_numeric($min) );
-	
-	if( !is_numeric($min) || !is_numeric($max) ) {
-	    JpGraphError::RaiseL(25044);//('Cannot use autoscaling since it is impossible to determine a valid min/max value  of the Y-axis (only null values).');
-	}
-
-	list($xmax,$max) = $aPlots[0]->Max();
-	list($xmin,$min) = $aPlots[0]->Min();
-	for($i=0; $i < count($aPlots); ++$i ) {
-	    list($xmax,$ymax)=$aPlots[$i]->Max();
-	    list($xmin,$ymin)=$aPlots[$i]->Min();
-	    if (is_numeric($ymax)) $max=max($max,$ymax);
-	    if (is_numeric($ymin)) $min=min($min,$ymin);
-	}
-	if( $min == '' ) $min = 0;
-	if( $max == '' ) $max = 0;
-	if( $min == 0 && $max == 0 ) {
-	    // Special case if all values are 0
-	    $min=0;$max=1;			
-	}
-	return array($min,$max);
-    }
-
-} // Class
-
-
-//===================================================
-// CLASS TTF
-// Description: Handle TTF font names
-//===================================================
-class TTF {
-    var $font_files,$style_names;
-//---------------
-// CONSTRUCTOR
-    function TTF() {
-	$this->style_names=array(FS_NORMAL=>'normal',FS_BOLD=>'bold',FS_ITALIC=>'italic',FS_BOLDITALIC=>'bolditalic');
-	// File names for available fonts
-	$this->font_files=array(
-	    FF_COURIER => array(FS_NORMAL=>'cour.ttf', FS_BOLD=>'courbd.ttf', FS_ITALIC=>'couri.ttf', FS_BOLDITALIC=>'courbi.ttf' ),
-	    FF_GEORGIA => array(FS_NORMAL=>'georgia.ttf', FS_BOLD=>'georgiab.ttf', FS_ITALIC=>'georgiai.ttf', FS_BOLDITALIC=>'' ),
-	    FF_TREBUCHE =>array(FS_NORMAL=>'trebuc.ttf', FS_BOLD=>'trebucbd.ttf',   FS_ITALIC=>'trebucit.ttf', FS_BOLDITALIC=>'trebucbi.ttf' ),
-	    FF_VERDANA => array(FS_NORMAL=>'verdana.ttf', FS_BOLD=>'verdanab.ttf',  FS_ITALIC=>'verdanai.ttf', FS_BOLDITALIC=>'' ),
-	    FF_TIMES =>   array(FS_NORMAL=>'times.ttf',   FS_BOLD=>'timesbd.ttf',   FS_ITALIC=>'timesi.ttf',   FS_BOLDITALIC=>'timesbi.ttf' ),
-	    FF_COMIC =>   array(FS_NORMAL=>'comic.ttf',   FS_BOLD=>'comicbd.ttf',   FS_ITALIC=>'',         FS_BOLDITALIC=>'' ),
-	    FF_ARIAL =>   array(FS_NORMAL=>'arial.ttf',   FS_BOLD=>'arialbd.ttf',   FS_ITALIC=>'ariali.ttf',   FS_BOLDITALIC=>'arialbi.ttf' ) ,
-	    FF_VERA =>    array(FS_NORMAL=>'Vera.ttf',   FS_BOLD=>'VeraBd.ttf',   FS_ITALIC=>'VeraIt.ttf',   FS_BOLDITALIC=>'VeraBI.ttf' ),
-	    FF_VERAMONO => array(FS_NORMAL=>'VeraMono.ttf', FS_BOLD=>'VeraMoBd.ttf', FS_ITALIC=>'VeraMoIt.ttf', FS_BOLDITALIC=>'VeraMoBI.ttf' ),
-	    FF_VERASERIF => array(FS_NORMAL=>'VeraSe.ttf', FS_BOLD=>'VeraSeBd.ttf', FS_ITALIC=>'', FS_BOLDITALIC=>'' ) ,
-	    FF_SIMSUN =>  array(FS_NORMAL=>'simsun.ttc',  FS_BOLD=>'simhei.ttf',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),
-	    FF_CHINESE => array(FS_NORMAL=>CHINESE_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
- 	    FF_MINCHO =>  array(FS_NORMAL=>MINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),
- 	    FF_PMINCHO => array(FS_NORMAL=>PMINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_GOTHIC  => array(FS_NORMAL=>GOTHIC_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_PGOTHIC => array(FS_NORMAL=>PGOTHIC_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_MINCHO =>  array(FS_NORMAL=>PMINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' )   
-);
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Create the TTF file from the font specification
-    function File($family,$style=FS_NORMAL) {
-	
-	if( $family == FF_HANDWRT || $family==FF_BOOK ) {
-	    JpGraphError::RaiseL(25045);//('Font families FF_HANDWRT and FF_BOOK are no longer available due to copyright problem with these fonts. Fonts can no longer be distributed with JpGraph. Please download fonts from http://corefonts.sourceforge.net/');
-	}
-
-	$fam = @$this->font_files[$family];
-	if( !$fam ) {
-	    JpGraphError::RaiseL(25046,$family);//("Specified TTF font family (id=$family) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/");
-	}
-	$f = @$fam[$style];
-
-	if( $f==='' )
-	    JpGraphError::RaiseL(25047,$this->style_names[$style],$this->font_files[$family][FS_NORMAL]);//('Style "'.$this->style_names[$style].'" is not available for font family '.$this->font_files[$family][FS_NORMAL].'.');
-	if( !$f ) {
-	    JpGraphError::RaiseL(25048,$fam);//("Unknown font style specification [$fam].");
-	}
-
-	if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) {
-	    $f = MBTTF_DIR.$f;
-	} else {
-	    $f = TTF_DIR.$f;
-	}
-
-	if( file_exists($f) === false || is_readable($f) === false ) {
-	    JpGraphError::RaiseL(25049,$f);//("Font file \"$f\" is not readable or does not exist.");
-	}
-	return $f;
-    }
-} // Class
-
-//===================================================
-// CLASS LineProperty
-// Description: Holds properties for a line
-//===================================================
-class LineProperty {
-    var $iWeight=1, $iColor="black",$iStyle="solid";
-    var $iShow=true;
-	
-//---------------
-// PUBLIC METHODS	
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->iWeight = $aWeight;
-    }
-	
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-		
-    function Show($aShow=true) {
-	$this->iShow=$aShow;
-    }
-	
-    function Stroke(&$aImg,$aX1,$aY1,$aX2,$aY2) {
-	if( $this->iShow ) {
-	    $aImg->PushColor($this->iColor);
-	    $oldls = $aImg->line_style;
-	    $oldlw = $aImg->line_weight;
-	    $aImg->SetLineWeight($this->iWeight);
-	    $aImg->SetLineStyle($this->iStyle);			
-	    $aImg->StyleLine($aX1,$aY1,$aX2,$aY2);
-	    $aImg->PopColor($this->iColor);
-	    $aImg->line_style = $oldls;
-	    $aImg->line_weight = $oldlw;
-
-	}
-    }
-}
-
-
-//===================================================
-// CLASS Text
-// Description: Arbitrary text object that can be added to the graph
-//===================================================
-class Text {
-    var $t,$x=0,$y=0,$halign="left",$valign="top",$color=array(0,0,0);
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10;
-    var $hide=false, $dir=0;
-    var $boxed=false;	// Should the text be boxed
-    var $paragraph_align="left";
-    var $margin=0;
-    var $icornerradius=0,$ishadowwidth=3;
-    var $iScalePosY=null,$iScalePosX=null;
-    var $iWordwrap=0;
-    var $fcolor='white',$bcolor='black',$shadow=false;
-    var $iCSIMarea='',$iCSIMalt='',$iCSIMtarget='';
-
-//---------------
-// CONSTRUCTOR
-
-    // Create new text at absolute pixel coordinates
-    function Text($aTxt="",$aXAbsPos=0,$aYAbsPos=0) {
-	if( ! is_string($aTxt) ) {
-	    JpGraphError::RaiseL(25050);//('First argument to Text::Text() must be s atring.');
-	}
-	$this->t = $aTxt;
-	$this->x = round($aXAbsPos);
-	$this->y = round($aYAbsPos);
-	$this->margin = 0;
-    }
-//---------------
-// PUBLIC METHODS	
-    // Set the string in the text object
-    function Set($aTxt) {
-	$this->t = $aTxt;
-    }
-	
-    // Alias for Pos()
-    function SetPos($aXAbsPos=0,$aYAbsPos=0,$aHAlign="left",$aVAlign="top") {
-	$this->Pos($aXAbsPos,$aYAbsPos,$aHAlign,$aVAlign);
-    }
-    
-    // Specify the position and alignment for the text object
-    function Pos($aXAbsPos=0,$aYAbsPos=0,$aHAlign="left",$aVAlign="top") {
-	$this->x = $aXAbsPos;
-	$this->y = $aYAbsPos;
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-    }
-
-    function SetScalePos($aX,$aY) {
-	$this->iScalePosX = $aX;
-	$this->iScalePosY = $aY;
-    }
-	
-    // Specify alignment for the text
-    function Align($aHAlign,$aVAlign="top",$aParagraphAlign="") {
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-	if( $aParagraphAlign != "" )
-	    $this->paragraph_align = $aParagraphAlign;
-    }		
-    
-    // Alias
-    function SetAlign($aHAlign,$aVAlign="top",$aParagraphAlign="") {
-	$this->Align($aHAlign,$aVAlign,$aParagraphAlign);
-    }
-
-    // Specifies the alignment for a multi line text
-    function ParagraphAlign($aAlign) {
-	$this->paragraph_align = $aAlign;
-    }
-
-    // Specifies the alignment for a multi line text
-    function SetParagraphAlign($aAlign) {
-	$this->paragraph_align = $aAlign;
-    }
-
-    function SetShadow($aShadowColor='gray',$aShadowWidth=3) {
-	$this->ishadowwidth=$aShadowWidth;
-	$this->shadow=$aShadowColor;
-	$this->boxed=true;
-    }
-
-    function SetWordWrap($aCol) {
-	$this->iWordwrap = $aCol ;
-    }
-	
-    // Specify that the text should be boxed. fcolor=frame color, bcolor=border color,
-    // $shadow=drop shadow should be added around the text.
-    function SetBox($aFrameColor=array(255,255,255),$aBorderColor=array(0,0,0),$aShadowColor=false,$aCornerRadius=4,$aShadowWidth=3) {
-	if( $aFrameColor==false )
-	    $this->boxed=false;
-	else
-	    $this->boxed=true;
-	$this->fcolor=$aFrameColor;
-	$this->bcolor=$aBorderColor;
-	// For backwards compatibility when shadow was just true or false
-	if( $aShadowColor === true )
-	    $aShadowColor = 'gray';
-	$this->shadow=$aShadowColor;
-	$this->icornerradius=$aCornerRadius;
-	$this->ishadowwidth=$aShadowWidth;
-    }
-	
-    // Hide the text
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-	
-    // This looks ugly since it's not a very orthogonal design 
-    // but I added this "inverse" of Hide() to harmonize
-    // with some classes which I designed more recently (especially) 
-    // jpgraph_gantt
-    function Show($aShow=true) {
-	$this->hide=!$aShow;
-    }
-	
-    // Specify font
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family=$aFamily;
-	$this->font_style=$aStyle;
-	$this->font_size=$aSize;
-    }
-			
-    // Center the text between $left and $right coordinates
-    function Center($aLeft,$aRight,$aYAbsPos=false) {
-	$this->x = $aLeft + ($aRight-$aLeft	)/2;
-	$this->halign = "center";
-	if( is_numeric($aYAbsPos) )
-	    $this->y = $aYAbsPos;		
-    }
-	
-    // Set text color
-    function SetColor($aColor) {
-	$this->color = $aColor;
-    }
-	
-    function SetAngle($aAngle) {
-	$this->SetOrientation($aAngle);
-    }
-	
-    // Orientation of text. Note only TTF fonts can have an arbitrary angle
-    function SetOrientation($aDirection=0) {
-	if( is_numeric($aDirection) )
-	    $this->dir=$aDirection;	
-	elseif( $aDirection=="h" )
-	    $this->dir = 0;
-	elseif( $aDirection=="v" )
-	    $this->dir = 90;
-	else JpGraphError::RaiseL(25051);//(" Invalid direction specified for text.");
-    }
-	
-    // Total width of text
-    function GetWidth(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$w = $aImg->GetTextWidth($this->t,$this->dir);
-	return $w;	
-    }
-	
-    // Hight of font
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$h = $aImg->GetFontHeight();
-	return $h;
-
-    }
-
-    function GetTextHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetTextHeight($this->t,$this->dir);
-	return $h;
-    }
-
-    function GetHeight(&$aImg) {
-	// Synonym for GetTextHeight()
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetTextHeight($this->t,$this->dir);
-	return $h;
-    }
-
-    // Set the margin which will be interpretated differently depending
-    // on the context.
-    function SetMargin($aMarg) {
-	$this->margin = $aMarg;
-    }
-
-    function StrokeWithScale(&$aImg,$axscale,$ayscale) {
-	if( $this->iScalePosX === null ||
-	    $this->iScalePosY === null ) {
-	    $this->Stroke($aImg);
-	}
-	else {
-	    $this->Stroke($aImg,
-			  round($axscale->Translate($this->iScalePosX)),
-			  round($ayscale->Translate($this->iScalePosY)));
-	}
-    }
-
-    function SetCSIMTarget($aTarget,$aAlt=null) {
-	$this->iCSIMtarget = $aTarget;
-	$this->iCSIMalt = $aAlt;
-    }
-
-    function GetCSIMareas() {
-	if( $this->iCSIMtarget !== '' ) 
-	    return $this->iCSIMarea;
-	else
-	    return '';
-    }
-
-    // Display text in image
-    function Stroke(&$aImg,$x=null,$y=null) {
-
-	if( !empty($x) ) $this->x = round($x);
-	if( !empty($y) ) $this->y = round($y);
-
-	// Insert newlines
-	if( $this->iWordwrap > 0 ) {
-	    $this->t = wordwrap($this->t,$this->iWordwrap,"\n");
-	}
-
-	// If position been given as a fraction of the image size
-	// calculate the absolute position
-	if( $this->x < 1 && $this->x > 0 ) $this->x *= $aImg->width;
-	if( $this->y < 1 && $this->y > 0 ) $this->y *= $aImg->height;
-
-	$aImg->PushColor($this->color);	
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$aImg->SetTextAlign($this->halign,$this->valign);
-	if( $this->boxed ) {
-	    if( $this->fcolor=="nofill" ) 
-		$this->fcolor=false;		
-	    $aImg->SetLineWeight(1);
-	    $bbox = $aImg->StrokeBoxedText($this->x,$this->y,$this->t,
-				   $this->dir,$this->fcolor,$this->bcolor,$this->shadow,
-				   $this->paragraph_align,5,5,$this->icornerradius,
-				   $this->ishadowwidth);
-	}
-	else {
-	    $bbox = $aImg->StrokeText($this->x,$this->y,$this->t,$this->dir,$this->paragraph_align);
-	}
-
-	// Create CSIM targets
-	$coords = $bbox[0].','.$bbox[1].','.$bbox[2].','.$bbox[3].','.$bbox[4].','.$bbox[5].','.$bbox[6].','.$bbox[7];
-	$this->iCSIMarea = "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($this->iCSIMtarget)."\"";
-	$this->iCSIMarea .= " alt=\"".$this->iCSIMalt."\" title=\"".$this->iCSIMalt."\" />\n";
-
-	$aImg->PopColor($this->color);	
-
-    }
-} // Class
-
-class GraphTabTitle extends Text{
-    var $corner = 6 , $posx = 7, $posy = 4;
-    var $color='darkred',$fillcolor='lightyellow',$bordercolor='black';
-    var $align = 'left', $width=TABTITLE_WIDTHFIT;
-    function GraphTabTitle() {
-	$this->t = '';
-	$this->font_style = FS_BOLD;
-	$this->hide = true;
-    }
-
-    function SetColor($aTxtColor,$aFillColor='lightyellow',$aBorderColor='black') {
-	$this->color = $aTxtColor;
-	$this->fillcolor = $aFillColor;
-	$this->bordercolor = $aBorderColor;
-    }
-
-    function SetFillColor($aFillColor) {
-	$this->fillcolor = $aFillColor;
-    }
-
-    function SetTabAlign($aAlign) {
-	// Synonym for SetPos
-	$this->align = $aAlign;
-    }
-
-    function SetPos($aAlign) {
-	$this->align = $aAlign;
-    }
-    
-    function SetWidth($aWidth) {
-	$this->width = $aWidth ;
-    }
-
-    function Set($t) {
-	$this->t = $t;
-	$this->hide = false;
-    }
-
-    function SetCorner($aD) {
-	$this->corner = $aD ;
-    }
-
-    function Stroke(&$aImg) {
-	if( $this->hide ) 
-	    return;
-	$this->boxed = false;
-	$w = $this->GetWidth($aImg) + 2*$this->posx;
-	$h = $this->GetTextHeight($aImg) + 2*$this->posy;
-
-	$x = $aImg->left_margin;
-	$y = $aImg->top_margin;
-
-	if( $this->width === TABTITLE_WIDTHFIT ) {
-	    if( $this->align == 'left' ) {
-		$p = array($x,                $y,
-			   $x,                $y-$h+$this->corner,
-			   $x + $this->corner,$y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	    elseif( $this->align == 'center' ) {
-		$x += round($aImg->plotwidth/2) - round($w/2);
-		$p = array($x, $y,
-			   $x, $y-$h+$this->corner,
-			   $x + $this->corner, $y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	    else {
-		$x += $aImg->plotwidth -$w;
-		$p = array($x, $y,
-			   $x, $y-$h+$this->corner,
-			   $x + $this->corner,$y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	}
-	else {
-	    if( $this->width === TABTITLE_WIDTHFULL )
-		$w = $aImg->plotwidth ;
-	    else
-		$w = $this->width ;
-
-	    // Make the tab fit the width of the plot area
-	    $p = array($x,                $y,
-		       $x,                $y-$h+$this->corner,
-		       $x + $this->corner,$y-$h,
-		       $x + $w - $this->corner, $y-$h,
-		       $x + $w, $y-$h+$this->corner,
-		       $x + $w, $y);
-	    
-	}
-	if( $this->halign == 'left' ) {
-	    $aImg->SetTextAlign('left','bottom');
-	    $x += $this->posx;
-	    $y -= $this->posy;
-	}
-	elseif( $this->halign == 'center' ) {
-	    $aImg->SetTextAlign('center','bottom');
-	    $x += $w/2; 
-	    $y -= $this->posy;
-	}
-	else {
-	    $aImg->SetTextAlign('right','bottom');
-	    $x += $w - $this->posx;
-	    $y -= $this->posy;
-	}
-
-	$aImg->SetColor($this->fillcolor);
-	$aImg->FilledPolygon($p);
-
-	$aImg->SetColor($this->bordercolor);
-	$aImg->Polygon($p,true);
-	
-	$aImg->SetColor($this->color);
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$aImg->StrokeText($x,$y,$this->t,0,'center');
-    }
-
-}
-
-//===================================================
-// CLASS SuperScriptText
-// Description: Format a superscript text
-//===================================================
-class SuperScriptText extends Text {
-    var $iSuper="";
-    var $sfont_family="",$sfont_style="",$sfont_size=8;
-    var $iSuperMargin=2,$iVertOverlap=4,$iSuperScale=0.65;
-    var $iSDir=0;
-    var $iSimple=false;
-
-    function SuperScriptText($aTxt="",$aSuper="",$aXAbsPos=0,$aYAbsPos=0) {
-	parent::Text($aTxt,$aXAbsPos,$aYAbsPos);
-	$this->iSuper = $aSuper;
-    }
-
-    function FromReal($aVal,$aPrecision=2) {
-	// Convert a floating point number to scientific notation
-	$neg=1.0;
-	if( $aVal < 0 ) {
-	    $neg = -1.0;
-	    $aVal = -$aVal;
-	}
-		
-	$l = floor(log10($aVal));
-	$a = sprintf("%0.".$aPrecision."f",round($aVal / pow(10,$l),$aPrecision));
-	$a *= $neg;
-	if( $this->iSimple && ($a == 1 || $a==-1) ) $a = '';
-	
-	if( $a != '' )
-	    $this->t = $a.' * 10';
-	else {
-	    if( $neg == 1 )
-		$this->t = '10';
-	    else
-		$this->t = '-10';
-	}
-	$this->iSuper = $l;
-    }
-
-    function Set($aTxt,$aSuper="") {
-	$this->t = $aTxt;
-	$this->iSuper = $aSuper;
-    }
-
-    function SetSuperFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=8) {
-	$this->sfont_family = $aFontFam;
-	$this->sfont_style = $aFontStyle;
-	$this->sfont_size = $aFontSize;
-    }
-
-    // Total width of text
-    function GetWidth(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$w = $aImg->GetTextWidth($this->t);
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$w += $aImg->GetTextWidth($this->iSuper);
-	$w += $this->iSuperMargin;
-	return $w;
-    }
-	
-    // Hight of font (approximate the height of the text)
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetFontHeight();
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$h += $aImg->GetFontHeight();
-	return $h;
-    }
-
-    // Hight of text
-    function GetTextHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$h = $aImg->GetTextHeight($this->t);
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$h += $aImg->GetTextHeight($this->iSuper);
-	return $h;
-    }
-
-    function Stroke(&$aImg,$ax=-1,$ay=-1) {
-	
-        // To position the super script correctly we need different
-	// cases to handle the alignmewnt specified since that will
-	// determine how we can interpret the x,y coordinates
-	
-	$w = parent::GetWidth($aImg);
-	$h = parent::GetTextHeight($aImg);
-	switch( $this->valign ) {
-	    case 'top':
-		$sy = $this->y;
-		break;
-	    case 'center':
-		$sy = $this->y - $h/2;
-		break;
-	    case 'bottom':
-		$sy = $this->y - $h;
-		break;
-	    default:
-		JpGraphError::RaiseL(25052);//('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text');
-		break;
-	}
-
-	switch( $this->halign ) {
-	    case 'left':
-		$sx = $this->x + $w;
-		break;
-	    case 'center':
-		$sx = $this->x + $w/2;
-		break;
-	    case 'right':
-		$sx = $this->x;
-		break;
-	    default:
-		JpGraphError::RaiseL(25053);//('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text');
-		break;
-	}
-
-	$sx += $this->iSuperMargin;
-	$sy += $this->iVertOverlap;
-
-	// Should we automatically determine the font or
-	// has the user specified it explicetly?
-	if( $this->sfont_family == "" ) {
-	    if( $this->font_family <= FF_FONT2 ) {
-		if( $this->font_family == FF_FONT0 ) {
-		    $sff = FF_FONT0;
-		}
-		elseif( $this->font_family == FF_FONT1 ) {
-		    if( $this->font_style == FS_NORMAL )
-			$sff = FF_FONT0;
-		    else
-			$sff = FF_FONT1;
-		}
-		else {
-		    $sff = FF_FONT1;
-		}
-		$sfs = $this->font_style;
-		$sfz = $this->font_size;
-	    }
-	    else {
-		// TTF fonts
-		$sff = $this->font_family;
-		$sfs = $this->font_style;
-		$sfz = floor($this->font_size*$this->iSuperScale);		
-		if( $sfz < 8 ) $sfz = 8;
-	    }	    
-	    $this->sfont_family = $sff;
-	    $this->sfont_style = $sfs;
-	    $this->sfont_size = $sfz;	    
-	} 
-	else {
-	    $sff = $this->sfont_family;
-	    $sfs = $this->sfont_style;
-	    $sfz = $this->sfont_size;	    
-	}
-
-	parent::Stroke($aImg,$ax,$ay);
-
-
-	// For the builtin fonts we need to reduce the margins
-	// since the bounding bx reported for the builtin fonts
-	// are much larger than for the TTF fonts.
-	if( $sff <= FF_FONT2 ) {
-	    $sx -= 2;
-	    $sy += 3;
-	}
-
-	$aImg->SetTextAlign('left','bottom');	
-	$aImg->SetFont($sff,$sfs,$sfz);
-	$aImg->PushColor($this->color);	
-	$aImg->StrokeText($sx,$sy,$this->iSuper,$this->iSDir,'left');
-	$aImg->PopColor();	
-    }
-}
-
-
-//===================================================
-// CLASS Grid
-// Description: responsible for drawing grid lines in graph
-//===================================================
-class Grid {
-    var $img;
-    var $scale;
-    var $grid_color='#DDDDDD',$grid_mincolor='#DDDDDD';
-    var $type="solid";
-    var $show=false, $showMinor=false,$weight=1;
-    var $fill=false,$fillcolor=array('#EFEFEF','#BBCCFF');
-//---------------
-// CONSTRUCTOR
-    function Grid(&$aAxis) {
-	$this->scale = &$aAxis->scale;
-	$this->img = &$aAxis->img;
-    }
-//---------------
-// PUBLIC METHODS
-    function SetColor($aMajColor,$aMinColor=false) {
-	$this->grid_color=$aMajColor;
-	if( $aMinColor === false ) 
-	    $aMinColor = $aMajColor ;
-	$this->grid_mincolor = $aMinColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-	
-    // Specify if grid should be dashed, dotted or solid
-    function SetLineStyle($aType) {
-	$this->type = $aType;
-    }
-	
-    // Decide if both major and minor grid should be displayed
-    function Show($aShowMajor=true,$aShowMinor=false) {
-	$this->show=$aShowMajor;
-	$this->showMinor=$aShowMinor;
-    }
-    
-    function SetFill($aFlg=true,$aColor1='lightgray',$aColor2='lightblue') {
-	$this->fill = $aFlg;
-	$this->fillcolor = array( $aColor1, $aColor2 );
-    }
-	
-    // Display the grid
-    function Stroke() {
-	if( $this->showMinor ) {
-	    $tmp = $this->grid_color;
-	    $this->grid_color = $this->grid_mincolor;
-	    $this->DoStroke($this->scale->ticks->ticks_pos);
-
-	    $this->grid_color = $tmp;
-	    $this->DoStroke($this->scale->ticks->maj_ticks_pos);
-	}
-	else {
-	    $this->DoStroke($this->scale->ticks->maj_ticks_pos);
-	}
-    }
-	
-//--------------
-// Private methods	
-    // Draw the grid
-    function DoStroke(&$aTicksPos) {
-	if( !$this->show )
-	    return;	
-	$nbrgrids = count($aTicksPos);	
-
-	if( $this->scale->type=="y" ) {
-	    $xl=$this->img->left_margin;
-	    $xr=$this->img->width-$this->img->right_margin;
-	    
-	    if( $this->fill ) {
-		// Draw filled areas
-		$y2 = $aTicksPos[0];
-		$i=1;
-		while( $i < $nbrgrids ) {
-		    $y1 = $y2;
-		    $y2 = $aTicksPos[$i++];
-		    $this->img->SetColor($this->fillcolor[$i & 1]);
-		    $this->img->FilledRectangle($xl,$y1,$xr,$y2);
-		}
-	    }
-
-	    $this->img->SetColor($this->grid_color);
-	    $this->img->SetLineWeight($this->weight);
-
-	    // Draw grid lines
-	    for($i=0; $i<$nbrgrids; ++$i) {
-		$y=$aTicksPos[$i];
-		if( $this->type == "solid" )
-		    $this->img->Line($xl,$y,$xr,$y);
-		elseif( $this->type == "dotted" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,1,6);
-		elseif( $this->type == "dashed" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,2,4);
-		elseif( $this->type == "longdashed" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,8,6);
-	    }
-	}
-	elseif( $this->scale->type=="x" ) {	
-	    $yu=$this->img->top_margin;
-	    $yl=$this->img->height-$this->img->bottom_margin;
-	    $limit=$this->img->width-$this->img->right_margin;
-
-	    if( $this->fill ) {
-		// Draw filled areas
-		$x2 = $aTicksPos[0];
-		$i=1;
-		while( $i < $nbrgrids ) {
-		    $x1 = $x2;
-		    $x2 = min($aTicksPos[$i++],$limit) ;
-		    $this->img->SetColor($this->fillcolor[$i & 1]);
-		    $this->img->FilledRectangle($x1,$yu,$x2,$yl);
-		}
-	    }
-
-	    $this->img->SetColor($this->grid_color);
-	    $this->img->SetLineWeight($this->weight);
-
-	    // We must also test for limit since we might have
-	    // an offset and the number of ticks is calculated with
-	    // assumption offset==0 so we might end up drawing one
-	    // to many gridlines
-	    $i=0;
-	    $x=$aTicksPos[$i];	    
-	    while( $i<count($aTicksPos) && ($x=$aTicksPos[$i]) <= $limit ) {
-		if( $this->type == "solid" )				
-		    $this->img->Line($x,$yl,$x,$yu);
-		elseif( $this->type == "dotted" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,1,6);
-		elseif( $this->type == "dashed" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,2,4);
-		elseif( $this->type == "longdashed" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,8,6);	
-		++$i;  
-	    }
-	}	
-	else {
-	    JpGraphError::RaiseL(25054,$this->scale->type);//('Internal error: Unknown grid axis ['.$this->scale->type.']');
-	}
-	return true;
-    }
-} // Class
-
-//===================================================
-// CLASS Axis
-// Description: Defines X and Y axis. Notes that at the
-// moment the code is not really good since the axis on
-// several occasion must know wheter it's an X or Y axis.
-// This was a design decision to make the code easier to
-// follow. 
-//===================================================
-class Axis {
-    var $pos = false;
-    var $weight=1;
-    var $color=array(0,0,0),$label_color=array(0,0,0);
-    var $img=null,$scale=null; 
-    var $hide=false;
-    var $ticks_label=false, $ticks_label_colors=null;
-    var $show_first_label=true,$show_last_label=true;
-    var $label_step=1; // Used by a text axis to specify what multiple of major steps
-    // should be labeled.
-    var $tick_step=1;
-    var $labelPos=0;   // Which side of the axis should the labels be?
-    var $title=null,$title_adjust,$title_margin,$title_side=SIDE_LEFT;
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10,$label_angle=0;
-    var $tick_label_margin=7;
-    var $label_halign = '',$label_valign = '', $label_para_align='left';
-    var $hide_line=false,$hide_labels=false;
-    var $iDeltaAbsPos=0;
-    //var $hide_zero_label=false;
-
-//---------------
-// CONSTRUCTOR
-    function Axis(&$img,&$aScale,$color=array(0,0,0)) {
-	$this->img = &$img;
-	$this->scale = &$aScale;
-	$this->color = $color;
-	$this->title=new Text("");
-		
-	if( $aScale->type=="y" ) {
-	    $this->title_margin = 25;
-	    $this->title_adjust="middle";
-	    $this->title->SetOrientation(90);
-	    $this->tick_label_margin=7;
-	    $this->labelPos=SIDE_LEFT;
-	    //$this->SetLabelFormat('%.1f');
-	}
-	else {
-	    $this->title_margin = 5;
-	    $this->title_adjust="high";
-	    $this->title->SetOrientation(0);			
-	    $this->tick_label_margin=7;
-	    $this->labelPos=SIDE_DOWN;
-	    $this->title_side=SIDE_DOWN;
-	    //$this->SetLabelFormat('%.0f');
-	}
-    }
-//---------------
-// PUBLIC METHODS	
-	
-    function SetLabelFormat($aFormStr) {
-	$this->scale->ticks->SetLabelFormat($aFormStr);
-    }
-	
-    function SetLabelFormatString($aFormStr,$aDate=false) {
-	$this->scale->ticks->SetLabelFormat($aFormStr,$aDate);
-    }
-	
-    function SetLabelFormatCallback($aFuncName) {
-	$this->scale->ticks->SetFormatCallback($aFuncName);
-    }
-
-    function SetLabelAlign($aHAlign,$aVAlign="top",$aParagraphAlign='left') {
-	$this->label_halign = $aHAlign;
-	$this->label_valign = $aVAlign;
-	$this->label_para_align = $aParagraphAlign;
-    }		
-
-    // Don't display the first label
-    function HideFirstTickLabel($aShow=false) {
-	$this->show_first_label=$aShow;
-    }
-
-    function HideLastTickLabel($aShow=false) {
-	$this->show_last_label=$aShow;
-    }
-
-    // Manually specify the major and (optional) minor tick position and labels
-    function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) {
-	$this->scale->ticks->SetTickPositions($aMajPos,$aMinPos,$aLabels);
-    }
-
-    // Manually specify major tick positions and optional labels
-    function SetMajTickPositions($aMajPos,$aLabels=NULL) {
-	$this->scale->ticks->SetTickPositions($aMajPos,NULL,$aLabels);
-    }
-
-    // Hide minor or major tick marks
-    function HideTicks($aHideMinor=true,$aHideMajor=true) {
-	$this->scale->ticks->SupressMinorTickMarks($aHideMinor);
-	$this->scale->ticks->SupressTickMarks($aHideMajor);
-    }
-
-    // Hide zero label
-    function HideZeroLabel($aFlag=true) {
-	$this->scale->ticks->SupressZeroLabel();
-	//$this->hide_zero_label = $aFlag;
-    }
-	
-    function HideFirstLastLabel() {
-	// The two first calls to ticks method will supress 
-	// automatically generated scale values. However, that
-	// will not affect manually specified value, e.g text-scales.
-	// therefor we also make a kludge here to supress manually
-	// specified scale labels.
-	$this->scale->ticks->SupressLast();
-	$this->scale->ticks->SupressFirst();
-	$this->show_first_label	= false;
-	$this->show_last_label = false;
-    }
-	
-    // Hide the axis
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-
-    // Hide the actual axis-line, but still print the labels
-    function HideLine($aHide=true) {
-	$this->hide_line = $aHide;
-    }
-
-    function HideLabels($aHide=true) {
-	$this->hide_labels = $aHide;
-    }
-    
-
-    // Weight of axis
-    function SetWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    // Axis color
-    function SetColor($aColor,$aLabelColor=false) {
-	$this->color = $aColor;
-	if( !$aLabelColor ) $this->label_color = $aColor;
-	else $this->label_color = $aLabelColor;
-    }
-	
-    // Title on axis
-    function SetTitle($aTitle,$aAdjustAlign="high") {
-	$this->title->Set($aTitle);
-	$this->title_adjust=$aAdjustAlign;
-    }
-	
-    // Specify distance from the axis
-    function SetTitleMargin($aMargin) {
-	$this->title_margin=$aMargin;
-    }
-	
-    // Which side of the axis should the axis title be?
-    function SetTitleSide($aSideOfAxis) {
-	$this->title_side = $aSideOfAxis;
-    }
-
-    // Utility function to set the direction for tick marks
-    function SetTickDirection($aDir) {
-    	// Will be deprecated from 1.7    	
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(25055);//('Axis::SetTickDirection() is deprecated. Use Axis::SetTickSide() instead');
-	$this->scale->ticks->SetSide($aDir);
-    }
-    
-    function SetTickSide($aDir) {
-	$this->scale->ticks->SetSide($aDir);
-    }
-	
-    // Specify text labels for the ticks. One label for each data point
-    function SetTickLabels($aLabelArray,$aLabelColorArray=null) {
-	$this->ticks_label = $aLabelArray;
-	$this->ticks_label_colors = $aLabelColorArray;
-    }
-	
-    // How far from the axis should the labels be drawn
-    function SetTickLabelMargin($aMargin) {
-	if( ERR_DEPRECATED )    	
-	    JpGraphError::RaiseL(25056);//('SetTickLabelMargin() is deprecated. Use Axis::SetLabelMargin() instead.');
-      	$this->tick_label_margin=$aMargin;
-    }
-
-    function SetLabelMargin($aMargin) {
-	$this->tick_label_margin=$aMargin;
-    }
-	
-    // Specify that every $step of the ticks should be displayed starting
-    // at $start
-    // DEPRECATED FUNCTION: USE SetTextTickInterval() INSTEAD
-    function SetTextTicks($step,$start=0) {
-	JpGraphError::RaiseL(25057);//(" SetTextTicks() is deprecated. Use SetTextTickInterval() instead.");		
-    }
-
-    // Specify that every $step of the ticks should be displayed starting
-    // at $start	
-    function SetTextTickInterval($aStep,$aStart=0) {
-	$this->scale->ticks->SetTextLabelStart($aStart);
-	$this->tick_step=$aStep;
-    }
-	 
-    // Specify that every $step tick mark should have a label 
-    // should be displayed starting
-    function SetTextLabelInterval($aStep,$aStart=0) {
-	if( $aStep < 1 )
-	    JpGraphError::RaiseL(25058);//(" Text label interval must be specified >= 1.");
-	$this->scale->ticks->SetTextLabelStart($aStart);
-	$this->label_step=$aStep;
-    }
-	
-    // Which side of the axis should the labels be on?
-    function SetLabelPos($aSidePos) {
-    	// This will be deprecated from 1.7
-	if( ERR_DEPRECATED )    	
-	    JpGraphError::RaiseL(25059);//('SetLabelPos() is deprecated. Use Axis::SetLabelSide() instead.');
-	$this->labelPos=$aSidePos;
-    }
-    
-    function SetLabelSide($aSidePos) {
-	$this->labelPos=$aSidePos;
-    }
-
-    // Set the font
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family = $aFamily;
-	$this->font_style = $aStyle;
-	$this->font_size = $aSize;
-    }
-
-    // Position for axis line on the "other" scale
-    function SetPos($aPosOnOtherScale) {
-	$this->pos=$aPosOnOtherScale;
-    }
-
-    // Set the position of the axis to be X-pixels delta to the right 
-    // of the max X-position (used to position the multiple Y-axis)
-    function SetPosAbsDelta($aDelta) {
-      $this->iDeltaAbsPos=$aDelta;
-    }
-	
-    // Specify the angle for the tick labels
-    function SetLabelAngle($aAngle) {
-	$this->label_angle = $aAngle;
-    }	
-	
-    // Stroke the axis.
-    function Stroke($aOtherAxisScale,$aStrokeLabels=true) {		
-	if( $this->hide ) return;		
-	if( is_numeric($this->pos) ) {
-	    $pos=$aOtherAxisScale->Translate($this->pos);
-	}
-	else {	// Default to minimum of other scale if pos not set		
-	    if( ($aOtherAxisScale->GetMinVal() >= 0 && $this->pos==false) || $this->pos=="min" ) {
-		$pos = $aOtherAxisScale->scale_abs[0];
-	    }
-	    elseif($this->pos == "max") {
-		$pos = $aOtherAxisScale->scale_abs[1];
-	    }
-	    else { // If negative set x-axis at 0
-		$this->pos=0;
-		$pos=$aOtherAxisScale->Translate(0);
-	    }
-	}	
-	$pos += $this->iDeltaAbsPos;
-	$this->img->SetLineWeight($this->weight);
-	$this->img->SetColor($this->color);		
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	if( $this->scale->type == "x" ) {
-	    if( !$this->hide_line ) 
-		$this->img->FilledRectangle($this->img->left_margin,$pos,
-					    $this->img->width-$this->img->right_margin,$pos+$this->weight-1);
-	    if( $this->title_side == SIDE_DOWN ) {
-		$y = $pos + $this->img->GetFontHeight() + $this->title_margin + $this->title->margin;
-		$yalign = 'top';
-	    }
-	    else {
-		$y = $pos - $this->img->GetFontHeight() - $this->title_margin - $this->title->margin;
-		$yalign = 'bottom';
-	    }
-
-	    if( $this->title_adjust=="high" )
-		$this->title->Pos($this->img->width-$this->img->right_margin,$y,"right",$yalign);
-	    elseif( $this->title_adjust=="middle" || $this->title_adjust=="center" ) 
-		$this->title->Pos(($this->img->width-$this->img->left_margin-$this->img->right_margin)/2+$this->img->left_margin,$y,"center",$yalign);
-	    elseif($this->title_adjust=="low")
-		$this->title->Pos($this->img->left_margin,$y,"left",$yalign);
-	    else {	
-		JpGraphError::RaiseL(25060,$this->title_adjust);//('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')');
-	    }
-	}
-	elseif( $this->scale->type == "y" ) {
-	    // Add line weight to the height of the axis since
-	    // the x-axis could have a width>1 and we want the axis to fit nicely together.
-	    if( !$this->hide_line ) 
-		$this->img->FilledRectangle($pos-$this->weight+1,$this->img->top_margin,
-					    $pos,$this->img->height-$this->img->bottom_margin+$this->weight-1);
-	    $x=$pos ;
-	    if( $this->title_side == SIDE_LEFT ) {
-		$x -= $this->title_margin;
-		$x -= $this->title->margin;
-		$halign="right";
-	    }
-	    else {
-		$x += $this->title_margin;
-		$x += $this->title->margin;
-		$halign="left";
-	    }
-	    // If the user has manually specified an hor. align
-	    // then we override the automatic settings with this
-	    // specifed setting. Since default is 'left' we compare
-	    // with that. (This means a manually set 'left' align
-	    // will have no effect.)
-	    if( $this->title->halign != 'left' ) 
-		$halign = $this->title->halign;
-	    if( $this->title_adjust=="high" ) 
-		$this->title->Pos($x,$this->img->top_margin,$halign,"top"); 
-	    elseif($this->title_adjust=="middle" || $this->title_adjust=="center")  
-		$this->title->Pos($x,($this->img->height-$this->img->top_margin-$this->img->bottom_margin)/2+$this->img->top_margin,$halign,"center");
-	    elseif($this->title_adjust=="low")
-		$this->title->Pos($x,$this->img->height-$this->img->bottom_margin,$halign,"bottom");
-	    else	
-		JpGraphError::RaiseL(25061,$this->title_adjust);//('Unknown alignment specified for Y-axis title. ('.$this->title_adjust.')');
-		
-	}
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-	if( $aStrokeLabels ) {
-	    if( !$this->hide_labels )
-		$this->StrokeLabels($pos);
-	    $this->title->Stroke($this->img);
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-    // Draw all the tick labels on major tick marks
-    function StrokeLabels($aPos,$aMinor=false,$aAbsLabel=false) {
-
-	$this->img->SetColor($this->label_color);
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$yoff=$this->img->GetFontHeight()/2;
-
-	// Only draw labels at major tick marks
-	$nbr = count($this->scale->ticks->maj_ticks_label);
-
-	// We have the option to not-display the very first mark
-	// (Usefull when the first label might interfere with another
-	// axis.)
-	$i = $this->show_first_label ? 0 : 1 ;
-	if( !$this->show_last_label ) --$nbr;
-	// Now run through all labels making sure we don't overshoot the end
-	// of the scale.	
-	$ncolor=0;
-	if( isset($this->ticks_label_colors) )
-	    $ncolor=count($this->ticks_label_colors);
-	
-	while( $i<$nbr ) {
-	    // $tpos holds the absolute text position for the label
-	    $tpos=$this->scale->ticks->maj_ticklabels_pos[$i];
-
-	    // Note. the $limit is only used for the x axis since we
-	    // might otherwise overshoot if the scale has been centered
-	    // This is due to us "loosing" the last tick mark if we center.
-	    if( $this->scale->type=="x" && $tpos > $this->img->width-$this->img->right_margin+1 ) {
-	    	return; 
-	    }
-	    // we only draw every $label_step label
-	    if( ($i % $this->label_step)==0 ) {
-
-		// Set specific label color if specified
-		if( $ncolor > 0 )
-		    $this->img->SetColor($this->ticks_label_colors[$i % $ncolor]);
-		
-		// If the label has been specified use that and in other case
-		// just label the mark with the actual scale value 
-		$m=$this->scale->ticks->GetMajor();
-				
-		// ticks_label has an entry for each data point and is the array
-		// that holds the labels set by the user. If the user hasn't 
-		// specified any values we use whats in the automatically asigned
-		// labels in the maj_ticks_label
-		if( isset($this->ticks_label[$i*$m]) )
-		    $label=$this->ticks_label[$i*$m];
-		else {
-		    if( $aAbsLabel ) 
-			$label=abs($this->scale->ticks->maj_ticks_label[$i]);
-		    else
-			$label=$this->scale->ticks->maj_ticks_label[$i];
-		    if( $this->scale->textscale && $this->scale->ticks->label_formfunc == '' ) {
-			++$label;
-		    }
-		}
-					
-		//if( $this->hide_zero_label && $label==0.0 ) {
-		//	++$i;
-		//	continue;
-		//}					
-					
-		if( $this->scale->type == "x" ) {
-		    if( $this->labelPos == SIDE_DOWN ) {
-			if( $this->label_angle==0 || $this->label_angle==90 ) {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign('center','top');
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			    
-			}
-			else {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("right","top");
-			    else
-				$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-
-			$this->img->StrokeText($tpos,$aPos+$this->tick_label_margin+1,$label,
-					       $this->label_angle,$this->label_para_align);
-		    }
-		    else {
-			if( $this->label_angle==0 || $this->label_angle==90 ) {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("center","bottom");
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-			else {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("right","bottom");
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-			$this->img->StrokeText($tpos,$aPos-$this->tick_label_margin-1,$label,
-					       $this->label_angle,$this->label_para_align);
-		    }
-		}
-		else {
-		    // scale->type == "y"
-		    //if( $this->label_angle!=0 ) 
-		    //JpGraphError::Raise(" Labels at an angle are not supported on Y-axis");
-		    if( $this->labelPos == SIDE_LEFT ) { // To the left of y-axis					
-			if( $this->label_halign=='' && $this->label_valign=='')	
-			    $this->img->SetTextAlign("right","center");
-			else
-			    $this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			$this->img->StrokeText($aPos-$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align);	
-		    }
-		    else { // To the right of the y-axis
-			if( $this->label_halign=='' && $this->label_valign=='')	
-			    $this->img->SetTextAlign("left","center");
-			else
-			    $this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			$this->img->StrokeText($aPos+$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align);	
-		    }
-		}
-	    }
-	    ++$i;	
-	}								
-    }			
-
-} // Class
-
-//===================================================
-// CLASS Ticks
-// Description: Abstract base class for drawing linear and logarithmic
-// tick marks on axis
-//===================================================
-class Ticks {
-    var $minor_abs_size=3, $major_abs_size=5;
-    var $direction=1; // Should ticks be in(=1) the plot area or outside (=-1)?
-    var $scale;
-    var $is_set=false;
-    var $precision;
-    var $supress_zerolabel=false,$supress_first=false;
-    var $supress_last=false,$supress_tickmarks=false,$supress_minor_tickmarks=false;
-    var $mincolor="",$majcolor="";
-    var $weight=1;
-    var $label_formatstr='';   // C-style format string to use for labels
-    var $label_formfunc='';
-    var $label_dateformatstr='';
-    var $label_usedateformat=FALSE;
-
-
-//---------------
-// CONSTRUCTOR
-    function Ticks(&$aScale) {
-	$this->scale=&$aScale;
-	$this->precision = -1;
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Set format string for automatic labels
-    function SetLabelFormat($aFormatString,$aDate=FALSE) {
-	$this->label_formatstr=$aFormatString;
-	$this->label_usedateformat=$aDate;
-    }
-
-    function SetLabelDateFormat($aFormatString) {
-	$this->label_dateformatstr=$aFormatString;
-    }
-	
-    function SetFormatCallback($aCallbackFuncName) {
-	$this->label_formfunc = $aCallbackFuncName;
-    }
-	
-    // Don't display the first zero label
-    function SupressZeroLabel($aFlag=true) {
-	$this->supress_zerolabel=$aFlag;
-    }
-	
-    // Don't display minor tick marks
-    function SupressMinorTickMarks($aHide=true) {
-	$this->supress_minor_tickmarks=$aHide;
-    }
-	
-    // Don't display major tick marks
-    function SupressTickMarks($aHide=true) {
-	$this->supress_tickmarks=$aHide;
-    }
-	
-    // Hide the first tick mark
-    function SupressFirst($aHide=true) {
-	$this->supress_first=$aHide;
-    }
-	
-    // Hide the last tick mark
-    function SupressLast($aHide=true) {
-	$this->supress_last=$aHide;
-    }
-
-    // Size (in pixels) of minor tick marks
-    function GetMinTickAbsSize() {
-	return $this->minor_abs_size;
-    }
-	
-    // Size (in pixels) of major tick marks
-    function GetMajTickAbsSize() {
-	return $this->major_abs_size;		
-    }
-	
-    function SetSize($aMajSize,$aMinSize=3) {
-	$this->major_abs_size = $aMajSize;		
-	$this->minor_abs_size = $aMinSize;		
-    }
-
-    // Have the ticks been specified
-    function IsSpecified() {
-	return $this->is_set;
-    }
-	
-    // Set the distance between major and minor tick marks
-    function Set($aMaj,$aMin) {
-	// "Virtual method"
-	// Should be implemented by the concrete subclass
-	// if any action is wanted.
-    }
-	
-    // Specify number of decimals in automatic labels
-    // Deprecated from 1.4. Use SetFormatString() instead
-    function SetPrecision($aPrecision) { 	
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(25063);//('Ticks::SetPrecision() is deprecated. Use Ticks::SetLabelFormat() (or Ticks::SetFormatCallback()) instead');
-	$this->precision=$aPrecision;
-    }
-
-    function SetSide($aSide) {
-	$this->direction=$aSide;
-    }
-	
-    // Which side of the axis should the ticks be on
-    function SetDirection($aSide=SIDE_RIGHT) {
-	$this->direction=$aSide;
-    }
-	
-    // Set colors for major and minor tick marks
-    function SetMarkColor($aMajorColor,$aMinorColor="") {
-	$this->SetColor($aMajorColor,$aMinorColor);
-    }
-    
-    function SetColor($aMajorColor,$aMinorColor="") {
-	$this->majcolor=$aMajorColor;
-		
-	// If not specified use same as major
-	if( $aMinorColor=="" ) 
-	    $this->mincolor=$aMajorColor;
-	else
-	    $this->mincolor=$aMinorColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-	
-} // Class
-
-//===================================================
-// CLASS LinearTicks
-// Description: Draw linear ticks on axis
-//===================================================
-class LinearTicks extends Ticks {
-    var $minor_step=1, $major_step=2;
-    var $xlabel_offset=0,$xtick_offset=0;
-    var $label_offset=0; // What offset should the displayed label have
-    // i.e should we display 0,1,2 or 1,2,3,4 or 2,3,4 etc
-    var $text_label_start=0;
-    var $iManualTickPos = NULL, $iManualMinTickPos = NULL, $iManualTickLabels = NULL;
-    var $maj_ticks_pos = array(), $maj_ticklabels_pos = array(), 
-	$ticks_pos = array(), $maj_ticks_label = array();
-
-//---------------
-// CONSTRUCTOR
-    function LinearTicks() {
-	$this->precision = -1;
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-	
-    // Return major step size in world coordinates
-    function GetMajor() {
-	return $this->major_step;
-    }
-	
-    // Return minor step size in world coordinates
-    function GetMinor() {
-	return $this->minor_step;
-    }
-	
-    // Set Minor and Major ticks (in world coordinates)
-    function Set($aMajStep,$aMinStep=false) {
-	if( $aMinStep==false ) 
-	    $aMinStep=$aMajStep;
-    	
-	if( $aMajStep <= 0 || $aMinStep <= 0 ) {
-	    JpGraphError::RaiseL(25064);
-//(" Minor or major step size is 0. Check that you haven't got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem.");
-	}
-		
-	$this->major_step=$aMajStep;
-	$this->minor_step=$aMinStep;
-	$this->is_set = true;
-    }
-
-    function SetMajTickPositions($aMajPos,$aLabels=NULL) {
-	$this->SetTickPositions($aMajPos,NULL,$aLabels);
-    }
-
-    function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) {
-	if( !is_array($aMajPos) || ($aMinPos!==NULL && !is_array($aMinPos)) ) {
-	    JpGraphError::RaiseL(25065);//('Tick positions must be specifued as an array()');
-	    return;
-	}
-	$n=count($aMajPos);
-	if( is_array($aLabels) && (count($aLabels) != $n) ) {
-	    JpGraphError::RaiseL(25066);//('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.');
-	    return;
-	}
-	$this->iManualTickPos = $aMajPos;
-	$this->iManualMinTickPos = $aMinPos;
-	$this->iManualTickLabels = $aLabels;
-    }
-
-    // Specify all the tick positions manually and possible also the exact labels 
-    function _doManualTickPos($aScale) { 
-	$n=count($this->iManualTickPos);
-	$m=count($this->iManualMinTickPos);
-	$doLbl=count($this->iManualTickLabels) > 0;
-	$this->use_manualtickpos=true;
-
-	$this->maj_ticks_pos = array();
-	$this->maj_ticklabels_pos = array();
-	$this->ticks_pos = array();
-
-	// Now loop through the supplied positions and translate them to screen coordinates
-	// and store them in the maj_label_positions
-	$minScale = $aScale->scale[0];
-	$maxScale = $aScale->scale[1];
-	$j=0;
-	for($i=0; $i < $n ; ++$i ) {
-	    // First make sure that the first tick is not lower than the lower scale value
-	    if( !isset($this->iManualTickPos[$i])  || 
-		$this->iManualTickPos[$i] < $minScale  || $this->iManualTickPos[$i] > $maxScale) {
-		continue;
-	    }
-
-
-	    $this->maj_ticks_pos[$j] = $aScale->Translate($this->iManualTickPos[$i]);
-	    $this->maj_ticklabels_pos[$j] = $this->maj_ticks_pos[$j];	
-
-	    // Set the minor tick marks the same as major if not specified
-	    if( $m <= 0 ) {
-		$this->ticks_pos[$j] = $this->maj_ticks_pos[$j];
-	    }
-
-	    if( $doLbl ) { 
-		$this->maj_ticks_label[$j] = $this->iManualTickLabels[$i];
-	    }
-	    else {
-		$this->maj_ticks_label[$j]=$this->_doLabelFormat($this->iManualTickPos[$i],$i,$n);
-	    }
-	    ++$j;
-	}
-
-	// Some sanity check
-	if( count($this->maj_ticks_pos) < 2 ) {
-	    JpGraphError::RaiseL(25067);//('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tickl marks.');
-	}
-
-	// Setup the minor tick marks
-	$j=0;
-	for($i=0; $i < $m; ++$i ) {
-	    if(  empty($this->iManualMinTickPos[$i]) || 
-		 $this->iManualMinTickPos[$i] < $minScale  || $this->iManualMinTickPos[$i] > $maxScale) 
-		continue;
-	    $this->ticks_pos[$j] = $aScale->Translate($this->iManualMinTickPos[$i]);
-	    ++$j;
-	}
-    }
-
-    function _doAutoTickPos($aScale) {
-	$maj_step_abs = $aScale->scale_factor*$this->major_step;		
-	$min_step_abs = $aScale->scale_factor*$this->minor_step;		
-
-	if( $min_step_abs==0 || $maj_step_abs==0 ) {
-	    JpGraphError::RaiseL(25068);//("A plot has an illegal scale. This could for example be that you are trying to use text autoscaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only '-' or 'x')");
-	}
-	// We need to make this an int since comparing it below
-	// with the result from round() can give wrong result, such that
-	// (40 < 40) == TRUE !!!
-	$limit = (int)$aScale->scale_abs[1];	
-
-	if( $aScale->textscale ) {
-	    // This can only be true for a X-scale (horizontal)
-	    // Define ticks for a text scale. This is slightly different from a 
-	    // normal linear type of scale since the position might be adjusted
-	    // and the labels start at on
-	    $label = (float)$aScale->GetMinVal()+$this->text_label_start+$this->label_offset;	
-	    $start_abs=$aScale->scale_factor*$this->text_label_start;
-	    $nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1;	
-	    $x = $aScale->scale_abs[0]+$start_abs+$this->xlabel_offset*$min_step_abs;	
-	    for( $i=0; $label <= $aScale->GetMaxVal()+$this->label_offset; ++$i ) {
-		// Apply format to label
-		$this->maj_ticks_label[$i]=$this->_doLabelFormat($label,$i,$nbrmajticks);
-		$label+=$this->major_step;
-
-		// The x-position of the tick marks can be different from the labels.
-		// Note that we record the tick position (not the label) so that the grid
-		// happen upon tick marks and not labels.
-		$xtick=$aScale->scale_abs[0]+$start_abs+$this->xtick_offset*$min_step_abs+$i*$maj_step_abs;
-		$this->maj_ticks_pos[$i]=$xtick;
-		$this->maj_ticklabels_pos[$i] = round($x);				
-		$x += $maj_step_abs;
-	    }
-	}
-	else {
-	    $label = $aScale->GetMinVal();	
-	    $abs_pos = $aScale->scale_abs[0];
-	    $j=0; $i=0;
-	    $step = round($maj_step_abs/$min_step_abs);
-	    if( $aScale->type == "x" ) {
-		// For a normal linear type of scale the major ticks will always be multiples
-		// of the minor ticks. In order to avoid any rounding issues the major ticks are
-		// defined as every "step" minor ticks and not calculated separately
-		$nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1; 
-		while( round($abs_pos) <= $limit ) {
-		    $this->ticks_pos[] = round($abs_pos);
-		    $this->ticks_label[] = $label;
-		    if( $i % $step == 0 && $j < $nbrmajticks ) {
-			$this->maj_ticks_pos[$j] = round($abs_pos);
-			$this->maj_ticklabels_pos[$j] = round($abs_pos);
-			$this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks);
-			++$j;
-		    }
-		    ++$i;
-		    $abs_pos += $min_step_abs;
-		    $label+=$this->minor_step;
-		}
-	    }
-	    elseif( $aScale->type == "y" ) {
-		$nbrmajticks=floor(($aScale->GetMaxVal()-$aScale->GetMinVal())/$this->major_step)+1;
-		while( round($abs_pos) >= $limit ) {
-		    $this->ticks_pos[$i] = round($abs_pos); 
-		    $this->ticks_label[$i]=$label;
-		    if( $i % $step == 0 && $j < $nbrmajticks) {
-			$this->maj_ticks_pos[$j] = round($abs_pos);
-			$this->maj_ticklabels_pos[$j] = round($abs_pos);
-			$this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks);
-			++$j;
-		    }
-		    ++$i;
-		    $abs_pos += $min_step_abs;
-		    $label += $this->minor_step;
-		}	
-	    }
-	}	
-    }
-
-    function _doLabelFormat($aVal,$aIdx,$aNbrTicks) {
-
-	// If precision hasn't been specified set it to a sensible value
-	if( $this->precision==-1 ) { 
-	    $t = log10($this->minor_step);
-	    if( $t > 0 )
-		$precision = 0;
-	    else
-		$precision = -floor($t);
-	}
-	else
-	    $precision = $this->precision;
-
-	if( $this->label_formfunc != '' ) {
-	    $f=$this->label_formfunc;
-	    $l = call_user_func($f,$aVal);
-	}	
-	elseif( $this->label_formatstr != '' || $this->label_dateformatstr != '' ) {
-	    if( $this->label_usedateformat ) {
-		// Adjust the value to take daylight savings into account
-		if (date("I",$aVal)==1) // DST
-		    $aVal+=3600;
-		$l = date($this->label_formatstr,$aVal);
-		if( $this->label_formatstr == 'W' ) {
-		    // If we use week formatting then add a single 'w' in front of the
-		    // week number to differentiate it from dates
-		    $l = 'w'.$l;
-		}
-	    }
-	    else {
-		if( $this->label_dateformatstr !== '' ) {
-		    // Adjust the value to take daylight savings into account
-		    if (date("I",$aVal)==1) // DST
-			$aVal+=3600;
-		    $l = date($this->label_dateformatstr,$aVal);
-		    if( $this->label_formatstr == 'W' ) {
-			// If we use week formatting then add a single 'w' in front of the
-			// week number to differentiate it from dates
-			$l = 'w'.$l;
-		    }
-		}
-		else
-		    $l = sprintf($this->label_formatstr,$aVal);
-	    }
-	}
-	else {
-	    $l = sprintf('%01.'.$precision.'f',round($aVal,$precision));
-	}
-	
-	if( ($this->supress_zerolabel && $l==0) ||  ($this->supress_first && $aIdx==0) ||
-	    ($this->supress_last  && $aIdx==$aNbrTicks-1) ) {
-	    $l='';
-	}
-	return $l;
-    }
-
-    // Stroke ticks on either X or Y axis
-    function _StrokeTicks(&$aImg,$aScale,$aPos) {
-	$hor = $aScale->type == 'x';
-	$aImg->SetLineWeight($this->weight);	
-
-	// We need to make this an int since comparing it below
-	// with the result from round() can give wrong result, such that
-	// (40 < 40) == TRUE !!!
-	$limit = (int)$aScale->scale_abs[1];
-		
-	// A text scale doesn't have any minor ticks
-	if( !$aScale->textscale ) {
-	    // Stroke minor ticks
-	    $yu = $aPos - $this->direction*$this->GetMinTickAbsSize();
-	    $xr = $aPos + $this->direction*$this->GetMinTickAbsSize();
-	    $n = count($this->ticks_pos);
-	    for($i=0; $i < $n; ++$i ) {
-		if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-		    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);
-		    if( $hor ) {
-			//if( $this->ticks_pos[$i] <= $limit ) 
-			$aImg->Line($this->ticks_pos[$i],$aPos,$this->ticks_pos[$i],$yu); 
-		    }
-		    else {
-			//if( $this->ticks_pos[$i] >= $limit ) 
-			$aImg->Line($aPos,$this->ticks_pos[$i],$xr,$this->ticks_pos[$i]); 
-		    }
-		    if( $this->mincolor!="" ) $aImg->PopColor();
-		}
-	    }
-	}
-
-	// Stroke major ticks
-	$yu = $aPos - $this->direction*$this->GetMajTickAbsSize();
-	$xr = $aPos + $this->direction*$this->GetMajTickAbsSize();
-	$nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1;
-	$n = count($this->maj_ticks_pos);
-	for($i=0; $i < $n ; ++$i ) {
-	    if(!($this->xtick_offset > 0 && $i==$nbrmajticks-1) && !$this->supress_tickmarks) {
-		if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		if( $hor ) {
-		    //if( $this->maj_ticks_pos[$i] <= $limit ) 
-		    $aImg->Line($this->maj_ticks_pos[$i],$aPos,$this->maj_ticks_pos[$i],$yu); 
-		}
-		else {
-		    //if( $this->maj_ticks_pos[$i] >= $limit ) 
-		    $aImg->Line($aPos,$this->maj_ticks_pos[$i],$xr,$this->maj_ticks_pos[$i]); 
-		}
-		if( $this->majcolor!="" ) $aImg->PopColor();
-	    }
-	}
-	
-    }
-
-    // Draw linear ticks
-    function Stroke(&$aImg,$aScale,$aPos) {
-	if( $this->iManualTickPos != NULL ) 
-	    $this->_doManualTickPos($aScale);
-	else 
-	    $this->_doAutoTickPos($aScale);
-	$this->_StrokeTicks($aImg,$aScale,$aPos, $aScale->type == 'x' );
-    }
-
-//---------------
-// PRIVATE METHODS
-    // Spoecify the offset of the displayed tick mark with the tick "space"
-    // Legal values for $o is [0,1] used to adjust where the tick marks and label 
-    // should be positioned within the major tick-size
-    // $lo specifies the label offset and $to specifies the tick offset
-    // this comes in handy for example in bar graphs where we wont no offset for the
-    // tick but have the labels displayed halfway under the bars.
-    function SetXLabelOffset($aLabelOff,$aTickOff=-1) {
-	$this->xlabel_offset=$aLabelOff;
-	if( $aTickOff==-1 )	// Same as label offset
-	    $this->xtick_offset=$aLabelOff;
-	else
-	    $this->xtick_offset=$aTickOff;
-	if( $aLabelOff>0 )
-	    $this->SupressLast();	// The last tick wont fit
-    }
-
-    // Which tick label should we start with?
-    function SetTextLabelStart($aTextLabelOff) {
-	$this->text_label_start=$aTextLabelOff;
-    }
-	
-} // Class
-
-//===================================================
-// CLASS LinearScale
-// Description: Handle linear scaling between screen and world 
-//===================================================
-class LinearScale {
-    var $scale=array(0,0);
-    var $scale_abs=array(0,0);
-    var $scale_factor; // Scale factor between world and screen
-    var $world_size;	// Plot area size in world coordinates
-    var $world_abs_size; // Plot area size in pixels
-    var $off; // Offset between image edge and plot area
-    var $type; // is this x or y scale ?
-    var $ticks=null; // Store ticks
-    var $text_scale_off = 0;
-    var $autoscale_min=false; // Forced minimum value, auto determine max
-    var $autoscale_max=false; // Forced maximum value, auto determine min
-    var $gracetop=0,$gracebottom=0;
-    var $intscale=false; // Restrict autoscale to integers
-    var $textscale=false; // Just a flag to let the Plot class find out if
-    // we are a textscale or not. This is a cludge since
-    // this ionformatyion is availabale in Graph::axtype but
-    // we don't have access to the graph object in the Plots
-    // stroke method. So we let graph store the status here
-    // when the linear scale is created. A real cludge...
-    var $auto_ticks=false; // When using manual scale should the ticks be automatically set?
-    var $name = 'lin';
-//---------------
-// CONSTRUCTOR
-    function LinearScale($aMin=0,$aMax=0,$aType="y") {
-	assert($aType=="x" || $aType=="y" );
-	assert($aMin<=$aMax);
-		
-	$this->type=$aType;
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;	
-	$this->ticks = new LinearTicks();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Check if scale is set or if we should autoscale
-    // We should do this is either scale or ticks has not been set
-    function IsSpecified() {
-	if( $this->GetMinVal()==$this->GetMaxVal() ) {		// Scale not set
-	    return false;
-	}
-	return true;
-    }
-	
-    // Set the minimum data value when the autoscaling is used. 
-    // Usefull if you want a fix minimum (like 0) but have an
-    // automatic maximum
-    function SetAutoMin($aMin) {
-	$this->autoscale_min=$aMin;
-    }
-
-    // Set the minimum data value when the autoscaling is used. 
-    // Usefull if you want a fix minimum (like 0) but have an
-    // automatic maximum
-    function SetAutoMax($aMax) {
-	$this->autoscale_max=$aMax;
-    }
-
-    // If the user manually specifies a scale should the ticks
-    // still be set automatically?
-    function SetAutoTicks($aFlag=true) {
-	$this->auto_ticks = $aFlag;
-    }
-
-    // Specify scale "grace" value (top and bottom)
-    function SetGrace($aGraceTop,$aGraceBottom=0) {
-	if( $aGraceTop<0 || $aGraceBottom < 0  )
-	    JpGraphError::RaiseL(25069);//(" Grace must be larger then 0");
-	$this->gracetop=$aGraceTop;
-	$this->gracebottom=$aGraceBottom;
-    }
-	
-    // Get the minimum value in the scale
-    function GetMinVal() {
-	return $this->scale[0];
-    }
-	
-    // get maximum value for scale
-    function GetMaxVal() {
-	return $this->scale[1];
-    }
-		
-    // Specify a new min/max value for sclae	
-    function Update(&$aImg,$aMin,$aMax) {
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;		
-	$this->InitConstants($aImg);					
-    }
-	
-    // Translate between world and screen
-    function Translate($aCoord) {
-	if( !is_numeric($aCoord) ) {
-	    if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x' ) 
-		JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.');
-	    return 0;
-	}
-	else {
-	    return $this->off + ($aCoord - $this->scale[0])*$this->scale_factor;
-	}
-    }
-	
-    // Relative translate (don't include offset) usefull when we just want
-    // to know the relative position (in pixels) on the axis
-    function RelTranslate($aCoord) {
-	if( !is_numeric($aCoord) ) {
-	    if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x'  ) 
-		JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.');
-	    return 0;
-	}
-	else { 
-	    return ($aCoord - $this->scale[0]) * $this->scale_factor; 
-	}
-    }
-	
-    // Restrict autoscaling to only use integers
-    function SetIntScale($aIntScale=true) {
-	$this->intscale=$aIntScale;
-    }
-	
-    // Calculate an integer autoscale
-    function IntAutoScale(&$img,$min,$max,$maxsteps,$majend=true) {
-	// Make sure limits are integers
-	$min=floor($min);
-	$max=ceil($max);
-	if( abs($min-$max)==0 ) {
-	    --$min; ++$max;
-	}
-	$maxsteps = floor($maxsteps);
-		
-	$gracetop=round(($this->gracetop/100.0)*abs($max-$min));
-	$gracebottom=round(($this->gracebottom/100.0)*abs($max-$min));
-	if( is_numeric($this->autoscale_min) ) {
-	    $min = ceil($this->autoscale_min);
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.');
-	    }
-	}
-
-	if( is_numeric($this->autoscale_max) ) {
-	    $max = ceil($this->autoscale_max);
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.');
-	    }
-	}
-
-	if( abs($min-$max ) == 0 ) {
-	    ++$max;
-	    --$min;
-	}
-			
-	$min -= $gracebottom;
-	$max += $gracetop;		
-
-	// First get tickmarks as multiples of 1, 10, ...	
-	if( $majend ) {
-	    list($num1steps,$adj1min,$adj1max,$maj1step) = 
-		$this->IntCalcTicks($maxsteps,$min,$max,1);
-	}
-	else {
-	    $adj1min = $min;
-	    $adj1max = $max;
-	    list($num1steps,$maj1step) = 
-		$this->IntCalcTicksFreeze($maxsteps,$min,$max,1);
-	}
-
-	if( abs($min-$max) > 2 ) {
-	    // Then get tick marks as 2:s 2, 20, ...
-	    if( $majend ) {
-		list($num2steps,$adj2min,$adj2max,$maj2step) = 
-		    $this->IntCalcTicks($maxsteps,$min,$max,5);
-	    }
-	    else {
-		$adj2min = $min;
-		$adj2max = $max;
-		list($num2steps,$maj2step) = 
-		    $this->IntCalcTicksFreeze($maxsteps,$min,$max,5);
-	    }
-	}
-	else {
-	    $num2steps = 10000;	// Dummy high value so we don't choose this
-	}
-	
-	if( abs($min-$max) > 5 ) {	
-	    // Then get tickmarks as 5:s 5, 50, 500, ...
-	    if( $majend ) {
-		list($num5steps,$adj5min,$adj5max,$maj5step) = 
-		    $this->IntCalcTicks($maxsteps,$min,$max,2);
-	    }
-	    else {
-		$adj5min = $min;
-		$adj5max = $max;
-		list($num5steps,$maj5step) = 
-		    $this->IntCalcTicksFreeze($maxsteps,$min,$max,2);
-	    }
-	}
-	else {
-	    $num5steps = 10000;	// Dummy high value so we don't choose this		
-	}
-	
-	// Check to see whichof 1:s, 2:s or 5:s fit better with
-	// the requested number of major ticks		
-	$match1=abs($num1steps-$maxsteps);		
-	$match2=abs($num2steps-$maxsteps);
-	if( !empty($maj5step) && $maj5step > 1 )
-	    $match5=abs($num5steps-$maxsteps);
-	else
-	    $match5=10000; 	// Dummy high value 
-		
-	// Compare these three values and see which is the closest match
-	// We use a 0.6 weight to gravitate towards multiple of 5:s 
-	if( $match1 < $match2 ) {
-	    if( $match1 < $match5 )
-		$r=1;			
-	    else 
-		$r=3;
-	}
-	else {
-	    if( $match2 < $match5 )
-		$r=2;			
-	    else 
-		$r=3;		
-	}	
-	// Minsteps are always the same as maxsteps for integer scale
-	switch( $r ) {
-	    case 1:
-		$this->ticks->Set($maj1step,$maj1step);
-		$this->Update($img,$adj1min,$adj1max);
-		break;			
-	    case 2:
-		$this->ticks->Set($maj2step,$maj2step);
-		$this->Update($img,$adj2min,$adj2max);		
-		break;									
-	    case 3:
-		$this->ticks->Set($maj5step,$maj5step);		
-		$this->Update($img,$adj5min,$adj5max);
-		break;	
-	    default:
-		JpGraphError::RaiseL(25073,$r);//('Internal error. Integer scale algorithm comparison out of bound (r=$r)');
-	}		
-    }
-	
-	
-    // Calculate autoscale. Used if user hasn't given a scale and ticks
-    // $maxsteps is the maximum number of major tickmarks allowed.
-    function AutoScale(&$img,$min,$max,$maxsteps,$majend=true) {
-	if( $this->intscale ) {	
-	    $this->IntAutoScale($img,$min,$max,$maxsteps,$majend);
-	    return;
-	}
-	if( abs($min-$max) < 0.00001 ) {
-	    // We need some difference to be able to autoscale
-	    // make it 5% above and 5% below value
-	    if( $min==0 && $max==0 ) {		// Special case
-		$min=-1; $max=1;
-	    }
-	    else {
-		$delta = (abs($max)+abs($min))*0.005;
-		$min -= $delta;
-		$max += $delta;
-	    }
-	}
-		
-	$gracetop=($this->gracetop/100.0)*abs($max-$min);
-	$gracebottom=($this->gracebottom/100.0)*abs($max-$min);
-	if( is_numeric($this->autoscale_min) ) {
-	    $min = $this->autoscale_min;
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.');
-	    }
-	    if( abs($min-$max ) < 0.00001 )
-		$max *= 1.2;
-	}
-
-	if( is_numeric($this->autoscale_max) ) {
-	    $max = $this->autoscale_max;
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.');
-	    }
-	    if( abs($min-$max ) < 0.00001 )
-		$min *= 0.8;
-	}
-
-	
-	$min -= $gracebottom;
-	$max += $gracetop;
-
-	// First get tickmarks as multiples of 0.1, 1, 10, ...	
-	if( $majend ) {
-	    list($num1steps,$adj1min,$adj1max,$min1step,$maj1step) = 
-		$this->CalcTicks($maxsteps,$min,$max,1,2);
-	}
-	else {
-	    $adj1min=$min;
-	    $adj1max=$max;
-	    list($num1steps,$min1step,$maj1step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,1,2,false);
-	}
-		
-	// Then get tick marks as 2:s 0.2, 2, 20, ...
-	if( $majend ) {
-	    list($num2steps,$adj2min,$adj2max,$min2step,$maj2step) = 
-		$this->CalcTicks($maxsteps,$min,$max,5,2);
-	}
-	else {
-	    $adj2min=$min;
-	    $adj2max=$max;
-	    list($num2steps,$min2step,$maj2step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,5,2,false);
-	}
-		
-	// Then get tickmarks as 5:s 0.05, 0.5, 5, 50, ...
-	if( $majend ) {
-	    list($num5steps,$adj5min,$adj5max,$min5step,$maj5step) = 
-		$this->CalcTicks($maxsteps,$min,$max,2,5);		
-	}
-	else {
-	    $adj5min=$min;
-	    $adj5max=$max;
-	    list($num5steps,$min5step,$maj5step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,2,5,false);
-	}
-
-	// Check to see whichof 1:s, 2:s or 5:s fit better with
-	// the requested number of major ticks		
-	$match1=abs($num1steps-$maxsteps);		
-	$match2=abs($num2steps-$maxsteps);
-	$match5=abs($num5steps-$maxsteps);
-	// Compare these three values and see which is the closest match
-	// We use a 0.8 weight to gravitate towards multiple of 5:s 
-	$r=$this->MatchMin3($match1,$match2,$match5,0.8);
-	switch( $r ) {
-	    case 1:
-		$this->Update($img,$adj1min,$adj1max);
-		$this->ticks->Set($maj1step,$min1step);
-		break;			
-	    case 2:
-		$this->Update($img,$adj2min,$adj2max);		
-		$this->ticks->Set($maj2step,$min2step);
-		break;									
-	    case 3:
-		$this->Update($img,$adj5min,$adj5max);
-		$this->ticks->Set($maj5step,$min5step);		
-		break;			
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    // This method recalculates all constants that are depending on the
-    // margins in the image. If the margins in the image are changed
-    // this method should be called for every scale that is registred with
-    // that image. Should really be installed as an observer of that image.
-    function InitConstants(&$img) {
-	if( $this->type=="x" ) {
-	    $this->world_abs_size=$img->width - $img->left_margin - $img->right_margin;
-	    $this->off=$img->left_margin;
-	    $this->scale_factor = 0;
-	    if( $this->world_size > 0 )
-		$this->scale_factor=$this->world_abs_size/($this->world_size*1.0);
-	}
-	else { // y scale
-	    $this->world_abs_size=$img->height - $img->top_margin - $img->bottom_margin; 
-	    $this->off=$img->top_margin+$this->world_abs_size;			
-	    $this->scale_factor = 0;			
-	    if( $this->world_size > 0 ) {
-		$this->scale_factor=-$this->world_abs_size/($this->world_size*1.0);	
-	    }
-	}
-	$size = $this->world_size * $this->scale_factor;
-	$this->scale_abs=array($this->off,$this->off + $size);	
-    }
-	
-    // Initialize the conversion constants for this scale
-    // This tries to pre-calculate as much as possible to speed up the
-    // actual conversion (with Translate()) later on
-    // $start	=scale start in absolute pixels (for x-scale this is an y-position
-    //				 and for an y-scale this is an x-position
-    // $len 		=absolute length in pixels of scale 			
-    function SetConstants($aStart,$aLen) {
-	$this->world_abs_size=$aLen;
-	$this->off=$aStart;
-		
-	if( $this->world_size<=0 ) {
-	    // This should never ever happen !!
-	    JpGraphError::RaiseL(25074);
-//("You have unfortunately stumbled upon a bug in JpGraph. It seems like the scale range is ".$this->world_size." [for ".$this->type." scale] <br> Please report Bug #01 to jpgraph@aditus.nu and include the script that gave this error. This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the autoscaling to fail.");
-
-	}
-		
-	// scale_factor = number of pixels per world unit
-	$this->scale_factor=$this->world_abs_size/($this->world_size*1.0);
-		
-	// scale_abs = start and end points of scale in absolute pixels
-	$this->scale_abs=array($this->off,$this->off+$this->world_size*$this->scale_factor);		
-    }
-	
-	
-    // Calculate number of ticks steps with a specific division
-    // $a is the divisor of 10**x to generate the first maj tick intervall
-    // $a=1, $b=2 give major ticks with multiple of 10, ...,0.1,1,10,...
-    // $a=5, $b=2 give major ticks with multiple of 2:s ...,0.2,2,20,...
-    // $a=2, $b=5 give major ticks with multiple of 5:s ...,0.5,5,50,...
-    // We return a vector of
-    // 	[$numsteps,$adjmin,$adjmax,$minstep,$majstep]
-    // If $majend==true then the first and last marks on the axis will be major
-    // labeled tick marks otherwise it will be adjusted to the closest min tick mark
-    function CalcTicks($maxsteps,$min,$max,$a,$b,$majend=true) {
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    $ld=0;
-	else
-	    $ld=floor(log10($diff));
-
-	// Gravitate min towards zero if we are close		
-	if( $min>0 && $min < pow(10,$ld) ) $min=0;
-		
-	//$majstep=pow(10,$ld-1)/$a; 
-	$majstep=pow(10,$ld)/$a; 
-	$minstep=$majstep/$b;
-	
-	$adjmax=ceil($max/$minstep)*$minstep;
-	$adjmin=floor($min/$minstep)*$minstep;	
-	$adjdiff = $adjmax-$adjmin;
-	$numsteps=$adjdiff/$majstep; 
-	
-	while( $numsteps>$maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=$adjdiff/$majstep;
-	    ++$ld;
-	}
-
-	$minstep=$majstep/$b;
-	$adjmin=floor($min/$minstep)*$minstep;	
-	$adjdiff = $adjmax-$adjmin;		
-	if( $majend ) {
-	    $adjmin = floor($min/$majstep)*$majstep;	
-	    $adjdiff = $adjmax-$adjmin;		
-	    $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin;
-	}
-	else
-	    $adjmax=ceil($max/$minstep)*$minstep;
-
-	return array($numsteps,$adjmin,$adjmax,$minstep,$majstep);
-    }
-
-    function CalcTicksFreeze($maxsteps,$min,$max,$a,$b) {
-	// Same as CalcTicks but don't adjust min/max values
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    $ld=0;
-	else
-	    $ld=floor(log10($diff));
-
-	//$majstep=pow(10,$ld-1)/$a; 
-	$majstep=pow(10,$ld)/$a; 
-	$minstep=$majstep/$b;
-	$numsteps=floor($diff/$majstep); 
-	
-	while( $numsteps > $maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=floor($diff/$majstep);
-	    ++$ld;
-	}
-	$minstep=$majstep/$b;
-	return array($numsteps,$minstep,$majstep);
-    }
-
-	
-    function IntCalcTicks($maxsteps,$min,$max,$a,$majend=true) {
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.');
-	else
-	    $ld=floor(log10($diff));
-		
-	// Gravitate min towards zero if we are close		
-	if( $min>0 && $min < pow(10,$ld) ) $min=0;
-		
-	if( $ld == 0 ) $ld=1;
-	
-	if( $a == 1 ) 
-	    $majstep = 1;
-	else
-	    $majstep=pow(10,$ld)/$a; 
-	$adjmax=ceil($max/$majstep)*$majstep;
-
-	$adjmin=floor($min/$majstep)*$majstep;	
-	$adjdiff = $adjmax-$adjmin;
-	$numsteps=$adjdiff/$majstep; 
-	while( $numsteps>$maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=$adjdiff/$majstep;
-	    ++$ld;
-	}
-		
-	$adjmin=floor($min/$majstep)*$majstep;	
-	$adjdiff = $adjmax-$adjmin;		
-	if( $majend ) {
-	    $adjmin = floor($min/$majstep)*$majstep;	
-	    $adjdiff = $adjmax-$adjmin;		
-	    $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin;
-	}
-	else
-	    $adjmax=ceil($max/$majstep)*$majstep;
-			
-	return array($numsteps,$adjmin,$adjmax,$majstep);		
-    }
-
-
-    function IntCalcTicksFreeze($maxsteps,$min,$max,$a) {
-	// Same as IntCalcTick but don't change min/max values
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.');
-	else
-	    $ld=floor(log10($diff));
-		
-	if( $ld == 0 ) $ld=1;
-	
-	if( $a == 1 ) 
-	    $majstep = 1;
-	else
-	    $majstep=pow(10,$ld)/$a; 
-
-	$numsteps=floor($diff/$majstep); 
-	while( $numsteps > $maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=floor($diff/$majstep);
-	    ++$ld;
-	}
-					
-	return array($numsteps,$majstep);		
-    }
-
-
-	
-    // Determine the minimum of three values witha  weight for last value
-    function MatchMin3($a,$b,$c,$weight) {
-	if( $a < $b ) {
-	    if( $a < ($c*$weight) ) 
-		return 1; // $a smallest
-	    else 
-		return 3; // $c smallest
-	}
-	elseif( $b < ($c*$weight) ) 
-	    return 2; // $b smallest
-	return 3; // $c smallest
-    }
-} // Class
-//===================================================
-// CLASS ImgStreamCache
-// Description: Handle caching of graphs to files
-//===================================================
-class ImgStreamCache {
-    var $cache_dir;
-    var $img=null;
-    var $timeout=0; 	// Infinite timeout
-    //---------------
-    // CONSTRUCTOR
-    function ImgStreamCache(&$aImg, $aCacheDir=CACHE_DIR) {
-	$this->img = &$aImg;
-	$this->cache_dir = $aCacheDir;
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Specify a timeout (in minutes) for the file. If the file is older then the
-    // timeout value it will be overwritten with a newer version.
-    // If timeout is set to 0 this is the same as infinite large timeout and if
-    // timeout is set to -1 this is the same as infinite small timeout
-    function SetTimeout($aTimeout) {
-	$this->timeout=$aTimeout;	
-    }
-	
-    // Output image to browser and also write it to the cache
-    function PutAndStream(&$aImage,$aCacheFileName,$aInline,$aStrokeFileName) {
-	// Some debugging code to brand the image with numbe of colors
-	// used
-	GLOBAL $gJpgBrandTiming;
-	
-	if( $gJpgBrandTiming ) {
-	    global $tim;
-	    $t=$tim->Pop()/1000.0;
-	    $c=$aImage->SetColor("black");
-	    $t=sprintf(BRAND_TIME_FORMAT,round($t,3));
-	    imagestring($this->img->img,2,5,$this->img->height-20,$t,$c);			
-	}
-
-	// Check if we should stroke the image to an arbitrary file
-	if( _FORCE_IMGTOFILE ) {
-	    $aStrokeFileName = _FORCE_IMGDIR.GenImgName();
-	}
-
-	if( $aStrokeFileName!="" ) {
-	    if( $aStrokeFileName == "auto" )
-		$aStrokeFileName = GenImgName();
-	    if( file_exists($aStrokeFileName) ) {
-		// Delete the old file
-		if( !@unlink($aStrokeFileName) )
-		    JpGraphError::RaiseL(25111,$aStrokeFileName);//(" Can't delete cached image $aStrokeFileName. Permission problem?");
-	    }
-	    $aImage->Stream($aStrokeFileName);
-	    return;
-	}
-
-	if( $aCacheFileName != "" && USE_CACHE) {
-
-	    $aCacheFileName = $this->cache_dir . $aCacheFileName;
-	    if( file_exists($aCacheFileName) ) {
-		if( !$aInline ) {
-		    // If we are generating image off-line (just writing to the cache)
-		    // and the file exists and is still valid (no timeout)
-		    // then do nothing, just return.
-		    $diff=time()-filemtime($aCacheFileName);
-		    if( $diff < 0 )
-			JpGraphError::RaiseL(25112,$aCacheFileName);//(" Cached imagefile ($aCacheFileName) has file date in the future!!");
-		    if( $this->timeout>0 && ($diff <= $this->timeout*60) ) 
-			return;		
-		}			
-		if( !@unlink($aCacheFileName) )
-		    JpGraphError::RaiseL(25113,$aStrokeFileName);//(" Can't delete cached image $aStrokeFileName. Permission problem?");
-		$aImage->Stream($aCacheFileName);	
-	    }
-	    else {
-		$this->MakeDirs(dirname($aCacheFileName));
-		if( !is_writeable(dirname($aCacheFileName)) ) {
-		    JpGraphError::RaiseL(25114,$aCacheFileName);//('PHP has not enough permissions to write to the cache file '.$aCacheFileName.'. Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.');
-		}
-		$aImage->Stream($aCacheFileName);
-	    }
-			
-	    $res=true;
-	    // Set group to specified
-	    if( CACHE_FILE_GROUP != "" )
-		$res = @chgrp($aCacheFileName,CACHE_FILE_GROUP);
-	    if( CACHE_FILE_MOD != "" )
-		$res = @chmod($aCacheFileName,CACHE_FILE_MOD);
-	    if( !$res )
-		JpGraphError::RaiseL(25115,$aStrokeFileName);//(" Can't set permission for cached image $aStrokeFileName. Permission problem?");
-			
-	    $aImage->Destroy();
-	    if( $aInline ) {
-		if ($fh = @fopen($aCacheFileName, "rb") ) {
-		    $this->img->Headers();
-		    fpassthru($fh);
-		    return;
-		}
-		else
-		    JpGraphError::RaiseL(25116,$aFile);//(" Cant open file from cache [$aFile]"); 
-	    }
-	}
-	elseif( $aInline ) {
-	    $this->img->Headers();	 		
-	    $aImage->Stream();	
-	    return;
-	}
-    }
-	
-    // Check if a given image is in cache and in that case
-    // pass it directly on to web browser. Return false if the
-    // image file doesn't exist or exists but is to old
-    function GetAndStream($aCacheFileName) {
-	$aCacheFileName = $this->cache_dir.$aCacheFileName;		 
-	if ( USE_CACHE && file_exists($aCacheFileName) && $this->timeout>=0 ) {
-	    $diff=time()-filemtime($aCacheFileName);
-	    if( $this->timeout>0 && ($diff > $this->timeout*60) ) {
-		return false;		
-	    }
-	    else {
-		if ($fh = @fopen($aCacheFileName, "rb")) {
-		    $this->img->Headers();
-		    fpassthru($fh);
-		    return true;
-		}
-		else
-		    JpGraphError::RaiseL(25117,$aCacheFileName);//(" Can't open cached image \"$aCacheFileName\" for reading.");
-	    }
-	} 
-	return false;
-    }
-	
-    //---------------
-    // PRIVATE METHODS	
-    // Create all necessary directories in a path
-    function MakeDirs($aFile) {
-	$dirs = array();
-	while ( !(file_exists($aFile)) ) {
-	    $dirs[] = $aFile;
-	    $aFile = dirname($aFile);
-	}
-	for ($i = sizeof($dirs)-1; $i>=0; $i--) {
-	    if(! @mkdir($dirs[$i],0777) )
-		JpGraphError::RaiseL(25118,$aFile);//(" Can't create directory $aFile. Make sure PHP has write permission to this directory.");
-	    // We also specify mode here after we have changed group. 
-	    // This is necessary if Apache user doesn't belong the
-	    // default group and hence can't specify group permission
-	    // in the previous mkdir() call
-	    if( CACHE_FILE_GROUP != "" ) {
-		$res=true;
-		$res =@chgrp($dirs[$i],CACHE_FILE_GROUP);
-		$res &= @chmod($dirs[$i],0777);
-		if( !$res )
-		    JpGraphError::RaiseL(25119,$aFile);//(" Can't set permissions for $aFile. Permission problems?");
-	    }
-	}
-	return true;
-    }	
-} // CLASS Cache
-	
-//===================================================
-// CLASS Legend
-// Description: Responsible for drawing the box containing
-// all the legend text for the graph
-//===================================================
-DEFINE('_DEFAULT_LPM_SIZE',8);
-class Legend {
-    var $color=array(0,0,0); // Default fram color
-    var $fill_color=array(235,235,235); // Default fill color
-    var $shadow=true; // Shadow around legend "box"
-    var $shadow_color='gray';
-    var $txtcol=array();
-    var $mark_abs_hsize=_DEFAULT_LPM_SIZE, $mark_abs_vsize=_DEFAULT_LPM_SIZE;
-    var $xmargin=10,$ymargin=3,$shadow_width=2;
-    var $xlmargin=2, $ylmargin='';
-    var $xpos=0.05, $ypos=0.15, $xabspos=-1, $yabspos=-1;
-	var $halign="right", $valign="top";
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10;
-    var $font_color='black';
-    var $hide=false,$layout_n=1;
-    var $weight=1,$frameweight=1;
-    var $csimareas='';
-    var $reverse = false ;
-//---------------
-// CONSTRUCTOR
-    function Legend() {
-	// Empty
-    }
-//---------------
-// PUBLIC METHODS	
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-	
-    function SetHColMargin($aXMarg) {
-	$this->xmargin = $aXMarg;
-    }
-
-    function SetVColMargin($aSpacing) {
-	$this->ymargin = $aSpacing ;
-    }
-
-    function SetLeftMargin($aXMarg) {
-	$this->xlmargin = $aXMarg;
-    }
-
-    // Synonym
-    function SetLineSpacing($aSpacing) {
-	$this->ymargin = $aSpacing ;
-    }
-
-    function SetShadow($aShow='gray',$aWidth=2) {
-	if( is_string($aShow) ) {
-	    $this->shadow_color = $aShow;
-	    $this->shadow=true;
-	}
-	else
-	    $this->shadow=$aShow;
-	$this->shadow_width=$aWidth;
-    }
-
-    function SetMarkAbsSize($aSize) {
-	$this->mark_abs_vsize = $aSize ;
-	$this->mark_abs_hsize = $aSize ;
-    }
-
-    function SetMarkAbsVSize($aSize) {
-	$this->mark_abs_vsize = $aSize ;
-    }
-
-    function SetMarkAbsHSize($aSize) {
-	$this->mark_abs_hsize = $aSize ;
-    }
-
-    function SetLineWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    function SetFrameWeight($aWeight) {
-	$this->frameweight = $aWeight;
-    }
-	
-    function SetLayout($aDirection=LEGEND_VERT) {
-	$this->layout_n = $aDirection==LEGEND_VERT ? 1 : 99 ;
-    }
-	
-    function SetColumns($aCols) {
-	$this->layout_n = $aCols ;
-    }
-
-    function SetReverse($f=true) {
-	$this->reverse = $f ;
-    }
-
-    // Set color on frame around box
-    function SetColor($aFontColor,$aColor='black') {
-	$this->font_color=$aFontColor;
-	$this->color=$aColor;
-    }
-	
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family = $aFamily;
-	$this->font_style = $aStyle;
-	$this->font_size = $aSize;
-    }
-	
-    function SetPos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	$this->Pos($aX,$aY,$aHAlign,$aVAlign);
-    }
-
-    function SetAbsPos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	$this->xabspos=$aX;
-	$this->yabspos=$aY;
-	$this->halign=$aHAlign;
-	$this->valign=$aVAlign;
-    }
-
-
-    function Pos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	if( !($aX<1 && $aY<1) )
-	    JpGraphError::RaiseL(25120);//(" Position for legend must be given as percentage in range 0-1");
-	$this->xpos=$aX;
-	$this->ypos=$aY;
-	$this->halign=$aHAlign;
-	$this->valign=$aVAlign;
-    }
-
-    function SetFillColor($aColor) {
-	$this->fill_color=$aColor;
-    }
-	
-    function Add($aTxt,$aColor,$aPlotmark="",$aLinestyle=0,$csimtarget="",$csimalt="") {
-	$this->txtcol[]=array($aTxt,$aColor,$aPlotmark,$aLinestyle,$csimtarget,$csimalt);
-    }
-
-    function GetCSIMAreas() {
-	return $this->csimareas;
-    }
-	
-    function Stroke(&$aImg) {
-	// Constant
-	$fillBoxFrameWeight=1;
-
-	if( $this->hide ) return;
-
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);		
-
-	if( $this->reverse ) {
-	    $this->txtcol = array_reverse($this->txtcol);
-	}
-
-	$n=count($this->txtcol);
-	if( $n == 0 ) return;
-
-	// Find out the max width and height of each column to be able
-        // to size the legend box.
-	$numcolumns = ($n > $this->layout_n ? $this->layout_n : $n);
-	for( $i=0; $i < $numcolumns; ++$i ) {
-	    $colwidth[$i] = $aImg->GetTextWidth($this->txtcol[$i][0]) +
-		            2*$this->xmargin + 2*$this->mark_abs_hsize;
-	    $colheight[$i] = 0;
-	}
-
-	// Find our maximum height in each row
-	$rows = 0 ; $rowheight[0] = 0;
-	for( $i=0; $i < $n; ++$i ) {
-	    $h = max($this->mark_abs_vsize,$aImg->GetTextHeight($this->txtcol[$i][0]))+$this->ymargin;
-	    if( $i % $numcolumns == 0 ) {
-		$rows++;
-		$rowheight[$rows-1] = 0;
-	    }
-	    $rowheight[$rows-1] = max($rowheight[$rows-1],$h);
-	}
-
-	$abs_height = 0;
-	for( $i=0; $i < $rows; ++$i ) {
-	    $abs_height += $rowheight[$i] ;
-	}
-
-	// Make sure that the height is at least as high as mark size + ymargin
-	$abs_height = max($abs_height,$this->mark_abs_vsize);
-
-	// We add 3 extra pixels height to compensate for the difficult in
-	// calculating font height
-	$abs_height += $this->ymargin+3; 
-						
-	// Find out the maximum width in each column
-	for( $i=$numcolumns; $i < $n; ++$i ) {
-	    $colwidth[$i % $numcolumns] = max(
-		$aImg->GetTextWidth($this->txtcol[$i][0])+2*$this->xmargin+2*$this->mark_abs_hsize,$colwidth[$i % $numcolumns]);
-	}
-
-	// Get the total width
-	$mtw = 0;
-	for( $i=0; $i < $numcolumns; ++$i ) {
-	    $mtw += $colwidth[$i] ;
-	}
-
-	// Find out maximum width we need for legend box
-	$abs_width = $mtw+$this->xlmargin;
-
-	if( $this->xabspos === -1  && $this->yabspos === -1 ) {
-	    $this->xabspos = $this->xpos*$aImg->width ;
-	    $this->yabspos = $this->ypos*$aImg->height ;
-	}
-
-	// Positioning of the legend box
-	if( $this->halign=="left" )
-	    $xp = $this->xabspos; 
-	elseif( $this->halign=="center" )
-	    $xp = $this->xabspos - $abs_width/2; 
-	else  
-	    $xp = $aImg->width - $this->xabspos - $abs_width;
-
-	$yp=$this->yabspos;
-	if( $this->valign=="center" )
-	    $yp-=$abs_height/2;
-	elseif( $this->valign=="bottom" )
-	    $yp-=$abs_height;
-			
-	// Stroke legend box
-	$aImg->SetColor($this->color);	
-	$aImg->SetLineWeight($this->frameweight);
-	$aImg->SetLineStyle('solid');
-
-	if( $this->shadow )
-	    $aImg->ShadowRectangle($xp,$yp,$xp+$abs_width+$this->shadow_width,
-				   $yp+$abs_height+$this->shadow_width,
-				   $this->fill_color,$this->shadow_width,$this->shadow_color);
-	else {
-	    $aImg->SetColor($this->fill_color);				
-	    $aImg->FilledRectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height);
-	    $aImg->SetColor($this->color);							
-	    $aImg->Rectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height);
-	}
-
-	// x1,y1 is the position for the legend mark
-	$x1=$xp+$this->mark_abs_hsize+$this->xlmargin;
-	$y1=$yp + $this->ymargin;		
-	
-	$f2 =  round($aImg->GetTextHeight('X')/2);
-
-	$grad = new Gradient($aImg);
-	$patternFactory = null;
-
-	// Now stroke each legend in turn
-	// Each plot has added the following information to  the legend
-	// p[0] = Legend text
-	// p[1] = Color, 
-	// p[2] = For markers a reference to the PlotMark object
-	// p[3] = For lines the line style, for gradient the negative gradient style
-	// p[4] = CSIM target
-	// p[5] = CSIM Alt text
-	$i = 1 ; $row = 0;
-	foreach($this->txtcol as $p) {
-	 
-	    // STROKE DEBUG BOX
-	    if( _JPG_DEBUG ) {
-	        $aImg->SetLineWeight(1);
-	        $aImg->SetColor('red');
-	        $aImg->SetLineStyle('solid');
-	        $aImg->Rectangle($xp,$y1,$xp+$abs_width,$y1+$rowheight[$row]);
-	    }
-
-	    $aImg->SetLineWeight($this->weight);
-	    $x1 = round($x1); $y1=round($y1);
-	    if ( $p[2] && $p[2]->GetType() > -1 ) {
-		// Make a plot mark legend
-		$aImg->SetColor($p[1]);
-		if( is_string($p[3]) || $p[3]>0 ) {
-		    $aImg->SetLineStyle($p[3]);
-		    $aImg->StyleLine($x1-$this->mark_abs_hsize,$y1+$f2,$x1+$this->mark_abs_hsize,$y1+$f2);
-		}
-		// Stroke a mark with the standard size
-		// (As long as it is not an image mark )
-		if( $p[2]->GetType() != MARK_IMG ) {
-		    $p[2]->iFormatCallback = '';
-
-		    // Since size for circles is specified as the radius
-		    // this means that we must half the size to make the total
-		    // width behave as the other marks
-		    if( $p[2]->GetType() == MARK_FILLEDCIRCLE || $p[2]->GetType() == MARK_CIRCLE ) {
-		        $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize)/2);
-			$p[2]->Stroke($aImg,$x1,$y1+$f2);
-		    }
-		    else {
-		        $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize));
-			$p[2]->Stroke($aImg,$x1,$y1+$f2);
-		    }
-		}
-	    } 
-	    elseif ( $p[2] && (is_string($p[3]) || $p[3]>0 ) ) {
-		// Draw a styled line
-		$aImg->SetColor($p[1]);
-		$aImg->SetLineStyle($p[3]);
-		$aImg->StyleLine($x1-1,$y1+$f2,$x1+$this->mark_abs_hsize,$y1+$f2);
-		$aImg->StyleLine($x1-1,$y1+$f2+1,$x1+$this->mark_abs_hsize,$y1+$f2+1);
-	    } 
-	    else {
-		// Draw a colored box
-		$color = $p[1] ;
-		// We make boxes slightly larger to better show
-		$boxsize = min($this->mark_abs_vsize,$this->mark_abs_hsize) + 2 ;
-		$ym =  round($y1 + $f2 - $boxsize/2);
-		// We either need to plot a gradient or a 
-		// pattern. To differentiate we use a kludge.
-		// Patterns have a p[3] value of < -100
-		if( $p[3] < -100 ) { 
-		    // p[1][0] == iPattern, p[1][1] == iPatternColor, p[1][2] == iPatternDensity
-		    if( $patternFactory == null ) {
-			$patternFactory = new RectPatternFactory();
-		    }
-		    $prect = $patternFactory->Create($p[1][0],$p[1][1],1);
-		    $prect->SetBackground($p[1][3]);
-		    $prect->SetDensity($p[1][2]+1);
-		    $prect->SetPos(new Rectangle($x1,$ym,$boxsize,$boxsize));
-		    $prect->Stroke($aImg);
-		    $prect=null;
-		}
-		else {
-		    if( is_array($color) && count($color)==2 ) {
-			// The client want a gradient color
-			$grad->FilledRectangle($x1,$ym,
-					       $x1+$boxsize,$ym+$boxsize,
-					       $color[0],$color[1],-$p[3]);
-		    }
-		    else {
-			$aImg->SetColor($p[1]);
-			$aImg->FilledRectangle($x1,$ym,$x1+$boxsize,$ym+$boxsize);
-		    }
-		    $aImg->SetColor($this->color);
-		    $aImg->SetLineWeight($fillBoxFrameWeight);
-		    $aImg->Rectangle($x1,$ym,$x1+$boxsize,$ym+$boxsize);
-		}
-	    }
-	    $aImg->SetColor($this->font_color);
-	    $aImg->SetFont($this->font_family,$this->font_style,$this->font_size);		
-	    $aImg->SetTextAlign("left","top");			
-	    $aImg->StrokeText(round($x1+$this->mark_abs_hsize+$this->xmargin),$y1,$p[0]);
-
-	    // Add CSIM for Legend if defined
-	    if( $p[4] != "" ) {
-		$xe = $x1 + $this->xmargin+$this->mark_abs_hsize+$aImg->GetTextWidth($p[0]);
-		$ye = $y1 + max($this->mark_abs_vsize,$aImg->GetTextHeight($p[0]));
-		$coords = "$x1,$y1,$xe,$y1,$xe,$ye,$x1,$ye";
-		if( ! empty($p[4]) ) {
-		    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($p[4])."\"";
-		    if( !empty($p[5]) ) {
-			$tmp=sprintf($p[5],$p[0]);
-			$this->csimareas .= " title=\"$tmp\"";
-		    }
-		    $this->csimareas .= " alt=\"\" />\n";
-		}
-	    }
-	    if( $i >= $this->layout_n ) {
-		$x1 = $xp+$this->mark_abs_hsize+$this->xlmargin;
-		$y1 += $rowheight[$row++];
-		$i = 1;
-	    }
-	    else {
-		$x1 += $colwidth[($i-1) % $numcolumns] ;
-		++$i;
-	    }
-	}
-    }
-} // Class
-	
-
-//===================================================
-// CLASS DisplayValue
-// Description: Used to print data values at data points
-//===================================================
-class DisplayValue {
-    var $show=false,$format="%.1f",$negformat="";
-    var $iFormCallback='';
-    var $angle=0;
-    var $ff=FF_FONT1,$fs=FS_NORMAL,$fsize=10;
-    var $color="navy",$negcolor="";
-    var $margin=5,$valign="",$halign="center";
-    var $iHideZero=false;
-
-    function Show($aFlag=true) {
-	$this->show=$aFlag;
-    }
-
-    function SetColor($aColor,$aNegcolor="") {
-	$this->color = $aColor;
-	$this->negcolor = $aNegcolor;
-    }
-
-    function SetFont($aFontFamily,$aFontStyle=FS_NORMAL,$aFontSize=10) {
-	$this->ff=$aFontFamily;
-	$this->fs=$aFontStyle;
-	$this->fsize=$aFontSize;
-    }
-
-    function SetMargin($aMargin) {
-	$this->margin = $aMargin;
-    }
-
-    function SetAngle($aAngle) {
-	$this->angle = $aAngle;
-    }
-
-    function SetAlign($aHAlign,$aVAlign='') {
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-    }
-
-    function SetFormat($aFormat,$aNegFormat="") {
-	$this->format= $aFormat;
-	$this->negformat= $aNegFormat;
-    }
-
-    function SetFormatCallback($aFunc) {
-	$this->iFormCallback = $aFunc;
-    }
-
-    function HideZero($aFlag=true) {
-	$this->iHideZero=$aFlag;
-    }
-
-    function Stroke(&$img,$aVal,$x,$y) {
-	
-	if( $this->show ) 
-	{
-	    if( $this->negformat=="" ) $this->negformat=$this->format;
-	    if( $this->negcolor=="" ) $this->negcolor=$this->color;
-
-	    if( $aVal===NULL || (is_string($aVal) && ($aVal=="" || $aVal=="-" || $aVal=="x" ) ) ) 
-		return;
-
-	    if( is_numeric($aVal) && $aVal==0 && $this->iHideZero ) {
-		return;
-	    }
-
-	    // Since the value is used in different cirumstances we need to check what
-	    // kind of formatting we shall use. For example, to display values in a line
-	    // graph we simply display the formatted value, but in the case where the user
-	    // has already specified a text string we don't fo anything.
-	    if( $this->iFormCallback != '' ) {
-		$f = $this->iFormCallback;
-		$sval = call_user_func($f,$aVal);
-	    }
-	    elseif( is_numeric($aVal) ) {
-		if( $aVal >= 0 )
-		    $sval=sprintf($this->format,$aVal);
-		else
-		    $sval=sprintf($this->negformat,$aVal);
-	    }
-	    else
-		$sval=$aVal;
-
-	    $y = $y-sign($aVal)*$this->margin;
-
-	    $txt = new Text($sval,$x,$y);
-	    $txt->SetFont($this->ff,$this->fs,$this->fsize);
-	    if( $this->valign == "" ) {
-		if( $aVal >= 0 )
-		    $valign = "bottom";
-		else
-		    $valign = "top";
-	    }
-	    else
-		$valign = $this->valign;
-	    $txt->Align($this->halign,$valign);
-
-	    $txt->SetOrientation($this->angle);
-	    if( $aVal > 0 )
-		$txt->SetColor($this->color);
-	    else
-		$txt->SetColor($this->negcolor);
-	    $txt->Stroke($img);
-	}
-    }
-}
-
-//===================================================
-// CLASS Plot
-// Description: Abstract base class for all concrete plot classes
-//===================================================
-class Plot {
-    var $line_weight=1;
-    var $coords=array();
-    var $legend='',$hidelegend=false;
-    var $csimtargets=array();	// Array of targets for CSIM
-    var $csimareas="";			// Resultant CSIM area tags	
-    var $csimalts=null;			// ALT:s for corresponding target
-    var $color="black";
-    var $numpoints=0;
-    var $weight=1;	
-    var $value;
-    var $center=false;
-    var $legendcsimtarget='';
-    var $legendcsimalt='';
-//---------------
-// CONSTRUCTOR
-    function Plot(&$aDatay,$aDatax=false) {
-	$this->numpoints = count($aDatay);
-	if( $this->numpoints==0 )
-	    JpGraphError::RaiseL(25121);//("Empty input data array specified for plot. Must have at least one data point.");
-	$this->coords[0]=$aDatay;
-	if( is_array($aDatax) ) {
-	    $this->coords[1]=$aDatax;
-	    $n = count($aDatax);
-	    for($i=0; $i < $n; ++$i ) {
-		if( is_string($aDatax[$i]) ) {
-		    JpGraphError::RaiseL(25070);
-		}
-	    }
-	}
-	$this->value = new DisplayValue();
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Stroke the plot
-    // "virtual" function which must be implemented by
-    // the subclasses
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	JpGraphError::RaiseL(25122);//("JpGraph: Stroke() must be implemented by concrete subclass to class Plot");
-    }
-
-    function HideLegend($f=true) {
-	$this->hidelegend = $f;
-    }
-
-    function DoLegend(&$graph) {
-	if( !$this->hidelegend )
-	    $this->Legend($graph);
-    }
-
-    function StrokeDataValue($img,$aVal,$x,$y) {
-	$this->value->Stroke($img,$aVal,$x,$y);
-    }
-	
-    // Set href targets for CSIM	
-    function SetCSIMTargets($aTargets,$aAlts=null) {
-	$this->csimtargets=$aTargets;
-	$this->csimalts=$aAlts;		
-    }
- 	
-    // Get all created areas
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }	
-	
-    // "Virtual" function which gets called before any scale
-    // or axis are stroked used to do any plot specific adjustment
-    function PreStrokeAdjust(&$aGraph) {
-	if( substr($aGraph->axtype,0,4) == "text" && (isset($this->coords[1])) )
-	    JpGraphError::RaiseL(25123);//("JpGraph: You can't use a text X-scale with specified X-coords. Use a \"int\" or \"lin\" scale instead.");
-	return true;	
-    }
-	
-    // Get minimum values in plot
-    function Min() {
-	if( isset($this->coords[1]) )
-	    $x=$this->coords[1];
-	else
-	    $x="";
-	if( $x != "" && count($x) > 0 ) {
-	    $xm=min($x);
-	}
-	else 
-	    $xm=0;
-	$y=$this->coords[0];
-	$cnt = count($y);
-	if( $cnt > 0 ) {
-	    /*
-	    if( ! isset($y[0]) ) {
-		JpGraphError('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)');
-	    }
-	    */
-	    //$ym = $y[0];
-	    $i=0;
-	    while( $i<$cnt && !is_numeric($ym=$y[$i]) )
-		$i++;
-	    while( $i < $cnt) {
-		if( is_numeric($y[$i]) ) 
-		    $ym=min($ym,$y[$i]);
-		++$i;
-	    }			
-	}
-	else 
-	    $ym="";
-	return array($xm,$ym);
-    }
-	
-    // Get maximum value in plot
-    function Max() {
-	if( isset($this->coords[1]) )
-	    $x=$this->coords[1];
-	else
-	    $x="";
-
-	if( $x!="" && count($x) > 0 )
-	    $xm=max($x);
-	else {
-	    $xm = $this->numpoints-1;
-	}
-	$y=$this->coords[0];
-	if( count($y) > 0 ) {
-	    /*
-	    if( !isset($y[0]) ) {
-		JpGraphError::Raise('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)');
-		//$y[0] = 0;
-// Change in 1.5.1 Don't treat this as an error any more. Just silently convert to 0
-// Change in 1.17 Treat his as an error again !! This is the right way to do !!
-	    }
-	    */
-	    $cnt = count($y);
-	    $i=0;
-	    while( $i<$cnt && !is_numeric($ym=$y[$i]) )
-		$i++;				
-	    while( $i < $cnt ) {
-		if( is_numeric($y[$i]) ) 
-		    $ym=max($ym,$y[$i]);
-		++$i;
-	    }
-	    
-	}
-	else 
-	    $ym="";
-	return array($xm,$ym);
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetLegend($aLegend,$aCSIM="",$aCSIMAlt="") {
-	$this->legend = $aLegend;
-	$this->legendcsimtarget = $aCSIM;
-	$this->legendcsimalt = $aCSIMAlt;
-    }
-
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-		
-    function SetLineWeight($aWeight=1) {
-	$this->line_weight=$aWeight;
-    }
-	
-    function SetCenter($aCenter=true) {
-	$this->center = $aCenter;
-    }
-	
-    // This method gets called by Graph class to plot anything that should go
-    // into the margin after the margin color has been set.
-    function StrokeMargin(&$aImg) {
-	return true;
-    }
-
-    // Framework function the chance for each plot class to set a legend
-    function Legend(&$aGraph) {
-	if( $this->legend != "" )
-	    $aGraph->legend->Add($this->legend,$this->color,"",0,$this->legendcsimtarget,$this->legendcsimalt);    
-    }
-	
-} // Class
-
-
-//===================================================
-// CLASS PlotLine
-// Description: 
-// Data container class to hold properties for a static
-// line that is drawn directly in the plot area.
-// Usefull to add static borders inside a plot to show
-// for example set-values
-//===================================================
-class PlotLine {
-    var $weight=1;
-    var $color="black";
-    var $direction=-1; 
-    var $scaleposition;
-
-//---------------
-// CONSTRUCTOR
-    function PlotLine($aDir=HORIZONTAL,$aPos=0,$aColor="black",$aWeight=1) {
-	$this->direction = $aDir;
-	$this->color=$aColor;
-	$this->weight=$aWeight;
-	$this->scaleposition=$aPos;
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    function SetPosition($aScalePosition) {
-	$this->scaleposition=$aScalePosition;
-    }
-	
-    function SetDirection($aDir) {
-	$this->direction = $aDir;
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-
-    function PreStrokeAdjust($aGraph) {
-	// Nothing to do
-    }
-	
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	$aImg->SetColor($this->color);
-	$aImg->SetLineWeight($this->weight);		
-	if( $this->direction == VERTICAL ) {
-	    $ymin_abs=$aYScale->Translate($aYScale->GetMinVal());
-	    $ymax_abs=$aYScale->Translate($aYScale->GetMaxVal());
-	    $xpos_abs=$aXScale->Translate($this->scaleposition);
-	    $aImg->Line($xpos_abs, $ymin_abs, $xpos_abs, $ymax_abs);
-	}
-	elseif( $this->direction == HORIZONTAL ) {
-	    $xmin_abs=$aXScale->Translate($aXScale->GetMinVal());
-	    $xmax_abs=$aXScale->Translate($aXScale->GetMaxVal());
-	    $ypos_abs=$aYScale->Translate($this->scaleposition);
-	    $aImg->Line($xmin_abs, $ypos_abs, $xmax_abs, $ypos_abs);
-	}
-	else
-	    JpGraphError::RaiseL(25125);//(" Illegal direction for static line");
-    }
-}
-
-// <EOF>
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_antispam-digits.php b/nightly-test-server/jpgraph/jpgraph_antispam-digits.php
deleted file mode 100644
index 19251ba..0000000
--- a/nightly-test-server/jpgraph/jpgraph_antispam-digits.php
+++ /dev/null
@@ -1,205 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ANTISPAM.PHP
-// Description:	Genarate anti-spam challenge
-// Created: 	2004-10-07
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class HandDigits {
-    var $digits_thumb30x30 = array();
-    var $iHeight=30, $iWidth=30;
-    function HandDigits() {
-//==========================================================
-// d6-small.jpg
-//==========================================================
-	$this->digits['6'][0]= 645 ;
-	$this->digits['6'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'.
-	    'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'.
-	    'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'.
-	    'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'.
-	    'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'.
-	    'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'.
-	    'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; 
-
-//==========================================================
-// d2-small.jpg
-//==========================================================
-	$this->digits['2'][0]= 606 ;
-	$this->digits['2'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'.
-	    'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'.
-	    'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'.
-	    'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'.
-	    'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'.
-	    '7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'.
-	    'DLZ6f//Z' ; 
-
-//==========================================================
-// d9-small.jpg
-//==========================================================
-	$this->digits['9'][0]= 680 ;
-	$this->digits['9'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'.
-	    'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'.
-	    'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'.
-	    'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'.
-	    'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'.
-	    'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'.
-	    'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'.
-	    '1V1//9k=' ; 
-
-//==========================================================
-// d5-small.jpg
-//==========================================================
-	$this->digits['5'][0]= 632 ;
-	$this->digits['5'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'.
-	    'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'.
-	    'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'.
-	    'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'.
-	    'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'.
-	    'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'.
-	    '8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; 
-
-//==========================================================
-// d1-small.jpg
-//==========================================================
-	$this->digits['1'][0]= 646 ;
-	$this->digits['1'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'.
-	    'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'.
-	    'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'.
-	    'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'.
-	    'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'.
-	    'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'.
-	    'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; 
-
-//==========================================================
-// d8-small.jpg
-//==========================================================
-	$this->digits['8'][0]= 694 ;
-	$this->digits['8'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'.
-	    'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'.
-	    'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'.
-	    'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'.
-	    '44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'.
-	    'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'.
-	    'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'.
-	    'EylmLHQltptPZKQOBo1FzH//2Q==' ; 
-
-//==========================================================
-// d4-small.jpg
-//==========================================================
-	$this->digits['4'][0]= 643 ;
-	$this->digits['4'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'.
-	    'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'.
-	    'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'.
-	    'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'.
-	    'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'.
-	    '27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'.
-	    'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; 
-
-//==========================================================
-// d7-small.jpg
-//==========================================================
-	$this->digits['7'][0]= 658 ;
-	$this->digits['7'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'.
-	    'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'.
-	    'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'.
-	    '19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'.
-	    'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'.
-	    '8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'.
-	    'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; 
-
-//==========================================================
-// d3-small.jpg
-//==========================================================
-	$this->digits['3'][0]= 662 ;
-	$this->digits['3'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'.
-	    'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'.
-	    'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'.
-	    'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'.
-	    'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'.
-	    'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'.
-	    'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; 
-    } 
-}
-
-class AntiSpam {
-
-    var $iNumber='';
-
-    function AntiSpam($aNumber='') {
-	$this->iNumber = $aNumber;
-    }
-
-    function Rand($aLen) {
-	$d='';
-	for($i=0; $i < $aLen; ++$i) {
-	    $d .= rand(1,9);
-	}
-	$this->iNumber = $d;
-	return $d;
-    }
-
-    function Stroke() {
-
-	$n=strlen($this->iNumber);
-	for($i=0; $i < $n; ++$i ) {
-	    if( !is_numeric($this->iNumber[$i]) || $this->iNumber[$i]==0 ) {
-		return false;
-	    }
-	}
-
-	$dd = new HandDigits();
-	$n = strlen($this->iNumber);
-	$img = @imagecreatetruecolor($n*$dd->iWidth, $dd->iHeight);
-	if( $img < 1 ) {
-	    return false;
-	}
-	$start=0;
-	for($i=0; $i < $n; ++$i ) {
-	    $size = $dd->digits[$this->iNumber[$i]][0];
-	    $dimg = imagecreatefromstring(base64_decode($dd->digits[$this->iNumber[$i]][1]));
-	    imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $dd->iHeight);
-	    $start += imagesx($dimg);
-	}
-	$resimg = @imagecreatetruecolor($start+4, $dd->iHeight+4);
-	if( $resimg < 1 ) {
-	    return false;
-	}
-	imagecopy($resimg,$img,2,2,0,0,$start, $dd->iHeight);
-	header("Content-type: image/jpeg");
-	imagejpeg($resimg);
-	return true;
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_antispam.php b/nightly-test-server/jpgraph/jpgraph_antispam.php
deleted file mode 100644
index d7f9283..0000000
--- a/nightly-test-server/jpgraph/jpgraph_antispam.php
+++ /dev/null
@@ -1,625 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ANTISPAM.PHP
-// Description:	Genarate anti-spam challenge
-// Created: 	2004-10-07
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class HandDigits {
-    var $chars = array();
-    var $iHeight=30, $iWidth=30;
-    function HandDigits() {
-
-//==========================================================
-// lj-small.jpg
-//==========================================================
-$this->chars['j'][0]= 658 ;
-$this->chars['j'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGBAf/xAAsEAACAQMDAwMBCQAAAAAAAAAB'.
-'AgMEBREAEjEGIUEUUXGBBxMVIiNSYWKC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEC/8QAGhEAAwADAQAAAAAAAAAAAAAAAAECERIh'.
-'Mv/aAAwDAQACEQMRAD8A6veK2st8zRWSyV1dUBfvHaGVI4hknsS7AFv4AyM57ayWbqeS+11xtT2etttwo4YqhEqnQs5bcAfyk4AZ'.
-'SOeD441TKRTyingUBG4/ah8j684+dSFzh/BvtaslejMUu9DPQTDnLx4lQ/ONw1TGBm0jdRWqguEMghEisWilgDmNs4Ze+MEEEH40'.
-'aUVFTa7JeLjRXu4GjhmnNbSfqFQVlA3rkckOjH/Q99Glmkl0C/Q06pvsvT9vttXHDF6T1KrWbs5gRgQJM+FDlQxPhjpF1XcVq+qe'.
-'jEoKiOecXBqh2TDDYIXLKuP6549xk8auI6aJqV45oknWdNswkAIkGMYIxjGO2NR1F0LZY5qkWqkS1xrM0M8lMSJpY+TGrnJiQ577'.
-'cEgeNHhi7D3qC3UN69M8tIakRhgrh9o748+eNGtcCiKjjpkQKlMTEg3ZwoxtHHtgfTRpYXArvp//2Q==' ; 
-
-//==========================================================
-// lf-small.jpg
-//==========================================================
-$this->chars['f'][0]= 633 ;
-$this->chars['f'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQFBgcC/8QAKxAAAgEDAwMCBQUAAAAAAAAA'.
-'AQIDBBEhAAUGEjFBEyIHFFFhoRUzYnGS/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQP/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIRMRIh'.
-'/9oADAMBAAIRAxEAPwDcnmLoIkiSYsouC3tA++O2lU9WkqVjJ+YdhZLsQI/4/YfQm50kZP0vbmaCSU0SRNIH6sghb9INs3t38dvp'.
-'akUuz8x5DwdN5peS1jV1dSipSiVUigIcdQjQ26lIB/c6r3F86SZpE/zCFJaqsihQNhRgdj3Jyfxo0jDSbXHt9Oph9RAoV3qJGltY'.
-'HDOxyb/nRpV0D3RXle21m48XraOk3IUSemUaV4g4Zc9ShcDtgff+tQfwvjq34Dtku7buamFqeJKemCCMxKFsEJU+/FrX8d76sEHG'.
-'aNItzr4usVNdG3S0rmRYAVwEUmyjyQLZ11x7aF4zs9DQOyzml29I2cLa/pixIHi99DFCtU9dFuLIaijo9qiYPmR2mZmB9thgAHOD'.
-'4+mjUrURyrUNMZFEkkIOFuFAbsP9d/OjVIQ6Vh4tP//Z' ; 
-
-//==========================================================
-// lb-small.jpg
-//==========================================================
-$this->chars['b'][0]= 645 ;
-$this->chars['b'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwUH/8QAKxAAAQMDAwMDAwUAAAAAAAAA'.
-'AQIDBAAFEQYSIRMxUSJBYQcVI2JxgqHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAYEQEBAQEBAAAAAAAAAAAAAAAAATERYf/a'.
-'AAwDAQACEQMRAD8A6H95mxNYwLXcX+pCuilSLXJ6YSplaUELjqxwe4IJ5PIPamJ2V0bPcS7+NxCX1cHggAnIP+xSd9RyzHh2m7FQ'.
-'Q1CvMNQWTjCt+HFD+PB/Y1fI1PL1HFFt0zaGblFdJQ9cJjpZiqPJUlBAKnPcEpGB5NNRKdrOl1NlgiQol4R2w4Sc5VtGf7opZteo'.
-'LhdorjUSM5FnQnlR50NeHQysYxtVxlJHIPgjtRRD3xkaghs6juumdHz4+Y7RVPnt59K2mk7W+fcKWsZ7djTXMkW+xMP3GRJjwIEN'.
-'HTG/CWx5wPY8AADx2NYk3SL9wukvUjGobnBkORksIbjdMANozgEqSo8qJPGO/wAVO36IsjUmBIfZfuM7epZk3F9UhSSk5O0K9Kcq'.
-'8AcU3UzFuhUSBFud6nRXoz96mqmJZWg7m2dqUNhWBwdqQSP1UU5c/FFCn//Z' ; 
-
-//==========================================================
-// d6-small.jpg
-//==========================================================
-$this->chars['6'][0]= 645 ;
-$this->chars['6'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'.
-'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'.
-'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'.
-'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'.
-'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'.
-'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'.
-'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; 
-
-//==========================================================
-// lx-small.jpg
-//==========================================================
-$this->chars['x'][0]= 650 ;
-$this->chars['x'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABMDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUHBgj/xAApEAABAwMDAwQCAwAAAAAAAAAB'.
-'AgMEBQYRACFBBxIxFCJRgRNxkcHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAMAwEA'.
-'AhEDEQA/AH9t3pKvO14UykVARa/HfAlxlDKXR24V2p3z7RlPwdtMep91uWdRGHWELjuTFFtLvcC4SNznnH+21O7ttiodOq1BvC0E'.
-'p9I0lSX2kgqCSklK+5PKCMAng6zV2XRO6u3lSIURtbDRShltlZHa0tW7q/0MeTwnjxq1Jiw2xc9xTLbhSVU5iaXUFfqFFILgJOCd'.
-'9Gt3SXabR6REpkL8yo0RpLCFNx1qBCRjOQMHxo0pEr6o3um2LVYpMEpTVqg25lHn08dfcB9kEgfZ1LIFDuawqZRb7aQlLTzqglsg'.
-'9wQdveOEqBIB425xqhQuk8qo9UKlPrlRblw2ZBeCSVKW6CcoSrI2AGOT41SKzT4dYtmdS5bIXDZhNoWgbZJ94x8AYT/GkM03oNUc'.
-'uKgwqtTZDTMOU0FttqRkoHggnPkEEHRrkJ6t1SlSHYUOc6zHaWrsbQrATk5/vRqK/9k=' ; 
-
-//==========================================================
-// d2-small.jpg
-//==========================================================
-$this->chars['2'][0]= 606 ;
-$this->chars['2'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'.
-'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'.
-'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'.
-'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'.
-'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'.
-'7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'.
-'DLZ6f//Z' ; 
-
-//==========================================================
-// lm-small.jpg
-//==========================================================
-$this->chars['m'][0]= 649 ;
-$this->chars['m'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAcDBAUCBv/EAC0QAAICAQMCBAMJAAAAAAAA'.
-'AAECAwQRAAUSBiETMVFhB2KhFSIyQVJxgZHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREBAQEAAwAAAAAAAAAAAAAAAQAR'.
-'EiEx/9oADAMBAAIRAxEAPwB0MI2lIdgI0Cly3kFXLEn2zx1FDdp7rbpbjUtRWKio3hyxOGQllJzkegX66rQ2qW87Zuk9S5FNVmru'.
-'iywyBhjDKTkeXfSr+GRfYtq2KAO32b1BGxAZu0dyJ2DKPTxY1wPddVszycUq2Golq8jRWbcnJWwCVGMjz+VQP50atxMtm2ZUOY4l'.
-'4qfUnBP0x/Z0amy4jJm10Tt2yddWasFmfaRfdrlG3UcgArnxKzJ+Fu4DqCMkcgNem2DoWav8PLfTm+FPEkuSNTnqueS5bnHIv6CG'.
-'LNjJwM99bm67NB1Ht89KSxNXnr2hNDbiUc47K4KyD2GQMfmMjUnS+7vuIktTqPCaaWCqAMMojPFyw8hyYMQBnAwNJHYGXPTsW9VN'.
-'jg2zf50W9zk524GAEihuz+xbIOD82jW5TkjtRPZkTkJ+4VgDhQfuj/f3OjUxl1f/2Q==' ; 
-
-//==========================================================
-// lt-small.jpg
-//==========================================================
-$this->chars['t'][0]= 648 ;
-$this->chars['t'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAJxAAAQMDAgYDAQEAAAAAAAAA'.
-'AQIDBAUGEQASEyExQVFhIjJxFSP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAP/xAAZEQADAQEBAAAAAAAAAAAAAAAAAREhMUH/2gAM'.
-'AwEAAhEDEQA/AO4BLEiEy7uG4IGxxs5IOOx76wd2XYidSp1HoD70240gcNNPbDyI6wQQpaz8E9MczkdhqtbsKYLieDk6WLKmZmmL'.
-'Hk7AHVkbkLI+RQc7uRxgkfr1tx2rGu6VbToLVKkhU+kbugGf9WfaknCk5ycaX0zmaa+3JkqvW/CmzojsB9xoF6OoFK0r6HOcEDI0'.
-'aefTuKX5ScMdC14HYq8n12zo1DEUcKTGg1Z+hyBwoPBVIiA/VQyOIgedhUCB4WMfXSV3UufVLcTUIqVf26K6mXDbPVRRzKT54iMg'.
-'+zjtq6mtsyJjclxpKlUhSXEbkgkqWnBx4+J5e/zU0pZemPvJJQzEPDfQOrwwFY9AZ5eeYPLV6FwhoFYZuigxpkJeIjqAeIoAk9wA'.
-'D46EnuD+6Nc1smDNrTlRkxqtMo1vzKhIdYgU9YDqVpISrLhHxSSd21I0aYyqP//Z' ; 
-
-//==========================================================
-// li-small.jpg
-//==========================================================
-$this->chars['i'][0]= 639 ;
-$this->chars['i'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABwAGBP/EACcQAAEEAQMEAgIDAAAAAAAAAAEC'.
-'AwQRBQAGEiExQVEHExSBFWFx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgMB/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECMRH/2gAMAwEA'.
-'AhEDEQA/AE7c+5M9BeRG29t1WUfKFFYW+GvrI7WD3B9g140YD5T36rcErDjbUR6dCBdejsKUpxITXI2FUrooCh70yvxzHyIlMvuK'.
-'eVSH7IKEpJoKqu/ahddLryR/aMiO187bsmrWShhp1AZS2XHHrWhNJrzdf7f7GiVcHk3sptmHkJcJ2DIftS2FrKlJPXudWuLGYeQp'.
-'t2fmEIckqIZaaKuSGG0lQ4gduRoFRHQ9AOgs2lOJbk9aSUlpjGvAWeSVH2VKq/2dFPw3IjyJe8s281ct3I9UoHJXGiQkD2STrSZ7'.
-'Yf8AOl7JTdw5eOCz0jw3+LbYCfA9nz71msb8KMxoTGTw+5srjsipAdDqFBQBIuiOl6KrdYyJMyTCshlw2G3Fr/HiNqNNAqJJUoGl'.
-'KND+h47km1bZwsvCbYYjycxIyK1qDv2yEi0hQviK8atKDcy9j//Z' ;
- 
-
-//==========================================================
-// lp-small.jpg
-//==========================================================
-$this->chars['p'][0]= 700 ;
-$this->chars['p'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAECBAUGB//EAC8QAAEDAwMCBAMJAAAAAAAA'.
-'AAECAwQFESEABhIiMRMVUWEHFEEWIzIzcYGRocH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAcEQACAgIDAAAAAAAAAAAAAAAA'.
-'AQIxAxESIUH/2gAMAwEAAhEDEQA/AOh703xG21DMeOyqoVNDjSzERiwU6Ep5qtZNycA97HTF13d33KWtmlt9xwkLl1NkXVxIuQgK'.
-'wLj+hqBvel0qmbR8GnR22nJNZiLeeKr8nDIT1OLJucX+uPbWom7iocRpafOac5MX1ALltp/Cbi+cJH++utdh+WVNL3PNdNYpdWgx'.
-'Y0qmLZSrwJJcQoOJ5XKlJFu4HbJOjVbt+V5nu7eopNRivqcdhK+bFnWwA1Y2AOcgjvj9dGlxy0g5y0xd+hNXoG24C4obizq3HZUh'.
-'YHqtRHD06bG/8a0MbbG1mqekxaBSGmgkrcdcitlLfrckZIz7DUatbeFak0tyRLUwzT5vmiGm0cufEkFBJItfkD+59tKmiO12atFa'.
-'eQukO3ejUxgENqTcfnE5WbkHiOnJ76N2IqI1DibabptS+zkZhtp90F2Y0S026EkAFK/qL46cXv65NVZDfxHmVCK4DE2/RX/lRFbA'.
-'C5LwAyq2EtpHZI7mxPYDRqoctdESimz/2Q==' ; 
-
-//==========================================================
-// le-small.jpg
-//==========================================================
-$this->chars['e'][0]= 700 ;
-$this->chars['e'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABgDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYEBQcB/8QAKhAAAQMCBAUEAwEAAAAAAAAA'.
-'AgEDBAURAAYSIQciMTJBE0JRYRQVFoH/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREAAwEBAQAAAAAAAAAAAAAAAAERAjFB'.
-'/9oADAMBAAIRAxEAPwDTszvhEYCoS80BTm2bCjQRwdAzVe2yopkpJtpRUVfjEIc4V2oMerByg5Ji30oMyS3GeMunK0upfnu09MdJ'.
-'p2scTmWnnGfx6HThktgLfKj7xEOqyr7QBbL41LhBzpxbcOru0LKDLdSnOHoaltNqSC4qWL0x9xbJYum69caczSaHmGmTmpDUYn4l'.
-'UiqjkynzAVtwV23Ud+X4Ibpa2DCPkjhfUaRO/p8yzpb+YHhUmhbev6ZEll1lvqK3jt2XrbBgp6HVwsK3THpfEubGSoOUyFMpbJmL'.
-'Deh6SgOGKti57EuY6l62JMWdJy7k3hg1LkOozEbVm7suQSkTiKtkEfP1pH664Za/QItccgI4bseTHdNxiXHLQ8yVl7V32XyioqL5'.
-'TGc1ng6eYs0idczXUZscBBABWgEhEtfKNuUezwPnBhEuj8X2M21z9BR6NUX211Kk/UKKAjuhkPhL7XVf8vtgw7UPJlEyrDWFSYLb'.
-'LBNF6qrzG6t0spEu6+fpL7YMXhUndp//2Q==' ; 
-
-//==========================================================
-// la-small.jpg
-//==========================================================
-$this->chars['a'][0]= 730 ;
-$this->chars['a'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABoDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwIFAQcCBwAAAAAAAAAB'.
-'AgMEBREAEiExQQYHFBUiUXGBE2EyQkNSgpHh/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAMBAv/EABkRAAMBAQEAAAAAAAAAAAAAAAAB'.
-'IQIRMf/aAAwDAQACEQMRAD8AfdQ1pxjqZMSn0mRUZRYDaklJCE3OawO2ttTxY4hl07qFMVs1Ku02kpPnRGhsAqz8W9T9wDjozq6o'.
-'Q1lDrcZLGVcmUoZg0obpufxK3Ftt9ccqB1GgBcmLSqtVEqOZcr6ARm/kbXHt7DEtc7WTJKTJqEWvRKfLqL9QplSjuPtGVYOJKBrm'.
-'t+U+n94WGStZzNypmRWqckUKTbixy6jAfxPxHtCgKqFNlU5huK6pLMndSlegG4J45N8aKmTMKQRBsCNMzwB+RbHWHGEAZlPZX2hx'.
-'qZIC34ygZoYUbB50JSkFXFhZR9BrpheR4fIbQ6gvurJ7q02bIQTuAOAN8x40HAxRr3TrNRpBmSHVt1KMlTyJTCsqkKAPlSf28W+c'.
-'UGaD1c9HSR1HFUh9tJU45EBcAtcC9+P9wqbg8IAto9o81yputrVGpiUkgHKkqUTZI32+cKm1z1tIUgPBBAKQ4UBQH3uL3xmXSXep'.
-'HVDtXStE5K5jlPU7PF3Q41+okJFkjgC+3OuNSYiSzHaLtRcW4UDMpLYSCbakDW3thhum5p//2Q==' ;
-
-//==========================================================
-// d9-small.jpg
-//==========================================================
-$this->chars['9'][0]= 680 ;
-$this->chars['9'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'.
-'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'.
-'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'.
-'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'.
-'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'.
-'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'.
-'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'.
-'1V1//9k=' ; 
-
-//==========================================================
-// d5-small.jpg
-//==========================================================
-$this->chars['5'][0]= 632 ;
-$this->chars['5'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'.
-'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'.
-'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'.
-'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'.
-'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'.
-'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'.
-'8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; 
-
-//==========================================================
-// d1-small.jpg
-//==========================================================
-$this->chars['1'][0]= 646 ;
-$this->chars['1'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'.
-'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'.
-'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'.
-'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'.
-'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'.
-'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'.
-'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; 
-
-//==========================================================
-// ll-small.jpg
-//==========================================================
-$this->chars['l'][0]= 626 ;
-$this->chars['l'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYEBQf/xAArEAACAQIFAwIGAwAAAAAAAAAB'.
-'AgMEEQAFBhIhFEFREzEHFSIyYcFxgZH/xAAXAQEAAwAAAAAAAAAAAAAAAAACAAED/8QAGhEAAwEAAwAAAAAAAAAAAAAAAAECMREh'.
-'Qf/aAAwDAQACEQMRAD8A15Zfm1VURj1Fp5AqLKv3OARcL4W5Nzx+MLWjdRz5hqXU6TSb6OCr6WghiQbrJ91gOTy1yT5xZ55myZFk'.
-'Gb5ozX6Ondm28XYqpQDwu7jEH4c5S2UaDy4xxrLmlUDWzk8XaQ3O49hbj+RiB85HNg8Ee3aqwIqhDuux7G/HHbvzgxEqaWOvy09R'.
-'O0o3hjdQoUji20g+fY3wYSM6pJ4Ylr7V+Zz5PSaezHTlTRNWzxySSxt6q1MSkH6AOT2Fu3Aw7RfF/T9DEkLUeawuF2mKSgdWQj2/'.
-'q3+fnDZDlqRZzQGaOGcpTOaeR1u8R+ncN3gj94so2jNWHeMNNKzorEX2qp9v3imNPoRE1zpjUtZ09HJmYq5lury0benZeTww23t3'.
-'Ivgw+T0yRRyyxIqNfkLcA8jt7YMKcBWn/9k=' ;
-
-
-//==========================================================
-// ls-small.jpg
-//==========================================================
-$this->chars['s'][0]= 701 ;
-$this->chars['s'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAMCBAUGB//EACwQAAEEAQIFAgUFAAAAAAAA'.
-'AAECAwQFEQAGEhMUITEiYQcjQVFxFRZCUoH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAZEQADAQEBAAAAAAAAAAAAAAAAAQIR'.
-'EiH/2gAMAwEAAhEDEQA/APWZMhmFXSJU+SGmWFiQtAWMJQAnJUr8Z+w/OuQk71uZnMsqnbjy9s8st9UMCQ6kZJdZaIHEkZ/JHceN'.
-'N3HtizuY1JLrG48yLBSC9UTFKQiY4nACir+wAOOMEe2rm2bTbzlqtE1MyBuZAPybpw85KSfDRJ4Cg+Pl/wC61hJeGjV31VuuKqwr'.
-'LGU+whZZK+Rw+oYJAyj3GjS4dZFpZVkqPLktdfMXNcaU2kBC1BIITkdx6c599GlnvPAa3TL2vNvU76n0063acr3YSLCEjpUpUQtW'.
-'Dhf14SMEnOc57aZ8Tegm7dbrEQGZt1PeTDgc1PEW3FeXAvyAkZVkeMDOm2G3f3O7Cl/qEuqkQg4lp6CRxraWfUlRUD24kZA741Ko'.
-'2k1HvlT3ri2sLOCgtsyJz6XEtBwZPAgJAGQMHUNPWKqWItsqh0UCFVyLeKhyLHQ2TMdHNVj+RKlAnJyfto1FW2ahgjrq6LYTFjjf'.
-'lymUOLdWfJyoHA+gA7AAAaNPE3ysJdLT/9k=' ; 
-
-//==========================================================
-// lh-small.jpg
-//==========================================================
-$this->chars['h'][0]= 677 ;
-$this->chars['h'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACwQAAIBAwMCBQIHAAAAAAAA'.
-'AAECAwQFEQAGEiExExQiQVEVggcyU2GRocH/xAAXAQADAQAAAAAAAAAAAAAAAAAAAwQB/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQAC'.
-'AyEyMf/aAAwDAQACEQMRAD8A6DZb95q9bmpK6ieOCzNHJTxmE+NMhQ5fr1fLq3Ejvkak2e7ipiFsqb3R0m4qkPPJRiRXenU9VjKE'.
-'5JVcA9R7nWc3/BUbfoKTdO3VRXhpjbZ2D8Rwk6RyZH6chB+46m7i2hDYtgA2ePlV2VkuKysoLzzRnlIScZJZeeevvjtrX7LK2rp7'.
-'tTwwJ9WjhILDrTKnIdMEDl2+P80aVdJZb1QW+vgqENLPH4sBCDLIwUgnOf4GjVvDnLgUk79T81voqjb8NnuUx8pVRCiEaYUSuynl'.
-'jHU9mOfnOoOx6hqz8PrbNdfEkMUXg1LSM3rKOUywJ7YAJ1ZTWmSpvdvlaVTDSUzJAhH5ZJBgv0x2RSAPlz21WXqoet3ba9nuW8n4'.
-'Jr6qTPqnUNxSM/f6mPvxA9zqJnExTbR+h0nkhVu1uE8j0UBRQ9PGxBKFjnkAScdsDp10a0lc7z0tI7Y5YYN+5GAf7GjVXF4Icj3f'.
-'/9k=' ; 
-
-
-//==========================================================
-// ld-small.jpg
-//==========================================================
-$this->chars['d'][0]= 681 ;
-$this->chars['d'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFBgH/xAAsEAABAwMEAAQFBQAAAAAAAAAB'.
-'AgMEBQYRABIhMQcTI0EUMlFhkRgicaGx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgEA/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECETH/'.
-'2gAMAwEAAhEDEQA/ALUhp6h3W/X63UlypbhCY0WMjLqGzwDtPCfv/WtealNpVInuVBBqCogcdbU36YUkAkJWVHG8YPXBxxzxqPcN'.
-'YtWyWnIlUeW05VEOAvrCnnSkftK1H5lKJPHsMDoDUWq+KdrSbIqsalVsImiEtLUZ2MU71bcYJWkhZ/36ayLHhi/IXZVOmzKqp5uU'.
-'688hTyjuGVEFJKvoQesD86NL2jGZp1EoLDSmk+ZAQ8d7oPzp3YGesFWMfxo1YGvSzLsT9QExVX8phTlMaFOExAJIBGQjJwCcL+/e'.
-'rd+W7GuO0Kw05CQ6+ww69Gfdb2kFIKk7DgEkjgnr86rXRa9HuyP8LV4SH0sIBbWFFDiFEgDaocgdkjo8ccay0qw7ut5nyrcviQqC'.
-'slsRKo0HwlODkBRzxj2AGoXTtpzIdQ8MbffUChz4NCPRaClAo9Mn6c7T3o13wytmo0K05VIqkiPJbizFiMWs4CTgnIIHOST796NL'.
-'Ia1JX//Z' ;
-
-//==========================================================
-// d8-small.jpg
-//==========================================================
-$this->chars['8'][0]= 694 ;
-$this->chars['8'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'.
-'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'.
-'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'.
-'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'.
-'44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'.
-'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'.
-'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'.
-'EylmLHQltptPZKQOBo1FzH//2Q==' ; 
-
-//==========================================================
-// lz-small.jpg
-//==========================================================
-$this->chars['z'][0]= 690 ;
-$this->chars['z'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgAHA//EACsQAAEDAwQBAwIHAAAAAAAAAAEC'.
-'AwQFESEABhIxBxMiQVFxCCM0UmGRof/EABYBAQEBAAAAAAAAAAAAAAAAAAECAP/EABgRAAMBAQAAAAAAAAAAAAAAAAABEVEC/9oA'.
-'DAMBAAIRAxEAPwBTWfLu1KXXZDbM4uewNvLajlwhaCbBAwDe5uehYd3xm6t6bi3jvulwqc7KgxXZZeYQLNLeF73WRg4HEdgfzrSa'.
-'P45pNEkznITDc9ypLShtyWhJDJyXC2qxJHZvjoZOjyVv1v8AESt6FFS4ijxvTLbawEApSccrYHJf0+OtJMQ2rNXk7GZMufJgJjTH'.
-'Un9M4qzxT7hyCiThIyRnPXWrRvyLElVBUF6vlhl0lwRYCFKcQhAtyWpVhyWTx+w++rUvp4EWjOvbniUOnVatcS43BYDbJSPZyIBw'.
-'ejclIx+3Wa+J63T6DQanuGszI0eZVJJV60p0Jum5GEi6le7l0PjvSjyRsaTvJqI1BqhhR46ksuMrQVJcUSEoUbHNr/7o7C8L7eiz'.
-'4lLlyJk2cEqW+6V+m0AE9ISLnsj5+O9UhsFK92bZZqb9SRu9p2c4A0OCEqDbYAJSlJwAVZv3fBvbFrg/462btlhuS1RG5nL8pYkq'.
-'KrnsKH06I/rVrQKkf//Z' ;
-
-//==========================================================
-// d4-small.jpg
-//==========================================================
-$this->chars['4'][0]= 643 ;
-$this->chars['4'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'.
-'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'.
-'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'.
-'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'.
-'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'.
-'27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'.
-'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; 
-
-//==========================================================
-// lv-small.jpg
-//==========================================================
-$this->chars['v'][0]= 648 ;
-$this->chars['v'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAKBAAAQQBAwMEAgMAAAAAAAAA'.
-'AQIDBBEFAAYhEzFBEhQiYQdRFTKB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAAAAAAAAERIf/aAAwD'.
-'AQACEQMRAD8A6Ngt1SZ4yrYgrecgTFsFJA9aGwAUrUaF2D2Avjzq6CIjiBPkB9bwQVIkIYIDae/wq+P9N+dY4SGMf+Txlev7KBmY'.
-'PoadKRy4zxSgRxaTwO/x09u7KPYnasmHjlsyFZZXt4K23ezjvBpNGgLUrvXfVZyLLbWambiwEbKvvxYAkeotNlIJW2FEJWb7WBda'.
-'NSQI0fHYyJjkrjKRDZQwnpQ1vgBIr+w8+a+9GocZr8iKkuY1eXhsKH8U8iZE9BHz6ZHUc48UfSPqzqH3kfeO9kTTDQYGGietpTaO'.
-'shyW6AocpHNIrv8AvWzk9BUSdPdYS4BcRlomkhIV6KP0VE39V+tU2wdlRMHtZUB8NuTQ+51X27+Kr46ZPIAFV540D8zeLsJ5LMHa'.
-'ubmMBCVJdjx0pRyLoWR4I8aNIQ8BvZMNtMTeUcsptKfc4tC1gAkCyFC+K0aJtf/Z' ;
-
-//==========================================================
-// lk-small.jpg
-//==========================================================
-$this->chars['k'][0]= 680 ;
-$this->chars['k'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBAMH/8QALhAAAQMDAwIEBAcAAAAAAAAA'.
-'AQIDBAUREgAGITFBEyIyYQcVUYEUIzNicZHx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEE/8QAGxEAAwACAwAAAAAAAAAAAAAAAAEC'.
-'AxESMeH/2gAMAwEAAhEDEQA/APVK/V36dU6NSJDTT8esPLiqfK8S2cCoeTkKvZQ6jm2ldSqKqbu+OgMOvSX3m4UBrLnDlbqiefKl'.
-'Nzz2x1m+IwNP27CkJQ7JkR6rCkMJbP5jp8S2CPfkgD6H+dJ6Ca0nerr+64rTNSqMYrg+C9mmOwhVpDfsuxSbi97DmybaoZeQ5jTl'.
-'PEp18JTIfeW3kq3ly4H26aNZqvTWZsjFcZTsVtSg0G8Rio+vr2vb7g6NLPRnuXy8F+8kl+obUh4KXJdqSJJQnohlkZqJPYBXh3P+'.
-'a4b5Hyp6k1bO7sOotPyXkj9NlwFl0ewstJA9ifrqkVSmET4csoS7UTHXFQ+6SQlskKUMb/tH9ddLVUmS7DqdBqD7U6OsqfS46jzl'.
-'hQ5bXb1K9Scuybdxo2OTu92dwSZkWn0Sb8viQWyn8Qq5D6ifSLd0BIv7q0arTBRSKPToMZbi2GWylsvLK148Wue/XRrRjxOpT2R2'.
-'k9aP/9k=' ; 
-
-//==========================================================
-// lr-small.jpg
-//==========================================================
-$this->chars['r'][0]= 681 ;
-$this->chars['r'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAYCBQMEB//EAC4QAAICAQIFAgMJAQAAAAAA'.
-'AAECAwQRBQYAEiExQQdRFGFxEyIyM0JSYoGC8P/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/EABcRAQEBAQAAAAAAAAAAAAAAAAAB'.
-'EUH/2gAMAwEAAhEDEQA/AOs0ZdETU54Gt1INSmlPJEsyo7J+jlXPUYBPY9c+eE/dO9tY0a7ren6BVrW7VJTZtW5kZkjXkBSIKveQ'.
-'gHp0AAJ4w+q2hVdT2Md0h46+saS4mr3EUK0gWTAB+vQj2PboeL/ZVOqmhaZVjkFmxdC6tctt3tM2G5/7bAx4C4+qxiWwd3prWzKe'.
-'r3IBAth5OYxozKsgc8y4GTgnJB9uncdTi6tXq2140rRVM13JMEMAVAg7sMdBjJB/18uDgRO9R2Oo6FX2vShkFzURFUq1whIj+8DI'.
-'7EdAFjXv7MeNb0kuStsFEmIaajZaos2fy2Q4VGH7SGxn+Rzw9yMLOm/FzRhZazmOTkP4grYyD3B8j2PTyeFfZ+z7G3BeSS8lmprl'.
-'2K2qcnK0Z5S8gPjrgAY8cNEWmq7u23pEos6/Zji+Kd0rLLGWwseA3joeZj/w4OET1g0vlmrWV+ydFnkUxSgsvM4V+YYIwfHz6cHB'.
-'ZeKZ1//Z' ; 
-
-//==========================================================
-// lg-small.jpg
-//==========================================================
-$this->chars['g'][0]= 655 ;
-$this->chars['g'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQCBQYH/8QAJxAAAQQBAwQCAgMAAAAAAAAA'.
-'AQIDBBEFAAYhBxIxQRNhcYEiQlH/xAAYAQACAwAAAAAAAAAAAAAAAAACAwABBP/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEhIv/a'.
-'AAwDAQACEQMRAD8AayO4t6bq3hmMHtxyLi4OKeKH5jyASiiQCCQeTRNAeB61FrBb+jTGpLO+BMW24EFMhkhpQru8m7B/H70x09Yi'.
-'q3nv/vLfwpnJ7UNkqSRbngf2ofWkpXV7brymC2malLfagurjW0aHk89xPJ9cX9aprURHWbYEaMHHEBfwpv8AnXPk+/8AdGqGJOxO'.
-'4YbOSxK4y4boIStUWysgkEmxY54r60aOI8oTV9MHtjJwunPUbO46WWo0HLlD8KY4goboFVoquOVEVwLT963WdnxYfT6ZJyz0JvHm'.
-'KvtaSkW4tYNVSqKiTwB+fw5n9sY/cuOXCzDDcluyW3Ckd7V+0n0eNZTH9DdouFalHIOJBUhtDki0pNV3UALo81ehG6IdKjPZ6d47'.
-'4ywltanVJvuJI+RQs/sHRqy2r003JhsImEc/CUyhxRZBjKV2oJ8eRXNmufPnRo1WIz3DdNn/2Q==' ;
-
-//==========================================================
-// lc-small.jpg
-//==========================================================
-$this->chars['c'][0]= 629 ;
-$this->chars['c'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBwID/8QALRAAAgICAQIEBAYDAAAAAAAA'.
-'AQIDBAURACExBhIiQRMVUWEHMkJScYFykaH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAAAATER'.
-'/9oADAMBAAIRAxEAPwDcoGkmiT4Q8kWvzuPU38D2/v8A1zwrCFayq1qTaFk2H7aJHt05MeMvENzC4upDWkjW9kJXiricAJCigvJN'.
-'IB1IVQT5frrv24twPgunk6a288crbklUSJNNdnSTZ2STHHqOP/Eb17njdZtAoqwEvrEiGVyG117/AG6HhyV8H1sljMldoxXTksGC'.
-'zV7M0oaWGQOVeGQ92I6EMR22D11w4LmEPjaOL51iL8ssc9Z69zHtZkYCGGeQK0ez2UEoU39wCeX1S/LLiEt+mPSbMLxsGVv2kEjR'.
-'305xkaEV/GTULMUT1LD/AAGh8gIZS2jv+vpybb8NMIb0dVLWYWgiiU0vmMphOj6V0TvQI3rfsON1E6dYjGtisa0F1mAWR2NhG0WZ'.
-'3Ls3TqNs5Hc9h23w49NWL9K+Q/VD5T/zhwPH/9k=' ; 
-
-//==========================================================
-// d7-small.jpg
-//==========================================================
-$this->chars['7'][0]= 658 ;
-$this->chars['7'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'.
-'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'.
-'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'.
-'19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'.
-'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'.
-'8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'.
-'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; 
-
-//==========================================================
-// ly-small.jpg
-//==========================================================
-$this->chars['y'][0]= 672 ;
-$this->chars['y'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQGBQf/xAArEAABAwMEAQIFBQAAAAAAAAAB'.
-'AgMEBREhAAYSEzEHIhQkQVGxQmFxgaH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/xAAeEQEAAgEEAwAAAAAAAAAAAAABABECAxIh'.
-'MUGR8P/aAAwDAQACEQMRAD8Ar3tys07dVHohemz5dWQ7fk91MsA3IIRY8rkKFySceTqw3JVV0KhyKw+0C1CQp9aUOFSiAk4AIAvn'.
-'76xtz0ioVvbcJ6msx2JtOfZmw1PKI5LQcJNh7UqBKcn6+NRfqPu6s1fYc6GxSJsRfWDUVSGA22ygEckJWSexRNgOP0udXzDKOJ0I'.
-'yo62mHm25Sy80l1Z4lSgpQvZRGLgWwPGjTjbchyLH+Ejx22EtJSgO8kki3kADA/nOjWjGzv73CyQZjUWNVp7bNSrj7qJDqflqUlQ'.
-'DMds24l3HvcNr3Pi9gME6T9WWVsemdYWswwC2lPta4m5WMA3OdUExCmozUJD6g84ntMjrHIFBTdQz5yLDx/WDNytpwW6nAkViqVe'.
-'uvmXdlme6n4dCwlRBKEgA2tj99QG7Ilncp5QqpU31PMsJ6x7A32f6SPxo0hPVCD45oVyKf0MtgeT97/nRrO7UOCFla3tn//Z' ; 
-
-//==========================================================
-// d3-small.jpg
-//==========================================================
-$this->chars['3'][0]= 662 ;
-$this->chars['3'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'.
-'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'.
-'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'.
-'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'.
-'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'.
-'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'.
-'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; 
-
-//==========================================================
-// ln-small.jpg
-//==========================================================
-$this->chars['n'][0]= 643 ;
-$this->chars['n'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAAAAYCAQMEBQf/xAAtEAACAQMCBAUCBwAAAAAA'.
-'AAABAgMEBREAIQYSE0EHIjFRcWGRIzIzQoGCwf/EABYBAQEBAAAAAAAAAAAAAAAAAAMEAP/EABkRAQEBAQEBAAAAAAAAAAAAAAEA'.
-'AhEhUf/aAAwDAQACEQMRAD8A6FR3p7v4oV9rlkMQsjL00RyOss0KkFxnDcrc2PbI1NOJKyTjW+W5OmKeA0UEJx5meRZS2/8AUfbS'.
-'LVGS1+K16vCzfiR3GmoqqXGyxz06hWPsFlVMfOmq1iNvE69KjBYo3oJMZ3GKeYYPxg/fW+xzZX1FLQyxwSTcpWNceu4G3+aNSmpY'.
-'qmQzzwh2k8yhv2r2H23/AJ0aoy+EWh7I1ntacR3PxDtEzhjWy0wkkIwYmanU5GO6sNh7rrU8AVdTceNbhDXxNHUQvS0tZ3DzwxVA'.
-'fB7hj59/XJ08cPWaKj4gvlwSQiG7dCboqvLy9NOmQT9SM7ayJrBa6K5V91hjlWorp4JGUOAglRSiMMDb82/vgaBGTpVvtNUVtyJg'.
-'5+WNAh5ZCu/r2+dGrgq0pi0DhmlRsSSAfqMd+b6ZyNu3po1Rk1yNBe3/2Q==' ; 
-
-//==========================================================
-// lu-small.jpg
-//==========================================================
-$this->chars['u'][0]= 671 ;
-$this->chars['u'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYDBAUH/8QAJRAAAQQBAwQDAQEAAAAAAAAA'.
-'AQIDBBEFAAYhBxMxYRJBURSB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAD/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQARITFBAv/aAAwD'.
-'AQACEQMRAD8A6dLkQmJzu3WVtHIqjf0duKFNuBr5UTQ45F1R8/XI1PMmsYoJyjhS9iI7BKHeKjkXZVXqhyLHP+rrHeR1pZlx1W1M'.
-'wTiW0ukkrS28nn5fV2SPPFfurHUKQhzYG7pLYKEfyBhaSOS7dG/YCki/uvWn3LPDOJrwa4kyEzOYeakqkpC3Hk0bNePQHgDRpchY'.
-'leIZwzUWauKtuPctTSUlCAUmrBHIKuAPV/ujQsmHdm7hya43UbbD3ZVElOQJsdTS6IQaQUqBHCk8E2Pocgam6oYwObHy0Zm0oi45'.
-'T1KBPdpV2f0pom/1Ws7cmPazu98Ltvcq3VzRHfehz8a4pirFEKRZo8eQT+eCdWYfS/b+WYnxpbuVcDRMdHcyTqg2fiAfiLoi+Rf+'.
-'jT7Xc74HtOYnHyUOh8yWUvKeHhy0CiPVUAPoDRrm+OeznTva6lzsyMjCYbbaiNJjJSWElagD5tRpNUSALFeNGoOCH7Bv/9k=' ; 
-
-//==========================================================
-// lw-small.jpg
-//==========================================================
-$this->chars['w'][0]= 673 ;
-$this->chars['w'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYDBAX/xAAtEAACAQMDAgMHBQAAAAAAAAAB'.
-'AgMEBREABhIhMRMUQRUiIzJRYZEWNIGx0f/EABYBAQEBAAAAAAAAAAAAAAAAAAABA//EABoRAAICAwAAAAAAAAAAAAAAAAABERIh'.
-'MVH/2gAMAwEAAhEDEQA/AHXbV13ZLu6t2/uaa1JijWopVp4XUTKSAXRyc+6ehBGeoPbTSlwpql0K3GneqpZViqUhI5JzGMEZJGeh'.
-'GlXfaFILDf7FQzXC426rDLTojs8sLqVkXBGcfKf40twWbdWzZY75R0s90ul3jPtKjVMJDNn4DDp8iEhW+wJ1WZG2KWt3Lv26U1tv'.
-'92o7PaYkgYUbqVepYlmUBlIwqnB++O2jTDt/bBtth9jcpvEWNGqalZQryTlmeR8jPct6+mNGmRC4a1U13htzVFItB5nA/cyOUVfp'.
-'7oz/ALqitJulYJKuqvFsppHALLFb3cp9FBaXr+O51bq0q6i38KK5PDVAAxSzU6SIpz3Kjjn8jUFoS7uFmut1gq17xLFQ+DxOccj8'.
-'Rsn+tVpiyJnqv09YfOXu5AycgZZQEhBZjgDBOOgwO/po0sttWHdNzqLruioa4UwmdaC3kYp4IwSvJlBHKQ4OSe3po0qxM6P/2Q==' ;
-
-//==========================================================
-// lq-small.jpg
-//==========================================================
-$this->chars['q'][0]= 671 ;
-$this->chars['q'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAcDBAUG/8QAKRAAAQQBBAICAQQDAAAAAAAA'.
-'AQIDBBEFAAYSIQcxIlETCBQVgSNBYf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oADAMB'.
-'AAIRAxEAPwDT3H5Qz+O3LN2vtrF/y86NYLzzVlAABJITQPv2a/17vXMboz3lDEYWPuafNx7CFrS03+2jpK2bs0CUkUa7pRvrUu63'.
-'sr438yv7pLEo4XIK5Kcji0uJUkckm+uQUOVH6GsnyJv7A5vaJwuFdkONLmolgONFH4vioKRXYqyCADXvRMh0yspmZ4jyIEtDTK47'.
-'aiA0lQUopBJBI/7X9aNT7amRo228e3a31iO3yUzCcdSPiKAIFdCho0TIswZ7GQlO/hlRxBooih1YXzAoKUkX0LPEBX110dJ7zbuv'.
-'AORpO04cIpmxH23FSEIRwKuNnsdk0o31702XhFMKbuRUZJWP8LTQ6HBCuIB+iVWSR2BXuqK93/hDlvGzEphmG3Ml5JpDi1I7TzNA'.
-'BYFlPafY+/7LBiv1CYDH4iFDOGySlMR22lFP4wCUpANfL11o1r4bxXlWMNEaE/bqlIbCFl/ANPK5Do/M0VDr2Rf3o0TX/9k=' ;
-
-
-
-    } 
-}
-
-class AntiSpam {
-
-    var $iData='';
-    var $iDD=null;
-
-    function AntiSpam($aData='') {
-	$this->iData = $aData;
-	$this->iDD = new HandDigits();	
-    }
-
-    function Set($aData) {
-	$this->iData = $aData;
-    }
-
-    function Rand($aLen) {
-	$d='';
-	for($i=0; $i < $aLen; ++$i) {
-	    if( rand(0,9) < 6 ) {
-		// Digits
-		$d .= chr( ord('1') + rand(0,8) );
-	    }
-	    else {
-		// Letters
-		do {
-		    $offset = rand(0,25);
-		} while ( $offset==14 );
-		$d .= chr( ord('a') + $offset );
-	    }
-	}
-	$this->iData = $d;
-	return $d;
-    }
-
-    function Stroke($aStrokeFileName="") {
-
-	$n=strlen($this->iData);
-	if( $n==0 ) {
-	    return false;
-	}
-
-	for($i=0; $i < $n; ++$i ) {
-	    if( $this->iData[$i]==='0' || strtolower($this->iData[$i])==='o') {
-		return false;
-	    }
-	}
-
-	$img = @imagecreatetruecolor($n*$this->iDD->iWidth, $this->iDD->iHeight);
-	if( $img < 1 ) {
-	    return false;
-	}
-
-	$start=0;
-	for($i=0; $i < $n; ++$i ) {
-	    $dimg = imagecreatefromstring(base64_decode($this->iDD->chars[strtolower($this->iData[$i])][1]));
-	    imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $this->iDD->iHeight);
-	    $start += imagesx($dimg);
-	}
-	$resimg = @imagecreatetruecolor($start+4, $this->iDD->iHeight+4);
-	if( $resimg < 1 ) {
-	    return false;
-	}
-
-	imagecopy($resimg,$img,2,2,0,0,$start, $this->iDD->iHeight);
-
-	if( $aStrokeFileName!="" ) {
-	    if( file_exists($aStrokeFileName) ) {
-		if( !@unlink($aStrokeFileName) )
-		    return false;
-	    }
-	    imagejpeg($resimg,$aStrokeFileName);
-	    return;
-	}
-
-	header("Content-type: image/jpeg");
-	$res=imagejpeg($resimg);
-	return $res;
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_bar.php b/nightly-test-server/jpgraph/jpgraph_bar.php
deleted file mode 100644
index b40d6ce..0000000
--- a/nightly-test-server/jpgraph/jpgraph_bar.php
+++ /dev/null
@@ -1,969 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_BAR.PHP
-// Description:	Bar plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotband.php');
-
-// Pattern for Bars
-DEFINE('PATTERN_DIAG1',1);
-DEFINE('PATTERN_DIAG2',2);
-DEFINE('PATTERN_DIAG3',3);
-DEFINE('PATTERN_DIAG4',4);
-DEFINE('PATTERN_CROSS1',5);
-DEFINE('PATTERN_CROSS2',6);
-DEFINE('PATTERN_CROSS3',7);
-DEFINE('PATTERN_CROSS4',8);
-DEFINE('PATTERN_STRIPE1',9);
-DEFINE('PATTERN_STRIPE2',10);
-
-//===================================================
-// CLASS BarPlot
-// Description: Main code to produce a bar plot 
-//===================================================
-class BarPlot extends Plot {
-    var $width=0.4; // in percent of major ticks
-    var $abswidth=-1; // Width in absolute pixels
-    var $fill=false,$fill_color="lightblue"; // Default is to fill with light blue
-    var $ybase=0; // Bars start at 0 
-    var $align="center";
-    var $grad=false,$grad_style=1;
-    var $grad_fromcolor=array(50,50,200),$grad_tocolor=array(255,255,255);
-    var $bar_shadow=false;
-    var $bar_shadow_color="black";
-    var $bar_shadow_hsize=3,$bar_shadow_vsize=3;	
-    var $valuepos='top';
-    var $iPattern=-1,$iPatternDensity=80,$iPatternColor='black';
-	
-//---------------
-// CONSTRUCTOR
-    function BarPlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);		
-	++$this->numpoints;
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-    // Set a drop shadow for the bar (or rather an "up-right" shadow)
-    function SetShadow($color="black",$hsize=3,$vsize=3,$show=true) {
-	$this->bar_shadow=$show;
-	$this->bar_shadow_color=$color;
-	$this->bar_shadow_vsize=$vsize;
-	$this->bar_shadow_hsize=$hsize;
-		
-	// Adjust the value margin to compensate for shadow
-	$this->value->margin += $vsize;
-    }
-		
-    // DEPRECATED use SetYBase instead
-    function SetYMin($aYStartValue) {
-	//die("JpGraph Error: Deprecated function SetYMin. Use SetYBase() instead.");    	
-	$this->ybase=$aYStartValue;
-    }
-
-    // Specify the base value for the bars
-    function SetYBase($aYStartValue) {
-	$this->ybase=$aYStartValue;
-    }
-	
-    function Legend(&$graph) {
-	if( $this->grad && $this->legend!="" && !$this->fill ) {
-	    $color=array($this->grad_fromcolor,$this->grad_tocolor);
-	    // In order to differentiate between gradients and cooors specified as an RGB triple
-	    $graph->legend->Add($this->legend,$color,"",-$this->grad_style,
-				$this->legendcsimtarget,$this->legendcsimalt);
-	}
-	elseif( $this->legend!="" && ($this->iPattern > -1 || is_array($this->iPattern)) ) {
-	    if( is_array($this->iPattern) ) {
-		$p1 = $this->iPattern[0];
-		$p2 = $this->iPatternColor[0];
-		$p3 = $this->iPatternDensity[0];
-	    }
-	    else {
-		$p1 = $this->iPattern;
-		$p2 = $this->iPatternColor;
-		$p3 = $this->iPatternDensity;
-	    }
-	    $color = array($p1,$p2,$p3,$this->fill_color);
-	    // A kludge: Too mark that we add a pattern we use a type value of < 100
-	    $graph->legend->Add($this->legend,$color,"",-101,
-				$this->legendcsimtarget,$this->legendcsimalt);
-	}
-	elseif( $this->fill_color && $this->legend!="" ) {
-	    if( is_array($this->fill_color) ) {
-		$graph->legend->Add($this->legend,$this->fill_color[0],"",0,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }
-	    else {
-		$graph->legend->Add($this->legend,$this->fill_color,"",0,
-				    $this->legendcsimtarget,$this->legendcsimalt);	
-	    }
-	}
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	parent::PreStrokeAdjust($graph);
-
-	// If we are using a log Y-scale we want the base to be at the
-	// minimum Y-value unless the user have specifically set some other
-	// value than the default.
-	if( substr($graph->axtype,-3,3)=="log" && $this->ybase==0 )
-	    $this->ybase = $graph->yaxis->scale->GetMinVal();
-		
-	// For a "text" X-axis scale we will adjust the
-	// display of the bars a little bit.
-	if( substr($graph->axtype,0,3)=="tex" ) {
-	    // Position the ticks between the bars
-	    $graph->xaxis->scale->ticks->SetXLabelOffset(0.5,0);
-
-	    // Center the bars 
-	    if( $this->abswidth > -1 ) {
-		$graph->SetTextScaleAbsCenterOff($this->abswidth);
-	    }
-	    else {
-		if( $this->align == "center" )
-		    $graph->SetTextScaleOff(0.5-$this->width/2);
-		elseif( $this->align == "right" )
-		    $graph->SetTextScaleOff(1-$this->width);			
-	    }
-
-	}
-	elseif( is_a($this,'AccBarPlot') || is_a($this,'GroupBarPlot') ) { 
-	    // We only set an absolute width for linear and int scale
-	    // for text scale the width will be set to a fraction of
-	    // the majstep width.
-	    if( $this->abswidth == -1 ) {
-                // Not set
-		// set width to a visuable sensible default
-		$this->abswidth = $graph->img->plotwidth/(2*count($this->coords[0]));
-	    }
-	}
-    }
-
-    function Min() {
-	$m = parent::Min();
-	if( $m[1] >= $this->ybase )
-	    $m[1] = $this->ybase;
-	return $m;	
-    }
-
-    function Max() {
-	$m = parent::Max();
-	if( $m[1] <= $this->ybase )
-	    $m[1] = $this->ybase;
-	return $m;	
-    }	
-	
-    // Specify width as fractions of the major stepo size
-    function SetWidth($aWidth) {
-	if( $aWidth > 1 ) {
-	    // Interpret this as absolute width
-	    $this->abswidth=$aWidth;
-	}
-	else
-	    $this->width=$aWidth;
-    }
-	
-    // Specify width in absolute pixels. If specified this
-    // overrides SetWidth()
-    function SetAbsWidth($aWidth) {
-	$this->abswidth=$aWidth;
-    }
-		
-    function SetAlign($aAlign) {
-	$this->align=$aAlign;
-    }
-	
-    function SetNoFill() {
-	$this->grad = false;
-	$this->fill_color=false;
-	$this->fill=false;
-    }
-		
-    function SetFillColor($aColor) {
-	$this->fill = true ;
-	$this->fill_color=$aColor;
-    }
-	
-    function SetFillGradient($from_color,$to_color,$style) {
-	$this->grad=true;
-	$this->grad_fromcolor=$from_color;
-	$this->grad_tocolor=$to_color;
-	$this->grad_style=$style;
-    }
-	
-    function SetValuePos($aPos) {
-	$this->valuepos = $aPos;
-    }
-
-    function SetPattern($aPattern, $aColor='black'){
-	if( is_array($aPattern) ) {
-	    $n = count($aPattern);
-	    $this->iPattern = array();
-	    $this->iPatternDensity = array();
-	    if( is_array($aColor) ) {
-		$this->iPatternColor = array();
-		if( count($aColor) != $n ) {
-		    JpGraphError::RaiseL(2001);//('NUmber of colors is not the same as the number of patterns in BarPlot::SetPattern()');
-		}
-	    }
-	    else
-		$this->iPatternColor = $aColor;
-	    for( $i=0; $i < $n; ++$i ) {
-		$this->_SetPatternHelper($aPattern[$i], $this->iPattern[$i], $this->iPatternDensity[$i]);
-		if( is_array($aColor) ) {
-		    $this->iPatternColor[$i] = $aColor[$i];
-		}
-	    }
-	}
-	else {
-	    $this->_SetPatternHelper($aPattern, $this->iPattern, $this->iPatternDensity);
-	    $this->iPatternColor = $aColor;
-	}
-    }
-
-    function _SetPatternHelper($aPattern, &$aPatternValue, &$aDensity){
-	switch( $aPattern ) {
-	    case PATTERN_DIAG1:
-		$aPatternValue= 1;
-		$aDensity = 90;
-		break;
-	    case PATTERN_DIAG2:
-		$aPatternValue= 1;
-		$aDensity = 75;
-		break;
-	    case PATTERN_DIAG3:
-		$aPatternValue= 2;
-		$aDensity = 90;
-		break;
-	    case PATTERN_DIAG4:
-		$aPatternValue= 2;
-		$aDensity = 75;
-		break;
-	    case PATTERN_CROSS1:
-		$aPatternValue= 8;
-		$aDensity = 90;
-		break;
-	    case PATTERN_CROSS2:
-		$aPatternValue= 8;
-		$aDensity = 78;
-		break;
-	    case PATTERN_CROSS3:
-		$aPatternValue= 8;
-		$aDensity = 65;
-		break;
-	    case PATTERN_CROSS4:
-		$aPatternValue= 7;
-		$aDensity = 90;
-		break;
-	    case PATTERN_STRIPE1:
-		$aPatternValue= 5;
-		$aDensity = 95;
-		break;
-	    case PATTERN_STRIPE2:
-		$aPatternValue= 5;
-		$aDensity = 85;
-		break;
-	    default:
-		JpGraphError::RaiseL(2002);//('Unknown pattern specified in call to BarPlot::SetPattern()');
-	}
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) { 
-		
-	$numpoints = count($this->coords[0]);
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])."Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-		
-		
-	$numbars=count($this->coords[0]);
-
-	// Use GetMinVal() instead of scale[0] directly since in the case
-	// of log scale we get a correct value. Log scales will have negative
-	// values for values < 1 while still not representing negative numbers.
-	if( $yscale->GetMinVal() >= 0 ) 
-	    $zp=$yscale->scale_abs[0]; 
-	else {
-	    $zp=$yscale->Translate(0);
-	}
-
-	if( $this->abswidth > -1 ) {
-	    $abswidth=$this->abswidth;
-	}
-	else
-	    $abswidth=round($this->width*$xscale->scale_factor,0);
-
-	// Count potential pattern array to avoid doing the count for each iteration
-	if( is_array($this->iPattern) ) {
-	    $np = count($this->iPattern);
-	}
-					
-	for($i=0; $i < $numbars; ++$i) {
-
- 	    // If value is NULL, or 0 then don't draw a bar at all
- 	    if ($this->coords[0][$i] === null ||
-		$this->coords[0][$i] === '' ||
-		$this->coords[0][$i] === 0 ) continue;    
-
-	    if( $exist_x ) $x=$this->coords[1][$i];
-	    else $x=$i;
-			
-	    $x=$xscale->Translate($x);
-
-// Comment Note: This confuses the positioning when using acc together with 
-// grouped bars. Workaround for fixing #191
-/*
-	    if( !$xscale->textscale ) {
-	    	if($this->align=="center")
-		    $x -= $abswidth/2;
-		elseif($this->align=="right")
-		    $x -= $abswidth;			
-	    }
-
-*/
-	    // Stroke fill color and fill gradient
-	    $pts=array(
-		$x,$zp,
-		$x,$yscale->Translate($this->coords[0][$i]),
-		$x+$abswidth,$yscale->Translate($this->coords[0][$i]),
-		$x+$abswidth,$zp);
-	    if( $this->grad ) {
-		$grad = new Gradient($img);
-		$grad->FilledRectangle($pts[2],$pts[3],
-				       $pts[6],$pts[7],
-				       $this->grad_fromcolor,$this->grad_tocolor,$this->grad_style); 
-	    }
-	    elseif( !empty($this->fill_color) ) {
-		if(is_array($this->fill_color)) {
-		    $img->PushColor($this->fill_color[$i % count($this->fill_color)]);
-		} else {
-		    $img->PushColor($this->fill_color);
-		}
-		$img->FilledPolygon($pts);
-		$img->PopColor();
-	    }
- 
-			
-	    // Remember value of this bar
-	    $val=$this->coords[0][$i];
-
-	    if( !empty($val) && !is_numeric($val) ) {
-		JpGraphError::RaiseL(2004,$i,$val);
-//('All values for a barplot must be numeric. You have specified value['.$i.'] == \''.$val.'\'');
-	    }
-
-	    // Determine the shadow
-	    if( $this->bar_shadow && $val != 0) {
-
-		$ssh = $this->bar_shadow_hsize;
-		$ssv = $this->bar_shadow_vsize;
-		// Create points to create a "upper-right" shadow
-		if( $val > 0 ) {
-		    $sp[0]=$pts[6];		$sp[1]=$pts[7];
-		    $sp[2]=$pts[4];		$sp[3]=$pts[5];
-		    $sp[4]=$pts[2];		$sp[5]=$pts[3];
-		    $sp[6]=$pts[2]+$ssh;	$sp[7]=$pts[3]-$ssv;
-		    $sp[8]=$pts[4]+$ssh;	$sp[9]=$pts[5]-$ssv;
-		    $sp[10]=$pts[6]+$ssh;	$sp[11]=$pts[7]-$ssv;
-		} 
-		elseif( $val < 0 ) {
-		    $sp[0]=$pts[4];		$sp[1]=$pts[5];
-		    $sp[2]=$pts[6];		$sp[3]=$pts[7];
-		    $sp[4]=$pts[0];		$sp[5]=$pts[1];
-		    $sp[6]=$pts[0]+$ssh;	$sp[7]=$pts[1]-$ssv;
-		    $sp[8]=$pts[6]+$ssh;	$sp[9]=$pts[7]-$ssv;
-		    $sp[10]=$pts[4]+$ssh;	$sp[11]=$pts[5]-$ssv;
-		}
-		if( is_array($this->bar_shadow_color) ) {
-		    $numcolors = count($this->bar_shadow_color);
-		    if( $numcolors == 0 ) {
-			JpGraphError::RaiseL(2005);//('You have specified an empty array for shadow colors in the bar plot.');
-		    }
-		    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);
-		}
-		else {
-		    $img->PushColor($this->bar_shadow_color);
-		}
-		$img->FilledPolygon($sp);
-		$img->PopColor();
-	    }
-			
-	    // Stroke the pattern
-	    if( is_array($this->iPattern) ) {
-		$f = new RectPatternFactory();
-		if( is_array($this->iPatternColor) ) {
-		    $pcolor = $this->iPatternColor[$i % $np];
-		}
-		else
-		    $pcolor = $this->iPatternColor;
-		$prect = $f->Create($this->iPattern[$i % $np],$pcolor,1);
-		$prect->SetDensity($this->iPatternDensity[$i % $np]);
-
-		if( $val < 0 ) {
-		    $rx = $pts[0];
-		    $ry = $pts[1];
-		}
-		else {
-		    $rx = $pts[2];
-		    $ry = $pts[3];
-		}
-		$width = abs($pts[4]-$pts[0])+1;
-		$height = abs($pts[1]-$pts[3])+1;
-		$prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		$prect->Stroke($img);
-	    }
-	    else {
-		if( $this->iPattern > -1 ) {
-		    $f = new RectPatternFactory();
-		    $prect = $f->Create($this->iPattern,$this->iPatternColor,1);
-		    $prect->SetDensity($this->iPatternDensity);
-		    if( $val < 0 ) {
-			$rx = $pts[0];
-			$ry = $pts[1];
-		    }
-		    else {
-			$rx = $pts[2];
-			$ry = $pts[3];
-		    }
-		    $width = abs($pts[4]-$pts[0])+1;
-		    $height = abs($pts[1]-$pts[3])+1;
-		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		    $prect->Stroke($img);
-		}
-	    }
-	    // Stroke the outline of the bar
-	    if( is_array($this->color) )
-		$img->SetColor($this->color[$i % count($this->color)]);
-	    else
-		$img->SetColor($this->color);
-
-	    $pts[] = $pts[0];
-	    $pts[] = $pts[1];
-
-	    if( $this->weight > 0 ) {
-		$img->SetLineWeight($this->weight);
-		$img->Polygon($pts);
-	    }
-			
-	    // Determine how to best position the values of the individual bars
-	    $x=$pts[2]+($pts[4]-$pts[2])/2;
-	    if( $this->valuepos=='top' ) {
-		$y=$pts[3];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('right','center');			
-		    else
-			$this->value->SetAlign('left','center');
-			
-		}
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='max' ) {
-		$y=$pts[3];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('left','center');
-		    else
-			$this->value->SetAlign('right','center');		    
-		}
-		else {
-		    $this->value->SetAlign('center','top');
-		}
-		$this->value->SetMargin(-3);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='center' ) {
-		$y = ($pts[3] + $pts[1])/2;
-		$this->value->SetAlign('center','center');
-		$this->value->SetMargin(0);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='bottom' || $this->valuepos=='min' ) {
-		$y=$pts[1];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('right','center');
-		    else
-			$this->value->SetAlign('left','center');		    		    
-		}
-		$this->value->SetMargin(3);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    else {
-		JpGraphError::RaiseL(2006,$this->valuepos);
-//('Unknown position for values on bars :'.$this->valuepos);
-	    }
-	    if( !empty($this->csimtargets[$i]) ) {
-		// Create the client side image map
-		$rpts = $img->ArrRotate($pts);		
-		$csimcoord=round($rpts[0]).", ".round($rpts[1]);
-		for( $j=1; $j < 4; ++$j){
-		    $csimcoord .= ", ".round($rpts[2*$j]).", ".round($rpts[2*$j+1]);
-		}	    	    
-		$this->csimareas .= '<area shape="poly" coords="'.$csimcoord.'" ';    	    
-		$this->csimareas .= " href=\"".htmlentities($this->csimtargets[$i])."\"";
-		$sval='';
-		if( !empty($this->csimalts[$i]) ) {
-		    $sval=sprintf($this->csimalts[$i],$this->coords[0][$i]);
-		    $this->csimareas .= " title=\"$sval\" ";
-		}
-		$this->csimareas .= " alt=\"$sval\" />\n";
-	    }
-	}
-	return true;
-    }
-} // Class
-
-//===================================================
-// CLASS GroupBarPlot
-// Description: Produce grouped bar plots
-//===================================================
-class GroupBarPlot extends BarPlot {
-    var $plots=array(), $nbrplots=0;
-    var $numpoints;
-//---------------
-// CONSTRUCTOR
-    function GroupBarPlot($plots) {
-	$this->width=0.5;
-	$this->plots = $plots;
-	$this->nbrplots = count($plots);
-	if( $this->nbrplots < 1 ) {
-	    JpGraphError::RaiseL(2007);//('Cannot create GroupBarPlot from empty plot array.');
-	}
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) {
-		JpGraphError::RaiseL(2008,$i);//("Group bar plot element nbr $i is undefined or empty.");
-	    }
-	}
-	$this->numpoints = $plots[0]->numpoints;
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $c = get_class($this->plots[$i]);
-	    if( !is_a($this->plots[$i],'BarPlot') ) {
-		JpGraphError::RaiseL(2009,$c);//('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the Group Bar plot from an array of BarPlot or AccBarPlot objects. (Class = '.$c.')');
-	    }
-	    $this->plots[$i]->DoLegend($graph);
-	}
-    }
-	
-    function Min() {
-	list($xmin,$ymin) = $this->plots[0]->Min();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    list($xm,$ym) = $this->plots[$i]->Min();
-	    $xmin = max($xmin,$xm);
-	    $ymin = min($ymin,$ym);
-	}
-	return array($xmin,$ymin);		
-    }
-	
-    function Max() {
-	list($xmax,$ymax) = $this->plots[0]->Max();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    list($xm,$ym) = $this->plots[$i]->Max();
-	    $xmax = max($xmax,$xm);
-	    $ymax = max($ymax,$ym);
-	}
-	return array($xmax,$ymax);
-    }
-	
-    function GetCSIMareas() {
-	$n = count($this->plots);
-	$csimareas='';
-	for($i=0; $i < $n; ++$i) {
-	    $csimareas .= $this->plots[$i]->csimareas;
-	}
-	return $csimareas;
-    }
-	
-    // Stroke all the bars next to each other
-    function Stroke(&$img,&$xscale,&$yscale) { 
-	$tmp=$xscale->off;
-	$n = count($this->plots);
-	$subwidth = $this->width/$this->nbrplots ; 
-
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->plots[$i]->ymin=$this->ybase;
-	    $this->plots[$i]->SetWidth($subwidth);
-	    
-	    // If the client have used SetTextTickInterval() then
-	    // major_step will be > 1 and the positioning will fail.
-	    // If we assume it is always one the positioning will work
-	    // fine with a text scale but this will not work with
-	    // arbitrary linear scale
-	    $xscale->off = $tmp+$i*round($xscale->scale_factor* $subwidth);
-	    $this->plots[$i]->Stroke($img,$xscale,$yscale);
-	}
-	$xscale->off=$tmp;
-    }
-} // Class
-
-//===================================================
-// CLASS AccBarPlot
-// Description: Produce accumulated bar plots
-//===================================================
-class AccBarPlot extends BarPlot {
-    var $plots=null,$nbrplots=0,$numpoints=0;
-//---------------
-// CONSTRUCTOR
-    function AccBarPlot($plots) {
-	$this->plots = $plots;
-	$this->nbrplots = count($plots);
-	if( $this->nbrplots < 1 ) {
-	    JpGraphError::RaiseL(2010);//('Cannot create AccBarPlot from empty plot array.');
-	}
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) {
-		JpGraphError::RaiseL(2011,$i);//("Acc bar plot element nbr $i is undefined or empty.");
-	    }
-	}
-	$this->numpoints = $plots[0]->numpoints;		
-	$this->value = new DisplayValue();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n = count($this->plots);
-	for( $i=$n-1; $i >= 0; --$i ) {
-	    $c = get_class($this->plots[$i]);
-	    if( !is_a($this->plots[$i],'BarPlot') ) {
-		JpGraphError::RaiseL(2012,$c);//('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects.(Class='.$c.')');
-	    }	    
-	    $this->plots[$i]->DoLegend($graph);
-	}
-    }
-
-    function Max() {
-	list($xmax) = $this->plots[0]->Max();
-	$nmax=0;
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $n = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$n);
-	    list($x) = $this->plots[$i]->Max();
-	    $xmax = max($xmax,$x);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for bar $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=0;
-	    if( !isset($this->plots[0]->coords[0][$i]) ) {
-		JpGraphError::RaiseL(2014);
-	    }
-	    if( $this->plots[0]->coords[0][$i] > 0 )
-		$y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		if( !isset($this->plots[$j]->coords[0][$i]) ) {
-		    JpGraphError::RaiseL(2014);
-		}
-		if( $this->plots[$j]->coords[0][$i] > 0 )
-		    $y += $this->plots[$j]->coords[0][$i];
-	    }
-	    $ymax[$i] = $y;
-	}
-	$ymax = max($ymax);
-
-	// Bar always start at baseline
-	if( $ymax <= $this->ybase ) 
-	    $ymax = $this->ybase;
-	return array($xmax,$ymax);
-    }
-
-    function Min() {
-	$nmax=0;
-	list($xmin,$ysetmin) = $this->plots[0]->Min();
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $n = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$n);
-	    list($x,$y) = $this->plots[$i]->Min();
-	    $xmin = Min($xmin,$x);
-	    $ysetmin = Min($y,$ysetmin);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for bar $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=0;
-	    if( $this->plots[0]->coords[0][$i] < 0 )
-		$y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		if( $this->plots[$j]->coords[0][$i] < 0 )
-		    $y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymin[$i] = $y;
-	}
-	$ymin = Min($ysetmin,Min($ymin));
-	// Bar always start at baseline
-	if( $ymin >= $this->ybase )
-	    $ymin = $this->ybase;
-	return array($xmin,$ymin);
-    }
-
-    // Stroke acc bar plot
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$pattern=NULL;
-	$img->SetLineWeight($this->weight);
-	for($i=0; $i < $this->numpoints-1; $i++) {
-	    $accy = 0;
-	    $accy_neg = 0; 
-	    for($j=0; $j < $this->nbrplots; ++$j ) {				
-		$img->SetColor($this->plots[$j]->color);
-
-		if ( $this->plots[$j]->coords[0][$i] >= 0) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);
-		    $accyt=$yscale->Translate($accy);
-		    $accy+=$this->plots[$j]->coords[0][$i];
-		}
-		else {
-		    //if ( $this->plots[$j]->coords[0][$i] < 0 || $accy_neg < 0 ) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);
-		    $accyt=$yscale->Translate($accy_neg);
-		    $accy_neg+=$this->plots[$j]->coords[0][$i];
-		}				
-				
-		$xt=$xscale->Translate($i);
-
-		if( $this->abswidth > -1 )
-		    $abswidth=$this->abswidth;
-		else
-		    $abswidth=round($this->width*$xscale->scale_factor,0);
-		
-		$pts=array($xt,$accyt,$xt,$yt,$xt+$abswidth,$yt,$xt+$abswidth,$accyt);
-
-		if( $this->bar_shadow ) {
-		    $ssh = $this->bar_shadow_hsize;
-		    $ssv = $this->bar_shadow_vsize;
-		    
-		    // We must also differ if we are a positive or negative bar. 
-		    if( $j === 0 ) {
-			// This gets extra complicated since we have to
-			// see all plots to see if we are negative. It could
-			// for example be that all plots are 0 until the very
-			// last one. We therefore need to save the initial setup
-			// for both the negative and positive case
-
-			// In case the final bar is positive
-			$sp[0]=$pts[6]+1; $sp[1]=$pts[7];
-			$sp[2]=$pts[6]+$ssh; $sp[3]=$pts[7]-$ssv;
-
-			// In case the final bar is negative
-			$nsp[0]=$pts[0]; $nsp[1]=$pts[1];
-			$nsp[2]=$pts[0]+$ssh; $nsp[3]=$pts[1]-$ssv;
-			$nsp[4]=$pts[6]+$ssh; $nsp[5]=$pts[7]-$ssv;
-			$nsp[10]=$pts[6]+1; $nsp[11]=$pts[7];
-		    }
-
-		    if( $j === $this->nbrplots-1 ) {
-			// If this is the last plot of the bar and
-			// the total value is larger than 0 then we
-			// add the shadow.
-			if( is_array($this->bar_shadow_color) ) {
-			    $numcolors = count($this->bar_shadow_color);
-			    if( $numcolors == 0 ) {
-				JpGraphError::RaiseL(2013);//('You have specified an empty array for shadow colors in the bar plot.');
-			    }
-			    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);
-			}
-			else {
-			    $img->PushColor($this->bar_shadow_color);
-			}
-
-			if( $accy > 0 ) {
-			    $sp[4]=$pts[4]+$ssh; $sp[5]=$pts[5]-$ssv;
-			    $sp[6]=$pts[2]+$ssh; $sp[7]=$pts[3]-$ssv;
-			    $sp[8]=$pts[2]; $sp[9]=$pts[3]-1;
-			    $sp[10]=$pts[4]+1; $sp[11]=$pts[5];
-			    $img->FilledPolygon($sp,4);
-			}
-			elseif( $accy_neg < 0 ) {
-			    $nsp[6]=$pts[4]+$ssh; $nsp[7]=$pts[5]-$ssv;
-			    $nsp[8]=$pts[4]+1; $nsp[9]=$pts[5];
-			    $img->FilledPolygon($nsp,4);
-			}
-			$img->PopColor();
-		    }
-		}
-
-
-		// If value is NULL or 0, then don't draw a bar at all
-		if ($this->plots[$j]->coords[0][$i] == 0 ) continue;
-
-		if( $this->plots[$j]->grad ) {
-		    $grad = new Gradient($img);
-		    $grad->FilledRectangle(
-			$pts[2],$pts[3],
-			$pts[6],$pts[7],
-			$this->plots[$j]->grad_fromcolor,
-			$this->plots[$j]->grad_tocolor,
-			$this->plots[$j]->grad_style);				
-		} else {
-		    if (is_array($this->plots[$j]->fill_color) ) {
-			$numcolors = count($this->plots[$j]->fill_color);
-			$img->SetColor($this->plots[$j]->fill_color[$i % $numcolors]);
-		    }
-		    else {
-			$img->SetColor($this->plots[$j]->fill_color);
-		    }
-		    $img->FilledPolygon($pts);
-		    $img->SetColor($this->plots[$j]->color);
-		}				  
-
-		// Stroke the pattern
-		if( $this->plots[$j]->iPattern > -1 ) {
-		    if( $pattern===NULL ) 
-			$pattern = new RectPatternFactory();
-		
-		    $prect = $pattern->Create($this->plots[$j]->iPattern,$this->plots[$j]->iPatternColor,1);
-		    $prect->SetDensity($this->plots[$j]->iPatternDensity);
-		    if( $this->plots[$j]->coords[0][$i] < 0 ) {
-			$rx = $pts[0];
-			$ry = $pts[1];
-		    }
-		    else {
-			$rx = $pts[2];
-			$ry = $pts[3];
-		    }
-		    $width = abs($pts[4]-$pts[0])+1;
-		    $height = abs($pts[1]-$pts[3])+1;
-		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		    $prect->Stroke($img);
-		}
-
-
-		// CSIM array
-
-		if( $i < count($this->plots[$j]->csimtargets) ) {
-		    // Create the client side image map
-		    $rpts = $img->ArrRotate($pts);		
-		    $csimcoord=round($rpts[0]).", ".round($rpts[1]);
-		    for( $k=1; $k < 4; ++$k){
-			$csimcoord .= ", ".round($rpts[2*$k]).", ".round($rpts[2*$k+1]);
-		    }	    	    
-		    if( ! empty($this->plots[$j]->csimtargets[$i]) ) {
-			$this->csimareas.= '<area shape="poly" coords="'.$csimcoord.'" '; 
-			$this->csimareas.= " href=\"".$this->plots[$j]->csimtargets[$i]."\"";
-			$sval='';
-			if( !empty($this->plots[$j]->csimalts[$i]) ) {
-			    $sval=sprintf($this->plots[$j]->csimalts[$i],$this->plots[$j]->coords[0][$i]);
-			    $this->csimareas .= " title=\"$sval\" ";
-			}
-			$this->csimareas .= " alt=\"$sval\" />\n";				
-		    }
-		}
-
-		$pts[] = $pts[0];
-		$pts[] = $pts[1];
-		$img->Polygon($pts);
-	    }
-		
-	    // Draw labels for each acc.bar
-	
-	    $x=$pts[2]+($pts[4]-$pts[2])/2;
-	    if($this->bar_shadow) $x += $ssh;
-
-	    // First stroke the accumulated value for the entire bar
-	    // This value is always placed at the top/bottom of the bars
-	    if( $accy_neg < 0 ) {
-		$y=$yscale->Translate($accy_neg);			
-		$this->value->Stroke($img,$accy_neg,$x,$y);
-	    }
-	    else {
-		$y=$yscale->Translate($accy);			
-		$this->value->Stroke($img,$accy,$x,$y);
-	    }
-
-	    $accy = 0;
-	    $accy_neg = 0; 
-	    for($j=0; $j < $this->nbrplots; ++$j ) {	
-
-		// We don't print 0 values in an accumulated bar plot
-		if( $this->plots[$j]->coords[0][$i] == 0 ) continue;
-			
-		if ($this->plots[$j]->coords[0][$i] > 0) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);
-		    $accyt=$yscale->Translate($accy);
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$y = $accyt-($accyt-$yt)/2;
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$y = $accyt;
-		    }
-		    else { // top or max
-			$y = $accyt-($accyt-$yt);
-		    }
-		    $accy+=$this->plots[$j]->coords[0][$i];
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$this->plots[$j]->value->SetAlign("center","center");
-			$this->plots[$j]->value->SetMargin(0);
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$this->plots[$j]->value->SetAlign('center','bottom');
-			$this->plots[$j]->value->SetMargin(2);
-		    }
-		    else {
-			$this->plots[$j]->value->SetAlign('center','top');
-			$this->plots[$j]->value->SetMargin(1);
-		    }
-		} else {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);
-		    $accyt=$yscale->Translate($accy_neg);
-		    $accy_neg+=$this->plots[$j]->coords[0][$i];
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$y = $accyt-($accyt-$yt)/2;
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$y = $accyt;
-		    }
-		    else {
-			$y = $accyt-($accyt-$yt);
-		    }
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$this->plots[$j]->value->SetAlign("center","center");
-			$this->plots[$j]->value->SetMargin(0);
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$this->plots[$j]->value->SetAlign('center',$j==0 ? 'bottom':'top');
-			$this->plots[$j]->value->SetMargin(-2);
-		    }
-		    else {
-			$this->plots[$j]->value->SetAlign('center','bottom');
-			$this->plots[$j]->value->SetMargin(-1);
-		    }
-		}	
-		$this->plots[$j]->value->Stroke($img,$this->plots[$j]->coords[0][$i],$x,$y);
-	    }
-
-	}
-	return true;
-    }
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_canvas.php b/nightly-test-server/jpgraph/jpgraph_canvas.php
deleted file mode 100644
index 54da32a..0000000
--- a/nightly-test-server/jpgraph/jpgraph_canvas.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_CANVAS.PHP
-// Description:	Canvas drawing extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS CanvasGraph
-// Description: Creates a simple canvas graph which
-// might be used together with the basic Image drawing
-// primitives. Useful to auickoly produce some arbitrary
-// graphic which benefits from all the functionality in the
-// graph liek caching for example. 
-//===================================================
-class CanvasGraph extends Graph {
-//---------------
-// CONSTRUCTOR
-    function CanvasGraph($aWidth=300,$aHeight=200,$aCachedName="",$timeout=0,$inline=1) {
-	$this->Graph($aWidth,$aHeight,$aCachedName,$timeout,$inline);
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    function InitFrame() {
-	$this->StrokePlotArea();
-    }
-
-    // Method description
-    function Stroke($aStrokeFileName="") {
-	if( $this->texts != null ) {
-	    for($i=0; $i < count($this->texts); ++$i) {
-		$this->texts[$i]->Stroke($this->img);
-	    }
-	}		
-	if( $this->iTables !== null ) {
-	    for($i=0; $i < count($this->iTables); ++$i) {
-		$this->iTables[$i]->Stroke($this->img);
-	    }   
-	}
-	$this->StrokeTitles();
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	if( !$_csim ) {
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		}
-	    
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-	
-
-	    // If the filename is given as the special _IMG_HANDLER
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName);
-		return true;
-	    }
-	}
-    }
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_canvtools.php b/nightly-test-server/jpgraph/jpgraph_canvtools.php
deleted file mode 100644
index 1e23cc2..0000000
--- a/nightly-test-server/jpgraph/jpgraph_canvtools.php
+++ /dev/null
@@ -1,516 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_CANVTOOLS.PHP
-// Description:	Some utilities for text and shape drawing on a canvas
-// Created: 	2002-08-23
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-DEFINE('CORNER_TOPLEFT',0);
-DEFINE('CORNER_TOPRIGHT',1);
-DEFINE('CORNER_BOTTOMRIGHT',2);
-DEFINE('CORNER_BOTTOMLEFT',3);
-
-
-//===================================================
-// CLASS CanvasScale
-// Description: Define a scale for canvas so we
-// can abstract away with absolute pixels
-//===================================================
- 
-class CanvasScale {
-    var $g;
-    var $w,$h;
-    var $ixmin=0,$ixmax=10,$iymin=0,$iymax=10;
-
-    function CanvasScale(&$graph,$xmin=0,$xmax=10,$ymin=0,$ymax=10) {
-	$this->g = &$graph;
-	$this->w = $graph->img->width;
-	$this->h = $graph->img->height;
-	$this->ixmin = $xmin;
-	$this->ixmax = $xmax;
-	$this->iymin = $ymin;
-	$this->iymax = $ymax;
-    }
-    
-    function Set($xmin=0,$xmax=10,$ymin=0,$ymax=10) {
-	$this->ixmin = $xmin;
-	$this->ixmax = $xmax;
-	$this->iymin = $ymin;
-	$this->iymax = $ymax;
-    }
-
-    function Translate($x,$y) {
-	$xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w);
-	$yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h);
-	return array($xp,$yp);
-    }
-
-    function TranslateX($x) {
-	$xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w);
-	return $xp;
-    }
-
-    function TranslateY($y) {
-	$yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h);
-	return $yp;
-    }
-
-}
-
-
-//===================================================
-// CLASS Shape
-// Description: Methods to draw shapes on canvas
-//===================================================
-class Shape {
-    var $img,$scale;
-
-    function Shape(&$aGraph,&$scale) {
-	$this->img = &$aGraph->img;
-	$this->img->SetColor('black');
-	$this->scale = &$scale;
-    }
-
-    function SetColor($aColor) {
-	$this->img->SetColor($aColor);
-    }
-
-    function Line($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2) = $this->scale->Translate($x2,$y2);
-	$this->img->Line($x1,$y1,$x2,$y2);
-    }
-
-    function Polygon($p,$aClosed=false) {
-	$n=count($p);
-	for($i=0; $i < $n; $i+=2 ) {
-	   $p[$i]   = $this->scale->TranslateX($p[$i]);
-	   $p[$i+1] = $this->scale->TranslateY($p[$i+1]);
-	}
-	$this->img->Polygon($p,$aClosed);
-    }
-
-    function FilledPolygon($p) {
-	$n=count($p);
-	for($i=0; $i < $n; $i+=2 ) {
-	   $p[$i]   = $this->scale->TranslateX($p[$i]);
-	   $p[$i+1] = $this->scale->TranslateY($p[$i+1]);
-	}
-	$this->img->FilledPolygon($p);
-    }
-    
-
-    // Draw a bezier curve with defining points in the $aPnts array
-    // using $aSteps steps.
-    // 0=x0, 1=y0
-    // 2=x1, 3=y1
-    // 4=x2, 5=y2
-    // 6=x3, 7=y3
-    function Bezier($p,$aSteps=40) {
-	$x0 = $p[0];
-	$y0 = $p[1];
-	// Calculate coefficients
-	$cx = 3*($p[2]-$p[0]);
-	$bx = 3*($p[4]-$p[2])-$cx;
-	$ax = $p[6]-$p[0]-$cx-$bx;
-	$cy = 3*($p[3]-$p[1]);
-	$by = 3*($p[5]-$p[3])-$cy;
-	$ay = $p[7]-$p[1]-$cy-$by;
-
-	// Step size
-	$delta = 1.0/$aSteps;
-
-	$x_old = $x0;
-	$y_old = $y0;
-	for($t=$delta; $t<=1.0; $t+=$delta) {
-	    $tt = $t*$t; $ttt=$tt*$t;
-	    $x  = $ax*$ttt + $bx*$tt + $cx*$t + $x0;
-	    $y = $ay*$ttt + $by*$tt + $cy*$t + $y0;
-	    $this->Line($x_old,$y_old,$x,$y);
-	    $x_old = $x;
-	    $y_old = $y;
-	}
-	$this->Line($x_old,$y_old,$p[6],$p[7]);
-    }
-
-    function Rectangle($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-	$this->img->Rectangle($x1,$y1,$x2,$y2);
-    }
-
-    function FilledRectangle($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-	$this->img->FilledRectangle($x1,$y1,$x2,$y2);
-    }
-    
-    function Circle($x1,$y1,$r) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	if( $r >= 0 )
-	    $r   = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->Circle($x1,$y1,$r);
-    }
-
-    function FilledCircle($x1,$y1,$r) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	if( $r >= 0 )
-	    $r   = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->FilledCircle($x1,$y1,$r);
-    }
-
-    function RoundedRectangle($x1,$y1,$x2,$y2,$r=null) {    
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-
-	if( $r == null )
-	    $r = 5;
-	elseif( $r >= 0 )
-	    $r = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->RoundedRectangle($x1,$y1,$x2,$y2,$r);
-    }
-
-    function FilledRoundedRectangle($x1,$y1,$x2,$y2,$r=null) {    
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-
-	if( $r == null )
-	    $r = 5;
-	elseif( $r > 0 )
-	    $r = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->FilledRoundedRectangle($x1,$y1,$x2,$y2,$r);    
-    }
-
-    function ShadowRectangle($x1,$y1,$x2,$y2,$fcolor=false,$shadow_width=null,$shadow_color=array(102,102,102)) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2) = $this->scale->Translate($x2,$y2);
-	if( $shadow_width == null ) 
-	    $shadow_width=4;
-	else
-	    $shadow_width=$this->scale->TranslateX($shadow_width);
-	$this->img->ShadowRectangle($x1,$y1,$x2,$y2,$fcolor,$shadow_width,$shadow_color);
-    }
-
-    function SetTextAlign($halign,$valign="bottom") {
-	$this->img->SetTextAlign($halign,$valign="bottom");
-    }
-
-    function StrokeText($x1,$y1,$txt,$dir=0,$paragraph_align="left") {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	$this->img->StrokeText($x1,$y1,$txt,$dir,$paragraph_align);
-    }
-
-    // A rounded rectangle where one of the corner has been moved "into" the
-    // rectangle 'iw' width and 'ih' height. Corners:
-    // 0=Top left, 1=top right, 2=bottom right, 3=bottom left
-    function IndentedRectangle($xt,$yt,$w,$h,$iw=0,$ih=0,$aCorner=3,$aFillColor="",$r=4) {
-    
-	list($xt,$yt) = $this->scale->Translate($xt,$yt);
-	list($w,$h)   = $this->scale->Translate($w,$h);
-	list($iw,$ih) = $this->scale->Translate($iw,$ih);
-	
-	$xr = $xt + $w - 0;
-	$yl = $yt + $h - 0;
-
-	switch( $aCorner ) {
-	    case 0: // Upper left
-	    
-		// Bottom line, left &  right arc
-		$this->img->Line($xt+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Right line, Top right arc
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$r);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Top line, Top left arc
-		$this->img->Line($xt+$iw+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$iw+$r,$yt+$r,$r*2,$r*2,180,270);
-
-		// Left line
-		$this->img->Line($xt,$yt+$ih+$r,$xt,$yl-$r);
-
-		// Indent horizontal, Lower left arc
-		$this->img->Line($xt+$r,$yt+$ih,$xt+$iw-$r,$yt+$ih);
-		$this->img->Arc($xt+$r,$yt+$ih+$r,$r*2,$r*2,180,270);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xt+$iw,$yt+$r,$xt+$iw,$yt+$ih-$r);
-		$this->img->Arc($xt+$iw-$r,$yt+$ih-$r,$r*2,$r*2,0,90);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xr-$r,$yl-$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 1: // Upper right
-
-		// Bottom line, left &  right arc
-		$this->img->Line($xt+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Left line, Top left arc
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$r);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-
-		// Top line, Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$iw-$r,$yt);
-		$this->img->Arc($xr-$iw-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Right line
-		$this->img->Line($xr,$yt+$ih+$r,$xr,$yl-$r);
-
-		// Indent horizontal, Lower right arc
-		$this->img->Line($xr-$iw+$r,$yt+$ih,$xr-$r,$yt+$ih);
-		$this->img->Arc($xr-$r,$yt+$ih+$r,$r*2,$r*2,270,360);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xr-$iw,$yt+$r,$xr-$iw,$yt+$ih-$r);
-		$this->img->Arc($xr-$iw+$r,$yt+$ih-$r,$r*2,$r*2,90,180);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xt+$r,$yl-$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 2: // Lower right
-		// Top line, Top left & Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Left line, Bottom left arc
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$r);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-
-		// Bottom line, Bottom right arc
-		$this->img->Line($xt+$r,$yl,$xr-$iw-$r,$yl);
-		$this->img->Arc($xr-$iw-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Right line
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$ih-$r);
-	    
-		// Indent horizontal, Lower right arc
-		$this->img->Line($xr-$r,$yl-$ih,$xr-$iw+$r,$yl-$ih);
-		$this->img->Arc($xr-$r,$yl-$ih-$r,$r*2,$r*2,0,90);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xr-$iw,$yl-$r,$xr-$iw,$yl-$ih+$r);
-		$this->img->Arc($xr-$iw+$r,$yl-$ih+$r,$r*2,$r*2,180,270);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xt+$r,$yt+$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 3: // Lower left
-		// Top line, Top left & Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Right line, Bottom right arc
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$r);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Bottom line, Bottom left arc
-		$this->img->Line($xt+$iw+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$iw+$r,$yl-$r,$r*2,$r*2,90,180);
-
-		// Left line
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$ih-$r);
-	    
-		// Indent horizontal, Lower left arc
-		$this->img->Line($xt+$r,$yl-$ih,$xt+$iw-$r,$yl-$ih);
-		$this->img->Arc($xt+$r,$yl-$ih-$r,$r*2,$r*2,90,180);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xt+$iw,$yl-$ih+$r,$xt+$iw,$yl-$r);
-		$this->img->Arc($xt+$iw-$r,$yl-$ih+$r,$r*2,$r*2,270,360);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xr-$r,$yt+$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-	}
-    }
-}
-
-
-//===================================================
-// CLASS RectangleText
-// Description: Draws a text paragraph inside a 
-// rounded, possible filled, rectangle.
-//===================================================
-class CanvasRectangleText {
-    var $ix,$iy,$iw,$ih,$ir=4;
-    var $iTxt,$iColor='black',$iFillColor='',$iFontColor='black';
-    var $iParaAlign='center';
-    var $iAutoBoxMargin=5;
-    var $iShadowWidth=3,$iShadowColor='';
-
-    function CanvasRectangleText($aTxt='',$xl=0,$yt=0,$w=0,$h=0) {
-	$this->iTxt = new Text($aTxt);
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
- 
-    function SetShadow($aColor='gray',$aWidth=3) {
-	$this->iShadowColor = $aColor;
-	$this->iShadowWidth = $aWidth;
-    }
-
-    function SetFont($FontFam,$aFontStyle,$aFontSize=12) {
-	$this->iTxt->SetFont($FontFam,$aFontStyle,$aFontSize);
-    }
-
-    function SetTxt($aTxt) {
-	$this->iTxt->Set($aTxt);
-    }
-
-    function ParagraphAlign($aParaAlign) {
-	$this->iParaAlign = $aParaAlign;
-    }
-
-    function SetFillColor($aFillColor) {
-	$this->iFillColor = $aFillColor;
-    }
-
-    function SetAutoMargin($aMargin) {
-	$this->iAutoBoxMargin=$aMargin;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetFontColor($aColor) {
-	$this->iFontColor = $aColor;
-    }
-
-    function SetPos($xl=0,$yt=0,$w=0,$h=0) {
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function Pos($xl=0,$yt=0,$w=0,$h=0) {
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function Set($aTxt,$xl,$yt,$w=0,$h=0) {
-	$this->iTxt->Set($aTxt);
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function SetCornerRadius($aRad=5) {
-	$this->ir = $aRad;
-    }
-
-    function Stroke($aImg,$scale) {
-	
-	// If coordinates are specifed as negative this means we should
-	// treat them as abolsute (pixels) coordinates
-	if( $this->ix > 0 ) {
-	    $this->ix = $scale->TranslateX($this->ix) ;
-	}
-	else {
-	    $this->ix = -$this->ix;
-	}
-
-	if( $this->iy > 0 ) {
-	    $this->iy = $scale->TranslateY($this->iy) ;
-	}
-	else {
-	    $this->iy = -$this->iy;
-	}
-	    
-	list($this->iw,$this->ih) = $scale->Translate($this->iw,$this->ih) ;
-
-	if( $this->iw == 0 ) 
-	    $this->iw = round($this->iTxt->GetWidth($aImg) + $this->iAutoBoxMargin);
-	if( $this->ih == 0 ) {
-	    $this->ih = round($this->iTxt->GetTextHeight($aImg) + $this->iAutoBoxMargin);
-	}
-
-	if( $this->iShadowColor != '' ) {
-	    $aImg->PushColor($this->iShadowColor);
-	    $aImg->FilledRoundedRectangle($this->ix+$this->iShadowWidth,
-					  $this->iy+$this->iShadowWidth,
-					  $this->ix+$this->iw-1+$this->iShadowWidth,
-					  $this->iy+$this->ih-1+$this->iShadowWidth,
-					  $this->ir);
-	    $aImg->PopColor();	    
-	}
-
-	if( $this->iFillColor != '' ) {
-	    $aImg->PushColor($this->iFillColor);
-	    $aImg->FilledRoundedRectangle($this->ix,$this->iy,
-					  $this->ix+$this->iw-1,
-					  $this->iy+$this->ih-1,
-					  $this->ir);
-	    $aImg->PopColor();
-	}
-
-	if( $this->iColor != '' ) {
-	    $aImg->PushColor($this->iColor);
-	    $aImg->RoundedRectangle($this->ix,$this->iy,
-				    $this->ix+$this->iw-1,
-				    $this->iy+$this->ih-1,
-				    $this->ir);
-	    $aImg->PopColor();
-	}
-	
-	$this->iTxt->Align('center','center');
-	$this->iTxt->ParagraphAlign($this->iParaAlign);
-	$this->iTxt->SetColor($this->iFontColor);
-	$this->iTxt->Stroke($aImg, $this->ix+$this->iw/2, $this->iy+$this->ih/2);
-
-	return array($this->iw, $this->ih);
-
-    }
-
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_date.php b/nightly-test-server/jpgraph/jpgraph_date.php
deleted file mode 100644
index 5855124..0000000
--- a/nightly-test-server/jpgraph/jpgraph_date.php
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_DATE.PHP
-// Description:	Classes to handle Date scaling
-// Created: 	2005-05-02
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-DEFINE('HOURADJ_1',0+30);
-DEFINE('HOURADJ_2',1+30);
-DEFINE('HOURADJ_3',2+30);
-DEFINE('HOURADJ_4',3+30);
-DEFINE('HOURADJ_6',4+30);
-DEFINE('HOURADJ_12',5+30);
-
-DEFINE('MINADJ_1',0+20);
-DEFINE('MINADJ_5',1+20);
-DEFINE('MINADJ_10',2+20);
-DEFINE('MINADJ_15',3+20);
-DEFINE('MINADJ_30',4+20);
-
-DEFINE('SECADJ_1',0);
-DEFINE('SECADJ_5',1);
-DEFINE('SECADJ_10',2);
-DEFINE('SECADJ_15',3);
-DEFINE('SECADJ_30',4);
-
-
-DEFINE('YEARADJ_1',0+30);
-DEFINE('YEARADJ_2',1+30);
-DEFINE('YEARADJ_5',2+30);
-
-DEFINE('MONTHADJ_1',0+20);
-DEFINE('MONTHADJ_6',1+20);
-
-DEFINE('DAYADJ_1',0);
-DEFINE('DAYADJ_WEEK',1);
-DEFINE('DAYADJ_7',1);
-
-DEFINE('SECPERYEAR',31536000);
-DEFINE('SECPERDAY',86400);
-DEFINE('SECPERHOUR',3600);
-DEFINE('SECPERMIN',60);
-
-
-class DateScale extends LinearScale {
-    var $date_format = '';
-    var $iStartAlign = false, $iEndAlign = false;
-    var $iStartTimeAlign = false, $iEndTimeAlign = false;
-
-//---------------
-// CONSTRUCTOR
-    function DateScale($aMin=0,$aMax=0,$aType='x') {
-	assert($aType=="x");
-	assert($aMin<=$aMax);
-		
-	$this->type=$aType;
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;	
-	$this->ticks = new LinearTicks();
-	$this->intscale=true;
-    }
-
-
-//------------------------------------------------------------------------------------------
-// Utility Function AdjDate()
-// Description: Will round a given time stamp to an even year, month or day 
-// argument. 
-//------------------------------------------------------------------------------------------
-
-    function AdjDate($aTime,$aRound=0,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	$y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-	$h=0;$i=0;$s=0;
-	if( $aYearType !== false ) {
-	    $yearAdj = array(0=>1, 1=>2, 2=>5);
-	    if( $aRound == 0 ) {
-		$y = floor($y/$yearAdj[$aYearType])*$yearAdj[$aYearType];
-	    }
-	    else {
-		++$y;
-		$y = ceil($y/$yearAdj[$aYearType])*$yearAdj[$aYearType];
-	    }
-	    $m=1;$d=1;
-	}
-	elseif( $aMonthType !== false ) {
-	    $monthAdj = array(0=>1, 1=>6);
-	    if( $aRound == 0 ) {
-		$m = floor($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType];
-		$d=1;
-	    }
-	    else {
-		++$m;
-		$m = ceil($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType];
-		$d=1;
-	    }
-	}
-	elseif( $aDayType !== false ) {
-	    if( $aDayType == 0 ) {
-		if( $aRound == 1 ) {
-		    //++$d;
-		    $h=23;$i=59;$s=59;
-		}
-	    }
-	    else {
-		// Adjust to an even week boundary. 
-		$w = (int)date('w',$aTime); // Day of week 0=Sun, 6=Sat
-		if( true ) { // Adjust to start on Mon
-		    if( $w==0 ) $w=6;
-		    else --$w;
-		}
-		if( $aRound == 0 ) {
-		    $d -= $w;
-		}
-		else {
-		    $d += (7-$w);
-		    $h=23;$i=59;$s=59;
-		}
-	    }
-	}
-	return mktime($h,$i,$s,$m,$d,$y);
-	
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjDate that will round a timestamp to an even date rounding
-// it downwards.
-//------------------------------------------------------------------------------------------
-    function AdjStartDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	return $this->AdjDate($aTime,0,$aYearType,$aMonthType,$aDayType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjDate that will round a timestamp to an even date rounding
-// it upwards
-//------------------------------------------------------------------------------------------
-    function AdjEndDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	return $this->AdjDate($aTime,1,$aYearType,$aMonthType,$aDayType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Utility Function AdjTime()
-// Description: Will round a given time stamp to an even time according to 
-// argument. 
-//------------------------------------------------------------------------------------------
-
-    function AdjTime($aTime,$aRound=0,$aHourType=false,$aMinType=false,$aSecType=false) {
-	$y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-	$h = (int)date('H',$aTime); $i = (int)date('i',$aTime); $s = (int)date('s',$aTime);
-	if( $aHourType !== false ) {
-	    $aHourType %= 6;
-	    $hourAdj = array(0=>1, 1=>2, 2=>3, 3=>4, 4=>6, 5=>12);
-	    if( $aRound == 0 )
-		$h = floor($h/$hourAdj[$aHourType])*$hourAdj[$aHourType];
-	    else {
-		if( ($h % $hourAdj[$aHourType]==0) && ($i > 0 || $s > 0) ) {
-		    $h++;
-		}
-		$h = ceil($h/$hourAdj[$aHourType])*$hourAdj[$aHourType];
-		if( $h >= 24 ) {
-		    $aTime += 86400;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h -= 24; 
-		}
-	    }
-	    $i=0;$s=0;
-	}
-	elseif( $aMinType !== false ) {
-	    $aMinType %= 5;
-	    $minAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30);
-	    if( $aRound == 0 ) {
-		$i = floor($i/$minAdj[$aMinType])*$minAdj[$aMinType];
-	    }
-	    else {
-		if( ($i % $minAdj[$aMinType]==0) && $s > 0 ) {
-		    $i++;
-		}
-		$i = ceil($i/$minAdj[$aMinType])*$minAdj[$aMinType];
-		if( $i >= 60) {
-		    $aTime += 3600;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h = (int)date('H',$aTime); $i = 0;
-		}
-	    }
-	    $s=0;
-	}
-	elseif( $aSecType !== false ) {
-	    $aSecType %= 5;
-	    $secAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30);
-	    if( $aRound == 0 ) {
-		$s = floor($s/$secAdj[$aSecType])*$secAdj[$aSecType];
-	    }
-	    else {
-		$s = ceil($s/$secAdj[$aSecType]*1.0)*$secAdj[$aSecType];
-		if( $s >= 60) {
-		    $s=0;
-		    $aTime += 60;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h = (int)date('H',$aTime); $i = (int)date('i',$aTime); 
-		}
-	    }
-	}
-	return mktime($h,$i,$s,$m,$d,$y);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjTime that will round a timestamp to an even time rounding
-// it downwards.
-// Example: AdjStartTime(mktime(18,27,13,2,22,2005),false,2) => 18:20
-//------------------------------------------------------------------------------------------
-    function AdjStartTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) {
-	return $this->AdjTime($aTime,0,$aHourType,$aMinType,$aSecType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjTime that will round a timestamp to an even time rounding
-// it upwards
-// Example: AdjEndTime(mktime(18,27,13,2,22,2005),false,2) => 18:30
-//------------------------------------------------------------------------------------------
-    function AdjEndTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) {
-	return $this->AdjTime($aTime,1,$aHourType,$aMinType,$aSecType);
-    }
-
-//------------------------------------------------------------------------------------------
-// DateAutoScale
-// Autoscale a date axis given start and end time
-// Returns an array ($start,$end,$major,$minor,$format)
-//------------------------------------------------------------------------------------------
-    function DoDateAutoScale($aStartTime,$aEndTime,$aDensity=0,$aAdjust=true) {
-	// Format of array
-	// array ( Decision point,  array( array( Major-scale-step-array ),  
-	//			    array( Minor-scale-step-array ), 
-	//			    array( 0=date-adjust, 1=time-adjust, adjustment-alignment) )
-	//
-	$scalePoints = 
-	    array(
-		/* Intervall larger than 10 years */
-		SECPERYEAR*10,array(array(SECPERYEAR*5,SECPERYEAR*2),
-				    array(SECPERYEAR), 
-				    array(0,YEARADJ_1, 0,YEARADJ_1) ),
-
-		/* Intervall larger than 2 years */
-		SECPERYEAR*2,array(array(SECPERYEAR),array(SECPERYEAR), 
-				   array(0,YEARADJ_1) ),
-
-		/* Intervall larger than 90 days (approx 3 month) */
-		SECPERDAY*90,array(array(SECPERDAY*30,SECPERDAY*14,SECPERDAY*7,SECPERDAY),
-				   array(SECPERDAY*5,SECPERDAY*7,SECPERDAY,SECPERDAY), 
-				   array(0,MONTHADJ_1, 0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1)),
-
-		/* Intervall larger than 30 days (approx 1 month) */
-		SECPERDAY*30,array(array(SECPERDAY*14,SECPERDAY*7,SECPERDAY*2, SECPERDAY),
-				   array(SECPERDAY,SECPERDAY.SECPERDAY,SECPERDAY), 
-				   array(0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1, 0,DAYADJ_1)),
-
-		/* Intervall larger than 7 days */
-		SECPERDAY*7,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2),
-				  array(SECPERHOUR*6,SECPERHOUR*3,SECPERHOUR,SECPERHOUR),
-				  array(0,DAYADJ_1, 1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1)),
-
-		/* Intervall larger than 1 day */
-		SECPERDAY,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR),
-				array(SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR,SECPERHOUR,SECPERHOUR),
-				array(1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1, 1,HOURADJ_1)),
-
-		/* Intervall larger than 12 hours */
-		SECPERHOUR*12,array(array(SECPERHOUR*2,SECPERHOUR,SECPERMIN*30,900,600),
-				    array(1800,1800,900,300,300),
-				    array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 2 hours */
-		SECPERHOUR*2,array(array(SECPERHOUR,SECPERMIN*30,900,600,300),
-				   array(1800,900,300,120,60),
-				   array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 1 hours */
-		SECPERHOUR,array(array(SECPERMIN*30,900,600,300),array(900,300,120,60),
-				 array(1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 30 min */
-		SECPERMIN*30,array(array(SECPERMIN*15,SECPERMIN*10,SECPERMIN*5,SECPERMIN),
-				   array(300,300,60,10),
-				   array(1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5, 1,MINADJ_1)),
-
-		/* Intervall larger than 1 min */
-		SECPERMIN,array(array(SECPERMIN,15,10,5),
-				array(15,5,2,1),
-				array(1,MINADJ_1, 1,SECADJ_15, 1,SECADJ_10, 1,SECADJ_5)),
-
-		/* Intervall larger than 10 sec */
-		10,array(array(5,2),
-			 array(1,1),
-			 array(1,SECADJ_5, 1,SECADJ_1)),
-
-		/* Intervall larger than 1 sec */
-		1,array(array(1),
-			array(1),
-			array(1,SECADJ_1)),
-		);
-
-	$ns = count($scalePoints);
-	// Establish major and minor scale units for the date scale
-	$diff = $aEndTime - $aStartTime;
-	if( $diff < 1 ) return false;
-	$done=false;
-	$i=0;
-	while( ! $done ) {
-	    if( $diff > $scalePoints[2*$i] ) {
-		// Get major and minor scale for this intervall
-		$scaleSteps = $scalePoints[2*$i+1];
-		$major = $scaleSteps[0][min($aDensity,count($scaleSteps[0])-1)];
-		// Try to find out which minor step looks best
-		$minor = $scaleSteps[1][min($aDensity,count($scaleSteps[1])-1)];
-		if( $aAdjust ) {
-		    // Find out how we should align the start and end timestamps
-		    $idx = 2*min($aDensity,floor(count($scaleSteps[2])/2)-1);
-		    if( $scaleSteps[2][$idx] === 0 ) { 
-			// Use date adjustment
-			$adj = $scaleSteps[2][$idx+1]; 
-			if( $adj >= 30 ) {
-			    $start = $this->AdjStartDate($aStartTime,$adj-30);
-			    $end   = $this->AdjEndDate($aEndTime,$adj-30);
-			}
-			elseif( $adj >= 20 ) {
-			    $start = $this->AdjStartDate($aStartTime,false,$adj-20);
-			    $end   = $this->AdjEndDate($aEndTime,false,$adj-20);
-			}
-			else {
-			    $start = $this->AdjStartDate($aStartTime,false,false,$adj);
-			    $end   = $this->AdjEndDate($aEndTime,false,false,$adj);
-			    // We add 1 second for date adjustment to make sure we end on 00:00 the following day
-			    // This makes the final major tick be srawn when we step day-by-day instead of ending
-			    // on xx:59:59 which would not draw the final major tick
-			    $end++;	
-			}
-		    }
-		    else {
-			// Use time adjustment
-			$adj = $scaleSteps[2][$idx+1]; 
-			if( $adj >= 30 ) {
-			    $start = $this->AdjStartTime($aStartTime,$adj-30);
-			    $end   = $this->AdjEndTime($aEndTime,$adj-30);
-			}
-			elseif( $adj >= 20 ) {
-			    $start = $this->AdjStartTime($aStartTime,false,$adj-20);
-			    $end   = $this->AdjEndTime($aEndTime,false,$adj-20);
-			}
-			else {
-			    $start = $this->AdjStartTime($aStartTime,false,false,$adj);
-			    $end   = $this->AdjEndTime($aEndTime,false,false,$adj);		    
-			}
-		    }
-		}
-		// If the overall date span is larger than 1 day ten we show date
-		$format = '';
-		if( ($end-$start) > SECPERDAY ) {
-		    $format = 'Y-m-d ';
-		}
-		// If the major step is less than 1 day we need to whow hours + min
-		if( $major < SECPERDAY ) {
-		    $format .= 'H:i';
-		}
-		// If the major step is less than 1 min we need to show sec
-		if( $major < 60 ) {
-		    $format .= ':s';
-		}
-		$done=true;
-	    }
-	    ++$i;
-	}
-	return array($start,$end,$major,$minor,$format);
-    }
-
-    // Overrides the automatic determined date format. Must be a valid date() format string
-    function SetDateFormat($aFormat) {
-	$this->date_format = $aFormat;
-	$this->ticks->SetLabelDateFormat($this->date_format);
-    }
-
-    function SetDateAlign($aStartAlign,$aEndAlign=false) {
-	if( $aEndAlign === false ) {
-	    $aEndAlign=$aStartAlign;
-	}
-	$this->iStartAlign = $aStartAlign;
-	$this->iEndAlign = $aEndAlign;
-    }
-
-    function SetTimeAlign($aStartAlign,$aEndAlign=false) {
-	if( $aEndAlign === false ) {
-	    $aEndAlign=$aStartAlign;
-	}
-	$this->iStartTimeAlign = $aStartAlign;
-	$this->iEndTimeAlign = $aEndAlign;
-    }
-
-
-    function AutoScale(&$img,$aStartTime,$aEndTime,$aNumSteps) {
-	if( $aStartTime == $aEndTime ) {
-	    // Special case when we only have one data point.
-	    // Create a small artifical intervall to do the autoscaling
-	    $aStartTime -= 10;
-	    $aEndTime += 10;
-	}
-	$done=false;
-	$i=0;
-	while( ! $done && $i < 5) {
-	    list($adjstart,$adjend,$maj,$min,$format) = $this->DoDateAutoScale($aStartTime,$aEndTime,$i);
-	    $n = floor(($adjend-$adjstart)/$maj);
-	    if( $n * 1.7 > $aNumSteps ) {
-		$done=true;
-	    }
-	    $i++;
-	}
-	
-	/*
-	if( 0 ) { // DEBUG
-	    echo "    Start =".date("Y-m-d H:i:s",$aStartTime)."<br>";
-	    echo "    End   =".date("Y-m-d H:i:s",$aEndTime)."<br>";
-	    echo "Adj Start =".date("Y-m-d H:i:s",$adjstart)."<br>";
-	    echo "Adj End   =".date("Y-m-d H:i:s",$adjend)."<p>";
-	    echo "Major = $maj s, ".floor($maj/60)."min, ".floor($maj/3600)."h, ".floor($maj/86400)."day<br>";
-	    echo "Min = $min s, ".floor($min/60)."min, ".floor($min/3600)."h, ".floor($min/86400)."day<br>";
-	    echo "Format=$format<p>";
-	}
-	*/
-	
-	if( $this->iStartTimeAlign !== false && $this->iStartAlign !== false ) {
-	    JpGraphError::RaiseL(3001);
-//('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both');
-	}
-
-	if( $this->iStartTimeAlign !== false ) {
-	    if( $this->iStartTimeAlign >= 30 ) {
-		$adjstart = $this->AdjStartTime($aStartTime,$this->iStartTimeAlign-30);
-	    }
-	    elseif(  $this->iStartTimeAlign >= 20 ) {
-		$adjstart = $this->AdjStartTime($aStartTime,false,$this->iStartTimeAlign-20);
-	    }
-	    else {
-		$adjstart = $this->AdjStartTime($aStartTime,false,false,$this->iStartTimeAlign);
-	    }
-	}
-	if( $this->iEndTimeAlign !== false ) {
-	    if( $this->iEndTimeAlign >= 30 ) {
-		$adjend = $this->AdjEndTime($aEndTime,$this->iEndTimeAlign-30);
-	    }
-	    elseif(  $this->iEndTimeAlign >= 20 ) {
-		$adjend = $this->AdjEndTime($aEndTime,false,$this->iEndTimeAlign-20);
-	    }
-	    else {
-		$adjend = $this->AdjEndTime($aEndTime,false,false,$this->iEndTimeAlign);
-	    }
-	}
-
-
-	
-	if( $this->iStartAlign !== false ) {
-	    if( $this->iStartAlign >= 30 ) {
-		$adjstart = $this->AdjStartDate($aStartTime,$this->iStartAlign-30);
-	    }
-	    elseif(  $this->iStartAlign >= 20 ) {
-		$adjstart = $this->AdjStartDate($aStartTime,false,$this->iStartAlign-20);
-	    }
-	    else {
-		$adjstart = $this->AdjStartDate($aStartTime,false,false,$this->iStartAlign);
-	    }
-	}
-	if( $this->iEndAlign !== false ) {
-	    if( $this->iEndAlign >= 30 ) {
-		$adjend = $this->AdjEndDate($aEndTime,$this->iEndAlign-30);
-	    }
-	    elseif(  $this->iEndAlign >= 20 ) {
-		$adjend = $this->AdjEndDate($aEndTime,false,$this->iEndAlign-20);
-	    }
-	    else {
-		$adjend = $this->AdjEndDate($aEndTime,false,false,$this->iEndAlign);
-	    }
-	}
-	$this->Update($img,$adjstart,$adjend);
-	if( ! $this->ticks->IsSpecified() )
-	    $this->ticks->Set($maj,$min);
-	if( $this->date_format == '' ) 
-	    $this->ticks->SetLabelDateFormat($format);
-	else 
-	    $this->ticks->SetLabelDateFormat($this->date_format);
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_error.php b/nightly-test-server/jpgraph/jpgraph_error.php
deleted file mode 100644
index df643e6..0000000
--- a/nightly-test-server/jpgraph/jpgraph_error.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_ERROR.PHP
-// Description:	Error plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS ErrorPlot
-// Description: Error plot with min/max value for
-// each datapoint
-//===================================================
-class ErrorPlot extends Plot {
-    var $errwidth=2;
-//---------------
-// CONSTRUCTOR
-    function ErrorPlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);
-	$this->numpoints /= 2;
-    }
-//---------------
-// PUBLIC METHODS
-	
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	if( $this->center ) {
-	    $a=0.5; $b=0.5;
-	    ++$this->numpoints;			
-	} else {
-	    $a=0; $b=0;
-	}
-	$graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	$graph->SetTextScaleOff($b);						
-	//$graph->xaxis->scale->ticks->SupressMinorTickMarks();
-    }
-	
-    // Method description
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$numpoints=count($this->coords[0])/2;
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);	
-
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-		
-	for( $i=0; $i<$numpoints; ++$i) {
-	    if( $exist_x ) 
-		$x=$this->coords[1][$i];
-	    else 
-		$x=$i;
-
-	    if( !is_numeric($x) ||  
-		!is_numeric($this->coords[0][$i*2]) || !is_numeric($this->coords[0][$i*2+1]) ) {
-		continue;
-	    }
-	    
-	    $xt = $xscale->Translate($x);
-	    $yt1 = $yscale->Translate($this->coords[0][$i*2]);
-	    $yt2 = $yscale->Translate($this->coords[0][$i*2+1]);
-	    $img->Line($xt,$yt1,$xt,$yt2);
-	    $img->Line($xt-$this->errwidth,$yt1,$xt+$this->errwidth,$yt1);
-	    $img->Line($xt-$this->errwidth,$yt2,$xt+$this->errwidth,$yt2);
-	}			
-	return true;
-    }
-} // Class
-
-
-//===================================================
-// CLASS ErrorLinePlot
-// Description: Combine a line and error plot
-// THIS IS A DEPRECATED PLOT TYPE JUST KEPT FOR
-// BACKWARD COMPATIBILITY
-//===================================================
-class ErrorLinePlot extends ErrorPlot {
-    var $line=null;
-//---------------
-// CONSTRUCTOR
-    function ErrorLinePlot(&$datay,$datax=false) {
-	$this->ErrorPlot($datay,$datax);
-	// Calculate line coordinates as the average of the error limits
-	$n = count($datay);
-	for($i=0; $i < $n; $i+=2 ) {
-	    $ly[]=($datay[$i]+$datay[$i+1])/2;
-	}		
-	$this->line=new LinePlot($ly,$datax);
-    }
-
-//---------------
-// PUBLIC METHODS
-    function Legend(&$graph) {
-	if( $this->legend != "" )
-	    $graph->legend->Add($this->legend,$this->color);
-	$this->line->Legend($graph);
-    }
-			
-    function Stroke(&$img,&$xscale,&$yscale) {
-	parent::Stroke($img,$xscale,$yscale);
-	$this->line->Stroke($img,$xscale,$yscale);
-    }
-} // Class
-
-
-//===================================================
-// CLASS LineErrorPlot
-// Description: Combine a line and error plot
-//===================================================
-class LineErrorPlot extends ErrorPlot {
-    var $line=null;
-//---------------
-// CONSTRUCTOR
-    // Data is (val, errdeltamin, errdeltamax)
-    function LineErrorPlot(&$datay,$datax=false) {
-	$ly=array(); $ey=array();
-	$n = count($datay);
-	if( $n % 3 != 0 ) {
-	    JpGraphError::RaiseL(4002);
-//('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3');
-	}
-	for($i=0; $i < $n; $i+=3 ) {
-	    $ly[]=$datay[$i];
-	    $ey[]=$datay[$i]+$datay[$i+1];
-	    $ey[]=$datay[$i]+$datay[$i+2];
-	}		
-	$this->ErrorPlot($ey,$datax);
-	$this->line=new LinePlot($ly,$datax);
-    }
-
-//---------------
-// PUBLIC METHODS
-    function Legend(&$graph) {
-	if( $this->legend != "" )
-	    $graph->legend->Add($this->legend,$this->color);
-	$this->line->Legend($graph);
-    }
-			
-    function Stroke(&$img,&$xscale,&$yscale) {
-	parent::Stroke($img,$xscale,$yscale);
-	$this->line->Stroke($img,$xscale,$yscale);
-    }
-} // Class
-
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_flags.php b/nightly-test-server/jpgraph/jpgraph_flags.php
deleted file mode 100644
index 163597e..0000000
--- a/nightly-test-server/jpgraph/jpgraph_flags.php
+++ /dev/null
@@ -1,374 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_FLAGS.PHP
-// Description:	Class Jpfile. Handles plotmarks
-// Created: 	2003-06-28
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-//------------------------------------------------------------
-// Defines for the different basic sizes of flags
-//------------------------------------------------------------
-DEFINE('FLAGSIZE1',1);
-DEFINE('FLAGSIZE2',2);
-DEFINE('FLAGSIZE3',3);
-DEFINE('FLAGSIZE4',4);
-
-class FlagImages {
-
-    var $iCountryNameMap = array(
-    'Afghanistan' => 'afgh',
-    'Republic of Angola' => 'agla',
-    'Republic of Albania' => 'alba',
-    'Alderney' => 'alde',
-    'Democratic and Popular Republic of Algeria' => 'alge',
-    'Territory of American Samoa' => 'amsa',
-    'Principality of Andorra' => 'andr',
-    'British Overseas Territory of Anguilla' => 'angu',
-    'Antarctica' => 'anta',
-    'Argentine Republic' => 'arge',
-    'League of Arab States' => 'arle',
-    'Republic of Armenia' => 'arme',
-    'Aruba' => 'arub',
-    'Commonwealth of Australia' => 'astl',
-    'Republic of Austria' => 'aust',
-    'Azerbaijani Republic' => 'azer',
-    'British Antarctic Territory' => 'bant',
-    'Kingdom of Belgium' => 'belg',
-    'British Overseas Territory of Bermuda' => 'berm',
-    'Commonwealth of the Bahamas' => 'bhms',
-    'Kingdom of Bahrain' => 'bhrn',
-    'Republic of Belarus' => 'blru',
-    'Republic of Bolivia' => 'blva',
-    'Belize' => 'blze',
-    'Republic of Benin' => 'bnin',
-    'Republic of Botswana' => 'bots',
-    'Federative Republic of Brazil' => 'braz',
-    'Barbados' => 'brbd',
-    'British Indian Ocean Territory' => 'brin',
-    'Brunei Darussalam' => 'brun',
-    'Republic of Burkina' => 'bufa',
-    'Republic of Bulgaria' => 'bulg',
-    'Republic of Burundi' => 'buru',
-    'Overseas Territory of the British Virgin Islands' => 'bvis',
-    'Central African Republic' => 'cafr',
-    'Kingdom of Cambodia' => 'camb',
-    'Republic of Cameroon' => 'came',
-    'Dominion of Canada' => 'cana',
-    'Caribbean Community' => 'cari',
-    'Republic of Cape Verde' => 'cave',
-    'Republic of Chad' => 'chad',
-    'Republic of Chile' => 'chil',
-    'Peoples Republic of China' => 'chin',
-    'Territory of Christmas Island' => 'chms',
-    'Commonwealth of Independent States' => 'cins',
-    'Cook Islands' => 'ckis',
-    'Republic of Colombia' => 'clmb',
-    'Territory of Cocos Islands' => 'cois',
-    'Commonwealth' => 'comn',
-    'Union of the Comoros' => 'como',
-    'Republic of the Congo' => 'cong',
-    'Republic of Costa Rica' => 'corc',
-    'Republic of Croatia' => 'croa',
-    'Republic of Cuba' => 'cuba',
-    'British Overseas Territory of the Cayman Islands' => 'cyis',
-    'Republic of Cyprus' => 'cypr',
-    'The Czech Republic' => 'czec',
-    'Kingdom of Denmark' => 'denm',
-    'Republic of Djibouti' => 'djib',
-    'Commonwealth of Dominica' => 'domn',
-    'Dominican Republic' => 'dore',
-    'Republic of Ecuador' => 'ecua',
-    'Arab Republic of Egypt' => 'egyp',
-    'Republic of El Salvador' => 'elsa',
-    'England' => 'engl',
-    'Republic of Equatorial Guinea' => 'eqgu',
-    'State of Eritrea' => 'erit',
-    'Republic of Estonia' => 'estn',
-    'Ethiopia' => 'ethp',
-    'European Union' => 'euun',
-    'British Overseas Territory of the Falkland Islands' => 'fais',
-    'International Federation of Vexillological Associations' => 'fiav',
-    'Republic of Fiji' => 'fiji',
-    'Republic of Finland' => 'finl',
-    'Territory of French Polynesia' => 'fpol',
-    'French Republic' => 'fran',
-    'Overseas Department of French Guiana' => 'frgu',
-    'Gabonese Republic' => 'gabn',
-    'Republic of the Gambia' => 'gamb',
-    'Republic of Georgia' => 'geor',
-    'Federal Republic of Germany' => 'germ',
-    'Republic of Ghana' => 'ghan',
-    'Gibraltar' => 'gibr',
-    'Hellenic Republic' => 'grec',
-    'State of Grenada' => 'gren',
-    'Overseas Department of Guadeloupe' => 'guad',
-    'Territory of Guam' => 'guam',
-    'Republic of Guatemala' => 'guat',
-    'The Bailiwick of Guernsey' => 'guer',
-    'Republic of Guinea' => 'guin',
-    'Republic of Haiti' => 'hait',
-    'Hong Kong Special Administrative Region' => 'hokn',
-    'Republic of Honduras' => 'hond',
-    'Republic of Hungary' => 'hung',
-    'Republic of Iceland' => 'icel',
-    'International Committee of the Red Cross' => 'icrc',
-    'Republic of India' => 'inda',
-    'Republic of Indonesia' => 'indn',
-    'Republic of Iraq' => 'iraq',
-    'Republic of Ireland' => 'irel',
-    'Organization of the Islamic Conference' => 'isco',
-    'Isle of Man' => 'isma',
-    'State of Israel' => 'isra',
-    'Italian Republic' => 'ital',
-    'Jamaica' => 'jama',
-    'Japan' => 'japa',
-    'The Bailiwick of Jersey' => 'jers',
-    'Hashemite Kingdom of Jordan' => 'jord',
-    'Republic of Kazakhstan' => 'kazk',
-    'Republic of Kenya' => 'keny',
-    'Republic of Kiribati' => 'kirb',
-    'State of Kuwait' => 'kuwa',
-    'Kyrgyz Republic' => 'kyrg',
-    'Republic of Latvia' => 'latv',
-    'Lebanese Republic' => 'leba',
-    'Kingdom of Lesotho' => 'lest',
-    'Republic of Liberia' => 'libe',
-    'Principality of Liechtenstein' => 'liec',
-    'Republic of Lithuania' => 'lith',
-    'Grand Duchy of Luxembourg' => 'luxe',
-    'Macao Special Administrative Region' => 'maca',
-    'Republic of Macedonia' => 'mace',
-    'Republic of Madagascar' => 'mada',
-    'Republic of the Marshall Islands' => 'mais',
-    'Republic of Mali' => 'mali',
-    'Federation of Malaysia' => 'mals',
-    'Republic of Malta' => 'malt',
-    'Republic of Malawi' => 'malw',
-    'Overseas Department of Martinique' => 'mart',
-    'Islamic Republic of Mauritania' => 'maur',
-    'Territorial Collectivity of Mayotte' => 'mayt',
-    'United Mexican States' => 'mexc',
-    'Federated States of Micronesia' => 'micr',
-    'Midway Islands' => 'miis',
-    'Republic of Moldova' => 'mold',
-    'Principality of Monaco' => 'mona',
-    'Republic of Mongolia' => 'mong',
-    'British Overseas Territory of Montserrat' => 'mont',
-    'Kingdom of Morocco' => 'morc',
-    'Republic of Mozambique' => 'moza',
-    'Republic of Mauritius' => 'mrts',
-    'Union of Myanmar' => 'myan',
-    'Republic of Namibia' => 'namb',
-    'North Atlantic Treaty Organization' => 'nato',
-    'Republic of Nauru' => 'naur',
-    'Turkish Republic of Northern Cyprus' => 'ncyp',
-    'Netherlands Antilles' => 'nean',
-    'Kingdom of Nepal' => 'nepa',
-    'Kingdom of the Netherlands' => 'neth',
-    'Territory of Norfolk Island' => 'nfis',
-    'Federal Republic of Nigeria' => 'ngra',
-    'Republic of Nicaragua' => 'nica',
-    'Republic of Niger' => 'nigr',
-    'Niue' => 'niue',
-    'Commonwealth of the Northern Mariana Islands' => 'nmar',
-    'Province of Northern Ireland' => 'noir',
-    'Nordic Council' => 'nord',
-    'Kingdom of Norway' => 'norw',
-    'Territory of New Caledonia and Dependencies' => 'nwca',
-    'New Zealand' => 'nwze',
-    'Organization of American States' => 'oast',
-    'Organization of African Unity' => 'oaun',
-    'International Olympic Committee' => 'olym',
-    'Sultanate of Oman' => 'oman',
-    'Islamic Republic of Pakistan' => 'paks',
-    'Republic of Palau' => 'pala',
-    'Independent State of Papua New Guinea' => 'pang',
-    'Republic of Paraguay' => 'para',
-    'Republic of Peru' => 'peru',
-    'Republic of the Philippines' => 'phil',
-    'British Overseas Territory of the Pitcairn Islands' => 'piis',
-    'Republic of Poland' => 'pola',
-    'Republic of Portugal' => 'port',
-    'Commonwealth of Puerto Rico' => 'purc',
-    'State of Qatar' => 'qata',
-    'Russian Federation' => 'russ',
-    'Republic of Rwanda' => 'rwan',
-    'Kingdom of Saudi Arabia' => 'saar',
-    'Republic of San Marino' => 'sama',
-    'Nordic Sami Conference' => 'sami',
-    'Sark' => 'sark',
-    'Scotland' => 'scot',
-    'Principality of Seborga' => 'sebo',
-    'Republic of Sierra Leone' => 'sile',
-    'Republic of Singapore' => 'sing',
-    'Republic of Korea' => 'skor',
-    'Republic of Slovenia' => 'slva',
-    'Somali Republic' => 'smla',
-    'Republic of Somaliland' => 'smld',
-    'Republic of South Africa' => 'soaf',
-    'Solomon Islands' => 'sois',
-    'Kingdom of Spain' => 'span',
-    'Secretariat of the Pacific Community' => 'spco',
-    'Democratic Socialist Republic of Sri Lanka' => 'srla',
-    'Saint Lucia' => 'stlu',
-    'Republic of the Sudan' => 'suda',
-    'Republic of Suriname' => 'surn',
-    'Slovak Republic' => 'svka',
-    'Kingdom of Sweden' => 'swdn',
-    'Swiss Confederation' => 'swit',
-    'Syrian Arab Republic' => 'syra',
-    'Kingdom of Swaziland' => 'szld',
-    'Republic of China' => 'taiw',
-    'Taiwan' => 'taiw',
-    'Republic of Tajikistan' => 'tajk',
-    'United Republic of Tanzania' => 'tanz',
-    'Kingdom of Thailand' => 'thal',
-    'Autonomous Region of Tibet' => 'tibe',
-    'Turkmenistan' => 'tkst',
-    'Togolese Republic' => 'togo',
-    'Tokelau' => 'toke',
-    'Kingdom of Tonga' => 'tong',
-    'Tristan da Cunha' => 'trdc',
-    'Tromelin' => 'tris',
-    'Republic of Tunisia' => 'tuns',
-    'Republic of Turkey' => 'turk',
-    'Tuvalu' => 'tuva',
-    'United Arab Emirates' => 'uaem',
-    'Republic of Uganda' => 'ugan',
-    'Ukraine' => 'ukrn',
-    'United Kingdom of Great Britain' => 'unkg',
-    'United Nations' => 'unna',
-    'United States of America' => 'unst',
-    'Oriental Republic of Uruguay' => 'urgy',
-    'Virgin Islands of the United States' => 'usvs',
-    'Republic of Uzbekistan' => 'uzbk',
-    'State of the Vatican City' => 'vacy',
-    'Republic of Vanuatu' => 'vant',
-    'Bolivarian Republic of Venezuela' => 'venz',
-    'Republic of Yemen' => 'yemn',
-    'Democratic Republic of Congo' => 'zare',
-    'Republic of Zimbabwe' => 'zbwe' ) ;
-
-
-    var $iFlagCount = -1;
-    var $iFlagSetMap = array(
-	FLAGSIZE1 => 'flags_thumb35x35',
-	FLAGSIZE2 => 'flags_thumb60x60',
-	FLAGSIZE3 => 'flags_thumb100x100',
-	FLAGSIZE4 => 'flags'
-	);
-
-    var $iFlagData ;
-    var $iOrdIdx=array();
-
-    function FlagImages($aSize=FLAGSIZE1) {
-	switch($aSize) {
-	    case FLAGSIZE1 :
-	    case FLAGSIZE2 :
-	    case FLAGSIZE3 :
-	    case FLAGSIZE4 :
-		$file = dirname(__FILE__).'/'.$this->iFlagSetMap[$aSize].'.dat';
-		$fp = fopen($file,'rb');
-		$rawdata = fread($fp,filesize($file));
-		$this->iFlagData = unserialize($rawdata);
-	    break;
-	    default:
-		JpGraphError::RaiseL(5001,$aSize);
-//('Unknown flag size. ('.$aSize.')');
-	}
-	$this->iFlagCount = count($this->iCountryNameMap);
-    }
-
-    function GetNum() {
-	return $this->iFlagCount;
-    }
-
-    function GetImgByName($aName,&$outFullName) {
-	$idx = $this->GetIdxByName($aName,$outFullName);
-	return $this->GetImgByIdx($idx);
-    }
-
-    function GetImgByIdx($aIdx) {
-	if( array_key_exists($aIdx,$this->iFlagData) ) {
-	    $d = $this->iFlagData[$aIdx][1];   
-	    return Image::CreateFromString($d);   
-	}
-	else {
-	    JpGraphError::RaiseL(5002,$aIdx);
-//("Flag index \" $aIdx\" does not exist.");
-	}
-    }
-
-    function GetIdxByOrdinal($aOrd,&$outFullName) {
-	$aOrd--;
-	$n = count($this->iOrdIdx);
-	if( $n == 0 ) {
-	    reset($this->iCountryNameMap);
-	    $this->iOrdIdx=array();
-	    $i=0;
-	    while( list($key,$val) = each($this->iCountryNameMap) ) {
-		$this->iOrdIdx[$i++] = array($val,$key);
-	    }
-	    $tmp=$this->iOrdIdx[$aOrd];
-	    $outFullName = $tmp[1];
-	    return $tmp[0];
-	    
-	}
-	elseif( $aOrd >= 0 && $aOrd < $n ) {
-	    $tmp=$this->iOrdIdx[$aOrd];
-	    $outFullName = $tmp[1];
-	    return $tmp[0];
-	}
-	else {
-	    JpGraphError::RaiseL(5003,$aOrd);
-//('Invalid ordinal number specified for flag index.');
-	}
-    }
-
-    function GetIdxByName($aName,&$outFullName) {
-
-	if( is_integer($aName) ) {
-	    $idx = $this->GetIdxByOrdinal($aName,$outFullName);
-	    return $idx;
-	}
-
-	$found=false;
-	$aName = strtolower($aName);
-	$nlen = strlen($aName);
-	reset($this->iCountryNameMap);
-	// Start by trying to match exact index name
-	while( list($key,$val) = each($this->iCountryNameMap) ) {
-	    if( $nlen == strlen($val) && $val == $aName )  {
-		$found=true;
-		break;
-	    }
-	}
-	if( !$found ) {
-	    reset($this->iCountryNameMap);
-	    // If the exact index doesn't work try a (partial) full name
-	    while( list($key,$val) = each($this->iCountryNameMap) ) {
-		if( strpos(strtolower($key), $aName) !== false ) {
-		    $found=true;
-		    break;
-		}
-	    }
-	}
-	if( $found ) {
-	    $outFullName = $key;
-	    return $val;   
-	}
-	else { 
-	    JpGraphError::RaiseL(5004,$aName);
-//("The (partial) country name \"$aName\" does not have a cooresponding flag image. The flag may still exist but under another name, e.g. insted of \"usa\" try \"united states\".");
-	}
-    }
-}
-
-
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_gantt.php b/nightly-test-server/jpgraph/jpgraph_gantt.php
deleted file mode 100644
index c69a21c..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gantt.php
+++ /dev/null
@@ -1,3776 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_GANTT.PHP
-// Description:	JpGraph Gantt plot extension
-// Created: 	2001-11-12
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotband.php'); 
-require_once('jpgraph_iconplot.php'); 
-require_once('jpgraph_plotmark.inc');
-
-// Maximum size for Automatic Gantt chart
-DEFINE('MAX_GANTTIMG_SIZE_W',4000);
-DEFINE('MAX_GANTTIMG_SIZE_H',5000);
-
-// Scale Header types
-DEFINE("GANTT_HDAY",1);
-DEFINE("GANTT_HWEEK",2);
-DEFINE("GANTT_HMONTH",4);
-DEFINE("GANTT_HYEAR",8);
-DEFINE("GANTT_HHOUR",16);
-DEFINE("GANTT_HMIN",32);
-
-// Bar patterns
-DEFINE("GANTT_RDIAG",BAND_RDIAG);	// Right diagonal lines
-DEFINE("GANTT_LDIAG",BAND_LDIAG); // Left diagonal lines
-DEFINE("GANTT_SOLID",BAND_SOLID); // Solid one color
-DEFINE("GANTT_VLINE",BAND_VLINE); // Vertical lines
-DEFINE("GANTT_HLINE",BAND_HLINE);  // Horizontal lines
-DEFINE("GANTT_3DPLANE",BAND_3DPLANE);  // "3D" Plane
-DEFINE("GANTT_HVCROSS",BAND_HVCROSS);  // Vertical/Hor crosses
-DEFINE("GANTT_DIAGCROSS",BAND_DIAGCROSS); // Diagonal crosses
-
-// Conversion constant
-DEFINE("SECPERDAY",3600*24);
-
-// Locales. ONLY KEPT FOR BACKWARDS COMPATIBILITY
-// You should use the proper locale strings directly 
-// from now on. 
-DEFINE("LOCALE_EN","en_UK");
-DEFINE("LOCALE_SV","sv_SE");
-
-// Layout of bars
-DEFINE("GANTT_EVEN",1);
-DEFINE("GANTT_FROMTOP",2);
-
-// Style for minute header
-DEFINE("MINUTESTYLE_MM",0);		// 15
-DEFINE("MINUTESTYLE_CUSTOM",2);		// Custom format
-
-
-// Style for hour header
-DEFINE("HOURSTYLE_HM24",0);		// 13:10
-DEFINE("HOURSTYLE_HMAMPM",1);		// 1:10pm
-DEFINE("HOURSTYLE_H24",2);		// 13
-DEFINE("HOURSTYLE_HAMPM",3);		// 1pm
-DEFINE("HOURSTYLE_CUSTOM",4);		// User defined
-
-// Style for day header
-DEFINE("DAYSTYLE_ONELETTER",0);		// "M"
-DEFINE("DAYSTYLE_LONG",1);		// "Monday"
-DEFINE("DAYSTYLE_LONGDAYDATE1",2);	// "Monday 23 Jun"
-DEFINE("DAYSTYLE_LONGDAYDATE2",3);	// "Monday 23 Jun 2003"
-DEFINE("DAYSTYLE_SHORT",4);		// "Mon"
-DEFINE("DAYSTYLE_SHORTDAYDATE1",5);	// "Mon 23/6"
-DEFINE("DAYSTYLE_SHORTDAYDATE2",6);	// "Mon 23 Jun"
-DEFINE("DAYSTYLE_SHORTDAYDATE3",7);	// "Mon 23"
-DEFINE("DAYSTYLE_SHORTDATE1",8);	// "23/6"
-DEFINE("DAYSTYLE_SHORTDATE2",9);	// "23 Jun"
-DEFINE("DAYSTYLE_SHORTDATE3",10);	// "Mon 23"
-DEFINE("DAYSTYLE_SHORTDATE4",11);	// "23"
-DEFINE("DAYSTYLE_CUSTOM",12);		// "M"
-
-// Styles for week header
-DEFINE("WEEKSTYLE_WNBR",0);
-DEFINE("WEEKSTYLE_FIRSTDAY",1);
-DEFINE("WEEKSTYLE_FIRSTDAY2",2);
-DEFINE("WEEKSTYLE_FIRSTDAYWNBR",3);
-DEFINE("WEEKSTYLE_FIRSTDAY2WNBR",4);
-
-// Styles for month header
-DEFINE("MONTHSTYLE_SHORTNAME",0);
-DEFINE("MONTHSTYLE_LONGNAME",1);
-DEFINE("MONTHSTYLE_LONGNAMEYEAR2",2);
-DEFINE("MONTHSTYLE_SHORTNAMEYEAR2",3);
-DEFINE("MONTHSTYLE_LONGNAMEYEAR4",4);
-DEFINE("MONTHSTYLE_SHORTNAMEYEAR4",5);
-DEFINE("MONTHSTYLE_FIRSTLETTER",6);
-
-
-// Types of constrain links
-DEFINE('CONSTRAIN_STARTSTART',0);
-DEFINE('CONSTRAIN_STARTEND',1);
-DEFINE('CONSTRAIN_ENDSTART',2);
-DEFINE('CONSTRAIN_ENDEND',3);
-
-// Arrow direction for constrain links
-DEFINE('ARROW_DOWN',0);
-DEFINE('ARROW_UP',1);
-DEFINE('ARROW_LEFT',2);
-DEFINE('ARROW_RIGHT',3);
-
-// Arrow type for constrain type
-DEFINE('ARROWT_SOLID',0);
-DEFINE('ARROWT_OPEN',1);
-
-// Arrow size for constrain lines
-DEFINE('ARROW_S1',0);
-DEFINE('ARROW_S2',1);
-DEFINE('ARROW_S3',2);
-DEFINE('ARROW_S4',3);
-DEFINE('ARROW_S5',4);
-
-// Activity types for use with utility method CreateSimple()
-DEFINE('ACTYPE_NORMAL',0);
-DEFINE('ACTYPE_GROUP',1);
-DEFINE('ACTYPE_MILESTONE',2);
-
-DEFINE('ACTINFO_3D',1);
-DEFINE('ACTINFO_2D',0);
-
-
-// Check if array_fill() exists
-if (!function_exists('array_fill')) {
-    function array_fill($iStart, $iLen, $vValue) {
-	$aResult = array();
-	for ($iCount = $iStart; $iCount < $iLen + $iStart; $iCount++) {
-	    $aResult[$iCount] = $vValue;
-	}
-	return $aResult;
-    }
-}
-
-//===================================================
-// CLASS GanttActivityInfo
-// Description: 
-//===================================================
-class GanttActivityInfo {
-    var $iColor='black';
-    var $iBackgroundColor='lightgray';
-    var $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10,$iFontColor='black';
-    var $iTitles=array();
-    var $iWidth=array(),$iHeight=-1;
-    var $iLeftColMargin=4,$iRightColMargin=1,$iTopColMargin=1,$iBottomColMargin=3;
-    var $iTopHeaderMargin = 4;
-    var $vgrid = null;
-    var $iStyle=1;
-    var $iShow=true;
-    var $iHeaderAlign='center';
-
-    function GanttActivityInfo() {
-	$this->vgrid = new LineProperty();
-    }
-
-    function Hide($aF=true) {
-	$this->iShow=!$aF;
-    }
-
-    function Show($aF=true) {
-	$this->iShow=$aF;
-    }
-
-    // Specify font
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-
-    function SetColumnMargin($aLeft,$aRight) {
-	$this->iLeftColMargin = $aLeft;
-	$this->iRightColMargin = $aRight;
-    }
-
-    function SetFontColor($aFontColor) {
-	$this->iFontColor = $aFontColor;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetBackgroundColor($aColor) {
-	$this->iBackgroundColor = $aColor;
-    }
-
-    function SetColTitles($aTitles,$aWidth=null) {
-	$this->iTitles = $aTitles;
-	$this->iWidth = $aWidth;
-    }
-
-    function SetMinColWidth($aWidths) {
-	$n = min(count($this->iTitles),count($aWidths));
-	for($i=0; $i < $n; ++$i ) {
-	    if( !empty($aWidths[$i]) ) {
-		if( empty($this->iWidth[$i]) ) {
-		    $this->iWidth[$i] = $aWidths[$i];
-		}
-		else {
-		    $this->iWidth[$i] = max($this->iWidth[$i],$aWidths[$i]);
-		}
-	    }
-	}
-    }
-
-    function GetWidth(&$aImg) {
-	$txt = new TextProperty();
-	$txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	$n = count($this->iTitles) ;
-	$rm=$this->iRightColMargin;
-	$w = 0;
-	for($h=0, $i=0; $i < $n; ++$i ) {
-	    $w += $this->iLeftColMargin;
-	    $txt->Set($this->iTitles[$i]);
-	    if( !empty($this->iWidth[$i]) ) {
-		$w1 = max($txt->GetWidth($aImg)+$rm,$this->iWidth[$i]);
-	    }
-	    else {
-		$w1 = $txt->GetWidth($aImg)+$rm;
-	    }
-	    $this->iWidth[$i] = $w1;
-	    $w += $w1;
-	    $h = max($h,$txt->GetHeight($aImg));
-	}
-	$this->iHeight = $h+$this->iTopHeaderMargin;
-        $txt='';
-	return $w;
-    }
-    
-    function GetColStart(&$aImg,&$ioStart,$aAddLeftMargin=false) {
-	$n = count($this->iTitles) ;
-	$adj = $aAddLeftMargin ? $this->iLeftColMargin : 0;
-	$ioStart=array($aImg->left_margin+$adj);
-	for( $i=1; $i < $n; ++$i ) {
-	    $ioStart[$i] = $ioStart[$i-1]+$this->iLeftColMargin+$this->iWidth[$i-1];
-	}
-    }
-    
-    // Adjust headers left, right or centered
-    function SetHeaderAlign($aAlign) {
-	$this->iHeaderAlign=$aAlign;
-    }
-
-    function Stroke(&$aImg,$aXLeft,$aYTop,$aXRight,$aYBottom,$aUseTextHeight=false) {
-
-	if( !$this->iShow ) return;
-
-	$txt = new TextProperty();
-	$txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	$txt->SetColor($this->iFontColor);
-	$txt->SetAlign($this->iHeaderAlign,'top');
-	$n=count($this->iTitles);
-
-	if( $n == 0 ) 
-	    return;
-	
-	$x = $aXLeft;
-	$h = $this->iHeight;
-	$yTop = $aUseTextHeight ? $aYBottom-$h-$this->iTopColMargin-$this->iBottomColMargin : $aYTop ;
-
-	if( $h < 0 ) {
-	    JpGraphError::RaiseL(6001);
-//('Internal error. Height for ActivityTitles is < 0');
-	}
-
-	$aImg->SetLineWeight(1);
-	// Set background color
-	$aImg->SetColor($this->iBackgroundColor);
-	$aImg->FilledRectangle($aXLeft,$yTop,$aXRight,$aYBottom-1);
-
-	if( $this->iStyle == 1 ) {
-	    // Make a 3D effect
-	    $aImg->SetColor('white');
-	    $aImg->Line($aXLeft,$yTop+1,
-			$aXRight,$yTop+1);
-	}
-	
-	for($i=0; $i < $n; ++$i ) {
-	    if( $this->iStyle == 1 ) {
-		// Make a 3D effect
-		$aImg->SetColor('white');
-		$aImg->Line($x+1,$yTop,$x+1,$aYBottom);
-	    }
-	    $x += $this->iLeftColMargin;
-	    $txt->Set($this->iTitles[$i]);
-	    
-	    // Adjust the text anchor position according to the choosen alignment
-	    $xp = $x;
-	    if( $this->iHeaderAlign == 'center' ) {
-		$xp = (($x-$this->iLeftColMargin)+($x+$this->iWidth[$i]))/2;
-	    }
-	    elseif( $this->iHeaderAlign == 'right' ) {
-		$xp = $x +$this->iWidth[$i]-$this->iRightColMargin;
-	    }
-		    
-	    $txt->Stroke($aImg,$xp,$yTop+$this->iTopHeaderMargin);
-	    $x += $this->iWidth[$i];
-	    if( $i < $n-1 ) {
-		$aImg->SetColor($this->iColor);
-		$aImg->Line($x,$yTop,$x,$aYBottom);
-	    }
-	}
-
-	$aImg->SetColor($this->iColor);
-	$aImg->Line($aXLeft,$yTop, $aXRight,$yTop);
-
-	// Stroke vertical column dividers
-	$cols=array();
-	$this->GetColStart($aImg,$cols);
-	$n=count($cols);
-	for( $i=1; $i < $n; ++$i ) {
-	    $this->vgrid->Stroke($aImg,$cols[$i],$aYBottom,$cols[$i],
-				    $aImg->height - $aImg->bottom_margin);
-	}
-    }
-}
-
-
-//===================================================
-// CLASS GanttGraph
-// Description: Main class to handle gantt graphs
-//===================================================
-class GanttGraph extends Graph {
-    var $scale;							// Public accessible
-    var $iObj=array();				// Gantt objects
-    var $iLabelHMarginFactor=0.2;	// 10% margin on each side of the labels
-    var $iLabelVMarginFactor=0.4;	// 40% margin on top and bottom of label
-    var $iLayout=GANTT_FROMTOP;	// Could also be GANTT_EVEN
-    var $iSimpleFont = FF_FONT1,$iSimpleFontSize=11;
-    var $iSimpleStyle=GANTT_RDIAG,$iSimpleColor='yellow',$iSimpleBkgColor='red';
-    var $iSimpleProgressBkgColor='gray',$iSimpleProgressColor='darkgreen';
-    var $iSimpleProgressStyle=GANTT_SOLID;
-    var $hgrid=null;
-//---------------
-// CONSTRUCTOR	
-    // Create a new gantt graph
-    function GanttGraph($aWidth=0,$aHeight=0,$aCachedName="",$aTimeOut=0,$aInline=true) {
-
-	// Backward compatibility
-	if( $aWidth == -1 ) $aWidth=0;
-	if( $aHeight == -1 ) $aHeight=0;
-
-	if( $aWidth<  0 || $aHeight < 0 ) {
-	    JpgraphError::RaiseL(6002);
-//("You can't specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension.");
-	}
-	Graph::Graph($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline);		
-	$this->scale = new GanttScale($this->img);
-
-	// Default margins
-	$this->img->SetMargin(15,17,25,15);
-
-	$this->hgrid = new HorizontalGridLine();
-		
-	$this->scale->ShowHeaders(GANTT_HWEEK|GANTT_HDAY);
-	$this->SetBox();
-    }
-	
-//---------------
-// PUBLIC METHODS
-
-    // 
-
-    function SetSimpleFont($aFont,$aSize) {
-	$this->iSimpleFont = $aFont;
-	$this->iSimpleFontSize = $aSize;
-    }
-
-    function SetSimpleStyle($aBand,$aColor,$aBkgColor) {
-	$this->iSimpleStyle = $aBand;
-	$this->iSimpleColor = $aColor;
-	$this->iSimpleBkgColor = $aBkgColor;
-    }
-
-    // A utility function to help create basic Gantt charts
-    function CreateSimple($data,$constrains=array(),$progress=array()) {
-	$num = count($data);
-	for( $i=0; $i < $num; ++$i) {
-	    switch( $data[$i][1] ) {
-		case ACTYPE_GROUP:
-		    // Create a slightly smaller height bar since the
-		    // "wings" at the end will make it look taller
-		    $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',8);
-		    $a->title->SetFont($this->iSimpleFont,FS_BOLD,$this->iSimpleFontSize);		
-		    $a->rightMark->Show();
-		    $a->rightMark->SetType(MARK_RIGHTTRIANGLE);
-		    $a->rightMark->SetWidth(8);
-		    $a->rightMark->SetColor('black');
-		    $a->rightMark->SetFillColor('black');
-	    
-		    $a->leftMark->Show();
-		    $a->leftMark->SetType(MARK_LEFTTRIANGLE);
-		    $a->leftMark->SetWidth(8);
-		    $a->leftMark->SetColor('black');
-		    $a->leftMark->SetFillColor('black');
-	    
-		    $a->SetPattern(BAND_SOLID,'black');
-		    $csimpos = 6;
-		    break;
-		
-		case ACTYPE_NORMAL:
-		    $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',10);
-		    $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $a->SetPattern($this->iSimpleStyle,$this->iSimpleColor);
-		    $a->SetFillColor($this->iSimpleBkgColor);
-		    // Check if this activity should have a constrain line
-		    $n = count($constrains);
-		    for( $j=0; $j < $n; ++$j ) {
-			if( empty($constrains[$j]) || (count($constrains[$j]) != 3) ) {
-			    JpGraphError::RaiseL(6003,$j);
-//("Invalid format for Constrain parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)");	 
-			}
-			if( $constrains[$j][0]==$data[$i][0] ) {
-			    $a->SetConstrain($constrains[$j][1],$constrains[$j][2],'black',ARROW_S2,ARROWT_SOLID);    
-			}
-		    }
-
-		    // Check if this activity have a progress bar
-		    $n = count($progress);
-		    for( $j=0; $j < $n; ++$j ) {
-			
-			if( empty($progress[$j]) || (count($progress[$j]) != 2) ) {
-			    JpGraphError::RaiseL(6004,$j);
-//("Invalid format for Progress parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)");	
-			}
-			if( $progress[$j][0]==$data[$i][0] ) {
-			    $a->progress->Set($progress[$j][1]);
-			    $a->progress->SetHeight(0.5);
-			    $a->progress->SetPattern($this->iSimpleProgressStyle,
-						     $this->iSimpleProgressColor);
-			    $a->progress->SetFillColor($this->iSimpleProgressBkgColor);
-			    //$a->progress->SetPattern($progress[$j][2],$progress[$j][3]);
-			    break;
-			}
-		    }
-		    $csimpos = 6;
-		    break;
-
-		case ACTYPE_MILESTONE:
-		    $a = new MileStone($data[$i][0],$data[$i][2],$data[$i][3]);
-		    $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $a->caption->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $csimpos = 5;
-		    break;
-		default:
-		    die('Unknown activity type');
-		    break;
-	    }
-
-	    // Setup caption
-	    $a->caption->Set($data[$i][$csimpos-1]);
-
-	    // Check if this activity should have a CSIM target ?
-	    if( !empty($data[$i][$csimpos]) ) {
-		$a->SetCSIMTarget($data[$i][$csimpos]);
-		$a->SetCSIMAlt($data[$i][$csimpos+1]);
-	    }
-	    if( !empty($data[$i][$csimpos+2]) ) {
-		$a->title->SetCSIMTarget($data[$i][$csimpos+2]);
-		$a->title->SetCSIMAlt($data[$i][$csimpos+3]);
-	    }
-
-	    $this->Add($a);
-	}
-    }
-
-	
-    // Set what headers should be shown
-    function ShowHeaders($aFlg) {
-	$this->scale->ShowHeaders($aFlg);
-    }
-	
-    // Specify the fraction of the font height that should be added 
-    // as vertical margin
-    function SetLabelVMarginFactor($aVal) {
-	$this->iLabelVMarginFactor = $aVal;
-    }
-
-    // Synonym to the method above
-    function SetVMarginFactor($aVal) {
-	$this->iLabelVMarginFactor = $aVal;
-    }
-	
-	
-    // Add a new Gantt object
-    function Add($aObject) {
-	if( is_array($aObject) && count($aObject) > 0 ) {
-	    $cl = $aObject[0];
-	    if( is_a($cl,'IconPlot') ) {
-		$this->AddIcon($aObject);
-	    }
-	    else {
-		$n = count($aObject);
-		for($i=0; $i < $n; ++$i)
-		    $this->iObj[] = $aObject[$i];
-	    }
-	}
-	else {
-	    if( is_a($aObject,'IconPlot') ) {
-		$this->AddIcon($aObject);
-	    }
-	    else {	    
-		$this->iObj[] = $aObject;
-	    }
-	}
-    }
-
-    // Override inherit method from Graph and give a warning message
-    function SetScale() {
-	JpGraphError::RaiseL(6005);
-//("SetScale() is not meaningfull with Gantt charts.");
-    }
-
-    // Specify the date range for Gantt graphs (if this is not set it will be
-    // automtically determined from the input data)
-    function SetDateRange($aStart,$aEnd) {
-	// Adjust the start and end so that the indicate the
-	// begining and end of respective start and end days
-	if( strpos($aStart,':') === false )
-	    $aStart = date('Y-m-d 00:00',strtotime($aStart));
-	if( strpos($aEnd,':') === false )
-	    $aEnd = date('Y-m-d 23:59',strtotime($aEnd));
-	$this->scale->SetRange($aStart,$aEnd);
-    }
-	
-    // Get the maximum width of the activity titles columns for the bars
-    // The name is lightly misleading since we from now on can have
-    // multiple columns in the label section. When this was first written
-    // it only supported a single label, hence the name.
-    function GetMaxLabelWidth() {
-	$m=50;
-	if( $this->iObj != null ) {
-	    $marg = $this->scale->actinfo->iLeftColMargin+$this->scale->actinfo->iRightColMargin;
-	    $m = $this->iObj[0]->title->GetWidth($this->img)+$marg;
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		if( !empty($this->iObj[$i]->title) ) {
-		    if( $this->iObj[$i]->title->HasTabs() ) {
-			list($tot,$w) = $this->iObj[$i]->title->GetWidth($this->img,true);
-			$m=max($m,$tot);
-		    }
-		    else 
-			$m=max($m,$this->iObj[$i]->title->GetWidth($this->img));
-		}
-	    }
-	}
-	return $m;
-    }
-	
-    // Get the maximum height of the titles for the bars
-    function GetMaxLabelHeight() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->title->GetHeight($this->img);
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		if( !empty($this->iObj[$i]->title) ) {
-		    $m=max($m,$this->iObj[$i]->title->GetHeight($this->img));
-		}
-	    }
-	}
-	return $m;
-    }
-
-    function GetMaxBarAbsHeight() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->GetAbsHeight($this->img);
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		$m=max($m,$this->iObj[$i]->GetAbsHeight($this->img));
-	    }
-	}
-	return $m;		
-    }
-	
-    // Get the maximum used line number (vertical position) for bars
-    function GetBarMaxLineNumber() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->GetLineNbr();
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		$m=max($m,$this->iObj[$i]->GetLineNbr());
-	    }
-	}
-	return $m;
-    }
-	
-    // Get the minumum and maximum used dates for all bars
-    function GetBarMinMax() {
-	$start = 0 ;
-	$n = count($this->iObj);
-
-	while( $start < $n && $this->iObj[$start]->GetMaxDate() === false )
-	    ++$start;
-	if( $start >= $n ) {
-	    JpgraphError::RaiseL(6006);
-//('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]');
-	}
-
-	$max=$this->scale->NormalizeDate($this->iObj[$start]->GetMaxDate());
-	$min=$this->scale->NormalizeDate($this->iObj[$start]->GetMinDate());
-
-	for($i=$start+1; $i < $n; ++$i) {
-	    $rmax = $this->scale->NormalizeDate($this->iObj[$i]->GetMaxDate());
-	    if( $rmax != false ) 
-		$max=Max($max,$rmax);
-	    $rmin = $this->scale->NormalizeDate($this->iObj[$i]->GetMinDate());
-	    if( $rmin != false ) 
-		$min=Min($min,$rmin);
-	}
-	$minDate = date("Y-m-d",$min);
-	$min = strtotime($minDate);
-	$maxDate = date("Y-m-d 23:59",$max);
-	$max = strtotime($maxDate);	
-	return array($min,$max);
-    }
-
-    // Create a new auto sized canvas if the user hasn't specified a size
-    // The size is determined by what scale the user has choosen and hence
-    // the minimum width needed to display the headers. Some margins are
-    // also added to make it better looking.
-    function AutoSize() {
-	if( $this->img->img == null ) {
-	    // The predefined left, right, top, bottom margins.
-	    // Note that the top margin might incease depending on
-	    // the title.
-	    $lm = $this->img->left_margin; 
-	    $rm = $this->img->right_margin; 
-	    $rm += 2 ;
-	    $tm = $this->img->top_margin; 
-	    $bm = $this->img->bottom_margin; 
-	    $bm += 1; 
-	    if( BRAND_TIMING ) $bm += 10;
-			
-	    // First find out the height			
-	    $n=$this->GetBarMaxLineNumber()+1;
-	    $m=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight());
-	    $height=$n*((1+$this->iLabelVMarginFactor)*$m);			
-			
-	    // Add the height of the scale titles			
-	    $h=$this->scale->GetHeaderHeight();
-	    $height += $h;
-
-	    // Calculate the top margin needed for title and subtitle
-	    if( $this->title->t != "" ) {
-		$tm += $this->title->GetFontHeight($this->img);
-	    }
-	    if( $this->subtitle->t != "" ) {
-		$tm += $this->subtitle->GetFontHeight($this->img);
-	    }
-
-	    // ...and then take the bottom and top plot margins into account
-	    $height += $tm + $bm + $this->scale->iTopPlotMargin + $this->scale->iBottomPlotMargin;
-	    // Now find the minimum width for the chart required
-
-	    // If day scale or smaller is shown then we use the day font width
-	    // as the base size unit.
-	    // If only weeks or above is displayed we use a modified unit to
-	    // get a smaller image.
-	    if( $this->scale->IsDisplayHour() || $this->scale->IsDisplayMinute() ) {
-		// Add 2 pixel margin on each side
-		$fw=$this->scale->day->GetFontWidth($this->img)+4; 
-	    }
-	    elseif( $this->scale->IsDisplayWeek() ) {
-		$fw = 8;
-	    }
-	    elseif( $this->scale->IsDisplayMonth() ) {
-		$fw = 4;
-	    }
-	    else {
-		$fw = 2;
-	    }
-
-	    $nd=$this->scale->GetNumberOfDays();
-
-	    if( $this->scale->IsDisplayDay() ) {
-		// If the days are displayed we also need to figure out
-		// how much space each day's title will require.
-		switch( $this->scale->day->iStyle ) {
-		    case DAYSTYLE_LONG :
-			$txt = "Monday";
-			break;
-		    case DAYSTYLE_LONGDAYDATE1 :
-			$txt =  "Monday 23 Jun";
-			break;
-		    case DAYSTYLE_LONGDAYDATE2 :
-			$txt =  "Monday 23 Jun 2003";
-			break;
-		    case DAYSTYLE_SHORT : 
-			$txt =  "Mon";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE1 : 
-                        $txt =  "Mon 23/6";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE2 :
-			$txt =  "Mon 23 Jun";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE3 :
-			$txt =  "Mon 23";
-			break;
-		    case DAYSTYLE_SHORTDATE1 :
-                        $txt =  "23/6";
-			break;
-		    case DAYSTYLE_SHORTDATE2 :
-			$txt =  "23 Jun";
-			break;
-		    case DAYSTYLE_SHORTDATE3 :
-			$txt =  "Mon 23";
-			break;
-		    case DAYSTYLE_SHORTDATE4 :
-			$txt =  "88";
-			break;
-		    case DAYSTYLE_CUSTOM :
-			$txt = date($this->scale->day->iLabelFormStr,
-				    strtotime('2003-12-20 18:00'));
-			break;
-		    case DAYSTYLE_ONELETTER :
-		    default:
-			$txt = "M";
-			break;
-		}
-		$fw = $this->scale->day->GetStrWidth($this->img,$txt)+6;
-	    }
-
-	    // If we have hours enabled we must make sure that each day has enough
-	    // space to fit the number of hours to be displayed.
-	    if( $this->scale->IsDisplayHour() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space. We therefore create a typical string for the choosen format
-		// and determine the length of that string.
-		switch( $this->scale->hour->iStyle ) {
-		    case HOURSTYLE_HMAMPM:
-			$txt = '12:00pm';
-			break;
-		    case HOURSTYLE_H24:
-			// 13
-			$txt = '24';
-			break;
-		    case HOURSTYLE_HAMPM:
-			$txt = '12pm';
-			break;
-		    case HOURSTYLE_CUSTOM:
-			$txt = date($this->scale->hour->iLabelFormStr,strtotime('2003-12-20 18:00'));
-			break;
-		    case HOURSTYLE_HM24:
-		    default:
-			$txt = '24:00';
-			break;
-		}
-
-		$hfw = $this->scale->hour->GetStrWidth($this->img,$txt)+6;
-		$mw = $hfw;
-		if( $this->scale->IsDisplayMinute() ) {
-		    // Depending on what format the user has choose we need different amount
-		    // of space. We therefore create a typical string for the choosen format
-		    // and determine the length of that string.
-		    switch( $this->scale->minute->iStyle ) {
-			case HOURSTYLE_CUSTOM:
-			    $txt2 = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55'));
-			    break;
-			case MINUTESTYLE_MM:
-			default:
-			    $txt2 = '15';
-			    break;
-		    }
-		    
-		    $mfw = $this->scale->minute->GetStrWidth($this->img,$txt2)+6;
-		    $n2 = ceil(60 / $this->scale->minute->GetIntervall() );
-		    $mw = $n2 * $mfw;
-		}
-		$hfw = $hfw < $mw ? $mw : $hfw ;   
-		$n = ceil(24*60 / $this->scale->TimeToMinutes($this->scale->hour->GetIntervall()) );
-		$hw = $n * $hfw;
-		$fw = $fw < $hw ? $hw : $fw ;
-	    }
-
-	    // We need to repeat this code block here as well. 
-	    // THIS iS NOT A MISTAKE !
-	    // We really need it since we need to adjust for minutes both in the case
-	    // where hour scale is shown and when it is not shown.
-
-	    if( $this->scale->IsDisplayMinute() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space. We therefore create a typical string for the choosen format
-		// and determine the length of that string.
-		switch( $this->scale->minute->iStyle ) {
-		    case HOURSTYLE_CUSTOM:
-			$txt = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55'));
-			break;
-		    case MINUTESTYLE_MM:
-		    default:
-			$txt = '15';
-			break;
-		}
-		
-		$mfw = $this->scale->minute->GetStrWidth($this->img,$txt)+6;
-		$n = ceil(60 / $this->scale->TimeToMinutes($this->scale->minute->GetIntervall()) );
-		$mw = $n * $mfw;
-		$fw = $fw < $mw ? $mw : $fw ;
-	    }
-
-	    // If we display week we must make sure that 7*$fw is enough
-	    // to fit up to 10 characters of the week font (if the week is enabled)
-	    if( $this->scale->IsDisplayWeek() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space
-		$fsw = strlen($this->scale->week->iLabelFormStr);
-		if( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $fsw += 8;
-		}
-		elseif( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) {
-		    $fsw += 7;
-		}
-		else {
-		    $fsw += 4;
-		}
-		    
-		$ww = $fsw*$this->scale->week->GetFontWidth($this->img);
-		if( 7*$fw < $ww ) {
-		    $fw = ceil($ww/7);
-		}
-	    }
-
-	    if( !$this->scale->IsDisplayDay() && !$this->scale->IsDisplayHour() &&
-		!( ($this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR || 
-		    $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR) && $this->scale->IsDisplayWeek() ) ) {
-		// If we don't display the individual days we can shrink the
-		// scale a little bit. This is a little bit pragmatic at the 
-		// moment and should be re-written to take into account
-		// a) What scales exactly are shown and 
-		// b) what format do they use so we know how wide we need to
-		// make each scale text space at minimum.
-		$fw /= 2;
-		if( !$this->scale->IsDisplayWeek() ) {
-		    $fw /= 1.8;
-		}
-	    }
-
-	    $cw = $this->GetMaxActInfoColWidth() ;
-	    $this->scale->actinfo->SetMinColWidth($cw); 
-	    if( $this->img->width <= 0 ) {
-		// Now determine the width for the activity titles column
-
-		// Firdst find out the maximum width of each object column
-		$titlewidth = max(max($this->GetMaxLabelWidth(),
-				      $this->scale->tableTitle->GetWidth($this->img)), 
-				  $this->scale->actinfo->GetWidth($this->img));
-
-		// Add the width of the vertivcal divider line
-		$titlewidth += $this->scale->divider->iWeight*2;
-
-
-		// Now get the total width taking 
-		// titlewidth, left and rigt margin, dayfont size 
-		// into account
-		$width = $titlewidth + $nd*$fw + $lm+$rm;
-	    }
-	    else {
-		$width = $this->img->width;
-	    }
-
-	    $width = round($width);
-	    $height = round($height);
-	    if( $width > MAX_GANTTIMG_SIZE_W || $height > MAX_GANTTIMG_SIZE_H ) {
-		JpgraphError::RaiseL(6007,$width,$height);
-//("Sanity check for automatic Gantt chart size failed. Either the width (=$width) or height (=$height) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities.");
-	    }
-						
-	    $this->img->CreateImgCanvas($width,$height);			
-	    $this->img->SetMargin($lm,$rm,$tm,$bm);
-	}
-    }
-
-    // Return an array width the maximum width for each activity
-    // column. This is used when we autosize the columns where we need
-    // to find out the maximum width of each column. In order to do that we
-    // must walk through all the objects, sigh...
-    function GetMaxActInfoColWidth() {
-	$n = count($this->iObj);
-	if( $n == 0 ) return;
-	$w = array();
-	$m = $this->scale->actinfo->iLeftColMargin + $this->scale->actinfo->iRightColMargin;
-	
-	for( $i=0; $i < $n; ++$i ) {
-	    $tmp = $this->iObj[$i]->title->GetColWidth($this->img,$m);
-	    $nn = count($tmp);
-	    for( $j=0; $j < $nn; ++$j ) {
-		if( empty($w[$j]) ) 
-		    $w[$j] = $tmp[$j];
-		else 
-		    $w[$j] = max($w[$j],$tmp[$j]);
-	    }
-	}
-	return $w;
-    }
-
-    // Stroke the gantt chart
-    function Stroke($aStrokeFileName="") {	
-
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// Should we autoscale dates?
-	if( !$this->scale->IsRangeSet() ) {
-	    list($min,$max) = $this->GetBarMinMax();
-	    $this->scale->SetRange($min,$max);
-	}
-
-	$this->scale->AdjustStartEndDay();
-
-	// Check if we should autoscale the image
-	$this->AutoSize();
-		
-	// Should we start from the top or just spread the bars out even over the
-	// available height
-	$this->scale->SetVertLayout($this->iLayout);			
-	if( $this->iLayout == GANTT_FROMTOP ) {
-	    $maxheight=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight());
-	    $this->scale->SetVertSpacing($maxheight*(1+$this->iLabelVMarginFactor));
-	}
-	// If it hasn't been set find out the maximum line number
-	if( $this->scale->iVertLines == -1 ) 
-	    $this->scale->iVertLines = $this->GetBarMaxLineNumber()+1; 	
-		
-	$maxwidth=max($this->scale->actinfo->GetWidth($this->img),
-		      max($this->GetMaxLabelWidth(),
-		      $this->scale->tableTitle->GetWidth($this->img)));
-
-	$this->scale->SetLabelWidth($maxwidth+$this->scale->divider->iWeight);//*(1+$this->iLabelHMarginFactor));
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	    if( $this->iIconDepth == DEPTH_BACK ) {
-		$this->StrokeIcons();
-	    }
-	}
-
-	$this->scale->Stroke();
-
-	if( !$_csim ) {
-	    // Due to a minor off by 1 bug we need to temporarily adjust the margin
-	    $this->img->right_margin--;
-	    $this->StrokePlotBox();
-	    $this->img->right_margin++;
-	}
-
-	// Stroke Grid line
-	$this->hgrid->Stroke($this->img,$this->scale);
-
-	$n = count($this->iObj);
-	for($i=0; $i < $n; ++$i) {
-	    //$this->iObj[$i]->SetLabelLeftMargin(round($maxwidth*$this->iLabelHMarginFactor/2));
-	    $this->iObj[$i]->Stroke($this->img,$this->scale);
-	}
-
-	$this->StrokeTitles();
-
-	if( !$_csim ) {
-	    $this->StrokeConstrains();
-	    $this->footer->Stroke($this->img);
-
-	    if( $this->iIconDepth == DEPTH_FRONT) {
-		$this->StrokeIcons();
-	    }
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		}
-	    
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-	    
-	    
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-
-    function StrokeConstrains() {
-	$n = count($this->iObj);
-
-	// Stroke all constrains
-	for($i=0; $i < $n; ++$i) {
-
-	    // Some gantt objects may not have constraints associated with them
-	    // for example we can add IconPlots which doesn't have this property.
-	    if( empty($this->iObj[$i]->constraints) ) continue;
-
-	    $numConstrains = count($this->iObj[$i]->constraints);
-
-	    for( $k = 0; $k < $numConstrains; $k++ ) {
-		$vpos = $this->iObj[$i]->constraints[$k]->iConstrainRow;
-		if( $vpos >= 0 ) {
-		    $c1 = $this->iObj[$i]->iConstrainPos;
-
-		    // Find out which object is on the target row
-		    $targetobj = -1;
-		    for( $j=0; $j < $n && $targetobj == -1; ++$j ) {
-			if( $this->iObj[$j]->iVPos == $vpos ) {
-			    $targetobj = $j;
-			}
-		    }
-		    if( $targetobj == -1 ) {
-			JpGraphError::RaiseL(6008,$this->iObj[$i]->iVPos,$vpos);
-//('You have specifed a constrain from row='.$this->iObj[$i]->iVPos.' to row='.$vpos.' which does not have any activity.');
-		    }
-		    $c2 = $this->iObj[$targetobj]->iConstrainPos;
-		    if( count($c1) == 4 && count($c2 ) == 4) {
-			switch( $this->iObj[$i]->constraints[$k]->iConstrainType ) {
-			    case CONSTRAIN_ENDSTART:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[2],$c1[3],$c2[0],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[2],$c1[1],$c2[0],$c2[3]);
-				}
-				$link->SetPath(3);
-				break;
-			    case CONSTRAIN_STARTEND:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[0],$c1[3],$c2[2],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[0],$c1[1],$c2[2],$c2[3]);
-				}
-				$link->SetPath(0);
-				break;
-			    case CONSTRAIN_ENDEND:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[2],$c1[3],$c2[2],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[2],$c1[1],$c2[2],$c2[3]);
-				}
-				$link->SetPath(1);
-				break;
-			    case CONSTRAIN_STARTSTART:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[0],$c1[3],$c2[0],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[0],$c1[1],$c2[0],$c2[3]);
-				}
-				$link->SetPath(3);
-				break;
-			    default:
-				JpGraphError::RaiseL(6009,$this->iObj[$i]->iVPos,$vpos);
-//('Unknown constrain type specified from row='.$this->iObj[$i]->iVPos.' to row='.$vpos);
-				break;
-			}
-
-			$link->SetColor($this->iObj[$i]->constraints[$k]->iConstrainColor);
-			$link->SetArrow($this->iObj[$i]->constraints[$k]->iConstrainArrowSize,
-					$this->iObj[$i]->constraints[$k]->iConstrainArrowType);
- 
-			$link->Stroke($this->img);
-		    }
-		}
-	    }
-	}
-    }
-
-    function GetCSIMAreas() {
-	if( !$this->iHasStroked )
-	    $this->Stroke(_CSIM_SPECIALFILE);
-
-	$csim = $this->title->GetCSIMAreas();
-	$csim .= $this->subtitle->GetCSIMAreas();
-	$csim .= $this->subsubtitle->GetCSIMAreas();
-
-	$n = count($this->iObj);
-	for( $i=$n-1; $i >= 0; --$i ) 
-	    $csim .= $this->iObj[$i]->GetCSIMArea();
-	return $csim;
-    }
-}
-
-//===================================================
-// CLASS PredefIcons
-// Description: Predefined icons for use with Gantt charts
-//===================================================
-DEFINE('GICON_WARNINGRED',0);
-DEFINE('GICON_TEXT',1);
-DEFINE('GICON_ENDCONS',2);
-DEFINE('GICON_MAIL',3);
-DEFINE('GICON_STARTCONS',4);
-DEFINE('GICON_CALC',5);
-DEFINE('GICON_MAGNIFIER',6);
-DEFINE('GICON_LOCK',7);
-DEFINE('GICON_STOP',8);
-DEFINE('GICON_WARNINGYELLOW',9);
-DEFINE('GICON_FOLDEROPEN',10);
-DEFINE('GICON_FOLDER',11);
-DEFINE('GICON_TEXTIMPORTANT',12);
-
-class PredefIcons {
-    var $iBuiltinIcon = null;
-    var $iLen = -1 ;
-
-    function GetLen() {
-	return $this->iLen ; 
-    }
-
-    function GetImg($aIdx) {
-	if( $aIdx < 0 || $aIdx >= $this->iLen ) {
-	    JpGraphError::RaiseL(6010,$aIdx);
-//('Illegal icon index for Gantt builtin icon ['.$aIdx.']');
-	}
-	return Image::CreateFromString(base64_decode($this->iBuiltinIcon[$aIdx][1]));   
-    }
-
-    function PredefIcons() {
-	//==========================================================
-	// warning.png
-	//==========================================================
-	$this->iBuiltinIcon[0][0]= 1043 ;
-	$this->iBuiltinIcon[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wgKFSgilWPhUQAAA6BJREFUeNrtl91rHFUYh5/3zMx+Z5JNUoOamCZNaqTZ6IWIkqRiQWmi1IDetHfeiCiltgXBP8AL'.
-	    '0SIUxf/AvfRSBS9EKILFFqyIH9CEmFZtPqrBJLs7c+b1YneT3WTTbNsUFPLCcAbmzPt73o9zzgzs2Z793231UOdv3w9k9Z2uzOdA'.
-	    '5+2+79yNeL7Hl7hw7oeixRMZ6PJM26W18DNAm/Vh7lR8fqh97NmMF11es1iFpMATqdirwMNA/J4DpIzkr5YsAF1PO6gIMYHRdPwl'.
-	    'oO2elmB+qH3sm7XozbkgYvy8SzYnZPtcblyM6I+5z3jQ+0vJfgpEu56BfI9vUkbyi2HZd1QJoeWRiAjBd4SDCW8SSAOy6wBHMzF7'.
-	    'YdV2A+ROuvRPLfHoiSU0EMY/cDAIhxJeGngKaN1VgHyPL7NBxI1K9P4QxBzw3K1zJ/zkG8B9uwaQ7/HNsRZv9kohBGD0o7JqMYS/'.
-	    '/ynPidQw/LrBiPBcS/yFCT95DvB2BWAy4575PaQbQKW+tPd3GCItu2odKI++YxiKu0d26oWmAD7paZU/rLz37VqIijD2YbnzNBBE'.
-	    'IBHf8K8qjL7vYhCGErEU8CTg3xXAeMp96GrJEqkyXkm9Bhui1xfsunjdGhcYLq+IzjsGmBt5YH/cmJkFq6gIqlon3u4LxdKGuCIo'.
-	    'Qu41g0E41po+2R33Xt5uz9kRIB2UTle7PnfKrROP1HD4sRjZlq0lzhwoZ6rDNeTi3nEg1si/7FT7kYQbXS6E5E65tA5uRF9tutq0'.
-	    'K/VwAF+/FbIYWt6+tjQM/AqUms7A4Wy6d7YSfSNxgMmzi0ycWWworio4QJvj4LpuL5BqugTnXzzqJsJwurrlNhJXFaavW67NRw3F'.
-	    'q+aJcCQVe9fzvJGmAY7/dPH0gi0f64OveGxa+usCuQMeZ0+kt8BVrX+qPO9Bzx0MgqBvs+a2PfDdYIf+WAjXU1ub4tqNaPPzRs8A'.
-	    'blrli+WVn79cXn0cWKl+tGx7HLc7pu3CSmnfitL+l1UihAhwjFkPQev4K/fSABjBM8JCaFuurJU+rgW41SroA8aNMVNAFtgHJCsn'.
-	    'XGy/58QVxAC9MccJtZ5kIzNlW440WrJ2ea4YPA9cAooA7i0A/gS+iqLoOpB1HOegqrYB3UBmJrAtQAJwpwPr1Ry92wVlgZsiYlW1'.
-	    'uX1gU36dymgqYxJIJJNJT1W9QqHgNwFQBGYqo94OwHZQUuPD7ACglSvc+5n5T9m/wfJJX4U9qzEAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// edit.png
-	//==========================================================
-	$this->iBuiltinIcon[1][0]= 959 ;
-	$this->iBuiltinIcon[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAFgAWABY9j+ZuwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDAwbIEXOA6AAAAM8SURBVHicpdRPaBxlHMbx76ZvsmOTmm1dsEqQSIIsEmGVBAQjivEQ'.
-	    'PAUJngpWsAWlBw8egpQepKwplN4ULEG9CjkEyUFKlSJrWTG0IU51pCsdYW2ncUPjdtp9Z+f3vuNhu8nKbmhaf5cZeGc+PO8zf1Lc'.
-	    'm0KhkACICCKCMeaBjiLC0tLSnjNvPmuOHRpH0TZTU1M8zBi9wakzn7OFTs5sw8YYACYmJrre7HkeuVyu69qPF77hlT1XmZ0eQ03O'.
-	    'wOLJTvhBx1rLz18VmJ0eY+jVd2FxDkKXnvYLHgb97OgLzE4ON9Hzc1B1QaQzsed5O0Lta3Ec89OnR5h5McfQ+Mw2qgQUnfBOPbZ3'.
-	    'bK3l+xOvMT0+3ERLp5FNF6UEjcL32+DdVmGt5WLhDYYPZrbRqreFumXwql0S3w9tnDvLWD5PZigPpdOwuYpSCo3C8wU3UHxQdHbf'.
-	    'cZIkNM6dxcnlUM4k1eUFMlUPpUADbpkttFarHe6oYqeOr6yt4RzMQHYUcUsQVtGicHDwKprViuLDkkOtVnsHCHZVRVy/zcj1i5Af'.
-	    'h8AjdIts+hUcGcYPK3iBtKM3gD/uAzf/AdY2mmmVgy6X8YNNKmGIvyloPcB8SUin07RQ4EZHFdsdG0wkJEnEaHAJxvKEpSLeaokV'.
-	    'r4zWmhUZYLlY4b1D03y5eIEWCtS7vsciAgiIxkQRabWOrlQor66y4pUphoJb1jiO4uO5o0S3q6RSqVbiOmC7VCEgAhLSaDQ48dH7'.
-	    'vD46REY0iysegSjKQciRt99ib7qXwX0O+pG4teM6YKHLB9JMq4mTmF9/+AKA4wvLZByH7OgYL7+UY2qvw/7Bfg5kHiXjJFyv3CGO'.
-	    'Y1rof+BW4t/XLiPG0DCGr79d4XzRxRnIMn98huXSTYyJ6et1UNYQhRvcinpJq86H3wGPPPM0iBDd+QffD1g4eZjLvuG7S1Wef26E'.
-	    'J7L7eSx7gAHVg7V3MSbi6m/r93baBd6qQjerAJg/9Ql/XrvG0ON1+vv7GH3qSfY5fahUnSTpwZgIEQesaVXRPbHRG/xyJSAxMYlp'.
-	    'EOm71HUINiY7mGb95l/8jZCyQmJjMDGJjUmsdCROtZ0n/P/Z8v4Fs2MTUUf7vYoAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// endconstrain.png
-	//==========================================================
-	$this->iBuiltinIcon[2][0]= 666 ;
-	$this->iBuiltinIcon[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ALEREILkh0+eQAAAIXSURBVHictZU9aFNRFMd/N81HX77aptJUWmp1LHRpIcWhg5sIDlUQ'.
-	    'LAXB4t7RRUpwEhy7iQ46CCIoSHcl0CFaoVARU2MFMYktadLXJNok7x2HtCExvuYFmnO4w/3gx+Gc/z1HKRTdMEdXqHbB/sgc/sic'.
-	    'nDoYAI8XwDa8o1RMLT+2hAsigtTvbIGVqhX46szUifBGswUeCPgAGB7QeLk0X4Ork+HOxo1VgSqGASjMqkn8W4r4vVtEgI/RRQEL'.
-	    'vaoGD85cl5V3nySR/S1mxWxab7f35PnntNyMJeRr9kCMqiHTy09EoeToLwggx6ymiMOD/VwcD7Oa/MHkcIiQx026WGYto5P/U+ZZ'.
-	    '7gD0QwDuT5z9N3LrVPi0Xs543eQPKkRzaS54eviJIp4tMFQFMllAWN2qcRZHBnixNM8NYD162xq8u7ePSQ+GX2Pjwxc2dB2cLtB8'.
-	    '7GgamCb0anBYBeChMtl8855CarclxU1gvViiUK4w2OMkNDnGeJ8bt9fH90yOnOkCwLFTwhzykhvtYzOWoBBbY//R3dbaNTYhf2RO'.
-	    'QpeuUMzv188MlwuHy0H13HnE48UzMcL0WAtUHX8OxZHoG1URiFw7rnLLCswuSPD1ulze/iWjT2PSf+dBXRFtVVGIvzqph0pQL7VE'.
-	    'avXYaXXxPwsnt0imdttCocMmZBdK7YU9D8wuNOW0nXc6QWzPsSa5naZ1beb9BbGB6dxGtMnXAAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// mail.png
-	//==========================================================
-	$this->iBuiltinIcon[3][0]= 1122 ;
-	$this->iBuiltinIcon[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AJHAMfFvL9OU8AAAPfSURBVHictZRdaBRXFMd/987H7tbNx8aYtGCrEexDsOBDaKHFxirb'.
-	    'h0qhsiY0ykppKq1osI99C4H2WSiFFMHWUhXBrjRi0uCmtSEUGgP1QWqhWjGkoW7M1kTX3WRn5p4+TJJNGolQ6IXDnDtz+N0z/3PP'.
-	    'UWBIpdpYa23b9g09PZ2kUrOrvmUyGVKp1Ao/mUyi56YnVgWfO/P1CihAd/dJMpmaNROIRq8BkM1m0bH6TasC3j6QXgFdXI+DR6PR'.
-	    'JX/Pno8B+KLnMKqlpUU8z8MYs2RBEDzWf9J+0RcRbMdxGBsbw/fmCXwPMUEYID4iAVp8wIRmDIHMo4yHSIBSASKC+CWE0C/PF9jU'.
-	    '3B6Cp+4M07C5FUtKGNvGwQJctPgIsgD2wRhEIqAMGB+UQYkHJgYYZD7P1HwVlmWhHcfhyk83KeRGUW4t6CgoG5SNUS4KBWgQDUov'.
-	    '7AGlwYASBVqH0Bk49dXpCviVV3dw/tI1Bvr7kMIIlh0NYUpjlF0BAYvcxSXmEVLKceHSCJm+PnbueBHbtkNwTXUNBzo6aGpq4sSZ'.
-	    'GwT5H7BsF6Wdf1GWHQAoM0upeI9PT1yioS7B7tdaSdSuw7KsUGMAy7HYsmUztTW1nMwM0txssX1rlHjjS5jy/Uq2YkK/eJuLl6/z'.
-	    'x+1xkslW6mrixGIODx8EFSlEBC0+tmXT0NhA2763iEUjnLv4C8XpUbSbAB1mKkGJ3J83Od77HW5EszvZSqK2iljMIeJaRGNuJePF'.
-	    '6mspY7BJ1DXwQnCd2fxGRq5OUCz8xt72dyhMZcn++Cu3xu9SKhdp2b4ZHWnAtTSxmIWlhcIjlksR3lNBYzlxZsb7+f7ne+xtSzOd'.
-	    'u83szH1OnThOPp/n+a0beeP1l4mvq+PU2Qyd+5PY1RuwlAqLYFaBfbTbyPSdfgaH77A//QF4f1O/vpr6RJyq+C5Kc/M8FbFxXItY'.
-	    'xOHDrvfo/fxLDnbsJBp5BowBReVWYAzabeTh5ABDw7cWoNNL3YYYNtSv57lnn6Z+Qx01VeuIuBa2DV1HD3H63BAPZu4u1WGpeLHq'.
-	    'Rh7+NcjA0O+0p4+CNwXigwnbWlQQdpuEpli+n+PIkcOc//YKuckJJFh2K2anrjFw+QZt6S6kPImIF/b+cqAJD1LihWAxC61twBTo'.
-	    'fPcQF/oGsVW5ovHQlavs2/8+uYnRVSOUgHAmmAClBIOBwKC0gPjhIRgEIX2wg7NnwpZW3d3d4vs+vu8TBMGK51rvPM9b8hdteZxd'.
-	    'LBbVR8feJDs0Rlv6GFKeXJ21rNRXESxMPR+CBUl0nN7PjtO+dye7Up/8v1I88bf/ixT/AO1/hZsqW+C6AAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// startconstrain.png
-	//==========================================================
-	$this->iBuiltinIcon[4][0]= 725 ;
-	$this->iBuiltinIcon[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDgAACw4BQL7hQQAAAAd0SU1FB9ALEREICJp5fBkAAAJSSURBVHic3dS9a1NRGMfx77kxtS+xqS9FG6p1ER3qVJpBQUUc3CRU'.
-	    'BwURVLB1EAuKIP0THJQiiNRJBK3iJl18AyeltRZa0bbaJMbUNmlNSm5e7s25j0NqpSSmyag/OMM9POdzDuflwn8djz8gClVRrVEV'.
-	    'ur4Bl1FTNSzLrSS6vbml0jUUwSXj8Qfk3PkLtLW2AeBIybmrgz3+gFzpucjlE4f4btuFTuWuCF5XDr3a3UPf6cM8GQvxzbsRAJdh'.
-	    'ScfxSywml5j7mVypN0eGEJ0tebIre+zxB6Tv7jPReS2hREpOvpmUXU+H5eC913JnNCSRVE60pUVbWoZjprR39Yq70bdqj4pW7PEH'.
-	    '5FpvL9e79jOTTHM7ssDL6CJZ08LbvAGnrpZg2mI2Z/MlZfN8IkxuSwu4V9+WIrj7zFlOHfXzKrLIi2SGh5ECKjnNVNxkQEc55vOw'.
-	    'rb6O8JLFdHyJ+ayFElUeHvjwkfteL/V7fKTSkFvIQE4DoLI2Mz/muTkTApcBKIwaN8pwIUrKw+ajWwDknAO0d/r4zFaMuRS63sWm'.
-	    'RoOdm+vRIriUYjKexrQV+t1o0YEVwfZSVJmD/dIABJuO0LG3lRFx0GOfiAELE9OgCrfU0XnIp5FwGLEy5WEAOxlR5uN+ARhP7GN3'.
-	    '5w7Gv4bQI2+xpt4jjv2nWBmIlcExE2vDAHYioszBZXw6CPE4ADoWVHmd/tuwlZR9eXYyoszBfpiNQqaAOU5+TXRN+DeeenADPT9b'.
-	    'EVgKVsutKPl0TGWGhwofoquaoKK4apsq/tH/e/kFwBMXLgAEKK4AAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// calc.png
-	//==========================================================
-	$this->iBuiltinIcon[5][0]= 589 ;
-	$this->iBuiltinIcon[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAA4AIwBbgMF12wAAAAlwSFlz'.
-	    'AAALEQAACxEBf2RfkQAAAAd0SU1FB9AHBxQeFsqn0wQAAAHKSURBVHicnZWff+RAGIef3U/gcOEgUAgUCgcLhYXCwsHBQeGgUDgs'.
-	    'FgMHB4VA/4Bg4XChWFgIFIqBwkJhsRAYeOGF+TQHmWSTTbKd9pU37/x45jvfTDITXEynAbdWKVQB0NazcVm0alcL4rJaRVzm+w/e'.
-	    '3iwAkzbYRcnnYgI04GCvsxxSPabYaEdt2Ra6D0atcvvvDmyrMWBX1zPq2ircP/Tk98DiJtjV/fim6ziOCL6dDHZNhxQ3arIMsox4'.
-	    'vejleL2Ay9+jaw6A+4OSICG2cacGKhsGxg+CxeqAQS0Y7BYJvowq7iGMOhXHEfzpvpQkA9bLKgOgWKt+4Lo1mM9hs9m17QNsJ70P'.
-	    'Fjc/O52joogoX8MZKiBiAFxd9Z1vcj9wfSpUlDRNMcYQxzFpmnJ0FPH8nDe1MQaWSz9woQpWSZKEojDkeaWoKAyr1tlu+s48wfVx'.
-	    'u7n5i7jthmGIiEGcT+36PP+gFeJrxWLhb0UA/lb4ggGs1T0rZs0zwM/ZjNfilcIY5tutPxgOW3F6dUX464LrKILLiw+A7WErrl+2'.
-	    'rABG1EL/BilZP8DjU2uR4U+2E49P1Z8QJmNXUzl24A9GBT0IruCfi86d9x+D12RGzt+pNAAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// mag.png
-	//==========================================================
-	$this->iBuiltinIcon[6][0]= 1415 ;
-	$this->iBuiltinIcon[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDAAACwwBP0AiyAAAAAd0SU1FB9ALDxEWDY6Ul+UAAAUESURBVHicdZVrbFRFGIafsyyF0nalV1R6WiggaAptlzsr1OgEogmC'.
-	    '0IgoBAsBgkIrBAPEhBj/AP6xRTCUFEwRI4jcgsitXMrFCJptJWvBNpXYbbXtbtttt6e7e86ec/yxadlCfZPJZDIz73zzzjfvR2VL'.
-	    'F7U+hf0HD2JduIzTFy6SlJRkPtkcDgdCCE65OxFC8NPV6wghyM7OptankJ2dzbSC5QghEEIgCSHog9PpNAF27dlN6miZuPgElB4/'.
-	    'nmY3O7ZtByA1NVUCkGWZweD1eklJScESTbqxuIjrd+/x6uIl5M19hSy7nfGOeUxf+g7VjU1sKi7C4/GYsiyz7tAJAD4/cRaA1tZW'.
-	    'AHIPnECUVGD1+/3U19ebG4uLeHf1akamjsIwoVnVCOvQEdLoVILYYmMo3PIxSBJflpSaDX5FAmju1QAYv/8k/s8+wLVxOU0jR2LZ'.
-	    '8sMFAApWrCApbRRDrRZirBYSLBKaoRPQw3SFernf2sav7T0Ubt4KwL4FMwF4Vu8FoHBCKgCzDhwHwLIhZ7y5a89u4m2JhA0wTdDC'.
-	    'OrphEjJMNElCHxKDEjaobmvlfo/Krj27CQQCJsCGJW8C0KXqAMxMiosQA8hZWcTFx9OsaniDKh1qmG7VoFsL0x0K06kbeAMhWpRe'.
-	    '/KpG+gwHAKUnz7Dz3BUMw6DK18nuw99wt0Nh6VdHI8RJicmETQgFg7SFwjSrGv+oKp6ghldV6dZ0ugJBlF6FmCESQ2w2AIqXLsan'.
-	    'BrFYLJTnTCBrdBqveeopWZiPFaBHUegJhegMqGgxEkHDwB/UaQ9rdIV06v0+TD2EEQjQFtAY0dsNgNvt5sialQAIIXh7wQKuVf6J'.
-	    'gTsSccPDWlQstClBGjr9eHpVWvUQncEwdYEedF8noQ4vmYmpZMTH0nTvDn25vLbrNmu7bvfnsYEbAMnhcPDgwQPzUo2LJusw/mhp'.
-	    'QwlHNO0KBAnoIfxtrcQMT2De1Mm891wyUzNlUlJSpIyMDBobGzlzr5rFM/Koq6vrP8ASGxsLwPmKcvIShjPGZiPOakE3VFB8hHwd'.
-	    'vJAxhrk5L7Ly+RQuH/sWgPdXrwFg/6HDFBUsIj09nehfbAWwPWOT9n5RYhqGwarNWxkRM5TRCfF4U1PQsDDJFk9uYhwXvzvKjm3b'.
-	    'KSsro3DJInNW5RXp7u2bAKSlpeH1esnPz6eqqgqLpmmcr3Fht9ulfaV7mZk1Bs+lM6T1djM9fhg5egDPpTNMy5TZsW07kydPYdWM'.
-	    'aXx96ixOp9O8cfUa80srmDpjOgAulytiQqZpMnvObLbt/JTtHxXj9/tRVdU0DGOAufRpevPDTeac0hJyc3NxOOawfv161lVWS6eX'.
-	    'z+9/UOCxu1VWVvaTRGv16NFfjB2bNeAQp9NpTpmSM4DcbrdL0WsGDKLRR+52uwe1yP8jb2lpYfikyY9t80n03UCWZeaXVjw1f+zs'.
-	    'Oen+/d+pqanhzp2fKSsrw+l0mi6XiyPl5ZGITdN8fAVJwjRNJEmi1qfw1kw7siyTnJxMe3s71dXV3GpoZO64DG41NPJylvxU5D/e'.
-	    'qJKsfWQD9IkaZ2RmUvr9aV4aGYcQgjfO3aWoYBF5eXm4ewIsu/CbdPz1aWb0/p1bNoOrQxlUiuiaFo3c3FyEEOx9+C9CCD6paaTW'.
-	    'p/TXyYkTJ0Xe59jf7QOyAKDWp/QXxcFQ61P4pT3ShBBcvnUHIQTjxmX19/8BCeVg+/GPpskAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// lock.png
-	//==========================================================
-	$this->iBuiltinIcon[7][0]= 963 ;
-	$this->iBuiltinIcon[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALCwAACwsBbQSEtwAAAAd0SU1FB9AKAw0XDmwMOwIAAANASURBVHic7ZXfS1t3GMY/3+PprI7aisvo2YU6h6ATA8JW4rrlsF4U'.
-	    'qiAsF9mhl0N2cYTRy9G/wptAYWPD9iJtRy5asDe7cYFmyjaXOLaMImOrmkRrjL9yTmIS3120JybWQgfb3R74wuc8Lzw858vLOUpE'.
-	    'OK6pqSm2trbY39+nu7tbPHYch7m5OcLhMIA67kWj0aMQEWk6tm17rNm2LSIie3t7ksvlJJ1OSyqVkls3Z8SyLMnlcqTTaVKpFLdu'.
-	    'zmBZVj1HeY2VUti2TSQSQSml2bZdi0QirK2tMT09zerqKtlslqGhISYnJ4nHv2N+foFsNquOe9FotLlxOBwmk8lgWRbhcFgymYxY'.
-	    'liUi0mqaJoAuIi2macrdO7fFsizx3to0Te7euV1vrXtXEgqFmJmZYWVlhXK5LB4/U9kwDL784kYV0A3DYHd3m4sXRymXywKoRi8U'.
-	    'Ch01DgQCJBIJLMsiEAhIIpHw2uLz+eqtYrEYIqKZpimxWEyCwaCMjY01zYPBIJpXqVQqsby8TLVabWKA/v5+RkZGMAyDrq4ulFKH'.
-	    'HsfjcWZnZ+ns7KTRqwcnk0mKxSKFQqGJlVKtruuSTCYB6O3trW9UI/v9/iZPB/j8s2HOnX0FgHfeXpeffnzK+fWf+fijvhLs0PtG'.
-	    'D/n1OJ9+MsrlSwb3733DwMCAt1EyPj6uACYmJp56168NU6nUqFSE9nZdPE7+WqC/r4NKTagcCJVqDaUUB5VDAA4Pa9x7sMLlSwan'.
-	    'WjRmv13D7/erpaWlo604qOp88OF7LC48rPNosMq5Th+Dgxd4/XyA1rbzADi7j8jnf2P++wdcvSr8MJ/i8eomAKlUqn41OsDAQDeD'.
-	    'g++yuPCwzm/2vU8+n2a7sMFfj79mp7BBuVzioFSiXHJx3SKuW2Rzy0Up9dxnQVvODALQerqNRn4ZKe0Mvtc6TpzpmqbxalcY9Ato'.
-	    '2v06t515C73YQftZB9GLnDrt4LoujuPgOA4Ui+C6yOpXJwZrJ7r/gv4P/u+D9W7fLxTz+1ScQxrZ3atRLaVxdjbY2d184R6/sLHe'.
-	    'opHP7/Do90Ua+WWUyezzZHObP/7cfX54/dowE1d66s8TV3oE+Mfn+L/zb4XmHPjRG9YjAAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// stop.png
-	//==========================================================
-	$this->iBuiltinIcon[8][0]= 889 ;
-	$this->iBuiltinIcon[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9AJDwEvNyD6M/0AAAL2SURBVHic1ZTLaxVnGIefb2bO5OScHJN4oWrFNqcUJYoUEgU3/Qf6'.
-	    'F7gwCkIrvdBLUtqqiLhSg9bgBduFSHZdiG5ctkJ3xRDbUFwUmghNzBDanPGMkzOX79LFJGPMOSd204U/+Bbzvd/78F4H/ieJdoad'.
-	    'pZKxRFszAI/DcP0HazXY22v+HB01kee1PA/v3zfnjx4xgGnHcNZe7OvuNj+cOEF1ZATv5nUA4jhBSgmADCVWo8Ge2Of9wb18P/G7'.
-	    'oUXmYi30zqlTVEdGWLh1g2D6MYlKkXGE0Vl8aa2GEB149+4xXSzyoOIw/mimiZV/DPb25pFOj13A9gOMEChhUEqhVYqWKUk9QAUp'.
-	    'sT/P4s8PmKlUmNhQaIJbkDVqBbpw6wZ2zUc4Nm+ePku5p4eOrgpueQOFUoVCVxcD4+N07dpF9+5tVJeWGPBjhvr7WF1zC8ASgtcP'.
-	    'H8a7eZ1odh4sh50nzwCw9ZNh3M4Stutiu0X2nB/LyjZ6lcIbVTpdQU/jWVPzLADM8+ZGBRdtC7wrF/O7bR99iu26VL86iU4SAH4b'.
-	    'Po5d6AQhstMSvGyI4wS5FJBKSRwnzF8byx/u+PjzzMF1mfryQ1K/jnCahqp1xEopjFLoNEFJSRJHzF799gWHqa+/QKcSUXBI609f'.
-	    'Al5W4teQSiHDOipNUKnMI13RvnOXAIEKQixvGWya98SC560MFwPiqEG86JM8q79Q06lvhnOndy5/B6GPCUOMUu3BQgg8z0M3GmBZ'.
-	    'iGJn3v2VmsqnfzNx7FDueODuj8ROCFpjtG5TCmOYv32bJ09msP0ISydMfnAUgF8/O45RAA6WTPjlvXcB+Gn7FuRf/zAnNX6x3ARe'.
-	    'PSdmqL+P/YHkwMGDOGWDZTlQcNBRhPEComgB/YeHfq2InF1kLlXUOkpMbio1bd7aATRD/X0M1lPeSlM2vt2X1XBZjZnpLG2tmZO6'.
-	    'LbQVOIcP+HG2UauH3xgwBqOz9Cc3l1tC24Fz+MvUDroeGNb5if9H/1dM/wLPCYMw9fryKgAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// error.png
-	//==========================================================
-	$this->iBuiltinIcon[9][0]= 541 ;
-	$this->iBuiltinIcon[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaVBMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'.
-	    'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpYiYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTCAkUMSj9wWSOAAABLUlEQVR4'.
-	    '2s2U3ZKCMAxGjfzJanFAXFkUle/9H9JUKA1gKTN7Yy6YMjl+kNPK5rlZVSuxf1ZRnlZxFYAm93NnIKvR+MEHUgqBXx93wZGIUrSe'.
-	    'h+ctEgbpiMo3iQ4kioHCGxir/ZYUbr7AgPXs9bX0BCYM8vN/cPe8oQYzom3tVsSBMVHEoOJ5dm5F1RsIe9CtqGgRacCAkUvRtevT'.
-	    'e2pd6vOWF+gCuc/brcuhyARakBU9FgK5bUBWdHEH8tHpDsZnRTZQGzdLVvQ3CzyYZiTAmSIODEwzFCAdJopuvbpeZDisJ4pKEcjD'.
-	    'ijWPJhU1MjCo9dkYfiUVjQNTDKY6CVbR6A0niUSZjRwFanR0l9i/TyvGnFdqwStq5axMfDbyBksld/FUumvxS/Bd9VyJvQDWiiMx'.
-	    'iOsCHgAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// openfolder.png
-	//==========================================================
-	$this->iBuiltinIcon[10][0]= 2040 ;
-	$this->iBuiltinIcon[10][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEANAAtwClFht71AAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDQ4RIXMeaLcAAAd1SURBVHicxZd7jBXVHcc/58zcvTNzH8vusqw8FsTsKiCUUh5WBZXG'.
-	    'GkOptmqwNWsWLKXFGlEpzZI0AWNKSy0WhDS22gJKtWlTsSRqzYIuLGB2WVvDIwQMZQMsy2OFfdzde+/OnHP6x907vJaFpjb9JZM5'.
-	    'c85Mfp/f9/s7Jxn4P4e41gtSyp78WGvtfdEAcqDFYUOH9HS0NhGk9tPb/ilSyp789UUB2AMuqhQy3Uzm7HGkE6W3dTNZMRI3EcWO'.
-	    'jf9ClLmWBT3dzW8jUsevWHCG3UpWl+IkHSxnbDh/Mcz12NevBcuWXTmf6TjnXvJ88gDmVB3pw3+nt3UzHa1NqMzBS2zqPLGFjtMN'.
-	    'ZNr3XdW+qyqwZcFk76HX/tHWfuQvyO4W7qhaHwL8efkMRlRUpPv7rqD0RrJ+FgAjLy1a20OIxZJEEuNCRfIApj+om4bGM3u2/sYU'.
-	    '9J41d8973f3Dhg1pISTV1dXXBRNJxPGFCzhou+DCQrScZOkktNaeDZjamgeZ9MgiYmVDccvHhjAzJw0NTh8/alyZMaVJicp0iTHj'.
-	    'JpgNv38tjWUhhGROdbUL9W5/MH5XCkjlcibi+KIop5LVHLKEu8A/f4r286doa9pGrGwYAAsfqbbH3b8MgO/Nqgy6WvdbbXHMkEFJ'.
-	    '4xUOMVEvaTZu3BgmvF4Yk4hz9rO/Ulr5cE9owae/rcGxohSOuiWkC2IjcIqKyPZm+OmCH7GhoZEF077EEzVVweAbJ+riEeO0Ey8y'.
-	    'UubqOHn0AOgMwvf59txnBrSp9dgxKmf/+kIP1NY8SFk0jh5ajmNHAWg5b2E5EexojGHjbiVRMoRMNs0LC+Yz46vTuH3enN7BI8fr'.
-	    'qFdo0BoVZNC9aVSQ4fNjBzEmQJiARxb+/AqYPMAVB5FsPU5v37g9OxgLhe14ZM5/ju052E6MNZvf5pmHHuLmmWOkEysxUtpGAtme'.
-	    'dtHTflJkezqQto3jFRnLssyf1jydxiiM7zNnye/c3ZsqLu2BN5fcMfzrv/hby1tPzmRUoihcTJ87CwQI2yLtDcIqsIjYUf51qBlf'.
-	    'OnScOSrdQUOMURkiXsLUzJnvbGhoBGDHH5cGyZLhOpYoNl5hqYnYEXOu5fDl9eYAHntx98n8hFHZcPHUuTSxSASAeK/CGIOxJJ0f'.
-	    'bOGNPU280dgkq6Y2yu8vfjCIlwwzr+/ZQ/PHO0gOLuO5qsftDQ2NbN+4OCgqG6WTxWVaq6zpF+DiSHWnicdylp3r6aZTWthIOrNp'.
-	    'ktHcvBu0sHX1Sm6ozB3B42d90zZA9bQp7PvgPSzXZfnqX/HS4DKKK2+x69Y/HURs26iBAN5ccsfw7774UcumF37C6f07KSt2OHji'.
-	    'DEUJD0tISjyPrrSPlAKvN0JP/U4O1NfjuhG2rvklN1SOpfXwftpbTqAyKRrff5fb7rs9V1R7m4wlz2ihA3HpmXflUWyOH2umpLiY'.
-	    'ui3v8M+6bWzfsRNbSgqkxaCkiy0simMuEWEhpcRzIhQWOIAh6tiAwS4owInFiTou5dOnMnl2NR++ujBwXEc9terD6M43nrj6LgAB'.
-	    'QnDPA9/irtkP8JRS7Hr/3T6YekDQ1pEiEXOwpUVJzCVlZZFS4mZtkpEo9ChAkDp/jtLMBACy6S4RiQghLyv5cgBRPnKUOX6smUGF'.
-	    'hSil0MYw9d77mPy1e5mnFE3batm3czvb6nYgEJztSFGU9LCRlMRdUjIH0+lnEMIwPNXD3NumoVJnrMCJaiciMUZfvQnz4QcBSvV1'.
-	    'vjE5GK358t0zmXDnDB79saLpo20c+aSRD+t25JTp7GZQwsEWFiVxl6hlUf/WO9z32CxmL1rOe6u/I2KuwGhzLQCB7/sYY9Bah3el'.
-	    'FKbvrrVm4vS7GH/7ncx+chEHGz7myCeNbPtoO0JI2jq78WIRLGkzsqs7V5SfFV5EovXACoiqqsfNpk2vo5VCWtYFBfoU0VoTBAFa'.
-	    'a7TRaK2p+MoURk+cxMzq+Rzbv49DDbuo27UTW9h0dedssPxuK+kIfN8XxhgDYPVXf2Fh4XKtFIl4AiklAlBKAYRKKK36wHIweTCt'.
-	    'NfHiEkaOn8j0+7/BmDFjaT30GbHywSxcuZkpFfFg+m1jjZ/NmnVvNfRvwd69e8WBA/uNFAIh4JVXXmHsmDHE4vEQQgjQ2lxQIm9N'.
-	    'nz35q3BEOZOHzaG2thaA4mRU+L29It+IV21CpbRQfeMFC35gRB/M2rVrubnyZmLxWJhECBEmz/eHyo/7lMlH3LFFujsthNFCCGOu'.
-	    '+WNyeUgpjSVzMKtWraKyshLPdcPEeYWCIEBdpIxSivr6eta8vI7d6+cGnhdV06pe1QP+F/QXWmuRL+jZZ58LlVmxYgUVFRV4rhtu'.
-	    '4TzMxXAA6XRaRAtsYUkx8I/JtSJQOlSwpmZpCLN8+fPcdNNoHMfB9/0QJgRoP295TlR7UVv8xxZcHMuWIZ9/Hn35vG3JEGZpzVJG'.
-	    'jx5N1IlitKahsZE1L69j69qHgx+urFX/lQL9JYdLlfnZihUhzOLFi8N3Ml1dthOxVH/f/8/CtqSJ2JaJ2JZ59J7RPsC/AViJsQS/'.
-	    'dBntAAAAAElFTkSuQmCC' ;
-
-	//==========================================================
-	// folder.png
-	//==========================================================
-        $this->iBuiltinIcon[11][0]= 1824 ;
-	$this->iBuiltinIcon[11][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9ECAQgFFyd9cRUAAAadSURBVHiczdhvbBP3Hcfx9/2xfefEOA5JoCNNnIT8AdtZmYBETJsI'.
-	    '6+jQOlQihT1AYgytqzZpD1atfyYqlT1h0lRpT7aRJ4NQpRvZGELVuo5Ua9jEJDIETQsNQyPBsUJMWGPnj//e+e72wNg4xElMR6ed'.
-	    'ZNln3933dZ/f93f6yfB/sgmrHdDV1WXlPg8NDZUDScD8LFFFEZZlWYZhWMFg0Orq6sq/gDJAfFy1iiZy9OjrVnj4JzQ1rMWqfxm/'.
-	    '309jYyNtbW0kEgnu3bvH4cOH88c/jqSKQl4/XGkd+eVtAN46up1LH92ktqYS++ZX8Pv9NDQ0sGnTJlKpFOFwmO7u7vy5IyMjeVRd'.
-	    'XV1+WEOh0IrY4pDnq6wXX/sTiCJaMkFZdRNqxefoe7VtCSqXVDqdZnZ2ltraWkzTpKqqijt3JpFlG7dvj7NzZ1f++qFQyA3EClHL'.
-	    'Ql743nFkhxPDtJAd5eTaYSVUfX09lZWVlJWVIUnSg7sVQMBCUcu4ceMGe/bsIRQK1QAzOcyykIM9P0KyudAyCWyqG8nhwqa4SkLt'.
-	    '3r0bVVVxu924XC40TUOWZUQxe97CwgIdHR2LMHIxSCaVInVvFElxE0vMY1Pd2NUKJMWNTXHlUfF//4vETJCelwbpFm3MjP2dt37x'.
-	    'AlN+PzU1NViWRSwW4+7du3g8HjweD4qi5EFAJzAExIpCANbooxhplfB0FJvTg6xWIqsVRVF6MopkU3FXPcnkJxGU0VEAdF2noqKC'.
-	    'W3/8DpnqLjzep2lubsblcjE8PExHR8fboVDID9xYFpLBDpJF0jDQIncQpWlkm31FlFLtp9PfyuW/vYQj1kPSuRW/38+lj27S2Q7v'.
-	    '/aWXUBVUffVNtm3blivVCEwsC5Eyc5iiApEpDEAXMqQdldhSiWVQHjJagud+8Fuexck/zv+K82dfoSbSCsDe75/km+4GVPd6+l5t'.
-	    '4zJHcqVUYN2yEEtZQDCSJCueRAYsPY49HsFIZVG6p25JUumFafT4DKJN4amtT7Nz38sk5+5A70HMtEYyMkFiZhxzjQ/poXrLQrRU'.
-	    'DFGEeFpAlkQkm4pRiCpIKodKzk0T/2QMh+piPjxKZPwiSkUtu/b9mNnJEWS7E8nhAmvpM60oJDkXJxqNozxRRUxPIesispBBlsXV'.
-	    'UaKEFo8gzoaJhz8s2lOmrpUG+WBhJ9/60g+Z+fDXTAXfxllRjl1VkO0OFATsYhYliiK21ZKKhhHnFveUqSdKgwAEOp7F2v51vvw8'.
-	    'XH7/N1wd/BlTweuUV65BdtgfoLTSkipsdD3tRi0VYpommUwGwzDwdT5HYEc3giAwcvH3jLz3BlPB67jWeZBEKYsSBWwpHZtNKo4q'.
-	    'aHTDsJeeiGEYWJaFZVmYpommaRiGQdPnv0bb1m8gSRL/vPIOV979aR4lmAJ2p4qCgCxksNuKJ6VNpx4NYhgGpmkuQhmGQTqdxjAM'.
-	    'qr2d7HtxEEEQuH1tkKvvvkF44tqDnrIcKJKAPf1g+LAUElq8dIiu60sApmnm93Pfzc7OYhgGrie+wFe++ztcLhcT1wf54PzPCU9c'.
-	    'w7XWjWS3IdsdOAUBWZAxrRJnTQ6SG5bce2FCpmkughmGQSqVYm5uDtnj44sH38TtdhP6+Dwf//V4ttHXrkGURZJaic8RgHQ6jWma'.
-	    'SJKUL5RLKNfIOczDKF3XSSaTRCIRhLJWntp3nGfWrSMxc5OLf3iNP4+68T9Ub9nF76lTpxgfHycajZJKpdA0LZ9GbjYV7hcDWZaF'.
-	    'pmnMz88Ti8UYunSLmu1HFi2aVkxkaGjINTY2ttDb24vX6+XQoUNs3ryZ8vJyIDu1BUFYkkxhgxeiWlpaOHPmDE1NTdTX1xe98eWG'.
-	    'JnF/9dQZCoXUYDA4AOD1ejlw4ACtra2Ul5fniwmCkEcUJiUIAoFAgL6+Pnw+H21tbfT39z8SxCS7hHsfWH9/8dL4MKqnp4eWlhac'.
-	    'TmcekEvMNE2am5s5ceIEgUCA9vZ2Tp48ic/nY3j4UsmQHCYOjJHtpeBKqL1799Lc3IzT6UTXdRobGxkYGKC9vZ3W1tZ8Ko86NJ8a'.
-	    'tXHjRo4dO8bp06fZsmULGzZsoL+/n0AggNfr5ezZs/8VpGTU5OSkc//+/acBfD4f1dXV7Nq1i4aGBs6dO4fP5+Pq1SuPBbIiyjTN'.
-	    'RUnV1dUNXLhwAa/Xy44dO4jFYgBEo9FFF1r134BPuYlk16LrAYXsAlmtq6sbKDwoFAp9m+ykuP5ZQVZF3f8tCdwCov8LyHIoAANI'.
-	    'AXf/A1TI0XCDh7OWAAAAAElFTkSuQmCC' ;
-
-	//==========================================================
-	// file_important.png
-	//==========================================================
-	$this->iBuiltinIcon[12][0]= 1785 ;
-	$this->iBuiltinIcon[12][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ECDAcjDeD3lKsAAAZ2SURBVHicrZhPaFzHHcc/897s7lutJCsr2VHsOHWMk0MPbsBUrcnF'.
-	    'OFRdSo6FNhdB6SGHlpDmYtJCDyoxyKe6EBxKQkt7KKL0T6ABo0NbciqigtC6PhWKI2NFqqxdSd7V2/dmftPDvPd212t55dCBYfbN'.
-	    'zpvfZ77z+/1mdhUjytWrV93Hf/24eD5z9gwiMlDjOKbb7dLtdhER2u02u7u73Lp1CxEZBw4AeZwdNQqkMd9wbziFGINJUt6rRbz5'.
-	    '1ptUq1XK5TJBEAAUMHt7e+zu7gKwvLzMysoKwAng/uNg9CgQgFKlgg1DUJ67Vqtx6tQpZmdniaIIpRTOOZRSdDoddnZ2aLfbLC8v'.
-	    's7S0xJUrV7ZGwQSj1PhhfRodVdDlMrpc5vup5Z2fvMPdu3fZ29vDWjvwztjYGPV6nVqtRqVS4dKlSywtLQFsAdOH2XwsCEApg3jl'.
-	    'w98Rak2gvYjNZpNms0mSJDjnHgkDMDc3dySYQ0Ea8w139YUX0OUKulzyg7UmCEO+l1huvHuDra0t9vf3h1TJYSqVypFhHquIrlQI'.
-	    'S5qv/uIDAC7/4bcEQYAKvK+0Wq1DVQGIoog7d+4cCeaRII35hrt+8SsEOkRlUaEyR0UpFIrXHxyMVKVUKnHv3r0jwRwaNelBjBjL'.
-	    'Sz/7KYuLiwAsLi7y4z/9kY9e+TpkCuSqjI+Po7XuAWeKXLt2DWNMUZMkwRjDhQsXWFtbK6JpCCT3jfQgxomPtPX19YHWicM5x3c2'.
-	    '73Pj3Ru8/aO3mZqaolKpoHVvyuvXr/Ppnf/Q7uzz380NPtu4y/qnG+ztd1hfX2dtbQ3gIvDnRyqSxl1UoPjyz98D4PTp0wPtq39Z'.
-	    '4fdzLxegrVaLVqvF5OQkYRgWqpRKJZ77wvNsbW1RG5tgfKLOTH2G7Z1twqBQrgrMDvhInjfSOCY5iIv+hYWFgRZArEWsZWF941Bf'.
-	    'SdMUgMnJCWpjVU4cn+HUyePM1Gc4+fRUPkzBI5w1jbukcczLv/5l0XfmzJmBFuCba38r/CRXpT+CrDUoZ0jjB4RYonJAOYRobJKT'.
-	    'z5zgqfqxAbsFSH6mpHFM2qdGXh4VnoViD6mSJF2cTQeqDqBaKVHWmonJCWpZjhkC6anR5WsffTgwaHV1FaUUq6urA/2v3f5k4LnV'.
-	    'arG9tUn3oI2YBCcWHYAxMVYs1qZEZY2SFB2aYZDGfMN9d7uJiWPSeFiNo5Rclc3NTXZbO6RpF7EJVixYA9agwwDnUiqlEPdQ3imi'.
-	    'Jo27BGHIt/7x9yEjc3Nzh27Na7c/4TdffKl4bja3ae5MUIu0T/HOEIaOpJt4gwoSsVTK4SBIY77hFtY3ABBjBiZ90rKwvsH77/+K'.
-	    't37wOhO1iPpTk4SBw1mLsz6CnKQ4l3qV+kE+t9XHlNZOk+bUJLVIE1VCcIJWQmJ6qjj30NbcXLkZMt8YPig+Z3n1G5fZ39/j/vY2'.
-	    '9ckqZT2Ochbn0p4qNkU/dDfUADdXbh4HXgRO4zNdEU0XL1784PLly5w9e7Z4SazFOfGrEotDcOKrcoJPmrYIXf/Zop3QNd1skuGt'.
-	    'cUAb2MgAxvHZTgFUq1Wmp6eZnZ0F8JlTjDduDThBnDeECEoJtbGIp6enqEblzCcEZ1PECU4yVRiOGgd0gc+AB0CZvkv1sWPHOHfu'.
-	    'HOfPn8da41cpkkltEBEPJhYnBkTQJcdYVKGkgRxCfBsq5xXNgAa2Bn+hjTOgHEKBP8pzRUxykIH4ifLJRTJAl+UMBJzPHQ6bfe/f'.
-	    'cWIzPxlUpD+zugzIZtVk1d8znBAqRxgoQuVQgSJQ3h9C5QhDRYgjUILCAzlnEdsHYTKfMTEBcP7F54YUGVmc2GLlIn6ve6v0ahSt'.
-	    '8X25TzjJ+rIx1grKpQPWR4LkGVVsMgghvS0qjPdvm5OeceOTWA5Evo2mFzkjQfL7hZPUy5yvvF/uPFQL3+nbDmsLCEmT3sTmCTNr'.
-	    'rogT6yFsOix3ftw7OwQhkvSU6CuinhCk0+kAkFoBazEEICHaHHiPVmU0gnUp4EAc1mYrF0EBVpwPi34VrBkwPxKk3W5ju/e5/c+d'.
-	    'bGUHIAIuydTIE5zfc5Wr4lJcahHnHTP3CVGm78DrgY38N+DEibp7dmYKdAQmBh1hjEFjis+9CTWYGK21H6PxPyOI0DobYwzZF/z7'.
-	    '7jadTvJtYG0kCD7lfwl49ijgT1gc0AH+dZSJA/xB+Mz/GSIvFoj/B7H1mAd8CO/zAAAAAElFTkSuQmCC' ;
-
-	$this->iLen = count($this->iBuiltinIcon);
-    }
-}
-
-//===================================================
-// Global cache for builtin images
-//===================================================
-$_gPredefIcons = new PredefIcons();
-
-//===================================================
-// CLASS IconImage
-// Description: Holds properties for an icon image 
-//===================================================
-class IconImage {
-    var $iGDImage=null;
-    var $iWidth,$iHeight;
-    var $ixalign='left',$iyalign='center';
-    var $iScale=1.0;
-
-    function IconImage($aIcon,$aScale=1) {
-	GLOBAL $_gPredefIcons ; 
-	if( is_string($aIcon) ) {
-	    $this->iGDImage = Graph::LoadBkgImage('',$aIcon);
-	}
-	elseif( is_integer($aIcon) ) {
-	    // Builtin image
-	    $this->iGDImage = $_gPredefIcons->GetImg($aIcon);
-	}
-	else {
-	    JpGraphError::RaiseL(6011);
-//('Argument to IconImage must be string or integer');
-	}
-	$this->iScale = $aScale;
-	$this->iWidth = Image::GetWidth($this->iGDImage);
-	$this->iHeight = Image::GetHeight($this->iGDImage);
-    }
-
-    function GetWidth() {
-	return round($this->iScale*$this->iWidth);
-    }
-
-    function GetHeight() {
-	return round($this->iScale*$this->iHeight);
-    }
-
-    function SetAlign($aX='left',$aY='center') {
-
-	$this->ixalign = $aX;
-	$this->iyalign = $aY;
-
-    }
-
-    function Stroke(&$aImg,$x,$y) {
-
-	if( $this->ixalign == 'right' ) {
-	    $x -= $this->iWidth;
-	}
-	elseif( $this->ixalign == 'center' ) {
-	    $x -= round($this->iWidth/2*$this->iScale);
-	}
-
-	if( $this->iyalign == 'bottom' ) {
-	    $y -= $this->iHeight;
-	}
-	elseif( $this->iyalign == 'center' ) {
-	    $y -= round($this->iHeight/2*$this->iScale);
-	}
-
-	$aImg->Copy($this->iGDImage,
-		    $x,$y,0,0,
-		    round($this->iWidth*$this->iScale),round($this->iHeight*$this->iScale),
-		    $this->iWidth,$this->iHeight);
-    }
-}
-
-
-//===================================================
-// CLASS TextProperty
-// Description: Holds properties for a text
-//===================================================
-class TextProperty {
-    var $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10;
-    var $iColor="black";
-    var $iShow=true;
-    var $iText="";
-    var $iHAlign="left",$iVAlign="bottom";
-    var $csimtarget='',$csimalt='';
-	
-//---------------
-// CONSTRUCTOR	
-    function TextProperty($aTxt='') {
-	$this->iText = $aTxt;
-    }		
-	
-//---------------
-// PUBLIC METHODS	
-    function Set($aTxt) {
-	$this->iText = $aTxt;
-    }
-
-    function SetCSIMTarget($aTarget,$aAltText='') {
-	if( is_string($aTarget) )
-	    $aTarget = array($aTarget);
-	$this->csimtarget=$aTarget;
-	if( is_string($aAltText) )
-	    $aAltText = array($aAltText);
-        $this->csimalt=$aAltText;
-    }
-    
-    function SetCSIMAlt($aAltText) {
-	if( is_string($aAltText) )
-	    $aAltText = array($aAltText);
-        $this->csimalt=$aAltText;
-    }
-
-    // Set text color
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-	
-    function HasTabs() {
-	if( is_string($this->iText) ) {
-	    return substr_count($this->iText,"\t") > 0;
-	}
-	elseif( is_array($this->iText) ) {
-	    return false;
-	}
-    }
-	
-    // Get number of tabs in string
-    function GetNbrTabs() {
-	if( is_string($this->iText) ) {
-	    return substr_count($this->iText,"\t") ;
-	}
-	else{
-	    return 0;
-	}
-    }
-	
-    // Set alignment
-    function Align($aHAlign,$aVAlign="bottom") {
-	$this->iHAlign=$aHAlign;
-	$this->iVAlign=$aVAlign;
-    }
-	
-    // Synonym
-    function SetAlign($aHAlign,$aVAlign="bottom") {
-	$this->iHAlign=$aHAlign;
-	$this->iVAlign=$aVAlign;
-    }
-	
-    // Specify font
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function IsColumns() {
-	return is_array($this->iText) ; 
-    }
-	
-    // Get width of text. If text contains several columns separated by
-    // tabs then return both the total width as well as an array with a 
-    // width for each column.
-    function GetWidth(&$aImg,$aUseTabs=false,$aTabExtraMargin=1.1) {
-	$extra_margin=4;
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	if( is_string($this->iText) ) {
-	    if( strlen($this->iText) == 0 ) return 0;
-	    $tmp = split("\t",$this->iText);
-	    if( count($tmp) <= 1 || !$aUseTabs ) {
-		$w = $aImg->GetTextWidth($this->iText);
-		return $w + 2*$extra_margin;
-	    }
-	    else {
-		$tot=0;
-		$n = count($tmp);
-		for($i=0; $i < $n; ++$i) {
-		    $res[$i] = $aImg->GetTextWidth($tmp[$i]);
-		    $tot += $res[$i]*$aTabExtraMargin;
-		}
-		return array(round($tot),$res);
-	    }
-	}
-	elseif( is_object($this->iText) ) {
-	    // A single icon
-	    return $this->iText->GetWidth()+2*$extra_margin;
-	}
-	elseif( is_array($this->iText) ) {
-	    // Must be an array of texts. In this case we return the sum of the
-	    // length + a fixed margin of 4 pixels on each text string
-	    $n = count($this->iText);
-	    for( $i=0, $w=0; $i < $n; ++$i ) {
-		$tmp = $this->iText[$i];
-		if( is_string($tmp) ) {
-		    $w += $aImg->GetTextWidth($tmp)+$extra_margin;
-		}
-		else {
-		    if( is_object($tmp) === false ) {
-			JpGraphError::RaiseL(6012);
-		    }
-		    $w += $tmp->GetWidth()+$extra_margin;
-		}
-	    }
-	    return $w;
-	}
-	else {
-	    JpGraphError::RaiseL(6012);
-	}
-    }
-
-    // for the case where we have multiple columns this function returns the width of each
-    // column individually. If there is no columns just return the width of the single
-    // column as an array of one
-    function GetColWidth(&$aImg,$aMargin=0) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	if( is_array($this->iText) ) {
-	    $n = count($this->iText);
-	    for( $i=0, $w=array(); $i < $n; ++$i ) {
-		$tmp = $this->iText[$i];
-		if( is_string($tmp) ) {
-		    $w[$i] = $aImg->GetTextWidth($this->iText[$i])+$aMargin;
-		}
-		else {
-		    if( is_object($tmp) === false ) {
-			JpGraphError::RaiseL(6012);
-		    }
-		    $w[$i] = $tmp->GetWidth()+$aMargin;
-		}
-	    }
-	    return $w;	
-	}
-	else {
-	    return array($this->GetWidth($aImg));
-	}
-    }
-	
-    // Get total height of text
-    function GetHeight(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontHeight();
-    }
-	
-    // Unhide/hide the text	
-    function Show($aShow=true) {
-	$this->iShow=$aShow;
-    }
-	
-    // Stroke text at (x,y) coordinates. If the text contains tabs then the
-    // x parameter should be an array of positions to be used for each successive
-    // tab mark. If no array is supplied then the tabs will be ignored.
-    function Stroke(&$aImg,$aX,$aY) {
-	if( $this->iShow ) {
-	    $aImg->SetColor($this->iColor);
-	    $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	    $aImg->SetTextAlign($this->iHAlign,$this->iVAlign);			
-	    if( $this->GetNbrTabs() <= 1 ) {
-		if( is_string($this->iText) ) {
-		    // Get rid of any "\t" characters and stroke string
-		    if( is_array($aX) ) $aX=$aX[0];
-		    if( is_array($aY) ) $aY=$aY[0];
-		    $aImg->StrokeText($aX,$aY,str_replace("\t"," ",$this->iText));
-		}
-		else {
-		    $n = count($this->iText);
-		    $ax = is_array($aX) ;
-		    $ay = is_array($aY) ;
-		    if( $ax && $ay ) {
-			// Nothing; both are already arrays
-		    }
-		    elseif( $ax ) {
-			$aY = array_fill(0,$n,$aY);
-		    }
-		    elseif( $ay ) {
-			$aX = array_fill(0,$n,$aX);
-		    }
-		    else {
-			$aX = array_fill(0,$n,$aX);
-			$aY = array_fill(0,$n,$aY);
-		    }
-		    $n = min($n, count($aX) ) ;
-		    $n = min($n, count($aY) ) ;
-		    for($i=0; $i < $n; ++$i ) {
-			$tmp = $this->iText[$i];
-			if( is_object($tmp) ) {
-			    $tmp->Stroke($aImg,$aX[$i],$aY[$i]);
-			}
-			else
-			    $aImg->StrokeText($aX[$i],$aY[$i],str_replace("\t"," ",$tmp));
-		    }
-		}
-	    }
-	    else {
-		$tmp = split("\t",$this->iText);
-		$n = min(count($tmp),count($aX));
-		for($i=0; $i < $n; ++$i) {
-		    $aImg->StrokeText($aX[$i],$aY,$tmp[$i]);
-		}	
-	    }
-	}
-    }
-}
-
-//===================================================
-// CLASS HeaderProperty
-// Description: Data encapsulating class to hold property 
-// for each type of the scale headers
-//===================================================
-class HeaderProperty {
-    var $iTitleVertMargin=3,$iFFamily=FF_FONT0,$iFStyle=FS_NORMAL,$iFSize=8;
-    var $iFrameColor="black",$iFrameWeight=1;
-    var $iShowLabels=true,$iShowGrid=true;
-    var $iBackgroundColor="white";
-    var $iWeekendBackgroundColor="lightgray",$iSundayTextColor="red"; // these are only used with day scale
-    var $iTextColor="black";
-    var $iLabelFormStr="%d";
-    var $grid,$iStyle=0;
-    var $iIntervall = 1;
-
-//---------------
-// CONSTRUCTOR	
-    function HeaderProperty() {
-	$this->grid = new LineProperty();
-    }
-
-//---------------
-// PUBLIC METHODS		
-    function Show($aShow=true) {
-	$this->iShowLabels = $aShow;
-    }
-
-    function SetIntervall($aInt) {
-	$this->iIntervall = $aInt;
-    }
-
-    function GetIntervall() {
-	return $this->iIntervall ;
-    }
-	
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function SetFontColor($aColor) {
-	$this->iTextColor = $aColor;
-    }
-	
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontHeight();
-    }
-
-    function GetFontWidth(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontWidth();
-    }
-
-    function GetStrWidth(&$aImg,$aStr) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetTextWidth($aStr);
-    }
-	
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-	
-    function SetBackgroundColor($aColor) {
-	$this->iBackgroundColor=$aColor;
-    }
-
-    function SetFrameWeight($aWeight) {
-	$this->iFrameWeight=$aWeight;
-    }
-
-    function SetFrameColor($aColor) {
-	$this->iFrameColor=$aColor;
-    }
-	
-    // Only used by day scale
-    function SetWeekendColor($aColor) {
-	$this->iWeekendBackgroundColor=$aColor;
-    }
-	
-    // Only used by day scale
-    function SetSundayFontColor($aColor) {
-	$this->iSundayTextColor=$aColor;
-    }
-	
-    function SetTitleVertMargin($aMargin) {
-	$this->iTitleVertMargin=$aMargin;
-    }
-	
-    function SetLabelFormatString($aStr) {
-	$this->iLabelFormStr=$aStr;
-    }
-
-    function SetFormatString($aStr) {
-	$this->SetLabelFormatString($aStr);
-    }
-
-
-}
-
-//===================================================
-// CLASS GanttScale
-// Description: Responsible for calculating and showing
-// the scale in a gantt chart. This includes providing methods for
-// converting dates to position in the chart as well as stroking the
-// date headers (days, week, etc).
-//===================================================
-class GanttScale {
-    var $minute,$hour,$day,$week,$month,$year;
-    var $divider,$dividerh,$tableTitle;
-    var $iStartDate=-1,$iEndDate=-1;
-    // Number of gantt bar position (n.b not necessariliy the same as the number of bars)
-    // we could have on bar in position 1, and one bar in position 5 then there are two
-    // bars but the number of bar positions is 5
-    var $iVertLines=-1;	
-    // The width of the labels (defaults to the widest of all labels)
-    var $iLabelWidth;	
-    // Out image to stroke the scale to
-    var $iImg;	
-    var $iTableHeaderBackgroundColor="white",$iTableHeaderFrameColor="black";
-    var $iTableHeaderFrameWeight=1;
-    var $iAvailableHeight=-1,$iVertSpacing=-1,$iVertHeaderSize=-1;
-    var $iDateLocale;
-    var $iVertLayout=GANTT_EVEN;
-    var $iTopPlotMargin=10,$iBottomPlotMargin=15;
-    var $iUsePlotWeekendBackground=true;
-    var $iWeekStart = 1;	// Default to have weekends start on Monday
-    var $actinfo;
-	
-//---------------
-// CONSTRUCTOR	
-    function GanttScale(&$aImg) {
-	$this->iImg = &$aImg;		
-	$this->iDateLocale = new DateLocale();
-
-	$this->minute = new HeaderProperty();
-	$this->minute->SetIntervall(15);
-	$this->minute->SetLabelFormatString('i');
-	$this->minute->SetFont(FF_FONT0);
-	$this->minute->grid->SetColor("gray");
-
-	$this->hour = new HeaderProperty();
-	$this->hour->SetFont(FF_FONT0);
-	$this->hour->SetIntervall(6);
-	$this->hour->SetStyle(HOURSTYLE_HM24);
-	$this->hour->SetLabelFormatString('H:i');
-	$this->hour->grid->SetColor("gray");
-
-	$this->day = new HeaderProperty();
-	$this->day->grid->SetColor("gray");
-	$this->day->SetLabelFormatString('l');
-
-	$this->week = new HeaderProperty();
-	$this->week->SetLabelFormatString("w%d");
-	$this->week->SetFont(FF_FONT1);
-
-	$this->month = new HeaderProperty();
-	$this->month->SetFont(FF_FONT1,FS_BOLD);
-
-	$this->year = new HeaderProperty();
-	$this->year->SetFont(FF_FONT1,FS_BOLD);		
-		
-	$this->divider=new LineProperty();
-	$this->dividerh=new LineProperty();		
-	$this->dividerh->SetWeight(2);
-	$this->divider->SetWeight(6);
-	$this->divider->SetColor('gray');
-	$this->divider->SetStyle('fancy');
-
-	$this->tableTitle=new TextProperty();
-	$this->tableTitle->Show(false);
-	$this->actinfo = new GanttActivityInfo();
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    // Specify what headers should be visible
-    function ShowHeaders($aFlg) {
-	$this->day->Show($aFlg & GANTT_HDAY);
-	$this->week->Show($aFlg & GANTT_HWEEK);
-	$this->month->Show($aFlg & GANTT_HMONTH);
-	$this->year->Show($aFlg & GANTT_HYEAR);
-	$this->hour->Show($aFlg & GANTT_HHOUR);
-	$this->minute->Show($aFlg & GANTT_HMIN);
-
-	// Make some default settings of gridlines whihc makes sense
-	if( $aFlg & GANTT_HWEEK ) {
-	    $this->month->grid->Show(false);
-	    $this->year->grid->Show(false);
-	}
-	if( $aFlg & GANTT_HHOUR ) {
-	    $this->day->grid->SetColor("black");
-	}
-    }
-	
-    // Should the weekend background stretch all the way down in the plotarea
-    function UseWeekendBackground($aShow) {
-	$this->iUsePlotWeekendBackground = $aShow;
-    }
-	
-    // Have a range been specified?
-    function IsRangeSet() {
-	return $this->iStartDate!=-1 && $this->iEndDate!=-1;
-    }
-	
-    // Should the layout be from top or even?
-    function SetVertLayout($aLayout) {
-	$this->iVertLayout = $aLayout;
-    }
-	
-    // Which locale should be used?
-    function SetDateLocale($aLocale) {
-	$this->iDateLocale->Set($aLocale);
-    }
-	
-    // Number of days we are showing
-    function GetNumberOfDays() {
-	return round(($this->iEndDate-$this->iStartDate)/SECPERDAY);
-    }
-	
-    // The width of the actual plot area
-    function GetPlotWidth() {
-	$img=$this->iImg;
-	return $img->width - $img->left_margin - $img->right_margin;
-    }
-
-    // Specify the width of the titles(labels) for the activities
-    // (This is by default set to the minimum width enought for the
-    // widest title)
-    function SetLabelWidth($aLabelWidth) {
-	$this->iLabelWidth=$aLabelWidth;
-    }
-
-	// Which day should the week start?
-	// 0==Sun, 1==Monday, 2==Tuesday etc
-    function SetWeekStart($aStartDay) {
-	$this->iWeekStart = $aStartDay % 7;
-	
-	//Recalculate the startday since this will change the week start
-	$this->SetRange($this->iStartDate,$this->iEndDate);
-    }
-
-    // Do we show min scale?
-    function IsDisplayMinute() {
-	return $this->minute->iShowLabels;
-    }
-
-    // Do we show day scale?
-    function IsDisplayHour() {
-	return $this->hour->iShowLabels;
-    }
-
-	
-    // Do we show day scale?
-    function IsDisplayDay() {
-	return $this->day->iShowLabels;
-    }
-	
-    // Do we show week scale?
-    function IsDisplayWeek() {
-	return $this->week->iShowLabels;
-    }
-	
-    // Do we show month scale?
-    function IsDisplayMonth() {
-	return $this->month->iShowLabels;
-    }
-	
-    // Do we show year scale?
-    function IsDisplayYear() {
-	return $this->year->iShowLabels;
-    }
-
-    // Specify spacing (in percent of bar height) between activity bars
-    function SetVertSpacing($aSpacing) {
-	$this->iVertSpacing = $aSpacing;
-    }
-
-    // Specify scale min and max date either as timestamp or as date strings
-    // Always round to the nearest week boundary
-    function SetRange($aMin,$aMax) {
-	$this->iStartDate = $this->NormalizeDate($aMin);
-	$this->iEndDate = $this->NormalizeDate($aMax);	
-    }
-
-
-    // Adjust the start and end date so they fit to beginning/ending
-    // of the week taking the specified week start day into account.
-    function AdjustStartEndDay() {
-
-	if( !($this->IsDisplayYear() ||$this->IsDisplayMonth() || $this->IsDisplayWeek()) ) {
-	    // Don't adjust
-	    return;
-	}
-
-	// Get day in week for start and ending date (Sun==0)
-	$ds=strftime("%w",$this->iStartDate);
-	$de=strftime("%w",$this->iEndDate);	
-	
-	// We want to start on iWeekStart day. But first we subtract a week
-	// if the startdate is "behind" the day the week start at. 
-	// This way we ensure that the given start date is always included 
-	// in the range. If we don't do this the nearest correct weekday in the week 
-	// to start at might be later than the start date.
-	if( $ds < $this->iWeekStart )
-	    $d = strtotime('-7 day',$this->iStartDate);
-	else
-	    $d = $this->iStartDate;
-	$adjdate = strtotime(($this->iWeekStart-$ds).' day',$d /*$this->iStartDate*/ );
-	$this->iStartDate = $adjdate;
-	
-	// We want to end on the last day of the week
-	$preferredEndDay = ($this->iWeekStart+6)%7;
-	if( $preferredEndDay != $de ) { 
-	    // Solve equivalence eq:    $de + x ~ $preferredDay (mod 7)
-	    $adj = (7+($preferredEndDay - $de)) % 7;
-	    $adjdate = strtotime("+$adj day",$this->iEndDate);
-	    $this->iEndDate = $adjdate;	
-	}	
-    }
-
-    // Specify background for the table title area (upper left corner of the table)	
-    function SetTableTitleBackground($aColor) {
-	$this->iTableHeaderBackgroundColor = $aColor;
-    }
-
-///////////////////////////////////////
-// PRIVATE Methods
-	
-    // Determine the height of all the scale headers combined
-    function GetHeaderHeight() {
-	$img=$this->iImg;
-	$height=1;
-	if( $this->minute->iShowLabels ) {
-	    $height += $this->minute->GetFontHeight($img);
-	    $height += $this->minute->iTitleVertMargin;
-	}
-	if( $this->hour->iShowLabels ) {
-	    $height += $this->hour->GetFontHeight($img);
-	    $height += $this->hour->iTitleVertMargin;
-	}
-	if( $this->day->iShowLabels ) {
-	    $height += $this->day->GetFontHeight($img);
-	    $height += $this->day->iTitleVertMargin;
-	}
-	if( $this->week->iShowLabels ) {
-	    $height += $this->week->GetFontHeight($img);
-	    $height += $this->week->iTitleVertMargin;
-	}
-	if( $this->month->iShowLabels ) {
-	    $height += $this->month->GetFontHeight($img);
-	    $height += $this->month->iTitleVertMargin;
-	}
-	if( $this->year->iShowLabels ) {
-	    $height += $this->year->GetFontHeight($img);
-	    $height += $this->year->iTitleVertMargin;
-	}
-	return $height;
-    }
-	
-    // Get width (in pixels) for a single day
-    function GetDayWidth() {
-	return ($this->GetPlotWidth()-$this->iLabelWidth+1)/$this->GetNumberOfDays();	
-    }
-
-    // Get width (in pixels) for a single hour
-    function GetHourWidth() {
-	return $this->GetDayWidth() / 24 ;
-    }
-
-    function GetMinuteWidth() {
-	return $this->GetHourWidth() / 60 ;
-    }
-
-    // Nuber of days in a year
-    function GetNumDaysInYear($aYear) {
-	if( $this->IsLeap($aYear) )
-	    return 366;
-	else
-	    return 365;
-    }
-	
-    // Get week number 
-    function GetWeekNbr($aDate,$aSunStart=true) {
-	// We can't use the internal strftime() since it gets the weeknumber
-	// wrong since it doesn't follow ISO on all systems since this is
-	// system linrary dependent.
-	// Even worse is that this works differently if we are on a Windows
-	// or UNIX box (it even differs between UNIX boxes how strftime()
-	// is natively implemented)
-	//
-	// Credit to Nicolas Hoizey <nhoizey@phpheaven.net> for this elegant
-	// version of Week Nbr calculation. 
-
-	$day = $this->NormalizeDate($aDate) ;
-	if( $aSunStart )
-	    $day += 60*60*24;
-		
-	/*-------------------------------------------------------------------------
-	  According to ISO-8601 :
-	  "Week 01 of a year is per definition the first week that has the Thursday in this year,
-	  which is equivalent to the week that contains the fourth day of January.
-	  In other words, the first week of a new year is the week that has the majority of its
-	  days in the new year."
-		  
-	  Be carefull, with PHP, -3 % 7 = -3, instead of 4 !!!
-		  
-	  day of year             = date("z", $day) + 1
-	  offset to thursday      = 3 - (date("w", $day) + 6) % 7
-	  first thursday of year  = 1 + (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $day)))) % 7
-	  week number             = (thursday's day of year - first thursday's day of year) / 7 + 1
-	  ---------------------------------------------------------------------------*/
-		 
-	$thursday = $day + 60 * 60 * 24 * (3 - (date("w", $day) + 6) % 7);              // take week's thursday
-	$week = 1 + (date("z", $thursday) - (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $thursday)))) % 7) / 7;
-		  
-	return $week;
-    }
-	
-    // Is year a leap year?
-    function IsLeap($aYear) {
-	// Is the year a leap year?
-	//$year = 0+date("Y",$aDate);
-	if( $aYear % 4 == 0)
-	    if( !($aYear % 100 == 0) || ($aYear % 400 == 0) )
-		return true;
-	return false;
-    }
-
-    // Get current year
-    function GetYear($aDate) {
-	return 0+Date("Y",$aDate);
-    }
-	
-    // Return number of days in a year
-    function GetNumDaysInMonth($aMonth,$aYear) {
-	$days=array(31,28,31,30,31,30,31,31,30,31,30,31);
-	$daysl=array(31,29,31,30,31,30,31,31,30,31,30,31);
-	if( $this->IsLeap($aYear))
-	    return $daysl[$aMonth];
-	else
-	    return $days[$aMonth];
-    }
-	
-    // Get day in month
-    function GetMonthDayNbr($aDate) {
-	return 0+strftime("%d",$aDate);
-    }
-
-    // Get day in year
-    function GetYearDayNbr($aDate) {
-	return 0+strftime("%j",$aDate);
-    }
-	
-    // Get month number
-    function GetMonthNbr($aDate) {
-	return 0+strftime("%m",$aDate);
-    }
-	
-    // Translate a date to screen coordinates	(horizontal scale)
-    function TranslateDate($aDate) {
-	//
-	// In order to handle the problem with Daylight savings time
-	// the scale written with equal number of seconds per day beginning
-	// with the start date. This means that we "cement" the state of
-	// DST as it is in the start date. If later the scale includes the
-	// switchover date (depends on the locale) we need to adjust back
-	// if the date we try to translate has a different DST status since
-	// we would otherwise be off by one hour.
-	$aDate = $this->NormalizeDate($aDate);
-	$tmp = localtime($aDate);
-	$cloc = $tmp[8];
-	$tmp = localtime($this->iStartDate);
-	$sloc = $tmp[8];
-	$offset = 0;
-	if( $sloc != $cloc) {
-	    if( $sloc ) 
-		$offset = 3600;
-	    else
-		$offset = -3600;
-	}
-	$img=$this->iImg;		
-	return ($aDate-$this->iStartDate-$offset)/SECPERDAY*$this->GetDayWidth()+$img->left_margin+$this->iLabelWidth;;
-    }
-
-    // Get screen coordinatesz for the vertical position for a bar		
-    function TranslateVertPos($aPos) {
-	$img=$this->iImg;
-	$ph=$this->iAvailableHeight;
-	if( $aPos > $this->iVertLines ) 
-	    JpGraphError::RaiseL(6015,$aPos);
-// 'Illegal vertical position %d'
-	if( $this->iVertLayout == GANTT_EVEN ) {
-	    // Position the top bar at 1 vert spacing from the scale
-	    return round($img->top_margin + $this->iVertHeaderSize +  ($aPos+1)*$this->iVertSpacing);
-	}
-	else {
-	    // position the top bar at 1/2 a vert spacing from the scale
-	    return round($img->top_margin + $this->iVertHeaderSize  + $this->iTopPlotMargin + ($aPos+1)*$this->iVertSpacing);		
-	}
-    }
-	
-    // What is the vertical spacing?
-    function GetVertSpacing() {
-	return $this->iVertSpacing;
-    }
-					
-    // Convert a date to timestamp
-    function NormalizeDate($aDate) {
-	if( $aDate === false ) return false; 
-	if( is_string($aDate) ) {
-	    $t = strtotime($aDate);
-	    if( $t === FALSE || $t === -1 ) {	    
-		JpGraphError::RaiseL(6016,$aDate);
-//("Date string ($aDate) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30");
-	    }
-	    return $t;
-	}
-	elseif( is_int($aDate) || is_float($aDate) )
-	    return $aDate;
-	else
-	    JpGraphError::RaiseL(6017,$aDate);
-//Unknown date format in GanttScale ($aDate).");
-    }
-
-    
-    // Convert a time string to minutes
-
-    function TimeToMinutes($aTimeString) {
-	// Split in hours and minutes
-	$pos=strpos($aTimeString,':');
-	$minint=60;
-	if( $pos === false ) {
-	    $hourint = $aTimeString;
-	    $minint = 0;
-	}
-	else {
-	    $hourint = floor(substr($aTimeString,0,$pos));
-	    $minint = floor(substr($aTimeString,$pos+1));
-	}
-	$minint += 60 * $hourint;
-	return $minint;
-    }
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeMinutes($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->minute->iShowLabels ) {
-	    $img->SetFont($this->minute->iFFamily,$this->minute->iFStyle,$this->minute->iFSize);
-	    $yb = $yt + $img->GetFontHeight() + 
-		  $this->minute->iTitleVertMargin + $this->minute->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb = $img->width-$img->right_margin+1;
-	    $img->SetColor($this->minute->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $day = date('w',$this->iStartDate);
-	    $minint = $this->minute->GetIntervall() ;
-	    
-	    if( 60 % $minint !== 0 ) { 
-                JpGraphError::RaiseL(6018,$minint);
-//'Intervall for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an intervall of '.$minint.' minutes.');
-            } 
-
-
-	    $n = 60 / $minint;
-	    $datestamp = $this->iStartDate;
-	    $width = $this->GetHourWidth() / $n ;
-	    if( $width < 8 ) {
-		// TO small width to draw minute scale
-		JpGraphError::RaiseL(6019,$width);
-//('The available width ('.$width.') for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.');
-	    }
-
-	    $nh = ceil(24*60 / $this->TimeToMinutes($this->hour->GetIntervall()) );
-	    $nd = $this->GetNumberOfDays();
-	    // Convert to intervall to seconds
-	    $minint *= 60;
-	    for($j=0; $j < $nd; ++$j, $day += 1, $day %= 7) {
-		for( $k=0; $k < $nh; ++$k ) {
-		    for($i=0; $i < $n ;++$i, $x+=$width, $datestamp += $minint ) {   
-			if( $day==6 || $day==0 ) {
-			
-			    $img->PushColor($this->day->iWeekendBackgroundColor);
-			    if( $this->iUsePlotWeekendBackground )
-				$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin);						
-			    else
-				$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight);
-			    $img->PopColor();
-
-			}
-
-			if( $day==0 ) 
-			    $img->SetColor($this->day->iSundayTextColor);
-			else
-			    $img->SetColor($this->day->iTextColor);
-
-			switch( $this->minute->iStyle ) {
-			    case MINUTESTYLE_CUSTOM:
-				$txt = date($this->minute->iLabelFormStr,$datestamp);
-				break;
-			    case MINUTESTYLE_MM:
-			    default:
-				// 15
-				$txt = date('i',$datestamp);
-				break;
-			}
-			$img->StrokeText(round($x+$width/2),round($yb-$this->minute->iTitleVertMargin),$txt);
-
-			// FIXME: The rounding problem needs to be solved properly ...
-			//
-			// Fix a rounding problem the wrong way ..
-			// If we also have hour scale then don't draw the firsta or last
-			// gridline since that will be overwritten by the hour scale gridline if such exists.
-			// However, due to the propagation of rounding of the 'x+=width' term in the loop
-			// this might sometimes be one pixel of so we fix this by not drawing it.
-			// The proper way to fix it would be to re-calculate the scale for each step and
-			// not using the additive term.
-			if( !(($i == $n || $i==0) && $this->hour->iShowLabels && $this->hour->grid->iShow) ) {
-			    $img->SetColor($this->minute->grid->iColor);
-			    $img->SetLineWeight($this->minute->grid->iWeight);
-			    $img->Line($x,$yt,$x,$yb);
-			    $this->minute->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-			}
-		    }		
-		}	
-	    }
-	    $img->SetColor($this->minute->iFrameColor);
-	    $img->SetLineWeight($this->minute->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeHours($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->hour->iShowLabels ) {
-	    $img->SetFont($this->hour->iFFamily,$this->hour->iFStyle,$this->hour->iFSize);
-	    $yb = $yt + $img->GetFontHeight() + 
-		  $this->hour->iTitleVertMargin + $this->hour->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb = $img->width-$img->right_margin+1;
-	    $img->SetColor($this->hour->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $tmp = $this->hour->GetIntervall() ;
-	    $minint = $this->TimeToMinutes($tmp);
-	    if( 1440 % $minint !== 0 ) { 
-                JpGraphError::RaiseL(6020,$tmp);
-//('Intervall for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an intervall of '.$tmp);
-            } 
-
-	    $n = ceil(24*60 / $minint );
-	    $datestamp = $this->iStartDate;
-	    $day = date('w',$this->iStartDate);
-	    $doback = !$this->minute->iShowLabels;
-	    $width = $this->GetDayWidth() / $n ;
-	    for($j=0; $j < $this->GetNumberOfDays(); ++$j, $day += 1,$day %= 7) {
-		for($i=0; $i < $n ;++$i, $x+=$width) {   
-		    if( $day==6 || $day==0 ) {
-			
-			$img->PushColor($this->day->iWeekendBackgroundColor);
-			if( $this->iUsePlotWeekendBackground && $doback )
-			    $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin);						
-			else
-			    $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight);
-			$img->PopColor();
-
-		    }
-
-		    if( $day==0 ) 
-			$img->SetColor($this->day->iSundayTextColor);
-		    else
-			$img->SetColor($this->day->iTextColor);
-
-		    switch( $this->hour->iStyle ) {
-			case HOURSTYLE_HMAMPM:
-			    // 1:35pm
-			    $txt = date('g:ia',$datestamp);
-			    break;
-			case HOURSTYLE_H24:
-			    // 13
-			    $txt = date('H',$datestamp);
-			    break;
-			case HOURSTYLE_HAMPM:
-			    $txt = date('ga',$datestamp);
-			    break;
-			case HOURSTYLE_CUSTOM:
-			    $txt = date($this->hour->iLabelFormStr,$datestamp);
-			    break;
-			case HOURSTYLE_HM24:
-			default:
-			    $txt = date('H:i',$datestamp);
-			    break;
-		    }
-		    $img->StrokeText(round($x+$width/2),round($yb-$this->hour->iTitleVertMargin),$txt);
-		    $img->SetColor($this->hour->grid->iColor);
-		    $img->SetLineWeight($this->hour->grid->iWeight);
-		    $img->Line($x,$yt,$x,$yb);
-		    $this->hour->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		    //$datestamp += $minint*60
-		    $datestamp = mktime(date('H',$datestamp),date('i',$datestamp)+$minint,0,
-					date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp));
-		    
-		}			
-	    }
-	    $img->SetColor($this->hour->iFrameColor);
-	    $img->SetLineWeight($this->hour->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeDays($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$daywidth=$this->GetDayWidth();
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->day->iShowLabels ) {
-	    $img->SetFont($this->day->iFFamily,$this->day->iFStyle,$this->day->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->day->iTitleVertMargin + $this->day->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb=$img->width-$img->right_margin+1;
-	    $img->SetColor($this->day->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $day = date('w',$this->iStartDate);
-	    $datestamp = $this->iStartDate;
-	    
-	    $doback = !($this->hour->iShowLabels || $this->minute->iShowLabels);
-
-	    setlocale(LC_TIME,$this->iDateLocale->iLocale);
-	    
-	    for($i=0; $i < $this->GetNumberOfDays(); ++$i, $x+=$daywidth, $day += 1,$day %= 7) {
-		if( $day==6 || $day==0 ) {
-		    $img->SetColor($this->day->iWeekendBackgroundColor);
-		    if( $this->iUsePlotWeekendBackground && $doback)
-			$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,
-					      $x+$daywidth,$img->height-$img->bottom_margin);	
-		    else
-			$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,
-					      $x+$daywidth,$yb-$this->day->iFrameWeight);
-		}
-
-		$mn = strftime('%m',$datestamp);
-		if( $mn[0]=='0' ) 
-		    $mn = $mn[1];
-
-		switch( $this->day->iStyle ) {
-		    case DAYSTYLE_LONG:
-			// "Monday"
-			$txt = strftime('%A',$datestamp);
-			break;
-		    case DAYSTYLE_SHORT:
-			// "Mon"
-			$txt = strftime('%a',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE1:
-			// "Mon 23/6"
-			$txt = strftime('%a %d/'.$mn,$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE2:
-			// "Mon 23 Jun"
-			$txt = strftime('%a %d %b',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE3:
-			// "Mon 23 Jun 2003"
-			$txt = strftime('%a %d %b %Y',$datestamp);
-			break;
-		    case DAYSTYLE_LONGDAYDATE1:
-			// "Monday 23 Jun"
-			$txt = strftime('%A %d %b',$datestamp);
-			break;
-		    case DAYSTYLE_LONGDAYDATE2:
-			// "Monday 23 Jun 2003"
-			$txt = strftime('%A %d %b %Y',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDATE1:
-			// "23/6"
-			$txt = strftime('%d/'.$mn,$datestamp);
-			break;			
-		    case DAYSTYLE_SHORTDATE2:
-			// "23 Jun"
-			$txt = strftime('%d %b',$datestamp);
-			break;			
-		    case DAYSTYLE_SHORTDATE3:
-			// "Mon 23"
-			$txt = strftime('%a %d',$datestamp);
-			break;	
-		    case DAYSTYLE_SHORTDATE4:
-			// "23"
-			$txt = strftime('%d',$datestamp);
-			break;	
-		    case DAYSTYLE_CUSTOM:
-			// Custom format
-			$txt = strftime($this->day->iLabelFormStr,$datestamp);
-			break;	
-		    case DAYSTYLE_ONELETTER:
-		    default:
-			// "M"
-			$txt = strftime('%A',$datestamp);
-			$txt = strtoupper($txt[0]);
-			break;
-		}
-
-		if( $day==0 ) 
-		    $img->SetColor($this->day->iSundayTextColor);
-		else
-		    $img->SetColor($this->day->iTextColor);
-		$img->StrokeText(round($x+$daywidth/2+1),
-				 round($yb-$this->day->iTitleVertMargin),$txt);
-		$img->SetColor($this->day->grid->iColor);
-		$img->SetLineWeight($this->day->grid->iWeight);
-		$img->Line($x,$yt,$x,$yb);
-		$this->day->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$datestamp = mktime(0,0,0,date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp));
-		//$datestamp += SECPERDAY;
-		
-	    }			
-	    $img->SetColor($this->day->iFrameColor);
-	    $img->SetLineWeight($this->day->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-	
-    // Stroke week header and grid
-    function StrokeWeeks($aYCoord,$getHeight=false) {
-	if( $this->week->iShowLabels ) {
-	    $img=$this->iImg;	
-	    $yt=$aYCoord+$img->top_margin;		
-	    $img->SetFont($this->week->iFFamily,$this->week->iFStyle,$this->week->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->week->iTitleVertMargin + $this->week->iFrameWeight;
-
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $weekwidth=$this->GetDayWidth()*7;
-	    $wdays=$this->iDateLocale->GetDayAbb();	
-	    $xb=$img->width-$img->right_margin+1;
-	    $week = $this->iStartDate;
-	    $weeknbr=$this->GetWeekNbr($week);
-	    $img->SetColor($this->week->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $img->SetColor($this->week->grid->iColor);
-	    $x = $xt;
-	    if( $this->week->iStyle==WEEKSTYLE_WNBR ) {
-		$img->SetTextAlign("center");
-		$txtOffset = $weekwidth/2+1;
-	    }
-	    elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY  || 
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		$img->SetTextAlign("left");
-		$txtOffset = 3;
-	    }
-	    else
-		JpGraphError::RaiseL(6021);
-//("Unknown formatting style for week.");
-				
-	    for($i=0; $i<$this->GetNumberOfDays()/7; ++$i, $x+=$weekwidth) {
-		$img->PushColor($this->week->iTextColor);
-				
-		if( $this->week->iStyle==WEEKSTYLE_WNBR )
-		    $txt = sprintf($this->week->iLabelFormStr,$weeknbr);
-		elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY || 
-			$this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) 
-		    $txt = date("j/n",$week);
-		elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 || 
-			$this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $monthnbr = date("n",$week)-1;
-		    $shortmonth = $this->iDateLocale->GetShortMonthName($monthnbr);
-		    $txt = Date("j",$week)." ".$shortmonth;
-		}
-
-		if( $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $w = sprintf($this->week->iLabelFormStr,$weeknbr);
-		    $txt .= ' '.$w;
-		}
-				
-		$img->StrokeText(round($x+$txtOffset),
-				 round($yb-$this->week->iTitleVertMargin),$txt);
-				
-		$week = strtotime('+7 day',$week); 
-		$weeknbr = $this->GetWeekNbr($week);
-		$img->PopColor();	
-		$img->SetLineWeight($this->week->grid->iWeight);
-		$img->Line($x,$yt,$x,$yb);
-		$this->week->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-	    }			
-	    $img->SetColor($this->week->iFrameColor);
-	    $img->SetLineWeight($this->week->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }	
-	
-    // Format the mont scale header string
-    function GetMonthLabel($aMonthNbr,$year) {
-	$sn = $this->iDateLocale->GetShortMonthName($aMonthNbr);
-	$ln = $this->iDateLocale->GetLongMonthName($aMonthNbr);
-	switch($this->month->iStyle) {
-	    case MONTHSTYLE_SHORTNAME:
-		$m=$sn;
-		break;
-	    case MONTHSTYLE_LONGNAME:
-		$m=$ln;
-		break;
-	    case MONTHSTYLE_SHORTNAMEYEAR2:
-		$m=$sn." '".substr("".$year,2);
-		break;
-	    case MONTHSTYLE_SHORTNAMEYEAR4:
-		$m=$sn." ".$year;
-		break;
-	    case MONTHSTYLE_LONGNAMEYEAR2:
-		$m=$ln." '".substr("".$year,2);
-		break;
-	    case MONTHSTYLE_LONGNAMEYEAR4:
-		$m=$ln." ".$year;
-		break;
-	    case MONTHSTYLE_FIRSTLETTER:
-		$m=$sn[0];
-		break;
-	}
-	return $m;
-    }
-	
-    // Stroke month scale and gridlines
-    function StrokeMonths($aYCoord,$getHeight=false) {
-	if( $this->month->iShowLabels ) {
-	    $img=$this->iImg;		
-	    $img->SetFont($this->month->iFFamily,$this->month->iFStyle,$this->month->iFSize);
-	    $yt=$aYCoord+$img->top_margin;		
-	    $yb=$yt + $img->GetFontHeight() + $this->month->iTitleVertMargin + $this->month->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-	    $monthnbr = $this->GetMonthNbr($this->iStartDate)-1; 
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $xb=$img->width-$img->right_margin+1;
-			
-	    $img->SetColor($this->month->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $img->SetLineWeight($this->month->grid->iWeight);
-	    $img->SetColor($this->month->iTextColor);
-	    $year = 0+strftime("%Y",$this->iStartDate);
-	    $img->SetTextAlign("center");
-	    if( $this->GetMonthNbr($this->iStartDate) == $this->GetMonthNbr($this->iEndDate)  
-		&& $this->GetYear($this->iStartDate)==$this->GetYear($this->iEndDate) ) {
-	    	$monthwidth=$this->GetDayWidth()*($this->GetMonthDayNbr($this->iEndDate) - $this->GetMonthDayNbr($this->iStartDate) + 1);
-	    } 
-	    else {
-	    	$monthwidth=$this->GetDayWidth()*($this->GetNumDaysInMonth($monthnbr,$year)-$this->GetMonthDayNbr($this->iStartDate)+1);
-	    }
-	    // Is it enough space to stroke the first month?
-	    $monthName = $this->GetMonthLabel($monthnbr,$year);
-	    if( $monthwidth >= 1.2*$img->GetTextWidth($monthName) ) {
-		$img->SetColor($this->month->iTextColor);				
-		$img->StrokeText(round($xt+$monthwidth/2+1),
-				 round($yb-$this->month->iTitleVertMargin),
-				 $monthName);
-	    }
-	    $x = $xt + $monthwidth;
-	    while( $x < $xb ) {
-		$img->SetColor($this->month->grid->iColor);				
-		$img->Line($x,$yt,$x,$yb);
-		$this->month->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$monthnbr++;
-		if( $monthnbr==12 ) {
-		    $monthnbr=0;
-		    $year++;
-		}
-		$monthName = $this->GetMonthLabel($monthnbr,$year);
-		$monthwidth=$this->GetDayWidth()*$this->GetNumDaysInMonth($monthnbr,$year);				
-		if( $x + $monthwidth < $xb )
-		    $w = $monthwidth;
-		else
-		    $w = $xb-$x;
-		if( $w >= 1.2*$img->GetTextWidth($monthName) ) {
-		    $img->SetColor($this->month->iTextColor);				
-		    $img->StrokeText(round($x+$w/2+1),
-				     round($yb-$this->month->iTitleVertMargin),$monthName);
-		}
-		$x += $monthwidth;
-	    }	
-	    $img->SetColor($this->month->iFrameColor);
-	    $img->SetLineWeight($this->month->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);			
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-    // Stroke year scale and gridlines
-    function StrokeYears($aYCoord,$getHeight=false) {
-	if( $this->year->iShowLabels ) {
-	    $img=$this->iImg;	
-	    $yt=$aYCoord+$img->top_margin;		
-	    $img->SetFont($this->year->iFFamily,$this->year->iFStyle,$this->year->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->year->iTitleVertMargin + $this->year->iFrameWeight;
-
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-
-	    $xb=$img->width-$img->right_margin+1;
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $year = $this->GetYear($this->iStartDate); 			
-	    $img->SetColor($this->year->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $img->SetLineWeight($this->year->grid->iWeight);
-	    $img->SetTextAlign("center");
-	    if( $year == $this->GetYear($this->iEndDate) )
-		$yearwidth=$this->GetDayWidth()*($this->GetYearDayNbr($this->iEndDate)-$this->GetYearDayNbr($this->iStartDate)+1);
-	    else
-		$yearwidth=$this->GetDayWidth()*($this->GetNumDaysInYear($year)-$this->GetYearDayNbr($this->iStartDate)+1);
-			
-	    // The space for a year must be at least 20% bigger than the actual text 
-	    // so we allow 10% margin on each side
-	    if( $yearwidth >= 1.20*$img->GetTextWidth("".$year) ) {
-		$img->SetColor($this->year->iTextColor);				
-		$img->StrokeText(round($xt+$yearwidth/2+1),
-				 round($yb-$this->year->iTitleVertMargin),
-				 $year);
-	    }
-	    $x = $xt + $yearwidth;
-	    while( $x < $xb ) {
-		$img->SetColor($this->year->grid->iColor);				
-		$img->Line($x,$yt,$x,$yb);
-		$this->year->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$year += 1;
-		$yearwidth=$this->GetDayWidth()*$this->GetNumDaysInYear($year);				
-		if( $x + $yearwidth < $xb )
-		    $w = $yearwidth;
-		else
-		    $w = $xb-$x;
-		if( $w >= 1.2*$img->GetTextWidth("".$year) ) {
-		    $img->SetColor($this->year->iTextColor);
-		    $img->StrokeText(round($x+$w/2+1),
-				     round($yb-$this->year->iTitleVertMargin),
-				     $year);
-		}
-		$x += $yearwidth;
-	    }
-	    $img->SetColor($this->year->iFrameColor);
-	    $img->SetLineWeight($this->year->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);			
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }
-	
-    // Stroke table title (upper left corner)
-    function StrokeTableHeaders($aYBottom) {
-	$img=$this->iImg;
-	$xt=$img->left_margin;
-	$yt=$img->top_margin;
-	$xb=$xt+$this->iLabelWidth;
-	$yb=$aYBottom+$img->top_margin;
-
-	if( $this->tableTitle->iShow ) {
-	    $img->SetColor($this->iTableHeaderBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $this->tableTitle->Align("center","top");
-	    $this->tableTitle->Stroke($img,$xt+($xb-$xt)/2+1,$yt+2);		
-	    $img->SetColor($this->iTableHeaderFrameColor);
-	    $img->SetLineWeight($this->iTableHeaderFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	}
-
-	$this->actinfo->Stroke($img,$xt,$yt,$xb,$yb,$this->tableTitle->iShow);
-
-
-	// Draw the horizontal dividing line		
-	$this->dividerh->Stroke($img,$xt,$yb,$img->width-$img->right_margin,$yb);		
-		
-	// Draw the vertical dividing line
-	// We do the width "manually" since we want the line only to grow
-	// to the left
-	$fancy = $this->divider->iStyle == 'fancy' ;
-	if( $fancy ) {
-	    $this->divider->iStyle = 'solid';
-	}
-
-	$tmp = $this->divider->iWeight;	
-	$this->divider->iWeight=1;
-	$y = $img->height-$img->bottom_margin;
-	for($i=0; $i < $tmp; ++$i ) {
-	    $this->divider->Stroke($img,$xb-$i,$yt,$xb-$i,$y);
-	}
-
-	// Should we draw "fancy" divider
-	if( $fancy ) {
-	    $img->SetLineWeight(1);
-	    $img->SetColor($this->iTableHeaderFrameColor);
-	    $img->Line($xb,$yt,$xb,$y);
-	    $img->Line($xb-$tmp+1,$yt,$xb-$tmp+1,$y);
-	    $img->SetColor('white');
-	    $img->Line($xb-$tmp+2,$yt,$xb-$tmp+2,$y);
-	}
-    }
-
-    // Main entry point to stroke scale
-    function Stroke() {
-	if( !$this->IsRangeSet() )
-	    JpGraphError::RaiseL(6022);
-//("Gantt scale has not been specified.");
-	$img=$this->iImg;
-
-	// If minutes are displayed then hour interval must be 1
-	if( $this->IsDisplayMinute() && $this->hour->GetIntervall() > 1 ) {
-	    JpGraphError::RaiseL(6023);
-//('If you display both hour and minutes the hour intervall must be 1 (Otherwise it doesn\' make sense to display minutes).');
-	}
-		
-	// Stroke all headers. As argument we supply the offset from the
-	// top which depends on any previous headers
-	
-	// First find out the height of each header
-	$offy=$this->StrokeYears(0,true);
-	$offm=$this->StrokeMonths($offy,true);
-	$offw=$this->StrokeWeeks($offm,true);
-	$offd=$this->StrokeDays($offw,true);
-	$offh=$this->StrokeHours($offd,true);
-	$offmin=$this->StrokeMinutes($offh,true);
-
-
-	// ... then we can stroke them in the "backwards order to ensure that
-	// the larger scale gridlines is stroked over the smaller scale gridline
-	$this->StrokeMinutes($offh);
-	$this->StrokeHours($offd);
-	$this->StrokeDays($offw);
-	$this->StrokeWeeks($offm);		
-	$this->StrokeMonths($offy);		
-	$this->StrokeYears(0);
-
-	// Now when we now the oaverall size of the scale headers
-	// we can stroke the overall table headers
-	$this->StrokeTableHeaders($offmin);
-		
-	// Now we can calculate the correct scaling factor for each vertical position
-	$this->iAvailableHeight = $img->height - $img->top_margin - $img->bottom_margin - $offd;		
-	$this->iVertHeaderSize = $offmin;
-	if( $this->iVertSpacing == -1 )
-	    $this->iVertSpacing = $this->iAvailableHeight / $this->iVertLines;
-    }	
-}
-
-
-//===================================================
-// CLASS GanttConstraint
-// Just a structure to store all the values for a constraint
-//===================================================
-class GanttConstraint {
-    var $iConstrainType;
-    var $iConstrainRow;
-    var $iConstrainColor;
-    var $iConstrainArrowSize;
-    var $iConstrainArrowType;
-
-//---------------
-// CONSTRUCTOR
-    function GanttConstraint($aRow,$aType,$aColor,$aArrowSize,$aArrowType){
-	$this->iConstrainType = $aType;
-	$this->iConstrainRow = $aRow;
-	$this->iConstrainColor=$aColor;
-	$this->iConstrainArrowSize=$aArrowSize;
-	$this->iConstrainArrowType=$aArrowType;
-    }
-}
-
-
-//===================================================
-// CLASS GanttPlotObject
-// The common signature for a Gantt object
-//===================================================
-class GanttPlotObject {
-    var $iVPos=0;					// Vertical position
-    var $iLabelLeftMargin=2;	// Title margin
-    var $iStart="";				// Start date
-    var $title,$caption;
-    var $iCaptionMargin=5;
-    var $csimarea='',$csimtarget='',$csimalt='';
-
-    var $constraints = array();    
-    var $iConstrainPos=array();
-		
-    function GanttPlotObject() {
- 	$this->title = new TextProperty();
-	$this->title->Align("left","center");
-	$this->caption = new TextProperty();
-    }
-
-    function GetCSIMArea() {
-	return $this->csimarea;
-    }
-
-    function SetCSIMTarget($aTarget,$aAlt='') {
-	if( !is_string($aTarget) ) {
-	    $tv = substr(var_export($aTarget,true),0,40);
-	    JpGraphError::RaiseL(6024,$tv);
-//('CSIM Target must be specified as a string.'."\nStart of target is:\n$tv");
-	}
-	if( !is_string($aAlt) ) {
-	    $tv = substr(var_export($aAlt,true),0,40);
-	    JpGraphError::RaiseL(6025,$tv);
-//('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv");
-	}
-
-        $this->csimtarget=$aTarget;
-        $this->csimalt=$aAlt;
-    }
-    
-    function SetCSIMAlt($aAlt) {
-	if( !is_string($aAlt) ) {
-	    $tv = substr(var_export($aAlt,true),0,40);
-	    JpGraphError::RaiseL(6025,$tv);
-//('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv");
-	}
-        $this->csimalt=$aAlt;
-    }
-
-    function SetConstrain($aRow,$aType,$aColor='black',$aArrowSize=ARROW_S2,$aArrowType=ARROWT_SOLID) {
-	$this->constraints[] = new GanttConstraint($aRow, $aType, $aColor, $aArrowSize, $aArrowType);
-    }
-
-    function SetConstrainPos($xt,$yt,$xb,$yb) {
-	$this->iConstrainPos = array($xt,$yt,$xb,$yb);
-    }
-
-    /*
-    function GetConstrain() {
-	return array($this->iConstrainRow,$this->iConstrainType);
-    }
-    */
-	
-    function GetMinDate() {
-	return $this->iStart;
-    }
-
-    function GetMaxDate() {
-	return $this->iStart;
-    }
-	
-    function SetCaptionMargin($aMarg) {
-	$this->iCaptionMargin=$aMarg;
-    }
-
-    function GetAbsHeight(&$aImg) {
-	return 0; 
-    }
-	
-    function GetLineNbr() {
-	return $this->iVPos;
-    }
-
-    function SetLabelLeftMargin($aOff) {
-	$this->iLabelLeftMargin=$aOff;
-    }		
-
-    function StrokeActInfo(&$aImg,$aScale,$aYPos) {
-	$cols=array();
-	$aScale->actinfo->GetColStart($aImg,$cols,true);
-	$this->title->Stroke($aImg,$cols,$aYPos);		
-    }
-}
-
-//===================================================
-// CLASS Progress
-// Holds parameters for the progress indicator 
-// displyed within a bar
-//===================================================
-class Progress {
-    var $iProgress=-1, $iColor="black", $iFillColor='black';
-    var $iPattern=GANTT_SOLID;
-    var $iDensity=98, $iHeight=0.65; 
-	
-    function Set($aProg) {
-	if( $aProg < 0.0 || $aProg > 1.0 )
-	    JpGraphError::RaiseL(6027);
-//("Progress value must in range [0, 1]");
-	$this->iProgress = $aProg;
-    }
-
-    function SetPattern($aPattern,$aColor="blue",$aDensity=98) {		
-	$this->iPattern = $aPattern;
-	$this->iColor = $aColor;
-	$this->iDensity = $aDensity;
-    }
-
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-	
-    function SetHeight($aHeight) {
-	$this->iHeight = $aHeight;
-    }
-}
-
-DEFINE('GANTT_HGRID1',0);
-DEFINE('GANTT_HGRID2',1);
-
-//===================================================
-// CLASS HorizontalGridLine
-// Responsible for drawinf horizontal gridlines and filled alternatibg rows
-//===================================================
-class HorizontalGridLine {
-    var $iGraph=NULL;
-    var $iRowColor1 = '', $iRowColor2 = '';
-    var $iShow=false;
-    var $line=null;
-    var $iStart=0; // 0=from left margin, 1=just along header
-
-    function HorizontalGridLine() {
-	$this->line = new LineProperty();
-	$this->line->SetColor('gray@0.4');
-	$this->line->SetStyle('dashed');
-    }
-    
-    function Show($aShow=true) {
-	$this->iShow = $aShow;
-    }
-
-    function SetRowFillColor($aColor1,$aColor2='') {
-	$this->iRowColor1 = $aColor1;
-	$this->iRowColor2 = $aColor2;
-    }
-
-    function SetStart($aStart) {
-	$this->iStart = $aStart;
-    }
-
-    function Stroke(&$aImg,$aScale) {
-	
-	if( ! $this->iShow ) return;
-
-	// Get horizontal width of line
-	/*
-	$limst = $aScale->iStartDate;
-	$limen = $aScale->iEndDate;
-	$xt = round($aScale->TranslateDate($aScale->iStartDate));
-	$xb = round($aScale->TranslateDate($limen)); 
-	*/
-
-	if( $this->iStart === 0 ) {
-	    $xt = $aImg->left_margin-1;
-	}
-	else {
-	    $xt = round($aScale->TranslateDate($aScale->iStartDate))+1;
-	}
-
-	$xb = $aImg->width-$aImg->right_margin;
-
-	$yt = round($aScale->TranslateVertPos(0));
-	$yb = round($aScale->TranslateVertPos(1));	    
-	$height = $yb - $yt;
-
-	// Loop around for all lines in the chart
-	for($i=0; $i < $aScale->iVertLines; ++$i ) {
-	    $yb = $yt - $height;
-	    $this->line->Stroke($aImg,$xt,$yb,$xb,$yb);
-	    if( $this->iRowColor1 !== '' ) {
-		if( $i % 2 == 0 ) {
-		    $aImg->PushColor($this->iRowColor1);
-		    $aImg->FilledRectangle($xt,$yt,$xb,$yb);
-		    $aImg->PopColor();
-		}
-		elseif( $this->iRowColor2 !== '' ) {
-		    $aImg->PushColor($this->iRowColor2);
-		    $aImg->FilledRectangle($xt,$yt,$xb,$yb);
-		    $aImg->PopColor();
-		}
-	    }
-	    $yt = round($aScale->TranslateVertPos($i+1));
-	}
-	$yb = $yt - $height;
-	$this->line->Stroke($aImg,$xt,$yb,$xb,$yb);
-    }
-}
-
-
-//===================================================
-// CLASS GanttBar
-// Responsible for formatting individual gantt bars
-//===================================================
-class GanttBar extends GanttPlotObject {
-    var $iEnd;
-    var $iHeightFactor=0.5;
-    var $iFillColor="white",$iFrameColor="black";
-    var $iShadow=false,$iShadowColor="darkgray",$iShadowWidth=1,$iShadowFrame="black";
-    var $iPattern=GANTT_RDIAG,$iPatternColor="blue",$iPatternDensity=95;
-    var $leftMark,$rightMark;
-    var $progress;
-//---------------
-// CONSTRUCTOR	
-    function GanttBar($aPos,$aLabel,$aStart,$aEnd,$aCaption="",$aHeightFactor=0.6) {
-	parent::GanttPlotObject();	
-	$this->iStart = $aStart;	
-	// Is the end date given as a date or as number of days added to start date?
-	if( is_string($aEnd) ) {
-	    // If end date has been specified without a time we will asssume
-	    // end date is at the end of that date
-	    if( strpos($aEnd,':') === false )
-		$this->iEnd = strtotime($aEnd)+SECPERDAY-1;
-	    else 
-		$this->iEnd = $aEnd;
-	}
-	elseif(is_int($aEnd) || is_float($aEnd) ) 
-	    $this->iEnd = strtotime($aStart)+round($aEnd*SECPERDAY);
-	$this->iVPos = $aPos;
-	$this->iHeightFactor = $aHeightFactor;
-	$this->title->Set($aLabel);
-	$this->caption = new TextProperty($aCaption);
-	$this->caption->Align("left","center");
-	$this->leftMark =new PlotMark();
-	$this->leftMark->Hide();
-	$this->rightMark=new PlotMark();
-	$this->rightMark->Hide();
-	$this->progress = new Progress();
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    function SetShadow($aShadow=true,$aColor="gray") {
-	$this->iShadow=$aShadow;
-	$this->iShadowColor=$aColor;
-    }
-    
-    function GetMaxDate() {
-	return $this->iEnd;
-    }
-	
-    function SetHeight($aHeight) {
-	$this->iHeightFactor = $aHeight;
-    }
-
-    function SetColor($aColor) {
-	$this->iFrameColor = $aColor;
-    }
-
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-
-    function GetAbsHeight(&$aImg) {
-	if( is_int($this->iHeightFactor) || $this->leftMark->show || $this->rightMark->show ) {
-	    $m=-1;
-	    if( is_int($this->iHeightFactor) )
-		$m = $this->iHeightFactor;
-	    if( $this->leftMark->show ) 
-		$m = max($m,$this->leftMark->width*2);
-	    if( $this->rightMark->show ) 
-		$m = max($m,$this->rightMark->width*2);
-	    return $m;
-	}
-	else
-	    return -1;
-    }
-	
-    function SetPattern($aPattern,$aColor="blue",$aDensity=95) {		
-	$this->iPattern = $aPattern;
-	$this->iPatternColor = $aColor;
-	$this->iPatternDensity = $aDensity;
-    }
-
-    function Stroke(&$aImg,$aScale) {
-	$factory = new RectPatternFactory();
-	$prect = $factory->Create($this->iPattern,$this->iPatternColor);
-	$prect->SetDensity($this->iPatternDensity);
-
-	// If height factor is specified as a float between 0,1 then we take it as meaning
-	// percetage of the scale width between horizontal line.
-	// If it is an integer > 1 we take it to mean the absolute height in pixels
-	if( $this->iHeightFactor > -0.0 && $this->iHeightFactor <= 1.1)
-	    $vs = $aScale->GetVertSpacing()*$this->iHeightFactor;
-	elseif(is_int($this->iHeightFactor) && $this->iHeightFactor>2 && $this->iHeightFactor < 200 )
-	    $vs = $this->iHeightFactor;
-	else
-	    JpGraphError::RaiseL(6028,$this->iHeightFactor);
-//("Specified height (".$this->iHeightFactor.") for gantt bar is out of range.");
-	
-	// Clip date to min max dates to show
-	$st = $aScale->NormalizeDate($this->iStart);
-	$en = $aScale->NormalizeDate($this->iEnd);
-	
-
-	$limst = max($st,$aScale->iStartDate);
-	$limen = min($en,$aScale->iEndDate);
-			
-	$xt = round($aScale->TranslateDate($limst));
-	$xb = round($aScale->TranslateDate($limen)); 
-	$yt = round($aScale->TranslateVertPos($this->iVPos)-$vs-($aScale->GetVertSpacing()/2-$vs/2));
-	$yb = round($aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2-$vs/2));
-	$middle = round($yt+($yb-$yt)/2);
-	$this->StrokeActInfo($aImg,$aScale,$middle);
-
-	// CSIM for title
-	if( ! empty($this->title->csimtarget) ) {
-	    $colwidth = $this->title->GetColWidth($aImg);
-	    $colstarts=array();
-	    $aScale->actinfo->GetColStart($aImg,$colstarts,true);
-	    $n = min(count($colwidth),count($this->title->csimtarget));
-	    for( $i=0; $i < $n; ++$i ) {
-		$title_xt = $colstarts[$i];
-		$title_xb = $title_xt + $colwidth[$i];
-		$coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb";
-		$this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->title->csimtarget[$i]."\"";
-		if( ! empty($this->title->csimalt[$i]) ) {
-		    $tmp = $this->title->csimalt[$i];
-		    $this->csimarea .= " title=\"$tmp\"";
-		}
-		$this->csimarea .= " alt=\"$tmp\" />\n";
-	    }
-	}
-
-	// Check if the bar is totally outside the current scale range
-	if( $en <  $aScale->iStartDate || $st > $aScale->iEndDate )
-		return;
-			
-
-	// Remember the positions for the bar
-	$this->SetConstrainPos($xt,$yt,$xb,$yb);
-		
-	$prect->ShowFrame(false);
-	$prect->SetBackground($this->iFillColor);
-	if( $this->iShadow ) {
-	    $aImg->SetColor($this->iFrameColor);
-	    $aImg->ShadowRectangle($xt,$yt,$xb,$yb,$this->iFillColor,$this->iShadowWidth,$this->iShadowColor);				
-	    $prect->SetPos(new Rectangle($xt+1,$yt+1,$xb-$xt-$this->iShadowWidth-2,$yb-$yt-$this->iShadowWidth-2));				
-	    $prect->Stroke($aImg);
-	}
-	else {	
-	    $prect->SetPos(new Rectangle($xt,$yt,$xb-$xt+1,$yb-$yt+1));				
-	    $prect->Stroke($aImg);
-	    $aImg->SetColor($this->iFrameColor);
-	    $aImg->Rectangle($xt,$yt,$xb,$yb);
-	}
-
-	// CSIM for bar
-	if( $this->csimtarget != '' ) {
-
-	    $coords = "$xt,$yt,$xb,$yt,$xb,$yb,$xt,$yb";
-	    $this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".
-		              $this->csimtarget."\"";
-	    if( $this->csimalt != '' ) {
-		$tmp = $this->csimalt;
-		$this->csimarea .= " title=\"$tmp\"";
-	    }
-	    $this->csimarea .= " alt=\"$tmp\" />\n";
-	}
-
-	// Draw progress bar inside activity bar
-	if( $this->progress->iProgress > 0 ) {
-		
-	    $xtp = $aScale->TranslateDate($st);
-	    $xbp = $aScale->TranslateDate($en);
-	    $len = ($xbp-$xtp)*$this->progress->iProgress;
-
-	    $endpos = $xtp+$len;
-	    if( $endpos > $xt ) {
-		$len -= ($xt-$xtp); 
-
-		// Make sure that the progess bar doesn't extend over the end date
-		if( $xtp+$len-1 > $xb )
-		    $len = $xb - $xtp + 1;
-		
-		if( $xtp < $xt ) 
-		    $xtp = $xt;
-		
-		$prog = $factory->Create($this->progress->iPattern,$this->progress->iColor);
-		$prog->SetDensity($this->progress->iDensity);
-		$prog->SetBackground($this->progress->iFillColor);
-	    	$barheight = ($yb-$yt+1);
-		if( $this->iShadow ) 
-		    $barheight -= $this->iShadowWidth;
-		$progressheight = floor($barheight*$this->progress->iHeight);
-		$marg = ceil(($barheight-$progressheight)/2);
-	    	$pos = new Rectangle($xtp,$yt + $marg, $len,$barheight-2*$marg);
-		$prog->SetPos($pos);
-		$prog->Stroke($aImg);
-	    }
-	}
-	
-	// We don't plot the end mark if the bar has been capped
-	if( $limst == $st ) {
-	    $y = $middle;
-	    // We treat the RIGHT and LEFT triangle mark a little bi
-	    // special so that these marks are placed right under the
-	    // bar.
-	    if( $this->leftMark->GetType() == MARK_LEFTTRIANGLE ) {
-		$y = $yb ; 
-	    }
-	    $this->leftMark->Stroke($aImg,$xt,$y);
-	}
-	if( $limen == $en ) {
-	    $y = $middle;
-	    // We treat the RIGHT and LEFT triangle mark a little bi
-	    // special so that these marks are placed right under the
-	    // bar.
-	    if( $this->rightMark->GetType() == MARK_RIGHTTRIANGLE ) {
-		$y = $yb ; 
-	    }
-	    $this->rightMark->Stroke($aImg,$xb,$y);
-	    
-	    $margin = $this->iCaptionMargin;
-	    if( $this->rightMark->show ) 
-	    	$margin += $this->rightMark->GetWidth();
-	    $this->caption->Stroke($aImg,$xb+$margin,$middle);		
-	}
-    }
-}
-
-//===================================================
-// CLASS MileStone
-// Responsible for formatting individual milestones
-//===================================================
-class MileStone extends GanttPlotObject {
-    var $mark;
-	
-//---------------
-// CONSTRUCTOR	
-    function MileStone($aVPos,$aLabel,$aDate,$aCaption="") {
-	GanttPlotObject::GanttPlotObject();
-	$this->caption->Set($aCaption);
-	$this->caption->Align("left","center");
-	$this->caption->SetFont(FF_FONT1,FS_BOLD);
-	$this->title->Set($aLabel);
-	$this->title->SetColor("darkred");
-	$this->mark = new PlotMark();
-	$this->mark->SetWidth(10);
-	$this->mark->SetType(MARK_DIAMOND);
-	$this->mark->SetColor("darkred");
-	$this->mark->SetFillColor("darkred");
-	$this->iVPos = $aVPos;
-	$this->iStart = $aDate;
-    }
-	
-//---------------
-// PUBLIC METHODS	
-	
-    function GetAbsHeight(&$aImg) {
-	return max($this->title->GetHeight($aImg),$this->mark->GetWidth());
-    }
-		
-    function Stroke(&$aImg,$aScale) {
-	// Put the mark in the middle at the middle of the day
-	$d = $aScale->NormalizeDate($this->iStart)+SECPERDAY/2;
-	$x = $aScale->TranslateDate($d);
-	$y = $aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2);
-
-	$this->StrokeActInfo($aImg,$aScale,$y);
-
-	// CSIM for title
-	if( ! empty($this->title->csimtarget) ) {
-	    
-	    $yt = round($y - $this->title->GetHeight($aImg)/2);
-	    $yb = round($y + $this->title->GetHeight($aImg)/2);
-
-	    $colwidth = $this->title->GetColWidth($aImg);
-	    $colstarts=array();
-	    $aScale->actinfo->GetColStart($aImg,$colstarts,true);
-	    $n = min(count($colwidth),count($this->title->csimtarget));
-	    for( $i=0; $i < $n; ++$i ) {
-		$title_xt = $colstarts[$i];
-		$title_xb = $title_xt + $colwidth[$i];
-		$coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb";
-		$this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->title->csimtarget[$i]."\"";
-		if( ! empty($this->title->csimalt[$i]) ) {
-		    $tmp = $this->title->csimalt[$i];
-		    $this->csimarea .= " title=\"$tmp\"";
-		}
-		$this->csimarea .= " alt=\"$tmp\" />\n";
-	    }
-	}
-
-	if( $d <  $aScale->iStartDate || $d > $aScale->iEndDate )
-		return;
-
-	// Remember the coordinates for any constrains linking to
-	// this milestone
-	$w = $this->mark->GetWidth()/2;
-	$this->SetConstrainPos($x,round($y-$w),$x,round($y+$w));
-	
-	// Setup CSIM
-	if( $this->csimtarget != '' ) {
-	    $this->mark->SetCSIMTarget( $this->csimtarget );
-	    $this->mark->SetCSIMAlt( $this->csimalt );
-	}
-		
-	$this->mark->Stroke($aImg,$x,$y);		
-	$this->caption->Stroke($aImg,$x+$this->mark->width/2+$this->iCaptionMargin,$y);
-
-	$this->csimarea .= $this->mark->GetCSIMAreas();
-    }
-}
-
-
-//===================================================
-// CLASS GanttVLine
-// Responsible for formatting individual milestones
-//===================================================
-
-class TextPropertyBelow extends TextProperty {
-    function TextPropertyBelow($aTxt='') {
-	parent::TextProperty($aTxt);
-    }
-
-    function GetColWidth(&$aImg,$margin) {
-	// Since we are not stroking the title in the columns
-	// but rather under the graph we want this to return 0.
-	return array(0);
-    }
-}
-
-class GanttVLine extends GanttPlotObject {
-
-    var $iLine,$title_margin=3;
-    var $iDayOffset=1;	// Defult to right edge of day
-	
-//---------------
-// CONSTRUCTOR	
-    function GanttVLine($aDate,$aTitle="",$aColor="black",$aWeight=3,$aStyle="dashed") {
-	GanttPlotObject::GanttPlotObject();
-	$this->iLine = new LineProperty();
-	$this->iLine->SetColor($aColor);
-	$this->iLine->SetWeight($aWeight);
-	$this->iLine->SetStyle($aStyle);
-	$this->iStart = $aDate;
-	$this->title = new TextPropertyBelow();
-	$this->title->Set($aTitle);
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    function SetDayOffset($aOff=0.5) {
-	if( $aOff < 0.0 || $aOff > 1.0 )
-	    JpGraphError::RaiseL(6029);
-//("Offset for vertical line must be in range [0,1]");
-	$this->iDayOffset = $aOff;
-    }
-	
-    function SetTitleMargin($aMarg) {
-	$this->title_margin = $aMarg;
-    }
-	
-    function Stroke(&$aImg,$aScale) {
-	$d = $aScale->NormalizeDate($this->iStart);
-	if( $d <  $aScale->iStartDate || $d > $aScale->iEndDate )
-	    return;	
-	if($this->iDayOffset != 0.0)
-	    $d += 24*60*60*$this->iDayOffset;	
-	$x = $aScale->TranslateDate($d);	
-	$y1 = $aScale->iVertHeaderSize+$aImg->top_margin;
-	$y2 = $aImg->height - $aImg->bottom_margin;	
-	$this->iLine->Stroke($aImg,$x,$y1,$x,$y2);
-	$this->title->Align("center","top");
-	$this->title->Stroke($aImg,$x,$y2+$this->title_margin);
-    }	
-}
-
-//===================================================
-// CLASS LinkArrow
-// Handles the drawing of a an arrow 
-//===================================================
-class LinkArrow {
-    var $ix,$iy;
-    var $isizespec = array(
-	array(2,3),array(3,5),array(3,8),array(6,15),array(8,22));
-    var $iDirection=ARROW_DOWN,$iType=ARROWT_SOLID,$iSize=ARROW_S2;
-    var $iColor='black';
-
-    function LinkArrow($x,$y,$aDirection,$aType=ARROWT_SOLID,$aSize=ARROW_S2) {
-	$this->iDirection = $aDirection;
-	$this->iType = $aType;
-	$this->iSize = $aSize;
-	$this->ix = $x;
-	$this->iy = $y;
-    }
-    
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetSize($aSize) {
-	$this->iSize = $aSize;
-    }
-
-    function SetType($aType) {
-	$this->iType = $aType;
-    }
-
-    function Stroke(&$aImg) {
-	list($dx,$dy) = $this->isizespec[$this->iSize];
-	$x = $this->ix;
-	$y = $this->iy;
-	switch ( $this->iDirection ) {
-	    case ARROW_DOWN:
-		$c = array($x,$y,$x-$dx,$y-$dy,$x+$dx,$y-$dy,$x,$y);
-		break;
-	    case ARROW_UP:
-		$c = array($x,$y,$x-$dx,$y+$dy,$x+$dx,$y+$dy,$x,$y);
-		break;
-	    case ARROW_LEFT:
-		$c = array($x,$y,$x+$dy,$y-$dx,$x+$dy,$y+$dx,$x,$y);
-		break;
-	    case ARROW_RIGHT:
-		$c = array($x,$y,$x-$dy,$y-$dx,$x-$dy,$y+$dx,$x,$y);
-		break;
-	    default:
-		JpGraphError::RaiseL(6030);
-//('Unknown arrow direction for link.');
-		die();
-		break;
-	}
-	$aImg->SetColor($this->iColor);
-	switch( $this->iType ) {
-	    case ARROWT_SOLID:
-		$aImg->FilledPolygon($c);
-		break;
-	    case ARROWT_OPEN:
-		$aImg->Polygon($c);
-		break;
-	    default:
-		JpGraphError::RaiseL(6031);
-//('Unknown arrow type for link.');
-		die();
-		break;		
-	}
-    }
-}
-
-//===================================================
-// CLASS GanttLink
-// Handles the drawing of a link line between 2 points
-//===================================================
-
-class GanttLink {
-    var $ix1,$ix2,$iy1,$iy2;
-    var $iPathType=2,$iPathExtend=15;
-    var $iColor='black',$iWeight=1;
-    var $iArrowSize=ARROW_S2,$iArrowType=ARROWT_SOLID;
-
-    function GanttLink($x1=0,$y1=0,$x2=0,$y2=0) {
-	$this->ix1 = $x1;
-	$this->ix2 = $x2;
-	$this->iy1 = $y1;
-	$this->iy2 = $y2;
-    }
-
-    function SetPos($x1,$y1,$x2,$y2) {
-	$this->ix1 = $x1;
-	$this->ix2 = $x2;
-	$this->iy1 = $y1;
-	$this->iy2 = $y2;
-    }
-
-    function SetPath($aPath) {
-	$this->iPathType = $aPath;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetArrow($aSize,$aType=ARROWT_SOLID) {
-	$this->iArrowSize = $aSize;
-	$this->iArrowType = $aType;
-    }
-    
-    function SetWeight($aWeight) {
-	$this->iWeight = $aWeight;
-    }
-
-    function Stroke(&$aImg) {
-	// The way the path for the arrow is constructed is partly based
-	// on some heuristics. This is not an exact science but draws the
-	// path in a way that, for me, makes esthetic sence. For example
-	// if the start and end activities are very close we make a small
-	// detour to endter the target horixontally. If there are more
-	// space between axctivities then no suh detour is made and the 
-	// target is "hit" directly vertical. I have tried to keep this
-	// simple. no doubt this could become almost infinitive complex
-	// and have some real AI. Feel free to modify this.
-	// This will no-doubt be tweaked as times go by. One design aim
-	// is to avoid having the user choose what types of arrow
-	// he wants.
-
-	// The arrow is drawn between (x1,y1) to (x2,y2)
-	$x1 = $this->ix1 ;
-	$x2 = $this->ix2 ;
-	$y1 = $this->iy1 ;
-	$y2 = $this->iy2 ;
-
-	// Depending on if the target is below or above we have to
-	// handle thi different.
-	if( $y2 > $y1 ) {
-	    $arrowtype = ARROW_DOWN;
-	    $midy = round(($y2-$y1)/2+$y1);
-	    if( $x2 > $x1 ) {
-		switch ( $this->iPathType  ) {
-		    case 0:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 1:
-		    case 2:
-		    case 3:
-			$c = array($x1,$y1,$x2,$y1,$x2,$y2);
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type (='.$this->iPathType .') specified for link.');
-			exit(1);
-			break;
-		}
-	    }
-	    else {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 2:
-			// Always extend out horizontally a bit from the first point
-			// If we draw a link back in time (end to start) and the bars 
-			// are very close we also change the path so it comes in from 
-			// the left on the activity
-			$c = array($x1,$y1,$x1+$this->iPathExtend,$y1,
-				   $x1+$this->iPathExtend,$midy,
-				   $x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $y2-$midy < 6 ) {
-			    $c = array($x1,$y1,$x1,$midy,
-				       $x2-$this->iPathExtend,$midy,
-				       $x2-$this->iPathExtend,$y2,
-				       $x2,$y2);
-			    $arrowtype = ARROW_RIGHT;
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			exit(1);
-			break;
-		}
-	    }
-	    $arrow = new LinkArrow($x2,$y2,$arrowtype);
-	}
-	else {
-	    // Y2 < Y1
-	    $arrowtype = ARROW_UP;
-	    $midy = round(($y1-$y2)/2+$y2);
-	    if( $x2 > $x1 ) {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $midy-$y2 < 8 ) {
-			    $arrowtype = ARROW_RIGHT;
-			    $c = array($x1,$y1,$x1,$y2,$x2,$y2);
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			break;
-		}
-	    }
-	    else {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 2:
-			// Always extend out horizontally a bit from the first point
-			$c = array($x1,$y1,$x1+$this->iPathExtend,$y1,
-				   $x1+$this->iPathExtend,$midy,
-				   $x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $midy-$y2 < 16 ) {
-			    $arrowtype = ARROW_RIGHT;
-			    $c = array($x1,$y1,$x1,$midy,$x2-$this->iPathExtend,$midy,
-				       $x2-$this->iPathExtend,$y2,
-				       $x2,$y2);
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			break;
-		}
-	    }
-	    $arrow = new LinkArrow($x2,$y2,$arrowtype);
-	}
-	$aImg->SetColor($this->iColor);
-	$aImg->SetLineWeight($this->iWeight);
-	$aImg->Polygon($c);
-	$aImg->SetLineWeight(1);
-	$arrow->SetColor($this->iColor);
-	$arrow->SetSize($this->iArrowSize);
-	$arrow->SetType($this->iArrowType);
-	$arrow->Stroke($aImg);
-    }
-}
-
-// <EOF>
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_gb2312.php b/nightly-test-server/jpgraph/jpgraph_gb2312.php
deleted file mode 100644
index d0185bf..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gb2312.php
+++ /dev/null
@@ -1,1553 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_GB2312.PHP
-// Description:	PHP4 Graph Plotting library. Chinese font conversions
-// Created: 	2003-05-30
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-class GB2312toUTF8 {
-// --------------------------------------------------------------------
-// This code table is used to translate GB2312 code (key) to 
-// it's corresponding Unicode value (data)
-// --------------------------------------------------------------------
-    var $codetable = array( 
-	8481 => 12288, 8482 => 12289, 8483 => 12290, 8484 => 12539, 8485 => 713,
-	8486 => 711, 8487 => 168, 8488 => 12291, 8489 => 12293, 8490 => 8213,
-	8491 => 65374, 8492 => 8214, 8493 => 8230, 8494 => 8216, 8495 => 8217,
-	8496 => 8220, 8497 => 8221, 8498 => 12308, 8499 => 12309, 8500 => 12296,
-	8501 => 12297, 8502 => 12298, 8503 => 12299, 8504 => 12300, 8505 => 12301,
-	8506 => 12302, 8507 => 12303, 8508 => 12310, 8509 => 12311, 8510 => 12304,
-	8511 => 12305, 8512 => 177, 8513 => 215, 8514 => 247, 8515 => 8758,
-	8516 => 8743, 8517 => 8744, 8518 => 8721, 8519 => 8719, 8520 => 8746,
-	8521 => 8745, 8522 => 8712, 8523 => 8759, 8524 => 8730, 8525 => 8869,
-	8526 => 8741, 8527 => 8736, 8528 => 8978, 8529 => 8857, 8530 => 8747,
-	8531 => 8750, 8532 => 8801, 8533 => 8780, 8534 => 8776, 8535 => 8765,
-	8536 => 8733, 8537 => 8800, 8538 => 8814, 8539 => 8815, 8540 => 8804,
-	8541 => 8805, 8542 => 8734, 8543 => 8757, 8544 => 8756, 8545 => 9794,
-	8546 => 9792, 8547 => 176, 8548 => 8242, 8549 => 8243, 8550 => 8451,
-	8551 => 65284, 8552 => 164, 8553 => 65504, 8554 => 65505, 8555 => 8240,
-	8556 => 167, 8557 => 8470, 8558 => 9734, 8559 => 9733, 8560 => 9675,
-	8561 => 9679, 8562 => 9678, 8563 => 9671, 8564 => 9670, 8565 => 9633,
-	8566 => 9632, 8567 => 9651, 8568 => 9650, 8569 => 8251, 8570 => 8594,
-	8571 => 8592, 8572 => 8593, 8573 => 8595, 8574 => 12307, 8753 => 9352,
-	8754 => 9353, 8755 => 9354, 8756 => 9355, 8757 => 9356, 8758 => 9357,
-	8759 => 9358, 8760 => 9359, 8761 => 9360, 8762 => 9361, 8763 => 9362,
-	8764 => 9363, 8765 => 9364, 8766 => 9365, 8767 => 9366, 8768 => 9367,
-	8769 => 9368, 8770 => 9369, 8771 => 9370, 8772 => 9371, 8773 => 9332,
-	8774 => 9333, 8775 => 9334, 8776 => 9335, 8777 => 9336, 8778 => 9337,
-	8779 => 9338, 8780 => 9339, 8781 => 9340, 8782 => 9341, 8783 => 9342,
-	8784 => 9343, 8785 => 9344, 8786 => 9345, 8787 => 9346, 8788 => 9347,
-	8789 => 9348, 8790 => 9349, 8791 => 9350, 8792 => 9351, 8793 => 9312,
-	8794 => 9313, 8795 => 9314, 8796 => 9315, 8797 => 9316, 8798 => 9317,
-	8799 => 9318, 8800 => 9319, 8801 => 9320, 8802 => 9321, 8805 => 12832,
-	8806 => 12833, 8807 => 12834, 8808 => 12835, 8809 => 12836, 8810 => 12837,
-	8811 => 12838, 8812 => 12839, 8813 => 12840, 8814 => 12841, 8817 => 8544,
-	8818 => 8545, 8819 => 8546, 8820 => 8547, 8821 => 8548, 8822 => 8549,
-	8823 => 8550, 8824 => 8551, 8825 => 8552, 8826 => 8553, 8827 => 8554,
-	8828 => 8555, 8993 => 65281, 8994 => 65282, 8995 => 65283, 8996 => 65509,
-	8997 => 65285, 8998 => 65286, 8999 => 65287, 9000 => 65288, 9001 => 65289,
-	9002 => 65290, 9003 => 65291, 9004 => 65292, 9005 => 65293, 9006 => 65294,
-	9007 => 65295, 9008 => 65296, 9009 => 65297, 9010 => 65298, 9011 => 65299,
-	9012 => 65300, 9013 => 65301, 9014 => 65302, 9015 => 65303, 9016 => 65304,
-	9017 => 65305, 9018 => 65306, 9019 => 65307, 9020 => 65308, 9021 => 65309,
-	9022 => 65310, 9023 => 65311, 9024 => 65312, 9025 => 65313, 9026 => 65314,
-	9027 => 65315, 9028 => 65316, 9029 => 65317, 9030 => 65318, 9031 => 65319,
-	9032 => 65320, 9033 => 65321, 9034 => 65322, 9035 => 65323, 9036 => 65324,
-	9037 => 65325, 9038 => 65326, 9039 => 65327, 9040 => 65328, 9041 => 65329,
-	9042 => 65330, 9043 => 65331, 9044 => 65332, 9045 => 65333, 9046 => 65334,
-	9047 => 65335, 9048 => 65336, 9049 => 65337, 9050 => 65338, 9051 => 65339,
-	9052 => 65340, 9053 => 65341, 9054 => 65342, 9055 => 65343, 9056 => 65344,
-	9057 => 65345, 9058 => 65346, 9059 => 65347, 9060 => 65348, 9061 => 65349,
-	9062 => 65350, 9063 => 65351, 9064 => 65352, 9065 => 65353, 9066 => 65354,
-	9067 => 65355, 9068 => 65356, 9069 => 65357, 9070 => 65358, 9071 => 65359,
-	9072 => 65360, 9073 => 65361, 9074 => 65362, 9075 => 65363, 9076 => 65364,
-	9077 => 65365, 9078 => 65366, 9079 => 65367, 9080 => 65368, 9081 => 65369,
-	9082 => 65370, 9083 => 65371, 9084 => 65372, 9085 => 65373, 9086 => 65507,
-	9249 => 12353, 9250 => 12354, 9251 => 12355, 9252 => 12356, 9253 => 12357,
-	9254 => 12358, 9255 => 12359, 9256 => 12360, 9257 => 12361, 9258 => 12362,
-	9259 => 12363, 9260 => 12364, 9261 => 12365, 9262 => 12366, 9263 => 12367,
-	9264 => 12368, 9265 => 12369, 9266 => 12370, 9267 => 12371, 9268 => 12372,
-	9269 => 12373, 9270 => 12374, 9271 => 12375, 9272 => 12376, 9273 => 12377,
-	9274 => 12378, 9275 => 12379, 9276 => 12380, 9277 => 12381, 9278 => 12382,
-	9279 => 12383, 9280 => 12384, 9281 => 12385, 9282 => 12386, 9283 => 12387,
-	9284 => 12388, 9285 => 12389, 9286 => 12390, 9287 => 12391, 9288 => 12392,
-	9289 => 12393, 9290 => 12394, 9291 => 12395, 9292 => 12396, 9293 => 12397,
-	9294 => 12398, 9295 => 12399, 9296 => 12400, 9297 => 12401, 9298 => 12402,
-	9299 => 12403, 9300 => 12404, 9301 => 12405, 9302 => 12406, 9303 => 12407,
-	9304 => 12408, 9305 => 12409, 9306 => 12410, 9307 => 12411, 9308 => 12412,
-	9309 => 12413, 9310 => 12414, 9311 => 12415, 9312 => 12416, 9313 => 12417,
-	9314 => 12418, 9315 => 12419, 9316 => 12420, 9317 => 12421, 9318 => 12422,
-	9319 => 12423, 9320 => 12424, 9321 => 12425, 9322 => 12426, 9323 => 12427,
-	9324 => 12428, 9325 => 12429, 9326 => 12430, 9327 => 12431, 9328 => 12432,
-	9329 => 12433, 9330 => 12434, 9331 => 12435, 9505 => 12449, 9506 => 12450,
-	9507 => 12451, 9508 => 12452, 9509 => 12453, 9510 => 12454, 9511 => 12455,
-	9512 => 12456, 9513 => 12457, 9514 => 12458, 9515 => 12459, 9516 => 12460,
-	9517 => 12461, 9518 => 12462, 9519 => 12463, 9520 => 12464, 9521 => 12465,
-	9522 => 12466, 9523 => 12467, 9524 => 12468, 9525 => 12469, 9526 => 12470,
-	9527 => 12471, 9528 => 12472, 9529 => 12473, 9530 => 12474, 9531 => 12475,
-	9532 => 12476, 9533 => 12477, 9534 => 12478, 9535 => 12479, 9536 => 12480,
-	9537 => 12481, 9538 => 12482, 9539 => 12483, 9540 => 12484, 9541 => 12485,
-	9542 => 12486, 9543 => 12487, 9544 => 12488, 9545 => 12489, 9546 => 12490,
-	9547 => 12491, 9548 => 12492, 9549 => 12493, 9550 => 12494, 9551 => 12495,
-	9552 => 12496, 9553 => 12497, 9554 => 12498, 9555 => 12499, 9556 => 12500,
-	9557 => 12501, 9558 => 12502, 9559 => 12503, 9560 => 12504, 9561 => 12505,
-	9562 => 12506, 9563 => 12507, 9564 => 12508, 9565 => 12509, 9566 => 12510,
-	9567 => 12511, 9568 => 12512, 9569 => 12513, 9570 => 12514, 9571 => 12515,
-	9572 => 12516, 9573 => 12517, 9574 => 12518, 9575 => 12519, 9576 => 12520,
-	9577 => 12521, 9578 => 12522, 9579 => 12523, 9580 => 12524, 9581 => 12525,
-	9582 => 12526, 9583 => 12527, 9584 => 12528, 9585 => 12529, 9586 => 12530,
-	9587 => 12531, 9588 => 12532, 9589 => 12533, 9590 => 12534, 9761 => 913,
-	9762 => 914, 9763 => 915, 9764 => 916, 9765 => 917, 9766 => 918,
-	9767 => 919, 9768 => 920, 9769 => 921, 9770 => 922, 9771 => 923,
-	9772 => 924, 9773 => 925, 9774 => 926, 9775 => 927, 9776 => 928,
-	9777 => 929, 9778 => 931, 9779 => 932, 9780 => 933, 9781 => 934,
-	9782 => 935, 9783 => 936, 9784 => 937, 9793 => 945, 9794 => 946,
-	9795 => 947, 9796 => 948, 9797 => 949, 9798 => 950, 9799 => 951,
-	9800 => 952, 9801 => 953, 9802 => 954, 9803 => 955, 9804 => 956,
-	9805 => 957, 9806 => 958, 9807 => 959, 9808 => 960, 9809 => 961,
-	9810 => 963, 9811 => 964, 9812 => 965, 9813 => 966, 9814 => 967,
-	9815 => 968, 9816 => 969, 10017 => 1040, 10018 => 1041, 10019 => 1042,
-	10020 => 1043, 10021 => 1044, 10022 => 1045, 10023 => 1025, 10024 => 1046,
-	10025 => 1047, 10026 => 1048, 10027 => 1049, 10028 => 1050, 10029 => 1051,
-	10030 => 1052, 10031 => 1053, 10032 => 1054, 10033 => 1055, 10034 => 1056,
-	10035 => 1057, 10036 => 1058, 10037 => 1059, 10038 => 1060, 10039 => 1061,
-	10040 => 1062, 10041 => 1063, 10042 => 1064, 10043 => 1065, 10044 => 1066,
-	10045 => 1067, 10046 => 1068, 10047 => 1069, 10048 => 1070, 10049 => 1071,
-	10065 => 1072, 10066 => 1073, 10067 => 1074, 10068 => 1075, 10069 => 1076,
-	10070 => 1077, 10071 => 1105, 10072 => 1078, 10073 => 1079, 10074 => 1080,
-	10075 => 1081, 10076 => 1082, 10077 => 1083, 10078 => 1084, 10079 => 1085,
-	10080 => 1086, 10081 => 1087, 10082 => 1088, 10083 => 1089, 10084 => 1090,
-	10085 => 1091, 10086 => 1092, 10087 => 1093, 10088 => 1094, 10089 => 1095,
-	10090 => 1096, 10091 => 1097, 10092 => 1098, 10093 => 1099, 10094 => 1100,
-	10095 => 1101, 10096 => 1102, 10097 => 1103, 10273 => 257, 10274 => 225,
-	10275 => 462, 10276 => 224, 10277 => 275, 10278 => 233, 10279 => 283,
-	10280 => 232, 10281 => 299, 10282 => 237, 10283 => 464, 10284 => 236,
-	10285 => 333, 10286 => 243, 10287 => 466, 10288 => 242, 10289 => 363,
-	10290 => 250, 10291 => 468, 10292 => 249, 10293 => 470, 10294 => 472,
-	10295 => 474, 10296 => 476, 10297 => 252, 10298 => 234, 10309 => 12549,
-	10310 => 12550, 10311 => 12551, 10312 => 12552, 10313 => 12553, 10314 => 12554,
-	10315 => 12555, 10316 => 12556, 10317 => 12557, 10318 => 12558, 10319 => 12559,
-	10320 => 12560, 10321 => 12561, 10322 => 12562, 10323 => 12563, 10324 => 12564,
-	10325 => 12565, 10326 => 12566, 10327 => 12567, 10328 => 12568, 10329 => 12569,
-	10330 => 12570, 10331 => 12571, 10332 => 12572, 10333 => 12573, 10334 => 12574,
-	10335 => 12575, 10336 => 12576, 10337 => 12577, 10338 => 12578, 10339 => 12579,
-	10340 => 12580, 10341 => 12581, 10342 => 12582, 10343 => 12583, 10344 => 12584,
-	10345 => 12585, 10532 => 9472, 10533 => 9473, 10534 => 9474, 10535 => 9475,
-	10536 => 9476, 10537 => 9477, 10538 => 9478, 10539 => 9479, 10540 => 9480,
-	10541 => 9481, 10542 => 9482, 10543 => 9483, 10544 => 9484, 10545 => 9485,
-	10546 => 9486, 10547 => 9487, 10548 => 9488, 10549 => 9489, 10550 => 9490,
-	10551 => 9491, 10552 => 9492, 10553 => 9493, 10554 => 9494, 10555 => 9495,
-	10556 => 9496, 10557 => 9497, 10558 => 9498, 10559 => 9499, 10560 => 9500,
-	10561 => 9501, 10562 => 9502, 10563 => 9503, 10564 => 9504, 10565 => 9505,
-	10566 => 9506, 10567 => 9507, 10568 => 9508, 10569 => 9509, 10570 => 9510,
-	10571 => 9511, 10572 => 9512, 10573 => 9513, 10574 => 9514, 10575 => 9515,
-	10576 => 9516, 10577 => 9517, 10578 => 9518, 10579 => 9519, 10580 => 9520,
-	10581 => 9521, 10582 => 9522, 10583 => 9523, 10584 => 9524, 10585 => 9525,
-	10586 => 9526, 10587 => 9527, 10588 => 9528, 10589 => 9529, 10590 => 9530,
-	10591 => 9531, 10592 => 9532, 10593 => 9533, 10594 => 9534, 10595 => 9535,
-	10596 => 9536, 10597 => 9537, 10598 => 9538, 10599 => 9539, 10600 => 9540,
-	10601 => 9541, 10602 => 9542, 10603 => 9543, 10604 => 9544, 10605 => 9545,
-	10606 => 9546, 10607 => 9547, 12321 => 21834, 12322 => 38463, 12323 => 22467,
-	12324 => 25384, 12325 => 21710, 12326 => 21769, 12327 => 21696, 12328 => 30353,
-	12329 => 30284, 12330 => 34108, 12331 => 30702, 12332 => 33406, 12333 => 30861,
-	12334 => 29233, 12335 => 38552, 12336 => 38797, 12337 => 27688, 12338 => 23433,
-	12339 => 20474, 12340 => 25353, 12341 => 26263, 12342 => 23736, 12343 => 33018,
-	12344 => 26696, 12345 => 32942, 12346 => 26114, 12347 => 30414, 12348 => 20985,
-	12349 => 25942, 12350 => 29100, 12351 => 32753, 12352 => 34948, 12353 => 20658,
-	12354 => 22885, 12355 => 25034, 12356 => 28595, 12357 => 33453, 12358 => 25420,
-	12359 => 25170, 12360 => 21485, 12361 => 21543, 12362 => 31494, 12363 => 20843,
-	12364 => 30116, 12365 => 24052, 12366 => 25300, 12367 => 36299, 12368 => 38774,
-	12369 => 25226, 12370 => 32793, 12371 => 22365, 12372 => 38712, 12373 => 32610,
-	12374 => 29240, 12375 => 30333, 12376 => 26575, 12377 => 30334, 12378 => 25670,
-	12379 => 20336, 12380 => 36133, 12381 => 25308, 12382 => 31255, 12383 => 26001,
-	12384 => 29677, 12385 => 25644, 12386 => 25203, 12387 => 33324, 12388 => 39041,
-	12389 => 26495, 12390 => 29256, 12391 => 25198, 12392 => 25292, 12393 => 20276,
-	12394 => 29923, 12395 => 21322, 12396 => 21150, 12397 => 32458, 12398 => 37030,
-	12399 => 24110, 12400 => 26758, 12401 => 27036, 12402 => 33152, 12403 => 32465,
-	12404 => 26834, 12405 => 30917, 12406 => 34444, 12407 => 38225, 12408 => 20621,
-	12409 => 35876, 12410 => 33502, 12411 => 32990, 12412 => 21253, 12413 => 35090,
-	12414 => 21093, 12577 => 34180, 12578 => 38649, 12579 => 20445, 12580 => 22561,
-	12581 => 39281, 12582 => 23453, 12583 => 25265, 12584 => 25253, 12585 => 26292,
-	12586 => 35961, 12587 => 40077, 12588 => 29190, 12589 => 26479, 12590 => 30865,
-	12591 => 24754, 12592 => 21329, 12593 => 21271, 12594 => 36744, 12595 => 32972,
-	12596 => 36125, 12597 => 38049, 12598 => 20493, 12599 => 29384, 12600 => 22791,
-	12601 => 24811, 12602 => 28953, 12603 => 34987, 12604 => 22868, 12605 => 33519,
-	12606 => 26412, 12607 => 31528, 12608 => 23849, 12609 => 32503, 12610 => 29997,
-	12611 => 27893, 12612 => 36454, 12613 => 36856, 12614 => 36924, 12615 => 40763,
-	12616 => 27604, 12617 => 37145, 12618 => 31508, 12619 => 24444, 12620 => 30887,
-	12621 => 34006, 12622 => 34109, 12623 => 27605, 12624 => 27609, 12625 => 27606,
-	12626 => 24065, 12627 => 24199, 12628 => 30201, 12629 => 38381, 12630 => 25949,
-	12631 => 24330, 12632 => 24517, 12633 => 36767, 12634 => 22721, 12635 => 33218,
-	12636 => 36991, 12637 => 38491, 12638 => 38829, 12639 => 36793, 12640 => 32534,
-	12641 => 36140, 12642 => 25153, 12643 => 20415, 12644 => 21464, 12645 => 21342,
-	12646 => 36776, 12647 => 36777, 12648 => 36779, 12649 => 36941, 12650 => 26631,
-	12651 => 24426, 12652 => 33176, 12653 => 34920, 12654 => 40150, 12655 => 24971,
-	12656 => 21035, 12657 => 30250, 12658 => 24428, 12659 => 25996, 12660 => 28626,
-	12661 => 28392, 12662 => 23486, 12663 => 25672, 12664 => 20853, 12665 => 20912,
-	12666 => 26564, 12667 => 19993, 12668 => 31177, 12669 => 39292, 12670 => 28851,
-	12833 => 30149, 12834 => 24182, 12835 => 29627, 12836 => 33760, 12837 => 25773,
-	12838 => 25320, 12839 => 38069, 12840 => 27874, 12841 => 21338, 12842 => 21187,
-	12843 => 25615, 12844 => 38082, 12845 => 31636, 12846 => 20271, 12847 => 24091,
-	12848 => 33334, 12849 => 33046, 12850 => 33162, 12851 => 28196, 12852 => 27850,
-	12853 => 39539, 12854 => 25429, 12855 => 21340, 12856 => 21754, 12857 => 34917,
-	12858 => 22496, 12859 => 19981, 12860 => 24067, 12861 => 27493, 12862 => 31807,
-	12863 => 37096, 12864 => 24598, 12865 => 25830, 12866 => 29468, 12867 => 35009,
-	12868 => 26448, 12869 => 25165, 12870 => 36130, 12871 => 30572, 12872 => 36393,
-	12873 => 37319, 12874 => 24425, 12875 => 33756, 12876 => 34081, 12877 => 39184,
-	12878 => 21442, 12879 => 34453, 12880 => 27531, 12881 => 24813, 12882 => 24808,
-	12883 => 28799, 12884 => 33485, 12885 => 33329, 12886 => 20179, 12887 => 27815,
-	12888 => 34255, 12889 => 25805, 12890 => 31961, 12891 => 27133, 12892 => 26361,
-	12893 => 33609, 12894 => 21397, 12895 => 31574, 12896 => 20391, 12897 => 20876,
-	12898 => 27979, 12899 => 23618, 12900 => 36461, 12901 => 25554, 12902 => 21449,
-	12903 => 33580, 12904 => 33590, 12905 => 26597, 12906 => 30900, 12907 => 25661,
-	12908 => 23519, 12909 => 23700, 12910 => 24046, 12911 => 35815, 12912 => 25286,
-	12913 => 26612, 12914 => 35962, 12915 => 25600, 12916 => 25530, 12917 => 34633,
-	12918 => 39307, 12919 => 35863, 12920 => 32544, 12921 => 38130, 12922 => 20135,
-	12923 => 38416, 12924 => 39076, 12925 => 26124, 12926 => 29462, 13089 => 22330,
-	13090 => 23581, 13091 => 24120, 13092 => 38271, 13093 => 20607, 13094 => 32928,
-	13095 => 21378, 13096 => 25950, 13097 => 30021, 13098 => 21809, 13099 => 20513,
-	13100 => 36229, 13101 => 25220, 13102 => 38046, 13103 => 26397, 13104 => 22066,
-	13105 => 28526, 13106 => 24034, 13107 => 21557, 13108 => 28818, 13109 => 36710,
-	13110 => 25199, 13111 => 25764, 13112 => 25507, 13113 => 24443, 13114 => 28552,
-	13115 => 37108, 13116 => 33251, 13117 => 36784, 13118 => 23576, 13119 => 26216,
-	13120 => 24561, 13121 => 27785, 13122 => 38472, 13123 => 36225, 13124 => 34924,
-	13125 => 25745, 13126 => 31216, 13127 => 22478, 13128 => 27225, 13129 => 25104,
-	13130 => 21576, 13131 => 20056, 13132 => 31243, 13133 => 24809, 13134 => 28548,
-	13135 => 35802, 13136 => 25215, 13137 => 36894, 13138 => 39563, 13139 => 31204,
-13140 => 21507, 13141 => 30196, 13142 => 25345, 13143 => 21273, 13144 => 27744,
-13145 => 36831, 13146 => 24347, 13147 => 39536, 13148 => 32827, 13149 => 40831,
-13150 => 20360, 13151 => 23610, 13152 => 36196, 13153 => 32709, 13154 => 26021,
-13155 => 28861, 13156 => 20805, 13157 => 20914, 13158 => 34411, 13159 => 23815,
-13160 => 23456, 13161 => 25277, 13162 => 37228, 13163 => 30068, 13164 => 36364,
-13165 => 31264, 13166 => 24833, 13167 => 31609, 13168 => 20167, 13169 => 32504,
-13170 => 30597, 13171 => 19985, 13172 => 33261, 13173 => 21021, 13174 => 20986,
-13175 => 27249, 13176 => 21416, 13177 => 36487, 13178 => 38148, 13179 => 38607,
-13180 => 28353, 13181 => 38500, 13182 => 26970, 13345 => 30784, 13346 => 20648,
-13347 => 30679, 13348 => 25616, 13349 => 35302, 13350 => 22788, 13351 => 25571,
-13352 => 24029, 13353 => 31359, 13354 => 26941, 13355 => 20256, 13356 => 33337,
-13357 => 21912, 13358 => 20018, 13359 => 30126, 13360 => 31383, 13361 => 24162,
-13362 => 24202, 13363 => 38383, 13364 => 21019, 13365 => 21561, 13366 => 28810,
-13367 => 25462, 13368 => 38180, 13369 => 22402, 13370 => 26149, 13371 => 26943,
-13372 => 37255, 13373 => 21767, 13374 => 28147, 13375 => 32431, 13376 => 34850,
-13377 => 25139, 13378 => 32496, 13379 => 30133, 13380 => 33576, 13381 => 30913,
-13382 => 38604, 13383 => 36766, 13384 => 24904, 13385 => 29943, 13386 => 35789,
-13387 => 27492, 13388 => 21050, 13389 => 36176, 13390 => 27425, 13391 => 32874,
-13392 => 33905, 13393 => 22257, 13394 => 21254, 13395 => 20174, 13396 => 19995,
-13397 => 20945, 13398 => 31895, 13399 => 37259, 13400 => 31751, 13401 => 20419,
-13402 => 36479, 13403 => 31713, 13404 => 31388, 13405 => 25703, 13406 => 23828,
-13407 => 20652, 13408 => 33030, 13409 => 30209, 13410 => 31929, 13411 => 28140,
-13412 => 32736, 13413 => 26449, 13414 => 23384, 13415 => 23544, 13416 => 30923,
-13417 => 25774, 13418 => 25619, 13419 => 25514, 13420 => 25387, 13421 => 38169,
-13422 => 25645, 13423 => 36798, 13424 => 31572, 13425 => 30249, 13426 => 25171,
-13427 => 22823, 13428 => 21574, 13429 => 27513, 13430 => 20643, 13431 => 25140,
-13432 => 24102, 13433 => 27526, 13434 => 20195, 13435 => 36151, 13436 => 34955,
-13437 => 24453, 13438 => 36910, 13601 => 24608, 13602 => 32829, 13603 => 25285,
-13604 => 20025, 13605 => 21333, 13606 => 37112, 13607 => 25528, 13608 => 32966,
-13609 => 26086, 13610 => 27694, 13611 => 20294, 13612 => 24814, 13613 => 28129,
-13614 => 35806, 13615 => 24377, 13616 => 34507, 13617 => 24403, 13618 => 25377,
-13619 => 20826, 13620 => 33633, 13621 => 26723, 13622 => 20992, 13623 => 25443,
-13624 => 36424, 13625 => 20498, 13626 => 23707, 13627 => 31095, 13628 => 23548,
-13629 => 21040, 13630 => 31291, 13631 => 24764, 13632 => 36947, 13633 => 30423,
-13634 => 24503, 13635 => 24471, 13636 => 30340, 13637 => 36460, 13638 => 28783,
-13639 => 30331, 13640 => 31561, 13641 => 30634, 13642 => 20979, 13643 => 37011,
-13644 => 22564, 13645 => 20302, 13646 => 28404, 13647 => 36842, 13648 => 25932,
-13649 => 31515, 13650 => 29380, 13651 => 28068, 13652 => 32735, 13653 => 23265,
-13654 => 25269, 13655 => 24213, 13656 => 22320, 13657 => 33922, 13658 => 31532,
-13659 => 24093, 13660 => 24351, 13661 => 36882, 13662 => 32532, 13663 => 39072,
-13664 => 25474, 13665 => 28359, 13666 => 30872, 13667 => 28857, 13668 => 20856,
-13669 => 38747, 13670 => 22443, 13671 => 30005, 13672 => 20291, 13673 => 30008,
-13674 => 24215, 13675 => 24806, 13676 => 22880, 13677 => 28096, 13678 => 27583,
-13679 => 30857, 13680 => 21500, 13681 => 38613, 13682 => 20939, 13683 => 20993,
-13684 => 25481, 13685 => 21514, 13686 => 38035, 13687 => 35843, 13688 => 36300,
-13689 => 29241, 13690 => 30879, 13691 => 34678, 13692 => 36845, 13693 => 35853,
-13694 => 21472, 13857 => 19969, 13858 => 30447, 13859 => 21486, 13860 => 38025,
-13861 => 39030, 13862 => 40718, 13863 => 38189, 13864 => 23450, 13865 => 35746,
-13866 => 20002, 13867 => 19996, 13868 => 20908, 13869 => 33891, 13870 => 25026,
-13871 => 21160, 13872 => 26635, 13873 => 20375, 13874 => 24683, 13875 => 20923,
-13876 => 27934, 13877 => 20828, 13878 => 25238, 13879 => 26007, 13880 => 38497,
-13881 => 35910, 13882 => 36887, 13883 => 30168, 13884 => 37117, 13885 => 30563,
-13886 => 27602, 13887 => 29322, 13888 => 29420, 13889 => 35835, 13890 => 22581,
-13891 => 30585, 13892 => 36172, 13893 => 26460, 13894 => 38208, 13895 => 32922,
-13896 => 24230, 13897 => 28193, 13898 => 22930, 13899 => 31471, 13900 => 30701,
-13901 => 38203, 13902 => 27573, 13903 => 26029, 13904 => 32526, 13905 => 22534,
-13906 => 20817, 13907 => 38431, 13908 => 23545, 13909 => 22697, 13910 => 21544,
-13911 => 36466, 13912 => 25958, 13913 => 39039, 13914 => 22244, 13915 => 38045,
-13916 => 30462, 13917 => 36929, 13918 => 25479, 13919 => 21702, 13920 => 22810,
-13921 => 22842, 13922 => 22427, 13923 => 36530, 13924 => 26421, 13925 => 36346,
-13926 => 33333, 13927 => 21057, 13928 => 24816, 13929 => 22549, 13930 => 34558,
-13931 => 23784, 13932 => 40517, 13933 => 20420, 13934 => 39069, 13935 => 35769,
-13936 => 23077, 13937 => 24694, 13938 => 21380, 13939 => 25212, 13940 => 36943,
-13941 => 37122, 13942 => 39295, 13943 => 24681, 13944 => 32780, 13945 => 20799,
-13946 => 32819, 13947 => 23572, 13948 => 39285, 13949 => 27953, 13950 => 20108,
-14113 => 36144, 14114 => 21457, 14115 => 32602, 14116 => 31567, 14117 => 20240,
-14118 => 20047, 14119 => 38400, 14120 => 27861, 14121 => 29648, 14122 => 34281,
-14123 => 24070, 14124 => 30058, 14125 => 32763, 14126 => 27146, 14127 => 30718,
-14128 => 38034, 14129 => 32321, 14130 => 20961, 14131 => 28902, 14132 => 21453,
-14133 => 36820, 14134 => 33539, 14135 => 36137, 14136 => 29359, 14137 => 39277,
-14138 => 27867, 14139 => 22346, 14140 => 33459, 14141 => 26041, 14142 => 32938,
-14143 => 25151, 14144 => 38450, 14145 => 22952, 14146 => 20223, 14147 => 35775,
-14148 => 32442, 14149 => 25918, 14150 => 33778, 14151 => 38750, 14152 => 21857,
-14153 => 39134, 14154 => 32933, 14155 => 21290, 14156 => 35837, 14157 => 21536,
-14158 => 32954, 14159 => 24223, 14160 => 27832, 14161 => 36153, 14162 => 33452,
-14163 => 37210, 14164 => 21545, 14165 => 27675, 14166 => 20998, 14167 => 32439,
-14168 => 22367, 14169 => 28954, 14170 => 27774, 14171 => 31881, 14172 => 22859,
-14173 => 20221, 14174 => 24575, 14175 => 24868, 14176 => 31914, 14177 => 20016,
-14178 => 23553, 14179 => 26539, 14180 => 34562, 14181 => 23792, 14182 => 38155,
-14183 => 39118, 14184 => 30127, 14185 => 28925, 14186 => 36898, 14187 => 20911,
-14188 => 32541, 14189 => 35773, 14190 => 22857, 14191 => 20964, 14192 => 20315,
-14193 => 21542, 14194 => 22827, 14195 => 25975, 14196 => 32932, 14197 => 23413,
-14198 => 25206, 14199 => 25282, 14200 => 36752, 14201 => 24133, 14202 => 27679,
-14203 => 31526, 14204 => 20239, 14205 => 20440, 14206 => 26381, 14369 => 28014,
-14370 => 28074, 14371 => 31119, 14372 => 34993, 14373 => 24343, 14374 => 29995,
-14375 => 25242, 14376 => 36741, 14377 => 20463, 14378 => 37340, 14379 => 26023,
-14380 => 33071, 14381 => 33105, 14382 => 24220, 14383 => 33104, 14384 => 36212,
-14385 => 21103, 14386 => 35206, 14387 => 36171, 14388 => 22797, 14389 => 20613,
-14390 => 20184, 14391 => 38428, 14392 => 29238, 14393 => 33145, 14394 => 36127,
-14395 => 23500, 14396 => 35747, 14397 => 38468, 14398 => 22919, 14399 => 32538,
-14400 => 21648, 14401 => 22134, 14402 => 22030, 14403 => 35813, 14404 => 25913,
-14405 => 27010, 14406 => 38041, 14407 => 30422, 14408 => 28297, 14409 => 24178,
-14410 => 29976, 14411 => 26438, 14412 => 26577, 14413 => 31487, 14414 => 32925,
-14415 => 36214, 14416 => 24863, 14417 => 31174, 14418 => 25954, 14419 => 36195,
-14420 => 20872, 14421 => 21018, 14422 => 38050, 14423 => 32568, 14424 => 32923,
-14425 => 32434, 14426 => 23703, 14427 => 28207, 14428 => 26464, 14429 => 31705,
-14430 => 30347, 14431 => 39640, 14432 => 33167, 14433 => 32660, 14434 => 31957,
-14435 => 25630, 14436 => 38224, 14437 => 31295, 14438 => 21578, 14439 => 21733,
-14440 => 27468, 14441 => 25601, 14442 => 25096, 14443 => 40509, 14444 => 33011,
-14445 => 30105, 14446 => 21106, 14447 => 38761, 14448 => 33883, 14449 => 26684,
-14450 => 34532, 14451 => 38401, 14452 => 38548, 14453 => 38124, 14454 => 20010,
-14455 => 21508, 14456 => 32473, 14457 => 26681, 14458 => 36319, 14459 => 32789,
-14460 => 26356, 14461 => 24218, 14462 => 32697, 14625 => 22466, 14626 => 32831,
-14627 => 26775, 14628 => 24037, 14629 => 25915, 14630 => 21151, 14631 => 24685,
-14632 => 40858, 14633 => 20379, 14634 => 36524, 14635 => 20844, 14636 => 23467,
-14637 => 24339, 14638 => 24041, 14639 => 27742, 14640 => 25329, 14641 => 36129,
-14642 => 20849, 14643 => 38057, 14644 => 21246, 14645 => 27807, 14646 => 33503,
-14647 => 29399, 14648 => 22434, 14649 => 26500, 14650 => 36141, 14651 => 22815,
-14652 => 36764, 14653 => 33735, 14654 => 21653, 14655 => 31629, 14656 => 20272,
-14657 => 27837, 14658 => 23396, 14659 => 22993, 14660 => 40723, 14661 => 21476,
-14662 => 34506, 14663 => 39592, 14664 => 35895, 14665 => 32929, 14666 => 25925,
-14667 => 39038, 14668 => 22266, 14669 => 38599, 14670 => 21038, 14671 => 29916,
-14672 => 21072, 14673 => 23521, 14674 => 25346, 14675 => 35074, 14676 => 20054,
-14677 => 25296, 14678 => 24618, 14679 => 26874, 14680 => 20851, 14681 => 23448,
-14682 => 20896, 14683 => 35266, 14684 => 31649, 14685 => 39302, 14686 => 32592,
-14687 => 24815, 14688 => 28748, 14689 => 36143, 14690 => 20809, 14691 => 24191,
-14692 => 36891, 14693 => 29808, 14694 => 35268, 14695 => 22317, 14696 => 30789,
-14697 => 24402, 14698 => 40863, 14699 => 38394, 14700 => 36712, 14701 => 39740,
-14702 => 35809, 14703 => 30328, 14704 => 26690, 14705 => 26588, 14706 => 36330,
-14707 => 36149, 14708 => 21053, 14709 => 36746, 14710 => 28378, 14711 => 26829,
-14712 => 38149, 14713 => 37101, 14714 => 22269, 14715 => 26524, 14716 => 35065,
-14717 => 36807, 14718 => 21704, 14881 => 39608, 14882 => 23401, 14883 => 28023,
-14884 => 27686, 14885 => 20133, 14886 => 23475, 14887 => 39559, 14888 => 37219,
-14889 => 25000, 14890 => 37039, 14891 => 38889, 14892 => 21547, 14893 => 28085,
-14894 => 23506, 14895 => 20989, 14896 => 21898, 14897 => 32597, 14898 => 32752,
-14899 => 25788, 14900 => 25421, 14901 => 26097, 14902 => 25022, 14903 => 24717,
-14904 => 28938, 14905 => 27735, 14906 => 27721, 14907 => 22831, 14908 => 26477,
-14909 => 33322, 14910 => 22741, 14911 => 22158, 14912 => 35946, 14913 => 27627,
-14914 => 37085, 14915 => 22909, 14916 => 32791, 14917 => 21495, 14918 => 28009,
-14919 => 21621, 14920 => 21917, 14921 => 33655, 14922 => 33743, 14923 => 26680,
-14924 => 31166, 14925 => 21644, 14926 => 20309, 14927 => 21512, 14928 => 30418,
-14929 => 35977, 14930 => 38402, 14931 => 27827, 14932 => 28088, 14933 => 36203,
-14934 => 35088, 14935 => 40548, 14936 => 36154, 14937 => 22079, 14938 => 40657,
-14939 => 30165, 14940 => 24456, 14941 => 29408, 14942 => 24680, 14943 => 21756,
-14944 => 20136, 14945 => 27178, 14946 => 34913, 14947 => 24658, 14948 => 36720,
-14949 => 21700, 14950 => 28888, 14951 => 34425, 14952 => 40511, 14953 => 27946,
-14954 => 23439, 14955 => 24344, 14956 => 32418, 14957 => 21897, 14958 => 20399,
-14959 => 29492, 14960 => 21564, 14961 => 21402, 14962 => 20505, 14963 => 21518,
-14964 => 21628, 14965 => 20046, 14966 => 24573, 14967 => 29786, 14968 => 22774,
-14969 => 33899, 14970 => 32993, 14971 => 34676, 14972 => 29392, 14973 => 31946,
-14974 => 28246, 15137 => 24359, 15138 => 34382, 15139 => 21804, 15140 => 25252,
-15141 => 20114, 15142 => 27818, 15143 => 25143, 15144 => 33457, 15145 => 21719,
-15146 => 21326, 15147 => 29502, 15148 => 28369, 15149 => 30011, 15150 => 21010,
-15151 => 21270, 15152 => 35805, 15153 => 27088, 15154 => 24458, 15155 => 24576,
-15156 => 28142, 15157 => 22351, 15158 => 27426, 15159 => 29615, 15160 => 26707,
-15161 => 36824, 15162 => 32531, 15163 => 25442, 15164 => 24739, 15165 => 21796,
-15166 => 30186, 15167 => 35938, 15168 => 28949, 15169 => 28067, 15170 => 23462,
-15171 => 24187, 15172 => 33618, 15173 => 24908, 15174 => 40644, 15175 => 30970,
-15176 => 34647, 15177 => 31783, 15178 => 30343, 15179 => 20976, 15180 => 24822,
-15181 => 29004, 15182 => 26179, 15183 => 24140, 15184 => 24653, 15185 => 35854,
-15186 => 28784, 15187 => 25381, 15188 => 36745, 15189 => 24509, 15190 => 24674,
-15191 => 34516, 15192 => 22238, 15193 => 27585, 15194 => 24724, 15195 => 24935,
-15196 => 21321, 15197 => 24800, 15198 => 26214, 15199 => 36159, 15200 => 31229,
-15201 => 20250, 15202 => 28905, 15203 => 27719, 15204 => 35763, 15205 => 35826,
-15206 => 32472, 15207 => 33636, 15208 => 26127, 15209 => 23130, 15210 => 39746,
-15211 => 27985, 15212 => 28151, 15213 => 35905, 15214 => 27963, 15215 => 20249,
-15216 => 28779, 15217 => 33719, 15218 => 25110, 15219 => 24785, 15220 => 38669,
-15221 => 36135, 15222 => 31096, 15223 => 20987, 15224 => 22334, 15225 => 22522,
-15226 => 26426, 15227 => 30072, 15228 => 31293, 15229 => 31215, 15230 => 31637,
-15393 => 32908, 15394 => 39269, 15395 => 36857, 15396 => 28608, 15397 => 35749,
-15398 => 40481, 15399 => 23020, 15400 => 32489, 15401 => 32521, 15402 => 21513,
-15403 => 26497, 15404 => 26840, 15405 => 36753, 15406 => 31821, 15407 => 38598,
-15408 => 21450, 15409 => 24613, 15410 => 30142, 15411 => 27762, 15412 => 21363,
-15413 => 23241, 15414 => 32423, 15415 => 25380, 15416 => 20960, 15417 => 33034,
-15418 => 24049, 15419 => 34015, 15420 => 25216, 15421 => 20864, 15422 => 23395,
-15423 => 20238, 15424 => 31085, 15425 => 21058, 15426 => 24760, 15427 => 27982,
-15428 => 23492, 15429 => 23490, 15430 => 35745, 15431 => 35760, 15432 => 26082,
-15433 => 24524, 15434 => 38469, 15435 => 22931, 15436 => 32487, 15437 => 32426,
-15438 => 22025, 15439 => 26551, 15440 => 22841, 15441 => 20339, 15442 => 23478,
-15443 => 21152, 15444 => 33626, 15445 => 39050, 15446 => 36158, 15447 => 30002,
-15448 => 38078, 15449 => 20551, 15450 => 31292, 15451 => 20215, 15452 => 26550,
-15453 => 39550, 15454 => 23233, 15455 => 27516, 15456 => 30417, 15457 => 22362,
-15458 => 23574, 15459 => 31546, 15460 => 38388, 15461 => 29006, 15462 => 20860,
-15463 => 32937, 15464 => 33392, 15465 => 22904, 15466 => 32516, 15467 => 33575,
-15468 => 26816, 15469 => 26604, 15470 => 30897, 15471 => 30839, 15472 => 25315,
-15473 => 25441, 15474 => 31616, 15475 => 20461, 15476 => 21098, 15477 => 20943,
-15478 => 33616, 15479 => 27099, 15480 => 37492, 15481 => 36341, 15482 => 36145,
-15483 => 35265, 15484 => 38190, 15485 => 31661, 15486 => 20214, 15649 => 20581,
-15650 => 33328, 15651 => 21073, 15652 => 39279, 15653 => 28176, 15654 => 28293,
-15655 => 28071, 15656 => 24314, 15657 => 20725, 15658 => 23004, 15659 => 23558,
-15660 => 27974, 15661 => 27743, 15662 => 30086, 15663 => 33931, 15664 => 26728,
-15665 => 22870, 15666 => 35762, 15667 => 21280, 15668 => 37233, 15669 => 38477,
-15670 => 34121, 15671 => 26898, 15672 => 30977, 15673 => 28966, 15674 => 33014,
-15675 => 20132, 15676 => 37066, 15677 => 27975, 15678 => 39556, 15679 => 23047,
-15680 => 22204, 15681 => 25605, 15682 => 38128, 15683 => 30699, 15684 => 20389,
-15685 => 33050, 15686 => 29409, 15687 => 35282, 15688 => 39290, 15689 => 32564,
-15690 => 32478, 15691 => 21119, 15692 => 25945, 15693 => 37237, 15694 => 36735,
-15695 => 36739, 15696 => 21483, 15697 => 31382, 15698 => 25581, 15699 => 25509,
-15700 => 30342, 15701 => 31224, 15702 => 34903, 15703 => 38454, 15704 => 25130,
-15705 => 21163, 15706 => 33410, 15707 => 26708, 15708 => 26480, 15709 => 25463,
-15710 => 30571, 15711 => 31469, 15712 => 27905, 15713 => 32467, 15714 => 35299,
-15715 => 22992, 15716 => 25106, 15717 => 34249, 15718 => 33445, 15719 => 30028,
-15720 => 20511, 15721 => 20171, 15722 => 30117, 15723 => 35819, 15724 => 23626,
-15725 => 24062, 15726 => 31563, 15727 => 26020, 15728 => 37329, 15729 => 20170,
-15730 => 27941, 15731 => 35167, 15732 => 32039, 15733 => 38182, 15734 => 20165,
-15735 => 35880, 15736 => 36827, 15737 => 38771, 15738 => 26187, 15739 => 31105,
-15740 => 36817, 15741 => 28908, 15742 => 28024, 15905 => 23613, 15906 => 21170,
-15907 => 33606, 15908 => 20834, 15909 => 33550, 15910 => 30555, 15911 => 26230,
-15912 => 40120, 15913 => 20140, 15914 => 24778, 15915 => 31934, 15916 => 31923,
-15917 => 32463, 15918 => 20117, 15919 => 35686, 15920 => 26223, 15921 => 39048,
-15922 => 38745, 15923 => 22659, 15924 => 25964, 15925 => 38236, 15926 => 24452,
-15927 => 30153, 15928 => 38742, 15929 => 31455, 15930 => 31454, 15931 => 20928,
-15932 => 28847, 15933 => 31384, 15934 => 25578, 15935 => 31350, 15936 => 32416,
-15937 => 29590, 15938 => 38893, 15939 => 20037, 15940 => 28792, 15941 => 20061,
-15942 => 37202, 15943 => 21417, 15944 => 25937, 15945 => 26087, 15946 => 33276,
-15947 => 33285, 15948 => 21646, 15949 => 23601, 15950 => 30106, 15951 => 38816,
-15952 => 25304, 15953 => 29401, 15954 => 30141, 15955 => 23621, 15956 => 39545,
-15957 => 33738, 15958 => 23616, 15959 => 21632, 15960 => 30697, 15961 => 20030,
-15962 => 27822, 15963 => 32858, 15964 => 25298, 15965 => 25454, 15966 => 24040,
-15967 => 20855, 15968 => 36317, 15969 => 36382, 15970 => 38191, 15971 => 20465,
-15972 => 21477, 15973 => 24807, 15974 => 28844, 15975 => 21095, 15976 => 25424,
-15977 => 40515, 15978 => 23071, 15979 => 20518, 15980 => 30519, 15981 => 21367,
-15982 => 32482, 15983 => 25733, 15984 => 25899, 15985 => 25225, 15986 => 25496,
-15987 => 20500, 15988 => 29237, 15989 => 35273, 15990 => 20915, 15991 => 35776,
-15992 => 32477, 15993 => 22343, 15994 => 33740, 15995 => 38055, 15996 => 20891,
-15997 => 21531, 15998 => 23803, 16161 => 20426, 16162 => 31459, 16163 => 27994,
-16164 => 37089, 16165 => 39567, 16166 => 21888, 16167 => 21654, 16168 => 21345,
-16169 => 21679, 16170 => 24320, 16171 => 25577, 16172 => 26999, 16173 => 20975,
-16174 => 24936, 16175 => 21002, 16176 => 22570, 16177 => 21208, 16178 => 22350,
-16179 => 30733, 16180 => 30475, 16181 => 24247, 16182 => 24951, 16183 => 31968,
-16184 => 25179, 16185 => 25239, 16186 => 20130, 16187 => 28821, 16188 => 32771,
-16189 => 25335, 16190 => 28900, 16191 => 38752, 16192 => 22391, 16193 => 33499,
-16194 => 26607, 16195 => 26869, 16196 => 30933, 16197 => 39063, 16198 => 31185,
-16199 => 22771, 16200 => 21683, 16201 => 21487, 16202 => 28212, 16203 => 20811,
-16204 => 21051, 16205 => 23458, 16206 => 35838, 16207 => 32943, 16208 => 21827,
-16209 => 22438, 16210 => 24691, 16211 => 22353, 16212 => 21549, 16213 => 31354,
-16214 => 24656, 16215 => 23380, 16216 => 25511, 16217 => 25248, 16218 => 21475,
-16219 => 25187, 16220 => 23495, 16221 => 26543, 16222 => 21741, 16223 => 31391,
-16224 => 33510, 16225 => 37239, 16226 => 24211, 16227 => 35044, 16228 => 22840,
-16229 => 22446, 16230 => 25358, 16231 => 36328, 16232 => 33007, 16233 => 22359,
-16234 => 31607, 16235 => 20393, 16236 => 24555, 16237 => 23485, 16238 => 27454,
-16239 => 21281, 16240 => 31568, 16241 => 29378, 16242 => 26694, 16243 => 30719,
-16244 => 30518, 16245 => 26103, 16246 => 20917, 16247 => 20111, 16248 => 30420,
-16249 => 23743, 16250 => 31397, 16251 => 33909, 16252 => 22862, 16253 => 39745,
-16254 => 20608, 16417 => 39304, 16418 => 24871, 16419 => 28291, 16420 => 22372,
-16421 => 26118, 16422 => 25414, 16423 => 22256, 16424 => 25324, 16425 => 25193,
-16426 => 24275, 16427 => 38420, 16428 => 22403, 16429 => 25289, 16430 => 21895,
-16431 => 34593, 16432 => 33098, 16433 => 36771, 16434 => 21862, 16435 => 33713,
-16436 => 26469, 16437 => 36182, 16438 => 34013, 16439 => 23146, 16440 => 26639,
-16441 => 25318, 16442 => 31726, 16443 => 38417, 16444 => 20848, 16445 => 28572,
-16446 => 35888, 16447 => 25597, 16448 => 35272, 16449 => 25042, 16450 => 32518,
-16451 => 28866, 16452 => 28389, 16453 => 29701, 16454 => 27028, 16455 => 29436,
-16456 => 24266, 16457 => 37070, 16458 => 26391, 16459 => 28010, 16460 => 25438,
-16461 => 21171, 16462 => 29282, 16463 => 32769, 16464 => 20332, 16465 => 23013,
-16466 => 37226, 16467 => 28889, 16468 => 28061, 16469 => 21202, 16470 => 20048,
-16471 => 38647, 16472 => 38253, 16473 => 34174, 16474 => 30922, 16475 => 32047,
-16476 => 20769, 16477 => 22418, 16478 => 25794, 16479 => 32907, 16480 => 31867,
-16481 => 27882, 16482 => 26865, 16483 => 26974, 16484 => 20919, 16485 => 21400,
-16486 => 26792, 16487 => 29313, 16488 => 40654, 16489 => 31729, 16490 => 29432,
-16491 => 31163, 16492 => 28435, 16493 => 29702, 16494 => 26446, 16495 => 37324,
-16496 => 40100, 16497 => 31036, 16498 => 33673, 16499 => 33620, 16500 => 21519,
-16501 => 26647, 16502 => 20029, 16503 => 21385, 16504 => 21169, 16505 => 30782,
-16506 => 21382, 16507 => 21033, 16508 => 20616, 16509 => 20363, 16510 => 20432,
-16673 => 30178, 16674 => 31435, 16675 => 31890, 16676 => 27813, 16677 => 38582,
-16678 => 21147, 16679 => 29827, 16680 => 21737, 16681 => 20457, 16682 => 32852,
-16683 => 33714, 16684 => 36830, 16685 => 38256, 16686 => 24265, 16687 => 24604,
-16688 => 28063, 16689 => 24088, 16690 => 25947, 16691 => 33080, 16692 => 38142,
-16693 => 24651, 16694 => 28860, 16695 => 32451, 16696 => 31918, 16697 => 20937,
-16698 => 26753, 16699 => 31921, 16700 => 33391, 16701 => 20004, 16702 => 36742,
-16703 => 37327, 16704 => 26238, 16705 => 20142, 16706 => 35845, 16707 => 25769,
-16708 => 32842, 16709 => 20698, 16710 => 30103, 16711 => 29134, 16712 => 23525,
-16713 => 36797, 16714 => 28518, 16715 => 20102, 16716 => 25730, 16717 => 38243,
-16718 => 24278, 16719 => 26009, 16720 => 21015, 16721 => 35010, 16722 => 28872,
-16723 => 21155, 16724 => 29454, 16725 => 29747, 16726 => 26519, 16727 => 30967,
-16728 => 38678, 16729 => 20020, 16730 => 37051, 16731 => 40158, 16732 => 28107,
-16733 => 20955, 16734 => 36161, 16735 => 21533, 16736 => 25294, 16737 => 29618,
-16738 => 33777, 16739 => 38646, 16740 => 40836, 16741 => 38083, 16742 => 20278,
-16743 => 32666, 16744 => 20940, 16745 => 28789, 16746 => 38517, 16747 => 23725,
-16748 => 39046, 16749 => 21478, 16750 => 20196, 16751 => 28316, 16752 => 29705,
-16753 => 27060, 16754 => 30827, 16755 => 39311, 16756 => 30041, 16757 => 21016,
-16758 => 30244, 16759 => 27969, 16760 => 26611, 16761 => 20845, 16762 => 40857,
-16763 => 32843, 16764 => 21657, 16765 => 31548, 16766 => 31423, 16929 => 38534,
-16930 => 22404, 16931 => 25314, 16932 => 38471, 16933 => 27004, 16934 => 23044,
-16935 => 25602, 16936 => 31699, 16937 => 28431, 16938 => 38475, 16939 => 33446,
-16940 => 21346, 16941 => 39045, 16942 => 24208, 16943 => 28809, 16944 => 25523,
-16945 => 21348, 16946 => 34383, 16947 => 40065, 16948 => 40595, 16949 => 30860,
-16950 => 38706, 16951 => 36335, 16952 => 36162, 16953 => 40575, 16954 => 28510,
-16955 => 31108, 16956 => 24405, 16957 => 38470, 16958 => 25134, 16959 => 39540,
-16960 => 21525, 16961 => 38109, 16962 => 20387, 16963 => 26053, 16964 => 23653,
-16965 => 23649, 16966 => 32533, 16967 => 34385, 16968 => 27695, 16969 => 24459,
-16970 => 29575, 16971 => 28388, 16972 => 32511, 16973 => 23782, 16974 => 25371,
-16975 => 23402, 16976 => 28390, 16977 => 21365, 16978 => 20081, 16979 => 25504,
-16980 => 30053, 16981 => 25249, 16982 => 36718, 16983 => 20262, 16984 => 20177,
-16985 => 27814, 16986 => 32438, 16987 => 35770, 16988 => 33821, 16989 => 34746,
-16990 => 32599, 16991 => 36923, 16992 => 38179, 16993 => 31657, 16994 => 39585,
-16995 => 35064, 16996 => 33853, 16997 => 27931, 16998 => 39558, 16999 => 32476,
-17000 => 22920, 17001 => 40635, 17002 => 29595, 17003 => 30721, 17004 => 34434,
-17005 => 39532, 17006 => 39554, 17007 => 22043, 17008 => 21527, 17009 => 22475,
-17010 => 20080, 17011 => 40614, 17012 => 21334, 17013 => 36808, 17014 => 33033,
-17015 => 30610, 17016 => 39314, 17017 => 34542, 17018 => 28385, 17019 => 34067,
-17020 => 26364, 17021 => 24930, 17022 => 28459, 17185 => 35881, 17186 => 33426,
-17187 => 33579, 17188 => 30450, 17189 => 27667, 17190 => 24537, 17191 => 33725,
-17192 => 29483, 17193 => 33541, 17194 => 38170, 17195 => 27611, 17196 => 30683,
-17197 => 38086, 17198 => 21359, 17199 => 33538, 17200 => 20882, 17201 => 24125,
-17202 => 35980, 17203 => 36152, 17204 => 20040, 17205 => 29611, 17206 => 26522,
-17207 => 26757, 17208 => 37238, 17209 => 38665, 17210 => 29028, 17211 => 27809,
-17212 => 30473, 17213 => 23186, 17214 => 38209, 17215 => 27599, 17216 => 32654,
-17217 => 26151, 17218 => 23504, 17219 => 22969, 17220 => 23194, 17221 => 38376,
-17222 => 38391, 17223 => 20204, 17224 => 33804, 17225 => 33945, 17226 => 27308,
-17227 => 30431, 17228 => 38192, 17229 => 29467, 17230 => 26790, 17231 => 23391,
-17232 => 30511, 17233 => 37274, 17234 => 38753, 17235 => 31964, 17236 => 36855,
-17237 => 35868, 17238 => 24357, 17239 => 31859, 17240 => 31192, 17241 => 35269,
-17242 => 27852, 17243 => 34588, 17244 => 23494, 17245 => 24130, 17246 => 26825,
-17247 => 30496, 17248 => 32501, 17249 => 20885, 17250 => 20813, 17251 => 21193,
-17252 => 23081, 17253 => 32517, 17254 => 38754, 17255 => 33495, 17256 => 25551,
-17257 => 30596, 17258 => 34256, 17259 => 31186, 17260 => 28218, 17261 => 24217,
-17262 => 22937, 17263 => 34065, 17264 => 28781, 17265 => 27665, 17266 => 25279,
-17267 => 30399, 17268 => 25935, 17269 => 24751, 17270 => 38397, 17271 => 26126,
-17272 => 34719, 17273 => 40483, 17274 => 38125, 17275 => 21517, 17276 => 21629,
-17277 => 35884, 17278 => 25720, 17441 => 25721, 17442 => 34321, 17443 => 27169,
-17444 => 33180, 17445 => 30952, 17446 => 25705, 17447 => 39764, 17448 => 25273,
-17449 => 26411, 17450 => 33707, 17451 => 22696, 17452 => 40664, 17453 => 27819,
-17454 => 28448, 17455 => 23518, 17456 => 38476, 17457 => 35851, 17458 => 29279,
-17459 => 26576, 17460 => 25287, 17461 => 29281, 17462 => 20137, 17463 => 22982,
-17464 => 27597, 17465 => 22675, 17466 => 26286, 17467 => 24149, 17468 => 21215,
-17469 => 24917, 17470 => 26408, 17471 => 30446, 17472 => 30566, 17473 => 29287,
-17474 => 31302, 17475 => 25343, 17476 => 21738, 17477 => 21584, 17478 => 38048,
-17479 => 37027, 17480 => 23068, 17481 => 32435, 17482 => 27670, 17483 => 20035,
-17484 => 22902, 17485 => 32784, 17486 => 22856, 17487 => 21335, 17488 => 30007,
-17489 => 38590, 17490 => 22218, 17491 => 25376, 17492 => 33041, 17493 => 24700,
-17494 => 38393, 17495 => 28118, 17496 => 21602, 17497 => 39297, 17498 => 20869,
-17499 => 23273, 17500 => 33021, 17501 => 22958, 17502 => 38675, 17503 => 20522,
-17504 => 27877, 17505 => 23612, 17506 => 25311, 17507 => 20320, 17508 => 21311,
-17509 => 33147, 17510 => 36870, 17511 => 28346, 17512 => 34091, 17513 => 25288,
-17514 => 24180, 17515 => 30910, 17516 => 25781, 17517 => 25467, 17518 => 24565,
-17519 => 23064, 17520 => 37247, 17521 => 40479, 17522 => 23615, 17523 => 25423,
-17524 => 32834, 17525 => 23421, 17526 => 21870, 17527 => 38218, 17528 => 38221,
-17529 => 28037, 17530 => 24744, 17531 => 26592, 17532 => 29406, 17533 => 20957,
-17534 => 23425, 17697 => 25319, 17698 => 27870, 17699 => 29275, 17700 => 25197,
-17701 => 38062, 17702 => 32445, 17703 => 33043, 17704 => 27987, 17705 => 20892,
-17706 => 24324, 17707 => 22900, 17708 => 21162, 17709 => 24594, 17710 => 22899,
-17711 => 26262, 17712 => 34384, 17713 => 30111, 17714 => 25386, 17715 => 25062,
-17716 => 31983, 17717 => 35834, 17718 => 21734, 17719 => 27431, 17720 => 40485,
-17721 => 27572, 17722 => 34261, 17723 => 21589, 17724 => 20598, 17725 => 27812,
-17726 => 21866, 17727 => 36276, 17728 => 29228, 17729 => 24085, 17730 => 24597,
-17731 => 29750, 17732 => 25293, 17733 => 25490, 17734 => 29260, 17735 => 24472,
-17736 => 28227, 17737 => 27966, 17738 => 25856, 17739 => 28504, 17740 => 30424,
-17741 => 30928, 17742 => 30460, 17743 => 30036, 17744 => 21028, 17745 => 21467,
-17746 => 20051, 17747 => 24222, 17748 => 26049, 17749 => 32810, 17750 => 32982,
-17751 => 25243, 17752 => 21638, 17753 => 21032, 17754 => 28846, 17755 => 34957,
-17756 => 36305, 17757 => 27873, 17758 => 21624, 17759 => 32986, 17760 => 22521,
-17761 => 35060, 17762 => 36180, 17763 => 38506, 17764 => 37197, 17765 => 20329,
-17766 => 27803, 17767 => 21943, 17768 => 30406, 17769 => 30768, 17770 => 25256,
-17771 => 28921, 17772 => 28558, 17773 => 24429, 17774 => 34028, 17775 => 26842,
-17776 => 30844, 17777 => 31735, 17778 => 33192, 17779 => 26379, 17780 => 40527,
-17781 => 25447, 17782 => 30896, 17783 => 22383, 17784 => 30738, 17785 => 38713,
-17786 => 25209, 17787 => 25259, 17788 => 21128, 17789 => 29749, 17790 => 27607,
-17953 => 21860, 17954 => 33086, 17955 => 30130, 17956 => 30382, 17957 => 21305,
-17958 => 30174, 17959 => 20731, 17960 => 23617, 17961 => 35692, 17962 => 31687,
-17963 => 20559, 17964 => 29255, 17965 => 39575, 17966 => 39128, 17967 => 28418,
-17968 => 29922, 17969 => 31080, 17970 => 25735, 17971 => 30629, 17972 => 25340,
-17973 => 39057, 17974 => 36139, 17975 => 21697, 17976 => 32856, 17977 => 20050,
-17978 => 22378, 17979 => 33529, 17980 => 33805, 17981 => 24179, 17982 => 20973,
-17983 => 29942, 17984 => 35780, 17985 => 23631, 17986 => 22369, 17987 => 27900,
-17988 => 39047, 17989 => 23110, 17990 => 30772, 17991 => 39748, 17992 => 36843,
-17993 => 31893, 17994 => 21078, 17995 => 25169, 17996 => 38138, 17997 => 20166,
-17998 => 33670, 17999 => 33889, 18000 => 33769, 18001 => 33970, 18002 => 22484,
-18003 => 26420, 18004 => 22275, 18005 => 26222, 18006 => 28006, 18007 => 35889,
-18008 => 26333, 18009 => 28689, 18010 => 26399, 18011 => 27450, 18012 => 26646,
-18013 => 25114, 18014 => 22971, 18015 => 19971, 18016 => 20932, 18017 => 28422,
-18018 => 26578, 18019 => 27791, 18020 => 20854, 18021 => 26827, 18022 => 22855,
-18023 => 27495, 18024 => 30054, 18025 => 23822, 18026 => 33040, 18027 => 40784,
-18028 => 26071, 18029 => 31048, 18030 => 31041, 18031 => 39569, 18032 => 36215,
-18033 => 23682, 18034 => 20062, 18035 => 20225, 18036 => 21551, 18037 => 22865,
-18038 => 30732, 18039 => 22120, 18040 => 27668, 18041 => 36804, 18042 => 24323,
-18043 => 27773, 18044 => 27875, 18045 => 35755, 18046 => 25488, 18209 => 24688,
-18210 => 27965, 18211 => 29301, 18212 => 25190, 18213 => 38030, 18214 => 38085,
-18215 => 21315, 18216 => 36801, 18217 => 31614, 18218 => 20191, 18219 => 35878,
-18220 => 20094, 18221 => 40660, 18222 => 38065, 18223 => 38067, 18224 => 21069,
-18225 => 28508, 18226 => 36963, 18227 => 27973, 18228 => 35892, 18229 => 22545,
-18230 => 23884, 18231 => 27424, 18232 => 27465, 18233 => 26538, 18234 => 21595,
-18235 => 33108, 18236 => 32652, 18237 => 22681, 18238 => 34103, 18239 => 24378,
-18240 => 25250, 18241 => 27207, 18242 => 38201, 18243 => 25970, 18244 => 24708,
-18245 => 26725, 18246 => 30631, 18247 => 20052, 18248 => 20392, 18249 => 24039,
-18250 => 38808, 18251 => 25772, 18252 => 32728, 18253 => 23789, 18254 => 20431,
-18255 => 31373, 18256 => 20999, 18257 => 33540, 18258 => 19988, 18259 => 24623,
-18260 => 31363, 18261 => 38054, 18262 => 20405, 18263 => 20146, 18264 => 31206,
-18265 => 29748, 18266 => 21220, 18267 => 33465, 18268 => 25810, 18269 => 31165,
-18270 => 23517, 18271 => 27777, 18272 => 38738, 18273 => 36731, 18274 => 27682,
-18275 => 20542, 18276 => 21375, 18277 => 28165, 18278 => 25806, 18279 => 26228,
-18280 => 27696, 18281 => 24773, 18282 => 39031, 18283 => 35831, 18284 => 24198,
-18285 => 29756, 18286 => 31351, 18287 => 31179, 18288 => 19992, 18289 => 37041,
-18290 => 29699, 18291 => 27714, 18292 => 22234, 18293 => 37195, 18294 => 27845,
-18295 => 36235, 18296 => 21306, 18297 => 34502, 18298 => 26354, 18299 => 36527,
-18300 => 23624, 18301 => 39537, 18302 => 28192, 18465 => 21462, 18466 => 23094,
-18467 => 40843, 18468 => 36259, 18469 => 21435, 18470 => 22280, 18471 => 39079,
-18472 => 26435, 18473 => 37275, 18474 => 27849, 18475 => 20840, 18476 => 30154,
-18477 => 25331, 18478 => 29356, 18479 => 21048, 18480 => 21149, 18481 => 32570,
-18482 => 28820, 18483 => 30264, 18484 => 21364, 18485 => 40522, 18486 => 27063,
-18487 => 30830, 18488 => 38592, 18489 => 35033, 18490 => 32676, 18491 => 28982,
-18492 => 29123, 18493 => 20873, 18494 => 26579, 18495 => 29924, 18496 => 22756,
-18497 => 25880, 18498 => 22199, 18499 => 35753, 18500 => 39286, 18501 => 25200,
-18502 => 32469, 18503 => 24825, 18504 => 28909, 18505 => 22764, 18506 => 20161,
-18507 => 20154, 18508 => 24525, 18509 => 38887, 18510 => 20219, 18511 => 35748,
-18512 => 20995, 18513 => 22922, 18514 => 32427, 18515 => 25172, 18516 => 20173,
-18517 => 26085, 18518 => 25102, 18519 => 33592, 18520 => 33993, 18521 => 33635,
-18522 => 34701, 18523 => 29076, 18524 => 28342, 18525 => 23481, 18526 => 32466,
-18527 => 20887, 18528 => 25545, 18529 => 26580, 18530 => 32905, 18531 => 33593,
-18532 => 34837, 18533 => 20754, 18534 => 23418, 18535 => 22914, 18536 => 36785,
-18537 => 20083, 18538 => 27741, 18539 => 20837, 18540 => 35109, 18541 => 36719,
-18542 => 38446, 18543 => 34122, 18544 => 29790, 18545 => 38160, 18546 => 38384,
-18547 => 28070, 18548 => 33509, 18549 => 24369, 18550 => 25746, 18551 => 27922,
-18552 => 33832, 18553 => 33134, 18554 => 40131, 18555 => 22622, 18556 => 36187,
-18557 => 19977, 18558 => 21441, 18721 => 20254, 18722 => 25955, 18723 => 26705,
-18724 => 21971, 18725 => 20007, 18726 => 25620, 18727 => 39578, 18728 => 25195,
-18729 => 23234, 18730 => 29791, 18731 => 33394, 18732 => 28073, 18733 => 26862,
-18734 => 20711, 18735 => 33678, 18736 => 30722, 18737 => 26432, 18738 => 21049,
-18739 => 27801, 18740 => 32433, 18741 => 20667, 18742 => 21861, 18743 => 29022,
-18744 => 31579, 18745 => 26194, 18746 => 29642, 18747 => 33515, 18748 => 26441,
-18749 => 23665, 18750 => 21024, 18751 => 29053, 18752 => 34923, 18753 => 38378,
-18754 => 38485, 18755 => 25797, 18756 => 36193, 18757 => 33203, 18758 => 21892,
-18759 => 27733, 18760 => 25159, 18761 => 32558, 18762 => 22674, 18763 => 20260,
-18764 => 21830, 18765 => 36175, 18766 => 26188, 18767 => 19978, 18768 => 23578,
-18769 => 35059, 18770 => 26786, 18771 => 25422, 18772 => 31245, 18773 => 28903,
-18774 => 33421, 18775 => 21242, 18776 => 38902, 18777 => 23569, 18778 => 21736,
-18779 => 37045, 18780 => 32461, 18781 => 22882, 18782 => 36170, 18783 => 34503,
-18784 => 33292, 18785 => 33293, 18786 => 36198, 18787 => 25668, 18788 => 23556,
-18789 => 24913, 18790 => 28041, 18791 => 31038, 18792 => 35774, 18793 => 30775,
-18794 => 30003, 18795 => 21627, 18796 => 20280, 18797 => 36523, 18798 => 28145,
-18799 => 23072, 18800 => 32453, 18801 => 31070, 18802 => 27784, 18803 => 23457,
-18804 => 23158, 18805 => 29978, 18806 => 32958, 18807 => 24910, 18808 => 28183,
-18809 => 22768, 18810 => 29983, 18811 => 29989, 18812 => 29298, 18813 => 21319,
-18814 => 32499, 18977 => 30465, 18978 => 30427, 18979 => 21097, 18980 => 32988,
-18981 => 22307, 18982 => 24072, 18983 => 22833, 18984 => 29422, 18985 => 26045,
-18986 => 28287, 18987 => 35799, 18988 => 23608, 18989 => 34417, 18990 => 21313,
-18991 => 30707, 18992 => 25342, 18993 => 26102, 18994 => 20160, 18995 => 39135,
-18996 => 34432, 18997 => 23454, 18998 => 35782, 18999 => 21490, 19000 => 30690,
-19001 => 20351, 19002 => 23630, 19003 => 39542, 19004 => 22987, 19005 => 24335,
-19006 => 31034, 19007 => 22763, 19008 => 19990, 19009 => 26623, 19010 => 20107,
-19011 => 25325, 19012 => 35475, 19013 => 36893, 19014 => 21183, 19015 => 26159,
-19016 => 21980, 19017 => 22124, 19018 => 36866, 19019 => 20181, 19020 => 20365,
-19021 => 37322, 19022 => 39280, 19023 => 27663, 19024 => 24066, 19025 => 24643,
-19026 => 23460, 19027 => 35270, 19028 => 35797, 19029 => 25910, 19030 => 25163,
-19031 => 39318, 19032 => 23432, 19033 => 23551, 19034 => 25480, 19035 => 21806,
-19036 => 21463, 19037 => 30246, 19038 => 20861, 19039 => 34092, 19040 => 26530,
-19041 => 26803, 19042 => 27530, 19043 => 25234, 19044 => 36755, 19045 => 21460,
-19046 => 33298, 19047 => 28113, 19048 => 30095, 19049 => 20070, 19050 => 36174,
-19051 => 23408, 19052 => 29087, 19053 => 34223, 19054 => 26257, 19055 => 26329,
-19056 => 32626, 19057 => 34560, 19058 => 40653, 19059 => 40736, 19060 => 23646,
-19061 => 26415, 19062 => 36848, 19063 => 26641, 19064 => 26463, 19065 => 25101,
-19066 => 31446, 19067 => 22661, 19068 => 24246, 19069 => 25968, 19070 => 28465,
-19233 => 24661, 19234 => 21047, 19235 => 32781, 19236 => 25684, 19237 => 34928,
-19238 => 29993, 19239 => 24069, 19240 => 26643, 19241 => 25332, 19242 => 38684,
-19243 => 21452, 19244 => 29245, 19245 => 35841, 19246 => 27700, 19247 => 30561,
-19248 => 31246, 19249 => 21550, 19250 => 30636, 19251 => 39034, 19252 => 33308,
-19253 => 35828, 19254 => 30805, 19255 => 26388, 19256 => 28865, 19257 => 26031,
-19258 => 25749, 19259 => 22070, 19260 => 24605, 19261 => 31169, 19262 => 21496,
-19263 => 19997, 19264 => 27515, 19265 => 32902, 19266 => 23546, 19267 => 21987,
-19268 => 22235, 19269 => 20282, 19270 => 20284, 19271 => 39282, 19272 => 24051,
-19273 => 26494, 19274 => 32824, 19275 => 24578, 19276 => 39042, 19277 => 36865,
-19278 => 23435, 19279 => 35772, 19280 => 35829, 19281 => 25628, 19282 => 33368,
-19283 => 25822, 19284 => 22013, 19285 => 33487, 19286 => 37221, 19287 => 20439,
-19288 => 32032, 19289 => 36895, 19290 => 31903, 19291 => 20723, 19292 => 22609,
-19293 => 28335, 19294 => 23487, 19295 => 35785, 19296 => 32899, 19297 => 37240,
-19298 => 33948, 19299 => 31639, 19300 => 34429, 19301 => 38539, 19302 => 38543,
-19303 => 32485, 19304 => 39635, 19305 => 30862, 19306 => 23681, 19307 => 31319,
-19308 => 36930, 19309 => 38567, 19310 => 31071, 19311 => 23385, 19312 => 25439,
-19313 => 31499, 19314 => 34001, 19315 => 26797, 19316 => 21766, 19317 => 32553,
-19318 => 29712, 19319 => 32034, 19320 => 38145, 19321 => 25152, 19322 => 22604,
-19323 => 20182, 19324 => 23427, 19325 => 22905, 19326 => 22612, 19489 => 29549,
-19490 => 25374, 19491 => 36427, 19492 => 36367, 19493 => 32974, 19494 => 33492,
-19495 => 25260, 19496 => 21488, 19497 => 27888, 19498 => 37214, 19499 => 22826,
-19500 => 24577, 19501 => 27760, 19502 => 22349, 19503 => 25674, 19504 => 36138,
-19505 => 30251, 19506 => 28393, 19507 => 22363, 19508 => 27264, 19509 => 30192,
-19510 => 28525, 19511 => 35885, 19512 => 35848, 19513 => 22374, 19514 => 27631,
-19515 => 34962, 19516 => 30899, 19517 => 25506, 19518 => 21497, 19519 => 28845,
-19520 => 27748, 19521 => 22616, 19522 => 25642, 19523 => 22530, 19524 => 26848,
-19525 => 33179, 19526 => 21776, 19527 => 31958, 19528 => 20504, 19529 => 36538,
-19530 => 28108, 19531 => 36255, 19532 => 28907, 19533 => 25487, 19534 => 28059,
-19535 => 28372, 19536 => 32486, 19537 => 33796, 19538 => 26691, 19539 => 36867,
-19540 => 28120, 19541 => 38518, 19542 => 35752, 19543 => 22871, 19544 => 29305,
-19545 => 34276, 19546 => 33150, 19547 => 30140, 19548 => 35466, 19549 => 26799,
-19550 => 21076, 19551 => 36386, 19552 => 38161, 19553 => 25552, 19554 => 39064,
-19555 => 36420, 19556 => 21884, 19557 => 20307, 19558 => 26367, 19559 => 22159,
-19560 => 24789, 19561 => 28053, 19562 => 21059, 19563 => 23625, 19564 => 22825,
-19565 => 28155, 19566 => 22635, 19567 => 30000, 19568 => 29980, 19569 => 24684,
-19570 => 33300, 19571 => 33094, 19572 => 25361, 19573 => 26465, 19574 => 36834,
-19575 => 30522, 19576 => 36339, 19577 => 36148, 19578 => 38081, 19579 => 24086,
-19580 => 21381, 19581 => 21548, 19582 => 28867, 19745 => 27712, 19746 => 24311,
-19747 => 20572, 19748 => 20141, 19749 => 24237, 19750 => 25402, 19751 => 33351,
-19752 => 36890, 19753 => 26704, 19754 => 37230, 19755 => 30643, 19756 => 21516,
-19757 => 38108, 19758 => 24420, 19759 => 31461, 19760 => 26742, 19761 => 25413,
-19762 => 31570, 19763 => 32479, 19764 => 30171, 19765 => 20599, 19766 => 25237,
-19767 => 22836, 19768 => 36879, 19769 => 20984, 19770 => 31171, 19771 => 31361,
-19772 => 22270, 19773 => 24466, 19774 => 36884, 19775 => 28034, 19776 => 23648,
-19777 => 22303, 19778 => 21520, 19779 => 20820, 19780 => 28237, 19781 => 22242,
-19782 => 25512, 19783 => 39059, 19784 => 33151, 19785 => 34581, 19786 => 35114,
-19787 => 36864, 19788 => 21534, 19789 => 23663, 19790 => 33216, 19791 => 25302,
-19792 => 25176, 19793 => 33073, 19794 => 40501, 19795 => 38464, 19796 => 39534,
-19797 => 39548, 19798 => 26925, 19799 => 22949, 19800 => 25299, 19801 => 21822,
-19802 => 25366, 19803 => 21703, 19804 => 34521, 19805 => 27964, 19806 => 23043,
-19807 => 29926, 19808 => 34972, 19809 => 27498, 19810 => 22806, 19811 => 35916,
-19812 => 24367, 19813 => 28286, 19814 => 29609, 19815 => 39037, 19816 => 20024,
-19817 => 28919, 19818 => 23436, 19819 => 30871, 19820 => 25405, 19821 => 26202,
-19822 => 30358, 19823 => 24779, 19824 => 23451, 19825 => 23113, 19826 => 19975,
-19827 => 33109, 19828 => 27754, 19829 => 29579, 19830 => 20129, 19831 => 26505,
-19832 => 32593, 19833 => 24448, 19834 => 26106, 19835 => 26395, 19836 => 24536,
-19837 => 22916, 19838 => 23041, 20001 => 24013, 20002 => 24494, 20003 => 21361,
-20004 => 38886, 20005 => 36829, 20006 => 26693, 20007 => 22260, 20008 => 21807,
-20009 => 24799, 20010 => 20026, 20011 => 28493, 20012 => 32500, 20013 => 33479,
-20014 => 33806, 20015 => 22996, 20016 => 20255, 20017 => 20266, 20018 => 23614,
-20019 => 32428, 20020 => 26410, 20021 => 34074, 20022 => 21619, 20023 => 30031,
-20024 => 32963, 20025 => 21890, 20026 => 39759, 20027 => 20301, 20028 => 28205,
-20029 => 35859, 20030 => 23561, 20031 => 24944, 20032 => 21355, 20033 => 30239,
-20034 => 28201, 20035 => 34442, 20036 => 25991, 20037 => 38395, 20038 => 32441,
-20039 => 21563, 20040 => 31283, 20041 => 32010, 20042 => 38382, 20043 => 21985,
-20044 => 32705, 20045 => 29934, 20046 => 25373, 20047 => 34583, 20048 => 28065,
-20049 => 31389, 20050 => 25105, 20051 => 26017, 20052 => 21351, 20053 => 25569,
-20054 => 27779, 20055 => 24043, 20056 => 21596, 20057 => 38056, 20058 => 20044,
-20059 => 27745, 20060 => 35820, 20061 => 23627, 20062 => 26080, 20063 => 33436,
-20064 => 26791, 20065 => 21566, 20066 => 21556, 20067 => 27595, 20068 => 27494,
-20069 => 20116, 20070 => 25410, 20071 => 21320, 20072 => 33310, 20073 => 20237,
-20074 => 20398, 20075 => 22366, 20076 => 25098, 20077 => 38654, 20078 => 26212,
-20079 => 29289, 20080 => 21247, 20081 => 21153, 20082 => 24735, 20083 => 35823,
-20084 => 26132, 20085 => 29081, 20086 => 26512, 20087 => 35199, 20088 => 30802,
-20089 => 30717, 20090 => 26224, 20091 => 22075, 20092 => 21560, 20093 => 38177,
-20094 => 29306, 20257 => 31232, 20258 => 24687, 20259 => 24076, 20260 => 24713,
-20261 => 33181, 20262 => 22805, 20263 => 24796, 20264 => 29060, 20265 => 28911,
-20266 => 28330, 20267 => 27728, 20268 => 29312, 20269 => 27268, 20270 => 34989,
-20271 => 24109, 20272 => 20064, 20273 => 23219, 20274 => 21916, 20275 => 38115,
-20276 => 27927, 20277 => 31995, 20278 => 38553, 20279 => 25103, 20280 => 32454,
-20281 => 30606, 20282 => 34430, 20283 => 21283, 20284 => 38686, 20285 => 36758,
-20286 => 26247, 20287 => 23777, 20288 => 20384, 20289 => 29421, 20290 => 19979,
-20291 => 21414, 20292 => 22799, 20293 => 21523, 20294 => 25472, 20295 => 38184,
-20296 => 20808, 20297 => 20185, 20298 => 40092, 20299 => 32420, 20300 => 21688,
-20301 => 36132, 20302 => 34900, 20303 => 33335, 20304 => 38386, 20305 => 28046,
-20306 => 24358, 20307 => 23244, 20308 => 26174, 20309 => 38505, 20310 => 29616,
-20311 => 29486, 20312 => 21439, 20313 => 33146, 20314 => 39301, 20315 => 32673,
-20316 => 23466, 20317 => 38519, 20318 => 38480, 20319 => 32447, 20320 => 30456,
-20321 => 21410, 20322 => 38262, 20323 => 39321, 20324 => 31665, 20325 => 35140,
-20326 => 28248, 20327 => 20065, 20328 => 32724, 20329 => 31077, 20330 => 35814,
-20331 => 24819, 20332 => 21709, 20333 => 20139, 20334 => 39033, 20335 => 24055,
-20336 => 27233, 20337 => 20687, 20338 => 21521, 20339 => 35937, 20340 => 33831,
-20341 => 30813, 20342 => 38660, 20343 => 21066, 20344 => 21742, 20345 => 22179,
-20346 => 38144, 20347 => 28040, 20348 => 23477, 20349 => 28102, 20350 => 26195,
-20513 => 23567, 20514 => 23389, 20515 => 26657, 20516 => 32918, 20517 => 21880,
-20518 => 31505, 20519 => 25928, 20520 => 26964, 20521 => 20123, 20522 => 27463,
-20523 => 34638, 20524 => 38795, 20525 => 21327, 20526 => 25375, 20527 => 25658,
-20528 => 37034, 20529 => 26012, 20530 => 32961, 20531 => 35856, 20532 => 20889,
-20533 => 26800, 20534 => 21368, 20535 => 34809, 20536 => 25032, 20537 => 27844,
-20538 => 27899, 20539 => 35874, 20540 => 23633, 20541 => 34218, 20542 => 33455,
-20543 => 38156, 20544 => 27427, 20545 => 36763, 20546 => 26032, 20547 => 24571,
-20548 => 24515, 20549 => 20449, 20550 => 34885, 20551 => 26143, 20552 => 33125,
-20553 => 29481, 20554 => 24826, 20555 => 20852, 20556 => 21009, 20557 => 22411,
-20558 => 24418, 20559 => 37026, 20560 => 34892, 20561 => 37266, 20562 => 24184,
-20563 => 26447, 20564 => 24615, 20565 => 22995, 20566 => 20804, 20567 => 20982,
-20568 => 33016, 20569 => 21256, 20570 => 27769, 20571 => 38596, 20572 => 29066,
-20573 => 20241, 20574 => 20462, 20575 => 32670, 20576 => 26429, 20577 => 21957,
-20578 => 38152, 20579 => 31168, 20580 => 34966, 20581 => 32483, 20582 => 22687,
-20583 => 25100, 20584 => 38656, 20585 => 34394, 20586 => 22040, 20587 => 39035,
-20588 => 24464, 20589 => 35768, 20590 => 33988, 20591 => 37207, 20592 => 21465,
-20593 => 26093, 20594 => 24207, 20595 => 30044, 20596 => 24676, 20597 => 32110,
-20598 => 23167, 20599 => 32490, 20600 => 32493, 20601 => 36713, 20602 => 21927,
-20603 => 23459, 20604 => 24748, 20605 => 26059, 20606 => 29572, 20769 => 36873,
-20770 => 30307, 20771 => 30505, 20772 => 32474, 20773 => 38772, 20774 => 34203,
-20775 => 23398, 20776 => 31348, 20777 => 38634, 20778 => 34880, 20779 => 21195,
-20780 => 29071, 20781 => 24490, 20782 => 26092, 20783 => 35810, 20784 => 23547,
-20785 => 39535, 20786 => 24033, 20787 => 27529, 20788 => 27739, 20789 => 35757,
-20790 => 35759, 20791 => 36874, 20792 => 36805, 20793 => 21387, 20794 => 25276,
-20795 => 40486, 20796 => 40493, 20797 => 21568, 20798 => 20011, 20799 => 33469,
-20800 => 29273, 20801 => 34460, 20802 => 23830, 20803 => 34905, 20804 => 28079,
-20805 => 38597, 20806 => 21713, 20807 => 20122, 20808 => 35766, 20809 => 28937,
-20810 => 21693, 20811 => 38409, 20812 => 28895, 20813 => 28153, 20814 => 30416,
-20815 => 20005, 20816 => 30740, 20817 => 34578, 20818 => 23721, 20819 => 24310,
-20820 => 35328, 20821 => 39068, 20822 => 38414, 20823 => 28814, 20824 => 27839,
-20825 => 22852, 20826 => 25513, 20827 => 30524, 20828 => 34893, 20829 => 28436,
-20830 => 33395, 20831 => 22576, 20832 => 29141, 20833 => 21388, 20834 => 30746,
-20835 => 38593, 20836 => 21761, 20837 => 24422, 20838 => 28976, 20839 => 23476,
-20840 => 35866, 20841 => 39564, 20842 => 27523, 20843 => 22830, 20844 => 40495,
-20845 => 31207, 20846 => 26472, 20847 => 25196, 20848 => 20335, 20849 => 30113,
-20850 => 32650, 20851 => 27915, 20852 => 38451, 20853 => 27687, 20854 => 20208,
-20855 => 30162, 20856 => 20859, 20857 => 26679, 20858 => 28478, 20859 => 36992,
-20860 => 33136, 20861 => 22934, 20862 => 29814, 21025 => 25671, 21026 => 23591,
-21027 => 36965, 21028 => 31377, 21029 => 35875, 21030 => 23002, 21031 => 21676,
-21032 => 33280, 21033 => 33647, 21034 => 35201, 21035 => 32768, 21036 => 26928,
-21037 => 22094, 21038 => 32822, 21039 => 29239, 21040 => 37326, 21041 => 20918,
-21042 => 20063, 21043 => 39029, 21044 => 25494, 21045 => 19994, 21046 => 21494,
-21047 => 26355, 21048 => 33099, 21049 => 22812, 21050 => 28082, 21051 => 19968,
-21052 => 22777, 21053 => 21307, 21054 => 25558, 21055 => 38129, 21056 => 20381,
-21057 => 20234, 21058 => 34915, 21059 => 39056, 21060 => 22839, 21061 => 36951,
-21062 => 31227, 21063 => 20202, 21064 => 33008, 21065 => 30097, 21066 => 27778,
-21067 => 23452, 21068 => 23016, 21069 => 24413, 21070 => 26885, 21071 => 34433,
-21072 => 20506, 21073 => 24050, 21074 => 20057, 21075 => 30691, 21076 => 20197,
-21077 => 33402, 21078 => 25233, 21079 => 26131, 21080 => 37009, 21081 => 23673,
-21082 => 20159, 21083 => 24441, 21084 => 33222, 21085 => 36920, 21086 => 32900,
-21087 => 30123, 21088 => 20134, 21089 => 35028, 21090 => 24847, 21091 => 27589,
-21092 => 24518, 21093 => 20041, 21094 => 30410, 21095 => 28322, 21096 => 35811,
-21097 => 35758, 21098 => 35850, 21099 => 35793, 21100 => 24322, 21101 => 32764,
-21102 => 32716, 21103 => 32462, 21104 => 33589, 21105 => 33643, 21106 => 22240,
-21107 => 27575, 21108 => 38899, 21109 => 38452, 21110 => 23035, 21111 => 21535,
-21112 => 38134, 21113 => 28139, 21114 => 23493, 21115 => 39278, 21116 => 23609,
-21117 => 24341, 21118 => 38544, 21281 => 21360, 21282 => 33521, 21283 => 27185,
-21284 => 23156, 21285 => 40560, 21286 => 24212, 21287 => 32552, 21288 => 33721,
-21289 => 33828, 21290 => 33829, 21291 => 33639, 21292 => 34631, 21293 => 36814,
-21294 => 36194, 21295 => 30408, 21296 => 24433, 21297 => 39062, 21298 => 30828,
-21299 => 26144, 21300 => 21727, 21301 => 25317, 21302 => 20323, 21303 => 33219,
-21304 => 30152, 21305 => 24248, 21306 => 38605, 21307 => 36362, 21308 => 34553,
-21309 => 21647, 21310 => 27891, 21311 => 28044, 21312 => 27704, 21313 => 24703,
-21314 => 21191, 21315 => 29992, 21316 => 24189, 21317 => 20248, 21318 => 24736,
-21319 => 24551, 21320 => 23588, 21321 => 30001, 21322 => 37038, 21323 => 38080,
-21324 => 29369, 21325 => 27833, 21326 => 28216, 21327 => 37193, 21328 => 26377,
-21329 => 21451, 21330 => 21491, 21331 => 20305, 21332 => 37321, 21333 => 35825,
-21334 => 21448, 21335 => 24188, 21336 => 36802, 21337 => 28132, 21338 => 20110,
-21339 => 30402, 21340 => 27014, 21341 => 34398, 21342 => 24858, 21343 => 33286,
-21344 => 20313, 21345 => 20446, 21346 => 36926, 21347 => 40060, 21348 => 24841,
-21349 => 28189, 21350 => 28180, 21351 => 38533, 21352 => 20104, 21353 => 23089,
-21354 => 38632, 21355 => 19982, 21356 => 23679, 21357 => 31161, 21358 => 23431,
-21359 => 35821, 21360 => 32701, 21361 => 29577, 21362 => 22495, 21363 => 33419,
-21364 => 37057, 21365 => 21505, 21366 => 36935, 21367 => 21947, 21368 => 23786,
-21369 => 24481, 21370 => 24840, 21371 => 27442, 21372 => 29425, 21373 => 32946,
-21374 => 35465, 21537 => 28020, 21538 => 23507, 21539 => 35029, 21540 => 39044,
-21541 => 35947, 21542 => 39533, 21543 => 40499, 21544 => 28170, 21545 => 20900,
-21546 => 20803, 21547 => 22435, 21548 => 34945, 21549 => 21407, 21550 => 25588,
-21551 => 36757, 21552 => 22253, 21553 => 21592, 21554 => 22278, 21555 => 29503,
-21556 => 28304, 21557 => 32536, 21558 => 36828, 21559 => 33489, 21560 => 24895,
-21561 => 24616, 21562 => 38498, 21563 => 26352, 21564 => 32422, 21565 => 36234,
-21566 => 36291, 21567 => 38053, 21568 => 23731, 21569 => 31908, 21570 => 26376,
-21571 => 24742, 21572 => 38405, 21573 => 32792, 21574 => 20113, 21575 => 37095,
-21576 => 21248, 21577 => 38504, 21578 => 20801, 21579 => 36816, 21580 => 34164,
-21581 => 37213, 21582 => 26197, 21583 => 38901, 21584 => 23381, 21585 => 21277,
-21586 => 30776, 21587 => 26434, 21588 => 26685, 21589 => 21705, 21590 => 28798,
-21591 => 23472, 21592 => 36733, 21593 => 20877, 21594 => 22312, 21595 => 21681,
-21596 => 25874, 21597 => 26242, 21598 => 36190, 21599 => 36163, 21600 => 33039,
-21601 => 33900, 21602 => 36973, 21603 => 31967, 21604 => 20991, 21605 => 34299,
-21606 => 26531, 21607 => 26089, 21608 => 28577, 21609 => 34468, 21610 => 36481,
-21611 => 22122, 21612 => 36896, 21613 => 30338, 21614 => 28790, 21615 => 29157,
-21616 => 36131, 21617 => 25321, 21618 => 21017, 21619 => 27901, 21620 => 36156,
-21621 => 24590, 21622 => 22686, 21623 => 24974, 21624 => 26366, 21625 => 36192,
-21626 => 25166, 21627 => 21939, 21628 => 28195, 21629 => 26413, 21630 => 36711,
-21793 => 38113, 21794 => 38392, 21795 => 30504, 21796 => 26629, 21797 => 27048,
-21798 => 21643, 21799 => 20045, 21800 => 28856, 21801 => 35784, 21802 => 25688,
-21803 => 25995, 21804 => 23429, 21805 => 31364, 21806 => 20538, 21807 => 23528,
-21808 => 30651, 21809 => 27617, 21810 => 35449, 21811 => 31896, 21812 => 27838,
-21813 => 30415, 21814 => 26025, 21815 => 36759, 21816 => 23853, 21817 => 23637,
-21818 => 34360, 21819 => 26632, 21820 => 21344, 21821 => 25112, 21822 => 31449,
-21823 => 28251, 21824 => 32509, 21825 => 27167, 21826 => 31456, 21827 => 24432,
-21828 => 28467, 21829 => 24352, 21830 => 25484, 21831 => 28072, 21832 => 26454,
-21833 => 19976, 21834 => 24080, 21835 => 36134, 21836 => 20183, 21837 => 32960,
-21838 => 30260, 21839 => 38556, 21840 => 25307, 21841 => 26157, 21842 => 25214,
-21843 => 27836, 21844 => 36213, 21845 => 29031, 21846 => 32617, 21847 => 20806,
-21848 => 32903, 21849 => 21484, 21850 => 36974, 21851 => 25240, 21852 => 21746,
-21853 => 34544, 21854 => 36761, 21855 => 32773, 21856 => 38167, 21857 => 34071,
-21858 => 36825, 21859 => 27993, 21860 => 29645, 21861 => 26015, 21862 => 30495,
-21863 => 29956, 21864 => 30759, 21865 => 33275, 21866 => 36126, 21867 => 38024,
-21868 => 20390, 21869 => 26517, 21870 => 30137, 21871 => 35786, 21872 => 38663,
-21873 => 25391, 21874 => 38215, 21875 => 38453, 21876 => 33976, 21877 => 25379,
-21878 => 30529, 21879 => 24449, 21880 => 29424, 21881 => 20105, 21882 => 24596,
-21883 => 25972, 21884 => 25327, 21885 => 27491, 21886 => 25919, 22049 => 24103,
-22050 => 30151, 22051 => 37073, 22052 => 35777, 22053 => 33437, 22054 => 26525,
-22055 => 25903, 22056 => 21553, 22057 => 34584, 22058 => 30693, 22059 => 32930,
-22060 => 33026, 22061 => 27713, 22062 => 20043, 22063 => 32455, 22064 => 32844,
-22065 => 30452, 22066 => 26893, 22067 => 27542, 22068 => 25191, 22069 => 20540,
-22070 => 20356, 22071 => 22336, 22072 => 25351, 22073 => 27490, 22074 => 36286,
-22075 => 21482, 22076 => 26088, 22077 => 32440, 22078 => 24535, 22079 => 25370,
-22080 => 25527, 22081 => 33267, 22082 => 33268, 22083 => 32622, 22084 => 24092,
-22085 => 23769, 22086 => 21046, 22087 => 26234, 22088 => 31209, 22089 => 31258,
-22090 => 36136, 22091 => 28825, 22092 => 30164, 22093 => 28382, 22094 => 27835,
-22095 => 31378, 22096 => 20013, 22097 => 30405, 22098 => 24544, 22099 => 38047,
-22100 => 34935, 22101 => 32456, 22102 => 31181, 22103 => 32959, 22104 => 37325,
-22105 => 20210, 22106 => 20247, 22107 => 33311, 22108 => 21608, 22109 => 24030,
-22110 => 27954, 22111 => 35788, 22112 => 31909, 22113 => 36724, 22114 => 32920,
-22115 => 24090, 22116 => 21650, 22117 => 30385, 22118 => 23449, 22119 => 26172,
-22120 => 39588, 22121 => 29664, 22122 => 26666, 22123 => 34523, 22124 => 26417,
-22125 => 29482, 22126 => 35832, 22127 => 35803, 22128 => 36880, 22129 => 31481,
-22130 => 28891, 22131 => 29038, 22132 => 25284, 22133 => 30633, 22134 => 22065,
-22135 => 20027, 22136 => 33879, 22137 => 26609, 22138 => 21161, 22139 => 34496,
-22140 => 36142, 22141 => 38136, 22142 => 31569, 22305 => 20303, 22306 => 27880,
-22307 => 31069, 22308 => 39547, 22309 => 25235, 22310 => 29226, 22311 => 25341,
-22312 => 19987, 22313 => 30742, 22314 => 36716, 22315 => 25776, 22316 => 36186,
-22317 => 31686, 22318 => 26729, 22319 => 24196, 22320 => 35013, 22321 => 22918,
-22322 => 25758, 22323 => 22766, 22324 => 29366, 22325 => 26894, 22326 => 38181,
-22327 => 36861, 22328 => 36184, 22329 => 22368, 22330 => 32512, 22331 => 35846,
-22332 => 20934, 22333 => 25417, 22334 => 25305, 22335 => 21331, 22336 => 26700,
-22337 => 29730, 22338 => 33537, 22339 => 37196, 22340 => 21828, 22341 => 30528,
-22342 => 28796, 22343 => 27978, 22344 => 20857, 22345 => 21672, 22346 => 36164,
-22347 => 23039, 22348 => 28363, 22349 => 28100, 22350 => 23388, 22351 => 32043,
-22352 => 20180, 22353 => 31869, 22354 => 28371, 22355 => 23376, 22356 => 33258,
-22357 => 28173, 22358 => 23383, 22359 => 39683, 22360 => 26837, 22361 => 36394,
-22362 => 23447, 22363 => 32508, 22364 => 24635, 22365 => 32437, 22366 => 37049,
-22367 => 36208, 22368 => 22863, 22369 => 25549, 22370 => 31199, 22371 => 36275,
-22372 => 21330, 22373 => 26063, 22374 => 31062, 22375 => 35781, 22376 => 38459,
-22377 => 32452, 22378 => 38075, 22379 => 32386, 22380 => 22068, 22381 => 37257,
-22382 => 26368, 22383 => 32618, 22384 => 23562, 22385 => 36981, 22386 => 26152,
-22387 => 24038, 22388 => 20304, 22389 => 26590, 22390 => 20570, 22391 => 20316,
-22392 => 22352, 22393 => 24231, 22561 => 20109, 22562 => 19980, 22563 => 20800,
-22564 => 19984, 22565 => 24319, 22566 => 21317, 22567 => 19989, 22568 => 20120,
-22569 => 19998, 22570 => 39730, 22571 => 23404, 22572 => 22121, 22573 => 20008,
-22574 => 31162, 22575 => 20031, 22576 => 21269, 22577 => 20039, 22578 => 22829,
-22579 => 29243, 22580 => 21358, 22581 => 27664, 22582 => 22239, 22583 => 32996,
-22584 => 39319, 22585 => 27603, 22586 => 30590, 22587 => 40727, 22588 => 20022,
-22589 => 20127, 22590 => 40720, 22591 => 20060, 22592 => 20073, 22593 => 20115,
-22594 => 33416, 22595 => 23387, 22596 => 21868, 22597 => 22031, 22598 => 20164,
-22599 => 21389, 22600 => 21405, 22601 => 21411, 22602 => 21413, 22603 => 21422,
-22604 => 38757, 22605 => 36189, 22606 => 21274, 22607 => 21493, 22608 => 21286,
-22609 => 21294, 22610 => 21310, 22611 => 36188, 22612 => 21350, 22613 => 21347,
-22614 => 20994, 22615 => 21000, 22616 => 21006, 22617 => 21037, 22618 => 21043,
-22619 => 21055, 22620 => 21056, 22621 => 21068, 22622 => 21086, 22623 => 21089,
-22624 => 21084, 22625 => 33967, 22626 => 21117, 22627 => 21122, 22628 => 21121,
-22629 => 21136, 22630 => 21139, 22631 => 20866, 22632 => 32596, 22633 => 20155,
-22634 => 20163, 22635 => 20169, 22636 => 20162, 22637 => 20200, 22638 => 20193,
-22639 => 20203, 22640 => 20190, 22641 => 20251, 22642 => 20211, 22643 => 20258,
-22644 => 20324, 22645 => 20213, 22646 => 20261, 22647 => 20263, 22648 => 20233,
-22649 => 20267, 22650 => 20318, 22651 => 20327, 22652 => 25912, 22653 => 20314,
-22654 => 20317, 22817 => 20319, 22818 => 20311, 22819 => 20274, 22820 => 20285,
-22821 => 20342, 22822 => 20340, 22823 => 20369, 22824 => 20361, 22825 => 20355,
-22826 => 20367, 22827 => 20350, 22828 => 20347, 22829 => 20394, 22830 => 20348,
-22831 => 20396, 22832 => 20372, 22833 => 20454, 22834 => 20456, 22835 => 20458,
-22836 => 20421, 22837 => 20442, 22838 => 20451, 22839 => 20444, 22840 => 20433,
-22841 => 20447, 22842 => 20472, 22843 => 20521, 22844 => 20556, 22845 => 20467,
-22846 => 20524, 22847 => 20495, 22848 => 20526, 22849 => 20525, 22850 => 20478,
-22851 => 20508, 22852 => 20492, 22853 => 20517, 22854 => 20520, 22855 => 20606,
-22856 => 20547, 22857 => 20565, 22858 => 20552, 22859 => 20558, 22860 => 20588,
-22861 => 20603, 22862 => 20645, 22863 => 20647, 22864 => 20649, 22865 => 20666,
-22866 => 20694, 22867 => 20742, 22868 => 20717, 22869 => 20716, 22870 => 20710,
-22871 => 20718, 22872 => 20743, 22873 => 20747, 22874 => 20189, 22875 => 27709,
-22876 => 20312, 22877 => 20325, 22878 => 20430, 22879 => 40864, 22880 => 27718,
-22881 => 31860, 22882 => 20846, 22883 => 24061, 22884 => 40649, 22885 => 39320,
-22886 => 20865, 22887 => 22804, 22888 => 21241, 22889 => 21261, 22890 => 35335,
-22891 => 21264, 22892 => 20971, 22893 => 22809, 22894 => 20821, 22895 => 20128,
-22896 => 20822, 22897 => 20147, 22898 => 34926, 22899 => 34980, 22900 => 20149,
-22901 => 33044, 22902 => 35026, 22903 => 31104, 22904 => 23348, 22905 => 34819,
-22906 => 32696, 22907 => 20907, 22908 => 20913, 22909 => 20925, 22910 => 20924,
-23073 => 20935, 23074 => 20886, 23075 => 20898, 23076 => 20901, 23077 => 35744,
-23078 => 35750, 23079 => 35751, 23080 => 35754, 23081 => 35764, 23082 => 35765,
-23083 => 35767, 23084 => 35778, 23085 => 35779, 23086 => 35787, 23087 => 35791,
-23088 => 35790, 23089 => 35794, 23090 => 35795, 23091 => 35796, 23092 => 35798,
-23093 => 35800, 23094 => 35801, 23095 => 35804, 23096 => 35807, 23097 => 35808,
-23098 => 35812, 23099 => 35816, 23100 => 35817, 23101 => 35822, 23102 => 35824,
-23103 => 35827, 23104 => 35830, 23105 => 35833, 23106 => 35836, 23107 => 35839,
-23108 => 35840, 23109 => 35842, 23110 => 35844, 23111 => 35847, 23112 => 35852,
-23113 => 35855, 23114 => 35857, 23115 => 35858, 23116 => 35860, 23117 => 35861,
-23118 => 35862, 23119 => 35865, 23120 => 35867, 23121 => 35864, 23122 => 35869,
-23123 => 35871, 23124 => 35872, 23125 => 35873, 23126 => 35877, 23127 => 35879,
-23128 => 35882, 23129 => 35883, 23130 => 35886, 23131 => 35887, 23132 => 35890,
-23133 => 35891, 23134 => 35893, 23135 => 35894, 23136 => 21353, 23137 => 21370,
-23138 => 38429, 23139 => 38434, 23140 => 38433, 23141 => 38449, 23142 => 38442,
-23143 => 38461, 23144 => 38460, 23145 => 38466, 23146 => 38473, 23147 => 38484,
-23148 => 38495, 23149 => 38503, 23150 => 38508, 23151 => 38514, 23152 => 38516,
-23153 => 38536, 23154 => 38541, 23155 => 38551, 23156 => 38576, 23157 => 37015,
-23158 => 37019, 23159 => 37021, 23160 => 37017, 23161 => 37036, 23162 => 37025,
-23163 => 37044, 23164 => 37043, 23165 => 37046, 23166 => 37050, 23329 => 37048,
-23330 => 37040, 23331 => 37071, 23332 => 37061, 23333 => 37054, 23334 => 37072,
-23335 => 37060, 23336 => 37063, 23337 => 37075, 23338 => 37094, 23339 => 37090,
-23340 => 37084, 23341 => 37079, 23342 => 37083, 23343 => 37099, 23344 => 37103,
-23345 => 37118, 23346 => 37124, 23347 => 37154, 23348 => 37150, 23349 => 37155,
-23350 => 37169, 23351 => 37167, 23352 => 37177, 23353 => 37187, 23354 => 37190,
-23355 => 21005, 23356 => 22850, 23357 => 21154, 23358 => 21164, 23359 => 21165,
-23360 => 21182, 23361 => 21759, 23362 => 21200, 23363 => 21206, 23364 => 21232,
-23365 => 21471, 23366 => 29166, 23367 => 30669, 23368 => 24308, 23369 => 20981,
-23370 => 20988, 23371 => 39727, 23372 => 21430, 23373 => 24321, 23374 => 30042,
-23375 => 24047, 23376 => 22348, 23377 => 22441, 23378 => 22433, 23379 => 22654,
-23380 => 22716, 23381 => 22725, 23382 => 22737, 23383 => 22313, 23384 => 22316,
-23385 => 22314, 23386 => 22323, 23387 => 22329, 23388 => 22318, 23389 => 22319,
-23390 => 22364, 23391 => 22331, 23392 => 22338, 23393 => 22377, 23394 => 22405,
-23395 => 22379, 23396 => 22406, 23397 => 22396, 23398 => 22395, 23399 => 22376,
-23400 => 22381, 23401 => 22390, 23402 => 22387, 23403 => 22445, 23404 => 22436,
-23405 => 22412, 23406 => 22450, 23407 => 22479, 23408 => 22439, 23409 => 22452,
-23410 => 22419, 23411 => 22432, 23412 => 22485, 23413 => 22488, 23414 => 22490,
-23415 => 22489, 23416 => 22482, 23417 => 22456, 23418 => 22516, 23419 => 22511,
-23420 => 22520, 23421 => 22500, 23422 => 22493, 23585 => 22539, 23586 => 22541,
-23587 => 22525, 23588 => 22509, 23589 => 22528, 23590 => 22558, 23591 => 22553,
-23592 => 22596, 23593 => 22560, 23594 => 22629, 23595 => 22636, 23596 => 22657,
-23597 => 22665, 23598 => 22682, 23599 => 22656, 23600 => 39336, 23601 => 40729,
-23602 => 25087, 23603 => 33401, 23604 => 33405, 23605 => 33407, 23606 => 33423,
-23607 => 33418, 23608 => 33448, 23609 => 33412, 23610 => 33422, 23611 => 33425,
-23612 => 33431, 23613 => 33433, 23614 => 33451, 23615 => 33464, 23616 => 33470,
-23617 => 33456, 23618 => 33480, 23619 => 33482, 23620 => 33507, 23621 => 33432,
-23622 => 33463, 23623 => 33454, 23624 => 33483, 23625 => 33484, 23626 => 33473,
-23627 => 33449, 23628 => 33460, 23629 => 33441, 23630 => 33450, 23631 => 33439,
-23632 => 33476, 23633 => 33486, 23634 => 33444, 23635 => 33505, 23636 => 33545,
-23637 => 33527, 23638 => 33508, 23639 => 33551, 23640 => 33543, 23641 => 33500,
-23642 => 33524, 23643 => 33490, 23644 => 33496, 23645 => 33548, 23646 => 33531,
-23647 => 33491, 23648 => 33553, 23649 => 33562, 23650 => 33542, 23651 => 33556,
-23652 => 33557, 23653 => 33504, 23654 => 33493, 23655 => 33564, 23656 => 33617,
-23657 => 33627, 23658 => 33628, 23659 => 33544, 23660 => 33682, 23661 => 33596,
-23662 => 33588, 23663 => 33585, 23664 => 33691, 23665 => 33630, 23666 => 33583,
-23667 => 33615, 23668 => 33607, 23669 => 33603, 23670 => 33631, 23671 => 33600,
-23672 => 33559, 23673 => 33632, 23674 => 33581, 23675 => 33594, 23676 => 33587,
-23677 => 33638, 23678 => 33637, 23841 => 33640, 23842 => 33563, 23843 => 33641,
-23844 => 33644, 23845 => 33642, 23846 => 33645, 23847 => 33646, 23848 => 33712,
-23849 => 33656, 23850 => 33715, 23851 => 33716, 23852 => 33696, 23853 => 33706,
-23854 => 33683, 23855 => 33692, 23856 => 33669, 23857 => 33660, 23858 => 33718,
-23859 => 33705, 23860 => 33661, 23861 => 33720, 23862 => 33659, 23863 => 33688,
-23864 => 33694, 23865 => 33704, 23866 => 33722, 23867 => 33724, 23868 => 33729,
-23869 => 33793, 23870 => 33765, 23871 => 33752, 23872 => 22535, 23873 => 33816,
-23874 => 33803, 23875 => 33757, 23876 => 33789, 23877 => 33750, 23878 => 33820,
-23879 => 33848, 23880 => 33809, 23881 => 33798, 23882 => 33748, 23883 => 33759,
-23884 => 33807, 23885 => 33795, 23886 => 33784, 23887 => 33785, 23888 => 33770,
-23889 => 33733, 23890 => 33728, 23891 => 33830, 23892 => 33776, 23893 => 33761,
-23894 => 33884, 23895 => 33873, 23896 => 33882, 23897 => 33881, 23898 => 33907,
-23899 => 33927, 23900 => 33928, 23901 => 33914, 23902 => 33929, 23903 => 33912,
-23904 => 33852, 23905 => 33862, 23906 => 33897, 23907 => 33910, 23908 => 33932,
-23909 => 33934, 23910 => 33841, 23911 => 33901, 23912 => 33985, 23913 => 33997,
-23914 => 34000, 23915 => 34022, 23916 => 33981, 23917 => 34003, 23918 => 33994,
-23919 => 33983, 23920 => 33978, 23921 => 34016, 23922 => 33953, 23923 => 33977,
-23924 => 33972, 23925 => 33943, 23926 => 34021, 23927 => 34019, 23928 => 34060,
-23929 => 29965, 23930 => 34104, 23931 => 34032, 23932 => 34105, 23933 => 34079,
-23934 => 34106, 24097 => 34134, 24098 => 34107, 24099 => 34047, 24100 => 34044,
-24101 => 34137, 24102 => 34120, 24103 => 34152, 24104 => 34148, 24105 => 34142,
-24106 => 34170, 24107 => 30626, 24108 => 34115, 24109 => 34162, 24110 => 34171,
-24111 => 34212, 24112 => 34216, 24113 => 34183, 24114 => 34191, 24115 => 34169,
-24116 => 34222, 24117 => 34204, 24118 => 34181, 24119 => 34233, 24120 => 34231,
-24121 => 34224, 24122 => 34259, 24123 => 34241, 24124 => 34268, 24125 => 34303,
-24126 => 34343, 24127 => 34309, 24128 => 34345, 24129 => 34326, 24130 => 34364,
-24131 => 24318, 24132 => 24328, 24133 => 22844, 24134 => 22849, 24135 => 32823,
-24136 => 22869, 24137 => 22874, 24138 => 22872, 24139 => 21263, 24140 => 23586,
-24141 => 23589, 24142 => 23596, 24143 => 23604, 24144 => 25164, 24145 => 25194,
-24146 => 25247, 24147 => 25275, 24148 => 25290, 24149 => 25306, 24150 => 25303,
-24151 => 25326, 24152 => 25378, 24153 => 25334, 24154 => 25401, 24155 => 25419,
-24156 => 25411, 24157 => 25517, 24158 => 25590, 24159 => 25457, 24160 => 25466,
-24161 => 25486, 24162 => 25524, 24163 => 25453, 24164 => 25516, 24165 => 25482,
-24166 => 25449, 24167 => 25518, 24168 => 25532, 24169 => 25586, 24170 => 25592,
-24171 => 25568, 24172 => 25599, 24173 => 25540, 24174 => 25566, 24175 => 25550,
-24176 => 25682, 24177 => 25542, 24178 => 25534, 24179 => 25669, 24180 => 25665,
-24181 => 25611, 24182 => 25627, 24183 => 25632, 24184 => 25612, 24185 => 25638,
-24186 => 25633, 24187 => 25694, 24188 => 25732, 24189 => 25709, 24190 => 25750,
-24353 => 25722, 24354 => 25783, 24355 => 25784, 24356 => 25753, 24357 => 25786,
-24358 => 25792, 24359 => 25808, 24360 => 25815, 24361 => 25828, 24362 => 25826,
-24363 => 25865, 24364 => 25893, 24365 => 25902, 24366 => 24331, 24367 => 24530,
-24368 => 29977, 24369 => 24337, 24370 => 21343, 24371 => 21489, 24372 => 21501,
-24373 => 21481, 24374 => 21480, 24375 => 21499, 24376 => 21522, 24377 => 21526,
-24378 => 21510, 24379 => 21579, 24380 => 21586, 24381 => 21587, 24382 => 21588,
-24383 => 21590, 24384 => 21571, 24385 => 21537, 24386 => 21591, 24387 => 21593,
-24388 => 21539, 24389 => 21554, 24390 => 21634, 24391 => 21652, 24392 => 21623,
-24393 => 21617, 24394 => 21604, 24395 => 21658, 24396 => 21659, 24397 => 21636,
-24398 => 21622, 24399 => 21606, 24400 => 21661, 24401 => 21712, 24402 => 21677,
-24403 => 21698, 24404 => 21684, 24405 => 21714, 24406 => 21671, 24407 => 21670,
-24408 => 21715, 24409 => 21716, 24410 => 21618, 24411 => 21667, 24412 => 21717,
-24413 => 21691, 24414 => 21695, 24415 => 21708, 24416 => 21721, 24417 => 21722,
-24418 => 21724, 24419 => 21673, 24420 => 21674, 24421 => 21668, 24422 => 21725,
-24423 => 21711, 24424 => 21726, 24425 => 21787, 24426 => 21735, 24427 => 21792,
-24428 => 21757, 24429 => 21780, 24430 => 21747, 24431 => 21794, 24432 => 21795,
-24433 => 21775, 24434 => 21777, 24435 => 21799, 24436 => 21802, 24437 => 21863,
-24438 => 21903, 24439 => 21941, 24440 => 21833, 24441 => 21869, 24442 => 21825,
-24443 => 21845, 24444 => 21823, 24445 => 21840, 24446 => 21820, 24609 => 21815,
-24610 => 21846, 24611 => 21877, 24612 => 21878, 24613 => 21879, 24614 => 21811,
-24615 => 21808, 24616 => 21852, 24617 => 21899, 24618 => 21970, 24619 => 21891,
-24620 => 21937, 24621 => 21945, 24622 => 21896, 24623 => 21889, 24624 => 21919,
-24625 => 21886, 24626 => 21974, 24627 => 21905, 24628 => 21883, 24629 => 21983,
-24630 => 21949, 24631 => 21950, 24632 => 21908, 24633 => 21913, 24634 => 21994,
-24635 => 22007, 24636 => 21961, 24637 => 22047, 24638 => 21969, 24639 => 21995,
-24640 => 21996, 24641 => 21972, 24642 => 21990, 24643 => 21981, 24644 => 21956,
-24645 => 21999, 24646 => 21989, 24647 => 22002, 24648 => 22003, 24649 => 21964,
-24650 => 21965, 24651 => 21992, 24652 => 22005, 24653 => 21988, 24654 => 36756,
-24655 => 22046, 24656 => 22024, 24657 => 22028, 24658 => 22017, 24659 => 22052,
-24660 => 22051, 24661 => 22014, 24662 => 22016, 24663 => 22055, 24664 => 22061,
-24665 => 22104, 24666 => 22073, 24667 => 22103, 24668 => 22060, 24669 => 22093,
-24670 => 22114, 24671 => 22105, 24672 => 22108, 24673 => 22092, 24674 => 22100,
-24675 => 22150, 24676 => 22116, 24677 => 22129, 24678 => 22123, 24679 => 22139,
-24680 => 22140, 24681 => 22149, 24682 => 22163, 24683 => 22191, 24684 => 22228,
-24685 => 22231, 24686 => 22237, 24687 => 22241, 24688 => 22261, 24689 => 22251,
-24690 => 22265, 24691 => 22271, 24692 => 22276, 24693 => 22282, 24694 => 22281,
-24695 => 22300, 24696 => 24079, 24697 => 24089, 24698 => 24084, 24699 => 24081,
-24700 => 24113, 24701 => 24123, 24702 => 24124, 24865 => 24119, 24866 => 24132,
-24867 => 24148, 24868 => 24155, 24869 => 24158, 24870 => 24161, 24871 => 23692,
-24872 => 23674, 24873 => 23693, 24874 => 23696, 24875 => 23702, 24876 => 23688,
-24877 => 23704, 24878 => 23705, 24879 => 23697, 24880 => 23706, 24881 => 23708,
-24882 => 23733, 24883 => 23714, 24884 => 23741, 24885 => 23724, 24886 => 23723,
-24887 => 23729, 24888 => 23715, 24889 => 23745, 24890 => 23735, 24891 => 23748,
-24892 => 23762, 24893 => 23780, 24894 => 23755, 24895 => 23781, 24896 => 23810,
-24897 => 23811, 24898 => 23847, 24899 => 23846, 24900 => 23854, 24901 => 23844,
-24902 => 23838, 24903 => 23814, 24904 => 23835, 24905 => 23896, 24906 => 23870,
-24907 => 23860, 24908 => 23869, 24909 => 23916, 24910 => 23899, 24911 => 23919,
-24912 => 23901, 24913 => 23915, 24914 => 23883, 24915 => 23882, 24916 => 23913,
-24917 => 23924, 24918 => 23938, 24919 => 23961, 24920 => 23965, 24921 => 35955,
-24922 => 23991, 24923 => 24005, 24924 => 24435, 24925 => 24439, 24926 => 24450,
-24927 => 24455, 24928 => 24457, 24929 => 24460, 24930 => 24469, 24931 => 24473,
-24932 => 24476, 24933 => 24488, 24934 => 24493, 24935 => 24501, 24936 => 24508,
-24937 => 34914, 24938 => 24417, 24939 => 29357, 24940 => 29360, 24941 => 29364,
-24942 => 29367, 24943 => 29368, 24944 => 29379, 24945 => 29377, 24946 => 29390,
-24947 => 29389, 24948 => 29394, 24949 => 29416, 24950 => 29423, 24951 => 29417,
-24952 => 29426, 24953 => 29428, 24954 => 29431, 24955 => 29441, 24956 => 29427,
-24957 => 29443, 24958 => 29434, 25121 => 29435, 25122 => 29463, 25123 => 29459,
-25124 => 29473, 25125 => 29450, 25126 => 29470, 25127 => 29469, 25128 => 29461,
-25129 => 29474, 25130 => 29497, 25131 => 29477, 25132 => 29484, 25133 => 29496,
-25134 => 29489, 25135 => 29520, 25136 => 29517, 25137 => 29527, 25138 => 29536,
-25139 => 29548, 25140 => 29551, 25141 => 29566, 25142 => 33307, 25143 => 22821,
-25144 => 39143, 25145 => 22820, 25146 => 22786, 25147 => 39267, 25148 => 39271,
-25149 => 39272, 25150 => 39273, 25151 => 39274, 25152 => 39275, 25153 => 39276,
-25154 => 39284, 25155 => 39287, 25156 => 39293, 25157 => 39296, 25158 => 39300,
-25159 => 39303, 25160 => 39306, 25161 => 39309, 25162 => 39312, 25163 => 39313,
-25164 => 39315, 25165 => 39316, 25166 => 39317, 25167 => 24192, 25168 => 24209,
-25169 => 24203, 25170 => 24214, 25171 => 24229, 25172 => 24224, 25173 => 24249,
-25174 => 24245, 25175 => 24254, 25176 => 24243, 25177 => 36179, 25178 => 24274,
-25179 => 24273, 25180 => 24283, 25181 => 24296, 25182 => 24298, 25183 => 33210,
-25184 => 24516, 25185 => 24521, 25186 => 24534, 25187 => 24527, 25188 => 24579,
-25189 => 24558, 25190 => 24580, 25191 => 24545, 25192 => 24548, 25193 => 24574,
-25194 => 24581, 25195 => 24582, 25196 => 24554, 25197 => 24557, 25198 => 24568,
-25199 => 24601, 25200 => 24629, 25201 => 24614, 25202 => 24603, 25203 => 24591,
-25204 => 24589, 25205 => 24617, 25206 => 24619, 25207 => 24586, 25208 => 24639,
-25209 => 24609, 25210 => 24696, 25211 => 24697, 25212 => 24699, 25213 => 24698,
-25214 => 24642, 25377 => 24682, 25378 => 24701, 25379 => 24726, 25380 => 24730,
-25381 => 24749, 25382 => 24733, 25383 => 24707, 25384 => 24722, 25385 => 24716,
-25386 => 24731, 25387 => 24812, 25388 => 24763, 25389 => 24753, 25390 => 24797,
-25391 => 24792, 25392 => 24774, 25393 => 24794, 25394 => 24756, 25395 => 24864,
-25396 => 24870, 25397 => 24853, 25398 => 24867, 25399 => 24820, 25400 => 24832,
-25401 => 24846, 25402 => 24875, 25403 => 24906, 25404 => 24949, 25405 => 25004,
-25406 => 24980, 25407 => 24999, 25408 => 25015, 25409 => 25044, 25410 => 25077,
-25411 => 24541, 25412 => 38579, 25413 => 38377, 25414 => 38379, 25415 => 38385,
-25416 => 38387, 25417 => 38389, 25418 => 38390, 25419 => 38396, 25420 => 38398,
-25421 => 38403, 25422 => 38404, 25423 => 38406, 25424 => 38408, 25425 => 38410,
-25426 => 38411, 25427 => 38412, 25428 => 38413, 25429 => 38415, 25430 => 38418,
-25431 => 38421, 25432 => 38422, 25433 => 38423, 25434 => 38425, 25435 => 38426,
-25436 => 20012, 25437 => 29247, 25438 => 25109, 25439 => 27701, 25440 => 27732,
-25441 => 27740, 25442 => 27722, 25443 => 27811, 25444 => 27781, 25445 => 27792,
-25446 => 27796, 25447 => 27788, 25448 => 27752, 25449 => 27753, 25450 => 27764,
-25451 => 27766, 25452 => 27782, 25453 => 27817, 25454 => 27856, 25455 => 27860,
-25456 => 27821, 25457 => 27895, 25458 => 27896, 25459 => 27889, 25460 => 27863,
-25461 => 27826, 25462 => 27872, 25463 => 27862, 25464 => 27898, 25465 => 27883,
-25466 => 27886, 25467 => 27825, 25468 => 27859, 25469 => 27887, 25470 => 27902,
-25633 => 27961, 25634 => 27943, 25635 => 27916, 25636 => 27971, 25637 => 27976,
-25638 => 27911, 25639 => 27908, 25640 => 27929, 25641 => 27918, 25642 => 27947,
-25643 => 27981, 25644 => 27950, 25645 => 27957, 25646 => 27930, 25647 => 27983,
-25648 => 27986, 25649 => 27988, 25650 => 27955, 25651 => 28049, 25652 => 28015,
-25653 => 28062, 25654 => 28064, 25655 => 27998, 25656 => 28051, 25657 => 28052,
-25658 => 27996, 25659 => 28000, 25660 => 28028, 25661 => 28003, 25662 => 28186,
-25663 => 28103, 25664 => 28101, 25665 => 28126, 25666 => 28174, 25667 => 28095,
-25668 => 28128, 25669 => 28177, 25670 => 28134, 25671 => 28125, 25672 => 28121,
-25673 => 28182, 25674 => 28075, 25675 => 28172, 25676 => 28078, 25677 => 28203,
-25678 => 28270, 25679 => 28238, 25680 => 28267, 25681 => 28338, 25682 => 28255,
-25683 => 28294, 25684 => 28243, 25685 => 28244, 25686 => 28210, 25687 => 28197,
-25688 => 28228, 25689 => 28383, 25690 => 28337, 25691 => 28312, 25692 => 28384,
-25693 => 28461, 25694 => 28386, 25695 => 28325, 25696 => 28327, 25697 => 28349,
-25698 => 28347, 25699 => 28343, 25700 => 28375, 25701 => 28340, 25702 => 28367,
-25703 => 28303, 25704 => 28354, 25705 => 28319, 25706 => 28514, 25707 => 28486,
-25708 => 28487, 25709 => 28452, 25710 => 28437, 25711 => 28409, 25712 => 28463,
-25713 => 28470, 25714 => 28491, 25715 => 28532, 25716 => 28458, 25717 => 28425,
-25718 => 28457, 25719 => 28553, 25720 => 28557, 25721 => 28556, 25722 => 28536,
-25723 => 28530, 25724 => 28540, 25725 => 28538, 25726 => 28625, 25889 => 28617,
-25890 => 28583, 25891 => 28601, 25892 => 28598, 25893 => 28610, 25894 => 28641,
-25895 => 28654, 25896 => 28638, 25897 => 28640, 25898 => 28655, 25899 => 28698,
-25900 => 28707, 25901 => 28699, 25902 => 28729, 25903 => 28725, 25904 => 28751,
-25905 => 28766, 25906 => 23424, 25907 => 23428, 25908 => 23445, 25909 => 23443,
-25910 => 23461, 25911 => 23480, 25912 => 29999, 25913 => 39582, 25914 => 25652,
-25915 => 23524, 25916 => 23534, 25917 => 35120, 25918 => 23536, 25919 => 36423,
-25920 => 35591, 25921 => 36790, 25922 => 36819, 25923 => 36821, 25924 => 36837,
-25925 => 36846, 25926 => 36836, 25927 => 36841, 25928 => 36838, 25929 => 36851,
-25930 => 36840, 25931 => 36869, 25932 => 36868, 25933 => 36875, 25934 => 36902,
-25935 => 36881, 25936 => 36877, 25937 => 36886, 25938 => 36897, 25939 => 36917,
-25940 => 36918, 25941 => 36909, 25942 => 36911, 25943 => 36932, 25944 => 36945,
-25945 => 36946, 25946 => 36944, 25947 => 36968, 25948 => 36952, 25949 => 36962,
-25950 => 36955, 25951 => 26297, 25952 => 36980, 25953 => 36989, 25954 => 36994,
-25955 => 37000, 25956 => 36995, 25957 => 37003, 25958 => 24400, 25959 => 24407,
-25960 => 24406, 25961 => 24408, 25962 => 23611, 25963 => 21675, 25964 => 23632,
-25965 => 23641, 25966 => 23409, 25967 => 23651, 25968 => 23654, 25969 => 32700,
-25970 => 24362, 25971 => 24361, 25972 => 24365, 25973 => 33396, 25974 => 24380,
-25975 => 39739, 25976 => 23662, 25977 => 22913, 25978 => 22915, 25979 => 22925,
-25980 => 22953, 25981 => 22954, 25982 => 22947, 26145 => 22935, 26146 => 22986,
-26147 => 22955, 26148 => 22942, 26149 => 22948, 26150 => 22994, 26151 => 22962,
-26152 => 22959, 26153 => 22999, 26154 => 22974, 26155 => 23045, 26156 => 23046,
-26157 => 23005, 26158 => 23048, 26159 => 23011, 26160 => 23000, 26161 => 23033,
-26162 => 23052, 26163 => 23049, 26164 => 23090, 26165 => 23092, 26166 => 23057,
-26167 => 23075, 26168 => 23059, 26169 => 23104, 26170 => 23143, 26171 => 23114,
-26172 => 23125, 26173 => 23100, 26174 => 23138, 26175 => 23157, 26176 => 33004,
-26177 => 23210, 26178 => 23195, 26179 => 23159, 26180 => 23162, 26181 => 23230,
-26182 => 23275, 26183 => 23218, 26184 => 23250, 26185 => 23252, 26186 => 23224,
-26187 => 23264, 26188 => 23267, 26189 => 23281, 26190 => 23254, 26191 => 23270,
-26192 => 23256, 26193 => 23260, 26194 => 23305, 26195 => 23319, 26196 => 23318,
-26197 => 23346, 26198 => 23351, 26199 => 23360, 26200 => 23573, 26201 => 23580,
-26202 => 23386, 26203 => 23397, 26204 => 23411, 26205 => 23377, 26206 => 23379,
-26207 => 23394, 26208 => 39541, 26209 => 39543, 26210 => 39544, 26211 => 39546,
-26212 => 39551, 26213 => 39549, 26214 => 39552, 26215 => 39553, 26216 => 39557,
-26217 => 39560, 26218 => 39562, 26219 => 39568, 26220 => 39570, 26221 => 39571,
-26222 => 39574, 26223 => 39576, 26224 => 39579, 26225 => 39580, 26226 => 39581,
-26227 => 39583, 26228 => 39584, 26229 => 39586, 26230 => 39587, 26231 => 39589,
-26232 => 39591, 26233 => 32415, 26234 => 32417, 26235 => 32419, 26236 => 32421,
-26237 => 32424, 26238 => 32425, 26401 => 32429, 26402 => 32432, 26403 => 32446,
-26404 => 32448, 26405 => 32449, 26406 => 32450, 26407 => 32457, 26408 => 32459,
-26409 => 32460, 26410 => 32464, 26411 => 32468, 26412 => 32471, 26413 => 32475,
-26414 => 32480, 26415 => 32481, 26416 => 32488, 26417 => 32491, 26418 => 32494,
-26419 => 32495, 26420 => 32497, 26421 => 32498, 26422 => 32525, 26423 => 32502,
-26424 => 32506, 26425 => 32507, 26426 => 32510, 26427 => 32513, 26428 => 32514,
-26429 => 32515, 26430 => 32519, 26431 => 32520, 26432 => 32523, 26433 => 32524,
-26434 => 32527, 26435 => 32529, 26436 => 32530, 26437 => 32535, 26438 => 32537,
-26439 => 32540, 26440 => 32539, 26441 => 32543, 26442 => 32545, 26443 => 32546,
-26444 => 32547, 26445 => 32548, 26446 => 32549, 26447 => 32550, 26448 => 32551,
-26449 => 32554, 26450 => 32555, 26451 => 32556, 26452 => 32557, 26453 => 32559,
-26454 => 32560, 26455 => 32561, 26456 => 32562, 26457 => 32563, 26458 => 32565,
-26459 => 24186, 26460 => 30079, 26461 => 24027, 26462 => 30014, 26463 => 37013,
-26464 => 29582, 26465 => 29585, 26466 => 29614, 26467 => 29602, 26468 => 29599,
-26469 => 29647, 26470 => 29634, 26471 => 29649, 26472 => 29623, 26473 => 29619,
-26474 => 29632, 26475 => 29641, 26476 => 29640, 26477 => 29669, 26478 => 29657,
-26479 => 39036, 26480 => 29706, 26481 => 29673, 26482 => 29671, 26483 => 29662,
-26484 => 29626, 26485 => 29682, 26486 => 29711, 26487 => 29738, 26488 => 29787,
-26489 => 29734, 26490 => 29733, 26491 => 29736, 26492 => 29744, 26493 => 29742,
-26494 => 29740, 26657 => 29723, 26658 => 29722, 26659 => 29761, 26660 => 29788,
-26661 => 29783, 26662 => 29781, 26663 => 29785, 26664 => 29815, 26665 => 29805,
-26666 => 29822, 26667 => 29852, 26668 => 29838, 26669 => 29824, 26670 => 29825,
-26671 => 29831, 26672 => 29835, 26673 => 29854, 26674 => 29864, 26675 => 29865,
-26676 => 29840, 26677 => 29863, 26678 => 29906, 26679 => 29882, 26680 => 38890,
-26681 => 38891, 26682 => 38892, 26683 => 26444, 26684 => 26451, 26685 => 26462,
-26686 => 26440, 26687 => 26473, 26688 => 26533, 26689 => 26503, 26690 => 26474,
-26691 => 26483, 26692 => 26520, 26693 => 26535, 26694 => 26485, 26695 => 26536,
-26696 => 26526, 26697 => 26541, 26698 => 26507, 26699 => 26487, 26700 => 26492,
-26701 => 26608, 26702 => 26633, 26703 => 26584, 26704 => 26634, 26705 => 26601,
-26706 => 26544, 26707 => 26636, 26708 => 26585, 26709 => 26549, 26710 => 26586,
-26711 => 26547, 26712 => 26589, 26713 => 26624, 26714 => 26563, 26715 => 26552,
-26716 => 26594, 26717 => 26638, 26718 => 26561, 26719 => 26621, 26720 => 26674,
-26721 => 26675, 26722 => 26720, 26723 => 26721, 26724 => 26702, 26725 => 26722,
-26726 => 26692, 26727 => 26724, 26728 => 26755, 26729 => 26653, 26730 => 26709,
-26731 => 26726, 26732 => 26689, 26733 => 26727, 26734 => 26688, 26735 => 26686,
-26736 => 26698, 26737 => 26697, 26738 => 26665, 26739 => 26805, 26740 => 26767,
-26741 => 26740, 26742 => 26743, 26743 => 26771, 26744 => 26731, 26745 => 26818,
-26746 => 26990, 26747 => 26876, 26748 => 26911, 26749 => 26912, 26750 => 26873,
-26913 => 26916, 26914 => 26864, 26915 => 26891, 26916 => 26881, 26917 => 26967,
-26918 => 26851, 26919 => 26896, 26920 => 26993, 26921 => 26937, 26922 => 26976,
-26923 => 26946, 26924 => 26973, 26925 => 27012, 26926 => 26987, 26927 => 27008,
-26928 => 27032, 26929 => 27000, 26930 => 26932, 26931 => 27084, 26932 => 27015,
-26933 => 27016, 26934 => 27086, 26935 => 27017, 26936 => 26982, 26937 => 26979,
-26938 => 27001, 26939 => 27035, 26940 => 27047, 26941 => 27067, 26942 => 27051,
-26943 => 27053, 26944 => 27092, 26945 => 27057, 26946 => 27073, 26947 => 27082,
-26948 => 27103, 26949 => 27029, 26950 => 27104, 26951 => 27021, 26952 => 27135,
-26953 => 27183, 26954 => 27117, 26955 => 27159, 26956 => 27160, 26957 => 27237,
-26958 => 27122, 26959 => 27204, 26960 => 27198, 26961 => 27296, 26962 => 27216,
-26963 => 27227, 26964 => 27189, 26965 => 27278, 26966 => 27257, 26967 => 27197,
-26968 => 27176, 26969 => 27224, 26970 => 27260, 26971 => 27281, 26972 => 27280,
-26973 => 27305, 26974 => 27287, 26975 => 27307, 26976 => 29495, 26977 => 29522,
-26978 => 27521, 26979 => 27522, 26980 => 27527, 26981 => 27524, 26982 => 27538,
-26983 => 27539, 26984 => 27533, 26985 => 27546, 26986 => 27547, 26987 => 27553,
-26988 => 27562, 26989 => 36715, 26990 => 36717, 26991 => 36721, 26992 => 36722,
-26993 => 36723, 26994 => 36725, 26995 => 36726, 26996 => 36728, 26997 => 36727,
-26998 => 36729, 26999 => 36730, 27000 => 36732, 27001 => 36734, 27002 => 36737,
-27003 => 36738, 27004 => 36740, 27005 => 36743, 27006 => 36747, 27169 => 36749,
-27170 => 36750, 27171 => 36751, 27172 => 36760, 27173 => 36762, 27174 => 36558,
-27175 => 25099, 27176 => 25111, 27177 => 25115, 27178 => 25119, 27179 => 25122,
-27180 => 25121, 27181 => 25125, 27182 => 25124, 27183 => 25132, 27184 => 33255,
-27185 => 29935, 27186 => 29940, 27187 => 29951, 27188 => 29967, 27189 => 29969,
-27190 => 29971, 27191 => 25908, 27192 => 26094, 27193 => 26095, 27194 => 26096,
-27195 => 26122, 27196 => 26137, 27197 => 26482, 27198 => 26115, 27199 => 26133,
-27200 => 26112, 27201 => 28805, 27202 => 26359, 27203 => 26141, 27204 => 26164,
-27205 => 26161, 27206 => 26166, 27207 => 26165, 27208 => 32774, 27209 => 26207,
-27210 => 26196, 27211 => 26177, 27212 => 26191, 27213 => 26198, 27214 => 26209,
-27215 => 26199, 27216 => 26231, 27217 => 26244, 27218 => 26252, 27219 => 26279,
-27220 => 26269, 27221 => 26302, 27222 => 26331, 27223 => 26332, 27224 => 26342,
-27225 => 26345, 27226 => 36146, 27227 => 36147, 27228 => 36150, 27229 => 36155,
-27230 => 36157, 27231 => 36160, 27232 => 36165, 27233 => 36166, 27234 => 36168,
-27235 => 36169, 27236 => 36167, 27237 => 36173, 27238 => 36181, 27239 => 36185,
-27240 => 35271, 27241 => 35274, 27242 => 35275, 27243 => 35276, 27244 => 35278,
-27245 => 35279, 27246 => 35280, 27247 => 35281, 27248 => 29294, 27249 => 29343,
-27250 => 29277, 27251 => 29286, 27252 => 29295, 27253 => 29310, 27254 => 29311,
-27255 => 29316, 27256 => 29323, 27257 => 29325, 27258 => 29327, 27259 => 29330,
-27260 => 25352, 27261 => 25394, 27262 => 25520, 27425 => 25663, 27426 => 25816,
-27427 => 32772, 27428 => 27626, 27429 => 27635, 27430 => 27645, 27431 => 27637,
-27432 => 27641, 27433 => 27653, 27434 => 27655, 27435 => 27654, 27436 => 27661,
-27437 => 27669, 27438 => 27672, 27439 => 27673, 27440 => 27674, 27441 => 27681,
-27442 => 27689, 27443 => 27684, 27444 => 27690, 27445 => 27698, 27446 => 25909,
-27447 => 25941, 27448 => 25963, 27449 => 29261, 27450 => 29266, 27451 => 29270,
-27452 => 29232, 27453 => 34402, 27454 => 21014, 27455 => 32927, 27456 => 32924,
-27457 => 32915, 27458 => 32956, 27459 => 26378, 27460 => 32957, 27461 => 32945,
-27462 => 32939, 27463 => 32941, 27464 => 32948, 27465 => 32951, 27466 => 32999,
-27467 => 33000, 27468 => 33001, 27469 => 33002, 27470 => 32987, 27471 => 32962,
-27472 => 32964, 27473 => 32985, 27474 => 32973, 27475 => 32983, 27476 => 26384,
-27477 => 32989, 27478 => 33003, 27479 => 33009, 27480 => 33012, 27481 => 33005,
-27482 => 33037, 27483 => 33038, 27484 => 33010, 27485 => 33020, 27486 => 26389,
-27487 => 33042, 27488 => 35930, 27489 => 33078, 27490 => 33054, 27491 => 33068,
-27492 => 33048, 27493 => 33074, 27494 => 33096, 27495 => 33100, 27496 => 33107,
-27497 => 33140, 27498 => 33113, 27499 => 33114, 27500 => 33137, 27501 => 33120,
-27502 => 33129, 27503 => 33148, 27504 => 33149, 27505 => 33133, 27506 => 33127,
-27507 => 22605, 27508 => 23221, 27509 => 33160, 27510 => 33154, 27511 => 33169,
-27512 => 28373, 27513 => 33187, 27514 => 33194, 27515 => 33228, 27516 => 26406,
-27517 => 33226, 27518 => 33211, 27681 => 33217, 27682 => 33190, 27683 => 27428,
-27684 => 27447, 27685 => 27449, 27686 => 27459, 27687 => 27462, 27688 => 27481,
-27689 => 39121, 27690 => 39122, 27691 => 39123, 27692 => 39125, 27693 => 39129,
-27694 => 39130, 27695 => 27571, 27696 => 24384, 27697 => 27586, 27698 => 35315,
-27699 => 26000, 27700 => 40785, 27701 => 26003, 27702 => 26044, 27703 => 26054,
-27704 => 26052, 27705 => 26051, 27706 => 26060, 27707 => 26062, 27708 => 26066,
-27709 => 26070, 27710 => 28800, 27711 => 28828, 27712 => 28822, 27713 => 28829,
-27714 => 28859, 27715 => 28864, 27716 => 28855, 27717 => 28843, 27718 => 28849,
-27719 => 28904, 27720 => 28874, 27721 => 28944, 27722 => 28947, 27723 => 28950,
-27724 => 28975, 27725 => 28977, 27726 => 29043, 27727 => 29020, 27728 => 29032,
-27729 => 28997, 27730 => 29042, 27731 => 29002, 27732 => 29048, 27733 => 29050,
-27734 => 29080, 27735 => 29107, 27736 => 29109, 27737 => 29096, 27738 => 29088,
-27739 => 29152, 27740 => 29140, 27741 => 29159, 27742 => 29177, 27743 => 29213,
-27744 => 29224, 27745 => 28780, 27746 => 28952, 27747 => 29030, 27748 => 29113,
-27749 => 25150, 27750 => 25149, 27751 => 25155, 27752 => 25160, 27753 => 25161,
-27754 => 31035, 27755 => 31040, 27756 => 31046, 27757 => 31049, 27758 => 31067,
-27759 => 31068, 27760 => 31059, 27761 => 31066, 27762 => 31074, 27763 => 31063,
-27764 => 31072, 27765 => 31087, 27766 => 31079, 27767 => 31098, 27768 => 31109,
-27769 => 31114, 27770 => 31130, 27771 => 31143, 27772 => 31155, 27773 => 24529,
-27774 => 24528, 27937 => 24636, 27938 => 24669, 27939 => 24666, 27940 => 24679,
-27941 => 24641, 27942 => 24665, 27943 => 24675, 27944 => 24747, 27945 => 24838,
-27946 => 24845, 27947 => 24925, 27948 => 25001, 27949 => 24989, 27950 => 25035,
-27951 => 25041, 27952 => 25094, 27953 => 32896, 27954 => 32895, 27955 => 27795,
-27956 => 27894, 27957 => 28156, 27958 => 30710, 27959 => 30712, 27960 => 30720,
-27961 => 30729, 27962 => 30743, 27963 => 30744, 27964 => 30737, 27965 => 26027,
-27966 => 30765, 27967 => 30748, 27968 => 30749, 27969 => 30777, 27970 => 30778,
-27971 => 30779, 27972 => 30751, 27973 => 30780, 27974 => 30757, 27975 => 30764,
-27976 => 30755, 27977 => 30761, 27978 => 30798, 27979 => 30829, 27980 => 30806,
-27981 => 30807, 27982 => 30758, 27983 => 30800, 27984 => 30791, 27985 => 30796,
-27986 => 30826, 27987 => 30875, 27988 => 30867, 27989 => 30874, 27990 => 30855,
-27991 => 30876, 27992 => 30881, 27993 => 30883, 27994 => 30898, 27995 => 30905,
-27996 => 30885, 27997 => 30932, 27998 => 30937, 27999 => 30921, 28000 => 30956,
-28001 => 30962, 28002 => 30981, 28003 => 30964, 28004 => 30995, 28005 => 31012,
-28006 => 31006, 28007 => 31028, 28008 => 40859, 28009 => 40697, 28010 => 40699,
-28011 => 40700, 28012 => 30449, 28013 => 30468, 28014 => 30477, 28015 => 30457,
-28016 => 30471, 28017 => 30472, 28018 => 30490, 28019 => 30498, 28020 => 30489,
-28021 => 30509, 28022 => 30502, 28023 => 30517, 28024 => 30520, 28025 => 30544,
-28026 => 30545, 28027 => 30535, 28028 => 30531, 28029 => 30554, 28030 => 30568,
-28193 => 30562, 28194 => 30565, 28195 => 30591, 28196 => 30605, 28197 => 30589,
-28198 => 30592, 28199 => 30604, 28200 => 30609, 28201 => 30623, 28202 => 30624,
-28203 => 30640, 28204 => 30645, 28205 => 30653, 28206 => 30010, 28207 => 30016,
-28208 => 30030, 28209 => 30027, 28210 => 30024, 28211 => 30043, 28212 => 30066,
-28213 => 30073, 28214 => 30083, 28215 => 32600, 28216 => 32609, 28217 => 32607,
-28218 => 35400, 28219 => 32616, 28220 => 32628, 28221 => 32625, 28222 => 32633,
-28223 => 32641, 28224 => 32638, 28225 => 30413, 28226 => 30437, 28227 => 34866,
-28228 => 38021, 28229 => 38022, 28230 => 38023, 28231 => 38027, 28232 => 38026,
-28233 => 38028, 28234 => 38029, 28235 => 38031, 28236 => 38032, 28237 => 38036,
-28238 => 38039, 28239 => 38037, 28240 => 38042, 28241 => 38043, 28242 => 38044,
-28243 => 38051, 28244 => 38052, 28245 => 38059, 28246 => 38058, 28247 => 38061,
-28248 => 38060, 28249 => 38063, 28250 => 38064, 28251 => 38066, 28252 => 38068,
-28253 => 38070, 28254 => 38071, 28255 => 38072, 28256 => 38073, 28257 => 38074,
-28258 => 38076, 28259 => 38077, 28260 => 38079, 28261 => 38084, 28262 => 38088,
-28263 => 38089, 28264 => 38090, 28265 => 38091, 28266 => 38092, 28267 => 38093,
-28268 => 38094, 28269 => 38096, 28270 => 38097, 28271 => 38098, 28272 => 38101,
-28273 => 38102, 28274 => 38103, 28275 => 38105, 28276 => 38104, 28277 => 38107,
-28278 => 38110, 28279 => 38111, 28280 => 38112, 28281 => 38114, 28282 => 38116,
-28283 => 38117, 28284 => 38119, 28285 => 38120, 28286 => 38122, 28449 => 38121,
-28450 => 38123, 28451 => 38126, 28452 => 38127, 28453 => 38131, 28454 => 38132,
-28455 => 38133, 28456 => 38135, 28457 => 38137, 28458 => 38140, 28459 => 38141,
-28460 => 38143, 28461 => 38147, 28462 => 38146, 28463 => 38150, 28464 => 38151,
-28465 => 38153, 28466 => 38154, 28467 => 38157, 28468 => 38158, 28469 => 38159,
-28470 => 38162, 28471 => 38163, 28472 => 38164, 28473 => 38165, 28474 => 38166,
-28475 => 38168, 28476 => 38171, 28477 => 38173, 28478 => 38174, 28479 => 38175,
-28480 => 38178, 28481 => 38186, 28482 => 38187, 28483 => 38185, 28484 => 38188,
-28485 => 38193, 28486 => 38194, 28487 => 38196, 28488 => 38198, 28489 => 38199,
-28490 => 38200, 28491 => 38204, 28492 => 38206, 28493 => 38207, 28494 => 38210,
-28495 => 38197, 28496 => 38212, 28497 => 38213, 28498 => 38214, 28499 => 38217,
-28500 => 38220, 28501 => 38222, 28502 => 38223, 28503 => 38226, 28504 => 38227,
-28505 => 38228, 28506 => 38230, 28507 => 38231, 28508 => 38232, 28509 => 38233,
-28510 => 38235, 28511 => 38238, 28512 => 38239, 28513 => 38237, 28514 => 38241,
-28515 => 38242, 28516 => 38244, 28517 => 38245, 28518 => 38246, 28519 => 38247,
-28520 => 38248, 28521 => 38249, 28522 => 38250, 28523 => 38251, 28524 => 38252,
-28525 => 38255, 28526 => 38257, 28527 => 38258, 28528 => 38259, 28529 => 38202,
-28530 => 30695, 28531 => 30700, 28532 => 38601, 28533 => 31189, 28534 => 31213,
-28535 => 31203, 28536 => 31211, 28537 => 31238, 28538 => 23879, 28539 => 31235,
-28540 => 31234, 28541 => 31262, 28542 => 31252, 28705 => 31289, 28706 => 31287,
-28707 => 31313, 28708 => 40655, 28709 => 39333, 28710 => 31344, 28711 => 30344,
-28712 => 30350, 28713 => 30355, 28714 => 30361, 28715 => 30372, 28716 => 29918,
-28717 => 29920, 28718 => 29996, 28719 => 40480, 28720 => 40482, 28721 => 40488,
-28722 => 40489, 28723 => 40490, 28724 => 40491, 28725 => 40492, 28726 => 40498,
-28727 => 40497, 28728 => 40502, 28729 => 40504, 28730 => 40503, 28731 => 40505,
-28732 => 40506, 28733 => 40510, 28734 => 40513, 28735 => 40514, 28736 => 40516,
-28737 => 40518, 28738 => 40519, 28739 => 40520, 28740 => 40521, 28741 => 40523,
-28742 => 40524, 28743 => 40526, 28744 => 40529, 28745 => 40533, 28746 => 40535,
-28747 => 40538, 28748 => 40539, 28749 => 40540, 28750 => 40542, 28751 => 40547,
-28752 => 40550, 28753 => 40551, 28754 => 40552, 28755 => 40553, 28756 => 40554,
-28757 => 40555, 28758 => 40556, 28759 => 40561, 28760 => 40557, 28761 => 40563,
-28762 => 30098, 28763 => 30100, 28764 => 30102, 28765 => 30112, 28766 => 30109,
-28767 => 30124, 28768 => 30115, 28769 => 30131, 28770 => 30132, 28771 => 30136,
-28772 => 30148, 28773 => 30129, 28774 => 30128, 28775 => 30147, 28776 => 30146,
-28777 => 30166, 28778 => 30157, 28779 => 30179, 28780 => 30184, 28781 => 30182,
-28782 => 30180, 28783 => 30187, 28784 => 30183, 28785 => 30211, 28786 => 30193,
-28787 => 30204, 28788 => 30207, 28789 => 30224, 28790 => 30208, 28791 => 30213,
-28792 => 30220, 28793 => 30231, 28794 => 30218, 28795 => 30245, 28796 => 30232,
-28797 => 30229, 28798 => 30233, 28961 => 30235, 28962 => 30268, 28963 => 30242,
-28964 => 30240, 28965 => 30272, 28966 => 30253, 28967 => 30256, 28968 => 30271,
-28969 => 30261, 28970 => 30275, 28971 => 30270, 28972 => 30259, 28973 => 30285,
-28974 => 30302, 28975 => 30292, 28976 => 30300, 28977 => 30294, 28978 => 30315,
-28979 => 30319, 28980 => 32714, 28981 => 31462, 28982 => 31352, 28983 => 31353,
-28984 => 31360, 28985 => 31366, 28986 => 31368, 28987 => 31381, 28988 => 31398,
-28989 => 31392, 28990 => 31404, 28991 => 31400, 28992 => 31405, 28993 => 31411,
-28994 => 34916, 28995 => 34921, 28996 => 34930, 28997 => 34941, 28998 => 34943,
-28999 => 34946, 29000 => 34978, 29001 => 35014, 29002 => 34999, 29003 => 35004,
-29004 => 35017, 29005 => 35042, 29006 => 35022, 29007 => 35043, 29008 => 35045,
-29009 => 35057, 29010 => 35098, 29011 => 35068, 29012 => 35048, 29013 => 35070,
-29014 => 35056, 29015 => 35105, 29016 => 35097, 29017 => 35091, 29018 => 35099,
-29019 => 35082, 29020 => 35124, 29021 => 35115, 29022 => 35126, 29023 => 35137,
-29024 => 35174, 29025 => 35195, 29026 => 30091, 29027 => 32997, 29028 => 30386,
-29029 => 30388, 29030 => 30684, 29031 => 32786, 29032 => 32788, 29033 => 32790,
-29034 => 32796, 29035 => 32800, 29036 => 32802, 29037 => 32805, 29038 => 32806,
-29039 => 32807, 29040 => 32809, 29041 => 32808, 29042 => 32817, 29043 => 32779,
-29044 => 32821, 29045 => 32835, 29046 => 32838, 29047 => 32845, 29048 => 32850,
-29049 => 32873, 29050 => 32881, 29051 => 35203, 29052 => 39032, 29053 => 39040,
-29054 => 39043, 29217 => 39049, 29218 => 39052, 29219 => 39053, 29220 => 39055,
-29221 => 39060, 29222 => 39066, 29223 => 39067, 29224 => 39070, 29225 => 39071,
-29226 => 39073, 29227 => 39074, 29228 => 39077, 29229 => 39078, 29230 => 34381,
-29231 => 34388, 29232 => 34412, 29233 => 34414, 29234 => 34431, 29235 => 34426,
-29236 => 34428, 29237 => 34427, 29238 => 34472, 29239 => 34445, 29240 => 34443,
-29241 => 34476, 29242 => 34461, 29243 => 34471, 29244 => 34467, 29245 => 34474,
-29246 => 34451, 29247 => 34473, 29248 => 34486, 29249 => 34500, 29250 => 34485,
-29251 => 34510, 29252 => 34480, 29253 => 34490, 29254 => 34481, 29255 => 34479,
-29256 => 34505, 29257 => 34511, 29258 => 34484, 29259 => 34537, 29260 => 34545,
-29261 => 34546, 29262 => 34541, 29263 => 34547, 29264 => 34512, 29265 => 34579,
-29266 => 34526, 29267 => 34548, 29268 => 34527, 29269 => 34520, 29270 => 34513,
-29271 => 34563, 29272 => 34567, 29273 => 34552, 29274 => 34568, 29275 => 34570,
-29276 => 34573, 29277 => 34569, 29278 => 34595, 29279 => 34619, 29280 => 34590,
-29281 => 34597, 29282 => 34606, 29283 => 34586, 29284 => 34622, 29285 => 34632,
-29286 => 34612, 29287 => 34609, 29288 => 34601, 29289 => 34615, 29290 => 34623,
-29291 => 34690, 29292 => 34594, 29293 => 34685, 29294 => 34686, 29295 => 34683,
-29296 => 34656, 29297 => 34672, 29298 => 34636, 29299 => 34670, 29300 => 34699,
-29301 => 34643, 29302 => 34659, 29303 => 34684, 29304 => 34660, 29305 => 34649,
-29306 => 34661, 29307 => 34707, 29308 => 34735, 29309 => 34728, 29310 => 34770,
-29473 => 34758, 29474 => 34696, 29475 => 34693, 29476 => 34733, 29477 => 34711,
-29478 => 34691, 29479 => 34731, 29480 => 34789, 29481 => 34732, 29482 => 34741,
-29483 => 34739, 29484 => 34763, 29485 => 34771, 29486 => 34749, 29487 => 34769,
-29488 => 34752, 29489 => 34762, 29490 => 34779, 29491 => 34794, 29492 => 34784,
-29493 => 34798, 29494 => 34838, 29495 => 34835, 29496 => 34814, 29497 => 34826,
-29498 => 34843, 29499 => 34849, 29500 => 34873, 29501 => 34876, 29502 => 32566,
-29503 => 32578, 29504 => 32580, 29505 => 32581, 29506 => 33296, 29507 => 31482,
-29508 => 31485, 29509 => 31496, 29510 => 31491, 29511 => 31492, 29512 => 31509,
-29513 => 31498, 29514 => 31531, 29515 => 31503, 29516 => 31559, 29517 => 31544,
-29518 => 31530, 29519 => 31513, 29520 => 31534, 29521 => 31537, 29522 => 31520,
-29523 => 31525, 29524 => 31524, 29525 => 31539, 29526 => 31550, 29527 => 31518,
-29528 => 31576, 29529 => 31578, 29530 => 31557, 29531 => 31605, 29532 => 31564,
-29533 => 31581, 29534 => 31584, 29535 => 31598, 29536 => 31611, 29537 => 31586,
-29538 => 31602, 29539 => 31601, 29540 => 31632, 29541 => 31654, 29542 => 31655,
-29543 => 31672, 29544 => 31660, 29545 => 31645, 29546 => 31656, 29547 => 31621,
-29548 => 31658, 29549 => 31644, 29550 => 31650, 29551 => 31659, 29552 => 31668,
-29553 => 31697, 29554 => 31681, 29555 => 31692, 29556 => 31709, 29557 => 31706,
-29558 => 31717, 29559 => 31718, 29560 => 31722, 29561 => 31756, 29562 => 31742,
-29563 => 31740, 29564 => 31759, 29565 => 31766, 29566 => 31755, 29729 => 31775,
-29730 => 31786, 29731 => 31782, 29732 => 31800, 29733 => 31809, 29734 => 31808,
-29735 => 33278, 29736 => 33281, 29737 => 33282, 29738 => 33284, 29739 => 33260,
-29740 => 34884, 29741 => 33313, 29742 => 33314, 29743 => 33315, 29744 => 33325,
-29745 => 33327, 29746 => 33320, 29747 => 33323, 29748 => 33336, 29749 => 33339,
-29750 => 33331, 29751 => 33332, 29752 => 33342, 29753 => 33348, 29754 => 33353,
-29755 => 33355, 29756 => 33359, 29757 => 33370, 29758 => 33375, 29759 => 33384,
-29760 => 34942, 29761 => 34949, 29762 => 34952, 29763 => 35032, 29764 => 35039,
-29765 => 35166, 29766 => 32669, 29767 => 32671, 29768 => 32679, 29769 => 32687,
-29770 => 32688, 29771 => 32690, 29772 => 31868, 29773 => 25929, 29774 => 31889,
-29775 => 31901, 29776 => 31900, 29777 => 31902, 29778 => 31906, 29779 => 31922,
-29780 => 31932, 29781 => 31933, 29782 => 31937, 29783 => 31943, 29784 => 31948,
-29785 => 31949, 29786 => 31944, 29787 => 31941, 29788 => 31959, 29789 => 31976,
-29790 => 33390, 29791 => 26280, 29792 => 32703, 29793 => 32718, 29794 => 32725,
-29795 => 32741, 29796 => 32737, 29797 => 32742, 29798 => 32745, 29799 => 32750,
-29800 => 32755, 29801 => 31992, 29802 => 32119, 29803 => 32166, 29804 => 32174,
-29805 => 32327, 29806 => 32411, 29807 => 40632, 29808 => 40628, 29809 => 36211,
-29810 => 36228, 29811 => 36244, 29812 => 36241, 29813 => 36273, 29814 => 36199,
-29815 => 36205, 29816 => 35911, 29817 => 35913, 29818 => 37194, 29819 => 37200,
-29820 => 37198, 29821 => 37199, 29822 => 37220, 29985 => 37218, 29986 => 37217,
-29987 => 37232, 29988 => 37225, 29989 => 37231, 29990 => 37245, 29991 => 37246,
-29992 => 37234, 29993 => 37236, 29994 => 37241, 29995 => 37260, 29996 => 37253,
-29997 => 37264, 29998 => 37261, 29999 => 37265, 30000 => 37282, 30001 => 37283,
-30002 => 37290, 30003 => 37293, 30004 => 37294, 30005 => 37295, 30006 => 37301,
-30007 => 37300, 30008 => 37306, 30009 => 35925, 30010 => 40574, 30011 => 36280,
-30012 => 36331, 30013 => 36357, 30014 => 36441, 30015 => 36457, 30016 => 36277,
-30017 => 36287, 30018 => 36284, 30019 => 36282, 30020 => 36292, 30021 => 36310,
-30022 => 36311, 30023 => 36314, 30024 => 36318, 30025 => 36302, 30026 => 36303,
-30027 => 36315, 30028 => 36294, 30029 => 36332, 30030 => 36343, 30031 => 36344,
-30032 => 36323, 30033 => 36345, 30034 => 36347, 30035 => 36324, 30036 => 36361,
-30037 => 36349, 30038 => 36372, 30039 => 36381, 30040 => 36383, 30041 => 36396,
-30042 => 36398, 30043 => 36387, 30044 => 36399, 30045 => 36410, 30046 => 36416,
-30047 => 36409, 30048 => 36405, 30049 => 36413, 30050 => 36401, 30051 => 36425,
-30052 => 36417, 30053 => 36418, 30054 => 36433, 30055 => 36434, 30056 => 36426,
-30057 => 36464, 30058 => 36470, 30059 => 36476, 30060 => 36463, 30061 => 36468,
-30062 => 36485, 30063 => 36495, 30064 => 36500, 30065 => 36496, 30066 => 36508,
-30067 => 36510, 30068 => 35960, 30069 => 35970, 30070 => 35978, 30071 => 35973,
-30072 => 35992, 30073 => 35988, 30074 => 26011, 30075 => 35286, 30076 => 35294,
-30077 => 35290, 30078 => 35292, 30241 => 35301, 30242 => 35307, 30243 => 35311,
-30244 => 35390, 30245 => 35622, 30246 => 38739, 30247 => 38633, 30248 => 38643,
-30249 => 38639, 30250 => 38662, 30251 => 38657, 30252 => 38664, 30253 => 38671,
-30254 => 38670, 30255 => 38698, 30256 => 38701, 30257 => 38704, 30258 => 38718,
-30259 => 40832, 30260 => 40835, 30261 => 40837, 30262 => 40838, 30263 => 40839,
-30264 => 40840, 30265 => 40841, 30266 => 40842, 30267 => 40844, 30268 => 40702,
-30269 => 40715, 30270 => 40717, 30271 => 38585, 30272 => 38588, 30273 => 38589,
-30274 => 38606, 30275 => 38610, 30276 => 30655, 30277 => 38624, 30278 => 37518,
-30279 => 37550, 30280 => 37576, 30281 => 37694, 30282 => 37738, 30283 => 37834,
-30284 => 37775, 30285 => 37950, 30286 => 37995, 30287 => 40063, 30288 => 40066,
-30289 => 40069, 30290 => 40070, 30291 => 40071, 30292 => 40072, 30293 => 31267,
-30294 => 40075, 30295 => 40078, 30296 => 40080, 30297 => 40081, 30298 => 40082,
-30299 => 40084, 30300 => 40085, 30301 => 40090, 30302 => 40091, 30303 => 40094,
-30304 => 40095, 30305 => 40096, 30306 => 40097, 30307 => 40098, 30308 => 40099,
-30309 => 40101, 30310 => 40102, 30311 => 40103, 30312 => 40104, 30313 => 40105,
-30314 => 40107, 30315 => 40109, 30316 => 40110, 30317 => 40112, 30318 => 40113,
-30319 => 40114, 30320 => 40115, 30321 => 40116, 30322 => 40117, 30323 => 40118,
-30324 => 40119, 30325 => 40122, 30326 => 40123, 30327 => 40124, 30328 => 40125,
-30329 => 40132, 30330 => 40133, 30331 => 40134, 30332 => 40135, 30333 => 40138,
-30334 => 40139, 30497 => 40140, 30498 => 40141, 30499 => 40142, 30500 => 40143,
-30501 => 40144, 30502 => 40147, 30503 => 40148, 30504 => 40149, 30505 => 40151,
-30506 => 40152, 30507 => 40153, 30508 => 40156, 30509 => 40157, 30510 => 40159,
-30511 => 40162, 30512 => 38780, 30513 => 38789, 30514 => 38801, 30515 => 38802,
-30516 => 38804, 30517 => 38831, 30518 => 38827, 30519 => 38819, 30520 => 38834,
-30521 => 38836, 30522 => 39601, 30523 => 39600, 30524 => 39607, 30525 => 40536,
-30526 => 39606, 30527 => 39610, 30528 => 39612, 30529 => 39617, 30530 => 39616,
-30531 => 39621, 30532 => 39618, 30533 => 39627, 30534 => 39628, 30535 => 39633,
-30536 => 39749, 30537 => 39747, 30538 => 39751, 30539 => 39753, 30540 => 39752,
-30541 => 39757, 30542 => 39761, 30543 => 39144, 30544 => 39181, 30545 => 39214,
-30546 => 39253, 30547 => 39252, 30548 => 39647, 30549 => 39649, 30550 => 39654,
-30551 => 39663, 30552 => 39659, 30553 => 39675, 30554 => 39661, 30555 => 39673,
-30556 => 39688, 30557 => 39695, 30558 => 39699, 30559 => 39711, 30560 => 39715,
-30561 => 40637, 30562 => 40638, 30563 => 32315, 30564 => 40578, 30565 => 40583,
-30566 => 40584, 30567 => 40587, 30568 => 40594, 30569 => 37846, 30570 => 40605,
-30571 => 40607, 30572 => 40667, 30573 => 40668, 30574 => 40669, 30575 => 40672,
-30576 => 40671, 30577 => 40674, 30578 => 40681, 30579 => 40679, 30580 => 40677,
-30581 => 40682, 30582 => 40687, 30583 => 40738, 30584 => 40748, 30585 => 40751,
-30586 => 40761, 30587 => 40759, 30588 => 40765, 30589 => 40766, 30590 => 40772,
-0 => 0 );
-
-    function gb2utf8($gb) {
-	if( !trim($gb) ) return $gb;
-	$utf8='';
-	while($gb) {
-	    if( ord(substr($gb,0,1)) > 127 ) {
-		$t=substr($gb,0,2);
-		$gb=substr($gb,2);
-		$utf8 .= $this->u2utf8($this->codetable[hexdec(bin2hex($t))-0x8080]);
-	    }
-	    else { 
-		$t=substr($gb,0,1);
-		$gb=substr($gb,1);
-		$utf8 .= $this->u2utf8($t);
-	    }
-	}
-	return $utf8;
-    }
-    
-    function u2utf8($c) {
-	$str='';
-	if ($c < 0x80) {
-	    $str.=$c;
-	    }
-	else if ($c < 0x800) {
-	    $str.=chr(0xC0 | $c>>6);
-	    $str.=chr(0x80 | $c & 0x3F);
-	    }
-	else if ($c < 0x10000) {
-	    $str.=chr(0xE0 | $c>>12);
-	    $str.=chr(0x80 | $c>>6 & 0x3F);
-		$str.=chr(0x80 | $c & 0x3F);
-	}
-	else if ($c < 0x200000) {
-	    $str.=chr(0xF0 | $c>>18);
-	    $str.=chr(0x80 | $c>>12 & 0x3F);
-	    $str.=chr(0x80 | $c>>6 & 0x3F);
-	    $str.=chr(0x80 | $c & 0x3F);
-	}
-	return $str;
-    }
-
-} // END Class 
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_gradient.php b/nightly-test-server/jpgraph/jpgraph_gradient.php
deleted file mode 100644
index 08b07b6..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gradient.php
+++ /dev/null
@@ -1,425 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_GRADIENT.PHP
-// Description:	Create a color gradient
-// Created: 	2003-02-01
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// Styles for gradient color fill
-DEFINE("GRAD_VER",1);
-DEFINE("GRAD_VERT",1);
-DEFINE("GRAD_HOR",2);
-DEFINE("GRAD_MIDHOR",3);
-DEFINE("GRAD_MIDVER",4);
-DEFINE("GRAD_CENTER",5);
-DEFINE("GRAD_WIDE_MIDVER",6);
-DEFINE("GRAD_WIDE_MIDHOR",7);
-DEFINE("GRAD_LEFT_REFLECTION",8);
-DEFINE("GRAD_RIGHT_REFLECTION",9);
-DEFINE("GRAD_RAISED_PANEL",10);
-DEFINE("GRAD_DIAGONAL",11);
-  
-//===================================================
-// CLASS Gradient
-// Description: Handles gradient fills. This is to be
-// considered a "friend" class of Class Image.
-//===================================================
-class Gradient {
-    var $img=null;
-    var $numcolors=100;
-//---------------
-// CONSTRUCTOR
-    function Gradient(&$img) {
-	$this->img = &$img;
-    }
-
-
-    function SetNumColors($aNum) {
-	$this->numcolors=$aNum;
-    }
-//---------------
-// PUBLIC METHODS	
-    // Produce a gradient filled rectangle with a smooth transition between
-    // two colors.
-    // ($xl,$yt) 	Top left corner
-    // ($xr,$yb)	Bottom right
-    // $from_color	Starting color in gradient
-    // $to_color	End color in the gradient
-    // $style		Which way is the gradient oriented?
-    function FilledRectangle($xl,$yt,$xr,$yb,$from_color,$to_color,$style=1) {
-	switch( $style ) {	
-	    case GRAD_VER:  
-		$steps = round(abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for( $i=0, $x=$xl; $i < $steps; ++$i ) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yt,$x,$yb);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_HOR: 
-		$steps = round(abs($yb-$yt));
-		$delta = $yb>=$yt ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($i=0,$y=$yt; $i < $steps; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		break;
-
-	    case GRAD_MIDHOR: 
-		$steps = round(abs($yb-$yt)/2);
-		$delta = $yb >= $yt ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($y=$yt, $i=0; $i < $steps;  ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		--$i;
-		if( abs($yb-$yt) % 2 == 1 ) --$steps;
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		$this->img->Line($xl,$y,$xr,$y);
-		break;
-
-	    case GRAD_MIDVER: 
-		$steps = round(abs($xr-$xl)/2);
-		$delta = $xr>=$xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($x=$xl, $i=0; $i < $steps; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		--$i;
-		if( abs($xr-$xl) % 2 == 1 ) --$steps;
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$this->img->Line($x,$yb,$x,$yt);		
-		break;
-
-	    case GRAD_WIDE_MIDVER: 
-		$diff = round(abs($xr-$xl));
-		$steps = floor(abs($diff)/3);
-		$firststep = $diff - 2*$steps ; 
-		$delta = $xr >= $xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors);
-		for($x=$xl, $i=0; $i < $firststep; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		--$i;
-		$this->img->current_color = $colors[$i];
-		for($j=0; $j< $steps; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];				
-		    $this->img->Line($x,$yb,$x,$yt);	
-		    $x += $delta;
-		}				
-		break;
-
-	    case GRAD_WIDE_MIDHOR:
-		$diff = round(abs($yb-$yt));
-		$steps = floor(abs($diff)/3);
-		$firststep = $diff - 2*$steps ; 
-		$delta = $yb >= $yt? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors);
-		for($y=$yt, $i=0; $i < $firststep;  ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		--$i;
-		$this->img->current_color = $colors[$i];
-		for($j=0; $j < $steps; ++$j) {
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];				
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}				
-		break;	    
-
-	    case GRAD_LEFT_REFLECTION: 
-		$steps1 = round(0.3*abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;		
-
-		$from_color = $this->img->rgb->Color($from_color);
-		$adj = 1.4;
-		$m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2]))));
-		$from_color2 = array(min(255,$from_color[0]+$m), 
-				    min(255,$from_color[1]+$m), min(255,$from_color[2]+$m));		
-
-		$this->GetColArray($from_color2,$to_color,$steps1,$colors,$this->numcolors);
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps2 = max(1,round(0.08*abs($xr-$xl)));
-		$this->img->SetColor($to_color);
-		for($j=0; $j< $steps2; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps = abs($xr-$xl)-$steps1-$steps2;
-		$this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors);   
-		$n = count($colors);
-		for($i=0; $i < $steps && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_RIGHT_REFLECTION: 
-		$steps1 = round(0.7*abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;
-
-		$this->GetColArray($from_color,$to_color,$steps1,$colors,$this->numcolors);
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps2 = max(1,round(0.08*abs($xr-$xl)));
-		$this->img->SetColor($to_color);
-		for($j=0; $j< $steps2; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-
-		$from_color = $this->img->rgb->Color($from_color);
-		$adj = 1.4;
-		$m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2]))));
-		$from_color = array(min(255,$from_color[0]+$m), 
-				    min(255,$from_color[1]+$m), min(255,$from_color[2]+$m));		
-
-		$steps = abs($xr-$xl)-$steps1-$steps2;
-		$this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors);   
-		$n = count($colors);
-		for($i=0; $i < $steps && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_CENTER: 
-		$steps = ceil(min(($yb-$yt)+1,($xr-$xl)+1)/2);	
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		$dx = ($xr-$xl)/2;
-		$dy = ($yb-$yt)/2;
-		$x=$xl;$y=$yt;$x2=$xr;$y2=$yb;
-		$n = count($colors);
-		for($x=$xl, $i=0; $x < $xl+$dx && $y < $yt+$dy && $i < $n; ++$x, ++$y, --$x2, --$y2, ++$i) {
-		    $this->img->current_color = $colors[$i];			
-		    $this->img->Rectangle($x,$y,$x2,$y2);
-		}
-		$this->img->Line($x,$y,$x2,$y2);
-		break;
-		
-	    case GRAD_RAISED_PANEL:
-		// right to left 
-		$steps1 = $xr-$xl; 
-		$delta = $xr>=$xl ? 1 : -1; 
-		$this->GetColArray($to_color,$from_color,$steps1,$colors,$this->numcolors); 
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) { 
-		    $this->img->current_color = $colors[$i]; 
-		    $this->img->Line($x,$yb,$x,$yt); 
-		    $x += $delta; 
-		} 
-		
-		// left to right 
-		$xr -= 3; 
-		$xl += 3; 
-		$yb -= 3; 
-		$yt += 3; 
-		$steps2 = $xr-$xl; 
-		$delta = $xr>=$xl ? 1 : -1; 
-		for($x=$xl, $j=$steps2; $j >= 0; --$j) { 
-		    $this->img->current_color = $colors[$j]; 
-		    $this->img->Line($x,$yb,$x,$yt); 
-		    $x += $delta; 
-		} 
-		break;
-
-	    case GRAD_DIAGONAL:
-		// use the longer dimension to determine the required number of steps.
-		// first loop draws from one corner to the mid-diagonal and the second
-		// loop draws from the mid-diagonal to the opposing corner.
-		if($xr-$xl > $yb - $yt) {
-		    // width is greater than height -> use x-dimension for steps
-		    $steps = $xr-$xl;
-		    $delta = $xr>=$xl ? 1 : -1;
-		    $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors);
-		    $n = count($colors);
-
-		    for($x=$xl, $i=0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$i];
-			$y = $yt+($i/$steps)*($yb-$yt)*$delta;
-			$this->img->Line($x,$yt,$xl,$y);
-			$x += $delta;
-		    }
-
-		    for($x=$xl, $i = 0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$steps+$i];
-			$y = $yt+($i/$steps)*($yb-$yt)*$delta;
-			$this->img->Line($x,$yb,$xr,$y);
-			$x += $delta;
-		    }
-		} else {
-		    // height is greater than width -> use y-dimension for steps
-		    $steps = $yb-$yt;
-		    $delta = $yb>=$yt ? 1 : -1;
-		    $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors);
-		    $n = count($colors);
-		    
-		    for($y=$yt, $i=0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$i];
-			$x = $xl+($i/$steps)*($xr-$xl)*$delta;
-			$this->img->Line($x,$yt,$xl,$y);
-			$y += $delta;
-		    }
-
-		    for($y=$yt, $i = 0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$steps+$i];
-			$x = $xl+($i/$steps)*($xr-$xl)*$delta;
-			$this->img->Line($x,$yb,$xr,$y);
-			$x += $delta;
-		    }
-
-		}
-		break;
-
-	    default:
-		JpGraphError::RaiseL(7001,$style);
-//("Unknown gradient style (=$style).");
-		break;
-	}
-    }
-
-    // Fill a special case of a polygon with a flat bottom
-    // with a gradient. Can be used for filled line plots.
-    // Please note that this is NOT a generic gradient polygon fill
-    // routine. It assumes that the bottom is flat (like a drawing
-    // of a mountain)
-    function FilledFlatPolygon($pts,$from_color,$to_color) {
-	if( count($pts) == 0 ) return;
-	
-	$maxy=$pts[1];
-	$miny=$pts[1];		
-	$n = count($pts) ;
-	for( $i=0, $idx=0; $i < $n; $i += 2) {
-	    $x = round($pts[$i]);
-	    $y = round($pts[$i+1]);
-	    $miny = min($miny,$y);
-	    $maxy = max($maxy,$y);
-	}
-	    
-	$colors = array();
-	$this->GetColArray($from_color,$to_color,abs($maxy-$miny)+1,$colors,$this->numcolors);
-	for($i=$miny, $idx=0; $i <= $maxy; ++$i ) {
-	    $colmap[$i] = $colors[$idx++]; 
-	}
-
-	$n = count($pts)/2 ;
-	$idx = 0 ;
-	while( $idx < $n-1 ) {
-	    $p1 = array(round($pts[$idx*2]),round($pts[$idx*2+1]));
-	    $p2 = array(round($pts[++$idx*2]),round($pts[$idx*2+1]));
-		
-	    // Find the largest rectangle we can fill
-	    $y = max($p1[1],$p2[1]) ;
-	    for($yy=$maxy; $yy > $y; --$yy) {
-		$this->img->current_color = $colmap[$yy];
-		$this->img->Line($p1[0],$yy,$p2[0]-1,$yy);
-	    }
-	    
-	    if( $p1[1] == $p2[1] ) continue; 
-
-	    // Fill the rest using lines (slow...)
-	    $slope = ($p2[0]-$p1[0])/($p1[1]-$p2[1]);
-	    $x1 = $p1[0];
-	    $x2 = $p2[0]; //-1;
-	    $start = $y;
-	    if( $p1[1] > $p2[1] ) {
-		while( $y >= $p2[1] ) {
-		    $x1=$slope*($start-$y)+$p1[0];
-		    $this->img->current_color = $colmap[$y];
-		    $this->img->Line($x1,$y,$x2,$y);
-		    --$y;
-		} 
-	    }
-	    else {
-		while( $y >= $p1[1] ) {
-		    $x2=$p2[0]+$slope*($start-$y);
-		    $this->img->current_color = $colmap[$y];
-		    $this->img->Line($x1,$y,$x2,$y);
-		    --$y;
-		} 
-	    }
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-    // Add to the image color map the necessary colors to do the transition
-    // between the two colors using $numcolors intermediate colors
-    function GetColArray($from_color,$to_color,$arr_size,&$colors,$numcols=100) {
-	if( $arr_size==0 ) return;
-	// If color is given as text get it's corresponding r,g,b values
-	$from_color = $this->img->rgb->Color($from_color);
-	$to_color = $this->img->rgb->Color($to_color);
-		
-	$rdelta=($to_color[0]-$from_color[0])/$numcols;
-	$gdelta=($to_color[1]-$from_color[1])/$numcols;
-	$bdelta=($to_color[2]-$from_color[2])/$numcols;
-	$colorsperstep	= $numcols/$arr_size;
-	$prevcolnum	= -1;
-	$from_alpha = $from_color[3];
-	$to_alpha = $to_color[3];
-	$adelta = ( $to_alpha - $from_alpha ) / $numcols ;
-	for ($i=0; $i < $arr_size; ++$i) {
-	    $colnum = floor($colorsperstep*$i);
-	    if ( $colnum == $prevcolnum ) 
-		$colors[$i]	= $colidx;
-	    else {
-		$r = floor($from_color[0] + $colnum*$rdelta);
-		$g = floor($from_color[1] + $colnum*$gdelta);
-		$b = floor($from_color[2] + $colnum*$bdelta);
-		$alpha = $from_alpha + $colnum*$adelta;
-		$colidx = $this->img->rgb->Allocate(sprintf("#%02x%02x%02x",$r,$g,$b),$alpha);
-		$colors[$i] = $colidx;
-	    }
-	    $prevcolnum = $colnum;
-	}
-    }	
-} // Class
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_iconplot.php b/nightly-test-server/jpgraph/jpgraph_iconplot.php
deleted file mode 100644
index 895fe22..0000000
--- a/nightly-test-server/jpgraph/jpgraph_iconplot.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ICONPLOT.PHP
-// Description:	PHP4 Graph Plotting library. Extension module.
-// Created: 	2004-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-//===================================================
-// CLASS IconPlot
-// Description: Make it possible to add a (small) image
-// to the graph
-//===================================================
-class IconPlot {
-    var $iHorAnchor='left',$iVertAnchor='top';
-    var $iX=0,$iY=0;
-    var $iFile='';
-    var $iScale=1.0,$iMix=100;
-    var $iAnchors = array('left','right','top','bottom','center');
-    var $iCountryFlag='',$iCountryStdSize=3;
-    var $iScalePosY=null,$iScalePosX=null;
-    var $iImgString='';
-
-    function IconPlot($aFile="",$aX=0,$aY=0,$aScale=1.0,$aMix=100) {
-	$this->iFile = $aFile;
-	$this->iX=$aX;
-	$this->iY=$aY;
-	$this->iScale= $aScale;
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001); //('Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix ;
-    }
-
-    function CreateFromString($aStr) {
-	$this->iImgString = $aStr;
-    }
-
-    function SetCountryFlag($aFlag,$aX=0,$aY=0,$aScale=1.0,$aMix=100,$aStdSize=3) {
-	$this->iCountryFlag = $aFlag;
-	$this->iX=$aX;
-	$this->iY=$aY;
-	$this->iScale= $aScale;
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001);//'Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix;
-	$this->iCountryStdSize = $aStdSize;
-    }
-
-    function SetPos($aX,$aY) {
-	$this->iX=$aX;
-	$this->iY=$aY;
-    }
-
-    function SetScalePos($aX,$aY) {
-	$this->iScalePosX = $aX;
-	$this->iScalePosY = $aY;
-    }
-
-    function SetScale($aScale) {
-	$this->iScale = $aScale;
-    }
-
-    function SetMix($aMix) {
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001);//('Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix ;
-    }
-
-    function SetAnchor($aXAnchor='left',$aYAnchor='center') {
-	if( !in_array($aXAnchor,$this->iAnchors) ||
-	    !in_array($aYAnchor,$this->iAnchors) ) {
-	    JpGraphError::RaiseL(8002);//("Anchor position for icons must be one of 'top', 'bottom', 'left', 'right' or 'center'");
-	}
-	$this->iHorAnchor=$aXAnchor;
-	$this->iVertAnchor=$aYAnchor;
-    }
-    
-    function PreStrokeAdjust($aGraph) {
-	// Nothing to do ...
-    }
-
-    function DoLegend($aGraph) {
-	// Nothing to do ...
-    }
-
-    function Max() {
-	return array(false,false);
-    }
-
-
-    // The next four function are framework function tht gets called
-    // from Gantt and is not menaiungfull in the context of Icons but
-    // they must be implemented to avoid errors.
-    function GetMaxDate() { return false;   }
-    function GetMinDate() { return false;   }
-    function GetLineNbr() { return 0;   }
-    function GetAbsHeight() {return 0;  }
-
-
-    function Min() {
-	return array(false,false);
-    }
-
-    function StrokeMargin(&$aImg) {
-	return true;
-    }
-
-    function Stroke(&$aImg,$axscale,$ayscale) {
-	$this->StrokeWithScale($aImg,$axscale,$ayscale);
-    }
-
-    function StrokeWithScale(&$aImg,$axscale,$ayscale) {
-	if( $this->iScalePosX === null ||
-	    $this->iScalePosY === null ) {
-	    $this->_Stroke($aImg);
-	}
-	else {
-	    $this->_Stroke($aImg,
-			  round($axscale->Translate($this->iScalePosX)),
-			  round($ayscale->Translate($this->iScalePosY)));
-	}
-    }
-
-    function GetWidthHeight() {
-	$dummy=0;
-	return $this->_Stroke($dummy,null,null,true);
-    }
-
-    function _Stroke(&$aImg,$x=null,$y=null,$aReturnWidthHeight=false) {
-	if( $this->iFile != '' && $this->iCountryFlag != '' ) {
-	    JpGraphError::RaiseL(8003);//('It is not possible to specify both an image file and a country flag for the same icon.');	
-	}
-	if( $this->iFile != '' ) {
-	    $gdimg = Graph::LoadBkgImage('',$this->iFile);
-	}
-	elseif( $this->iImgString != '') {
-	    $gdimg = Image::CreateFromString($this->iImgString);
-	}
-	else {
-	    if( ! class_exists('FlagImages') ) {
-		JpGraphError::RaiseL(8004);//('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.');
-	    }
-	    $fobj = new FlagImages($this->iCountryStdSize);
-	    $dummy='';
-	    $gdimg = $fobj->GetImgByName($this->iCountryFlag,$dummy);
-	}
-
-	$iconw = imagesx($gdimg);
-	$iconh = imagesy($gdimg);
-	
-	if( $aReturnWidthHeight ) {
-	    return array(round($iconw*$this->iScale),round($iconh*$this->iScale));
-	}
-
-	if( $x !== null && $y !== null ) {
-	    $this->iX = $x; $this->iY = $y;
-	}
-	if( $this->iX >= 0  && $this->iX <= 1.0 ) {
-	    $w = imagesx($aImg->img);
-	    $this->iX = round($w*$this->iX);
-	}
-	if( $this->iY >= 0  && $this->iY <= 1.0 ) {
-	    $h = imagesy($aImg->img);
-	    $this->iY = round($h*$this->iY);
-	}
-
-	if( $this->iHorAnchor == 'center' ) 
-	    $this->iX -= round($iconw*$this->iScale/2);
-	if( $this->iHorAnchor == 'right' ) 
-	    $this->iX -= round($iconw*$this->iScale);
-	if( $this->iVertAnchor == 'center' ) 
-	    $this->iY -= round($iconh*$this->iScale/2);
-	if( $this->iVertAnchor == 'bottom' ) 
-	    $this->iY -= round($iconh*$this->iScale);
-
-	$aImg->CopyMerge($gdimg,$this->iX,$this->iY,0,0,
-			 round($iconw*$this->iScale),round($iconh*$this->iScale),
-			 $iconw,$iconh,
-			 $this->iMix);
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_imgtrans.php b/nightly-test-server/jpgraph/jpgraph_imgtrans.php
deleted file mode 100644
index f3b974e..0000000
--- a/nightly-test-server/jpgraph/jpgraph_imgtrans.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_IMGTRANS.PHP
-// Description:	Extension for JpGraph to do some simple img transformations
-// Created: 	2003-09-06
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-//------------------------------------------------------------------------
-// Class ImgTrans
-// Perform some simple image transformations. 
-//------------------------------------------------------------------------
-class ImgTrans {
-    var $gdImg=null;
-
-    function ImgTrans($aGdImg) {
-	// Constructor
-	$this->gdImg = $aGdImg;
-    }
-
-    // --------------------------------------------------------------------
-    // _TransVert3D() and _TransHor3D() are helper methods to 
-    // Skew3D(). 
-    // --------------------------------------------------------------------
-    function _TransVert3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_DOWN,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) {
-
-
-	// Parameter check
-	if( $aHorizonPos < 0 || $aHorizonPos > 1.0 ) {
-	    JpGraphError::RaiseL(9001);
-//("Value for image transformation out of bounds.\nVanishing point on horizon must be specified as a value between 0 and 1.");
-	}
-
-	$w = imagesx($aGdImg);
-	$h = imagesy($aGdImg);
-
-	// Create new image
-	$ww = $w;
-	if( $aMinSize ) 
-	    $hh = ceil($h * $aHorizon / ($aSkewDist+$h));
-	else 
-	    $hh = $h;
-	
-	$newgdh = imagecreatetruecolor($ww,$hh);
-	$crgb = new RGB( $newgdh );
-	$fillColor = $crgb->Allocate($aFillColor);
-	imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor);
-
-	if( $aBorder ) {
-	    $colidx = $crgb->Allocate($aBorder);
-	    imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx);
-	}
-
-	$mid = round($w * $aHorizonPos);
-    
-	$last=$h;
-	for($y=0; $y < $h; ++$y) {	
-
-	    $yp = $h-$y-1;
-	    $yt = floor($yp * $aHorizon / ($aSkewDist + $yp));	    
-
-	    if( !$aQuality ) {
-		if( $last <= $yt ) continue ;
-		$last = $yt;
-	    }
-
-	    for($x=0; $x < $w; ++$x) {	    
-		$xt = ($x-$mid) * $aSkewDist / ($aSkewDist + $yp);
-		if( $aDir == SKEW3D_UP ) 
-		    $rgb = imagecolorat($aGdImg,$x,$h-$y-1);
-		else
-		    $rgb = imagecolorat($aGdImg,$x,$y);
-		$r = ($rgb >> 16) & 0xFF;
-		$g = ($rgb >> 8) & 0xFF;
-		$b = $rgb & 0xFF;    
-		$colidx = imagecolorallocate($newgdh,$r,$g,$b);	
-		$xt = round($xt+$mid);
-		if( $aDir == SKEW3D_UP ) {
-		    $syt = $yt;
-		}
-		else {
-		    $syt = $hh-$yt-1;
-		}
-
-		if( !empty($set[$yt]) ) {
-		    $nrgb = imagecolorat($newgdh,$xt,$syt);
-		    $nr = ($nrgb >> 16) & 0xFF;
-		    $ng = ($nrgb >> 8) & 0xFF;
-		    $nb = $nrgb & 0xFF;    
-		    $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2),
-						 floor(($g+$ng)/2),floor(($b+$nb)/2));	
-		}	
-
-		imagesetpixel($newgdh,$xt,$syt,$colidx);	
-	    }
-
-	    $set[$yt] = true;	
-	}
-
-	return $newgdh;
-    }
-
-    // --------------------------------------------------------------------
-    // _TransVert3D() and _TransHor3D() are helper methods to 
-    // Skew3D(). 
-    // --------------------------------------------------------------------
-    function _TransHor3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_LEFT,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) {
-
-	$w = imagesx($aGdImg);
-	$h = imagesy($aGdImg);
-
-	// Create new image
-	$hh = $h;
-	if( $aMinSize ) 
-	    $ww = ceil($w * $aHorizon / ($aSkewDist+$w));
-	else 
-	    $ww = $w;
-	
-	$newgdh = imagecreatetruecolor($ww,$hh);
-	$crgb = new RGB( $newgdh );
-	$fillColor = $crgb->Allocate($aFillColor);
-	imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor);
-
-	if( $aBorder ) {
-	    $colidx = $crgb->Allocate($aBorder);
-	    imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx);
-	}
-
-	$mid = round($h * $aHorizonPos);
-
-	$last = -1; 
-	for($x=0; $x < $w-1; ++$x) {	    
-	    $xt = floor($x * $aHorizon / ($aSkewDist + $x));
-	    if( !$aQuality ) {
-		if( $last >= $xt ) continue ;
-		$last = $xt;
-	    }
-
-	    for($y=0; $y < $h; ++$y) {	
-		$yp = $h-$y-1;
-		$yt = ($yp-$mid) * $aSkewDist / ($aSkewDist + $x);
-
-		if( $aDir == SKEW3D_RIGHT ) 
-		    $rgb = imagecolorat($aGdImg,$w-$x-1,$y);
-		else
-		    $rgb = imagecolorat($aGdImg,$x,$y);
-		$r = ($rgb >> 16) & 0xFF;
-		$g = ($rgb >> 8) & 0xFF;
-		$b = $rgb & 0xFF;    
-		$colidx = imagecolorallocate($newgdh,$r,$g,$b);	
-		$yt = floor($hh-$yt-$mid-1);
-		if( $aDir == SKEW3D_RIGHT ) {
-		    $sxt = $ww-$xt-1;
-		}
-		else
-		    $sxt = $xt ;
-
-		if( !empty($set[$xt]) ) {
-		    $nrgb = imagecolorat($newgdh,$sxt,$yt);
-		    $nr = ($nrgb >> 16) & 0xFF;
-		    $ng = ($nrgb >> 8) & 0xFF;
-		    $nb = $nrgb & 0xFF;    
-		    $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2),
-						 floor(($g+$ng)/2),floor(($b+$nb)/2));	
-		}
-		imagesetpixel($newgdh,$sxt,$yt,$colidx);	
-	    }
-
-	    $set[$xt] = true;
-	}
-
-	return $newgdh;
-    }
-
-    // --------------------------------------------------------------------
-    // Skew image for the apperance of a 3D effect
-    // This transforms an image into a 3D-skewed version
-    // of the image. The transformation is specified by giving the height
-    // of the artificial horizon and specifying a "skew" factor which
-    // is the distance on the horizon line between the point of 
-    // convergence and perspective line.
-    //
-    // The function returns the GD handle of the transformed image
-    // leaving the original image untouched.
-    //
-    // Parameters:
-    // * $aGdImg, GD handle to the image to be transformed
-    // * $aHorizon, Distance to the horizon 
-    // * $aSkewDist, Distance from the horizon point of convergence
-    //   on the horizon line to the perspective points. A larger 
-    //   value will fore-shorten the image more
-    // * $aDir, parameter specifies type of convergence. This of this 
-    //   as the walls in a room you are looking at. This specifies if the
-    //   image should be applied on the left,right,top or bottom walls.
-    // * $aMinSize, true=make the new image just as big as needed,
-    //   false = keep the image the same size as the original image
-    // * $aFillColor, Background fill color in the image
-    // * $aHiQuality, true=performa some interpolation that improves
-    //   the image quality but at the expense of performace. Enabling
-    //   high quality will have a dramatic effect on the time it takes
-    //   to transform an image.
-    // * $aBorder, if set to anything besides false this will draw a 
-    //   a border of the speciied color around the image
-    // --------------------------------------------------------------------
-    function Skew3D($aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) {
-	return $this->_Skew3D($this->gdImg,$aHorizon,$aSkewDist,$aDir,$aHiQuality,
-			      $aMinSize,$aFillColor,$aBorder);
-    }
-
-    function _Skew3D($aGdImg,$aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) {
-	if( $aDir == SKEW3D_DOWN || $aDir == SKEW3D_UP )
-	    return $this->_TransVert3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder);
-	else
-	    return $this->_TransHor3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder);
-
-    }
-    
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_line.php b/nightly-test-server/jpgraph/jpgraph_line.php
deleted file mode 100644
index e47fd8b..0000000
--- a/nightly-test-server/jpgraph/jpgraph_line.php
+++ /dev/null
@@ -1,625 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_LINE.PHP
-// Description:	Line plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once ('jpgraph_plotmark.inc');
-
-// constants for the (filled) area
-DEFINE("LP_AREA_FILLED", true);
-DEFINE("LP_AREA_NOT_FILLED", false);
-DEFINE("LP_AREA_BORDER",false);
-DEFINE("LP_AREA_NO_BORDER",true);
-
-//===================================================
-// CLASS LinePlot
-// Description: 
-//===================================================
-class LinePlot extends Plot{
-    var $filled=false;
-    var $fill_color='blue';
-    var $mark=null;
-    var $step_style=false, $center=false;
-    var $line_style=1;	// Default to solid
-    var $filledAreas = array(); // array of arrays(with min,max,col,filled in them)
-    var $barcenter=false;  // When we mix line and bar. Should we center the line in the bar.
-    var $fillFromMin = false ;
-    var $fillgrad=false,$fillgrad_fromcolor='navy',$fillgrad_tocolor='silver',$fillgrad_numcolors=100;
-    var $iFastStroke=false;
-
-//---------------
-// CONSTRUCTOR
-    function LinePlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);
-	$this->mark = new PlotMark();
-    }
-//---------------
-// PUBLIC METHODS	
-
-    // Set style, filled or open
-    function SetFilled($aFlag=true) {
-    	JpGraphError::RaiseL(10001);//('LinePlot::SetFilled() is deprecated. Use SetFillColor()');
-    }
-	
-    function SetBarCenter($aFlag=true) {
-	$this->barcenter=$aFlag;
-    }
-
-    function SetStyle($aStyle) {
-	$this->line_style=$aStyle;
-    }
-	
-    function SetStepStyle($aFlag=true) {
-	$this->step_style = $aFlag;
-    }
-	
-    function SetColor($aColor) {
-	parent::SetColor($aColor);
-    }
-	
-    function SetFillFromYMin($f=true) {
-	$this->fillFromMin = $f ;
-    }
-    
-    function SetFillColor($aColor,$aFilled=true) {
-	$this->fill_color=$aColor;
-	$this->filled=$aFilled;
-    }
-
-    function SetFillGradient($aFromColor,$aToColor,$aNumColors=100,$aFilled=true) {
-	$this->fillgrad_fromcolor = $aFromColor;
-	$this->fillgrad_tocolor   = $aToColor;
-	$this->fillgrad_numcolors = $aNumColors;
-	$this->filled = $aFilled;
-	$this->fillgrad = true;
-    }
-	
-    function Legend(&$graph) {
-	if( $this->legend!="" ) {
-	    if( $this->filled && !$this->fillgrad ) {
-		$graph->legend->Add($this->legend,
-				    $this->fill_color,$this->mark,0,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    } 
-	    elseif( $this->fillgrad ) {
-		$color=array($this->fillgrad_fromcolor,$this->fillgrad_tocolor);
-		// In order to differentiate between gradients and cooors specified as an RGB triple
-		$graph->legend->Add($this->legend,$color,"",-2 /* -GRAD_HOR */,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }	
-	    else {
-		$graph->legend->Add($this->legend,
-				    $this->color,$this->mark,$this->line_style,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }
-	}	
-    }
-
-    function AddArea($aMin=0,$aMax=0,$aFilled=LP_AREA_NOT_FILLED,$aColor="gray9",$aBorder=LP_AREA_BORDER) {
-	if($aMin > $aMax) {
-	    // swap
-	    $tmp = $aMin;
-	    $aMin = $aMax;
-	    $aMax = $tmp;
-	} 
-	$this->filledAreas[] = array($aMin,$aMax,$aColor,$aFilled,$aBorder);
-    }
-	
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-
-	// If another plot type have already adjusted the
-	// offset we don't touch it.
-	// (We check for empty in case the scale is  a log scale 
-	// and hence doesn't contain any xlabel_offset)
-	if( empty($graph->xaxis->scale->ticks->xlabel_offset) ||
-	    $graph->xaxis->scale->ticks->xlabel_offset == 0 ) {
-	    if( $this->center ) {
-		++$this->numpoints;
-		$a=0.5; $b=0.5;
-	    } else {
-		$a=0; $b=0;
-	    }
-	    $graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	    $graph->SetTextScaleOff($b);						
-	    //$graph->xaxis->scale->ticks->SupressMinorTickMarks();
-	}
-    }
-
-    function SetFastStroke($aFlg=true) {
-	$this->iFastStroke = $aFlg;
-    }
-
-    function FastStroke(&$img,&$xscale,&$yscale,$aStartPoint=0,$exist_x=true) {
-	// An optimized stroke for many data points with no extra 
-	// features but 60% faster. You can't have values or line styles, or null
-	// values in plots.
-	$numpoints=count($this->coords[0]);
-	if( $this->barcenter ) 
-	    $textadj = 0.5-$xscale->text_scale_off;
-	else
-	    $textadj = 0;
-
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);
-	$pnts=$aStartPoint;
-	while( $pnts < $numpoints ) {	    
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $y=$this->coords[0][$pnts];
-	    $yt = $yscale->Translate($y);    
-	    if( is_numeric($y) ) {
-		$cord[] = $xt;
-		$cord[] = $yt;
-	    }
-	    elseif( $y == '-' && $pnts > 0 ) {
-		// Just ignore
-	    }
-	    else {
-		JpGraphError::RaiseL(10002);//('Plot too complicated for fast line Stroke. Use standard Stroke()');
-		return;
-	    }
-	    ++$pnts;
-	} // WHILE
-
-	$img->Polygon($cord,false,true);
-
-    }
-	
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$idx=0;
-	$numpoints=count($this->coords[0]);
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-
-	if( $this->barcenter ) 
-	    $textadj = 0.5-$xscale->text_scale_off;
-	else
-	    $textadj = 0;
-
-	// Find the first numeric data point
-	$startpoint=0;
-	while( $startpoint < $numpoints && !is_numeric($this->coords[0][$startpoint]) )
-	    ++$startpoint;
-
-	// Bail out if no data points
-	if( $startpoint == $numpoints ) 
-	    return;
-
-	if( $this->iFastStroke ) {
-	    $this->FastStroke($img,$xscale,$yscale,$startpoint,$exist_x);
-	    return;
-	}
-
-	if( $exist_x )
-	    $xs=$this->coords[1][$startpoint];
-	else
-	    $xs= $textadj+$startpoint;
-
-	$img->SetStartPoint($xscale->Translate($xs),
-			    $yscale->Translate($this->coords[0][$startpoint]));
-
-	if( $this->filled ) {
-	    $min = $yscale->GetMinVal();
-	    if( $min > 0 || $this->fillFromMin )
-		$fillmin = $yscale->scale_abs[0];//Translate($min);
-	    else
-		$fillmin = $yscale->Translate(0);
-
-	    $cord[$idx++] = $xscale->Translate($xs);
-	    $cord[$idx++] = $fillmin;
-	}
-	$xt = $xscale->Translate($xs);
-	$yt = $yscale->Translate($this->coords[0][$startpoint]);
-	$cord[$idx++] = $xt;
-	$cord[$idx++] = $yt;
-	$yt_old = $yt;
-	$xt_old = $xt;
-	$y_old = $this->coords[0][$startpoint];
-
-	$this->value->Stroke($img,$this->coords[0][$startpoint],$xt,$yt);
-
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);
-	$img->SetLineStyle($this->line_style);
-	$pnts=$startpoint+1;
-	$firstnonumeric = false;
-	while( $pnts < $numpoints ) {
-	    
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $yt = $yscale->Translate($this->coords[0][$pnts]);
-	    
-	    $y=$this->coords[0][$pnts];
-	    if( $this->step_style ) {
-		// To handle null values within step style we need to record the
-		// first non numeric value so we know from where to start if the
-		// non value is '-'. 
-		if( is_numeric($y) ) {
-		    $firstnonumeric = false;
-		    if( is_numeric($y_old) ) {
-			$img->StyleLine($xt_old,$yt_old,$xt,$yt_old);
-			$img->StyleLine($xt,$yt_old,$xt,$yt);
-		    }
-		    elseif( $y_old == '-' ) {
-			$img->StyleLine($xt_first,$yt_first,$xt,$yt_first);
-			$img->StyleLine($xt,$yt_first,$xt,$yt);			
-		    }
-		    else {
-			$yt_old = $yt;
-			$xt_old = $xt;
-		    }
-		    $cord[$idx++] = $xt;
-		    $cord[$idx++] = $yt_old;
-		    $cord[$idx++] = $xt;
-		    $cord[$idx++] = $yt;
-		}
-		elseif( $firstnonumeric==false ) {
-		    $firstnonumeric = true;
-		    $yt_first = $yt_old;
-		    $xt_first = $xt_old;
-		}
-	    }
-	    else {
-		$tmp1=$y;
-		$prev=$this->coords[0][$pnts-1]; 		 			
-		if( $tmp1==='' || $tmp1===NULL || $tmp1==='X' ) $tmp1 = 'x';
-		if( $prev==='' || $prev===null || $prev==='X' ) $prev = 'x';
-
-		if( is_numeric($y) || (is_string($y) && $y != '-') ) {
-		    if( is_numeric($y) && (is_numeric($prev) || $prev === '-' ) ) { 
-			$img->StyleLineTo($xt,$yt);
-		    } 
-		    else {
-			$img->SetStartPoint($xt,$yt);
-		    }
-		}
-		if( $this->filled && $tmp1 !== '-' ) {
-		    if( $tmp1 === 'x' ) { 
-			$cord[$idx++] = $cord[$idx-3];
-			$cord[$idx++] = $fillmin;
-		    }
-		    elseif( $prev === 'x' ) {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $fillmin;
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt; 			    
-		    }
-		    else {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt;
-		    }
-		}
-		else {
-		    if( is_numeric($tmp1)  && (is_numeric($prev) || $prev === '-' ) ) {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt;
-		    } 
-		}
-	    }
-	    $yt_old = $yt;
-	    $xt_old = $xt;
-	    $y_old = $y;
-
-	    $this->StrokeDataValue($img,$this->coords[0][$pnts],$xt,$yt);
-
-	    ++$pnts;
-	}	
-
-	if( $this->filled  ) {
-	    $cord[$idx++] = $xt;
-	    if( $min > 0 || $this->fillFromMin )
-		$cord[$idx++] = $yscale->Translate($min);
-	    else
-		$cord[$idx++] = $yscale->Translate(0);
-	    if( $this->fillgrad ) {
-		$img->SetLineWeight(1);
-		$grad = new Gradient($img);
-		$grad->SetNumColors($this->fillgrad_numcolors);
-		$grad->FilledFlatPolygon($cord,$this->fillgrad_fromcolor,$this->fillgrad_tocolor);
-		$img->SetLineWeight($this->weight);
-	    }
-	    else {
-		$img->SetColor($this->fill_color);	
-		$img->FilledPolygon($cord);
-	    }
-	    if( $this->line_weight > 0 ) {
-		$img->SetColor($this->color);
-		$img->Polygon($cord);
-	    }
-	}
-
-	if(!empty($this->filledAreas)) {
-
-	    $minY = $yscale->Translate($yscale->GetMinVal());
-	    $factor = ($this->step_style ? 4 : 2);
-
-	    for($i = 0; $i < sizeof($this->filledAreas); ++$i) {
-		// go through all filled area elements ordered by insertion
-		// fill polygon array
-		$areaCoords[] = $cord[$this->filledAreas[$i][0] * $factor];
-		$areaCoords[] = $minY;
-
-		$areaCoords =
-		    array_merge($areaCoords,
-				array_slice($cord,
-					    $this->filledAreas[$i][0] * $factor,
-					    ($this->filledAreas[$i][1] - $this->filledAreas[$i][0] + ($this->step_style ? 0 : 1))  * $factor));
-		$areaCoords[] = $areaCoords[sizeof($areaCoords)-2]; // last x
-		$areaCoords[] = $minY; // last y
-	    
-		if($this->filledAreas[$i][3]) {
-		    $img->SetColor($this->filledAreas[$i][2]);
-		    $img->FilledPolygon($areaCoords);
-		    $img->SetColor($this->color);
-		}
-		// Check if we should draw the frame.
-		// If not we still re-draw the line since it might have been
-		// partially overwritten by the filled area and it doesn't look
-		// very good.
-		// TODO: The behaviour is undefined if the line does not have
-		// any line at the position of the area.
-		if( $this->filledAreas[$i][4] )
-		    $img->Polygon($areaCoords);
-		else
-	    	    $img->Polygon($cord);
-
-		$areaCoords = array();
-	    }
-	}	
-
-	if( $this->mark->type == -1 || $this->mark->show == false )
-	    return;
-
-	for( $pnts=0; $pnts<$numpoints; ++$pnts) {
-
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $yt = $yscale->Translate($this->coords[0][$pnts]);
-
-	    if( is_numeric($this->coords[0][$pnts]) ) {
-		if( !empty($this->csimtargets[$pnts]) ) {
-		    $this->mark->SetCSIMTarget($this->csimtargets[$pnts]);
-		    $this->mark->SetCSIMAlt($this->csimalts[$pnts]);
-		}
-		if( $exist_x )
-		    $x=$this->coords[1][$pnts];
-		else
-		    $x=$pnts;
-		$this->mark->SetCSIMAltVal($this->coords[0][$pnts],$x);
-		$this->mark->Stroke($img,$xt,$yt);	
-		$this->csimareas .= $this->mark->GetCSIMAreas();
-		$this->StrokeDataValue($img,$this->coords[0][$pnts],$xt,$yt);
-	    }
-	}
-
-
-    }
-} // Class
-
-
-//===================================================
-// CLASS AccLinePlot
-// Description: 
-//===================================================
-class AccLinePlot extends Plot {
-    var $plots=null,$nbrplots=0,$numpoints=0;
-    var $iStartEndZero=true;
-//---------------
-// CONSTRUCTOR
-    function AccLinePlot($plots) {
-        $this->plots = $plots;
-	$this->nbrplots = count($plots);
-	$this->numpoints = $plots[0]->numpoints;
-
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    $this->LineInterpolate($this->plots[$i]->coords[0]);
-	}	
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n=count($this->plots);
-	for($i=0; $i < $n; ++$i )
-	    $this->plots[$i]->DoLegend($graph);
-    }
-	
-    function Max() {
-	list($xmax) = $this->plots[0]->Max();
-	$nmax=0;
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $nc = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$nc);
-	    list($x) = $this->plots[$i]->Max();
-	    $xmax = Max($xmax,$x);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for line $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		$y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymax[$i] = $y;
-	}
-	$ymax = max($ymax);
-	return array($xmax,$ymax);
-    }	
-
-    function Min() {
-	$nmax=0;
-	list($xmin,$ysetmin) = $this->plots[0]->Min();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $nc = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$nc);
-	    list($x,$y) = $this->plots[$i]->Min();
-	    $xmin = Min($xmin,$x);
-	    $ysetmin = Min($y,$ysetmin);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for line $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots min y-value since that
-	    // would in most cases give to small y-value.
-	    $y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		$y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymin[$i] = $y;
-	}
-	$ymin = Min($ysetmin,Min($ymin));
-	return array($xmin,$ymin);
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-
-	// If another plot type have already adjusted the
-	// offset we don't touch it.
-	// (We check for empty in case the scale is  a log scale 
-	// and hence doesn't contain any xlabel_offset)
-	
-	if( empty($graph->xaxis->scale->ticks->xlabel_offset) ||
-	    $graph->xaxis->scale->ticks->xlabel_offset == 0 ) {
-	    if( $this->center ) {
-		++$this->numpoints;
-		$a=0.5; $b=0.5;
-	    } else {
-		$a=0; $b=0;
-	    }
-	    $graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	    $graph->SetTextScaleOff($b);						
-	    $graph->xaxis->scale->ticks->SupressMinorTickMarks();
-	}
-	
-    }
-
-    function SetInterpolateMode($aIntMode) {
-	$this->iStartEndZero=$aIntMode;
-    }
-
-    // Replace all '-' with an interpolated value. We use straightforward
-    // linear interpolation. If the data starts with one or several '-' they
-    // will be replaced by the the first valid data point
-    function LineInterpolate(&$aData) {
-
-	$n=count($aData);
-	$i=0;
-    
-	// If first point is undefined we will set it to the same as the first 
-	// valid data
-	if( $aData[$i]==='-' ) {
-	    // Find the first valid data
-	    while( $i < $n && $aData[$i]==='-' ) {
-		++$i;
-	    }
-	    if( $i < $n ) {
-		for($j=0; $j < $i; ++$j ) {
-		    if( $this->iStartEndZero )
-			$aData[$i] = 0;
-		    else
-			$aData[$j] = $aData[$i];
-		}
-	    }
-	    else {
-		// All '-' => Error
-		return false;
-	    }
-	}
-
-	while($i < $n) {
-	    while( $i < $n && $aData[$i] !== '-' ) {
-		++$i;
-	    }
-	    if( $i < $n ) {
-		$pstart=$i-1;
-
-		// Now see how long this segment of '-' are
-		while( $i < $n && $aData[$i] === '-' )
-		    ++$i;
-		if( $i < $n ) {
-		    $pend=$i;
-		    $size=$pend-$pstart;
-		    $k=($aData[$pend]-$aData[$pstart])/$size;
-		    // Replace the segment of '-' with a linear interpolated value.
-		    for($j=1; $j < $size; ++$j ) {
-			$aData[$pstart+$j] = $aData[$pstart] + $j*$k ;
-		    }
-		}
-		else {
-		    // There are no valid end point. The '-' goes all the way to the end
-		    // In that case we just set all the remaining values the the same as the
-		    // last valid data point.
-		    for( $j=$pstart+1; $j < $n; ++$j ) 
-			if( $this->iStartEndZero )
-			    $aData[$j] = 0;
-			else
-			    $aData[$j] = $aData[$pstart] ;		
-		}
-	    }
-	}
-	return true;
-    }
-
-
-
-    // To avoid duplicate of line drawing code here we just
-    // change the y-values for each plot and then restore it
-    // after we have made the stroke. We must do this copy since
-    // it wouldn't be possible to create an acc line plot
-    // with the same graphs, i.e AccLinePlot(array($pl,$pl,$pl));
-    // since this method would have a side effect.
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$img->SetLineWeight($this->weight);
-	$this->numpoints = count($this->plots[0]->coords[0]);
-	// Allocate array
-	$coords[$this->nbrplots][$this->numpoints]=0;
-	for($i=0; $i<$this->numpoints; $i++) {
-	    $coords[0][$i]=$this->plots[0]->coords[0][$i]; 
-	    $accy=$coords[0][$i];
-	    for($j=1; $j<$this->nbrplots; ++$j ) {
-		$coords[$j][$i] = $this->plots[$j]->coords[0][$i]+$accy; 
-		$accy = $coords[$j][$i];
-	    }
-	}
-	for($j=$this->nbrplots-1; $j>=0; --$j) {
-	    $p=$this->plots[$j];
-	    for( $i=0; $i<$this->numpoints; ++$i) {
-		$tmp[$i]=$p->coords[0][$i];
-		$p->coords[0][$i]=$coords[$j][$i];
-	    }
-	    $p->Stroke($img,$xscale,$yscale);
-	    for( $i=0; $i<$this->numpoints; ++$i) 
-		$p->coords[0][$i]=$tmp[$i];
-	    $p->coords[0][]=$tmp;
-	}
-    }
-} // Class
-
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_log.php b/nightly-test-server/jpgraph/jpgraph_log.php
deleted file mode 100644
index 253a644..0000000
--- a/nightly-test-server/jpgraph/jpgraph_log.php
+++ /dev/null
@@ -1,267 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_LOG.PHP
-// Description:	Log scale plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-
-DEFINE('LOGLABELS_PLAIN',0);
-DEFINE('LOGLABELS_MAGNITUDE',1);
-
-//===================================================
-// CLASS LogScale
-// Description: Logarithmic scale between world and screen
-//===================================================
-class LogScale extends LinearScale {
-//---------------
-// CONSTRUCTOR
-
-    // Log scale is specified using the log of min and max
-    function LogScale($min,$max,$type="y") {
-	$this->LinearScale($min,$max,$type);
-	$this->ticks = new LogTicks();
-	$this->name = 'log';
-    }
-
-//----------------
-// PUBLIC METHODS	
-
-    // Translate between world and screen
-    function Translate($a) {
-	if( !is_numeric($a) ) {
-	    if( $a != '' && $a != '-' && $a != 'x' ) 
-		JpGraphError::RaiseL(11001);
-//('Your data contains non-numeric values.');
-	    return 1;
-	}
-	if( $a < 0 ) {
-	    JpGraphError::RaiseL(11002);
-//("Negative data values can not be used in a log scale.");
-	    exit(1);
-	}
-	if( $a==0 ) $a=1;
-	$a=log10($a);
-	return ceil($this->off + ($a*1.0 - $this->scale[0]) * $this->scale_factor); 
-    }
-
-    // Relative translate (don't include offset) usefull when we just want
-    // to know the relative position (in pixels) on the axis	
-    function RelTranslate($a) {
-	if( !is_numeric($a) ) {
-	    if( $a != '' && $a != '-' && $a != 'x' ) 
-		JpGraphError::RaiseL(11001);
-//('Your data contains non-numeric values.');
-	    return 1;
-	}
-	if( $a==0 ) $a=1;
-	$a=log10($a);
-	return round(($a*1.0 - $this->scale[0]) * $this->scale_factor); 
-    }
-		
-    // Use bcpow() for increased precision
-    function GetMinVal() {
-	if( function_exists("bcpow") )
-	    return round(bcpow(10,$this->scale[0],15),14);
-	else
-	    return round(pow(10,$this->scale[0]),14);
-    }
-	
-    function GetMaxVal() {
-	if( function_exists("bcpow") )
-	    return round(bcpow(10,$this->scale[1],15),14);
-	else
-	    return round(pow(10,$this->scale[1]),14);
-    }
-	
-    // Logarithmic autoscaling is much simplier since we just
-    // set the min and max to logs of the min and max values.
-    // Note that for log autoscale the "maxstep" the fourth argument
-    // isn't used. This is just included to give the method the same
-    // signature as the linear counterpart.
-    function AutoScale(&$img,$min,$max,$dummy) {
-	if( $min==0 ) $min=1;
-	
-	if( $max <= 0 ) {
-	    JpGraphError::RaiseL(11004);
-//('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.');
-	}
-	$smin = floor(log10($min));
-	$smax = ceil(log10($max));
-	$this->Update($img,$smin,$smax);					
-    }
-//---------------
-// PRIVATE METHODS	
-} // Class
-
-//===================================================
-// CLASS LogTicks
-// Description: 
-//===================================================
-class LogTicks extends Ticks{
-    var $label_logtype=LOGLABELS_MAGNITUDE;
-//---------------
-// CONSTRUCTOR
-    function LogTicks() {
-    }
-//---------------
-// PUBLIC METHODS	
-    function IsSpecified() {
-	return true;
-    }
-
-    function SetLabelLogType($aType) {
-	$this->label_logtype = $aType;
-    }
-	
-    // For log scale it's meaningless to speak about a major step
-    // We just return -1 to make the framework happy (specifically
-    // StrokeLabels() )
-    function GetMajor() {
-	return -1;
-    }
-
-    function SetTextLabelStart($aStart) {
-	JpGraphError::RaiseL(11005);
-//('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.');
-    }
-
-    function SetXLabelOffset($dummy) {
-	// For log scales we dont care about XLabel offset
-    }
-
-    // Draw ticks on image "img" using scale "scale". The axis absolute
-    // position in the image is specified in pos, i.e. for an x-axis
-    // it specifies the absolute y-coord and for Y-ticks it specified the
-    // absolute x-position.
-    function Stroke(&$img,&$scale,$pos) {
-	$start = $scale->GetMinVal();
-	$limit = $scale->GetMaxVal();
-	$nextMajor = 10*$start;
-	$step = $nextMajor / 10.0;
-		
-		
-	$img->SetLineWeight($this->weight);			
-		
-	if( $scale->type == "y" ) {
-	    // member direction specified if the ticks should be on
-	    // left or right side.
-	    $a=$pos + $this->direction*$this->GetMinTickAbsSize();
-	    $a2=$pos + $this->direction*$this->GetMajTickAbsSize();	
-			
-	    $count=1; 
-	    $this->maj_ticks_pos[0]=$scale->Translate($start);
-	    $this->maj_ticklabels_pos[0]=$scale->Translate($start);
-	    if( $this->supress_first )
-		$this->maj_ticks_label[0]="";
-	    else {
-		if( $this->label_formfunc != '' ) {
-		    $f = $this->label_formfunc;
-		    $this->maj_ticks_label[0]=call_user_func($f,$start);	
-		}
-		elseif( $this->label_logtype == LOGLABELS_PLAIN )
-		    $this->maj_ticks_label[0]=$start;	
-		else
-		    $this->maj_ticks_label[0]='10^'.round(log10($start));
-	    }
-	    $i=1;
-	    for($y=$start; $y<=$limit; $y+=$step,++$count  ) {
-		$ys=$scale->Translate($y);	
-		$this->ticks_pos[]=$ys;
-		$this->ticklabels_pos[]=$ys;
-		if( $count % 10 == 0 ) {
-		    if( !$this->supress_tickmarks ) {
-			if( $this->majcolor!="" ) {
-			    $img->PushColor($this->majcolor);
-			    $img->Line($pos,$ys,$a2,$ys);
-			    $img->PopColor();
-			}
-			else
-			    $img->Line($pos,$ys,$a2,$ys);
-		    }
-
-		    $this->maj_ticks_pos[$i]=$ys;
-		    $this->maj_ticklabels_pos[$i]=$ys;
-		    
-		    if( $this->label_formfunc != '' ) {
-			$f = $this->label_formfunc;
-			$this->maj_ticks_label[$i]=call_user_func($f,$nextMajor);	
-		    }
-		    elseif( $this->label_logtype == 0 )
-			$this->maj_ticks_label[$i]=$nextMajor;	
-		    else
-			$this->maj_ticks_label[$i]='10^'.round(log10($nextMajor));
-		    ++$i;						
-		    $nextMajor *= 10;
-		    $step *= 10;	
-		    $count=1; 				
-		}
-		else {
-		    if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-			if( $this->mincolor!="" ) $img->PushColor($this->mincolor);
-			$img->Line($pos,$ys,$a,$ys);		
-			if( $this->mincolor!="" ) $img->PopColor();
-		    }
-		}
-	    }		
-	}
-	else {
-	    $a=$pos - $this->direction*$this->GetMinTickAbsSize();
-	    $a2=$pos - $this->direction*$this->GetMajTickAbsSize();	
-	    $count=1; 
-	    $this->maj_ticks_pos[0]=$scale->Translate($start);
-	    $this->maj_ticklabels_pos[0]=$scale->Translate($start);
-	    if( $this->supress_first )
-		$this->maj_ticks_label[0]="";
-	    else {
-		if( $this->label_formfunc != '' ) {
-		    $f = $this->label_formfunc;
-		    $this->maj_ticks_label[0]=call_user_func($f,$start);	
-		}
-		elseif( $this->label_logtype == 0 )
-		    $this->maj_ticks_label[0]=$start;	
-		else
-		    $this->maj_ticks_label[0]='10^'.round(log10($start));
-	    }
-	    $i=1;			
-	    for($x=$start; $x<=$limit; $x+=$step,++$count  ) {
-		$xs=$scale->Translate($x);	
-		$this->ticks_pos[]=$xs;
-		$this->ticklabels_pos[]=$xs;
-		if( $count % 10 == 0 ) {
-		    if( !$this->supress_tickmarks ) {
-			$img->Line($xs,$pos,$xs,$a2);
-		    }
-		    $this->maj_ticks_pos[$i]=$xs;
-		    $this->maj_ticklabels_pos[$i]=$xs;
-
-		    if( $this->label_formfunc != '' ) {
-			$f = $this->label_formfunc;
-			$this->maj_ticks_label[$i]=call_user_func($f,$nextMajor);	
-		    }
-		    elseif( $this->label_logtype == 0 )
-			$this->maj_ticks_label[$i]=$nextMajor;	
-		    else
-			$this->maj_ticks_label[$i]='10^'.round(log10($nextMajor));
-		    ++$i;
-		    $nextMajor *= 10;
-		    $step *= 10;	
-		    $count=1; 				
-		}
-		else {
-		    if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-			$img->Line($xs,$pos,$xs,$a);		
-		    }
-		}
-	    }		
-	}
-	return true;
-    }
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_mgraph.php b/nightly-test-server/jpgraph/jpgraph_mgraph.php
deleted file mode 100644
index 25c1165..0000000
--- a/nightly-test-server/jpgraph/jpgraph_mgraph.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_MGRAPH.PHP
-// Description: Class to handle multiple graphs in the same image
-// Created: 	2006-01-15
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//=============================================================================
-// CLASS MGraph
-// Description: Create a container image that can hold several graph 
-//=============================================================================
-class MGraph {
-    var $img=NULL;
-    var $iCnt=0,$iGraphs = array(); // image_handle, x, y, fx, fy, sizex, sizey
-    var $iFillColor='white', $iCurrentColor=0;
-    var $lm=0,$rm=0,$tm=0,$bm=0;
-    var $iDoFrame = FALSE, $iFrameColor = 'black', $iFrameWeight = 1;
-    var $iLineWeight = 1;
-    var $expired=false;
-    var $img_format='png',$image_quality=75;
-    var $iWidth=NULL,$iHeight=NULL;
-    var $background_image='',$background_image_center=true,
-	$backround_image_format='',$background_image_mix=100,
-	$background_image_y=NULL, $background_image_x=NULL;
-
-
-    // Create a new instane of the combined graph
-    function MGraph($aWidth=NULL,$aHeight=NULL) {
-	$this->iWidth = $aWidth;
-	$this->iHeight = $aHeight;
-    }
-
-    // Specify background fill color for the combined graph
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-
-    // Add a frame around the combined graph
-    function SetFrame($aFlg,$aColor='black',$aWeight=1) {
-	$this->iDoFrame = $aFlg;
-	$this->iFrameColor = $aColor;
-	$this->iFrameWeight = $aWeight;
-    }
-
-    // Specify a background image blend    
-    function SetBackgroundImageMix($aMix) {
-	$this->background_image_mix = $aMix ;
-    }
-
-    // Specify a background image
-    function SetBackgroundImage($aFileName,$aCenter_aX=NULL,$aY=NULL) {
-	// Second argument can be either a boolean value or 
-	// a numeric
-	$aCenter=TRUE;
-	$aX=NULL;
-
-	if( $GLOBALS['gd2'] && !USE_TRUECOLOR ) {
-	    JpGraphError::RaiseL(12001);
-//("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x you <b>must</b> enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.");
-	}
-	if( is_numeric($aCenter_aX) ) {
-	    $aX=$aCenter_aX;
-	}
-
-	// Get extension to determine image type
-	$e = explode('.',$aFileName);
-	if( !$e ) {
-	    JpGraphError::RaiseL(12002,$aFileName);
-//('Incorrect file name for MGraph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type');
-	}
-	
-	$valid_formats = array('png', 'jpg', 'gif');
-	$aImgFormat = strtolower($e[count($e)-1]);
-	if ($aImgFormat == 'jpeg')  {
-	    $aImgFormat = 'jpg';
-	}
-	elseif (!in_array($aImgFormat, $valid_formats) )  {
-	    JpGraphError::RaiseL(12003,$aImgFormat,$aFileName);
-//('Unknown file extension ($aImgFormat) in MGraph::SetBackgroundImage() for filename: '.$aFileName);
-	}    
-
-	$this->background_image = $aFileName;
-	$this->background_image_center=$aCenter;
-	$this->background_image_format=$aImgFormat;
-	$this->background_image_x = $aX;
-	$this->background_image_y = $aY;
-    }
-
-
-    // Private helper function for backgound image
-    function _loadBkgImage($aFile='') {
-	if( $aFile == '' )
-	    $aFile = $this->background_image;
-
-	// Remove case sensitivity and setup appropriate function to create image
-	// Get file extension. This should be the LAST '.' separated part of the filename
-	$e = explode('.',$aFile);
-	$ext = strtolower($e[count($e)-1]);
-	if ($ext == "jpeg")  {
-	    $ext = "jpg";
-	}
-	
-	if( trim($ext) == '' ) 
-	    $ext = 'png';  // Assume PNG if no extension specified
-
-	$supported = imagetypes();
-	if( ( $ext == 'jpg' && !($supported & IMG_JPG) ) ||
-	    ( $ext == 'gif' && !($supported & IMG_GIF) ) ||
-	    ( $ext == 'png' && !($supported & IMG_PNG) ) ) {
-	    JpGraphError::RaiseL(12004,$aFile);//('The image format of your background image ('.$aFile.') is not supported in your system configuration. ');
-	}
-
-	if( $ext == "jpg" || $ext == "jpeg") {
-	    $f = "imagecreatefromjpeg";
-	    $ext = "jpg";
-	}
-	else {
-	    $f = "imagecreatefrom".$ext;
-	}
-
-	$img = @$f($aFile);
-	if( !$img ) {
-	    JpGraphError::RaiseL(12005,$aFile);
-//(" Can't read background image: '".$aFile."'");   
-	}
-	return $img;
-    }	
-
-    function _strokeBackgroundImage() {
-	if( $this->background_image == '' ) 
-	    return;
-
-	$bkgimg = $this->_loadBkgImage();
-	// Background width & Heoght
-	$bw = imagesx($bkgimg);
-	$bh = imagesy($bkgimg);
-	// Canvas width and height
-	$cw = imagesx($this->img);
-	$ch = imagesy($this->img);
-
-	if( $this->background_image_x === NULL || $this->background_image_y === NULL ) {
-	    if( $this->background_image_center ) {
-		// Center original image in the plot area
-		$x = round($cw/2-$bw/2); $y = round($ch/2-$bh/2);
-	    }
-	    else {
-		// Just copy the image from left corner, no resizing
-		$x=0; $y=0;
-	    }			
-	}
-	else {
-	    $x = $this->background_image_x;
-	    $y = $this->background_image_y;
-	}
-	$this->_imageCp($bkgimg,$x,$y,0,0,$bw,$bh,$this->background_image_mix);
-    }
-
-    function _imageCp($aSrcImg,$x,$y,$fx,$fy,$w,$h,$mix=100) {
-	imagecopymerge($this->img,$aSrcImg,$x,$y,$fx,$fy,$w,$h,$mix);
-    }
-
-    function _imageCreate($aWidth,$aHeight) {
-	if( $aWidth <= 1 || $aHeight <= 1 ) {
-	    JpGraphError::RaiseL(12006,$aWidth,$aHeight);
-//("Illegal sizes specified for width or height when creating an image, (width=$aWidth, height=$aHeight)");
-	}
-	if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-	    $this->img = @imagecreatetruecolor($aWidth, $aHeight);
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(12011);
-// die("<b>JpGraph Error:</b> Can't create truecolor image. Check that you really have GD2 library installed.");
-	    }
-	    ImageAlphaBlending($this->img,true);
-	} else {
-	    $this->img = @imagecreate($aWidth, $aHeight);	
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(12012);
-// die("<b>JpGraph Error:</b> Can't create image. Check that you really have the GD library installed.");
-	    }
-	}
-    }
-
-    function _polygon($p,$closed=FALSE) {
-	if( $this->iLineWeight==0 ) return;
-	$n=count($p);
-	$oldx = $p[0];
-	$oldy = $p[1];
-	for( $i=2; $i < $n; $i+=2 ) {
-	    imageline($this->img,$oldx,$oldy,$p[$i],$p[$i+1],$this->iCurrentColor);
-	    $oldx = $p[$i];
-	    $oldy = $p[$i+1];
-	}
-	if( $closed ) {
-	    imageline($this->img,$p[$n*2-2],$p[$n*2-1],$p[0],$p[1],$this->iCurrentColor);
-	}
-    }
-
-    function _filledPolygon($pts) {
-	$n=count($pts);
-	for($i=0; $i < $n; ++$i) 
-	    $pts[$i] = round($pts[$i]);
-	imagefilledpolygon($this->img,$pts,count($pts)/2,$this->iCurrentColor);
-    }
-	
-    function _rectangle($xl,$yu,$xr,$yl) {
-	for($i=0; $i < $this->iLineWeight; ++$i ) 
-	    $this->_polygon(array($xl+$i,$yu+$i,$xr-$i,$yu+$i,
-				  $xr-$i,$yl-$i,$xl+$i,$yl-$i,
-				  $xl+$i,$yu+$i));
-    }
-	
-    function _filledRectangle($xl,$yu,$xr,$yl) {
-	$this->_filledPolygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl));
-    }
-
-    function _setColor($aColor) {
-	$this->iCurrentColor = $this->iRGB->Allocate($aColor);
-    }
-
-    function AddMix($aGraph,$x=0,$y=0,$mix=100,$fx=0,$fy=0,$w=0,$h=0) {
-	$this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h,$mix);
-   }
-
-   function Add($aGraph,$x=0,$y=0,$fx=0,$fy=0,$w=0,$h=0) {
-	$this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h);
-   }
-
-    function _gdImgHandle($agdCanvas,$x,$y,$fx=0,$fy=0,$w=0,$h=0,$mix=100) {
-	if( $w == 0 )  $w = @imagesx($agdCanvas);
-	if( $w === NULL ) {
-	    JpGraphError::RaiseL(12007);
-//('Argument to MGraph::Add() is not a valid GD image handle.');
-	    return;
-	}
-	if( $h == 0 )  $h = @imagesy($agdCanvas);
-	$this->iGraphs[$this->iCnt++] = array($agdCanvas,$x,$y,$fx,$fy,$w,$h,$mix);
-    }
-
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->lm = $lm;
-	$this->rm = $rm;
-	$this->tm = $tm;
-	$this->bm = $bm;
-    }
-
-    function SetExpired($aFlg=true) {
-	$this->expired = $aFlg;
-    }
-
-    // Generate image header
-    function Headers() {
-	
-	// In case we are running from the command line with the client version of
-	// PHP we can't send any headers.
-	$sapi = php_sapi_name();
-	if( $sapi == 'cli' )
-	    return;
-	
-	if( headers_sent() ) {
-	    
-	    echo "<table border=1><tr><td><font color=darkred size=4><b>JpGraph Error:</b> 
-HTTP headers have already been sent.</font></td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening \"<b>&lt;?php</b>\".</td></tr></table>";
-
-	    die();
-
-	}	
-	
-	if ($this->expired) {
-	    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-	    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
-	    header("Cache-Control: no-cache, must-revalidate");
-	    header("Pragma: no-cache");
-	}
-	header("Content-type: image/$this->img_format");
-    }
-
-    function SetImgFormat($aFormat,$aQuality=75) {
-	$this->image_quality = $aQuality;
-	$aFormat = strtolower($aFormat);
-	$tst = true;
-	$supported = imagetypes();
-	if( $aFormat=="auto" ) {
-	    if( $supported & IMG_PNG )
-		$this->img_format="png";
-	    elseif( $supported & IMG_JPG )
-		$this->img_format="jpeg";
-	    elseif( $supported & IMG_GIF )
-		$this->img_format="gif";
-	    else
-		JpGraphError::RaiseL(12008);
-//(" Your PHP (and GD-lib) installation does not appear to support any known graphic formats.".
-	    return true;
-	}
-	else {
-	    if( $aFormat=="jpeg" || $aFormat=="png" || $aFormat=="gif" ) {
-		if( $aFormat=="jpeg" && !($supported & IMG_JPG) )
-		    $tst=false;
-		elseif( $aFormat=="png" && !($supported & IMG_PNG) ) 
-		    $tst=false;
-		elseif( $aFormat=="gif" && !($supported & IMG_GIF) ) 	
-		    $tst=false;
-		else {
-		    $this->img_format=$aFormat;
-		    return true;
-		}
-	    }
-	    else 
-		$tst=false;
-	    if( !$tst )
-		JpGraphError::RaiseL(12009,$aFormat);
-//(" Your PHP installation does not support the chosen graphic format: $aFormat");
-	}
-    }
-
-    // Stream image to browser or to file
-    function Stream($aFile="") {
-	$func="image".$this->img_format;
-	if( $this->img_format=="jpeg" && $this->image_quality != null ) {
-	    $res = @$func($this->img,$aFile,$this->image_quality);
-	}
-	else {
-	    if( $aFile != "" ) {
-		$res = @$func($this->img,$aFile);
-	    }
-	    else
-		$res = @$func($this->img);
-	}
-	if( !$res )
-	    JpGraphError::RaiseL(12010,$aFile);
-//("Can't create or stream image to file $aFile Check that PHP has enough permission to write a file to the current directory.");
-    }
-
-    function Stroke($aFileName='') {
-	// Find out the necessary size for the container image
-	$w=0; $h=0;
-	for($i=0; $i < $this->iCnt; ++$i ) {
-	    $maxw = $this->iGraphs[$i][1]+$this->iGraphs[$i][5];
-	    $maxh = $this->iGraphs[$i][2]+$this->iGraphs[$i][6];
-	    $w = max( $w, $maxw );
-	    $h = max( $h, $maxh );
-	}
-	$w += $this->lm+$this->rm;
-	$h += $this->tm+$this->bm;
-
-	// User specified width,height overrides
-	if( $this->iWidth !== NULL ) $w = $this->iWidth;
-	if( $this->iHeight!== NULL ) $h = $this->iHeight;
-
-	$this->_imageCreate($w,$h);
-	$this->iRGB = new RGB($this->img);
-
-	$this->_setcolor($this->iFillColor);
-	$this->_filledRectangle(0,0,$w-1,$h-1);
-
-	$this->_strokeBackgroundImage();
-
-	if( $this->iDoFrame ) {
-	    $this->_setColor($this->iFrameColor);
-	    $this->iLineWeight=$this->iFrameWeight;
-	    $this->_rectangle(0,0,$w-1,$h-1);
-	}
-
-	// Copy all sub graphs to the container
-	for($i=0; $i < $this->iCnt; ++$i ) {
-	    $this->_imageCp($this->iGraphs[$i][0],
-			    $this->iGraphs[$i][1]+$this->lm,$this->iGraphs[$i][2]+$this->tm,
-			    $this->iGraphs[$i][3],$this->iGraphs[$i][4],
-			    $this->iGraphs[$i][5],$this->iGraphs[$i][6],
-			    $this->iGraphs[$i][7]);
-	}
-
-	// Output image
-	if( $aFileName == _IMG_HANDLER ) {
-	    return $this->img;
-	}
-	else {
-	    $this->Headers();
-	    $this->Stream($aFileName);
-	}
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_pie.php b/nightly-test-server/jpgraph/jpgraph_pie.php
deleted file mode 100644
index a08e593..0000000
--- a/nightly-test-server/jpgraph/jpgraph_pie.php
+++ /dev/null
@@ -1,1344 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_PIE.PHP
-// Description:	Pie plot extension for JpGraph
-// Created: 	2001-02-14
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-
-// Defines for PiePlot::SetLabelType()
-DEFINE("PIE_VALUE_ABS",1);
-DEFINE("PIE_VALUE_PER",0);
-DEFINE("PIE_VALUE_PERCENTAGE",0);
-DEFINE("PIE_VALUE_ADJPERCENTAGE",2);
-DEFINE("PIE_VALUE_ADJPER",2);
-
-//===================================================
-// CLASS PiePlot
-// Description: Draws a pie plot
-//===================================================
-class PiePlot {
-    var $posx=0.5,$posy=0.5;
-    var $radius=0.3;
-    var $explode_radius=array(),$explode_all=false,$explode_r=20;
-    var $labels=null, $legends=null;
-    var $csimtargets=null;  // Array of targets for CSIM
-    var $csimareas='';		// Generated CSIM text	
-    var $csimalts=null;		// ALT tags for corresponding target
-    var $data=null;
-    var $title;
-    var $startangle=0;
-    var $weight=1, $color="black";
-    var $legend_margin=6,$show_labels=true;
-    var $themearr = array(
-	"earth" 	=> array(136,34,40,45,46,62,63,134,74,10,120,136,141,168,180,77,209,218,346,395,89,430),
-	"pastel" => array(27,415,128,59,66,79,105,110,42,147,152,230,236,240,331,337,405,38),
-	"water"  => array(8,370,24,40,335,56,213,237,268,14,326,387,10,388),
-	"sand"   => array(27,168,34,170,19,50,65,72,131,209,46,393));
-    var $theme="earth";
-    var $setslicecolors=array();
-    var $labeltype=0; // Default to percentage
-    var $pie_border=true,$pie_interior_border=true;
-    var $value;
-    var $ishadowcolor='',$ishadowdrop=4;
-    var $ilabelposadj=1;
-    var $legendcsimtargets = array();
-    var $legendcsimalts = array();
-    var $adjusted_data = array();
-    var $guideline = null,$guidelinemargin=10;
-    var $iShowGuideLineForSingle = false;
-    var $iGuideLineCurve = false,$iGuideVFactor=1.4,$iGuideLineRFactor=0.8;
-//---------------
-// CONSTRUCTOR
-    function PiePlot($data) {
-	$this->data = array_reverse($data);
-	$this->title = new Text("");
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->value = new DisplayValue();
-	$this->value->Show();
-	$this->value->SetFormat('%.1f%%');
-	$this->guideline = new LineProperty();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function SetCenter($x,$y=0.5) {
-	$this->posx = $x;
-	$this->posy = $y;
-    }
-
-    // Enable guideline and set drwaing policy
-    function SetGuideLines($aFlg=true,$aCurved=true,$aAlways=false) {
-	$this->guideline->Show($aFlg);
-	$this->iShowGuideLineForSingle = $aAlways;
-	$this->iGuideLineCurve = $aCurved;
-    }
-
-    // Adjuste the distance between labels and labels and pie
-    function SetGuideLinesAdjust($aVFactor,$aRFactor=0.8) {
-	$this->iGuideVFactor=$aVFactor;
-	$this->iGuideLineRFactor=$aRFactor;
-    }
-
-    function SetColor($aColor) {
-	$this->color = $aColor;
-    }
-	
-    function SetSliceColors($aColors) {
-	$this->setslicecolors = $aColors;
-    }
-	
-    function SetShadow($aColor='darkgray',$aDropWidth=4) {
-	$this->ishadowcolor = $aColor;
-	$this->ishadowdrop = $aDropWidth;
-    }
-
-    function SetCSIMTargets($targets,$alts=null) {
-	$this->csimtargets=array_reverse($targets);
-	if( is_array($alts) )
-	    $this->csimalts=array_reverse($alts);
-    }
-	
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) {  
-
-        //Slice number, ellipse centre (x,y), height, width, start angle, end angle
-	while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI;
-	while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI;
-
-	$sa = 2*M_PI - $sa;
-	$ea = 2*M_PI - $ea;
-
-	// Special case when we have only one slice since then both start and end
-	// angle will be == 0
-	if( abs($sa - $ea) < 0.0001 ) {
-	    $sa=2*M_PI; $ea=0;
-	}
-
-	//add coordinates of the centre to the map
-	$xc = floor($xc);$yc=floor($yc);
-	$coords = "$xc, $yc";
-
-	//add coordinates of the first point on the arc to the map
-	$xp = floor(($radius*cos($ea))+$xc);
-	$yp = floor($yc-$radius*sin($ea));
-	$coords.= ", $xp, $yp";
-	//add coordinates every 0.2 radians
-	$a=$ea+0.2;
-
-	// If we cross the 260-limit with a slice we need to handle
-	// the fact that end angle is smaller than start
-	if( $sa < $ea ) {
-	    while ($a <= 2*M_PI) {
-		$xp = floor($radius*cos($a)+$xc);
-		$yp = floor($yc-$radius*sin($a));
-		$coords.= ", $xp, $yp";
-		$a += 0.2;
-	    }
-	    $a -= 2*M_PI;
-	}
-
-	while ($a < $sa) {
-	    $xp = floor($radius*cos($a)+$xc);
-	    $yp = floor($yc-$radius*sin($a));
-	    $coords.= ", $xp, $yp";
-	    $a += 0.2;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($radius*cos($sa)+$xc);
-	$yp = floor($yc-$radius*sin($sa));
-	$coords.= ", $xp, $yp";
-	if( !empty($this->csimtargets[$i]) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->csimtargets[$i]."\"";
-	    $tmp="";
-	    if( !empty($this->csimalts[$i]) ) {
-		$tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-
-	
-    function SetTheme($aTheme) {
-	if( in_array($aTheme,array_keys($this->themearr)) )
-	    $this->theme = $aTheme;
-	else
-	    JpGraphError::RaiseL(15001,$aTheme);//("PiePLot::SetTheme() Unknown theme: $aTheme");
-    }
-	
-    function ExplodeSlice($e,$radius=20) {
-	if( ! is_integer($e) ) 
-	    JpGraphError::RaiseL(15002);//('Argument to PiePlot::ExplodeSlice() must be an integer');
-	$this->explode_radius[$e]=$radius;
-    }
-
-    function ExplodeAll($radius=20) {
-	$this->explode_all=true;
-	$this->explode_r = $radius;
-    }
-
-    function Explode($aExplodeArr) {
-	if( !is_array($aExplodeArr) ) {
-	    JpGraphError::RaiseL(15003);
-//("Argument to PiePlot::Explode() must be an array with integer distances.");
-	}
-	$this->explode_radius = $aExplodeArr;
-    }
-
-    function SetStartAngle($aStart) {
-	if( $aStart < 0 || $aStart > 360 ) {
-	    JpGraphError::RaiseL(15004);//('Slice start angle must be between 0 and 360 degrees.');
-	}
-	$this->startangle = 360-$aStart;
-	$this->startangle *= M_PI/180;
-    }
-	
-    function SetFont($family,$style=FS_NORMAL,$size=10) {
-	JpGraphError::RaiseL(15005);//('PiePlot::SetFont() is deprecated. Use PiePlot->value->SetFont() instead.');
-    }
-	
-    // Size in percentage
-    function SetSize($aSize) {
-	if( ($aSize>0 && $aSize<=0.5) || ($aSize>10 && $aSize<1000) )
-	    $this->radius = $aSize;
-	else
-	    JpGraphError::RaiseL(15006);
-//("PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels  in the range [10, 1000]");
-    }
-	
-    function SetFontColor($aColor) {
-	JpGraphError::RaiseL(15007);
-//('PiePlot::SetFontColor() is deprecated. Use PiePlot->value->SetColor() instead.');
-    }
-	
-    // Set label arrays
-    function SetLegends($aLegend) {
-	$this->legends = $aLegend;
-    }
-
-    // Set text labels for slices 
-    function SetLabels($aLabels,$aLblPosAdj="auto") {
-	$this->labels = array_reverse($aLabels);
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-
-    function SetLabelPos($aLblPosAdj) {
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-	
-    // Should we display actual value or percentage?
-    function SetLabelType($t) {
-	if( $t < 0 || $t > 2 ) 
-	    JpGraphError::RaiseL(15008,$t);
-//("PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not $t).");
-	$this->labeltype=$t;
-    }
-
-    // Deprecated. 
-    function SetValueType($aType) {
-	$this->SetLabelType($aType);
-    }
-
-    // Should the circle around a pie plot be displayed
-    function ShowBorder($exterior=true,$interior=true) {
-	$this->pie_border = $exterior;
-	$this->pie_interior_border = $interior;
-    }
-	
-    // Setup the legends (Framework method)
-    function Legend(&$graph) {
-	$colors = array_keys($graph->img->rgb->rgb_table);
-   	sort($colors);	
-   	$ta=$this->themearr[$this->theme];	
-   	$n = count($this->data);
-
-   	if( $this->setslicecolors==null ) {
-	    $numcolors=count($ta);
-	    if( is_a($this,'PiePlot3D') ) {
-		$ta = array_reverse(array_slice($ta,0,$n));
-	    }
-	}
-   	else {
-	    $this->setslicecolors = array_slice($this->setslicecolors,0,$n);
-	    $numcolors=count($this->setslicecolors); 
-	    if( $graph->pieaa && is_a($this,'PiePlot') ) { 
-		$this->setslicecolors = array_reverse($this->setslicecolors);
-	    }
-	}
-		
-	$sum=0;
-	for($i=0; $i < $n; ++$i)
-	    $sum += $this->data[$i];
-
-	// Bail out with error if the sum is 0
-	if( $sum==0 )
-	    JpGraphError::RaiseL(15009);//("Illegal pie plot. Sum of all data is zero for Pie!");
-
-	// Make sure we don't plot more values than data points
-	// (in case the user added more legends than data points)
-	$n = min(count($this->legends),count($this->data));
-	if( $this->legends != "" ) {
-	    $this->legends = array_reverse(array_slice($this->legends,0,$n));
-	}
-	for( $i=$n-1; $i >= 0; --$i ) {
-	    $l = $this->legends[$i];
-	    // Replace possible format with actual values
-	    if( count($this->csimalts) > $i ) {
-		$fmt = $this->csimalts[$i];
-	    }
-	    else {
-		$fmt = "%d"; // Deafult Alt if no other has been specified
-	    }
-	    if( $this->labeltype==0 ) {
-		$l = sprintf($l,100*$this->data[$i]/$sum);
-		$alt = sprintf($fmt,$this->data[$i]);
-		
-	    }
-	    elseif( $this->labeltype == 1)  {
-		$l = sprintf($l,$this->data[$i]);
-		$alt = sprintf($fmt,$this->data[$i]);
-		
-	    }
-	    else {
-		$l = sprintf($l,$this->adjusted_data[$i]);
-		$alt = sprintf($fmt,$this->adjusted_data[$i]);
-	    }
-
-	    if( $this->setslicecolors==null ) {
-		$graph->legend->Add($l,$colors[$ta[$i%$numcolors]],"",0,$this->csimtargets[$i],$alt);
-	    }
-	    else {
-		$graph->legend->Add($l,$this->setslicecolors[$i%$numcolors],"",0,$this->csimtargets[$i],$alt);
-	    }
-	}
-    }
-	
-    // Adjust the rounded percetage value so that the sum of
-    // of the pie slices are always 100%
-    // Using the Hare/Niemeyer method
-    function AdjPercentage($aData,$aPrec=0) {
-	$mul=100;
-	if( $aPrec > 0 && $aPrec < 3 ) {
-	    if( $aPrec == 1 ) 
-		$mul=1000;
-		else
-		    $mul=10000;
-	}
-	
-	$tmp = array();
-	$result = array();
-	$quote_sum=0;
-	$n = count($aData) ;
-	for( $i=0, $sum=0; $i < $n; ++$i )
-	    $sum+=$aData[$i];
-	foreach($aData as $index => $value) {
-	    $tmp_percentage=$value/$sum*$mul;
-	    $result[$index]=floor($tmp_percentage);
-	    $tmp[$index]=$tmp_percentage-$result[$index];
-	    $quote_sum+=$result[$index];
-	}
-	if( $quote_sum == $mul) {
-	    if( $mul > 100 ) {
-		$tmp = $mul / 100;
-		for( $i=0; $i < $n; ++$i ) {
-		    $result[$i] /= $tmp ;
-		}
-	    }
-	    return $result;
-	}
-	arsort($tmp,SORT_NUMERIC);
-	reset($tmp);
-	for($i=0; $i < $mul-$quote_sum; $i++)
-	{
-	    $result[key($tmp)]++;
-	    next($tmp);
-	}
-	if( $mul > 100 ) {
-	    $tmp = $mul / 100;
-	    for( $i=0; $i < $n; ++$i ) {
-		$result[$i] /= $tmp ;
-	    }
-	}
-	return $result;
-    }
-
-
-    function Stroke(&$img,$aaoption=0) {
-	// aaoption is used to handle antialias
-	// aaoption == 0 a normal pie
-	// aaoption == 1 just the body
-	// aaoption == 2 just the values
-
-	// Explode scaling. If anti anti alias we scale the image
-	// twice and we also need to scale the exploding distance
-	$expscale = $aaoption === 1 ? 2 : 1;
-
-	if( $this->labeltype == 2 ) {
-	    // Adjust the data so that it will add up to 100%
-	    $this->adjusted_data = $this->AdjPercentage($this->data);
-	}
-
-	$colors = array_keys($img->rgb->rgb_table);
-   	sort($colors);	
-   	$ta=$this->themearr[$this->theme];	
-	$n = count($this->data);
-   	
-   	if( $this->setslicecolors==null ) {
-	    $numcolors=count($ta);
-	}
-   	else {
-	    $this->setslicecolors = array_reverse(array_slice($this->setslicecolors,0,$n));
-	    $numcolors=count($this->setslicecolors); 
-	    $tt = array_slice($this->setslicecolors,$n % $numcolors);
-	    $tt2 = array_slice($this->setslicecolors,0,$n % $numcolors);
-	    $tt2 = array_merge($tt, $tt2);
-	    $this->setslicecolors = $tt + $tt2;
-	}
-
-	// Draw the slices
-	$sum=0;
-	for($i=0; $i < $n; ++$i)
-	    $sum += $this->data[$i];
-	
-	// Bail out with error if the sum is 0
-	if( $sum==0 )
-	    JpGraphError::RaiseL(15009);//("Sum of all data is 0 for Pie.");
-	
-	// Set up the pie-circle
-	if( $this->radius <= 1 )
-	    $radius = floor($this->radius*min($img->width,$img->height));
-	else {
-	    $radius = $aaoption === 1 ? $this->radius*2 : $this->radius;
-	}
-
-	if( $this->posx <= 1 && $this->posx > 0 )
-	    $xc = round($this->posx*$img->width);
-	else
-	    $xc = $this->posx ;
-	
-	if( $this->posy <= 1 && $this->posy > 0 )
-	    $yc = round($this->posy*$img->height);
-	else
-	    $yc = $this->posy ;
-		
-	$n = count($this->data);
-
-	if( $this->explode_all )
-	    for($i=0; $i < $n; ++$i)
-		$this->explode_radius[$i]=$this->explode_r;
-
-	if( $this->ishadowcolor != "" && $aaoption !== 2) {
-	    $accsum=0;
-	    $angle2 = $this->startangle;
-	    $img->SetColor($this->ishadowcolor);
-	    for($i=0; $sum > 0 && $i < $n; ++$i) {
-		$j = $n-$i-1;
-		$d = $this->data[$i];
-		$angle1 = $angle2;
-		$accsum += $d;
-		$angle2 = $this->startangle+2*M_PI*$accsum/$sum;
-		if( empty($this->explode_radius[$j]) )
-		    $this->explode_radius[$j]=0;
-
-		$la = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1);
-
-		$xcm = $xc + $this->explode_radius[$j]*cos($la)*$expscale;
-		$ycm = $yc - $this->explode_radius[$j]*sin($la)*$expscale;
-		
-		$xcm += $this->ishadowdrop*$expscale;
-		$ycm += $this->ishadowdrop*$expscale;
-
-		$img->CakeSlice($xcm,$ycm,$radius,$radius,
-				$angle1*180/M_PI,$angle2*180/M_PI,$this->ishadowcolor);
-		
-	    }
-	}
-
-	$accsum=0;
-	$angle2 = $this->startangle;
-	$img->SetColor($this->color);
-	for($i=0; $sum>0 && $i < $n; ++$i) {
-	    $j = $n-$i-1;
-	    if( empty($this->explode_radius[$j]) )
-		$this->explode_radius[$j]=0;
-	    $d = $this->data[$i];
-	    $angle1 = $angle2;
-	    $accsum += $d;
-	    $angle2 = $this->startangle+2*M_PI*$accsum/$sum;
-	    $this->la[$i] = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1);
-
-	    if( $d == 0 ) continue;
-
-	    if( $this->setslicecolors==null )
-		$slicecolor=$colors[$ta[$i%$numcolors]];
-	    else
-		$slicecolor=$this->setslicecolors[$i%$numcolors];
-
-	    if( $this->pie_interior_border && $aaoption===0 )
-		$img->SetColor($this->color);
-	    else
-		$img->SetColor($slicecolor);
-
-	    $arccolor = $this->pie_border && $aaoption===0 ? $this->color : "";
-
-	    $xcm = $xc + $this->explode_radius[$j]*cos($this->la[$i])*$expscale;
-	    $ycm = $yc - $this->explode_radius[$j]*sin($this->la[$i])*$expscale;
-
-	    if( $aaoption !== 2 ) {
-		$img->CakeSlice($xcm,$ycm,$radius-1,$radius-1,
-				$angle1*180/M_PI,$angle2*180/M_PI,$slicecolor,$arccolor);
-	    }
-
-	    if( $this->csimtargets && $aaoption !== 1 ) {
-		$this->AddSliceToCSIM($i,$xcm,$ycm,$radius,$angle1,$angle2);
-	    }
-	}
-
-	// Format the titles for each slice
-	if( $aaoption!==2) {
-	    for( $i=0; $i < $n; ++$i) {
-		if( $this->labeltype==0 ) {
-		    if( $sum != 0 )
-			$l = 100.0*$this->data[$i]/$sum;
-		    else
-			$l = 0.0;
-		}
-		elseif( $this->labeltype==1 ) {
-		    $l = $this->data[$i]*1.0;
-		}
-		else {
-		    $l = $this->adjusted_data[$i];
-		}
-		if( isset($this->labels[$i]) && is_string($this->labels[$i]) )
-		    $this->labels[$i]=sprintf($this->labels[$i],$l);
-		else
-		    $this->labels[$i]=$l;
-	    }
-	}
-
-	If( $this->value->show && $aaoption !== 1 ) {
-	    $this->StrokeAllLabels($img,$xc,$yc,$radius);
-	}
-
-	// Adjust title position
-	if( $aaoption !== 1 ) {
-	    $this->title->Pos($xc,
-			  $yc-$this->title->GetFontHeight($img)-$radius-$this->title->margin,
-			  "center","bottom");
-	    $this->title->Stroke($img);
-	}
-
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    function NormAngle($a) {
-	while( $a < 0 ) $a += 2*M_PI;
-	while( $a > 2*M_PI ) $a -= 2*M_PI;
-	return $a;
-    }
-
-    function Quadrant($a) {
-	$a=$this->NormAngle($a);
-	if( $a > 0 && $a <= M_PI/2 )
-	    return 0;
-	if( $a > M_PI/2 && $a <= M_PI )
-	    return 1;
-	if( $a > M_PI && $a <= 1.5*M_PI )
-	    return 2;
-	if( $a > 1.5*M_PI )
-	    return 3;
-    }
-
-    function StrokeGuideLabels(&$img,$xc,$yc,$radius) {
-	$n = count($this->labels);
-
-	//-----------------------------------------------------------------------
-	// Step 1 of the algorithm is to construct a number of clusters
-	// a cluster is defined as all slices within the same quadrant (almost)
-	// that has an angualr distance less than the treshold
-	//-----------------------------------------------------------------------
-	$tresh_hold=25 * M_PI/180; // 25 degrees difference to be in a cluster
-	$incluster=false;	// flag if we are currently in a cluster or not
-	$clusters = array();	// array of clusters
-	$cidx=-1;		// running cluster index
-
-	// Go through all the labels and construct a number of clusters
-	for($i=0; $i < $n-1; ++$i) {
-	    // Calc the angle distance between two consecutive slices
-	    $a1=$this->la[$i];
-	    $a2=$this->la[$i+1];
-	    $q1 = $this->Quadrant($a1);
-	    $q2 = $this->Quadrant($a2);
-	    $diff = abs($a1-$a2);
-	    if( $diff < $tresh_hold ) {
-		if( $incluster ) {
-		    $clusters[$cidx][1]++;
-		    // Each cluster can only cover one quadrant
-		    // Do we cross a quadrant ( and must break the cluster)
-		    if( $q1 !=  $q2 ) {
-			// If we cross a quadrant boundary we normally start a 
-			// new cluster. However we need to take the 12'a clock
-			// and 6'a clock positions into a special consideration.
-			// Case 1: WE go from q=1 to q=2 if the last slice on
-			// the cluster for q=1 is close to 12'a clock and the 
-			// first slice in q=0 is small we extend the previous
-			// cluster
-			if( $q1 == 1 && $q2 == 0 && $a2 > (90-15)*M_PI/180 ) {
-			    if( $i < $n-2 ) {
-				$a3 = $this->la[$i+2];
-				// If there isn't a cluster coming up with the next-next slice
-				// we extend the previous cluster to cover this slice as well
-				if( abs($a3-$a2) >= $tresh_hold ) {
-				    $clusters[$cidx][1]++;
-				    $i++;
-				}
-			    }
-			}
-			elseif( $q1 == 3 && $q2 == 2 && $a2 > (270-15)*M_PI/180 ) {
-			    if( $i < $n-2 ) {
-				$a3 = $this->la[$i+2];
-				// If there isn't a cluster coming up with the next-next slice
-				// we extend the previous cluster to cover this slice as well
-				if( abs($a3-$a2) >= $tresh_hold ) {
-				    $clusters[$cidx][1]++;
-				    $i++;
-				}
-			    }
-			}
-
-			if( $q1==2 && $q2==1 && $a2 > (180-15)*M_PI/180 ) {
-			    $clusters[$cidx][1]++;
-			    $i++;			    
-			}
-			
-			$incluster = false;
-		    }
-		}
-		elseif( $q1 == $q2)  {
-		    $incluster = true;
-		    // Now we have a special case for quadrant 0. If we previously
-		    // have a cluster of one in quadrant 0 we just extend that
-		    // cluster. If we don't do this then we risk that the label
-		    // for the cluster of one will cross the guide-line
-		    if( $q1 == 0 && $cidx > -1 && 
-			$clusters[$cidx][1] == 1 && 
-			$this->Quadrant($this->la[$clusters[$cidx][0]]) == 0 ) {
-			$clusters[$cidx][1]++;
-		    }
-		    else {
-			$cidx++;
-			$clusters[$cidx][0] = $i;
-			$clusters[$cidx][1] = 1;
-		    }
-		}
-		else {  
-		    // Create a "cluster" of one since we are just crossing
-		    // a quadrant
-		    $cidx++;
-		    $clusters[$cidx][0] = $i;
-		    $clusters[$cidx][1] = 1;	    
-		}
-	    }
-	    else {
-		if( $incluster ) {
-		    // Add the last slice
-		    $clusters[$cidx][1]++;
-		    $incluster = false;
-		}
-		else { // Create a "cluster" of one
-		    $cidx++;
-		    $clusters[$cidx][0] = $i;
-		    $clusters[$cidx][1] = 1;	    
-		}
-	    }
-	}
-	// Handle the very last slice
-	if( $incluster ) {
-	    $clusters[$cidx][1]++;
-	}
-	else { // Create a "cluster" of one
-	    $cidx++;
-	    $clusters[$cidx][0] = $i;
-	    $clusters[$cidx][1] = 1;	    
-	}
-
-	/*
-	if( true ) { 
-	    // Debug printout in labels
-	    for( $i=0; $i <= $cidx; ++$i ) {
-		for( $j=0; $j < $clusters[$i][1]; ++$j ) {
-		    $a = $this->la[$clusters[$i][0]+$j];
-		    $aa = round($a*180/M_PI);
-		    $q = $this->Quadrant($a);
-		    $this->labels[$clusters[$i][0]+$j]="[$q:$aa] $i:$j";
-		}
-	    }
-	}
-	*/
-
-	//-----------------------------------------------------------------------
-	// Step 2 of the algorithm is use the clusters and draw the labels
-	// and guidelines
-	//-----------------------------------------------------------------------
-
-	// We use the font height as the base factor for how far we need to
-	// spread the labels in the Y-direction.
-	$img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	$fh = $img->GetFontHeight();
-	$origvstep=$fh*$this->iGuideVFactor;
-	$this->value->SetMargin(0);
-
-	// Number of clusters found
-	$nc = count($clusters);
-
-	// Walk through all the clusters
-	for($i=0; $i < $nc; ++$i) {
-
-	    // Start angle and number of slices in this cluster
-	    $csize = $clusters[$i][1];
-	    $a = $this->la[$clusters[$i][0]];
-	    $q = $this->Quadrant($a);
-
-	    // Now set up the start and end conditions to make sure that
-	    // in each cluster we walk through the all the slices starting with the slice
-	    // closest to the equator. Since all slices are numbered clockwise from "3'a clock"
-	    // we have different conditions depending on in which quadrant the slice lies within.
-	    if( $q == 0 ) {
-		$start = $csize-1; $idx = $start; $step = -1; $vstep = -$origvstep;
-	    }
-	    elseif( $q == 1 ) {
-		$start = 0; $idx = $start; $step = 1; $vstep = -$origvstep;
-	    }
-	    elseif( $q == 2 ) {
-		$start = $csize-1; $idx = $start; $step = -1; $vstep = $origvstep;
-	    }
-	    elseif( $q == 3 ) {
-		$start = 0; $idx = $start; $step = 1; $vstep = $origvstep;
-	    }
-
-	    // Walk through all slices within this cluster
-	    for($j=0; $j < $csize; ++$j) {   
-		// Now adjust the position of the labels in each cluster starting
-		// with the slice that is closest to the equator of the pie
-		$a = $this->la[$clusters[$i][0]+$idx];
-		    
-		// Guide line start in the center of the arc of the slice
-		$r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)];
-		$x = round($r*cos($a)+$xc);
-		$y = round($yc-$r*sin($a));
-		
-		// The distance from the arc depends on chosen font and the "R-Factor"
-		$r += $fh*$this->iGuideLineRFactor;
-
-		// Should the labels be placed curved along the pie or in straight columns
-		// outside the pie?
-		if( $this->iGuideLineCurve )
-		    $xt=round($r*cos($a)+$xc);
-
-		// If this is the first slice in the cluster we need some first time
-		// proessing
-		if( $idx == $start ) {
-		    if( ! $this->iGuideLineCurve )
-			$xt=round($r*cos($a)+$xc);
-		    $yt=round($yc-$r*sin($a));
-
-		    // Some special consideration in case this cluster starts
-		    // in quadrant 1 or 3 very close to the "equator" (< 20 degrees) 
-		    // and the previous clusters last slice is within the tolerance. 
-		    // In that case we add a font height to this labels Y-position 
-		    // so it doesn't collide with
-		    // the slice in the previous cluster
-		    $prevcluster = ($i + ($nc-1) ) % $nc;
-		    $previdx=$clusters[$prevcluster][0]+$clusters[$prevcluster][1]-1;
-		    if( $q == 1 && $a > 160*M_PI/180 ) {
-			// Get the angle for the previous clusters last slice
-			$diff = abs($a-$this->la[$previdx]);
-			 if( $diff < $tresh_hold ) {
-			     $yt -= $fh;
-			 }
-		    }
-		    elseif( $q == 3 && $a > 340*M_PI/180 ) {
-			// We need to subtract 360 to compare angle distance between
-			// q=0 and q=3
-			$diff = abs($a-$this->la[$previdx]-360*M_PI/180);
-			if( $diff < $tresh_hold ) {
-			     $yt += $fh;
-			}
-		    }
-
-		}
-		else {
-		    // The step is at minimum $vstep but if the slices are relatively large
-		    // we make sure that we add at least a step that corresponds to the vertical
-		    // distance between the centers at the arc on the slice
-		    $prev_a = $this->la[$clusters[$i][0]+($idx-$step)];
-		    $dy = abs($radius*(sin($a)-sin($prev_a))*1.2);
-		    if( $vstep > 0 )
-			$yt += max($vstep,$dy);
-		    else
-			$yt += min($vstep,-$dy);
-		}
-
-		$label = $this->labels[$clusters[$i][0]+$idx];
-
-		if( $csize == 1 ) {
-		    // A "meta" cluster with only one slice
-		    $r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)];
-		    $rr = $r+$img->GetFontHeight()/2;
-		    $xt=round($rr*cos($a)+$xc);
-		    $yt=round($yc-$rr*sin($a));
-		    $this->StrokeLabel($label,$img,$xc,$yc,$a,$r); 
-		    if( $this->iShowGuideLineForSingle ) 
-			$this->guideline->Stroke($img,$x,$y,$xt,$yt);
-		}
-		else {
-		    $this->guideline->Stroke($img,$x,$y,$xt,$yt);
-		    if( $q==1 || $q==2 ) {
-			// Left side of Pie
-			$this->guideline->Stroke($img,$xt,$yt,$xt-$this->guidelinemargin,$yt);
-			$lbladj = -$this->guidelinemargin-5;
-			$this->value->halign = "right";
-			$this->value->valign = "center";
-		    }
-		    else {
-			// Right side of pie
-			$this->guideline->Stroke($img,$xt,$yt,$xt+$this->guidelinemargin,$yt);
-			$lbladj = $this->guidelinemargin+5;
-			$this->value->halign = "left";
-			$this->value->valign = "center";
-		    }
-		    $this->value->Stroke($img,$label,$xt+$lbladj,$yt);
-		}
-
-		// Udate idx to point to next slice in the cluster to process
-		$idx += $step;
-	    }
-	}
-    }
-
-    function StrokeAllLabels(&$img,$xc,$yc,$radius) {
-	// First normalize all angles for labels
-	$n = count($this->la);
-	for($i=0; $i < $n; ++$i) {
-	    $this->la[$i] = $this->NormAngle($this->la[$i]);
-	}
-	if( $this->guideline->iShow ) {
-	    $this->StrokeGuideLabels($img,$xc,$yc,$radius);
-	}
-	else {
-	    $n = count($this->labels);
-	    for($i=0; $i < $n; ++$i) {
-		$this->StrokeLabel($this->labels[$i],$img,$xc,$yc,
-				   $this->la[$i],
-				   $radius + $this->explode_radius[$n-1-$i]); 
-	    }
-	}
-    }
-
-    // Position the labels of each slice
-    function StrokeLabel($label,&$img,$xc,$yc,$a,$radius) {
-
-	// Default value
-	if( $this->ilabelposadj === 'auto' )
-	    $this->ilabelposadj = 0.65;
-	$r = $radius;
-
-	// We position the values diferently depending on if they are inside
-	// or outside the pie
-	if( $this->ilabelposadj < 1.0 ) {
-
-	    $this->value->SetAlign('center','center');
-	    $this->value->margin = 0;
-	    
-	    $xt=round($this->ilabelposadj*$r*cos($a)+$xc);
-	    $yt=round($yc-$this->ilabelposadj*$r*sin($a));
-	    
-	    $this->value->Stroke($img,$label,$xt,$yt);
-	}
-	else {
-
-	    $this->value->halign = "left";
-	    $this->value->valign = "top";
-	    $this->value->margin = 0;
-	    	    
-	    // Position the axis title. 
-	    // dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	    // that intersects with the extension of the corresponding axis. The code looks a little
-	    // bit messy but this is really the only way of having a reasonable position of the
-	    // axis titles.
-	    $img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	    $h=$img->GetTextHeight($label);
-	    // For numeric values the format of the display value
-	    // must be taken into account
-	    if( is_numeric($label) ) {
-		if( $label > 0 )
-		    $w=$img->GetTextWidth(sprintf($this->value->format,$label));
-		else
-		    $w=$img->GetTextWidth(sprintf($this->value->negformat,$label));
-	    }
-	    else
-		$w=$img->GetTextWidth($label);
-	    if( $this->ilabelposadj > 1.0 && $this->ilabelposadj < 5.0) {
-		$r *= $this->ilabelposadj;
-	    }
-	    
-	    $r += $img->GetFontHeight()/1.5;
-
-	    $xt=round($r*cos($a)+$xc);
-	    $yt=round($yc-$r*sin($a));
-
-	    // Normalize angle
-	    while( $a < 0 ) $a += 2*M_PI;
-	    while( $a > 2*M_PI ) $a -= 2*M_PI;
-		
-	    if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0;
-	    if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; 
-	    if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1;
-	    if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI);
-	    
-	    if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI;
-	    if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI);
-	    if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1;
-	    if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI);
-	    if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0;
-	    
-	    $this->value->Stroke($img,$label,$xt-$dx*$w,$yt-$dy*$h);
-	}
-    }	
-} // Class
-
-
-//===================================================
-// CLASS PiePlotC
-// Description: Same as a normal pie plot but with a 
-// filled circle in the center
-//===================================================
-class PiePlotC extends PiePlot {
-    var $imidsize=0.5;		// Fraction of total width
-    var $imidcolor='white';
-    var $midtitle='';
-    var $middlecsimtarget="",$middlecsimalt="";
-
-    function PiePlotC($data,$aCenterTitle='') {
-	parent::PiePlot($data);
-	$this->midtitle = new Text();
-	$this->midtitle->ParagraphAlign('center');
-    }
-
-    function SetMid($aTitle,$aColor='white',$aSize=0.5) {
-	$this->midtitle->Set($aTitle);
-
-	$this->imidsize = $aSize ; 
-	$this->imidcolor = $aColor ; 
-    }
-
-    function SetMidTitle($aTitle) {
-	$this->midtitle->Set($aTitle);
-    }
-
-    function SetMidSize($aSize) {
-	$this->imidsize = $aSize ; 
-    }
-
-    function SetMidColor($aColor) {
-	$this->imidcolor = $aColor ; 
-    }
-
-    function SetMidCSIM($aTarget,$aAlt) {
-	$this->middlecsimtarget = $aTarget;
-	$this->middlecsimalt = $aAlt;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) {  
-
-        //Slice number, ellipse centre (x,y), radius, start angle, end angle
-	while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI;
-	while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI;
-
-	$sa = 2*M_PI - $sa;
-	$ea = 2*M_PI - $ea;
-
-	// Special case when we have only one slice since then both start and end
-	// angle will be == 0
-	if( abs($sa - $ea) < 0.0001 ) {
-	    $sa=2*M_PI; $ea=0;
-	}
-
-	// Add inner circle first point
-	$xp = floor(($this->imidsize*$radius*cos($ea))+$xc);
-	$yp = floor($yc-($this->imidsize*$radius*sin($ea)));
-	$coords = "$xp, $yp";
-	
-	//add coordinates every 0.25 radians
-	$a=$ea+0.25;
-
-	// If we cross the 260-limit with a slice we need to handle
-	// the fact that end angle is smaller than start
-	if( $sa < $ea ) {
-	    while ($a <= 2*M_PI) {
-		$xp = floor($radius*cos($a)+$xc);
-		$yp = floor($yc-$radius*sin($a));
-		$coords.= ", $xp, $yp";
-		$a += 0.25;
-	    }
-	    $a -= 2*M_PI;
-	}
-
-	while ($a < $sa) {
-	    $xp = floor(($this->imidsize*$radius*cos($a)+$xc));
-	    $yp = floor($yc-($this->imidsize*$radius*sin($a)));
-	    $coords.= ", $xp, $yp";
-	    $a += 0.25;
-	}
-
-	// Make sure we end at the last point
-	$xp = floor(($this->imidsize*$radius*cos($sa)+$xc));
-	$yp = floor($yc-($this->imidsize*$radius*sin($sa)));
-	$coords.= ", $xp, $yp";
-
-	// Straight line to outer circle
-	$xp = floor($radius*cos($sa)+$xc);
-	$yp = floor($yc-$radius*sin($sa));
-	$coords.= ", $xp, $yp";	
-
-	//add coordinates every 0.25 radians
-	$a=$sa - 0.25;
-	while ($a > $ea) {
-	    $xp = floor($radius*cos($a)+$xc);
-	    $yp = floor($yc-$radius*sin($a));
-	    $coords.= ", $xp, $yp";
-	    $a -= 0.25;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($radius*cos($ea)+$xc);
-	$yp = floor($yc-$radius*sin($ea));
-	$coords.= ", $xp, $yp";
-
-	// Close the arc
-	$xp = floor(($this->imidsize*$radius*cos($ea))+$xc);
-	$yp = floor($yc-($this->imidsize*$radius*sin($ea)));
-	$coords .= ", $xp, $yp";
-
-	if( !empty($this->csimtargets[$i]) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".
-		$this->csimtargets[$i]."\"";
-	    if( !empty($this->csimalts[$i]) ) {
-		$tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-
-
-    function Stroke(&$img,$aaoption=0) {
-
-	// Stroke the pie but don't stroke values
-	$tmp =  $this->value->show;
-	$this->value->show = false;
-	parent::Stroke($img,$aaoption);
-	$this->value->show = $tmp;
-
- 	$xc = round($this->posx*$img->width);
-	$yc = round($this->posy*$img->height);
-
-	$radius = floor($this->radius * min($img->width,$img->height)) ;
-
-
-	if( $this->imidsize > 0 && $aaoption !== 2 ) {
-
-	    if( $this->ishadowcolor != "" ) {
-		$img->SetColor($this->ishadowcolor);
-		$img->FilledCircle($xc+$this->ishadowdrop,$yc+$this->ishadowdrop,
-				   round($radius*$this->imidsize));
-	    }
-
-	    $img->SetColor($this->imidcolor);
-	    $img->FilledCircle($xc,$yc,round($radius*$this->imidsize));
-
-	    if(  $this->pie_border && $aaoption === 0 ) {
-		$img->SetColor($this->color);
-		$img->Circle($xc,$yc,round($radius*$this->imidsize));
-	    }
-
-	    if( !empty($this->middlecsimtarget) )
-		$this->AddMiddleCSIM($xc,$yc,round($radius*$this->imidsize));
-
-	}
-
-	if( $this->value->show && $aaoption !== 1) {
-	    $this->StrokeAllLabels($img,$xc,$yc,$radius);
-	    $this->midtitle->Pos($xc,$yc,'center','center');
-	    $this->midtitle->Stroke($img);
-	}
-
-    }
-
-    function AddMiddleCSIM($xc,$yc,$r) {
-	$xc=round($xc);$yc=round($yc);$r=round($r);
-	$this->csimareas .= "<area shape=\"circle\" coords=\"$xc,$yc,$r\" href=\"".
-	    $this->middlecsimtarget."\"";
-	if( !empty($this->middlecsimalt) ) {
-	    $tmp = $this->middlecsimalt;
-	    $this->csimareas .= " title=\"$tmp\"";
-	}
-	$this->csimareas .= " alt=\"$tmp\" />\n";
-    }
-
-    function StrokeLabel($label,$img,$xc,$yc,$a,$r) {
-
-	if( $this->ilabelposadj === 'auto' )
-	    $this->ilabelposadj = (1-$this->imidsize)/2+$this->imidsize;
-
-	parent::StrokeLabel($label,$img,$xc,$yc,$a,$r);
-
-    }
-
-}
-
-
-//===================================================
-// CLASS PieGraph
-// Description: 
-//===================================================
-class PieGraph extends Graph {
-    var $posx, $posy, $radius;		
-    var $legends=array();	
-    var $plots=array();
-    var $pieaa = false ;
-//---------------
-// CONSTRUCTOR
-    function PieGraph($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) {
-	$this->Graph($width,$height,$cachedName,$timeout,$inline);
-	$this->posx=$width/2;
-	$this->posy=$height/2;
-	$this->SetColor(array(255,255,255));		
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Add($aObj) {
-
-	if( is_array($aObj) && count($aObj) > 0 )
-	    $cl = $aObj[0];
-	else
-	    $cl = $aObj;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aObj);
-	elseif( is_a($cl,'IconPlot') ) 
-	    $this->AddIcon($aObj);
-	else {
-	    if( is_array($aObj) ) {
-		$n = count($aObj);
-		for($i=0; $i < $n; ++$i ) {
-		    $this->plots[] = $aObj[$i];
-		}
-	    }
-	    else {
-		$this->plots[] = $aObj;
-	    }
-	}
-    }
-
-    function SetAntiAliasing($aFlg=true) {
-	$this->pieaa = $aFlg;
-    }
-	
-    function SetColor($c) {
-	$this->SetMarginColor($c);
-    }
-
-    function DisplayCSIMAreas() {
-	    $csim="";
-	    foreach($this->plots as $p ) {
-		$csim .= $p->GetCSIMareas();
-	    }
-	    //$csim.= $this->legend->GetCSIMareas();
-	    if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) {
-		$this->img->SetColor($this->csimcolor);
-		$n = count($coords[0]);
-		for ($i=0; $i < $n; $i++) {
-		    if ($coords[1][$i]=="poly") {
-			preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts);
-			$this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]);
-			$m = count($pts[0]);
-			for ($j=0; $j < $m; $j++) {
-			    $this->img->LineTo($pts[1][$j],$pts[2][$j]);
-			}
-		    } else if ($coords[1][$i]=="rect") {
-			$pts = preg_split('/,/', $coords[2][$i]);
-			$this->img->SetStartPoint($pts[0],$pts[1]);
-			$this->img->LineTo($pts[2],$pts[1]);
-			$this->img->LineTo($pts[2],$pts[3]);
-			$this->img->LineTo($pts[0],$pts[3]);
-			$this->img->LineTo($pts[0],$pts[1]);
-						
-		    }
-		}
-	    }
-    }
-
-    // Method description
-    function Stroke($aStrokeFileName="") {
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-		
-	$n = count($this->plots);
-
-	if( $this->pieaa ) {
-
-	    if( !$_csim ) {
-		if( $this->background_image != "" ) {
-		    $this->StrokeFrameBackground();		
-		}
-		else {
-		    $this->StrokeFrame();
-		}
-	    }
-
-
-	    $w = $this->img->width;
-	    $h = $this->img->height;
-	    $oldimg = $this->img->img;
-
-	    $this->img->CreateImgCanvas(2*$w,2*$h);
-	    
-	    $this->img->SetColor( $this->margin_color );
-	    $this->img->FilledRectangle(0,0,2*$w-1,2*$h-1);
-
-	    // Make all icons *2 i size since we will be scaling down the
-	    // image to do the anti aliasing
-	    $ni = count($this->iIcons);
-	    for($i=0; $i < $ni; ++$i) {
-		$this->iIcons[$i]->iScale *= 2 ;
-		if( $this->iIcons[$i]->iX > 1 ) 
-		    $this->iIcons[$i]->iX *= 2 ;
-		if( $this->iIcons[$i]->iY > 1 ) 
-		    $this->iIcons[$i]->iY *= 2 ;
-	    }
-
-	    $this->StrokeIcons();
-
-	    for($i=0; $i < $n; ++$i) {
-		if( $this->plots[$i]->posx > 1 ) 
-		    $this->plots[$i]->posx *= 2 ;
-		if( $this->plots[$i]->posy > 1 ) 
-		    $this->plots[$i]->posy *= 2 ;
-
-		$this->plots[$i]->Stroke($this->img,1);
-
-		if( $this->plots[$i]->posx > 1 ) 
-		    $this->plots[$i]->posx /= 2 ;
-		if( $this->plots[$i]->posy > 1 ) 
-		    $this->plots[$i]->posy /= 2 ;
-	    }
-	    $indent = $this->doframe ? ($this->frame_weight + ($this->doshadow ? $this->shadow_width : 0 )) : 0 ;
-	    $indent += $this->framebevel ? $this->framebeveldepth + 1 : 0 ;
-	    $this->img->CopyCanvasH($oldimg,$this->img->img,$indent,$indent,$indent,$indent,
-				    $w-2*$indent,$h-2*$indent,2*($w-$indent),2*($h-$indent));
-
-	    $this->img->img = $oldimg ;
-	    $this->img->width = $w ;
-	    $this->img->height = $h ;
-
-	    for($i=0; $i < $n; ++$i) {
-		$this->plots[$i]->Stroke($this->img,2); // Stroke labels
-		$this->plots[$i]->Legend($this);
-	    }
-
-	}
-	else {
-	    // No antialias
-	    if( !$_csim ) {
-		if( $this->background_image != "" ) {
-		    $this->StrokeFrameBackground();		
-		}
-		else {
-		    $this->StrokeFrame();
-		    $this->StrokeBackgroundGrad();
-		}
-	    }
-
-	    $this->StrokeIcons();
-	    for($i=0; $i < $n; ++$i) {
-		$this->plots[$i]->Stroke($this->img);
-		$this->plots[$i]->Legend($this);
-	    }
-	}
-
-	$this->legend->Stroke($this->img);
-	$this->footer->Stroke($this->img);
-	$this->StrokeTitles();
-
-	if( !$_csim ) {	
-
-	    // Stroke texts
-	    if( $this->texts != null ) {
-		$n = count($this->texts);
-		for($i=0; $i < $n; ++$i ) {
-		    $this->texts[$i]->Stroke($this->img);
-		}
-	    }
-
-	    if( _JPG_DEBUG ) {
-		$this->DisplayCSIMAreas();
-	    }
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		    //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.');
-		}
-	       
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_pie3d.php b/nightly-test-server/jpgraph/jpgraph_pie3d.php
deleted file mode 100644
index 753ec68..0000000
--- a/nightly-test-server/jpgraph/jpgraph_pie3d.php
+++ /dev/null
@@ -1,914 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_PIE3D.PHP
-// Description: 3D Pie plot extension for JpGraph
-// Created: 	2001-03-24
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS PiePlot3D
-// Description: Plots a 3D pie with a specified projection 
-// angle between 20 and 70 degrees.
-//===================================================
-class PiePlot3D extends PiePlot {
-    var $labelhintcolor="red",$showlabelhint=true;
-    var $angle=50;	
-    var $edgecolor="", $edgeweight=1;
-    var $iThickness=false;
-	
-//---------------
-// CONSTRUCTOR
-    function PiePlot3d(&$data) {
-	$this->radius = 0.5;
-	$this->data = $data;
-	$this->title = new Text("");
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->value = new DisplayValue();
-	$this->value->Show();
-	$this->value->SetFormat('%.0f%%');
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-    // Set label arrays
-    function SetLegends($aLegend) {
-	$this->legends = array_reverse(array_slice($aLegend,0,count($this->data)));
-    }
-
-    function SetSliceColors($aColors) {
-	$this->setslicecolors = $aColors;
-    }
-
-    function Legend(&$aGraph) {
-	parent::Legend($aGraph);
-	$aGraph->legend->txtcol = array_reverse($aGraph->legend->txtcol);
-    }
-
-    function SetCSIMTargets($targets,$alts=null) {
-	$this->csimtargets = $targets;
-	$this->csimalts = $alts;
-    }
-
-    // Should the slices be separated by a line? If color is specified as "" no line
-    // will be used to separate pie slices.
-    function SetEdge($aColor='black',$aWeight=1) {
-	$this->edgecolor = $aColor;
-	$this->edgeweight = $aWeight;
-    }
-
-    // Dummy function to make Pie3D behave in a similair way to 2D
-    function ShowBorder($exterior=true,$interior=true) {
-	JpGraphError::RaiseL(14001);
-//('Pie3D::ShowBorder() . Deprecated function. Use Pie3D::SetEdge() to control the edges around slices.');
-    }
-
-    // Specify projection angle for 3D in degrees
-    // Must be between 20 and 70 degrees
-    function SetAngle($a) {
-	if( $a<5 || $a>90 )
-	    JpGraphError::RaiseL(14002);
-//("PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees.");
-	else
-	    $this->angle = $a;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$height,$width,$thick,$sa,$ea) {  //Slice number, ellipse centre (x,y), height, width, start angle, end angle
-
-	$sa *= M_PI/180;
-	$ea *= M_PI/180;
-
-	//add coordinates of the centre to the map
-	$coords = "$xc, $yc";
-
-	//add coordinates of the first point on the arc to the map
-	$xp = floor($width*cos($sa)/2+$xc);
-	$yp = floor($yc-$height*sin($sa)/2);
-	$coords.= ", $xp, $yp";
-
-	//If on the front half, add the thickness offset
-	if ($sa >= M_PI && $sa <= 2*M_PI*1.01) {
-	    $yp = floor($yp+$thick);
-	    $coords.= ", $xp, $yp";
-	}
-		
-	//add coordinates every 0.2 radians
-	$a=$sa+0.2;
-	while ($a<$ea) {
-	    $xp = floor($width*cos($a)/2+$xc);
-	    if ($a >= M_PI && $a <= 2*M_PI*1.01) {
-		$yp = floor($yc-($height*sin($a)/2)+$thick);
-	    } else {
-		$yp = floor($yc-$height*sin($a)/2);
-	    }
-	    $coords.= ", $xp, $yp";
-	    $a += 0.2;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($width*cos($ea)/2+$xc);
-	$yp = floor($yc-$height*sin($ea)/2);
-
-
-	if ($ea >= M_PI && $ea <= 2*M_PI*1.01) {
-	    $coords.= ", $xp, ".floor($yp+$thick);
-	}
-	$coords.= ", $xp, $yp";
-	$alt='';
-	if( !empty($this->csimalts[$i]) ) {										
-	    $tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-	    $alt="alt=\"$tmp\" title=\"$tmp\"";
-	}
-	if( !empty($this->csimtargets[$i]) )
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->csimtargets[$i]."\" $alt />\n";
-    }
-
-    function SetLabels($aLabels,$aLblPosAdj="auto") {
-	$this->labels = $aLabels;
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-
-	
-    // Distance from the pie to the labels
-    function SetLabelMargin($m) {
-	$this->value->SetMargin($m);
-    }
-	
-    // Show a thin line from the pie to the label for a specific slice
-    function ShowLabelHint($f=true) {
-	$this->showlabelhint=$f;
-    }
-	
-    // Set color of hint line to label for each slice
-    function SetLabelHintColor($c) {
-	$this->labelhintcolor=$c;
-    }
-
-    function SetHeight($aHeight) {
-      $this->iThickness = $aHeight;
-    }
-
-
-// Normalize Angle between 0-360
-    function NormAngle($a) {
-	// Normalize anle to 0 to 2M_PI
-	// 
-	if( $a > 0 ) {
-	    while($a > 360) $a -= 360;
-	}
-	else {
-	    while($a < 0) $a += 360;
-	}
-	if( $a < 0 )
-	    $a = 360 + $a;
-
-	if( $a == 360 ) $a=0;
-	return $a;
-    }
-
-    
-
-// Draw one 3D pie slice at position ($xc,$yc) with height $z
-    function Pie3DSlice(&$img,$xc,$yc,$w,$h,$sa,$ea,$z,$fillcolor,$shadow=0.65) {
-	
-	// Due to the way the 3D Pie algorithm works we are
-	// guaranteed that any slice we get into this method
-	// belongs to either the left or right side of the
-	// pie ellipse. Hence, no slice will cross 90 or 270
-	// point.
-	if( ($sa < 90 && $ea > 90) || ( ($sa > 90 && $sa < 270) && $ea > 270) ) {
-	    JpGraphError::RaiseL(14003);//('Internal assertion failed. Pie3D::Pie3DSlice');
-	    exit(1);
-	}
-
-	$p[] = array();
-
-	// Setup pre-calculated values
-	$rsa = $sa/180*M_PI;	// to Rad
-	$rea = $ea/180*M_PI;	// to Rad
-	$sinsa = sin($rsa);
-	$cossa = cos($rsa);
-	$sinea = sin($rea);
-	$cosea = cos($rea);
-
-	// p[] is the points for the overall slice and
-	// pt[] is the points for the top pie
-
-	// Angular step when approximating the arc with a polygon train.
-	$step = 0.05;
-
-	if( $sa >= 270 ) {
-	    if( $ea > 360 || ($ea > 0 && $ea <= 90) ) {
-		if( $ea > 0 && $ea <= 90 ) {
-		    // Adjust angle to simplify conditions in loops
-		    $rea += 2*M_PI;
-		}
-
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cossa,$z+$yc-$h*$sinsa);
-		$pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-
-		for( $a=$rsa; $a < 2*M_PI; $a += $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z+$yc-$h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$pt[] = $xc+$w;
-		$pt[] = $yc;
-
-		$p[] = $xc+$w;
-		$p[] = $z+$yc;
-		$p[] = $xc+$w;
-		$p[] = $yc;
-		$p[] = $xc;
-		$p[] = $yc;
-
-		for( $a=2*M_PI+$step; $a < $rea; $a += $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-		    
-		$pt[] = $xc+$w*$cosea;
-		$pt[] = $yc-$h*$sinea;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	    else {
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cossa,$z+$yc-$h*$sinsa);
-		$pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-		    
-		$rea = $rea == 0.0 ? 2*M_PI : $rea;
-		for( $a=$rsa; $a < $rea; $a += $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z+$yc-$h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$pt[] = $xc+$w*$cosea;
-		$pt[] = $yc-$h*$sinea;
-		$pt[] = $xc;
-		$pt[] = $yc;
-		    
-		$p[] = $xc+$w*$cosea;
-		$p[] = $z+$yc-$h*$sinea;
-		$p[] = $xc+$w*$cosea;
-		$p[] = $yc-$h*$sinea;
-		$p[] = $xc;
-		$p[] = $yc;
-	    }
-	}
-	elseif( $sa >= 180 ) {
-	    $p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea);
-	    $pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-		
-	    for( $a=$rea; $a>$rsa; $a -= $step ) {
-		$tca = cos($a);
-		$tsa = sin($a);
-		$p[] = $xc+$w*$tca;
-		$p[] = $z+$yc-$h*$tsa;
-		$pt[] = $xc+$w*$tca;
-		$pt[] = $yc-$h*$tsa;
-	    }
-
-	    $pt[] = $xc+$w*$cossa;
-	    $pt[] = $yc-$h*$sinsa;
-	    $pt[] = $xc;
-	    $pt[] = $yc;
-		
-	    $p[] = $xc+$w*$cossa;
-	    $p[] = $z+$yc-$h*$sinsa;
-	    $p[] = $xc+$w*$cossa;
-	    $p[] = $yc-$h*$sinsa;
-	    $p[] = $xc;
-	    $p[] = $yc;
-	
-	}
-	elseif( $sa >= 90 ) {
-	    if( $ea > 180 ) {
-		$p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea);
-		$pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-
-		for( $a=$rea; $a > M_PI; $a -= $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);		    
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z + $yc - $h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$p[] = $xc-$w;
-		$p[] = $z+$yc;
-		$p[] = $xc-$w;
-		$p[] = $yc;
-		$p[] = $xc;
-		$p[] = $yc;
-
-		$pt[] = $xc-$w;
-		$pt[] = $z+$yc;
-		$pt[] = $xc-$w;
-		$pt[] = $yc;
-
-		for( $a=M_PI-$step; $a > $rsa; $a -= $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-
-		$pt[] = $xc+$w*$cossa;
-		$pt[] = $yc-$h*$sinsa;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	    else { // $sa >= 90 && $ea <= 180
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cosea,$z+$yc-$h*$sinea,
-			   $xc+$w*$cosea,$yc-$h*$sinea,
-			   $xc,$yc);
-
-		$pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-
-		for( $a=$rea; $a>$rsa; $a -= $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-
-		$pt[] = $xc+$w*$cossa;
-		$pt[] = $yc-$h*$sinsa;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	}
-	else { // sa > 0 && ea < 90
-
-	    $p = array($xc,$yc,$xc,$yc+$z,
-		       $xc+$w*$cossa,$z+$yc-$h*$sinsa,
-		       $xc+$w*$cossa,$yc-$h*$sinsa,
-		       $xc,$yc);
-
-	    $pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-
-	    for( $a=$rsa; $a < $rea; $a += $step ) {
-		$pt[] = $xc + $w*cos($a);
-		$pt[] = $yc - $h*sin($a);
-	    }
-
-	    $pt[] = $xc+$w*$cosea;
-	    $pt[] = $yc-$h*$sinea;
-	    $pt[] = $xc;
-	    $pt[] = $yc;
-	}
-	    
-	$img->PushColor($fillcolor.":".$shadow);
-	$img->FilledPolygon($p);
-	$img->PopColor();
-
-	$img->PushColor($fillcolor);
-	$img->FilledPolygon($pt);
-	$img->PopColor();
-    }
-
-    function SetStartAngle($aStart) {
-	if( $aStart < 0 || $aStart > 360 ) {
-	    JpGraphError::RaiseL(14004);//('Slice start angle must be between 0 and 360 degrees.');
-	}
-	$this->startangle = $aStart;
-    }
-    
-// Draw a 3D Pie
-    function Pie3D($aaoption,&$img,$data,$colors,$xc,$yc,$d,$angle,$z,
-		   $shadow=0.65,$startangle=0,$edgecolor="",$edgeweight=1) {
-
-	//---------------------------------------------------------------------------
-	// As usual the algorithm get more complicated than I originally
-	// envisioned. I believe that this is as simple as it is possible
-	// to do it with the features I want. It's a good exercise to start
-	// thinking on how to do this to convince your self that all this
-	// is really needed for the general case.
-	//
-	// The algorithm two draw 3D pies without "real 3D" is done in
-	// two steps.
-	// First imagine the pie cut in half through a thought line between
-	// 12'a clock and 6'a clock. It now easy to imagine that we can plot 
-	// the individual slices for each half by starting with the topmost
-	// pie slice and continue down to 6'a clock.
-	// 
-	// In the algortithm this is done in three principal steps
-	// Step 1. Do the knife cut to ensure by splitting slices that extends 
-	// over the cut line. This is done by splitting the original slices into
-	// upto 3 subslices.
-	// Step 2. Find the top slice for each half
-	// Step 3. Draw the slices from top to bottom
-	//
-	// The thing that slightly complicates this scheme with all the
-	// angle comparisons below is that we can have an arbitrary start
-	// angle so we must take into account the different equivalence classes.
-	// For the same reason we must walk through the angle array in a 
-	// modulo fashion.
-	//
-	// Limitations of algorithm: 
-	// * A small exploded slice which crosses the 270 degree point
-	//   will get slightly nagged close to the center due to the fact that
-	//   we print the slices in Z-order and that the slice left part
-	//   get printed first and might get slightly nagged by a larger
-	//   slice on the right side just before the right part of the small
-	//   slice. Not a major problem though. 
-	//---------------------------------------------------------------------------
-
-    
-	// Determine the height of the ellippse which gives an
-	// indication of the inclination angle
-	$h = ($angle/90.0)*$d;
-	$sum = 0;
-	for($i=0; $i<count($data); ++$i ) {
-	    $sum += $data[$i];
-	}
-	
-	// Special optimization
-	if( $sum==0 ) return;
-
-	if( $this->labeltype == 2 ) {
-	    $this->adjusted_data = $this->AdjPercentage($data);
-	}
-
-	// Setup the start
-	$accsum = 0;
-	$a = $startangle;
-	$a = $this->NormAngle($a);
-
-	// 
-	// Step 1 . Split all slices that crosses 90 or 270
-	//
-	$idx=0;
-	$adjexplode=array(); 
-	$numcolors = count($colors);
-	for($i=0; $i<count($data); ++$i, ++$idx ) {
-	    $da = $data[$i]/$sum * 360;
-
-	    if( empty($this->explode_radius[$i]) )
-		$this->explode_radius[$i]=0;
-
-	    $expscale=1;
-	    if( $aaoption == 1 ) 
-		$expscale=2;
-
-	    $la = $a + $da/2;
-	    $explode = array( $xc + $this->explode_radius[$i]*cos($la*M_PI/180)*$expscale,
-		              $yc - $this->explode_radius[$i]*sin($la*M_PI/180) * ($h/$d) *$expscale );
-	    $adjexplode[$idx] = $explode;
-	    $labeldata[$i] = array($la,$explode[0],$explode[1]);
-	    $originalangles[$i] = array($a,$a+$da);
-
-	    $ne = $this->NormAngle($a+$da);
-	    if( $da <= 180 ) {
-		// If the slice size is <= 90 it can at maximum cut across
-		// one boundary (either 90 or 270) where it needs to be split
-		$split=-1; // no split
-		if( ($da<=90 && ($a <= 90 && $ne > 90)) ||
-		    (($da <= 180 && $da >90)  && (($a < 90 || $a >= 270) && $ne > 90)) ) {
-		    $split = 90;
-		}
-		elseif( ($da<=90 && ($a <= 270 && $ne > 270)) ||
-		        (($da<=180 && $da>90) && ($a >= 90 && $a < 270 && ($a+$da) > 270 )) ) {
-		    $split = 270;
-		} 
-		if( $split > 0 ) { // split in two
-		    $angles[$idx] = array($a,$split);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		    $angles[++$idx] = array($split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}
-		else { // no split
-		    $angles[$idx] = array($a,$ne);
-		    $adjcolors[$idx] = $colors[$i  % $numcolors];
-		    $adjexplode[$idx] = $explode;	
-		}
-	    }
-	    else { 
-		// da>180
-		// Slice may, depending on position, cross one or two
-		// bonudaries
-
-		if( $a < 90 ) 
-		    $split = 90;
-		elseif( $a <= 270 )
-		    $split = 270;
-		else 
-		    $split = 90;
-
-		$angles[$idx] = array($a,$split);
-		$adjcolors[$idx] = $colors[$i % $numcolors];
-		$adjexplode[$idx] = $explode;
-		//if( $a+$da > 360-$split ) { 
-		// For slices larger than 270 degrees we might cross
-		// another boundary as well. This means that we must
-		// split the slice further. The comparison gets a little
-		// bit complicated since we must take into accound that
-		// a pie might have a startangle >0 and hence a slice might
-		// wrap around the 0 angle.
-		// Three cases:
-		//  a) Slice starts before 90 and hence gets a split=90, but 
-		//     we must also check if we need to split at 270
-		//  b) Slice starts after 90 but before 270 and slices
-		//     crosses 90 (after a wrap around of 0)
-		//  c) If start is > 270 (hence the firstr split is at 90)
-		//     and the slice is so large that it goes all the way
-		//     around 270.
-		if( ($a < 90 && ($a+$da > 270)) ||
-		    ($a > 90 && $a<=270 && ($a+$da>360+90) ) ||
-		    ($a > 270 && $this->NormAngle($a+$da)>270) ) { 
-		    $angles[++$idx] = array($split,360-$split);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		    $angles[++$idx] = array(360-$split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}	
-		else {
-		    // Just a simple split to the previous decided
-		    // angle.
-		    $angles[++$idx] = array($split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}
-	    }
-	    $a += $da;
-	    $a = $this->NormAngle($a);
-	}
-
-	// Total number of slices 
-	$n = count($angles);
-
-	for($i=0; $i<$n; ++$i) {
-	    list($dbgs,$dbge) = $angles[$i];
-	}
-
-	// 
-	// Step 2. Find start index (first pie that starts in upper left quadrant)
-	//
-	$minval = $angles[0][0];
-	$min = 0;
-	for( $i=0; $i<$n; ++$i ) {
-	    if( $angles[$i][0] < $minval ) {
-		$minval = $angles[$i][0];
-		$min = $i;
-	    }
-	}
-	$j = $min;
-	$cnt = 0;
-	while( $angles[$j][1] <= 90 ) {
-	    $j++;
-	    if( $j>=$n) {
-		$j=0;
-	    }
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14005);
-//("Pie3D Internal error (#1). Trying to wrap twice when looking for start index");
-	    }
-	    ++$cnt;
-	}
-	$start = $j;
-
-	// 
-	// Step 3. Print slices in z-order
-	//
-	$cnt = 0;
-	
-	// First stroke all the slices between 90 and 270 (left half circle)
-	// counterclockwise
-	    
-	while( $angles[$j][0] < 270  && $aaoption !== 2 ) {
-
-	    list($x,$y) = $adjexplode[$j];
-
-	    $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1],
-			      $z,$adjcolors[$j],$shadow);
-	
-	    $last = array($x,$y,$j);
-
-	    $j++;
-	    if( $j >= $n ) $j=0;
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14006);
-//("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.");
-	    }
-	    ++$cnt;
-	}
-     
-	$slice_left = $n-$cnt;
-	$j=$start-1;
-	if($j<0) $j=$n-1;
-	$cnt = 0;
-	
-	// The stroke all slices from 90 to -90 (right half circle)
-	// clockwise
-	while( $cnt < $slice_left  && $aaoption !== 2 ) {
-
-	    list($x,$y) = $adjexplode[$j];
-
-	    $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1],
-			      $z,$adjcolors[$j],$shadow);
-	    $j--;
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14006);
-//("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.");
-	    }
-	    if($j<0) $j=$n-1;
-	    $cnt++;
-	}
-	
-	// Now do a special thing. Stroke the last slice on the left
-	// halfcircle one more time.  This is needed in the case where 
-	// the slice close to 270 have been exploded. In that case the
-	// part of the slice close to the center of the pie might be 
-	// slightly nagged.
-	if( $aaoption !== 2 )
-	    $this->Pie3DSlice($img,$last[0],$last[1],$d,$h,$angles[$last[2]][0],
-			      $angles[$last[2]][1],$z,$adjcolors[$last[2]],$shadow);
-
-
-	if( $aaoption !== 1 ) {
-	    // Now print possible labels and add csim
-	    $img->SetFont($this->value->ff,$this->value->fs);
-	    $margin = $img->GetFontHeight()/2 + $this->value->margin ;
-	    for($i=0; $i < count($data); ++$i ) {
-		$la = $labeldata[$i][0];
-		$x = $labeldata[$i][1] + cos($la*M_PI/180)*($d+$margin)*$this->ilabelposadj;
-		$y = $labeldata[$i][2] - sin($la*M_PI/180)*($h+$margin)*$this->ilabelposadj;
-		if( $this->ilabelposadj >= 1.0 ) {
-		    if( $la > 180 && $la < 360 ) $y += $z;
-		}
-		if( $this->labeltype == 0 ) {
-		    if( $sum > 0 )
-			$l = 100*$data[$i]/$sum;
-		    else
-			$l = 0;
-		}
-		elseif( $this->labeltype == 1 ) {
-		    $l = $data[$i];
-		}
-		else {
-		    $l = $this->adjusted_data[$i];
-		}
-		if( isset($this->labels[$i]) && is_string($this->labels[$i]) )
-		    $l=sprintf($this->labels[$i],$l);
-
-		$this->StrokeLabels($l,$img,$labeldata[$i][0]*M_PI/180,$x,$y,$z);
-	    
-		$this->AddSliceToCSIM($i,$labeldata[$i][1],$labeldata[$i][2],$h*2,$d*2,$z,
-				      $originalangles[$i][0],$originalangles[$i][1]);
-	    }	
-	}
-
-	// 
-	// Finally add potential lines in pie
-	//
-
-	if( $edgecolor=="" || $aaoption !== 0 ) return;
-
-	$accsum = 0;
-	$a = $startangle;
-	$a = $this->NormAngle($a);
-
-	$a *= M_PI/180.0;
-
-	$idx=0;
-	$img->PushColor($edgecolor);
-	$img->SetLineWeight($edgeweight);
-	
-	$fulledge = true;
-	for($i=0; $i < count($data) && $fulledge; ++$i ) {
-	    if( empty($this->explode_radius[$i]) )
-		$this->explode_radius[$i]=0;
-	    if( $this->explode_radius[$i] > 0 ) {
-		$fulledge = false;
-	    }
-	}
-	    
-
-	for($i=0; $i < count($data); ++$i, ++$idx ) {
-
-	    $da = $data[$i]/$sum * 2*M_PI;
-	    $this->StrokeFullSliceFrame($img,$xc,$yc,$a,$a+$da,$d,$h,$z,$edgecolor,
-					$this->explode_radius[$i],$fulledge);
-	    $a += $da;
-	}
-	$img->PopColor();
-    }
-
-    function StrokeFullSliceFrame(&$img,$xc,$yc,$sa,$ea,$w,$h,$z,$edgecolor,$exploderadius,$fulledge) {
-	$step = 0.02;
-
-	if( $exploderadius > 0 ) {
-	    $la = ($sa+$ea)/2;
-	    $xc += $exploderadius*cos($la);
-	    $yc -= $exploderadius*sin($la) * ($h/$w) ;
-	    
-	}
-
-	$p = array($xc,$yc,$xc+$w*cos($sa),$yc-$h*sin($sa));
-
-	for($a=$sa; $a < $ea; $a += $step ) {
-	    $p[] = $xc + $w*cos($a);
-	    $p[] = $yc - $h*sin($a);
-	}
-
-	$p[] = $xc+$w*cos($ea);
-	$p[] = $yc-$h*sin($ea);
-	$p[] = $xc;
-	$p[] = $yc;
-
-	$img->SetColor($edgecolor);
-	$img->Polygon($p);
-
-	// Unfortunately we can't really draw the full edge around the whole of
-	// of the slice if any of the slices are exploded. The reason is that
-	// this algorithm is to simply. There are cases where the edges will
-	// "overwrite" other slices when they have been exploded.
-	// Doing the full, proper 3D hidden lines stiff is actually quite
-	// tricky. So for exploded pies we only draw the top edge. Not perfect
-	// but the "real" solution is much more complicated.
-	if( $fulledge && !( $sa > 0 && $sa < M_PI && $ea < M_PI) ) { 
-
-	    if($sa < M_PI && $ea > M_PI) 
-		$sa = M_PI;
- 
-	    if($sa < 2*M_PI && (($ea >= 2*M_PI) || ($ea > 0 && $ea < $sa ) ) )
-		$ea = 2*M_PI;
-
-	    if( $sa >= M_PI && $ea <= 2*M_PI ) {
-		$p = array($xc + $w*cos($sa),$yc - $h*sin($sa),
-			   $xc + $w*cos($sa),$z + $yc - $h*sin($sa));
-		
-		for($a=$sa+$step; $a < $ea; $a += $step ) {
-		    $p[] = $xc + $w*cos($a);
-		    $p[] = $z + $yc - $h*sin($a);
-		}
-		$p[] = $xc + $w*cos($ea);
-		$p[] = $z + $yc - $h*sin($ea);
-		$p[] = $xc + $w*cos($ea);
-		$p[] = $yc - $h*sin($ea);
-		$img->SetColor($edgecolor);
-		$img->Polygon($p);	    
-	    }
-	}
-    }
-
-    function Stroke(&$img,$aaoption=0) {
-	$n = count($this->data);
-
-	// If user hasn't set the colors use the theme array
-   	if( $this->setslicecolors==null ) {
-	    $colors = array_keys($img->rgb->rgb_table);
-	    sort($colors);	
-	    $idx_a=$this->themearr[$this->theme];	
-	    $ca = array();
-	    $m = count($idx_a);
-	    for($i=0; $i < $m; ++$i)
-		$ca[$i] = $colors[$idx_a[$i]];
-	    $ca = array_reverse(array_slice($ca,0,$n));
-	}
-   	else {
-	    $ca = $this->setslicecolors;
-	}
-	
-
-	if( $this->posx <= 1 && $this->posx > 0 )
-	    $xc = round($this->posx*$img->width);
-	else
-	    $xc = $this->posx ;
-	
-	if( $this->posy <= 1 && $this->posy > 0 )
-	    $yc = round($this->posy*$img->height);
-	else
-	    $yc = $this->posy ;
-   			
-	if( $this->radius <= 1 ) {
-	    $width = floor($this->radius*min($img->width,$img->height));
-	    // Make sure that the pie doesn't overflow the image border
-	    // The 0.9 factor is simply an extra margin to leave some space
-	    // between the pie an the border of the image.
-	    $width = min($width,min($xc*0.9,($yc*90/$this->angle-$width/4)*0.9));
-	}
-	else {
-	    $width = $this->radius * ($aaoption === 1 ? 2 : 1 ) ;
-	}
-
-	// Add a sanity check for width
-	if( $width < 1 ) { 
-	    JpGraphError::RaiseL(14007);//("Width for 3D Pie is 0. Specify a size > 0");
-	}
-
-	// Establish a thickness. By default the thickness is a fifth of the
-	// pie slice width (=pie radius) but since the perspective depends
-	// on the inclination angle we use some heuristics to make the edge
-	// slightly thicker the less the angle.
-	
-	// Has user specified an absolute thickness? In that case use
-	// that instead
-
-	if( $this->iThickness ) {
-	  $thick = $this->iThickness;
-	  $thick *= ($aaoption === 1 ? 2 : 1 );
-	}
-	else
-	  $thick = $width/12;
-	$a = $this->angle;
-	if( $a <= 30 ) $thick *= 1.6;
-	elseif( $a <= 40 ) $thick *= 1.4;
-	elseif( $a <= 50 ) $thick *= 1.2;
-	elseif( $a <= 60 ) $thick *= 1.0;
-	elseif( $a <= 70 ) $thick *= 0.8;
-	elseif( $a <= 80 ) $thick *= 0.7;
-	else $thick *= 0.6;
-
-	$thick = floor($thick);
-
-	if( $this->explode_all )
-	    for($i=0; $i < $n; ++$i)
-		$this->explode_radius[$i]=$this->explode_r;
-
-	$this->Pie3D($aaoption,$img,$this->data, $ca, $xc, $yc, $width, $this->angle, 
-	             $thick, 0.65, $this->startangle, $this->edgecolor, $this->edgeweight);
-
-	// Adjust title position
-	if( $aaoption != 1 ) {
-	    $this->title->Pos($xc,$yc-$this->title->GetFontHeight($img)-$width/2-$this->title->margin,			      "center","bottom");
-	    $this->title->Stroke($img);
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    // Position the labels of each slice
-    function StrokeLabels($label,&$img,$a,$xp,$yp,$z) {
-	$this->value->halign="left";
-	$this->value->valign="top";
-
-	// Position the axis title. 
-	// dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	// that intersects with the extension of the corresponding axis. The code looks a little
-	// bit messy but this is really the only way of having a reasonable position of the
-	// axis titles.
-	$img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	$h=$img->GetTextHeight($label);
-	// For numeric values the format of the display value
-	// must be taken into account
-	if( is_numeric($label) ) {
-	    if( $label >= 0 )
-		$w=$img->GetTextWidth(sprintf($this->value->format,$label));
-	    else
-		$w=$img->GetTextWidth(sprintf($this->value->negformat,$label));
-	}
-	else
-	    $w=$img->GetTextWidth($label);
-	while( $a > 2*M_PI ) $a -= 2*M_PI;
-	if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0;
-	if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; 
-	if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1;
-	if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI);
-		
-	if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI;
-	if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI);
-	if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1;
-	if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI);
-	if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0;
-	
-	$x = round($xp-$dx*$w);
-	$y = round($yp-$dy*$h);
-
-	
-        // Mark anchor point for debugging 
-	/*
-	$img->SetColor('red');
-	$img->Line($xp-10,$yp,$xp+10,$yp);
-	$img->Line($xp,$yp-10,$xp,$yp+10);
-	*/
-	$oldmargin = $this->value->margin;
-	$this->value->margin=0;
-	$this->value->Stroke($img,$label,$x,$y);
-	$this->value->margin=$oldmargin;
-
-    }	
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_plotband.php b/nightly-test-server/jpgraph/jpgraph_plotband.php
deleted file mode 100644
index 5d636c0..0000000
--- a/nightly-test-server/jpgraph/jpgraph_plotband.php
+++ /dev/null
@@ -1,635 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_PLOTBAND.PHP
-// Description:	PHP4 Graph Plotting library. Extension module.
-// Created: 	2004-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-// Constants for types of static bands in plot area
-DEFINE("BAND_RDIAG",1);	// Right diagonal lines
-DEFINE("BAND_LDIAG",2); // Left diagonal lines
-DEFINE("BAND_SOLID",3); // Solid one color
-DEFINE("BAND_VLINE",4); // Vertical lines
-DEFINE("BAND_HLINE",5);  // Horizontal lines
-DEFINE("BAND_3DPLANE",6);  // "3D" Plane
-DEFINE("BAND_HVCROSS",7);  // Vertical/Hor crosses
-DEFINE("BAND_DIAGCROSS",8); // Diagonal crosses
-
-
-// Utility class to hold coordinates for a rectangle
-class Rectangle {
-    var $x,$y,$w,$h;
-    var $xe, $ye;
-    function Rectangle($aX,$aY,$aWidth,$aHeight) {
-	$this->x=$aX;
-	$this->y=$aY;
-	$this->w=$aWidth;
-	$this->h=$aHeight;
-	$this->xe=$aX+$aWidth-1;
-	$this->ye=$aY+$aHeight-1;
-    }
-}
-
-//=====================================================================
-// Class RectPattern
-// Base class for pattern hierarchi that is used to display patterned
-// bands on the graph. Any subclass that doesn't override Stroke()
-// must at least implement method DoPattern(&$aImg) which is responsible
-// for drawing the pattern onto the graph.
-//=====================================================================
-class RectPattern {
-    var $color;
-    var $weight;
-    var $rect=null;
-    var $doframe=true;
-    var $linespacing;	// Line spacing in pixels
-    var $iBackgroundColor=-1;  // Default is no background fill
-	
-    function RectPattern($aColor,$aWeight=1) {
-	$this->color = $aColor;
-	$this->weight = $aWeight;		
-    }
-
-    function SetBackground($aBackgroundColor) {
-	$this->iBackgroundColor=$aBackgroundColor;
-    }
-
-    function SetPos(&$aRect) {
-	$this->rect = $aRect;
-    }
-	
-    function ShowFrame($aShow=true) {
-	$this->doframe=$aShow;
-    }
-
-    function SetDensity($aDens) {
-	if( $aDens < 1 || $aDens > 100 )
-	    JpGraphError::RaiseL(16001,$aDens);
-//(" Desity for pattern must be between 1 and 100. (You tried $aDens)");
-	// 1% corresponds to linespacing=50
-	// 100 % corresponds to linespacing 1
-	$this->linespacing = floor(((100-$aDens)/100.0)*50)+1;
-
-    }
-
-    function Stroke(&$aImg) {
-	if( $this->rect == null )
-	    JpGraphError::RaiseL(16002);
-//(" No positions specified for pattern.");
-
-	if( !(is_numeric($this->iBackgroundColor) && $this->iBackgroundColor==-1) ) {
-	    $aImg->SetColor($this->iBackgroundColor);
-	    $aImg->FilledRectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye); 
-	}
-
-	$aImg->SetColor($this->color);
-	$aImg->SetLineWeight($this->weight);
-
-	// Virtual function implemented by subclass
-	$this->DoPattern($aImg);
-
-	// Frame around the pattern area
-	if( $this->doframe ) 
-	    $aImg->Rectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye);
-    }
-
-}
-
-
-//=====================================================================
-// Class RectPatternSolid
-// Implements a solid band
-//=====================================================================
-class RectPatternSolid extends RectPattern {
-
-    function RectPatternSolid($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-    }
-
-    function DoPattern(&$aImg) {
-	$aImg->SetColor($this->color);
-	$aImg->FilledRectangle($this->rect->x,$this->rect->y,
-			       $this->rect->xe,$this->rect->ye);
-    }
-}
-
-//=====================================================================
-// Class RectPatternHor
-// Implements horizontal line pattern
-//=====================================================================
-class RectPatternHor extends RectPattern {
-		
-    function RectPatternHor($aColor="black",$aWeight=1,$aLineSpacing=7) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-		
-    function DoPattern(&$aImg) {
-	$x0 = $this->rect->x;		
-	$x1 = $this->rect->xe;
-	$y = $this->rect->y;
-	while( $y < $this->rect->ye ) {
-	    $aImg->Line($x0,$y,$x1,$y);
-	    $y += $this->linespacing;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPatternVert
-// Implements vertical line pattern
-//=====================================================================
-class RectPatternVert extends RectPattern {
-    var $linespacing=10;	// Line spacing in pixels
-		
-    function RectPatternVert($aColor="black",$aWeight=1,$aLineSpacing=7) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-
-    //--------------------
-    // Private methods
-    //
-    function DoPattern(&$aImg) {
-	$x = $this->rect->x;		
-	$y0 = $this->rect->y;
-	$y1 = $this->rect->ye;
-	while( $x < $this->rect->xe ) {
-	    $aImg->Line($x,$y0,$x,$y1);
-	    $x += $this->linespacing;
-	}
-    }
-}
-
-
-//=====================================================================
-// Class RectPatternRDiag
-// Implements right diagonal pattern
-//=====================================================================
-class RectPatternRDiag extends RectPattern {
-    var $linespacing;	// Line spacing in pixels
-		
-    function RectPatternRDiag($aColor="black",$aWeight=1,$aLineSpacing=12) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-
-    function DoPattern(&$aImg) {
-	//  --------------------
-	//  | /   /   /   /   /|
-	//  |/   /   /   /   / |
-	//  |   /   /   /   /  |
-	//  --------------------
-	$xe = $this->rect->xe;
-	$ye = $this->rect->ye;
-	$x0 = $this->rect->x + round($this->linespacing/2); 
-	$y0 = $this->rect->y;
-	$x1 = $this->rect->x; 
-	$y1 = $this->rect->y + round($this->linespacing/2);
-
-	while($x0<=$xe && $y1<=$ye) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $x0 += $this->linespacing;
-	    $y1 += $this->linespacing;
-	}
-
-	if( $xe-$x1 > $ye-$y0 ) { 
-	    // Width larger than height
-	    $x1 = $this->rect->x + ($y1-$ye);
-	    $y1 = $ye; 
-	    $y0 = $this->rect->y; 
-	    while( $x0 <= $xe ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$x0 += $this->linespacing;
-		$x1 += $this->linespacing;
-	    }
-	    
-	    $y0=$this->rect->y + ($x0-$xe);
-	    $x0=$xe;
-	}
-	else {
-	    // Height larger than width
-	    $diff = $x0-$xe;
-	    $y0 = $diff+$this->rect->y;
-	    $x0 = $xe;
-	    $x1 = $this->rect->x;
-	    while( $y1 <= $ye ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$y1 += $this->linespacing;
-		$y0 += $this->linespacing;
-	    }
-	    
-	    $diff = $y1-$ye;
-	    $y1 = $ye;
-	    $x1 = $diff + $this->rect->x;
-	}
-
-	while( $y0 <= $ye ) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $y0 += $this->linespacing;		
-	    $x1 += $this->linespacing;
-	}
-    }
-}
- 
-//=====================================================================
-// Class RectPatternLDiag
-// Implements left diagonal pattern
-//=====================================================================
-class RectPatternLDiag extends RectPattern {
-    var $linespacing;	// Line spacing in pixels
-		
-    function RectPatternLDiag($aColor="black",$aWeight=1,$aLineSpacing=12) {
-	$this->linespacing = $aLineSpacing;
-	parent::RectPattern($aColor,$aWeight);
-    }
-
-    function DoPattern(&$aImg) {
-	//  --------------------
-	//  |\   \   \   \   \ |
-	//  | \   \   \   \   \|
-	//  |  \   \   \   \   |
-	//  |------------------|
-	$xe = $this->rect->xe;
-	$ye = $this->rect->ye;
-	$x0 = $this->rect->x + round($this->linespacing/2); 
-	$y0 = $this->rect->ye;
-	$x1 = $this->rect->x; 
-	$y1 = $this->rect->ye - round($this->linespacing/2);
-
-	while($x0<=$xe && $y1>=$this->rect->y) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $x0 += $this->linespacing;
-	    $y1 -= $this->linespacing;
-	}
-	if( $xe-$x1 > $ye-$this->rect->y ) { 
-	    // Width larger than height
-	    $x1 = $this->rect->x + ($this->rect->y-$y1);
-	    $y0=$ye; $y1=$this->rect->y; 
-	    while( $x0 <= $xe ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$x0 += $this->linespacing;
-		$x1 += $this->linespacing;
-	    }
-	    
-	    $y0=$this->rect->ye - ($x0-$xe);
-	    $x0=$xe;
-	}
-	else {
-	    // Height larger than width
-	    $diff = $x0-$xe;
-	    $y0 = $ye-$diff;
-	    $x0 = $xe;
-	    while( $y1 >= $this->rect->y ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$y0 -= $this->linespacing;
-		$y1 -= $this->linespacing;
-	    }	    
-	    $diff = $this->rect->y - $y1;
-	    $x1 = $this->rect->x + $diff;
-	    $y1 = $this->rect->y;
-	}
-	while( $y0 >= $this->rect->y ) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $y0 -= $this->linespacing;
-	    $x1 += $this->linespacing;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPattern3DPlane
-// Implements "3D" plane pattern
-//=====================================================================
-class RectPattern3DPlane extends RectPattern {
-    var $alpha=50;  // Parameter that specifies the distance
-    // to "simulated" horizon in pixel from the
-    // top of the band. Specifies how fast the lines
-    // converge.
-
-    function RectPattern3DPlane($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->SetDensity(10);  // Slightly larger default
-    }
-
-    function SetHorizon($aHorizon) {
-	$this->alpha=$aHorizon;
-    }
-	
-    function DoPattern(&$aImg) {
-	// "Fake" a nice 3D grid-effect. 
-	$x0 = $this->rect->x + $this->rect->w/2;
-	$y0 = $this->rect->y;
-	$x1 = $x0;
-	$y1 = $this->rect->ye;
-	$x0_right = $x0;
-	$x1_right = $x1;
-
-	// BTW "apa" means monkey in Swedish but is really a shortform for
-	// "alpha+a" which was the labels I used on paper when I derived the
-	// geometric to get the 3D perspective right. 
-	// $apa is the height of the bounding rectangle plus the distance to the
-	// artifical horizon (alpha)
-	$apa = $this->rect->h + $this->alpha;
-
-	// Three cases and three loops
-	// 1) The endpoint of the line ends on the bottom line
-	// 2) The endpoint ends on the side
-	// 3) Horizontal lines
-
-	// Endpoint falls on bottom line
-	$middle=$this->rect->x + $this->rect->w/2;
-	$dist=$this->linespacing;
-	$factor=$this->alpha /($apa);
-	while($x1>$this->rect->x) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $aImg->Line($x0_right,$y0,$x1_right,$y1);
-	    $x1 = $middle - $dist;
-	    $x0 = $middle - $dist * $factor;
-	    $x1_right = $middle + $dist;
-	    $x0_right =  $middle + $dist * $factor;
-	    $dist += $this->linespacing;
-	}
-
-	// Endpoint falls on sides
-	$dist -= $this->linespacing;
-	$d=$this->rect->w/2;
-	$c = $apa - $d*$apa/$dist;
-	while( $x0>$this->rect->x ) {
-	    $aImg->Line($x0,$y0,$this->rect->x,$this->rect->ye-$c);
-	    $aImg->Line($x0_right,$y0,$this->rect->xe,$this->rect->ye-$c);
-	    $dist += $this->linespacing;			
-	    $x0 = $middle - $dist * $factor;
-	    $x1 = $middle - $dist;
-	    $x0_right =  $middle + $dist * $factor;			
-	    $c = $apa - $d*$apa/$dist;
-	}		
-		
-	// Horizontal lines
-	// They need some serious consideration since they are a function
-	// of perspective depth (alpha) and density (linespacing)
-	$x0=$this->rect->x;
-	$x1=$this->rect->xe;
-	$y=$this->rect->ye;
-		
-	// The first line is drawn directly. Makes the loop below slightly
-	// more readable.
-	$aImg->Line($x0,$y,$x1,$y);
-	$hls = $this->linespacing;
-		
-	// A correction factor for vertical "brick" line spacing to account for
-	// a) the difference in number of pixels hor vs vert
-	// b) visual apperance to make the first layer of "bricks" look more
-	// square.
-	$vls = $this->linespacing*0.6;
-		
-	$ds = $hls*($apa-$vls)/$apa;
-	// Get the slope for the "perspective line" going from bottom right
-	// corner to top left corner of the "first" brick.
-		
-	// Uncomment the following lines if you want to get a visual understanding
-	// of what this helpline does. BTW this mimics the way you would get the
-	// perspective right when drawing on paper.
-	/*
-	  $x0 = $middle;
-	  $y0 = $this->rect->ye;
-	  $len=floor(($this->rect->ye-$this->rect->y)/$vls);
-	  $x1 = $middle+round($len*$ds);
-	  $y1 = $this->rect->ye-$len*$vls;
-	  $aImg->PushColor("red");
-	  $aImg->Line($x0,$y0,$x1,$y1);
-	  $aImg->PopColor();
-	*/
-		
-	$y -= $vls;		
-	$k=($this->rect->ye-($this->rect->ye-$vls))/($middle-($middle-$ds));
-	$dist = $hls;
-	while( $y>$this->rect->y ) {
-	    $aImg->Line($this->rect->x,$y,$this->rect->xe,$y);
-	    $adj = $k*$dist/(1+$dist*$k/$apa);
-	    if( $adj < 2 ) $adj=1;
-	    $y = $this->rect->ye - round($adj);
-	    $dist += $hls;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPatternCross
-// Vert/Hor crosses
-//=====================================================================
-class RectPatternCross extends RectPattern {
-    var $vert=null;
-    var $hor=null;
-    function RectPatternCross($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->vert = new RectPatternVert($aColor,$aWeight);
-	$this->hor  = new RectPatternHor($aColor,$aWeight);
-    }
-
-    function SetOrder($aDepth) {
-	$this->vert->SetOrder($aDepth);
-	$this->hor->SetOrder($aDepth);
-    }
-
-    function SetPos(&$aRect) {
-	parent::SetPos($aRect);
-	$this->vert->SetPos($aRect);
-	$this->hor->SetPos($aRect);
-    }
-
-    function SetDensity($aDens) {
-	$this->vert->SetDensity($aDens);
-	$this->hor->SetDensity($aDens);
-    }
-
-    function DoPattern(&$aImg) {
-	$this->vert->DoPattern($aImg);
-	$this->hor->DoPattern($aImg);
-    }
-}
-
-//=====================================================================
-// Class RectPatternDiagCross
-// Vert/Hor crosses
-//=====================================================================
-
-class RectPatternDiagCross extends RectPattern {
-    var $left=null;
-    var $right=null;
-    function RectPatternDiagCross($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->right = new RectPatternRDiag($aColor,$aWeight);
-	$this->left  = new RectPatternLDiag($aColor,$aWeight);
-    }
-
-    function SetOrder($aDepth) {
-	$this->left->SetOrder($aDepth);
-	$this->right->SetOrder($aDepth);
-    }
-
-    function SetPos(&$aRect) {
-	parent::SetPos($aRect);
-	$this->left->SetPos($aRect);
-	$this->right->SetPos($aRect);
-    }
-
-    function SetDensity($aDens) {
-	$this->left->SetDensity($aDens);
-	$this->right->SetDensity($aDens);
-    }
-
-    function DoPattern(&$aImg) {
-	$this->left->DoPattern($aImg);
-	$this->right->DoPattern($aImg);
-    }
-
-}
-
-//=====================================================================
-// Class RectPatternFactory
-// Factory class for rectangular pattern 
-//=====================================================================
-class RectPatternFactory {
-    function RectPatternFactory() {
-	// Empty
-    }
-    function Create($aPattern,$aColor,$aWeight=1) {
-	switch($aPattern) {
-	    case BAND_RDIAG:
-		$obj =  new RectPatternRDiag($aColor,$aWeight);
-		break;
-	    case BAND_LDIAG:
-		$obj =  new RectPatternLDiag($aColor,$aWeight);
-		break;
-	    case BAND_SOLID:
-		$obj =  new RectPatternSolid($aColor,$aWeight);
-		break;
-	    case BAND_VLINE:
-		$obj =  new RectPatternVert($aColor,$aWeight);
-		break;
-	    case BAND_HLINE:
-		$obj =  new RectPatternHor($aColor,$aWeight);
-		break;
-	    case BAND_3DPLANE:
-		$obj =  new RectPattern3DPlane($aColor,$aWeight);
-		break;
-	    case BAND_HVCROSS:
-		$obj =  new RectPatternCross($aColor,$aWeight);
-		break;
-	    case BAND_DIAGCROSS:
-		$obj =  new RectPatternDiagCross($aColor,$aWeight);
-		break;
-	    default:
-		JpGraphError::RaiseL(16003,$aPattern);
-//(" Unknown pattern specification ($aPattern)");
-	}
-	return $obj;
-    }
-}
-
-
-//=====================================================================
-// Class PlotBand
-// Factory class which is used by the client.
-// It is responsible for factoring the corresponding pattern
-// concrete class.
-//=====================================================================
-class PlotBand {
-    var $prect=null;
-    var $depth;
-    var $dir, $min, $max;
-
-    function PlotBand($aDir,$aPattern,$aMin,$aMax,$aColor="black",$aWeight=1,$aDepth=DEPTH_BACK) {
-	$f =  new RectPatternFactory();
-	$this->prect = $f->Create($aPattern,$aColor,$aWeight);
-	if( is_numeric($aMin) && is_numeric($aMax) && ($aMin > $aMax) ) 
-	    JpGraphError::RaiseL(16004);
-//('Min value for plotband is larger than specified max value. Please correct.');
-	$this->dir = $aDir;
-	$this->min = $aMin;
-	$this->max = $aMax;
-	$this->depth=$aDepth;
-    }
-	
-    // Set position. aRect contains absolute image coordinates
-    function SetPos(&$aRect) {
-	assert( $this->prect != null ) ;
-	$this->prect->SetPos($aRect);
-    }
-	
-    function ShowFrame($aFlag=true) {
-	$this->prect->ShowFrame($aFlag);
-    }
-
-    // Set z-order. In front of pplot or in the back
-    function SetOrder($aDepth) {
-	$this->depth=$aDepth;
-    }
-	
-    function SetDensity($aDens) {
-	$this->prect->SetDensity($aDens);
-    }
-	
-    function GetDir() {
-	return $this->dir;
-    }
-	
-    function GetMin() {
-	return $this->min;
-    }
-	
-    function GetMax() {
-	return $this->max;
-    }
-	
-    // Display band
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	assert( $this->prect != null ) ;
-	if( $this->dir == HORIZONTAL ) {
-	    if( $this->min === 'min' ) $this->min = $aYScale->GetMinVal();
-	    if( $this->max === 'max' ) $this->max = $aYScale->GetMaxVal();
-
-            // Only draw the bar if it actually appears in the range
-            if ($this->min < $aYScale->GetMaxVal() && $this->max > $aYScale->GetMinVal()) {
-	    
-	    // Trucate to limit of axis
-	    $this->min = max($this->min, $aYScale->GetMinVal());
-	    $this->max = min($this->max, $aYScale->GetMaxVal());
-
-	    $x=$aXScale->scale_abs[0];
-	    $y=$aYScale->Translate($this->max);
-	    $width=$aXScale->scale_abs[1]-$aXScale->scale_abs[0]+1;
-	    $height=abs($y-$aYScale->Translate($this->min))+1;
-	    $this->prect->SetPos(new Rectangle($x,$y,$width,$height));
-	    $this->prect->Stroke($aImg);
-            }
-	}
-	else {	// VERTICAL
-	    if( $this->min === 'min' ) $this->min = $aXScale->GetMinVal();
-	    if( $this->max === 'max' ) $this->max = $aXScale->GetMaxVal();
-            
-            // Only draw the bar if it actually appears in the range
-	    if ($this->min < $aXScale->GetMaxVal() && $this->max > $aXScale->GetMinVal()) {
-	    
-	    // Trucate to limit of axis
-	    $this->min = max($this->min, $aXScale->GetMinVal());
-	    $this->max = min($this->max, $aXScale->GetMaxVal());
-
-	    $y=$aYScale->scale_abs[1];
-	    $x=$aXScale->Translate($this->min);
-	    $height=abs($aYScale->scale_abs[1]-$aYScale->scale_abs[0]);
-	    $width=abs($x-$aXScale->Translate($this->max));
-	    $this->prect->SetPos(new Rectangle($x,$y,$width,$height));
-	    $this->prect->Stroke($aImg);
-            }
-	}
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_plotmark.inc b/nightly-test-server/jpgraph/jpgraph_plotmark.inc
deleted file mode 100644
index 05ef35f..0000000
--- a/nightly-test-server/jpgraph/jpgraph_plotmark.inc
+++ /dev/null
@@ -1,482 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_PLOTMARK.PHP
-// Description:	Class file. Handles plotmarks
-// Created: 	2003-03-21
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-//========================================================================
-// CLASS ImgData
-// Description: Base class for all image data classes that contains the 
-// real image data.
-//========================================================================
-class ImgData {
-    var $name = '';		// Each subclass gives a name
-    var $an = array();		// Data array names
-    var $colors = array();	// Available colors
-    var $index  = array();	// Index for colors
-    var $maxidx = 0 ;		// Max color index
-    var $anchor_x=0.5, $anchor_y=0.5 ;    // Where is the center of the image
-    // Create a GD image from the data and return a GD handle
-    function GetImg($aMark,$aIdx) {
-	$n = $this->an[$aMark];
-	if( is_string($aIdx) ) {
-	    if( !in_array($aIdx,$this->colors) ) {
-		JpGraphError::RaiseL(23001,$this->name,$aIdx); //('This marker "'.($this->name).'" does not exist in color: '.$aIdx);
-	    }
-	    $idx = $this->index[$aIdx];
-	}
-	elseif( !is_integer($aIdx) || 
-		(is_integer($aIdx) && $aIdx > $this->maxidx ) ) {
-	    JpGraphError::RaiseL(23002,$this->name);
-//('Mark color index too large for marker "'.($this->name).'"');
-	}
-	else
-	    $idx = $aIdx ;
-	return Image::CreateFromString(base64_decode($this->{$n}[$idx][1]));   
-    }
-    function GetAnchor() {
-	return array($this->anchor_x,$this->anchor_y);
-    }
-}
-
-
-// Keep a global flag cache to reduce memory usage
-$_gFlagCache=array(
-    1 => null,
-    2 => null,
-    3 => null,
-    4 => null,
-);
-// Only supposed to b called as statics
-class FlagCache {
-    function GetFlagImgByName($aSize,$aName) {
-	global $_gFlagCache;
-	require_once('jpgraph_flags.php');
-	if( $_gFlagCache[$aSize] === null ) {
-	    $_gFlagCache[$aSize] =& new FlagImages($aSize);
-	}
-	$f =& $_gFlagCache[$aSize];
-	$idx = $f->GetIdxByName($aName,$aFullName);
-	return $f->GetImgByIdx($idx);
-    }
-}
-
-//===================================================
-// CLASS PlotMark
-// Description: Handles the plot marks in graphs
-//===================================================
-class PlotMark {
-    var $title, $show=true;
-    var $type,$weight=1;
-    var $color="black", $width=4, $fill_color="blue";
-    var $yvalue,$xvalue='',$csimtarget,$csimalt,$csimareas;
-    var $iFormatCallback="";
-    var $iFormatCallback2="";
-    var $markimg='',$iScale=1.0;
-    var $oldfilename='',$iFileName='';
-    var $imgdata_balls = null;
-    var $imgdata_diamonds = null;
-    var $imgdata_squares = null;
-    var $imgdata_bevels = null;
-    var $imgdata_stars = null;
-    var $imgdata_pushpins = null;
-
-//--------------
-// CONSTRUCTOR
-    function PlotMark() {
-	$this->title = new Text();
-	$this->title->Hide();
-	$this->csimareas = '';
-	$this->csimalt = '';
-	$this->type=-1;
-    }
-//---------------
-// PUBLIC METHODS	
-    function SetType($aType,$aFileName='',$aScale=1.0) {
-	$this->type = $aType;
-	if( $aType == MARK_IMG && $aFileName=='' ) {
-	    JpGraphError::RaiseL(23003);//('A filename must be specified if you set the mark type to MARK_IMG.');
-	}
-	$this->iFileName = $aFileName;
-	$this->iScale = $aScale;
-    }
-	
-    function SetCallback($aFunc) {
-	$this->iFormatCallback = $aFunc;
-    }
-
-    function SetCallbackYX($aFunc) {
-	$this->iFormatCallback2 = $aFunc;
-    }
-    
-    function GetType() {
-	return $this->type;
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetFillColor($aFillColor) {
-	$this->fill_color = $aFillColor;
-    }
-
-    function SetWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    // Synonym for SetWidth()
-    function SetSize($aWidth) {
-	$this->width=$aWidth;
-    }
-	
-    function SetWidth($aWidth) {
-	$this->width=$aWidth;
-    }
-
-    function SetDefaultWidth() {
-	switch( $this->type ) {
-	    case MARK_CIRCLE: 
-	    case MARK_FILLEDCIRCLE: 
-		$this->width=4;
-		break;
-	    default:
-		$this->width=7;
-	}
-    }
-	
-    function GetWidth() {
-	return $this->width;
-    }
-	
-    function Hide($aHide=true) {
-	$this->show = !$aHide;
-    }
-	
-    function Show($aShow=true) {
-	$this->show = $aShow;
-    }
-
-    function SetCSIMAltVal($aY,$aX='') {
-        $this->yvalue=$aY; 
-        $this->xvalue=$aX; 
-    }
-    
-    function SetCSIMTarget($aTarget) {
-        $this->csimtarget=$aTarget;
-    }
-    
-    function SetCSIMAlt($aAlt) {
-        $this->csimalt=$aAlt;
-    }
-    
-    function GetCSIMAreas(){
-        return $this->csimareas;
-    }
-        
-    function AddCSIMPoly($aPts) {
-        $coords = round($aPts[0]).", ".round($aPts[1]);
-        $n = count($aPts)/2;
-        for( $i=1; $i < $n; ++$i){
-            $coords .= ", ".round($aPts[2*$i]).", ".round($aPts[2*$i+1]);
-        }
-        $this->csimareas="";    
-        if( !empty($this->csimtarget) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($this->csimtarget)."\"";
-	    if( !empty($this->csimalt) ) {										
-		$tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-    
-    function AddCSIMCircle($x,$y,$r) {
-    	$x = round($x); $y=round($y); $r=round($r);
-        $this->csimareas="";    
-        if( !empty($this->csimtarget) ) {
-	    $this->csimareas .= "<area shape=\"circle\" coords=\"$x,$y,$r\" href=\"".htmlentities($this->csimtarget)."\"";
-    	    if( !empty($this->csimalt) ) {										
-		$tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-            $this->csimareas .= " alt=\"$tmp\" />\n";        
-        }
-    }
-    	
-    function Stroke(&$img,$x,$y) {
-	if( !$this->show ) return;
-
-	if( $this->iFormatCallback != '' || $this->iFormatCallback2 != '' ) {
-
-	    if( $this->iFormatCallback != '' ) {
-		$f = $this->iFormatCallback;
-		list($width,$color,$fcolor) = call_user_func($f,$this->yvalue);
-		$filename = $this->iFileName;
-		$imgscale = $this->iScale;
-	    }
-	    else {
-		$f = $this->iFormatCallback2;
-		list($width,$color,$fcolor,$filename,$imgscale) = call_user_func($f,$this->yvalue,$this->xvalue);
-		if( $filename=="" ) $filename = $this->iFileName;
-		if( $imgscale=="" ) $imgscale = $this->iScale;
-	    }
-
-	    if( $width=="" ) $width = $this->width;
-	    if( $color=="" ) $color = $this->color;
-	    if( $fcolor=="" ) $fcolor = $this->fill_color;
-
-	}
-	else {
-	    $fcolor = $this->fill_color;
-	    $color = $this->color;
-	    $width = $this->width;
-	    $filename = $this->iFileName;
-	    $imgscale = $this->iScale;
-	}
-
-	if( $this->type == MARK_IMG ||
-	    ($this->type >= MARK_FLAG1 && $this->type <= MARK_FLAG4 ) ||
-	    $this->type >= MARK_IMG_PUSHPIN ) {
-
-	    // Note: For the builtin images we use the "filename" parameter
-	    // to denote the color
-	    $anchor_x = 0.5;
-	    $anchor_y = 0.5; 
-	    switch( $this->type ) {
-		case MARK_FLAG1:
-		case MARK_FLAG2:
-		case MARK_FLAG3:
-		case MARK_FLAG4:
-		    $this->markimg = FlagCache::GetFlagImgByName($this->type-MARK_FLAG1+1,$filename);
-		    break;
-
-		case MARK_IMG :
-		    // Load an image and use that as a marker
-		    // Small optimization, if we have already read an image don't
-		    // waste time reading it again.
-		    if( $this->markimg == '' || !($this->oldfilename === $filename) ) {
-			$this->markimg = Graph::LoadBkgImage('',$filename);
-			$this->oldfilename = $filename ;
-		    }
-		    break;
-
-		case MARK_IMG_PUSHPIN:
-		case MARK_IMG_SPUSHPIN:
-		case MARK_IMG_LPUSHPIN:
-		    if( $this->imgdata_pushpins == null ) {
-			require_once 'imgdata_pushpins.inc';
-			$this->imgdata_pushpins = new ImgData_PushPins();
-		    }
-		    $this->markimg = $this->imgdata_pushpins->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_pushpins->GetAnchor();
-		    break;
-
-		case MARK_IMG_SQUARE:
-		    if( $this->imgdata_squares == null ) {
-			require_once 'imgdata_squares.inc';
-			$this->imgdata_squares = new ImgData_Squares();
-		    }
-		    $this->markimg = $this->imgdata_squares->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_squares->GetAnchor();
-		    break;
-
-		case MARK_IMG_STAR:
-		    if( $this->imgdata_stars == null ) {
-			require_once 'imgdata_stars.inc';
-			$this->imgdata_stars = new ImgData_Stars();
-		    }
-		    $this->markimg = $this->imgdata_stars->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_stars->GetAnchor();
-		    break;
-
-		case MARK_IMG_BEVEL:
-		    if( $this->imgdata_bevels == null ) {
-			require_once 'imgdata_bevels.inc';
-			$this->imgdata_bevels = new ImgData_Bevels();
-		    }
-		    $this->markimg = $this->imgdata_bevels->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_bevels->GetAnchor();
-		    break;
-
-		case MARK_IMG_DIAMOND:
-		    if( $this->imgdata_diamonds == null ) {
-			require_once 'imgdata_diamonds.inc';
-			$this->imgdata_diamonds = new ImgData_Diamonds();
-		    }
-		    $this->markimg = $this->imgdata_diamonds->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_diamonds->GetAnchor();
-		    break;
-
-		case MARK_IMG_BALL:		    
-		case MARK_IMG_SBALL:		    
-		case MARK_IMG_MBALL:		    
-		case MARK_IMG_LBALL:		    
-		    if( $this->imgdata_balls == null ) {
-			require_once 'imgdata_balls.inc';
-			$this->imgdata_balls = new ImgData_Balls();
-		    }
-		    $this->markimg = $this->imgdata_balls->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_balls->GetAnchor();
-		    break;
-	    }
-
-	    $w = $img->GetWidth($this->markimg);
-	    $h = $img->GetHeight($this->markimg);
-	    
-	    $dw = round($imgscale * $w );
-	    $dh = round($imgscale * $h );
-
-	    // Do potential rotation
-	    list($x,$y) = $img->Rotate($x,$y);
-
-	    $dx = round($x-$dw*$anchor_x);
-	    $dy = round($y-$dh*$anchor_y);
-	    
-	    $this->width = max($dx,$dy);
-	    
-	    $img->Copy($this->markimg,$dx,$dy,0,0,$dw,$dh,$w,$h);
-	    if( !empty($this->csimtarget) ) {
-		$this->csimareas = "<area shape=\"rect\" coords=\"".
-		    $dx.','.$dy.','.round($dx+$dw).','.round($dy+$dh).'" '.
-		    "href=\"".htmlentities($this->csimtarget)."\"";
-		if( !empty($this->csimalt) ) {
-		    $tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		    $this->csimareas .= " title=\"$tmp\"";
-		}
-		$this->csimareas .= " alt=\"$tmp\" />\n";
-	    }
-	    
-	    // Stroke title
-	    $this->title->Align("center","top");
-	    $this->title->Stroke($img,$x,$y+round($dh/2));			
-	    return;
-	}
-
-	$weight = $this->weight;
-	$dx=round($width/2,0);
-	$dy=round($width/2,0);
-	$pts=0;		
-
-	switch( $this->type ) {
-	    case MARK_SQUARE:
-		$c[]=$x-$dx;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y-$dy;
-		$pts=5;
-		break;
-	    case MARK_UTRIANGLE:
-		++$dx;++$dy;
-		$c[]=$x-$dx;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$c[]=$x;$c[]=$y-0.87*$dy;
-		$c[]=$x+$dx;$c[]=$y+0.87*$dy;
-		$c[]=$x-$dx;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$pts=4;
-		break;
-	    case MARK_DTRIANGLE:
-		++$dx;++$dy;			
-		$c[]=$x;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$c[]=$x-$dx;$c[]=$y-0.87*$dy;
-		$c[]=$x+$dx;$c[]=$y-0.87*$dy;
-		$c[]=$x;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$pts=4;
-		break;				
-	    case MARK_DIAMOND:
-		$c[]=$x;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y;
-		$c[]=$x;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y;
-		$c[]=$x;$c[]=$y+$dy;
-		$pts=5;
-		break;	
-	    case MARK_LEFTTRIANGLE:
-		$c[]=$x;$c[]=$y;
-		$c[]=$x;$c[]=$y+2*$dy;
-		$c[]=$x+$dx*2;$c[]=$y;
-		$c[]=$x;$c[]=$y;
-		$pts=4;
-		break;
-	    case MARK_RIGHTTRIANGLE:
-		$c[]=$x-$dx*2;$c[]=$y;
-		$c[]=$x;$c[]=$y+2*$dy;
-		$c[]=$x;$c[]=$y;
-		$c[]=$x-$dx*2;$c[]=$y;
-		$pts=4;
-		break;
-	    case MARK_FLASH:
-		$dy *= 2;
-		$c[]=$x+$dx/2; $c[]=$y-$dy;
-		$c[]=$x-$dx+$dx/2; $c[]=$y+$dy*0.7-$dy;
-		$c[]=$x+$dx/2; $c[]=$y+$dy*1.3-$dy;
-		$c[]=$x-$dx+$dx/2; $c[]=$y+2*$dy-$dy;
-		$img->SetLineWeight($weight);
-		$img->SetColor($color);					
-		$img->Polygon($c);
-		$img->SetLineWeight(1);
-		$this->AddCSIMPoly($c);
-		break;
-	}
-
-	if( $pts>0 ) {
-	    $this->AddCSIMPoly($c);
-	    $img->SetLineWeight($weight);
-	    $img->SetColor($fcolor);								
-	    $img->FilledPolygon($c);
-	    $img->SetColor($color);					
-	    $img->Polygon($c);
-	    $img->SetLineWeight(1);
-	}
-	elseif( $this->type==MARK_CIRCLE ) {
-	    $img->SetColor($color);					
-	    $img->Circle($x,$y,$width);
-	    $this->AddCSIMCircle($x,$y,$width);
-	}
-	elseif( $this->type==MARK_FILLEDCIRCLE ) {
-	    $img->SetColor($fcolor);		
-	    $img->FilledCircle($x,$y,$width);
-	    $img->SetColor($color);	
-	    $img->Circle($x,$y,$width);
-	    $this->AddCSIMCircle($x,$y,$width);
-	}
-	elseif( $this->type==MARK_CROSS ) {
-	    // Oversize by a pixel to match the X
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x,$y+$dy+1,$x,$y-$dy-1);
-	    $img->Line($x-$dx-1,$y,$x+$dx+1,$y);
-	    $this->AddCSIMCircle($x,$y,$dx);	    
-	}
-	elseif( $this->type==MARK_X ) {
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy);
-	    $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy);		
-	    $this->AddCSIMCircle($x,$y,$dx+$dy);	    	    
-	}			
-	elseif( $this->type==MARK_STAR ) {
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy);
-	    $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy);
-	    // Oversize by a pixel to match the X				
-	    $img->Line($x,$y+$dy+1,$x,$y-$dy-1);
-	    $img->Line($x-$dx-1,$y,$x+$dx+1,$y);
-	    $this->AddCSIMCircle($x,$y,$dx+$dy);	    
-	}
-		
-	// Stroke title
-	$this->title->Align("center","center");
-	$this->title->Stroke($img,$x,$y);			
-    }
-} // Class
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_polar.php b/nightly-test-server/jpgraph/jpgraph_polar.php
deleted file mode 100644
index 95a2dcc..0000000
--- a/nightly-test-server/jpgraph/jpgraph_polar.php
+++ /dev/null
@@ -1,845 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_POLAR.PHP
-// Description:	Polar plot extension for JpGraph
-// Created: 	2003-02-02
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once ('jpgraph_plotmark.inc');
-
-
-require_once "jpgraph_log.php";
-
-
-DEFINE('POLAR_360',1);
-DEFINE('POLAR_180',2);
-
-//
-// Note. Don't attempt to make sense of this code.
-// In order not to have to be able to inherit the scaling code
-// from the main graph package we have had to make some "tricks" since
-// the original scaling and axis was not designed to do what is
-// required here.
-// There were two option. 1: Re-implement everything and get a clean design
-// and 2: do some "small" trickery and be able to inherit most of
-// the functionlity from the main graph package. 
-// We choose 2: here in order to save some time.
-// 
-
-//--------------------------------------------------------------------------
-// class PolarPlot
-//--------------------------------------------------------------------------
-class PolarPlot {
-    var $numpoints=0;
-    var $iColor='navy',$iFillColor='';
-    var $iLineWeight=1;
-    var $coord=null;
-    var $legendcsimtarget='';
-    var $legendcsimalt='';
-    var $legend="";
-    var $csimtargets=array();	// Array of targets for CSIM
-    var $csimareas="";			// Resultant CSIM area tags	
-    var $csimalts=null;			// ALT:s for corresponding target
-    var $line_style='solid',$mark;
-
-    function PolarPlot($aData) {
-	$n = count($aData);
-	if( $n & 1 ) {
-	    JpGraphError::RaiseL(17001);
-//('Polar plots must have an even number of data point. Each data point is a tuple (angle,radius).');
-	}
-	$this->numpoints = $n/2;
-	$this->coord = $aData;
-	$this->mark = new PlotMark();
-    }
-
-    function SetWeight($aWeight) {
-	$this->iLineWeight = $aWeight;
-    }
-
-    function SetColor($aColor){
-	$this->iColor = $aColor;
-    }
-
-    function SetFillColor($aColor){
-	$this->iFillColor = $aColor;
-    }
-
-    function Max() {
-	$m = $this->coord[1];
-	$i=1;
-	while( $i < $this->numpoints ) {
-	    $m = max($m,$this->coord[2*$i+1]);  
-	    ++$i;
-	} 
-	return $m;
-    }
-    // Set href targets for CSIM	
-    function SetCSIMTargets($aTargets,$aAlts=null) {
-	$this->csimtargets=$aTargets;
-	$this->csimalts=$aAlts;		
-    }
- 	
-    // Get all created areas
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }	
-	
-    function SetLegend($aLegend,$aCSIM="",$aCSIMAlt="") {
-	$this->legend = $aLegend;
-	$this->legendcsimtarget = $aCSIM;
-	$this->legendcsimalt = $aCSIMAlt;
-    }
-
-    // Private methods
-
-    function Legend(&$aGraph) {
-	$color = $this->iColor ;
-	if( $this->legend != "" ) {
-	    if( $this->iFillColor!='' ) {
-		$color = $this->iFillColor;
-		$aGraph->legend->Add($this->legend,$color,$this->mark,0,
-				     $this->legendcsimtarget,$this->legendcsimalt);    
-	    }
-	    else {
-		$aGraph->legend->Add($this->legend,$color,$this->mark,$this->line_style,
-				     $this->legendcsimtarget,$this->legendcsimalt);    
-	    }
-	}
-    }
-
-    function Stroke(&$img,$scale) {
-
-	$i=0;
-	$p=array();
-	$this->csimareas='';
-	while($i < $this->numpoints) {
-	    list($x1,$y1) = $scale->PTranslate($this->coord[2*$i],$this->coord[2*$i+1]);
-	    $p[2*$i] = $x1;
-	    $p[2*$i+1] = $y1;
-	
-	    if( isset($this->csimtargets[$i]) ) {
-	        $this->mark->SetCSIMTarget($this->csimtargets[$i]);
-	        $this->mark->SetCSIMAlt($this->csimalts[$i]);
-		$this->mark->SetCSIMAltVal($this->coord[2*$i], $this->coord[2*$i+1]);
-		$this->mark->Stroke($img,$x1,$y1);
-		$this->csimareas .= $this->mark->GetCSIMAreas();
-	    }
-	    else
-		$this->mark->Stroke($img,$x1,$y1);
-
-	    ++$i;
-	}
-
-	if( $this->iFillColor != '' ) {
-	    $img->SetColor($this->iFillColor);
-	    $img->FilledPolygon($p);
-	}
-	$img->SetLineWeight($this->iLineWeight);
-	$img->SetColor($this->iColor);
-	$img->Polygon($p,$this->iFillColor!='');
-    }
-}
-
-//--------------------------------------------------------------------------
-// class PolarAxis
-//--------------------------------------------------------------------------
-class PolarAxis extends Axis {
-    var $angle_step=15,$angle_color='lightgray',$angle_label_color='black';
-    var $angle_fontfam=FF_FONT1,$angle_fontstyle=FS_NORMAL,$angle_fontsize=10;
-    var $angle_fontcolor = 'navy';
-    var $gridminor_color='lightgray',$gridmajor_color='lightgray';
-    var $show_minor_grid = false, $show_major_grid = true ;
-    var $show_angle_mark=true, $show_angle_grid=true, $show_angle_label=true;
-    var $angle_tick_len=3, $angle_tick_len2=3, $angle_tick_color='black';
-    var $show_angle_tick=true;
-    var $radius_tick_color='black';
-
-    function PolarAxis(&$img,&$aScale) {
-	parent::Axis($img,$aScale);
-    }
-
-    function ShowAngleDegreeMark($aFlg=true) {
-	$this->show_angle_mark = $aFlg;
-    }
-
-    function SetAngleStep($aStep) {
-	$this->angle_step=$aStep;
-    }
-
-    function HideTicks($aFlg=true,$aAngleFlg=true) {
-	parent::HideTicks($aFlg,$aFlg);
-	$this->show_angle_tick = !$aAngleFlg;
-    }
-
-    function ShowAngleLabel($aFlg=true) {
-	$this->show_angle_label = $aFlg;
-    }
-
-    function ShowGrid($aMajor=true,$aMinor=false,$aAngle=true) {
-	$this->show_minor_grid = $aMinor;
-	$this->show_major_grid = $aMajor;
-	$this->show_angle_grid = $aAngle ;
-    }
-
-    function SetAngleFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=10) {
-	$this->angle_fontfam = $aFontFam;
-	$this->angle_fontstyle = $aFontStyle;
-	$this->angle_fontsize = $aFontSize;
-    }
-
-    function SetColor($aColor,$aRadColor='',$aAngleColor='') {
-	if( $aAngleColor == '' )
-	    $aAngleColor=$aColor;
-	parent::SetColor($aColor,$aRadColor);
-	$this->angle_fontcolor = $aAngleColor;
-    }
-
-    function SetGridColor($aMajorColor,$aMinorColor='',$aAngleColor='') {
-	if( $aMinorColor == '' ) 
-	    $aMinorColor = $aMajorColor;
-	if( $aAngleColor == '' ) 
-	    $aAngleColor = $aMajorColor;
-
-	$this->gridminor_color = $aMinorColor;
-	$this->gridmajor_color = $aMajorColor;
-	$this->angle_color = $aAngleColor;
-    }
-
-    function SetTickColors($aRadColor,$aAngleColor='') {
-	$this->radius_tick_color = $aRadColor;
-	$this->angle_tick_color = $aAngleColor;
-    }
-    
-    // Private methods
-    function StrokeGrid($pos) {
-	$x = round($this->img->left_margin + $this->img->plotwidth/2);
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-
-	// Stroke the minor arcs 
-	$pmin = array();
-	$p = $this->scale->ticks->ticks_pos;
-	$n = count($p);
-	$i = 0;
-	$this->img->SetColor($this->gridminor_color);
-	while( $i < $n ) {
-	    $r = $p[$i]-$x+1;
-	    $pmin[]=$r;
-	    if( $this->show_minor_grid ) {
-		$this->img->Circle($x,$pos,$r);
-	    }
-	    $i++;
-	}
-	
-	$limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ;
-	while( $r < $limit ) {
-	    $off = $r;
-	    $i=1;
-	    $r = $off + round($p[$i]-$x+1);
-	    while( $r < $limit && $i < $n ) {
-		$r = $off+$p[$i]-$x;
-		$pmin[]=$r;
-		if( $this->show_minor_grid ) {
-		    $this->img->Circle($x,$pos,$r);
-		}
-		$i++;
-	    }
-	}
-
-	// Stroke the major arcs 
-	if( $this->show_major_grid ) {
-	    // First determine how many minor step on
-	    // every major step. We have recorded the minor radius
-	    // in pmin and use these values. This is done in order
-	    // to avoid rounding errors if we were to recalculate the
-	    // different major radius.
-	    $pmaj = $this->scale->ticks->maj_ticks_pos;
-	    $p = $this->scale->ticks->ticks_pos;
-	    if( $this->scale->name == 'lin' ) {
-		$step=round(($pmaj[1] - $pmaj[0])/($p[1] - $p[0]));
-	    }
-	    else {
-		$step=9;
-	    }
-	    $n = round(count($pmin)/$step);
-	    $i = 0;
-	    $this->img->SetColor($this->gridmajor_color);
-	    $limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ;
-	    $off = $r;
-	    $i=0;
-	    $r = $pmin[$i*$step];
-	    while( $r < $limit && $i < $n ) {
-		$r = $pmin[$i*$step];
-		$this->img->Circle($x,$pos,$r);
-		$i++;
-	    }
-	}
-
-	// Draw angles
-	if( $this->show_angle_grid ) {
-	    $this->img->SetColor($this->angle_color);
-	    $d = max($this->img->plotheight,$this->img->plotwidth)*1.4 ;
-	    $a = 0;
-	    $p = $this->scale->ticks->ticks_pos;
-	    $start_radius = $p[1]-$x;
-	    while( $a < 360 ) {
-		if( $a == 90 || $a == 270 ) {
-		    // Make sure there are no rounding problem with
-		    // exactly vertical lines
-		    $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$start_radius*sin($a/180*M_PI),
-				     $x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$d*sin($a/180*M_PI));
-		    
-		}
-		else {
-		    $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$start_radius*sin($a/180*M_PI),
-				     $x+$d*cos($a/180*M_PI),
-				     $pos-$d*sin($a/180*M_PI));
-		}
-		$a += $this->angle_step;
-	    }
-	}
-    }
-
-    function StrokeAngleLabels($pos,$type) {
-
-	if( !$this->show_angle_label ) 
-	    return;
-	
-	$x0 = round($this->img->left_margin+$this->img->plotwidth/2)+1;
-
-	$d = max($this->img->plotwidth,$this->img->plotheight)*1.42;
-	$a = $this->angle_step;
-	$t = new Text();
-	$t->SetColor($this->angle_fontcolor);
-	$t->SetFont($this->angle_fontfam,$this->angle_fontstyle,$this->angle_fontsize);
-	$xright = $this->img->width - $this->img->right_margin;
-	$ytop = $this->img->top_margin;
-	$xleft = $this->img->left_margin;
-	$ybottom = $this->img->height - $this->img->bottom_margin;
-	$ha = 'left';
-	$va = 'center';
-	$w = $this->img->plotwidth/2;
-	$h = $this->img->plotheight/2;
-	$xt = $x0; $yt = $pos;
-	$margin=5;
-
-	$tl  = $this->angle_tick_len ; // Outer len
-	$tl2 = $this->angle_tick_len2 ; // Interior len
-
-	$this->img->SetColor($this->angle_tick_color);
-	$rot90 = $this->img->a == 90 ;
-
-	if( $type == POLAR_360 ) {
-	    $ca1 = atan($h/$w)/M_PI*180;
-	    $ca2 = 180-$ca1;
-	    $ca3 = $ca1+180;
-	    $ca4 = 360-$ca1;
-	    $end = 360;
-	    while( $a < $end ) {
-		$ca = cos($a/180*M_PI);
-		$sa = sin($a/180*M_PI);
-		$x = $d*$ca;
-		$y = $d*$sa;
-		$xt=1000;$yt=1000;
-		if( $a <= $ca1 || $a >= $ca4 ) {
-		    $yt = $pos - $w * $y/$x;
-		    $xt = $xright + $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    else {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    $x1=$xright-$tl2; $x2=$xright+$tl;
-		    $y1=$y2=$yt;
-		}
-		elseif( $a > $ca1 && $a < $ca2 ) { 
-		    $xt = $x0 + $h * $x/$y;
-		    $yt = $ytop - $margin;
- 		    if( $rot90 ) {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    $y1=$ytop+$tl2;$y2=$ytop-$tl;
-		    $x1=$x2=$xt;
-		}
-		elseif( $a >= $ca2 && $a <= $ca3 ) { 
-		    $yt = $pos + $w * $y/$x;
-		    $xt = $xleft - $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    else {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    $x1=$xleft+$tl2;$x2=$xleft-$tl;
-		    $y1=$y2=$yt;
-		}
-		else { 
-		    $xt = $x0 - $h * $x/$y;
-		    $yt = $ybottom + $margin;
- 		    if( $rot90 ) {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    $y1=$ybottom-$tl2;$y2=$ybottom+$tl;
-		    $x1=$x2=$xt;
-		}
-		if( $a != 0 && $a != 180 ) {
-		    $t->Align($ha,$va);
-		    if( $this->show_angle_mark )
-			$a .= '°';
-		    $t->Set($a);
-		    $t->Stroke($this->img,$xt,$yt);   
-		    if( $this->show_angle_tick )
-			$this->img->Line($x1,$y1,$x2,$y2);
-		}
-		$a += $this->angle_step;
-	    }
-	}
-	else {
-	    // POLAR_HALF
-	    $ca1 = atan($h/$w*2)/M_PI*180;
-	    $ca2 = 180-$ca1;
-	    $end = 180;	    
-	    while( $a < $end ) {
-		$ca = cos($a/180*M_PI);
-		$sa = sin($a/180*M_PI);
-		$x = $d*$ca;
-		$y = $d*$sa;
-		if( $a <= $ca1 ) {
-		    $yt = $pos - $w * $y/$x;
-		    $xt = $xright + $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    else {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    $x1=$xright-$tl2; $x2=$xright+$tl;
-		    $y1=$y2=$yt;
-		}
-		elseif( $a > $ca1 && $a < $ca2 ) { 
-		    $xt = $x0 + 2*$h * $x/$y;
-		    $yt = $ytop - $margin;
- 		    if( $rot90 ) {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    $y1=$ytop+$tl2;$y2=$ytop-$tl;
-		    $x1=$x2=$xt;
-		}
-		elseif( $a >= $ca2 ) { 
-		    $yt = $pos + $w * $y/$x;
-		    $xt = $xleft - $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    else {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    $x1=$xleft+$tl2;$x2=$xleft-$tl;
-		    $y1=$y2=$yt;
-		}
-		$t->Align($ha,$va);
-		if( $this->show_angle_mark )
-		    $a .= '°';
-		$t->Set($a);
-		$t->Stroke($this->img,$xt,$yt);  
-		if( $this->show_angle_tick )
-		    $this->img->Line($x1,$y1,$x2,$y2);  
-		$a += $this->angle_step;
-	    }
-	}
-    }
-
-    function Stroke($pos) {
-
-	$this->img->SetLineWeight($this->weight);
-	$this->img->SetColor($this->color);		
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	if( !$this->hide_line ) 
-	    $this->img->FilledRectangle($this->img->left_margin,$pos,
-		     $this->img->width-$this->img->right_margin,$pos+$this->weight-1);
-	$y=$pos+$this->img->GetFontHeight()+$this->title_margin+$this->title->margin;
-	if( $this->title_adjust=="high" )
-	    $this->title->Pos($this->img->width-$this->img->right_margin,$y,"right","top");
-	elseif( $this->title_adjust=="middle" || $this->title_adjust=="center" ) 
-	    $this->title->Pos(($this->img->width-$this->img->left_margin-
-			       $this->img->right_margin)/2+$this->img->left_margin,
-			      $y,"center","top");
-	elseif($this->title_adjust=="low")
-	    $this->title->Pos($this->img->left_margin,$y,"left","top");
-	else {	
-	    JpGraphError::RaiseL(17002,$this->title_adjust);
-//('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')');
-	}
-
-	
-	if (!$this->hide_labels) {
-	    $this->StrokeLabels($pos,false);
-	}
-	$this->img->SetColor($this->radius_tick_color);
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-
-	//
-	// Mirror the positions for the left side of the scale
-        //
-	$mid = 2*($this->img->left_margin+$this->img->plotwidth/2);
-	$n = count($this->scale->ticks->ticks_pos);
-	$i=0;
-	while( $i < $n ) {
-	    $this->scale->ticks->ticks_pos[$i] = 
-		$mid-$this->scale->ticks->ticks_pos[$i] ;
-	    ++$i;
-	}
-
-	$n = count($this->scale->ticks->maj_ticks_pos);
-	$i=0;
-	while( $i < $n ) {
-	    $this->scale->ticks->maj_ticks_pos[$i] = 
-		$mid-$this->scale->ticks->maj_ticks_pos[$i] ;
-	    ++$i;
-	}
-	
-	$n = count($this->scale->ticks->maj_ticklabels_pos);
-	$i=1;
-	while( $i < $n ) {
-	    $this->scale->ticks->maj_ticklabels_pos[$i] =
-		$mid-$this->scale->ticks->maj_ticklabels_pos[$i] ;
-	    ++$i;
-	}
-
-	// Draw the left side of the scale
-	$n = count($this->scale->ticks->ticks_pos);
-	$yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMinTickAbsSize();
-
-
-	// Minor ticks
-	if( ! $this->scale->ticks->supress_minor_tickmarks ) {
-	    $i=1;
-	    while( $i < $n/2 ) {
-		$x = round($this->scale->ticks->ticks_pos[$i]) ;
-		$this->img->Line($x,$pos,$x,$yu);
-		++$i;
-	    }
-	}
-
-	$n = count($this->scale->ticks->maj_ticks_pos);
-	$yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMajTickAbsSize();
-
-
-	// Major ticks
-	if( ! $this->scale->ticks->supress_tickmarks ) {
-	    $i=1;
-	    while( $i < $n/2 ) {
-		$x = round($this->scale->ticks->maj_ticks_pos[$i]) ;
-		$this->img->Line($x,$pos,$x,$yu);
-		++$i;
-	    }
-	}
-	if (!$this->hide_labels) {
-	    $this->StrokeLabels($pos,false);
-	}
-	$this->title->Stroke($this->img);	
-    }
-}
-
-class PolarScale extends LinearScale {
-    var $graph;
-    function PolarScale($aMax=0,&$graph) {
-	parent::LinearScale(0,$aMax,'x');
-	$this->graph = &$graph;
-    }
-
-    function _Translate($v) {
-	return parent::Translate($v);
-    }
-
-    function PTranslate($aAngle,$aRad) {
-	
-	$m = $this->scale[1];
-	$w = $this->graph->img->plotwidth/2;
-	$aRad = $aRad/$m*$w;
-
-	$x = cos( $aAngle/180 * M_PI ) * $aRad;
-	$y = sin( $aAngle/180 * M_PI ) * $aRad;
-
-	$x += $this->_Translate(0);
-
-	if( $this->graph->iType == POLAR_360 ) {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y;
-	}
-	else {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y;
-	}
-	return array($x,$y);
-    }
-}
-
-class PolarLogScale extends LogScale {
-    var $graph;
-    function PolarLogScale($aMax=1,&$graph) {
-	parent::LogScale(0,$aMax,'x');
-	$this->graph = &$graph;
-	$this->ticks->SetLabelLogType(LOGLABELS_MAGNITUDE);
-
-    }
-
-    function PTranslate($aAngle,$aRad) {
-
-	if( $aRad == 0 ) 
-	    $aRad = 1;
-	$aRad = log10($aRad);
-	$m = $this->scale[1];
-	$w = $this->graph->img->plotwidth/2;
-	$aRad = $aRad/$m*$w;
-
-	$x = cos( $aAngle/180 * M_PI ) * $aRad;
-	$y = sin( $aAngle/180 * M_PI ) * $aRad;
-
-	$x += $w+$this->graph->img->left_margin;//$this->_Translate(0);
-	if( $this->graph->iType == POLAR_360 ) {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y;
-	}
-	else {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y;
-	}
-	return array($x,$y);
-    }
-}
-
-class PolarGraph extends Graph {
-    var $scale;
-    var $iType=POLAR_360;
-    var $axis;
-    
-    function PolarGraph($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) {
-	parent::Graph($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline) ;
-	$this->SetDensity(TICKD_DENSE);
-	$this->SetBox();
-	$this->SetMarginColor('white');
-    }
-
-    function SetDensity($aDense) {
-	$this->SetTickDensity(TICKD_NORMAL,$aDense);
-    }
-
-    function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) {
-	$adj = ($this->img->height - $this->img->width)/2;
-	$this->SetAngle(90);
-	$this->img->SetMargin($lm-$adj,$rm-$adj,$tm+$adj,$bm+$adj);
-	$this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2));
-	$this->axis->SetLabelAlign('right','center');
-	//JpGraphError::Raise('Set90AndMargin() is not supported for polar graphs.');
-    }
-
-    function SetScale($aScale,$rmax=0) {
-	if( $aScale == 'lin' ) 
-	    $this->scale = new PolarScale($rmax,$this);
-	elseif( $aScale == 'log' ) {
-	    $this->scale = new PolarLogScale($rmax,$this);
-	}
-	else {
-	    JpGraphError::RaiseL(17004);//('Unknown scale type for polar graph. Must be "lin" or "log"');
-	}
-
-	$this->axis = new PolarAxis($this->img,$this->scale);
-	$this->SetMargin(40,40,50,40);
-    }
-
-    function SetType($aType) {
-	$this->iType = $aType;
-    }
-
-    function SetPlotSize($w,$h) {
-	$this->SetMargin(($this->img->width-$w)/2,($this->img->width-$w)/2,
-			 ($this->img->height-$h)/2,($this->img->height-$h)/2);
-    }
-
-    // Private methods
-    function GetPlotsMax() {
-	$n = count($this->plots);
-	$m = $this->plots[0]->Max();
-	$i=1;
-	while($i < $n) {
-	    $m = max($this->plots[$i]->Max(),$m);
-	    ++$i;
-	}
-	return $m;
-    }
-
-    function Stroke($aStrokeFileName="") {
-
-	// Start by adjusting the margin so that potential titles will fit.
-	$this->AdjustMarginsForTitles();
-	    
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	//Check if we should autoscale axis
-	if( !$this->scale->IsSpecified() && count($this->plots)>0 ) {
-	    $max = $this->GetPlotsMax();
-	    $t1 = $this->img->plotwidth;
-	    $this->img->plotwidth /= 2;
-	    $t2 = $this->img->left_margin;
-	    $this->img->left_margin += $this->img->plotwidth+1;
-	    $this->scale->AutoScale($this->img,0,$max,
-				     $this->img->plotwidth/$this->xtick_factor/2);
-	    $this->img->plotwidth = $t1;
-	    $this->img->left_margin = $t2;
-	}
-	else {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    //$min = 0;
-	    $max = $this->scale->scale[1];
-	    $t1 = $this->img->plotwidth;
-	    $this->img->plotwidth /= 2;
-	    $t2 = $this->img->left_margin;
-	    $this->img->left_margin += $this->img->plotwidth+1;
-	    $this->scale->AutoScale($this->img,0,$max,
-				     $this->img->plotwidth/$this->xtick_factor/2);
-	    $this->img->plotwidth = $t1;
-	    $this->img->left_margin = $t2;
-	}
-
-	if( $this->iType ==  POLAR_180 ) 
-	    $pos = $this->img->height - $this->img->bottom_margin;
-	else
-	    $pos = $this->img->plotheight/2 + $this->img->top_margin;
-
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	}
-
-	$this->iDoClipping = true;
-
-	if( $this->iDoClipping ) {
-	    $oldimage = $this->img->CloneCanvasH();
-	}
-
-	if( !$_csim ) {
-	    $this->axis->StrokeGrid($pos);
-	}
-
-	// Stroke all plots for Y1 axis
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $this->plots[$i]->Stroke($this->img,$this->scale);
-	}						
-
-
-	if( $this->iDoClipping ) {
-	    // Clipping only supports graphs at 0 and 90 degrees
-	    if( $this->img->a == 0  ) {
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->plotwidth+1,$this->img->plotheight+1);
-	    }
-	    elseif( $this->img->a == 90 ) {
-		$adj = round(($this->img->height - $this->img->width)/2);
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->plotheight,$this->img->plotwidth);
-	    }
-	    $this->img->Destroy();
-	    $this->img->SetCanvasH($oldimage);
-	}
-
-	if( !$_csim ) {
-	    $this->axis->Stroke($pos);
-	    $this->axis->StrokeAngleLabels($pos,$this->iType);
-	}
-
-	if( !$_csim ) {
-	    $this->StrokePlotBox();
-	    $this->footer->Stroke($this->img);
-
-	    // The titles and legends never gets rotated so make sure
-	    // that the angle is 0 before stroking them				
-	    $aa = $this->img->SetAngle(0);
-	    $this->StrokeTitles();
-	}
-
-	for($i=0; $i < count($this->plots) ; ++$i ) {
-	    $this->plots[$i]->Legend($this);
-	}
-
-	$this->legend->Stroke($this->img);		
-
-	if( !$_csim ) {
-
-	    $this->StrokeTexts();	
-	    $this->img->SetAngle($aa);	
-			
-	    // Draw an outline around the image map	
-	    if(_JPG_DEBUG)
-		$this->DisplayClientSideaImageMapAreas();		
-	    
-	    // Adjust the appearance of the image
-	    $this->AdjustSaturationBrightnessContrast();
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-}
-
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_radar.php b/nightly-test-server/jpgraph/jpgraph_radar.php
deleted file mode 100644
index 6c8f033..0000000
--- a/nightly-test-server/jpgraph/jpgraph_radar.php
+++ /dev/null
@@ -1,661 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_RADAR.PHP
-// Description: Radar plot extension for JpGraph
-// Created: 	2001-02-04
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotmark.inc');
-
-class RadarLogTicks extends Ticks {
-//---------------
-// CONSTRUCTOR
-    function RadarLogTicks() {
-    }
-//---------------
-// PUBLIC METHODS	
-
-    // TODO: Add Argument grid
-    function Stroke(&$aImg,&$grid,$aPos,$aAxisAngle,&$aScale,&$aMajPos,&$aMajLabel) {
-	$start = $aScale->GetMinVal();
-	$limit = $aScale->GetMaxVal();
-	$nextMajor = 10*$start;
-	$step = $nextMajor / 10.0;
-	$count=1; 
-				
-	$ticklen_maj=5;
-	$dx_maj=round(sin($aAxisAngle)*$ticklen_maj);
-	$dy_maj=round(cos($aAxisAngle)*$ticklen_maj);
-	$ticklen_min=3;
-	$dx_min=round(sin($aAxisAngle)*$ticklen_min);
-	$dy_min=round(cos($aAxisAngle)*$ticklen_min);
-			
-	$aMajPos=array();
-	$aMajLabel=array();
-			
-	if( $this->supress_first )
-	    $aMajLabel[]="";
-	else
-	    $aMajLabel[]=$start;	
-	$yr=$aScale->RelTranslate($start);	
-	$xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0];
-	$yt=$aPos-round($yr*sin($aAxisAngle));
-	$aMajPos[]=$xt+2*$dx_maj;
-	$aMajPos[]=$yt-$aImg->GetFontheight()/2;
-	$grid[]=$xt;
-	$grid[]=$yt;
-
-	$aImg->SetLineWeight($this->weight);			
-		
-	for($y=$start; $y<=$limit; $y+=$step,++$count  ) {
-	    $yr=$aScale->RelTranslate($y);	
-	    $xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0];
-	    $yt=$aPos-round($yr*sin($aAxisAngle));
-	    if( $count % 10 == 0 ) {
-		$grid[]=$xt;
-		$grid[]=$yt;
-		$aMajPos[]=$xt+2*$dx_maj;
-		$aMajPos[]=$yt-$aImg->GetFontheight()/2;							
-		if( !$this->supress_tickmarks )	{		
-		    if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		    $aImg->Line($xt+$dx_maj,$yt+$dy_maj,$xt-$dx_maj,$yt-$dy_maj);
-		    if( $this->majcolor!="" ) $aImg->PopColor();
-		}
-		if( $this->label_formfunc != "" ) {
-		    $f=$this->label_formfunc;
-		    $l = call_user_func($f,$nextMajor);
-		}
-		else
-		    $l = $nextMajor;
-		$aMajLabel[]=$l;	
-		$nextMajor *= 10;
-		$step *= 10;	
-		$count=1; 				
-	    }
-	    else
-		if( !$this->supress_minor_tickmarks )	{
-		    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);
-		    $aImg->Line($xt+$dx_min,$yt+$dy_min,$xt-$dx_min,$yt-$dy_min);
-		    if( $this->mincolor!="" ) $aImg->PopColor();
-		}
-	}		
-    }		
-}
-	
-class RadarLinearTicks extends LinearTicks {
-//---------------
-// CONSTRUCTOR
-    function RadarLinearTicks() {
-	// Empty
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // TODO: Add argument grid
-    function Stroke(&$aImg,&$grid,$aPos,$aAxisAngle,&$aScale,&$aMajPos,&$aMajLabel) {
-	// Prepare to draw linear ticks
-	$maj_step_abs = abs($aScale->scale_factor*$this->major_step);	
-	$min_step_abs = abs($aScale->scale_factor*$this->minor_step);	
-	$nbrmaj = floor(($aScale->world_abs_size)/$maj_step_abs);
-	$nbrmin = floor(($aScale->world_abs_size)/$min_step_abs);
-	$skip = round($nbrmin/$nbrmaj); // Don't draw minor ontop of major
-
-	// Draw major ticks
-	$ticklen2=$this->major_abs_size;
-	$dx=round(sin($aAxisAngle)*$ticklen2);
-	$dy=round(cos($aAxisAngle)*$ticklen2);
-	$label=$aScale->scale[0]+$this->major_step;
-		
-	$aImg->SetLineWeight($this->weight);
-		
-	for($i=1; $i<=$nbrmaj; ++$i) {
-	    $xt=round($i*$maj_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0];
-	    $yt=$aPos-round($i*$maj_step_abs*sin($aAxisAngle));
-
-	    if( $this->label_formfunc != "" ) {
-		$f=$this->label_formfunc;
-		$l = call_user_func($f,$label);
-	    }
-	    else
-		$l = $label;
-
-	    $aMajLabel[]=$l;
-	    $label += $this->major_step;
-	    $grid[]=$xt;
-	    $grid[]=$yt;
-	    $aMajPos[($i-1)*2]=$xt+2*$dx;
-	    $aMajPos[($i-1)*2+1]=$yt-$aImg->GetFontheight()/2;				
-	    if( !$this->supress_tickmarks ) {
-		if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		$aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy);
-		if( $this->majcolor!="" ) $aImg->PopColor();
-	    }
-	}
-
-	// Draw minor ticks
-	$ticklen2=$this->minor_abs_size;
-	$dx=round(sin($aAxisAngle)*$ticklen2);
-	$dy=round(cos($aAxisAngle)*$ticklen2);
-	if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks)	{
-	    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);						
-	    for($i=1; $i<=$nbrmin; ++$i) {
-		if( ($i % $skip) == 0 ) continue;
-		$xt=round($i*$min_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0];
-		$yt=$aPos-round($i*$min_step_abs*sin($aAxisAngle));
-		$aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy);
-	    }
-	    if( $this->mincolor!="" ) $aImg->PopColor();
-	}
-    }
-}
-
-	
-
-//===================================================
-// CLASS RadarAxis
-// Description: Implements axis for the radar graph
-//===================================================
-class RadarAxis extends Axis {
-    var $title_color="navy";
-    var $title=null;
-//---------------
-// CONSTRUCTOR
-    function RadarAxis(&$img,&$aScale,$color=array(0,0,0)) {
-	parent::Axis($img,$aScale,$color);
-	$this->len=$img->plotheight;
-	$this->title = new Text();
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->color = array(0,0,0);
-    }
-//---------------
-// PUBLIC METHODS	
-    function SetTickLabels($l) {
-	$this->ticks_label = $l;
-    }
-	
-	
-    // Stroke the axis 
-    // $pos 			= Vertical position of axis
-    // $aAxisAngle = Axis angle
-    // $grid			= Returns an array with positions used to draw the grid
-    //	$lf			= Label flag, TRUE if the axis should have labels
-    function Stroke($pos,$aAxisAngle,&$grid,$title,$lf) {
-	$this->img->SetColor($this->color);
-		
-	// Determine end points for the axis
-	$x=round($this->scale->world_abs_size*cos($aAxisAngle)+$this->scale->scale_abs[0]);
-	$y=round($pos-$this->scale->world_abs_size*sin($aAxisAngle));
-		
-	// Draw axis
-	$this->img->SetColor($this->color);
-	$this->img->SetLineWeight($this->weight);
-	if( !$this->hide )
-	    $this->img->Line($this->scale->scale_abs[0],$pos,$x,$y);
-	
-	$this->scale->ticks->Stroke($this->img,$grid,$pos,$aAxisAngle,$this->scale,$majpos,$majlabel);
-		
-	// Draw labels
-	if( $lf && !$this->hide ) {
-	    $this->img->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	    $this->img->SetTextAlign("left","top");
-	    $this->img->SetColor($this->label_color);
-			
-	    // majpos contains (x,y) coordinates for labels
-	    if( ! $this->hide_labels ) {
-		$n = floor(count($majpos)/2);
-		for($i=0; $i < $n; ++$i) {
-		    if( $this->ticks_label != null && isset($this->ticks_label[$i]) )
-			$this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$this->ticks_label[$i]);
-		    else
-			$this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$majlabel[$i]);
-		}
-	    }
-	}
-	$this->_StrokeAxisTitle($pos,$aAxisAngle,$title);
-    }
-//---------------
-// PRIVATE METHODS	
-	
-    function _StrokeAxisTitle($pos,$aAxisAngle,$title) {
-	$this->title->Set($title);
-	$marg=6+$this->title->margin;
-	$xt=round(($this->scale->world_abs_size+$marg)*cos($aAxisAngle)+$this->scale->scale_abs[0]);
-	$yt=round($pos-($this->scale->world_abs_size+$marg)*sin($aAxisAngle));
-
-	// Position the axis title. 
-	// dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	// that intersects with the extension of the corresponding axis. The code looks a little
-	// bit messy but this is really the only way of having a reasonable position of the
-	// axis titles.
-	if( $this->title->iWordwrap > 0 ) {
-	    $title = wordwrap($title,$this->title->iWordwrap,"\n");
-	}
-
-	$h=$this->img->GetTextHeight($title)*1.2;
-	$w=$this->img->GetTextWidth($title)*1.2;
-	while( $aAxisAngle > 2*M_PI ) $aAxisAngle -= 2*M_PI;
-
-	if( $aAxisAngle>=7*M_PI/4 || $aAxisAngle <= M_PI/4 ) $dx=0;
-	if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dx=($aAxisAngle-M_PI/4)*2/M_PI; 
-	if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dx=1;
-	if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dx=(1-($aAxisAngle-M_PI*5/4)*2/M_PI);
-		
-	if( $aAxisAngle>=7*M_PI/4 ) $dy=(($aAxisAngle-M_PI)-3*M_PI/4)*2/M_PI;
-	if( $aAxisAngle<=M_PI/4 ) $dy=(1-$aAxisAngle*2/M_PI);
-	if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dy=1;
-	if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dy=(1-($aAxisAngle-3*M_PI/4)*2/M_PI);
-	if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dy=0;
-		
-	if( !$this->hide ) {
-	    $this->title->Stroke($this->img,$xt-$dx*$w,$yt-$dy*$h,$title);
-	}
-    }
-		
-	
-} // Class
-
-
-//===================================================
-// CLASS RadarGrid
-// Description: Draws grid for the radar graph
-//===================================================
-class RadarGrid extends Grid {
-//------------
-// CONSTRUCTOR
-    function RadarGrid() {
-    }
-
-//----------------
-// PRIVATE METHODS	
-    function Stroke(&$img,&$grid) {
-	if( !$this->show ) return;
-	$nbrticks = count($grid[0])/2;
-	$nbrpnts = count($grid);
-	$img->SetColor($this->grid_color);
-	$img->SetLineWeight($this->weight);
-	for($i=0; $i<$nbrticks; ++$i) {
-	    for($j=0; $j<$nbrpnts; ++$j) {
-		$pnts[$j*2]=$grid[$j][$i*2];
-		$pnts[$j*2+1]=$grid[$j][$i*2+1];
-	    }
-	    for($k=0; $k<$nbrpnts; ++$k ){
-		$l=($k+1)%$nbrpnts;
-		if( $this->type == "solid" )
-		    $img->Line($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1]);
-		elseif( $this->type == "dotted" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],1,6);
-		elseif( $this->type == "dashed" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],2,4);
-		elseif( $this->type == "longdashed" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],8,6);
-	    }
-	    $pnts=array();
-	}
-    }
-} // Class
-
-
-//===================================================
-// CLASS RadarPlot
-// Description: Plot a radarplot
-//===================================================
-class RadarPlot {
-    var $data=array();
-    var $fill=false, $fill_color=array(200,170,180);
-    var $color=array(0,0,0);
-    var $legend="";
-    var $weight=1;
-    var $linestyle='solid';
-    var $mark=null;
-//---------------
-// CONSTRUCTOR
-    function RadarPlot($data) {
-	$this->data = $data;
-	$this->mark = new PlotMark();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Min() {
-	return Min($this->data);
-    }
-	
-    function Max() {
-	return Max($this->data);
-    }
-	
-    function SetLegend($legend) {
-	$this->legend=$legend;
-    }
-
-    function SetLineStyle($aStyle) {
-	$this->linestyle=$aStyle;
-    }
-	
-    function SetLineWeight($w) {
-	$this->weight=$w;
-    }
-		
-    function SetFillColor($aColor) {
-	$this->fill_color = $aColor;
-	$this->fill = true;		
-    }
-    
-    function SetFill($f=true) {
-	$this->fill = $f;
-    }
-    
-    function SetColor($aColor,$aFillColor=false) {
-	$this->color = $aColor;
-	if( $aFillColor ) {
-	    $this->SetFillColor($aFillColor);
-	    $this->fill = true;
-	}
-    }
-	
-    function GetCSIMareas() {
-	JpGraphError::RaiseL(18001);
-//("Client side image maps not supported for RadarPlots.");
-    }
-	
-    function Stroke(&$img, $pos, &$scale, $startangle) {
-	$nbrpnts = count($this->data);
-	$astep=2*M_PI/$nbrpnts;		
-	$a=$startangle;
-		
-	// Rotate each point to the correct axis-angle
-	// TODO: Update for LogScale
-	for($i=0; $i<$nbrpnts; ++$i) {
-	    //$c=$this->data[$i];
-	    $cs=$scale->RelTranslate($this->data[$i]);
-	    $x=round($cs*cos($a)+$scale->scale_abs[0]);
-	    $y=round($pos-$cs*sin($a));
-	    /*
-	      $c=log10($c);
-	      $x=round(($c-$scale->scale[0])*$scale->scale_factor*cos($a)+$scale->scale_abs[0]);
-	      $y=round($pos-($c-$scale->scale[0])*$scale->scale_factor*sin($a));		
-	    */
-	    $pnts[$i*2]=$x;
-	    $pnts[$i*2+1]=$y;
-	    $a += $astep;
-	}
-	if( $this->fill ) {
-	    $img->SetColor($this->fill_color);
-	    $img->FilledPolygon($pnts);
-	}
-	$img->SetLineWeight($this->weight);
-	$img->SetColor($this->color);
-	$img->SetLineStyle($this->linestyle);
-	$pnts[]=$pnts[0];
-	$pnts[]=$pnts[1];
-	$img->Polygon($pnts);
-	$img->SetLineStyle('solid'); // Reset line style to default
-	// Add plotmarks on top
-	if( $this->mark->show ) {
-	    for($i=0; $i < $nbrpnts; ++$i) {
-		$this->mark->Stroke($img,$pnts[$i*2],$pnts[$i*2+1]); 
-	    }
-	}
-
-    }
-	
-//---------------
-// PRIVATE METHODS
-    function GetCount() {
-	return count($this->data);
-    }
-	
-    function Legend(&$graph) {
-	if( $this->legend=="" ) return;
-	if( $this->fill )
-	    $graph->legend->Add($this->legend,$this->fill_color,$this->mark);
-	else
-	    $graph->legend->Add($this->legend,$this->color,$this->mark);	
-    }
-	
-} // Class
-
-//===================================================
-// CLASS RadarGraph
-// Description: Main container for a radar graph
-//===================================================
-class RadarGraph extends Graph {
-    var $posx;
-    var $posy;
-    var $len;		
-    var $plots=null, $axis_title=null;
-    var $grid,$axis=null;
-//---------------
-// CONSTRUCTOR
-    function RadarGraph($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) {
-	$this->Graph($width,$height,$cachedName,$timeout,$inline);
-	$this->posx=$width/2;
-	$this->posy=$height/2;
-	$this->len=min($width,$height)*0.35;
-	$this->SetColor(array(255,255,255));
-	$this->SetTickDensity(TICKD_NORMAL);
-	$this->SetScale("lin");
-	$this->SetGridDepth(DEPTH_FRONT);
-
-    }
-
-//---------------
-// PUBLIC METHODS
-    function SupressTickMarks($f=true) {
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(18002);
-//('RadarGraph::SupressTickMarks() is deprecated. Use HideTickMarks() instead.');
-	$this->axis->scale->ticks->SupressTickMarks($f);
-    }
-
-    function HideTickMarks($aFlag=true) {
-		$this->axis->scale->ticks->SupressTickMarks($aFlag);
-    }
-    
-    function ShowMinorTickmarks($aFlag=true) {
-    	$this->yscale->ticks->SupressMinorTickMarks(!$aFlag);
-    }
-	
-    function SetScale($axtype,$ymin=1,$ymax=1) {
-	if( $axtype != "lin" && $axtype != "log" ) {
-	    JpGraphError::RaiseL(18003,$axtype);
-//("Illegal scale for radarplot ($axtype). Must be \"lin\" or \"log\"");
-	}
-	if( $axtype=="lin" ) {
-	    $this->yscale = & new LinearScale($ymin,$ymax);
-	    $this->yscale->ticks = & new RadarLinearTicks();
-	    $this->yscale->ticks->SupressMinorTickMarks();
-	}
-	elseif( $axtype=="log" ) {
-	    $this->yscale = & new LogScale($ymin,$ymax);
-	    $this->yscale->ticks = & new RadarLogTicks();
-	}
-		
-	$this->axis = & new RadarAxis($this->img,$this->yscale);
-	$this->grid = & new RadarGrid();		
-    }
-
-    function SetSize($aSize) {
-	if( $aSize < 0.1 || $aSize>1 )
-	    JpGraphError::RaiseL(18004,$aSize);
-//("Radar Plot size must be between 0.1 and 1. (Your value=$s)");
-	$this->len=min($this->img->width,$this->img->height)*$aSize/2;
-    }
-
-    function SetPlotSize($aSize) {
-	$this->SetSize($aSize);
-    }
-
-    function SetTickDensity($densy=TICKD_NORMAL) {
-	$this->ytick_factor=25;		
-	switch( $densy ) {
-	    case TICKD_DENSE:
-		$this->ytick_factor=12;			
-	    break;
-	    case TICKD_NORMAL:
-		$this->ytick_factor=25;			
-	    break;
-	    case TICKD_SPARSE:
-		$this->ytick_factor=40;			
-	    break;
-	    case TICKD_VERYSPARSE:
-		$this->ytick_factor=70;			
-	    break;		
-	    default:
-		JpGraphError::RaiseL(18005,$densy);
-//("RadarPlot Unsupported Tick density: $densy");
-	}
-    }
-
-    function SetPos($px,$py=0.5) {
-	$this->SetCenter($px,$py);
-    }
-
-    function SetCenter($px,$py=0.5) {
-	assert($px > 0 && $py > 0 );
-	$this->posx=$this->img->width*$px;
-	$this->posy=$this->img->height*$py;
-    }
-
-    function SetColor($c) {
-	$this->SetMarginColor($c);
-    }
-			
-    function SetTitles($title) {
-	$this->axis_title = $title;
-    }
-
-    function Add(&$splot) {
-	$this->plots[]=$splot;
-    }
-	
-    function GetPlotsYMinMax() {
-	$min=$this->plots[0]->Min();
-	$max=$this->plots[0]->Max();
-	foreach( $this->plots as $p ) {
-	    $max=max($max,$p->Max());
-	    $min=min($min,$p->Min());
-	}
-	if( $min < 0 ) 
-	    JpGraphError::RaiseL(18006,$min);
-//("Minimum data $min (Radar plots should only be used when all data points > 0)");
-	return array($min,$max);
-    }	
-
-    // Stroke the Radar graph
-    function Stroke($aStrokeFileName="") {
-	$n = count($this->plots);
-	// Set Y-scale
-	if( !$this->yscale->IsSpecified() && count($this->plots)>0 ) {
-	    list($min,$max) = $this->GetPlotsYMinMax();
-	    $this->yscale->AutoScale($this->img,0,$max,$this->len/$this->ytick_factor);
-	}
-	elseif( $this->yscale->IsSpecified() && 
-		( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->yscale->scale[0];
-	    $max = $this->yscale->scale[1];
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->len/$this->ytick_factor,
-				     $this->yscale->auto_ticks);
-	}
-
-	// Set start position end length of scale (in absolute pixels)
-	$this->yscale->SetConstants($this->posx,$this->len);
-		
-	// We need as many axis as there are data points
-	$nbrpnts=$this->plots[0]->GetCount();
-		
-	// If we have no titles just number the axis 1,2,3,...
-	if( $this->axis_title==null ) {
-	    for($i=0; $i < $nbrpnts; ++$i ) 
-		$this->axis_title[$i] = $i+1;
-	}
-	elseif(count($this->axis_title)<$nbrpnts) 
-	    JpGraphError::RaiseL(18007);
-//("Number of titles does not match number of points in plot.");
-	for($i=0; $i < $n; ++$i )
-	    if( $nbrpnts != $this->plots[$i]->GetCount() )
-		JpGraphError::RaiseL(18008);
-//("Each radar plot must have the same number of data points.");
-
-	if( $this->background_image != "" ) {
-	    $this->StrokeFrameBackground();
-	}
-	else {	
-	    $this->StrokeFrame();
-	}
-	$astep=2*M_PI/$nbrpnts;
-
-	// Prepare legends
-	for($i=0; $i < $n; ++$i)
-	    $this->plots[$i]->Legend($this);
-	$this->legend->Stroke($this->img);			
-	$this->footer->Stroke($this->img);			
-
-	if( $this->grid_depth == DEPTH_BACK ) {
-	    // Draw axis and grid
-	    for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) {
-		$this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0);
-	    }	
-	}
-		
-	// Plot points
-	$a=M_PI/2;
-	for($i=0; $i < $n; ++$i )
-	    $this->plots[$i]->Stroke($this->img, $this->posy, $this->yscale, $a);
-		
-	if( $this->grid_depth != DEPTH_BACK ) {
-	    // Draw axis and grid
-	    for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) {
-		$this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0);
-	    }	
-	}
-	$this->grid->Stroke($this->img,$grid);
-	$this->StrokeTitles();
-	
-	// Stroke texts
-	if( $this->texts != null ) {
-	    foreach( $this->texts as $t) 
-		$t->Stroke($this->img);
-	}
-
-	// Should we do any final image transformation
-	if( $this->iImgTrans ) {
-	    if( !class_exists('ImgTrans') ) {
-		require_once('jpgraph_imgtrans.php');
-	    }
-	       
-	    $tform = new ImgTrans($this->img->img);
-	    $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-					     $this->iImgTransDirection,$this->iImgTransHighQ,
-					     $this->iImgTransMinSize,$this->iImgTransFillColor,
-					     $this->iImgTransBorder);
-	}
-	
-	// If the filename is given as the special "__handle"
-	// then the image handler is returned and the image is NOT
-	// streamed back
-	if( $aStrokeFileName == _IMG_HANDLER ) {
-	    return $this->img->img;
-	    }
-	else {
-	    // Finally stream the generated picture					
-	    $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-				       $aStrokeFileName);		
-	}
-    }
-} // Class
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_regstat.php b/nightly-test-server/jpgraph/jpgraph_regstat.php
deleted file mode 100644
index 47b9eb3..0000000
--- a/nightly-test-server/jpgraph/jpgraph_regstat.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php 
-/*=======================================================================
-// File:	JPGRAPH_REGSTAT.PHP
-// Description: Regression and statistical analysis helper classes
-// Created: 	2002-12-01
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//------------------------------------------------------------------------
-// CLASS Spline
-// Create a new data array from an existing data array but with more points.
-// The new points are interpolated using a cubic spline algorithm
-//------------------------------------------------------------------------
-class Spline {
-    // 3:rd degree polynom approximation
-
-    var $xdata,$ydata;   // Data vectors
-    var $y2;		 // 2:nd derivate of ydata	
-    var $n=0;
-
-    function Spline($xdata,$ydata) {
-	$this->y2 = array();
-	$this->xdata = $xdata;
-	$this->ydata = $ydata;
-
-	$n = count($ydata);
-	$this->n = $n;
-	if( $this->n !== count($xdata) ) {
-	    JpGraphError::RaiseL(19001);
-//('Spline: Number of X and Y coordinates must be the same');
-	}
-
-	// Natural spline 2:derivate == 0 at endpoints
-	$this->y2[0]    = 0.0;
-	$this->y2[$n-1] = 0.0;
-	$delta[0] = 0.0;
-
-	// Calculate 2:nd derivate
-	for($i=1; $i < $n-1; ++$i) {
-	    $d = ($xdata[$i+1]-$xdata[$i-1]);
-	    if( $d == 0  ) {
-		JpGraphError::RaiseL(19002);
-//('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');
-	    }
-	    $s = ($xdata[$i]-$xdata[$i-1])/$d;
-	    $p = $s*$this->y2[$i-1]+2.0;
-	    $this->y2[$i] = ($s-1.0)/$p;
-	    $delta[$i] = ($ydata[$i+1]-$ydata[$i])/($xdata[$i+1]-$xdata[$i]) - 
-		         ($ydata[$i]-$ydata[$i-1])/($xdata[$i]-$xdata[$i-1]);
-	    $delta[$i] = (6.0*$delta[$i]/($xdata[$i+1]-$xdata[$i-1])-$s*$delta[$i-1])/$p;
-	}
-
-	// Backward substitution
-	for( $j=$n-2; $j >= 0; --$j ) {
-	    $this->y2[$j] = $this->y2[$j]*$this->y2[$j+1] + $delta[$j];
-	}
-    }
-
-    // Return the two new data vectors
-    function Get($num=50) {
-	$n = $this->n ;
-	$step = ($this->xdata[$n-1]-$this->xdata[0]) / ($num-1);
-	$xnew=array();
-	$ynew=array();
-	$xnew[0] = $this->xdata[0];
-	$ynew[0] = $this->ydata[0];
-	for( $j=1; $j < $num; ++$j ) {
-	    $xnew[$j] = $xnew[0]+$j*$step;
-	    $ynew[$j] = $this->Interpolate($xnew[$j]);
-	}
-	return array($xnew,$ynew);
-    }
-
-    // Return a single interpolated Y-value from an x value
-    function Interpolate($xpoint) {
-
-	$max = $this->n-1;
-	$min = 0;
-
-	// Binary search to find interval
-	while( $max-$min > 1 ) {
-	    $k = ($max+$min) / 2;
-	    if( $this->xdata[$k] > $xpoint ) 
-		$max=$k;
-	    else 
-		$min=$k;
-	}	
-
-	// Each interval is interpolated by a 3:degree polynom function
-	$h = $this->xdata[$max]-$this->xdata[$min];
-
-	if( $h == 0  ) {
-	    JpGraphError::RaiseL(19002);
-//('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');
-	}
-
-
-	$a = ($this->xdata[$max]-$xpoint)/$h;
-	$b = ($xpoint-$this->xdata[$min])/$h;
-	return $a*$this->ydata[$min]+$b*$this->ydata[$max]+
-	     (($a*$a*$a-$a)*$this->y2[$min]+($b*$b*$b-$b)*$this->y2[$max])*($h*$h)/6.0;
-    }
-}
-
-//------------------------------------------------------------------------
-// CLASS Bezier
-// Create a new data array from a number of control points
-//------------------------------------------------------------------------
-class Bezier {
-/**
- * @author Thomas Despoix, openXtrem company
- * @license released under QPL
- * @abstract Bezier interoplated point generation,
- * computed from control points data sets, based on Paul Bourke algorithm :
- * http://astronomy.swin.edu.au/~pbourke/curves/bezier/
- */
-    var $datax = array();
-    var $datay = array();
-    var $n=0;
- 
-    function Bezier($datax, $datay, $attraction_factor = 1) {
-	// Adding control point multiple time will raise their attraction power over the curve   
-	$this->n = count($datax);
-	if( $this->n !== count($datay) ) {
-	    JpGraphError::RaiseL(19003);
-//('Bezier: Number of X and Y coordinates must be the same');
-	}
-	$idx=0;
-	foreach($datax as $datumx) {
-	    for ($i = 0; $i < $attraction_factor; $i++) {
-		$this->datax[$idx++] = $datumx;
-	    }
-	}
-   	$idx=0;
-	foreach($datay as $datumy) {
-	    for ($i = 0; $i < $attraction_factor; $i++) {
-		$this->datay[$idx++] = $datumy;
-	    }
-	}
-	$this->n *= $attraction_factor;
-    }
-
-    function Get($steps) {
-	$datax = array();
-	$datay = array();
-	for ($i = 0; $i < $steps; $i++) {
-	    list($datumx, $datumy) = $this->GetPoint((double) $i / (double) $steps);       
-	    $datax[] = $datumx;
-	    $datay[] = $datumy;
-	}
-   
-	$datax[] = end($this->datax);
-	$datay[] = end($this->datay);
-   
-	return array($datax, $datay);
-    }
- 
-    function GetPoint($mu) {
-	$n = $this->n - 1;
-	$k = 0;
-	$kn = 0;
-	$nn = 0;
-	$nkn = 0;
-	$blend = 0.0;
-	$newx = 0.0;
-	$newy = 0.0;
-
-	$muk = 1.0;
-	$munk = (double) pow(1-$mu,(double) $n);
-
-	for ($k = 0; $k <= $n; $k++) {
-	    $nn = $n;
-	    $kn = $k;
-	    $nkn = $n - $k;
-	    $blend = $muk * $munk;
-	    $muk *= $mu;
-	    $munk /= (1-$mu);
-	    while ($nn >= 1) {
-		$blend *= $nn;
-		$nn--;
-		if ($kn > 1) {
-		    $blend /= (double) $kn;
-		    $kn--;
-		}
-		if ($nkn > 1) {
-		    $blend /= (double) $nkn;
-		    $nkn--;
-		}
-	    }
-	    $newx += $this->datax[$k] * $blend;
-	    $newy += $this->datay[$k] * $blend;
-	}
-
-	return array($newx, $newy);
-    }
-}
-
-// EOF
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_scatter.php b/nightly-test-server/jpgraph/jpgraph_scatter.php
deleted file mode 100644
index 33f52b5..0000000
--- a/nightly-test-server/jpgraph/jpgraph_scatter.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php 
-/*=======================================================================
-// File:	JPGRAPH_SCATTER.PHP
-// Description: Scatter (and impuls) plot extension for JpGraph
-// Created: 	2001-02-11
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-require_once ('jpgraph_plotmark.inc');
-
-//===================================================
-// CLASS FieldArrow
-// Description: Draw an arrow at (x,y) with angle a
-//===================================================
-class FieldArrow {
-    var $iSize=10;  // Length in pixels for  arrow
-    var $iArrowSize = 2;
-    var $iColor='black';
-    var $isizespec = array(
-	array(2,1),array(3,2),array(4,3),array(6,4),array(7,4),array(8,5),array(10,6),array(12,7),array(16,8),array(20,10));
-    function FieldArrow() {
-    }
-
-    function SetSize($aSize,$aArrowSize=2) {
-	$this->iSize = $aSize;
-	$this->iArrowSize = $aArrowSize;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function Stroke(&$aImg,$x,$y,$a) {
-	// First rotate the center coordinates
-	list($x,$y) = $aImg->Rotate($x,$y);
-
-	$old_origin = $aImg->SetCenter($x,$y);
-	$old_a = $aImg->a;
-	$aImg->SetAngle(-$a+$old_a);
-
-	$dx = round($this->iSize/2);
-	$c = array($x-$dx,$y,$x+$dx,$y);
-	$x += $dx;
-
-	list($dx,$dy) = $this->isizespec[$this->iArrowSize];
-	$ca = array($x,$y,$x-$dx,$y-$dy,$x-$dx,$y+$dy,$x,$y);
-
-	$aImg->SetColor($this->iColor);
-	$aImg->Polygon($c);
-	$aImg->FilledPolygon($ca);
-
-	$aImg->SetCenter($old_origin[0],$old_origin[1]);
-	$aImg->SetAngle($old_a);
-    }
-}
-
-//===================================================
-// CLASS FieldPlot
-// Description: Render a field plot
-//===================================================
-class FieldPlot extends Plot {
-    var $iAngles;
-    var $iCallback='';
-    function FieldPlot($datay,$datax,$angles) {
-	if( (count($datax) != count($datay)) )
-	    JpGraphError::RaiseL(20001);//("Fieldplots must have equal number of X and Y points.");
-	if( (count($datax) != count($angles)) )
-	    JpGraphError::RaiseL(20002);//("Fieldplots must have an angle specified for each X and Y points.");
-	
-	$this->iAngles = $angles;
-
-	$this->Plot($datay,$datax);
-	$this->value->SetAlign('center','center');
-	$this->value->SetMargin(15);
-
-	$this->arrow = new FieldArrow();
-    }
-
-    function SetCallback($aFunc) {
-	$this->iCallback = $aFunc;
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) {
-
-	// Remeber base color and size
-	$bc = $this->arrow->iColor;
-	$bs = $this->arrow->iSize;
-	$bas = $this->arrow->iArrowSize;
-
-	for( $i=0; $i<$this->numpoints; ++$i ) {
-	    // Skip null values
-	    if( $this->coords[0][$i]==="" )
-		continue;
-
-	    $f = $this->iCallback;
-	    if( $f != "" ) {
-		list($cc,$cs,$cas) = call_user_func($f,$this->coords[1][$i],$this->coords[0][$i],$this->iAngles[$i]);
-		// Fall back on global data if the callback isn't set
-		if( $cc  == "" ) $cc = $bc;
-		if( $cs  == "" ) $cs = $bs;
-		if( $cas == "" ) $cas = $bas;
-		//echo "f=$f, cc=$cc, cs=$cs, cas=$cas<br>";
-		$this->arrow->SetColor($cc);	    
-		$this->arrow->SetSize($cs,$cas);
-	    }
-
-	    $xt = $xscale->Translate($this->coords[1][$i]);
-	    $yt = $yscale->Translate($this->coords[0][$i]);	
-
-	    $this->arrow->Stroke($img,$xt,$yt,$this->iAngles[$i]);
-	    $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt);
-	}
-    }
-	
-    // Framework function
-    function Legend(&$aGraph) {
-	if( $this->legend != "" ) {
-	    $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0,
-				 $this->legendcsimtarget,$this->legendcsimalt);
-	}
-    }	
-}
-
-//===================================================
-// CLASS ScatterPlot
-// Description: Render X and Y plots
-//===================================================
-class ScatterPlot extends Plot {
-    var $impuls = false;
-    var $linkpoints = false, $linkpointweight=1, $linkpointcolor="black";
-//---------------
-// CONSTRUCTOR
-    function ScatterPlot($datay,$datax=false) {
-	if( (count($datax) != count($datay)) && is_array($datax))
-	    JpGraphError::RaiseL(20003);//("Scatterplot must have equal number of X and Y points.");
-	$this->Plot($datay,$datax);
-	$this->mark = new PlotMark();
-	$this->mark->SetType(MARK_SQUARE);
-	$this->mark->SetColor($this->color);
-	$this->value->SetAlign('center','center');
-	$this->value->SetMargin(0);
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function SetImpuls($f=true) {
-	$this->impuls = $f;
-    }   
-
-    // Combine the scatter plot points with a line
-    function SetLinkPoints($aFlag=true,$aColor="black",$aWeight=1) {
-	$this->linkpoints=$aFlag;
-	$this->linkpointcolor=$aColor;
-	$this->linkpointweight=$aWeight;
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) {
-
-	$ymin=$yscale->scale_abs[0];
-	if( $yscale->scale[0] < 0 )
-	    $yzero=$yscale->Translate(0);
-	else
-	    $yzero=$yscale->scale_abs[0];
-	    
-	$this->csimareas = '';
-	for( $i=0; $i<$this->numpoints; ++$i ) {
-
-	    // Skip null values
-	    if( $this->coords[0][$i]==="" || $this->coords[0][$i]==='-' || $this->coords[0][$i]==='x')
-		continue;
-
-	    if( isset($this->coords[1]) )
-		$xt = $xscale->Translate($this->coords[1][$i]);
-	    else
-		$xt = $xscale->Translate($i);
-	    $yt = $yscale->Translate($this->coords[0][$i]);	
-
-
-	    if( $this->linkpoints && isset($yt_old) ) {
-		$img->SetColor($this->linkpointcolor);
-		$img->SetLineWeight($this->linkpointweight);
-		$img->Line($xt_old,$yt_old,$xt,$yt);
-	    }
-
-	    if( $this->impuls ) {
-		$img->SetColor($this->color);
-		$img->SetLineWeight($this->weight);
-		$img->Line($xt,$yzero,$xt,$yt);
-	    }
-	
-	    if( !empty($this->csimtargets[$i]) ) {
-	        $this->mark->SetCSIMTarget($this->csimtargets[$i]);
-	        $this->mark->SetCSIMAlt($this->csimalts[$i]);
-	    }
-	    
-	    if( isset($this->coords[1]) ) {
-		$this->mark->SetCSIMAltVal($this->coords[0][$i],$this->coords[1][$i]);
-	    }
-	    else {
-		$this->mark->SetCSIMAltVal($this->coords[0][$i],$i);
-	    }
-
-	    $this->mark->Stroke($img,$xt,$yt);
-	
-	    $this->csimareas .= $this->mark->GetCSIMAreas();
-	    $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt);
-
-	    $xt_old = $xt;
-	    $yt_old = $yt;
-	}
-    }
-	
-    // Framework function
-    function Legend(&$aGraph) {
-	if( $this->legend != "" ) {
-	    $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0,
-				 $this->legendcsimtarget,$this->legendcsimalt);
-	}
-    }	
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_stock.php b/nightly-test-server/jpgraph/jpgraph_stock.php
deleted file mode 100644
index 57084d2..0000000
--- a/nightly-test-server/jpgraph/jpgraph_stock.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_STOCK.PHP
-// Description:	Stock plot extension for JpGraph
-// Created: 	2003-01-27
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS StockPlot
-//===================================================
-class StockPlot extends Plot {
-    var $iTupleSize = 4;
-    var $iWidth=9;
-    var $iEndLines=1;
-    var $iStockColor1='white',$iStockColor2='darkred',$iStockColor3='darkred';
-//---------------
-// CONSTRUCTOR
-    function StockPlot(&$datay,$datax=false) {
-	if( count($datay) % $this->iTupleSize ) {
-	    JpGraphError::RaiseL(21001,$this->iTupleSize);//('Data values for Stock charts must contain an even multiple of '.$this->iTupleSize.' data points.');
-	}
-	$this->Plot($datay,$datax);
-	$this->numpoints /= $this->iTupleSize;
-    }
-//---------------
-// PUBLIC METHODS
-	
-    function SetColor($aColor,$aColor1='white',$aColor2='darkred',$aColor3='darkred') {
-	$this->color = $aColor;
-	$this->iStockColor1 = $aColor1;
-	$this->iStockColor2 = $aColor2;
-	$this->iStockColor3 = $aColor3;
-    }
-
-    function SetWidth($aWidth) {
-	// Make sure it's odd
-	$this->iWidth = 2*floor($aWidth/2)+1;
-    }
-
-    function HideEndLines($aHide=true) {
-	$this->iEndLines = !$aHide;
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	if( $this->center ) {
-	    $a=0.5; $b=0.5;
-	    $this->numpoints++;
-	} else {
-	    $a=0; $b=0;
-	}
-	$graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	$graph->SetTextScaleOff($b);						
-    }
-	
-    // Stroke stock plot
-    function Stroke(&$img,$xscale,$yscale) {
-	$n=$this->numpoints;
-	if( $this->center ) $n--;
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$n )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-
-	if( $exist_x )
-	    $xs=$this->coords[1][0];
-	else
-	    $xs=0;
-		
-	$ts = $this->iTupleSize;
-	$this->csimareas = '';
-	for( $i=0; $i<$n; ++$i) {
-
-	    //If value is NULL, then don't draw a bar at all
- 	    if ($this->coords[0][$i] === null) continue;
-
-	    if( $exist_x ) $x=$this->coords[1][$i];
-	    else $x=$i;
-	    $xt = $xscale->Translate($x);
-	    
-	    $neg = $this->coords[0][$i*$ts] > $this->coords[0][$i*$ts+1] ;
-	    $yopen  = $yscale->Translate($this->coords[0][$i*$ts]);
-	    $yclose = $yscale->Translate($this->coords[0][$i*$ts+1]);
-	    $ymin   = $yscale->Translate($this->coords[0][$i*$ts+2]);
-	    $ymax   = $yscale->Translate($this->coords[0][$i*$ts+3]);
-
-	    $dx = floor($this->iWidth/2);
-	    $xl = $xt - $dx;
-	    $xr = $xt + $dx;
-
-	    if( $neg ) 
-		$img->SetColor($this->iStockColor3);
-	    else
-		$img->SetColor($this->iStockColor1);
-	    $img->FilledRectangle($xl,$yopen,$xr,$yclose);
-	    $img->SetLineWeight($this->weight);
-	    if( $neg ) 
-		$img->SetColor($this->iStockColor2);
-	    else
-		$img->SetColor($this->color);
-	
-	    $img->Rectangle($xl,$yopen,$xr,$yclose);
-
-	    if( $yopen < $yclose ) {
-		$ytop = $yopen ;
-		$ybottom = $yclose ;
-	    }
-	    else {
-		$ytop = $yclose ;
-		$ybottom = $yopen ;
-	    }
-	    $img->SetColor($this->color);
-	    $img->Line($xt,$ytop,$xt,$ymax);
-	    $img->Line($xt,$ybottom,$xt,$ymin);
-
-	    if( $this->iEndLines ) {
-		$img->Line($xl,$ymax,$xr,$ymax);
-		$img->Line($xl,$ymin,$xr,$ymin);
-	    }
-
-	    // A chance for subclasses to add things to the bar
-	    // for data point i
-	    $this->ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg);
-
-	    // Setup image maps
-	    if( !empty($this->csimtargets[$i]) ) {
-		$this->csimareas.= '<area shape="rect" coords="'.
-		    round($xl).','.round($ytop).','.
-		    round($xr).','.round($ybottom).'" ';   
-		$this->csimareas .= ' href="'.$this->csimtargets[$i].'"';
-		if( !empty($this->csimalts[$i]) ) {
-		    $sval=$this->csimalts[$i];
-		    $this->csimareas .= " title=\"$sval\" ";
-		}
-		$this->csimareas.= " alt=\"$sval\" />\n";
-	    }
-	}			
-	return true;
-    }
-
-    // A hook for subclasses to modify the plot
-    function ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg) {}
-
-} // Class
-
-//===================================================
-// CLASS BoxPlot
-//===================================================
-class BoxPlot extends StockPlot {
-    var $iPColor='black',$iNColor='white';
-    function BoxPlot($datay,$datax=false) {
-	$this->iTupleSize=5;
-	parent::StockPlot($datay,$datax);
-    }
-
-    function SetMedianColor($aPos,$aNeg) {
-	$this->iPColor = $aPos;
-	$this->iNColor = $aNeg;
-    }
-
-    function ModBox(&$img,$xscale,$yscale,$i,$xl,$xr,$neg) {
-	if( $neg ) 
-	    $img->SetColor($this->iNColor);
-	else
-	    $img->SetColor($this->iPColor);
-	
-	$y = $yscale->Translate($this->coords[0][$i*5+4]);
-	$img->Line($xl,$y,$xr,$y);
-    }
-}
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_utils.inc b/nightly-test-server/jpgraph/jpgraph_utils.inc
deleted file mode 100644
index 60ef1a1..0000000
--- a/nightly-test-server/jpgraph/jpgraph_utils.inc
+++ /dev/null
@@ -1,520 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_UTILS.INC
-// Description: Collection of non-essential "nice to have" utilities 
-// Created: 	2005-11-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS FuncGenerator
-// Description: Utility class to help generate data for function plots. 
-// The class supports both parametric and regular functions.
-//===================================================
-class FuncGenerator {
-    var $iFunc='',$iXFunc='',$iMin,$iMax,$iStepSize;
-	
-    function FuncGenerator($aFunc,$aXFunc='') {
-	$this->iFunc = $aFunc;
-	$this->iXFunc = $aXFunc;
-    }
-	
-    function E($aXMin,$aXMax,$aSteps=50) {
-	$this->iMin = $aXMin;
-	$this->iMax = $aXMax;
-	$this->iStepSize = ($aXMax-$aXMin)/$aSteps;
-
-	if( $this->iXFunc != '' )
-	    $t = 'for($i='.$aXMin.'; $i<='.$aXMax.'; $i += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]='.$this->iXFunc.';}';
-	elseif( $this->iFunc != '' )
-	    $t = 'for($x='.$aXMin.'; $x<='.$aXMax.'; $x += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]=$x;} $x='.$aXMax.';$ya[]='.$this->iFunc.';$xa[]=$x;';
-	else
-	    JpGraphError::RaiseL(24001);//('FuncGenerator : No function specified. ');
-			
-	@eval($t);
-		
-	// If there is an error in the function specifcation this is the only
-	// way we can discover that.
-	if( empty($xa) || empty($ya) )
-	    JpGraphError::RaiseL(24002);//('FuncGenerator : Syntax error in function specification ');
-				
-	return array($xa,$ya);
-    }
-}
-
-//=============================================================================
-// CLASS SymChar
-// Description: Code values for some commonly used characters that 
-//              normally isn't available directly on the keyboard, for example
-//              mathematical and greek symbols.
-//=============================================================================
-class  SymChar {
-    function Get($aSymb,$aCapital=FALSE) {
-        static $iSymbols = array(
-    /* Greek */
-	array('alpha','03B1','0391'),
-	array('beta','03B2','0392'),
-	array('gamma','03B3','0393'),
-	array('delta','03B4','0394'),
-	array('epsilon','03B5','0395'),
-	array('zeta','03B6','0396'),
-	array('ny','03B7','0397'),
-	array('eta','03B8','0398'),
-	array('theta','03B8','0398'),
-	array('iota','03B9','0399'),
-	array('kappa','03BA','039A'),
-	array('lambda','03BB','039B'),
-	array('mu','03BC','039C'),
-	array('nu','03BD','039D'),
-	array('xi','03BE','039E'),
-	array('omicron','03BF','039F'),
-	array('pi','03C0','03A0'),
-	array('rho','03C1','03A1'),
-	array('sigma','03C3','03A3'),
-	array('tau','03C4','03A4'),
-	array('upsilon','03C5','03A5'),
-	array('phi','03C6','03A6'),
-	array('chi','03C7','03A7'),
-	array('psi','03C8','03A8'),
-	array('omega','03C9','03A9'),
-    /* Money */
-	array('euro','20AC'),
-	array('yen','00A5'),
-	array('pound','20A4'),
-    /* Math */
-	array('approx','2248'),
-	array('neq','2260'),
-	array('not','2310'),
-	array('def','2261'),
-	array('inf','221E'),
-	array('sqrt','221A'),
-	array('int','222B'),
-    /* Misc */
-	array('copy','00A9'),
-	array('para','00A7'));
-
-	$n = count($iSymbols);
-	$i=0;
-	$found = false;
-	$aSymb = strtolower($aSymb);
-	while( $i < $n && !$found ) {
-	    $found = $aSymb === $iSymbols[$i++][0];
-	}
-	if( $found ) {
-	    $ca = $iSymbols[--$i];
-	    if( $aCapital && count($ca)==3 ) 
-		$s = $ca[2];
-	    else
-		$s = $ca[1];
-	    return sprintf('&#%04d;',hexdec($s));
-	}
-	else
-	    return '';
-    }
-}
-
-
-//=============================================================================
-// CLASS DateScaleUtils
-// Description: Help to create a manual date scale
-//=============================================================================
-DEFINE('DSUTILS_MONTH',1); // Major and minor ticks on a monthly basis
-DEFINE('DSUTILS_MONTH1',1); // Major and minor ticks on a monthly basis
-DEFINE('DSUTILS_MONTH2',2); // Major ticks on a bi-monthly basis
-DEFINE('DSUTILS_MONTH3',3); // Major icks on a tri-monthly basis
-DEFINE('DSUTILS_MONTH6',4); // Major on a six-monthly basis
-DEFINE('DSUTILS_WEEK1',5); // Major ticks on a weekly basis
-DEFINE('DSUTILS_WEEK2',6); // Major ticks on a bi-weekly basis
-DEFINE('DSUTILS_WEEK4',7); // Major ticks on a quod-weekly basis
-DEFINE('DSUTILS_DAY1',8); // Major ticks on a daily basis
-DEFINE('DSUTILS_DAY2',9); // Major ticks on a bi-daily basis
-DEFINE('DSUTILS_DAY4',10); // Major ticks on a qoud-daily basis
-DEFINE('DSUTILS_YEAR1',11); // Major ticks on a yearly basis
-DEFINE('DSUTILS_YEAR2',12); // Major ticks on a bi-yearly basis
-DEFINE('DSUTILS_YEAR5',13); // Major ticks on a five-yearly basis
-
-
-class DateScaleUtils {
-    var $starthour,$startmonth, $startday, $startyear;
-    var $endmonth, $endyear, $endday;
-    var $tickPositions=array(),$minTickPositions=array();
-    var $iUseWeeks = true;
-
-    function UseWeekFormat($aFlg) {
-	$this->iUseWeeks = $aFlg;
-    }
-
-    function doYearly($aType,$aMinor=false) {
-	$i=0; $j=0;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-
-	if( $this->startday == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-	}
-	++$m;
-
-	switch( $aType ) {
-	    case DSUTILS_YEAR1:
-		for($y=$this->startyear; $y <= $this->endyear; ++$y ) {
-		    if( $aMinor ) {
-			while( $m <= 12 ) {
-			    if( !($y == $this->endyear && $m > $this->endmonth) ) {
-				$this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			    }
-			    ++$m;
-			}
-			$m=1;
-		    }
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		}
-		break;
-	    case DSUTILS_YEAR2:
-		$y=$this->startyear; 
-		while( $y <= $this->endyear ) {
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		    for($k=0; $k < 1; ++$k ) { 
-			++$y;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = mktime(0,0,0,1,1,$y);
-			}
-		    }
-		    ++$y;
-		}
-		break;
-	    case DSUTILS_YEAR5:
-		$y=$this->startyear; 
-		while( $y <= $this->endyear ) {
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		    for($k=0; $k < 4; ++$k ) { 
-			++$y;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = mktime(0,0,0,1,1,$y);
-			}
-		    }
-		    ++$y;
-		}
-		break;
-	}
-    }
-
-    function doDaily($aType,$aMinor=false) {
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$d = $this->startday;
-	$h = $this->starthour;
-	$i=0;$j=0;
-
-	if( $h == 0 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,$d,$y);
-	    $t = mktime(0,0,0,$m,$d,$y);	    
-	}
-	else {
-	    $t = mktime(0,0,0,$m,$d,$y);	    
-	}
-	switch($aType) {
-	    case DSUTILS_DAY1:
-		while( $t <= $this->iMax ) {
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	    case DSUTILS_DAY2:
-		while( $t <= $this->iMax ) {
-		    $t += 3600*24;
-		    if( $aMinor ) {
-			$this->minTickPositions[$j++] = $t;
-		    }
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	    case DSUTILS_DAY4:
-		while( $t <= $this->iMax ) {
-		    for($k=0; $k < 3; ++$k ) {
-			$t += 3600*24;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = $t;
-			}
-		    }
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	}
-    }
-
-    function doWeekly($aType,$aMinor=false) {
-	$hpd = 3600*24;
-	$hpw = 3600*24*7;
-	// Find out week number of min date
-	$thursday = $this->iMin + $hpd * (3 - (date('w', $this->iMin) + 6) % 7);
-	$week = 1 + (date('z', $thursday) - (11 - date('w', mktime(0, 0, 0, 1, 1, date('Y', $thursday)))) % 7) / 7;
-	$daynumber = date('w',$this->iMin);
-	if( $daynumber == 0 ) $daynumber = 7;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$d = $this->startday;
-	$i=0;$j=0;
-	// The assumption is that the weeks start on Monday. If the first day
-	// is later in the week then the first week tick has to be on the following
-	// week.
-	if( $daynumber == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,$d,$y);
-	    $t = mktime(0,0,0,$m,$d,$y) + $hpw;
-	}
-	else {
-	    $t = mktime(0,0,0,$m,$d,$y) + $hpd*(8-$daynumber);
-	}
-
-	switch($aType) {
-	    case DSUTILS_WEEK1:
-		$cnt=0;
-		break;
-	    case DSUTILS_WEEK2:
-		$cnt=1;
-		break;
-	    case DSUTILS_WEEK4:
-		$cnt=3;
-		break;
-	}
-	while( $t <= $this->iMax ) {
-	    $this->tickPositions[$i++] = $t;
-	    for($k=0; $k < $cnt; ++$k ) {
-		$t += $hpw;
-		if( $aMinor ) {
-		    $this->minTickPositions[$j++] = $t;
-		}
-	    }
-	    $t += $hpw;
-	}
-    }
-
-    function doMonthly($aType,$aMinor=false) {
-	$monthcount=0;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$i=0; $j=0;
-
-	// Skip the first month label if it is before the startdate
-	if( $this->startday == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-	    $monthcount=1;
-	}
-	if( $aType == 1 ) {
-	    if( $this->startday < 15 ) {
-		$this->minTickPositions[$j++] = mktime(0,0,0,$m,15,$y);
-	    }
-	}
-	++$m;
-
-	// Loop through all the years included in the scale
-	for($y=$this->startyear; $y <= $this->endyear; ++$y ) {
-	    // Loop through all the months. There are three cases to consider:
-	    // 1. We are in the first year and must start with the startmonth
-	    // 2. We are in the end year and we must stop at last month of the scale
-	    // 3. A year in between where we run through all the 12 months
-	    $stopmonth = $y == $this->endyear ? $this->endmonth : 12;
-	    while( $m <= $stopmonth ) {
-		switch( $aType ) {
-		    case DSUTILS_MONTH1: 
-			// Set minor tick at the middle of the month
-			if( $aMinor ) {
-			    if( $m <= $stopmonth ) {
-				if( !($y==$this->endyear && $m==$stopmonth && $this->endday < 15) ) 
-				$this->minTickPositions[$j++] = mktime(0,0,0,$m,15,$y);
-			    }
-			}
-			// Major at month 
-			// Get timestamp of first hour of first day in each month
-			$this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-
-			break;
-		    case DSUTILS_MONTH2: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-
-			// Major at every second month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 2 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		    case DSUTILS_MONTH3: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-			    // Major at every third month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 3 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		    case DSUTILS_MONTH6: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-			// Major at every third month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 6 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		}
-		++$m;
-		++$monthcount;
-	    }
-	    $m=1;
-	}
-
-	// For the case where all dates are within the same month
-	// we want to make sure we have at least two ticks on the scale
-	// since the scale want work properly otherwise
-	if($this->startmonth == $this->endmonth && $this->startyear == $this->endyear && $aType==1 ) {
-	    $this->tickPositions[$i++] = mktime(0 ,0 ,0, $this->startmonth + 1, 1, $this->startyear);
-	} 
-
-	return array($this->tickPositions,$this->minTickPositions);
-    }
-
-    function GetTicks($aData,$aType=1,$aMinor=false,$aEndPoints=false) {
-	$n = count($aData);
-	return $this->GetTicksFromMinMax($aData[0],$aData[$n-1],$aType,$aMinor,$aEndPoints);
-    }
-
-    function GetAutoTicks($aMin,$aMax,$aMaxTicks=10,$aMinor=false) {
-	$diff = $aMax - $aMin;
-	$spd = 3600*24;
-	$spw = $spd*7;
-	$spm = $spd*30;
-	$spy = $spd*352;
-
-	if( $this->iUseWeeks )
-	    $w = 'W';
-	else
-	    $w = 'd M';
-
-	// Decision table for suitable scales
-	// First value: Main decision point
-	// Second value: Array of formatting depending on divisor for wanted max number of ticks. <divisor><formatting><format-string>,..
-	$tt = array( 
-	    array($spw, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',-1,DSUTILS_DAY4,'d M')),
-	    array($spm, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',
-			      7,DSUTILS_WEEK1,$w,-1,DSUTILS_WEEK2,$w)),
-	    array($spy, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',
-			      7,DSUTILS_WEEK1,$w,14,DSUTILS_WEEK2,$w,
-			      30,DSUTILS_MONTH1,'M',60,DSUTILS_MONTH2,'M',-1,DSUTILS_MONTH3,'M')),
-	    array(-1, array(30,DSUTILS_MONTH1,'M-Y',60,DSUTILS_MONTH2,'M-Y',90,DSUTILS_MONTH3,'M-Y',
-			    180,DSUTILS_MONTH6,'M-Y',352,DSUTILS_YEAR1,'Y',704,DSUTILS_YEAR2,'Y',-1,DSUTILS_YEAR5,'Y')));
-
-	$ntt = count($tt);
-	$nd = floor($diff/$spd);
-	for($i=0; $i < $ntt; ++$i ) {
-	    if( $diff <= $tt[$i][0] || $i==$ntt-1) {
-		$t = $tt[$i][1];
-		$n = count($t)/3;
-		for( $j=0; $j < $n; ++$j ) {
-		    if( $nd/$t[3*$j] <= $aMaxTicks || $j==$n-1) {
-			$type = $t[3*$j+1];
-			$fs = $t[3*$j+2];
-			list($tickPositions,$minTickPositions) = $this->GetTicksFromMinMax($aMin,$aMax,$type,$aMinor);
-			return array($fs,$tickPositions,$minTickPositions,$type);
-		    }
-		}
-	    }
-	}
-    }
-
-    function GetTicksFromMinMax($aMin,$aMax,$aType,$aMinor=false,$aEndPoints=false) {
-	$this->starthour = date('G',$aMin);
-	$this->startmonth = date('n',$aMin);
-	$this->startday = date('j',$aMin);
-	$this->startyear = date('Y',$aMin);
-	$this->endmonth = date('n',$aMax);
-	$this->endyear = date('Y',$aMax);
-	$this->endday = date('j',$aMax);
-	$this->iMin = $aMin;
-	$this->iMax = $aMax;
-
-	if( $aType <= DSUTILS_MONTH6 ) {
-	    $this->doMonthly($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_WEEK4 ) {
-	    $this->doWeekly($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_DAY4 ) {
-	    $this->doDaily($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_YEAR5 ) {
-	    $this->doYearly($aType,$aMinor);
-	}
-	else {
-	    JpGraphError::RaiseL(24003);
-	}
-	// put a label at the very left data pos
-	if( $aEndPoints ) {
-	    $tickPositions[$i++] = $aData[0];
-	}
-
-	// put a label at the very right data pos
-	if( $aEndPoints ) {
-	    $tickPositions[$i] = $aData[$n-1];
-	}
-
-	return array($this->tickPositions,$this->minTickPositions);
-    }
-
-}
-
-//=============================================================================
-// Class ReadFileData
-//=============================================================================
-Class ReadFileData {
-
-    //----------------------------------------------------------------------------
-    // Desciption:
-    // Read numeric data from a file. 
-    // Each value should be separated by either a new line or by a specified 
-    // separator character (default is ',').
-    // Before returning the data each value is converted to a proper float 
-    // value. The routine is robust in the sense that non numeric data in the 
-    // file will be discarded.
-    //
-    // Returns: 
-    // The number of data values read on success, FALSE on failure
-    //----------------------------------------------------------------------------
-    function FromCSV($aFile,&$aData,$aSepChar=',',$aMaxLineLength=1024) {
-	$rh = fopen($aFile,'r');
-	if( $rh === false )
-	    return false;
-	$tmp = array();
-	$lineofdata = fgetcsv($rh, 1000, ',');
-	while ( $lineofdata !== FALSE) {
-	    $tmp = array_merge($tmp,$lineofdata);
-	    $lineofdata = fgetcsv($rh, $aMaxLineLength, $aSepChar);
-	}
-	fclose($rh);
-
-	// Now make sure that all data is numeric. By default
-	// all data is read as strings
-	$n = count($tmp);
-	$aData = array();
-	$cnt=0;
-	for($i=0; $i < $n; ++$i) {
-	    if( $tmp[$i] !== "" ) {
-		$aData[$cnt++] = floatval($tmp[$i]);
-	    }
-	}
-	return $cnt;
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/lang/de.inc.php b/nightly-test-server/jpgraph/lang/de.inc.php
deleted file mode 100644
index 7f53a3a..0000000
--- a/nightly-test-server/jpgraph/lang/de.inc.php
+++ /dev/null
@@ -1,498 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	DE.INC.PHP
-// Description: German language file for error messages
-// Created: 	2006-03-06
-// Author:	Timo Leopold (timo@leopold-hh.de)
-// Ver:		$Id$
-//
-// Copyright (c)
-//========================================================================
-*/
-
-// Notiz: Das Format fuer jede Fehlermeldung ist array(<Fehlermeldung>,<Anzahl der Argumente>)
-$_jpg_messages = array(
-
-/*
-** Headers wurden bereits gesendet - Fehler. Dies wird als HTML formatiert, weil es direkt als text zurueckgesendet wird
-*/
-10  => array('<table border="1"><tr><td style="color:darkred;font-size:1.2em;"><b>JpGraph Fehler:</b>
-HTTP header wurden bereits gesendet.<br>Fehler in der Datei <b>%s</b> in der Zeile <b>%d</b>.</td></tr><tr><td><b>Erklärung:</b><br>HTTP header wurden bereits zum Browser gesendet, wobei die Daten als Text gekennzeichnet wurden, bevor die Bibliothek die Chance hatte, seinen Bild-HTTP-Header zum Browser zu schicken. Dies verhindert, dass die Bibliothek Bilddaten zum Browser schicken kann (weil sie vom Browser als Text interpretiert würden und daher nur Mist dargestellt würde).<p>Wahrscheinlich steht Text im Skript bevor <i>Graph::Stroke()</i> aufgerufen wird. Wenn dieser Text zum Browser gesendet wird, nimmt dieser an, dass die gesamten Daten aus Text bestehen. Such nach irgendwelchem Text, auch nach Leerzeichen und Zeilenumbrüchen, die eventuell bereits zum Browser gesendet wurden. <p>Zum Beispiel ist ein oft auftretender Fehler, eine Leerzeile am Anfang der Datei oder vor <i>Graph::Stroke()</i> zu lassen."<b>&lt;?php</b>".</td></tr></table>',2),
-
-/*
-** Setup Fehler
-*/
-11 => array('Es wurde kein Pfad für CACHE_DIR angegeben. Bitte gib einen Pfad CACHE_DIR in der Datei jpg-config.inc an.',0),
-12 => array('Es wurde kein Pfad für TTF_DIR angegeben und der Pfad kann nicht automatisch ermittelt werden. Bitte gib den Pfad in der Datei jpg-config.inc an.',0),
-13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2),
-
-/*
-**  jpgraph_bar
-*/
-
-2001 => array('Die Anzahl der Farben ist nicht gleich der Anzahl der Vorlagen in BarPlot::SetPattern().',0),
-2002 => array('Unbekannte Vorlage im Aufruf von BarPlot::SetPattern().',0),
-2003 => array('Anzahl der X- und Y-Koordinaten sind nicht identisch. Anzahl der X-Koordinaten: %d; Anzahl der Y-Koordinaten: %d.',2),
-2004 => array('Alle Werte für ein Balkendiagramm (barplot) müssen numerisch sein. Du hast den Wert nr [%d] == %s angegeben.',2),
-2005 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0),
-2006 => array('Unbekannte Position für die Werte der Balken: %s.',1),
-2007 => array('Kann GroupBarPlot nicht aus einem leeren Vektor erzeugen.',0),
-2008 => array('GroupBarPlot Element nbr %d wurde nicht definiert oder ist leer.',0),
-2009 => array('Eins der Objekte, das an GroupBar weitergegeben wurde ist kein Balkendiagramm (BarPlot). Versichere Dich, dass Du den GroupBarPlot aus einem Vektor von Balkendiagrammen (barplot) oder AccBarPlot-Objekten erzeugst. (Class = %s)',1),
-2010 => array('Kann AccBarPlot nicht aus einem leeren Vektor erzeugen.',0),
-2011 => array('AccBarPlot-Element nbr %d wurde nicht definiert oder ist leer.',1),
-2012 => array('Eins der Objekte, das an AccBar weitergegeben wurde ist kein Balkendiagramm (barplot). Versichere Dich, dass Du den AccBar-Plot aus einem Vektor von Balkendiagrammen (barplot) erzeugst. (Class=%s)',1),
-2013 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0),
-2014 => array('Die Anzahl der Datenpunkte jeder Datenreihe in AccBarPlot muss gleich sein.',0),
-
-
-/*
-**  jpgraph_date
-*/
-
-3001 => array('Es ist nur möglich, entweder SetDateAlign() oder SetTimeAlign() zu benutzen, nicht beides!',0),
-
-/*
-**  jpgraph_error
-*/
-
-4002 => array('Fehler bei den Eingabedaten von LineErrorPlot. Die Anzahl der Datenpunkte mus ein Mehrfaches von drei sein!',0),
-
-/*
-**  jpgraph_flags
-*/
-
-5001 => array('Unbekannte Flaggen-Größe (%d).',1),
-5002 => array('Der Flaggen-Index %s existiert nicht.',1),
-5003 => array('Es wurde eine ungültige Ordnungszahl (%d) für den Flaggen-Index angegeben.',1),
-5004 => array('Der Landesname %s hat kein korrespondierendes Flaggenbild. Die Flagge mag existieren, abr eventuell unter einem anderen Namen, z.B. versuche "united states" statt "usa".',1),
-
-
-/*
-**  jpgraph_gantt
-*/
-
-6001 => array('Interner Fehler. Die Höhe für ActivityTitles ist < 0.',0),
-6002 => array('Es dürfen keine negativen Werte für die Gantt-Diagramm-Dimensionen angegeben werden. Verwende 0, wenn die Dimensionen automatisch ermittelt werden sollen.',0),
-6003 => array('Ungültiges Format für den Bedingungs-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei index 0 starten und Vektoren in der Form (Row,Constrain-To,Constrain-Type) enthalten.',1),
-6004 => array('Ungültiges Format für den Fortschritts-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei Index 0 starten und Vektoren in der Form (Row,Progress) enthalten.',1),
-6005 => array('SetScale() ist nicht sinnvoll bei Gantt-Diagrammen.',0),
-6006 => array('Das Gantt-Diagramm kann nicht automatisch skaliert werden. Es existieren keine Aktivitäten mit Termin. [GetBarMinMax() start >= n]',0),
-6007 => array('Plausibiltätsprüfung für die automatische Gantt-Diagramm-Größe schlug fehl. Entweder die Breite (=%d) oder die Höhe (=%d) ist größer als MAX_GANTTIMG_SIZE. Dies kann möglicherweise durch einen falschen Wert bei einer Aktivität hervorgerufen worden sein.',2),
-6008 => array('Du hast eine Bedingung angegeben von Reihe=%d bis Reihe=%d, die keine Aktivität hat.',2),
-6009 => array('Unbekannter Bedingungstyp von Reihe=%d bis Reihe=%d',2),
-6010 => array('Ungültiger Icon-Index für das eingebaute Gantt-Icon [%d]',1),
-6011 => array('Argument für IconImage muss entweder ein String oder ein Integer sein.',0),
-6012 => array('Unbekannter Typ bei der Gantt-Objekt-Title-Definition.',0),
-6015 => array('Ungültige vertikale Position %d',1),
-6016 => array('Der eingegebene Datums-String (%s) für eine Gantt-Aktivität kann nicht interpretiert werden. Versichere Dich, dass es ein gültiger Datumsstring ist, z.B. 2005-04-23 13:30',1),
-6017 => array('Unbekannter Datumstyp in GanttScale (%s).',1),
-6018 => array('Intervall für Minuten muss ein gerader Teiler einer Stunde sein, z.B. 1,5,10,12,15,20,30, etc. Du hast ein Intervall von %d Minuten angegeben.',1),
-6019 => array('Die vorhandene Breite (%d) für die Minuten ist zu klein, um angezeigt zu werden. Bitte benutze die automatische Größenermittlung oder vergrößere die Breite des Diagramms.',1),
-6020 => array('Das Intervall für die Stunden muss ein gerader Teiler eines Tages sein, z.B. 0:30, 1:00, 1:30, 4:00, etc. Du hast ein Intervall von %d eingegeben.',1),
-6021 => array('Unbekanntes Format für die Woche.',0),
-6022 => array('Die Gantt-Skala wurde nicht eingegeben.',0),
-6023 => array('Wenn Du sowohl Stunden als auch Minuten anzeigen lassen willst, muss das Stunden-Interval gleich 1 sein (anderenfalls ist es nicht sinnvoll, Minuten anzeigen zu lassen).',0),
-6024 => array('Das CSIM-Ziel muss als String angegeben werden. Der Start des Ziels ist: %d',1),
-6025 => array('Der CSIM-Alt-Text muss als String angegeben werden. Der Beginn des Alt-Textes ist: %d',1),
-6027 => array('Der Fortschrittswert muss im Bereich [0, 1] liegen.',0),
-6028 => array('Die eingegebene Höhe (%d) für GanttBar ist nicht im zulässigen Bereich.',1),
-6029 => array('Der Offset für die vertikale Linie muss im Bereich [0,1] sein.',0),
-6030 => array('Unbekannte Pfeilrichtung für eine Verbindung.',0),
-6031 => array('Unbekannter Pfeiltyp für eine Verbindung.',0),
-6032 => array('Interner Fehler: Unbekannter Pfadtyp (=%d) für eine Verbindung.',1),
-
-/*
-**  jpgraph_gradient
-*/
-
-7001 => array('Unbekannter Gradiententyp (=%d).',1),
-
-/*
-**  jpgraph_iconplot
-*/
-
-8001 => array('Der Mix-Wert für das Icon muss zwischen 0 und 100 sein.',0),
-8002 => array('Die Ankerposition für Icons muss entweder "top", "bottom", "left", "right" oder "center" sein.',0),
-8003 => array('Es ist nicht möglich, gleichzeitig ein Bild und eine Landesflagge für dasselbe Icon zu definieren',0),
-8004 => array('Wenn Du Landesflaggen benutzen willst, musst Du die Datei "jpgraph_flags.php" hinzufügen (per include).',0),
-
-/*
-**  jpgraph_imgtrans
-*/
-
-9001 => array('Der Wert für die Bildtransformation ist außerhalb des zulässigen Bereichs. Der verschwindende Punkt am Horizont muss als Wert zwischen 0 und 1 angegeben werden.',0),
-
-/*
-**  jpgraph_lineplot
-*/
-
-10001 => array('Die Methode LinePlot::SetFilled() sollte nicht mehr benutzt werden. Benutze lieber SetFillColor()',0),
-10002 => array('Der Plot ist zu kompliziert für FastLineStroke. Benutze lieber den StandardStroke()',0),
-
-/*
-**  jpgraph_log
-*/
-
-11001 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-11002 => array('Negative Werte können nicht für logarithmische Achsen verwendet werden.',0),
-11003 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-11004 => array('Skalierungsfehler für die logarithmische Achse. Es gibt ein Problem mit den Daten der Achse. Der größte Wert muss größer sein als Null. Es ist mathematisch nicht möglich, einen Wert gleich Null in der Skala zu haben.',0),
-11005 => array('Das Tick-Intervall für die logarithmische Achse ist nicht definiert. Lösche jeden Aufruf von SetTextLabelStart() oder SetTextTickInterval() bei der logarithmischen Achse.',0),
-
-/*
-**  jpgraph_mgraph
-*/
-
-12001 => array("Du benutzt GD 2.x und versuchst ein Nicht-Truecolor-Bild als Hintergrundbild zu benutzen. Um Hintergrundbilder mit GD 2.x zu benutzen, ist es notwendig Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Truetype-Schriften sehr schlecht, wenn man Truetype-Schriften mit Truecolor-Bildern verwendet.",0),
-12002 => array('Ungültiger Dateiname für MGraph::SetBackgroundImage() : %s. Die Datei muss eine gültige Dateierweiterung haben (jpg,gif,png), wenn die automatische Typerkennung verwendet wird.',1),
-12003 => array('Unbekannte Dateierweiterung (%s) in MGraph::SetBackgroundImage() für Dateiname: %s',2),
-12004 => array('Das Bildformat des Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1),
-12005 => array('Das Hintergrundbild kann nicht gelesen werden: %s',1),
-12006 => array('Es wurden ungültige Größen für Breite oder Höhe beim Erstellen des Bildes angegeben, (Breite=%d, Höhe=%d)',2),
-12007 => array('Das Argument für MGraph::Add() ist nicht gültig für GD.',0),
-12008 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Bildformate zu unterstützen.',0),
-12009 => array('Deine PHP-Installation unterstützt das gewählte Bildformat nicht: %s',1),
-12010 => array('Es konnte kein Bild als Datei %s erzeugt werden. Überprüfe, ob Du die entsprechenden Schreibrechte im aktuellen Verzeichnis hast.',1),
-12011 => array('Es konnte kein Truecolor-Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0),
-12012 => array('Es konnte kein Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0),
-
-/*
-**  jpgraph_pie3d
-*/
-
-14001 => array('Pie3D::ShowBorder(). Missbilligte Funktion. Benutze Pie3D::SetEdge(), um die Ecken der Tortenstücke zu kontrollieren.',0),
-14002 => array('PiePlot3D::SetAngle() 3D-Torten-Projektionswinkel muss zwischen 5 und 85 Grad sein.',0),
-14003 => array('Interne Festlegung schlug fehl. Pie3D::Pie3DSlice',0),
-14004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0),
-14005 => array('Pie3D Interner Fehler: Versuch, zweimal zu umhüllen bei der Suche nach dem Startindex.',0,),
-14006 => array('Pie3D Interner Fehler: Z-Sortier-Algorithmus für 3D-Tortendiagramme funktioniert nicht einwandfrei (2). Versuch, zweimal zu umhüllen beim Erstellen des Bildes.',0),
-14007 => array('Die Breite für das 3D-Tortendiagramm ist 0. Gib eine Breite > 0 an.',0),
-
-/*
-**  jpgraph_pie
-*/
-
-15001 => array('PiePLot::SetTheme() Unbekannter Stil: %s',1),
-15002 => array('Argument für PiePlot::ExplodeSlice() muss ein Integer-Wert sein',0),
-15003 => array('Argument für PiePlot::Explode() muss ein Vektor mit Integer-Werten sein.',0),
-15004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0),
-15005 => array('PiePlot::SetFont() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetFont().',0),
-15006 => array('PiePlot::SetSize() Radius für Tortendiagramm muss entweder als Bruch [0, 0.5] der Bildgröße oder als Absoluwert in Pixel im Bereich [10, 1000] angegeben werden.',0),
-15007 => array('PiePlot::SetFontColor() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetColor()..',0),
-15008 => array('PiePlot::SetLabelType() der Typ für Tortendiagramme muss entweder 0 or 1 sein (nicht %d).',1),
-15009 => array('Ungültiges Tortendiagramm. Die Summe aller Daten ist Null.',0),
-15010 => array('Die Summe aller Daten ist Null.',0),
-15011 => array('Um Bildtransformationen benutzen zu können, muss die Datei jpgraph_imgtrans.php eingefügt werden (per include).',0),
-
-/*
-**  jpgraph_plotband
-*/
-
-16001 => array('Die Dichte für das Pattern muss zwischen 1 und 100 sein. (Du hast %f eingegeben)',1),
-16002 => array('Es wurde keine Position für das Pattern angegeben.',0),
-16003 => array('Unbekannte Pattern-Definition (%d)',0),
-16004 => array('Der Mindeswert für das PlotBand ist größer als der Maximalwert. Bitte korrigiere dies!',0),
-
-
-/*
-**  jpgraph_polar
-*/
-
-17001 => array('PolarPlots müssen eine gerade Anzahl von Datenpunkten haben. Jeder Datenpunkt ist ein Tupel (Winkel, Radius).',0),
-17002 => array('Unbekannte Ausrichtung für X-Achsen-Titel. (%s)',1),
-//17003 => array('Set90AndMargin() wird für PolarGraph nicht unterstützt.',0),
-17004 => array('Unbekannter Achsentyp für PolarGraph. Er muss entweder \'lin\' oder \'log\' sein.',0),
-
-/*
-**  jpgraph_radar
-*/
-
-18001 => array('ClientSideImageMaps werden für RadarPlots nicht unterstützt.',0),
-18002 => array('RadarGraph::SupressTickMarks() sollte nicht mehr verwendet werden. Benutze stattdessen HideTickMarks().',0),
-18003 => array('Ungültiger Achsentyp für RadarPlot (%s). Er muss entweder \'lin\' oder \'log\' sein.',1),
-18004 => array('Die RadarPlot-Größe muss zwischen 0.1 und 1 sein. (Dein Wert=%f)',1),
-18005 => array('RadarPlot: nicht unterstützte Tick-Dichte: %d',1),
-18006 => array('Minimum Daten %f (RadarPlots sollten nur verwendet werden, wenn alle Datenpunkte einen Wert > 0 haben).',1),
-18007 => array('Die Anzahl der Titel entspricht nicht der Anzahl der Datenpunkte.',0),
-18008 => array('Jeder RadarPlot muss die gleiche Anzahl von Datenpunkten haben.',0),
-
-/*
-**  jpgraph_regstat
-*/
-
-19001 => array('Spline: Anzahl der X- und Y-Koordinaten muss gleich sein.',0),
-19002 => array('Ungültige Dateneingabe für Spline. Zwei oder mehr aufeinanderfolgende X-Werte sind identisch. Jeder eigegebene X-Wert muss unterschiedlich sein, weil vom mathematischen Standpunkt ein Eins-zu-Eins-Mapping vorliegen muss, d.h. jeder X-Wert korrespondiert mit exakt einem Y-Wert.',0),
-19003 => array('Bezier: Anzahl der X- und Y-Koordinaten muss gleich sein.',0),
-
-/*
-**  jpgraph_scatter
-*/
-
-20001 => array('Fieldplots müssen die gleiche Anzahl von X und Y Datenpunkten haben.',0),
-20002 => array('Bei Fieldplots muss ein Winkel für jeden X und Y Datenpunkt angegeben werden.',0),
-20003 => array('Scatterplots müssen die gleiche Anzahl von X- und Y-Datenpunkten haben.',0),
-
-/*
-**  jpgraph_stock
-*/
-
-21001 => array('Die Anzahl der Datenwerte für Stock-Charts müssen ein Mehrfaches von %d Datenpunkten sein.',1),
-
-/*
-**  jpgraph_plotmark
-*/
-
-23001 => array('Der Marker "%s" existiert nicht in der Farbe: %d',2),
-23002 => array('Der Farb-Index ist zu hoch für den Marker "%s"',1),
-23003 => array('Ein Dateiname muss angegeben werden, wenn Du den Marker-Typ auf MARK_IMG setzt.',0),
-
-/*
-**  jpgraph_utils
-*/
-
-24001 => array('FuncGenerator : Keine Funktion definiert. ',0),
-24002 => array('FuncGenerator : Syntax-Fehler in der Funktionsdefinition ',0),
-24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0),
-
-/*
-**  jpgraph
-*/
-
-25001 => array('Diese PHP-Installation ist nicht mit der GD-Bibliothek kompiliert. Bitte kompiliere PHP mit GD-Unterstützung neu, damit JpGraph funktioniert. (Weder die Funktion imagetypes() noch imagecreatefromstring() existiert!)',0),
-25002 => array('Diese PHP-Installation scheint nicht die benötigte GD-Bibliothek zu unterstützen. Bitte schau in der PHP-Dokumentation nach, wie man die GD-Bibliothek installiert und aktiviert.',0),
-25003 => array('Genereller PHP Fehler : Bei %s:%d : %s',3),
-25004 => array('Genereller PHP Fehler : %s ',1),
-25005 => array('PHP_SELF, die PHP-Global-Variable kann nicht ermittelt werden. PHP kann nicht von der Kommandozeile gestartet werden, wenn der Cache oder die Bilddateien automatisch benannt werden sollen.',0),
-25006 => array('Die Benutzung der FF_CHINESE (FF_BIG5) Schriftfamilie benötigt die iconv() Funktion in Deiner PHP-Konfiguration. Dies wird nicht defaultmäßig in PHP kompiliert (benötigt "--width-iconv" bei der Konfiguration).',0),
-25007 => array('Du versuchst das lokale (%s) zu verwenden, was von Deiner PHP-Installation nicht unterstützt wird. Hinweis: Benutze \'\', um das defaultmäßige Lokale für diese geographische Region festzulegen.',1),
-25008 => array('Die Bild-Breite und Höhe in Graph::Graph() müssen numerisch sein',0),
-25009 => array('Die Skalierung der Achsen muss angegeben werden mit Graph::SetScale()',0),
-
-25010 => array('Graph::Add() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25011 => array('Graph::AddY2() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25012 => array('Graph::AddYN() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25013 => array('Es können nur Standard-Plots zu multiplen Y-Achsen hinzugefügt werden',0),
-25014 => array('Graph::AddText() Du hast versucht, einen leeren Text zum Graph hinzuzufügen.',0),
-25015 => array('Graph::AddLine() Du hast versucht, eine leere Linie zum Graph hinzuzufügen.',0),
-25016 => array('Graph::AddBand() Du hast versucht, ein leeres Band zum Graph hinzuzufügen.',0),
-25017 => array('Du benutzt GD 2.x und versuchst, ein Hintergrundbild in einem Truecolor-Bild zu verwenden. Um Hintergrundbilder mit GD 2.x zu verwenden, ist es notwendig, Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Schrift sehr schlecht, wenn Truetype-Schrift in Truecolor-Bildern verwendet werden.',0),
-25018 => array('Falscher Dateiname für Graph::SetBackgroundImage() : "%s" muss eine gültige Dateinamenerweiterung (jpg,gif,png) haben, wenn die automatische Dateityperkennung verwenndet werden soll.',1),
-25019 => array('Unbekannte Dateinamenerweiterung (%s) in Graph::SetBackgroundImage() für Dateiname: "%s"',2),
-
-25020 => array('Graph::SetScale(): Dar Maximalwert muss größer sein als der Mindestwert.',0),
-25021 => array('Unbekannte Achsendefinition für die Y-Achse. (%s)',1),
-25022 => array('Unbekannte Achsendefinition für die X-Achse. (%s)',1),
-25023 => array('Nicht unterstützter Y2-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1),
-25024 => array('Nicht unterstützter X-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1),
-25025 => array('Nicht unterstützte Tick-Dichte: %d',1),
-25026 => array('Nicht unterstützter Typ der nicht angegebenen Y-Achse. Du hast entweder: 1. einen Y-Achsentyp für automatisches Skalieren definiert, aber keine Plots angegeben. 2. eine Achse direkt definiert, aber vergessen, die Tick-Dichte zu festzulegen.',0),
-25027 => array('Kann cached CSIM "%s" zum Lesen nicht öffnen.',1),
-25028 => array('Apache/PHP hat keine Schreibrechte, in das CSIM-Cache-Verzeichnis (%s) zu schreiben. Überprüfe die Rechte.',1),
-25029 => array('Kann nicht in das CSIM "%s" schreiben. Überprüfe die Schreibrechte und den freien Speicherplatz.',1),
-
-25030 => array('Fehlender Skriptname für StrokeCSIM(). Der Name des aktuellen Skriptes muss als erster Parameter von StrokeCSIM() angegeben werden.',0),
-25031 => array('Der Achsentyp muss mittels Graph::SetScale() angegeben werden.',0),
-25032 => array('Es existieren keine Plots für die Y-Achse nbr:%d',1),
-25033 => array('',0),
-25034 => array('Undefinierte X-Achse kann nicht gezeichnet werden. Es wurden keine Plots definiert.',0),
-25035 => array('Du hast Clipping aktiviert. Clipping wird nur für Diagramme mit 0 oder 90 Grad Rotation unterstützt. Bitte verändere Deinen Rotationswinkel (=%d Grad) dementsprechend oder deaktiviere Clipping.',1),
-25036 => array('Unbekannter Achsentyp AxisStyle() : %s',1),
-25037 => array('Das Bildformat Deines Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1),
-25038 => array('Das Hintergrundbild scheint von einem anderen Typ (unterschiedliche Dateierweiterung) zu sein als der angegebene Typ. Angegebenen: %s; Datei: %s',2),
-25039 => array('Hintergrundbild kann nicht gelesen werden: "%s"',1),
-
-25040 => array('Es ist nicht möglich, sowohl ein Hintergrundbild als auch eine Hintergrund-Landesflagge anzugeben.',0),
-25041 => array('Um Landesflaggen als Hintergrund benutzen zu können, muss die Datei "jpgraph_flags.php" eingefügt werden (per include).',0),
-25042 => array('Unbekanntes Hintergrundbild-Layout',0),
-25043 => array('Unbekannter Titelhintergrund-Stil.',0),
-25044 => array('Automatisches Skalieren kann nicht verwendet werden, weil es unmöglich ist, einen gültigen min/max Wert für die Y-Achse zu ermitteln (nur Null-Werte).',0),
-25045 => array('Die Schriftfamilien FF_HANDWRT und FF_BOOK sind wegen Copyright-Problemen nicht mehr verfügbar. Diese Schriften können nicht mehr mit JpGraph verteilt werden. Bitte lade Dir Schriften von http://corefonts.sourceforge.net/ herunter.',0),
-25046 => array('Angegebene TTF-Schriftfamilie (id=%d) ist unbekannt oder existiert nicht. Bitte merke Dir, dass TTF-Schriften wegen Copyright-Problemen nicht mit JpGraph mitgeliefert werden. Du findest MS-TTF-Internetschriften (arial, courier, etc.) zum Herunterladen unter http://corefonts.sourceforge.net/',1),
-25047 => array('Stil %s ist nicht verfügbar für Schriftfamilie %s',2),
-25048 => array('Unbekannte Schriftstildefinition [%s].',1),
-25049 => array('Schriftdatei "%s" ist nicht lesbar oder existiert nicht.',1),
-
-25050 => array('Erstes Argument für Text::Text() muss ein String sein.',0),
-25051 => array('Ungültige Richtung angegeben für Text.',0),
-25052 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte vertikale Ausrichtung für Text.',0),
-25053 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte horizontale Ausrichtung für Text.',0),
-25054 => array('Interner Fehler: Unbekannte Grid-Achse %s',1),
-25055 => array('Axis::SetTickDirection() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetTickSide().',0),
-25056 => array('SetTickLabelMargin() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelMargin().',0),
-25057 => array('SetTextTicks() sollte nicht mehr verwendet werden. Benutze stattdessen SetTextTickInterval().',0),
-25058 => array('TextLabelIntevall >= 1 muss angegeben werden.',0),
-25059 => array('SetLabelPos() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelSide().',0),
-
-25060 => array('Unbekannte Ausrichtung angegeben für X-Achsentitel (%s).',1),
-25061 => array('Unbekannte Ausrichtung angegeben für Y-Achsentitel (%s).',1),
-25062 => array('Label unter einem Winkel werden für die Y-Achse nicht unterstützt.',0),
-25063 => array('Ticks::SetPrecision() sollte nicht mehr verwendet werden. Benutze stattdessen Ticks::SetLabelFormat() (oder Ticks::SetFormatCallback()).',0),
-25064 => array('Kleinere oder größere Schrittgröße ist 0. Überprüfe, ob Du fälschlicherweise SetTextTicks(0) in Deinem Skript hast. Wenn dies nicht der Fall ist, bist Du eventuell über einen Bug in JpGraph gestolpert. Bitte sende einen Report und füge den Code an, der den Fehler verursacht hat.',0),
-25065 => array('Tick-Positionen müssen als array() angegeben werden',0),
-25066 => array('Wenn die Tick-Positionen und -Label von Hand eingegeben werden, muss die Anzahl der Ticks und der Label gleich sein.',0),
-25067 => array('Deine von Hand eingegebene Achse und Ticks sind nicht korrekt. Die Skala scheint zu klein zu sein für den Tickabstand.',0),
-25068 => array('Ein Plot hat eine ungültige Achse. Dies kann beispielsweise der Fall sein, wenn Du automatisches Text-Skalieren verwendest, um ein Liniendiagramm zu zeichnen mit nur einem Datenpunkt, oder wenn die Bildfläche zu klein ist. Es kann auch der Fall sein, dass kein Datenpunkt einen numerischen Wert hat (vielleicht nur \'-\' oder \'x\').',0),
-25069 => array('Grace muss größer sein als 0',0),
-
-25070 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-25071 => array('Du hast mit SetAutoMin() einen Mindestwert angegeben, der größer ist als der Maximalwert für die Achse. Dies ist nicht möglich.',0),
-25072 => array('Du hast mit SetAutoMax() einen Maximalwert angegeben, der kleiner ist als der Minimalwert der Achse. Dies ist nicht möglich.',0),
-25073 => array('Interner Fehler. Der Integer-Skalierungs-Algorithmus-Vergleich ist außerhalb der Grenzen  (r=%f).',1),
-25074 => array('Interner Fehler. Der Skalierungsbereich ist negativ (%f) [für %s Achse]. Dieses Problem könnte verursacht werden durch den Versuch, \'ungültige\' Werte in die Daten-Vektoren einzugeben (z.B. nur String- oder NULL-Werte), was beim automatischen Skalieren einen Fehler erzeugt.',2),
-25075 => array('Die automatischen Ticks können nicht gesetzt werden, weil min==max.',0),
-25077 => array('Einstellfaktor für die Farbe muss größer sein als 0',0),
-25078 => array('Unbekannte Farbe: %s',1),
-25079 => array('Unbekannte Farbdefinition: %s, Größe=%d',2),
-
-25080 => array('Der Alpha-Parameter für Farben muss zwischen 0.0 und 1.0 liegen.',0),
-25081 => array('Das ausgewählte Grafikformat wird entweder nicht unterstützt oder ist unbekannt [%s]',1),
-25082 => array('Es wurden ungültige Größen für Breite und Höhe beim Erstellen des Bildes definiert (Breite=%d, Höhe=%d).',2),
-25083 => array('Es wurde eine ungültige Größe beim Kopieren des Bildes angegeben. Die Größe für das kopierte Bild wurde auf 1 Pixel oder weniger gesetzt.',0),
-25084 => array('Fehler beim Erstellen eines temporären GD-Canvas. Möglicherweise liegt ein Arbeitsspeicherproblem vor.',0),
-25085 => array('Ein Bild kann nicht aus dem angegebenen String erzeugt werden. Er ist entweder in einem nicht unterstützen Format oder er represäntiert ein kaputtes Bild.',0),
-25086 => array('Du scheinst nur GD 1.x installiert zu haben. Um Alphablending zu aktivieren, ist GD 2.x oder höher notwendig. Bitte installiere GD 2.x oder versichere Dich, dass die Konstante USE_GD2 richtig gesetzt ist. Standardmäßig wird die installierte GD-Version automatisch erkannt. Ganz selten wird GD2 erkannt, obwohl nur GD1 installiert ist. Die Konstante USE_GD2 muss dann zu "false" gesetzt werden.',0),
-25087 => array('Diese PHP-Version wurde ohne TTF-Unterstützung konfiguriert. PHP muss mit TTF-Unterstützung neu kompiliert und installiert werden.',0),
-25088 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontwidth() ist fehlerhaft.',0),
-25089 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontheight() ist fehlerhaft.',0),
-
-25090 => array('Unbekannte Richtung angegeben im Aufruf von StrokeBoxedText() [%s].',1),
-25091 => array('Die interne Schrift untestützt das Schreiben von Text in einem beliebigen Winkel nicht. Benutze stattdessen TTF-Schriften.',0),
-25092 => array('Es liegt entweder ein Konfigurationsproblem mit TrueType oder ein Problem beim Lesen der Schriftdatei "%s" vor. Versichere Dich, dass die Datei existiert und Leserechte und -pfad vergeben sind. (wenn \'basedir\' restriction in PHP aktiviert ist, muss die Schriftdatei im Dokumentwurzelverzeichnis abgelegt werden). Möglicherweise ist die FreeType-Bibliothek falsch installiert. Versuche, mindestens zur FreeType-Version 2.1.13 zu aktualisieren und kompiliere GD mit einem korrekten Setup neu, damit die FreeType-Bibliothek gefunden werden kann.',1),
-25093 => array('Die Schriftdatei "%s" kann nicht gelesen werden beim Aufruf von Image::GetBBoxTTF. Bitte versichere Dich, dass die Schrift gesetzt wurde, bevor diese Methode aufgerufen wird, und dass die Schrift im TTF-Verzeichnis installiert ist.',1),
-25094 => array('Die Textrichtung muss in einem Winkel zwischen 0 und 90 engegeben werden.',0),
-25095 => array('Unbekannte Schriftfamilien-Definition. ',0),
-25096 => array('Der Farbpalette können keine weiteren Farben zugewiesen werden. Dem Bild wurde bereits die größtmögliche Anzahl von Farben (%d) zugewiesen und die Palette ist voll. Verwende stattdessen ein TrueColor-Bild',0),
-25097 => array('Eine Farbe wurde als leerer String im Aufruf von PushColor() angegegeben.',0),
-25098 => array('Negativer Farbindex. Unpassender Aufruf von PopColor().',0),
-25099 => array('Die Parameter für Helligkeit und Kontrast sind außerhalb des zulässigen Bereichs [-1,1]',0),
-
-25100 => array('Es liegt ein Problem mit der Farbpalette und dem GD-Setup vor. Bitte deaktiviere anti-aliasing oder verwende GD2 mit TrueColor. Wenn die GD2-Bibliothek installiert ist, versichere Dich, dass die Konstante USE_GD2 auf "true" gesetzt und TrueColor aktiviert ist.',0),
-25101 => array('Ungültiges numerisches Argument für SetLineStyle(): (%d)',1),
-25102 => array('Ungültiges String-Argument für SetLineStyle(): %s',1),
-25103 => array('Ungültiges Argument für SetLineStyle %s',1),
-25104 => array('Unbekannter Linientyp: %s',1),
-25105 => array('Es wurden NULL-Daten für ein gefülltes Polygon angegeben. Sorge dafür, dass keine NULL-Daten angegeben werden.',0),
-25106 => array('Image::FillToBorder : es können keine weiteren Farben zugewiesen werden.',0),
-25107 => array('In Datei "%s" kann nicht geschrieben werden. Überprüfe die aktuellen Schreibrechte.',1),
-25108 => array('Das Bild kann nicht gestreamt werden. Möglicherweise liegt ein Fehler im PHP/GD-Setup vor. Kompiliere PHP neu und verwende die eingebaute GD-Bibliothek, die mit PHP angeboten wird.',0),
-25109 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Grafikformate zu unterstützen. Sorge zunächst dafür, dass GD als PHP-Modul kompiliert ist. Wenn Du außerdem JPEG-Bilder verwenden willst, musst Du die JPEG-Bibliothek installieren. Weitere Details sind in der PHP-Dokumentation zu finden.',0),
-
-25110 => array('Dein PHP-Installation unterstützt das gewählte Grafikformat nicht: %s',1),
-25111 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1),
-25112 => array('Das Datum der gecacheten Datei (%s) liegt in der Zukunft.',1),
-25113 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1),
-25114 => array('PHP hat nicht die erforderlichen Rechte, um in die Cache-Datei %s zu schreiben. Bitte versichere Dich, dass der Benutzer, der PHP anwendet, die entsprechenden Schreibrechte für die Datei hat, wenn Du das Cache-System in JPGraph verwenden willst.',1),
-25115 => array('Berechtigung für gecachetes Bild %s kann nicht gesetzt werden. Problem mit den Rechten?',1),
-25116 => array('Datei kann nicht aus dem Cache %s geöffnet werden',1),
-25117 => array('Gecachetes Bild %s kann nicht zum Lesen geöffnet werden.',1),
-25118 => array('Verzeichnis %s kann nicht angelegt werden. Versichere Dich, dass PHP die Schreibrechte in diesem Verzeichnis hat.',1),
-25119 => array('Rechte für Datei %s können nicht gesetzt werden. Problem mit den Rechten?',1),
-
-25120 => array('Die Position für die Legende muss als Prozentwert im Bereich 0-1 angegeben werden.',0),
-25121 => array('Eine leerer Datenvektor wurde für den Plot eingegeben. Es muss wenigstens ein Datenpunkt vorliegen.',0),
-25122 => array('Stroke() muss als Subklasse der Klasse Plot definiert sein.',0),
-25123 => array('Du kannst keine Text-X-Achse mit X-Koordinaten verwenden. Benutze stattdessen eine "int" oder "lin" Achse.',0),
-25124 => array('Der Eingabedatenvektor mus aufeinanderfolgende Werte von 0 aufwärts beinhalten. Der angegebene Y-Vektor beginnt mit leeren Werten (NULL).',0),
-25125 => array('Ungültige Richtung für statische Linie.',0),
-25126 => array('Es kann kein TrueColor-Bild erzeugt werden. Überprüfe, ob die GD2-Bibliothek und PHP korrekt aufgesetzt wurden.',0),
-25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0),
-
-/*
-**---------------------------------------------------------------------------------------------
-** Pro-version strings
-**---------------------------------------------------------------------------------------------
-*/
-
-/*
-**  jpgraph_table
-*/
-
-27001 => array('GTextTable: Ungültiges Argument für Set(). Das Array-Argument muss 2-- dimensional sein.',0),
-27002 => array('GTextTable: Ungültiges Argument für Set()',0),
-27003 => array('GTextTable: Falsche Anzahl von Argumenten für GTextTable::SetColor()',0),
-27004 => array('GTextTable: Angegebener Zellenbereich, der verschmolzen werden soll, ist ungültig.',0),
-27005 => array('GTextTable: Bereits verschmolzene Zellen im Bereich (%d,%d) bis (%d,%d) können nicht ein weiteres Mal verschmolzen werden.',4),
-27006 => array('GTextTable: Spalten-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1),
-27007 => array('GTextTable: Zeilen-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1),
-27008 => array('GTextTable: Spalten- und Zeilengröße müssen zu den Dimensionen der Tabelle passen.',0),
-27009 => array('GTextTable: Die Anzahl der Tabellenspalten oder -zeilen ist 0. Versichere Dich, dass die Methoden Init() oder Set() aufgerufen werden.',0),
-27010 => array('GTextTable: Es wurde keine Ausrichtung beim Aufruf von SetAlign() angegeben.',0),
-27011 => array('GTextTable: Es wurde eine unbekannte Ausrichtung beim Aufruf von SetAlign() abgegeben. Horizontal=%s, Vertikal=%s',2),
-27012 => array('GTextTable: Interner Fehler. Es wurde ein ungültiges Argument festgeleget %s',1),
-27013 => array('GTextTable: Das Argument für FormatNumber() muss ein String sein.',0),
-27014 => array('GTextTable: Die Tabelle wurde weder mit einem Aufruf von Set() noch von Init() initialisiert.',0),
-27015 => array('GTextTable: Der Zellenbildbedingungstyp muss entweder TIMG_WIDTH oder TIMG_HEIGHT sein.',0),
-
-/*
-**  jpgraph_windrose
-*/
-
-22001 => array('Die Gesamtsumme der prozentualen Anteile aller Windrosenarme darf 100% nicht überschreiten!\n(Aktuell max: %d)',1),
-22002 => array('Das Bild ist zu klein für eine Skala. Bitte vergrößere das Bild.',0),
-22004 => array('Die Etikettendefinition für Windrosenrichtungen müssen 16 Werte haben (eine für jede Kompassrichtung).',0),
-22005 => array('Der Linientyp für radiale Linien muss einer von ("solid","dotted","dashed","longdashed") sein.',0),
-22006 => array('Es wurde ein ungültiger Windrosentyp angegeben.',0),
-22007 => array('Es wurden zu wenig Werte für die Bereichslegende angegeben.',0),
-22008 => array('Interner Fehler: Versuch, eine freie Windrose zu plotten, obwohl der Typ keine freie Windrose ist.',0),
-22009 => array('Du hast die gleiche Richtung zweimal angegeben, einmal mit einem Winkel und einmal mit einer Kompassrichtung (%f Grad).',0),
-22010 => array('Die Richtung muss entweder ein numerischer Wert sein oder eine der 16 Kompassrichtungen',0),
-22011 => array('Der Windrosenindex muss ein numerischer oder Richtungswert sein. Du hast angegeben Index=%d',1),
-22012 => array('Die radiale Achsendefinition für die Windrose enthält eine nicht aktivierte Richtung.',0),
-22013 => array('Du hast dasselbe Look&Feel für die gleiche Kompassrichtung zweimal engegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1),
-22014 => array('Der Index für eine Kompassrichtung muss zwischen 0 und 15 sein.',0),
-22015 => array('Du hast einen unbekannten Windrosenplottyp angegeben.',0),
-22016 => array('Der Windrosenarmindex muss ein numerischer oder ein Richtungswert sein.',0),
-22017 => array('Die Windrosendaten enthalten eine Richtung, die nicht aktiviert ist. Bitte berichtige, welche Label angezeigt werden sollen.',0),
-22018 => array('Du hast für dieselbe Kompassrichtung zweimal Daten angegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1),
-22019 => array('Der Index für eine Richtung muss zwischen 0 und 15 sein. Winkel dürfen nicht für einen regelmäßigen Windplot angegeben werden, sondern entweder ein Index oder eine Kompassrichtung.',0),
-22020 => array('Der Windrosenplot ist zu groß für die angegebene Bildgröße. Benutze entweder WindrosePlot::SetSize(), um den Plot kleiner zu machen oder vergrößere das Bild im ursprünglichen Aufruf von WindroseGraph().',0),
-
-/*
-**  jpgraph_odometer
-*/
-
-13001 => array('Unbekannter Nadeltypstil (%d).',1),
-13002 => array('Ein Wert für das Odometer (%f) ist außerhalb des angegebenen Bereichs [%f,%f]',3),
-
-/*
-**  jpgraph_barcode
-*/
-
-1001 => array('Unbekannte Kodier-Specifikation: %s',1),
-1002 => array('datenvalidierung schlug fehl. [%s] kann nicht mittels der Kodierung "%s" kodiert werden',2),
-1003 => array('Interner Kodierfehler. Kodieren von %s ist nicht möglich in Code 128',1),
-1004 => array('Interner barcode Fehler. Unbekannter UPC-E Kodiertyp: %s',1),
-1005 => array('Interner Fehler. Das Textzeichen-Tupel (%s, %s) kann nicht im Code-128 Zeichensatz C kodiert werden.',2),
-1006 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, CTRL in CHARSET != A zu kodieren.',0),
-1007 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, DEL in CHARSET != B zu kodieren.',0),
-1008 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, kleine Buchstaben in CHARSET != B zu kodieren.',0),
-1009 => array('Kodieren mittels CODE 93 wird noch nicht unterstützt.',0),
-1010 => array('Kodieren mittels POSTNET wird noch nicht unterstützt.',0),
-1011 => array('Nicht untrstütztes Barcode-Backend für den Typ %s',1),
-
-/*
-** PDF417
-*/
-
-26001 => array('PDF417: Die Anzahl der Spalten muss zwischen 1 und 30 sein.',0),
-26002 => array('PDF417: Der Fehler-Level muss zwischen 0 und 8 sein.',0),
-26003 => array('PDF417: Ungültiges Format für Eingabedaten, um sie mit PDF417 zu kodieren.',0),
-26004 => array('PDF417: die eigebenen Daten können nicht mit Fehler-Level %d und %d spalten kodiert werden, weil daraus zu viele Symbole oder mehr als 90 Zeilen resultieren.',2),
-26005 => array('PDF417: Die Datei "%s" kann nicht zum Schreiben geöffnet werden.',1),
-26006 => array('PDF417: Interner Fehler. Die Eingabedatendatei für PDF417-Cluster %d ist fehlerhaft.',1),
-26007 => array('PDF417: Interner Fehler. GetPattern: Ungültiger Code-Wert %d (Zeile %d)',2),
-26008 => array('PDF417: Interner Fehler. Modus wurde nicht in der Modusliste!! Modus %d',1),
-26009 => array('PDF417: Kodierfehler: Ungültiges Zeichen. Zeichen kann nicht mit ASCII-Code %d kodiert werden.',1),
-26010 => array('PDF417: Interner Fehler: Keine Eingabedaten beim Dekodieren.',0),
-26011 => array('PDF417: Kodierfehler. Numerisches Kodieren bei nicht-numerischen Daten nicht möglich.',0),
-26012 => array('PDF417: Interner Fehler. Es wurden für den Binary-Kompressor keine Daten zum Dekodieren eingegeben.',0),
-26013 => array('PDF417: Interner Fehler. Checksum Fehler. Koeffiziententabellen sind fehlerhaft.',0),
-26014 => array('PDF417: Interner Fehler. Es wurden keine Daten zum Berechnen von Kodewörtern eingegeben.',0),
-26015 => array('PDF417: Interner Fehler. Ein Eintrag 0 in die Statusübertragungstabellen ist nicht NULL. Eintrag 1 = (%s)',1),
-26016 => array('PDF417: Interner Fehler: Nichtregistrierter Statusübertragungsmodus beim Dekodieren.',0),
-
-
-);
-
-?>
diff --git a/nightly-test-server/jpgraph/lang/en.inc.php b/nightly-test-server/jpgraph/lang/en.inc.php
deleted file mode 100644
index e00dbd7..0000000
--- a/nightly-test-server/jpgraph/lang/en.inc.php
+++ /dev/null
@@ -1,502 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	EN.INC.PHP
-// Description: English language file for error messages
-// Created: 	2006-01-25
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// Note: 
-// Format of each error message is array(<error message>,<number of arguments>)
-// The argument placeholders in the error strings are in printf() - format
-
-$_jpg_messages = array(
-
-/*
-** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text
-*/
-10  => array('<table border="1"><tr><td style="color:darkred; font-size:1.2em;"><b>JpGraph Error:</b> 
-HTTP headers have already been sent.<br>Caused by output from file <b>%s</b> at line <b>%d</b>.</td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening "<b>&lt;?php</b>".</td></tr></table>',2),
-
-/*
-** Setup errors
-*/
-11 => array('No path specified for CACHE_DIR. Please specify CACHE_DIR manually in jpg-config.inc',0),
-12 => array('No path specified for TTF_DIR and path can not be determined automatically. Please specify TTF_DIR manually (in jpg-config.inc).',0),
-13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2),
-/*
-**  jpgraph_bar
-*/
-
-2001 => array('Number of colors is not the same as the number of patterns in BarPlot::SetPattern()',0),
-2002 => array('Unknown pattern specified in call to BarPlot::SetPattern()',0),
-2003 => array('Number of X and Y points are not equal. Number of X-points: %d Number of Y-points: %d',2),
-2004 => array('All values for a barplot must be numeric. You have specified value nr [%d] == %s',2),
-2005 => array('You have specified an empty array for shadow colors in the bar plot.',0),
-2006 => array('Unknown position for values on bars : %s',1),
-2007 => array('Cannot create GroupBarPlot from empty plot array.',0),
-2008 => array('Group bar plot element nbr %d is undefined or empty.',0),
-2009 => array('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the GroupBar plot from an array of BarPlot or AccBarPlot objects. (Class = %s)',1),
-2010 => array('Cannot create AccBarPlot from empty plot array.',0),
-2011 => array('Acc bar plot element nbr %d is undefined or empty.',1),
-2012 => array('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects. (Class=%s)',1),
-2013 => array('You have specified an empty array for shadow colors in the bar plot.',0),
-2014 => array('Number of datapoints for each data set in accbarplot must be the same',0),
-
-
-/*
-**  jpgraph_date
-*/
-
-3001 => array('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both',0),
-
-/*
-**  jpgraph_error
-*/
-
-4002 => array('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3',0),
-
-/*
-**  jpgraph_flags
-*/
-
-5001 => array('Unknown flag size (%d).',1),
-5002 => array('Flag index %s does not exist.',1),
-5003 => array('Invalid ordinal number (%d) specified for flag index.',1),
-5004 => array('The (partial) country name %s does not have a corresponding flag image. The flag may still exist but under another name, e.g. instead of "usa" try "united states".',1),
-
-
-/*
-**  jpgraph_gantt
-*/
-
-6001 => array('Internal error. Height for ActivityTitles is < 0',0),
-6002 => array('You can\'t specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension.',0),
-6003 => array('Invalid format for Constrain parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)',1), 
-6004 => array('Invalid format for Progress parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)',1), 
-6005 => array('SetScale() is not meaningful with Gantt charts.',0),
-6006 => array('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]',0),
-6007 => array('Sanity check for automatic Gantt chart size failed. Either the width (=%d) or height (=%d) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities.',2),
-6008 => array('You have specified a constrain from row=%d to row=%d which does not have any activity',2),
-6009 => array('Unknown constrain type specified from row=%d to row=%d',2),
-6010 => array('Illegal icon index for Gantt builtin icon [%d]',1),
-6011 => array('Argument to IconImage must be string or integer',0),
-6012 => array('Unknown type in Gantt object title specification',0),
-6015 => array('Illegal vertical position %d',1),
-6016 => array('Date string (%s) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30',1),
-6017 => array('Unknown date format in GanttScale (%s).',1),
-6018 => array('Interval for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an interval of %d minutes.',1),
-6019 => array('The available width (%d) for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.',1),
-6020 => array('Interval for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an interval of %d',1),
-6021 => array('Unknown formatting style for week.',0),
-6022 => array('Gantt scale has not been specified.',0),
-6023 => array('If you display both hour and minutes the hour interval must be 1 (Otherwise it doesn\'t make sense to display minutes).',0),
-6024 => array('CSIM Target must be specified as a string. Start of target is: %d',1),
-6025 => array('CSIM Alt text must be specified as a string. Start of alt text is: %d',1),
-6027 => array('Progress value must in range [0, 1]',0),
-6028 => array('Specified height (%d) for gantt bar is out of range.',1),
-6029 => array('Offset for vertical line must be in range [0,1]',0),
-6030 => array('Unknown arrow direction for link.',0),
-6031 => array('Unknown arrow type for link.',0),
-6032 => array('Internal error: Unknown path type (=%d) specified for link.',1),
-
-/*
-**  jpgraph_gradient
-*/
-
-7001 => array('Unknown gradient style (=%d).',1),
-
-/*
-**  jpgraph_iconplot
-*/
-
-8001 => array('Mix value for icon must be between 0 and 100.',0),
-8002 => array('Anchor position for icons must be one of "top", "bottom", "left", "right" or "center"',0),
-8003 => array('It is not possible to specify both an image file and a country flag for the same icon.',0),
-8004 => array('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.',0),
-
-/*
-**  jpgraph_imgtrans
-*/
-
-9001 => array('Value for image transformation out of bounds. Vanishing point on horizon must be specified as a value between 0 and 1.',0),
-
-/*
-**  jpgraph_lineplot
-*/
-
-10001 => array('LinePlot::SetFilled() is deprecated. Use SetFillColor()',0),
-10002 => array('Plot too complicated for fast line Stroke. Use standard Stroke()',0),
-
-/*
-**  jpgraph_log
-*/
-
-11001 => array('Your data contains non-numeric values.',0),
-11002 => array('Negative data values can not be used in a log scale.',0),
-11003 => array('Your data contains non-numeric values.',0),
-11004 => array('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.',0),
-11005 => array('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.',0),
-
-/*
-**  jpgraph_mgraph
-*/
-
-12001 => array("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.",0),
-12002 => array('Incorrect file name for MGraph::SetBackgroundImage() : %s Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1),
-12003 => array('Unknown file extension (%s) in MGraph::SetBackgroundImage() for filename: %s',2),
-12004 => array('The image format of your background image (%s) is not supported in your system configuration. ',1),
-12005 => array('Can\'t read background image: %s',1),
-12006 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2),
-12007 => array('Argument to MGraph::Add() is not a valid GD image handle.',0),
-12008 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats.',0),
-12009 => array('Your PHP installation does not support the chosen graphic format: %s',1),
-12010 => array('Can\'t create or stream image to file %s Check that PHP has enough permission to write a file to the current directory.',1),
-12011 => array('Can\'t create truecolor image. Check that you really have GD2 library installed.',0),
-12012 => array('Can\'t create image. Check that you really have GD2 library installed.',0),
-
-/*
-**  jpgraph_pie3d
-*/
-
-14001 => array('Pie3D::ShowBorder() . Deprecated function. Use Pie3D::SetEdge() to control the edges around slices.',0),
-14002 => array('PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees.',0),
-14003 => array('Internal assertion failed. Pie3D::Pie3DSlice',0),
-14004 => array('Slice start angle must be between 0 and 360 degrees.',0),
-14005 => array('Pie3D Internal error: Trying to wrap twice when looking for start index',0,),
-14006 => array('Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.',0),
-14007 => array('Width for 3D Pie is 0. Specify a size > 0',0),
-
-/*
-**  jpgraph_pie
-*/
-
-15001 => array('PiePLot::SetTheme() Unknown theme: %s',1),
-15002 => array('Argument to PiePlot::ExplodeSlice() must be an integer',0),
-15003 => array('Argument to PiePlot::Explode() must be an array with integer distances.',0),
-15004 => array('Slice start angle must be between 0 and 360 degrees.',0),
-15005 => array('PiePlot::SetFont() is deprecated. Use PiePlot->value->SetFont() instead.',0),
-15006 => array('PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels  in the range [10, 1000]',0),
-15007 => array('PiePlot::SetFontColor() is deprecated. Use PiePlot->value->SetColor() instead.',0),
-15008 => array('PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not %d).',1),
-15009 => array('Illegal pie plot. Sum of all data is zero for Pie Plot',0),
-15010 => array('Sum of all data is 0 for Pie.',0),
-15011 => array('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.',0),
-
-/*
-**  jpgraph_plotband
-*/
-
-16001 => array('Density for pattern must be between 1 and 100. (You tried %f)',1),
-16002 => array('No positions specified for pattern.',0),
-16003 => array('Unknown pattern specification (%d)',0),
-16004 => array('Min value for plotband is larger than specified max value. Please correct.',0),
-
-
-/*
-**  jpgraph_polar
-*/
-
-17001 => array('Polar plots must have an even number of data point. Each data point is a tuple (angle,radius).',0),
-17002 => array('Unknown alignment specified for X-axis title. (%s)',1),
-//17003 => array('Set90AndMargin() is not supported for polar graphs.',0),
-17004 => array('Unknown scale type for polar graph. Must be "lin" or "log"',0),
-
-/*
-**  jpgraph_radar
-*/
-
-18001 => array('Client side image maps not supported for RadarPlots.',0),
-18002 => array('RadarGraph::SupressTickMarks() is deprecated. Use HideTickMarks() instead.',0),
-18003 => array('Illegal scale for radarplot (%s). Must be \'lin\' or \'log\'',1),
-18004 => array('Radar Plot size must be between 0.1 and 1. (Your value=%f)',1),
-18005 => array('RadarPlot Unsupported Tick density: %d',1),
-18006 => array('Minimum data %f (Radar plots should only be used when all data points > 0)',1),
-18007 => array('Number of titles does not match number of points in plot.',0),
-18008 => array('Each radar plot must have the same number of data points.',0),
-
-/*
-**  jpgraph_regstat
-*/
-
-19001 => array('Spline: Number of X and Y coordinates must be the same',0),
-19002 => array('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.',0),
-19003 => array('Bezier: Number of X and Y coordinates must be the same',0),
-
-/*
-**  jpgraph_scatter
-*/
-
-20001 => array('Fieldplots must have equal number of X and Y points.',0),
-20002 => array('Fieldplots must have an angle specified for each X and Y points.',0),
-20003 => array('Scatterplot must have equal number of X and Y points.',0),
-
-/*
-**  jpgraph_stock
-*/
-
-21001 => array('Data values for Stock charts must contain an even multiple of %d data points.',1),
-
-/*
-**  jpgraph_plotmark
-*/
-
-23001 => array('This marker "%s" does not exist in color with index: %d',2),
-23002 => array('Mark color index too large for marker "%s"',1),
-23003 => array('A filename must be specified if you set the mark type to MARK_IMG.',0),
-
-/*
-**  jpgraph_utils
-*/
-
-24001 => array('FuncGenerator : No function specified. ',0),
-24002 => array('FuncGenerator : Syntax error in function specification ',0),
-24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0),
-/*
-**  jpgraph
-*/
-
-25001 => array('This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)',0),
-25002 => array('Your PHP installation does not seem to have the required GD library. Please see the PHP documentation on how to install and enable the GD library.',0),
-25003 => array('General PHP error : At %s:%d : %s',3),
-25004 => array('General PHP error : %s ',1),
-25005 => array('Can\'t access PHP_SELF, PHP global variable. You can\'t run PHP from command line if you want to use the \'auto\' naming of cache or image files.',0),
-25006 => array('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).',0),
-25007 => array('You are trying to use the locale (%s) which your PHP installation does not support. Hint: Use \'\' to indicate the default locale for this geographic region.',1),
-25008 => array('Image width/height argument in Graph::Graph() must be numeric',0),
-25009 => array('You must specify what scale to use with a call to Graph::SetScale()',0),
-
-25010 => array('Graph::Add() You tried to add a null plot to the graph.',0),
-25011 => array('Graph::AddY2() You tried to add a null plot to the graph.',0), 
-25012 => array('Graph::AddYN() You tried to add a null plot to the graph.',0), 
-25013 => array('You can only add standard plots to multiple Y-axis',0),
-25014 => array('Graph::AddText() You tried to add a null text to the graph.',0), 
-25015 => array('Graph::AddLine() You tried to add a null line to the graph.',0), 
-25016 => array('Graph::AddBand() You tried to add a null band to the graph.',0),
-25017 => array('You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.',0),
-25018 => array('Incorrect file name for Graph::SetBackgroundImage() : "%s" Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1),
-25019 => array('Unknown file extension (%s) in Graph::SetBackgroundImage() for filename: "%s"',2),
-
-25020 => array('Graph::SetScale(): Specified Max value must be larger than the specified Min value.',0),
-25021 => array('Unknown scale specification for Y-scale. (%s)',1),
-25022 => array('Unknown scale specification for X-scale. (%s)',1),
-25023 => array('Unsupported Y2 axis type: "%s" Must be one of (lin,log,int)',1),
-25024 => array('Unsupported Y axis type:  "%s" Must be one of (lin,log,int)',1),
-25025 => array('Unsupported Tick density: %d',1),
-25026 => array('Can\'t draw unspecified Y-scale. You have either: 1. Specified an Y axis for auto scaling but have not supplied any plots. 2. Specified a scale manually but have forgot to specify the tick steps',0),
-25027 => array('Can\'t open cached CSIM "%s" for reading.',1),
-25028 => array('Apache/PHP does not have permission to write to the CSIM cache directory (%s). Check permissions.',1),
-25029 => array('Can\'t write CSIM "%s" for writing. Check free space and permissions.',1),
-
-25030 => array('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().',0),
-25031 => array('You must specify what scale to use with a call to Graph::SetScale().',0),
-25032 => array('No plots for Y-axis nbr:%d',1),
-25033 => array('',0),
-25034 => array('Can\'t draw unspecified X-scale. No plots specified.',0),
-25035 => array('You have enabled clipping. Clipping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (=%d degrees) or disable clipping.',1),
-25036 => array('Unknown AxisStyle() : %s',1),
-25037 => array('The image format of your background image (%s) is not supported in your system configuration. ',1),
-25038 => array('Background image seems to be of different type (has different file extension) than specified imagetype. Specified: %s File: %s',2),
-25039 => array('Can\'t read background image: "%s"',1), 
-
-25040 => array('It is not possible to specify both a background image and a background country flag.',0),
-25041 => array('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.',0),
-25042 => array('Unknown background image layout',0),
-25043 => array('Unknown title background style.',0),
-25044 => array('Cannot use auto scaling since it is impossible to determine a valid min/max value of the Y-axis (only null values).',0),
-25045 => array('Font families FF_HANDWRT and FF_BOOK are no longer available due to copyright problem with these fonts. Fonts can no longer be distributed with JpGraph. Please download fonts from http://corefonts.sourceforge.net/',0),
-25046 => array('Specified TTF font family (id=%d) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/',1),
-25047 => array('Style %s is not available for font family %s',2),
-25048 => array('Unknown font style specification [%s].',1),
-25049 => array('Font file "%s" is not readable or does not exist.',1),
-
-25050 => array('First argument to Text::Text() must be a string.',0),
-25051 => array('Invalid direction specified for text.',0),
-25052 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text',0),
-25053 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text',0),
-25054 => array('Internal error: Unknown grid axis %s',1),
-25055 => array('Axis::SetTickDirection() is deprecated. Use Axis::SetTickSide() instead',0),
-25056 => array('SetTickLabelMargin() is deprecated. Use Axis::SetLabelMargin() instead.',0),
-25057 => array('SetTextTicks() is deprecated. Use SetTextTickInterval() instead.',0), 
-25058 => array('Text label interval must be specified >= 1.',0),
-25059 => array('SetLabelPos() is deprecated. Use Axis::SetLabelSide() instead.',0),
-
-25060 => array('Unknown alignment specified for X-axis title. (%s)',1),
-25061 => array('Unknown alignment specified for Y-axis title. (%s)',1),
-25062 => array('Labels at an angle are not supported on Y-axis',0),
-25063 => array('Ticks::SetPrecision() is deprecated. Use Ticks::SetLabelFormat() (or Ticks::SetFormatCallback()) instead',0),
-25064 => array('Minor or major step size is 0. Check that you haven\'t got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem',0),
-25065 => array('Tick positions must be specified as an array()',0),
-25066 => array('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.',0),
-25067 => array('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tick marks.',0),
-25068 => array('A plot has an illegal scale. This could for example be that you are trying to use text auto scaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only \'-\' or \'x\')',0),
-25069 => array('Grace must be larger then 0',0),
-25070 => array('Either X or Y data arrays contains non-numeric values. Check that the data is really specified as numeric data and not as strings. It is an error to specify data for example as \'-2345.2\' (using quotes).',0),
-25071 => array('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.',0),
-25072 => array('You have specified a max value with SetAutoMax() which is smaller than the minimum value used for the scale. This is not possible.',0),
-25073 => array('Internal error. Integer scale algorithm comparison out of bound (r=%f)',1),
-25074 => array('Internal error. The scale range is negative (%f) [for %s scale] This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the auto scaling to fail.',2),
-25075 => array('Can\'t automatically determine ticks since min==max.',0),
-25077 => array('Adjustment factor for color must be > 0',0),
-25078 => array('Unknown color: %s',1),
-25079 => array('Unknown color specification: %s, size=%d',2),
-
-25080 => array('Alpha parameter for color must be between 0.0 and 1.0',0),
-25081 => array('Selected graphic format is either not supported or unknown [%s]',1),
-25082 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2),
-25083 => array('Illegal image size when copying image. Size for copied to image is 1 pixel or less.',0),
-25084 => array('Failed to create temporary GD canvas. Possible Out of memory problem.',0),
-25085 => array('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.',0),
-25086 => array('You only seem to have GD 1.x installed. To enable Alphablending requires GD 2.x or higher. Please install GD or make sure the constant USE_GD2 is specified correctly to reflect your installation. By default it tries to auto detect what version of GD you have installed. On some very rare occasions it may falsely detect GD2 where only GD1 is installed. You must then set USE_GD2 to false.',0),
-25087 => array('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.',0),
-25088 => array('You have a misconfigured GD font support. The call to imagefontwidth() fails.',0),
-25089 => array('You have a misconfigured GD font support. The call to imagefontheight() fails.',0),
-
-25090 => array('Unknown direction specified in call to StrokeBoxedText() [%s]',1),
-25091 => array('Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead.',0),
-25092 => array('There is either a configuration problem with TrueType or a problem reading font file "%s" Make sure file exists and is in a readable place for the HTTP process. (If \'basedir\' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try upgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library.',1),
-25093 => array('Can not read font file "%s" in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.',1),
-25094 => array('Direction for text most be given as an angle between 0 and 90.',0),
-25095 => array('Unknown font font family specification. ',0),
-25096 => array('Can\'t allocate any more colors in palette image. Image has already allocated maximum of %d colors and the palette  is now full. Change to a truecolor image instead',0),
-25097 => array('Color specified as empty string in PushColor().',0),
-25098 => array('Negative Color stack index. Unmatched call to PopColor()',0),
-25099 => array('Parameters for brightness and Contrast out of range [-1,1]',0), 
-
-25100 => array('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and truecolor is enabled.',0),
-25101 => array('Illegal numeric argument to SetLineStyle(): (%d)',1),
-25102 => array('Illegal string argument to SetLineStyle(): %s',1),
-25103 => array('Illegal argument to SetLineStyle %s',1),
-25104 => array('Unknown line style: %s',1),
-25105 => array('NULL data specified for a filled polygon. Check that your data is not NULL.',0),
-25106 => array('Image::FillToBorder : Can not allocate more colors',0),
-25107 => array('Can\'t write to file "%s". Check that the process running PHP has enough permission.',1),
-25108 => array('Can\'t stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP.',0),
-25109 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details.',0),
-
-25110 => array('Your PHP installation does not support the chosen graphic format: %s',1),
-25111 => array('Can\'t delete cached image %s. Permission problem?',1),
-25112 => array('Cached imagefile (%s) has file date in the future.',1),
-25113 => array('Can\'t delete cached image "%s". Permission problem?',1),
-25114 => array('PHP has not enough permissions to write to the cache file "%s". Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.',1),
-25115 => array('Can\'t set permission for cached image "%s". Permission problem?',1),
-25116 => array('Cant open file from cache "%s"',1), 
-25117 => array('Can\'t open cached image "%s" for reading.',1),
-25118 => array('Can\'t create directory "%s". Make sure PHP has write permission to this directory.',1),
-25119 => array('Can\'t set permissions for "%s". Permission problems?',1),
-
-25120 => array('Position for legend must be given as percentage in range 0-1',0),
-25121 => array('Empty input data array specified for plot. Must have at least one data point.',0),
-25122 => array('Stroke() must be implemented by concrete subclass to class Plot',0),
-25123 => array('You can\'t use a text X-scale with specified X-coords. Use a "int" or "lin" scale instead.',0),
-25124 => array('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)',0),
-25125 => array('Illegal direction for static line',0),
-25126 => array('Can\'t create truecolor image. Check that the GD2 library is properly setup with PHP.',0),
-25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0),
-
-/*
-**---------------------------------------------------------------------------------------------
-** Pro-version strings
-**---------------------------------------------------------------------------------------------
-*/
-
-/*
-**  jpgraph_table 
-*/
-
-27001 => array('GTextTable: Invalid argument to Set(). Array argument must be 2 dimensional',0),
-27002 => array('GTextTable: Invalid argument to Set()',0),
-27003 => array('GTextTable: Wrong number of arguments to GTextTable::SetColor()',0),
-27004 => array('GTextTable: Specified cell range to be merged is not valid.',0),
-27005 => array('GTextTable: Cannot merge already merged cells in the range: (%d,%d) to (%d,%d)',4),
-27006 => array('GTextTable: Column argument = %d is outside specified table size.',1),
-27007 => array('GTextTable: Row argument = %d is outside specified table size.',1),
-27008 => array('GTextTable: Column and row size arrays must match the dimensions of the table',0),
-27009 => array('GTextTable: Number of table columns or rows are 0. Make sure Init() or Set() is called.',0),
-27010 => array('GTextTable: No alignment specified in call to SetAlign()',0),
-27011 => array('GTextTable: Unknown alignment specified in SetAlign(). Horizontal=%s, Vertical=%s',2),
-27012 => array('GTextTable: Internal error. Invalid alignment specified =%s',1),
-27013 => array('GTextTable: Argument to FormatNumber() must be a string.',0),
-27014 => array('GTextTable: Table is not initilaized with either a call to Set() or Init()',0),
-27015 => array('GTextTable: Cell image constrain type must be TIMG_WIDTH or TIMG_HEIGHT',0),
-
-/*
-**  jpgraph_windrose
-*/
-
-22001 => array('Total percentage for all windrose legs in a windrose plot can not exceed 100% !\n(Current max is: %d)',1),
-22002 => array('Graph is too small to have a scale. Please make the graph larger.',0),
-22004 => array('Label specification for windrose directions must have 16 values (one for each compass direction).',0),
-22005 => array('Line style for radial lines must be on of ("solid","dotted","dashed","longdashed") ',0),
-22006 => array('Illegal windrose type specified.',0),
-22007 => array('To few values for the range legend.',0),
-22008 => array('Internal error: Trying to plot free Windrose even though type is not a free windrose',0),
-22009 => array('You have specified the same direction twice, once with an angle and once with a compass direction (%f degrees)',0),
-22010 => array('Direction must either be a numeric value or one of the 16 compass directions',0),
-22011 => array('Windrose index must be numeric or direction label. You have specified index=%d',1),
-22012 => array('Windrose radial axis specification contains a direction which is not enabled.',0),
-22013 => array('You have specified the look&feel for the same compass direction twice, once with text and once with index (Index=%d)',1),
-22014 => array('Index for compass direction must be between 0 and 15.',0),
-22015 => array('You have specified an undefined Windrose plot type.',0),
-22016 => array('Windrose leg index must be numeric or direction label.',0),
-22017 => array('Windrose data contains a direction which is not enabled. Please adjust what labels are displayed.',0),
-22018 => array('You have specified data for the same compass direction twice, once with text and once with index (Index=%d)',1),
-22019 => array('Index for direction must be between 0 and 15. You can\'t specify angles for a Regular Windplot, only index and compass directions.',0),
-22020 => array('Windrose plot is too large to fit the specified Graph size. Please use WindrosePlot::SetSize() to make the plot smaller or increase the size of the Graph in the initial WindroseGraph() call.',0),
-
-/*
-**  jpgraph_odometer
-*/
-
-13001 => array('Unknown needle style (%d).',1),
-13002 => array('Value for odometer (%f) is outside specified scale [%f,%f]',3),
-
-/*
-**  jpgraph_barcode
-*/
-
-1001 => array('Unknown encoder specification: %s',1),
-1002 => array('Data validation failed. Can\'t encode [%s] using encoding "%s"',2),
-1003 => array('Internal encoding error. Trying to encode %s is not possible in Code 128',1),
-1004 => array('Internal barcode error. Unknown UPC-E encoding type: %s',1),
-1005 => array('Internal error. Can\'t encode character tuple (%s, %s) in Code-128 charset C',2),
-1006 => array('Internal encoding error for CODE 128. Trying to encode control character in CHARSET != A',0),
-1007 => array('Internal encoding error for CODE 128. Trying to encode DEL in CHARSET != B',0),
-1008 => array('Internal encoding error for CODE 128. Trying to encode small letters in CHARSET != B',0),
-1009 => array('Encoding using CODE 93 is not yet supported.',0),
-1010 => array('Encoding using POSTNET is not yet supported.',0),
-1011 => array('Non supported barcode backend for type %s',1),
-
-/*
-** PDF417
-*/
-
-26001 => array('PDF417: Number of Columns must be >= 1 and <= 30',0),
-26002 => array('PDF417: Error level must be between 0 and 8',0),
-26003 => array('PDF417: Invalid format for input data to encode with PDF417',0),
-26004 => array('PDF417: Can\'t encode given data with error level %d and %d columns since it results in too many symbols or more than 90 rows.',2),
-26005 => array('PDF417: Can\'t open file "%s" for writing',1),
-26006 => array('PDF417: Internal error. Data files for PDF417 cluster %d is corrupted.',1),
-26007 => array('PDF417: Internal error. GetPattern: Illegal Code Value = %d (row=%d)',2),
-26008 => array('PDF417: Internal error. Mode not found in mode list!! mode=%d',1),
-26009 => array('PDF417: Encode error: Illegal character. Can\'t encode character with ASCII code=%d',1),
-26010 => array('PDF417: Internal error: No input data in decode.',0),
-26011 => array('PDF417: Encoding error. Can\'t use numeric encoding on non-numeric data.',0),
-26012 => array('PDF417: Internal error. No input data to decode for Binary compressor.',0),
-26013 => array('PDF417: Internal error. Checksum error. Coefficient tables corrupted.',0),
-26014 => array('PDF417: Internal error. No data to calculate codewords on.',0),
-26015 => array('PDF417: Internal error. State transition table entry 0 is NULL. Entry 1 = (%s)',1),
-26016 => array('PDF417: Internal error: Unrecognized state transition mode in decode.',0),
-
-
-);
-
-/*
- ** EOF
- */
-
-?>
diff --git a/nightly-test-server/jpgraph/lang/prod.inc.php b/nightly-test-server/jpgraph/lang/prod.inc.php
deleted file mode 100644
index 3ca7192..0000000
--- a/nightly-test-server/jpgraph/lang/prod.inc.php
+++ /dev/null
@@ -1,355 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	PROD.INC.PHP
-// Description: Special localization file with the same error messages 
-//              for all errors.
-// Created: 	2006-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// The single error message for all errors
-DEFINE('DEFAULT_ERROR_MESSAGE','We are sorry but the system could not generate the requested image. Please contact site support to resolve this problem. Problem no: #');
-
-// Note: Format of each error message is array(<error message>,<number of arguments>)
-$_jpg_messages = array(
-
-/*
-** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text
-*/
-10  => array('<table border=1><tr><td><font color=darkred size=4><b>JpGraph Error:</b> 
-HTTP headers have already been sent.<br>Caused by output from file <b>%s</b> at line <b>%d</b>.</font></td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening "<b>&lt;?php</b>".</td></tr></table>',2),
-
-
-11 => array(DEFAULT_ERROR_MESSAGE.'11',0),
-12 => array(DEFAULT_ERROR_MESSAGE.'12',0),
-13 => array(DEFAULT_ERROR_MESSAGE.'13',0),
-2001 => array(DEFAULT_ERROR_MESSAGE.'2001',0),
-2002 => array(DEFAULT_ERROR_MESSAGE.'2002',0),
-2003 => array(DEFAULT_ERROR_MESSAGE.'2003',0),
-2004 => array(DEFAULT_ERROR_MESSAGE.'2004',0),
-2005 => array(DEFAULT_ERROR_MESSAGE.'2005',0),
-2006 => array(DEFAULT_ERROR_MESSAGE.'2006',0),
-2007 => array(DEFAULT_ERROR_MESSAGE.'2007',0),
-2008 => array(DEFAULT_ERROR_MESSAGE.'2008',0),
-2009 => array(DEFAULT_ERROR_MESSAGE.'2009',0),
-2010 => array(DEFAULT_ERROR_MESSAGE.'2010',0),
-2011 => array(DEFAULT_ERROR_MESSAGE.'2011',0),
-2012 => array(DEFAULT_ERROR_MESSAGE.'2012',0),
-2013 => array(DEFAULT_ERROR_MESSAGE.'2013',0),
-2014 => array(DEFAULT_ERROR_MESSAGE.'2014',0),
-3001 => array(DEFAULT_ERROR_MESSAGE.'3001',0),
-4002 => array(DEFAULT_ERROR_MESSAGE.'4002',0),
-5001 => array(DEFAULT_ERROR_MESSAGE.'5001',0),
-5002 => array(DEFAULT_ERROR_MESSAGE.'5002',0),
-5003 => array(DEFAULT_ERROR_MESSAGE.'5003',0),
-5004 => array(DEFAULT_ERROR_MESSAGE.'5004',0),
-6001 => array(DEFAULT_ERROR_MESSAGE.'6001',0),
-6002 => array(DEFAULT_ERROR_MESSAGE.'6002',0),
-6003 => array(DEFAULT_ERROR_MESSAGE.'6003',0),
-6004 => array(DEFAULT_ERROR_MESSAGE.'6004',0),
-6005 => array(DEFAULT_ERROR_MESSAGE.'6005',0),
-6006 => array(DEFAULT_ERROR_MESSAGE.'6006',0),
-6007 => array(DEFAULT_ERROR_MESSAGE.'6007',0),
-6008 => array(DEFAULT_ERROR_MESSAGE.'6008',0),
-6009 => array(DEFAULT_ERROR_MESSAGE.'6009',0),
-6010 => array(DEFAULT_ERROR_MESSAGE.'6010',0),
-6011 => array(DEFAULT_ERROR_MESSAGE.'6011',0),
-6012 => array(DEFAULT_ERROR_MESSAGE.'6012',0),
-6015 => array(DEFAULT_ERROR_MESSAGE.'6015',0),
-6016 => array(DEFAULT_ERROR_MESSAGE.'6016',0),
-6017 => array(DEFAULT_ERROR_MESSAGE.'6017',0),
-6018 => array(DEFAULT_ERROR_MESSAGE.'6018',0),
-6019 => array(DEFAULT_ERROR_MESSAGE.'6019',0),
-6020 => array(DEFAULT_ERROR_MESSAGE.'6020',0),
-6021 => array(DEFAULT_ERROR_MESSAGE.'6021',0),
-6022 => array(DEFAULT_ERROR_MESSAGE.'6022',0),
-6023 => array(DEFAULT_ERROR_MESSAGE.'6023',0),
-6024 => array(DEFAULT_ERROR_MESSAGE.'6024',0),
-6025 => array(DEFAULT_ERROR_MESSAGE.'6025',0),
-6027 => array(DEFAULT_ERROR_MESSAGE.'6027',0),
-6028 => array(DEFAULT_ERROR_MESSAGE.'6028',0),
-6029 => array(DEFAULT_ERROR_MESSAGE.'6029',0),
-6030 => array(DEFAULT_ERROR_MESSAGE.'6030',0),
-6031 => array(DEFAULT_ERROR_MESSAGE.'6031',0),
-6032 => array(DEFAULT_ERROR_MESSAGE.'6032',0),
-7001 => array(DEFAULT_ERROR_MESSAGE.'7001',0),
-8001 => array(DEFAULT_ERROR_MESSAGE.'8001',0),
-8002 => array(DEFAULT_ERROR_MESSAGE.'8002',0),
-8003 => array(DEFAULT_ERROR_MESSAGE.'8003',0),
-8004 => array(DEFAULT_ERROR_MESSAGE.'8004',0),
-9001 => array(DEFAULT_ERROR_MESSAGE.'9001',0),
-10001 => array(DEFAULT_ERROR_MESSAGE.'10001',0),
-10002 => array(DEFAULT_ERROR_MESSAGE.'10002',0),
-11001 => array(DEFAULT_ERROR_MESSAGE.'11001',0),
-11002 => array(DEFAULT_ERROR_MESSAGE.'11002',0),
-11003 => array(DEFAULT_ERROR_MESSAGE.'11003',0),
-11004 => array(DEFAULT_ERROR_MESSAGE.'11004',0),
-11005 => array(DEFAULT_ERROR_MESSAGE.'11005',0),
-12001 => array(DEFAULT_ERROR_MESSAGE.'12001',0),
-12002 => array(DEFAULT_ERROR_MESSAGE.'12002',0),
-12003 => array(DEFAULT_ERROR_MESSAGE.'12003',0),
-12004 => array(DEFAULT_ERROR_MESSAGE.'12004',0),
-12005 => array(DEFAULT_ERROR_MESSAGE.'12005',0),
-12006 => array(DEFAULT_ERROR_MESSAGE.'12006',0),
-12007 => array(DEFAULT_ERROR_MESSAGE.'12007',0),
-12008 => array(DEFAULT_ERROR_MESSAGE.'12008',0),
-12009 => array(DEFAULT_ERROR_MESSAGE.'12009',0),
-12010 => array(DEFAULT_ERROR_MESSAGE.'12010',0),
-12011 => array(DEFAULT_ERROR_MESSAGE.'12011',0),
-12012 => array(DEFAULT_ERROR_MESSAGE.'12012',0),
-14001 => array(DEFAULT_ERROR_MESSAGE.'14001',0),
-14002 => array(DEFAULT_ERROR_MESSAGE.'14002',0),
-14003 => array(DEFAULT_ERROR_MESSAGE.'14003',0),
-14004 => array(DEFAULT_ERROR_MESSAGE.'14004',0),
-14005 => array(DEFAULT_ERROR_MESSAGE.'14005',0),
-14006 => array(DEFAULT_ERROR_MESSAGE.'14006',0),
-14007 => array(DEFAULT_ERROR_MESSAGE.'14007',0),
-15001 => array(DEFAULT_ERROR_MESSAGE.'15001',0),
-15002 => array(DEFAULT_ERROR_MESSAGE.'15002',0),
-15003 => array(DEFAULT_ERROR_MESSAGE.'15003',0),
-15004 => array(DEFAULT_ERROR_MESSAGE.'15004',0),
-15005 => array(DEFAULT_ERROR_MESSAGE.'15005',0),
-15006 => array(DEFAULT_ERROR_MESSAGE.'15006',0),
-15007 => array(DEFAULT_ERROR_MESSAGE.'15007',0),
-15008 => array(DEFAULT_ERROR_MESSAGE.'15008',0),
-15009 => array(DEFAULT_ERROR_MESSAGE.'15009',0),
-15010 => array(DEFAULT_ERROR_MESSAGE.'15010',0),
-15011 => array(DEFAULT_ERROR_MESSAGE.'15011',0),
-16001 => array(DEFAULT_ERROR_MESSAGE.'16001',0),
-16002 => array(DEFAULT_ERROR_MESSAGE.'16002',0),
-16003 => array(DEFAULT_ERROR_MESSAGE.'16003',0),
-16004 => array(DEFAULT_ERROR_MESSAGE.'16004',0),
-17001 => array(DEFAULT_ERROR_MESSAGE.'17001',0),
-17002 => array(DEFAULT_ERROR_MESSAGE.'17002',0),
-17004 => array(DEFAULT_ERROR_MESSAGE.'17004',0),
-18001 => array(DEFAULT_ERROR_MESSAGE.'18001',0),
-18002 => array(DEFAULT_ERROR_MESSAGE.'18002',0),
-18003 => array(DEFAULT_ERROR_MESSAGE.'18003',0),
-18004 => array(DEFAULT_ERROR_MESSAGE.'18004',0),
-18005 => array(DEFAULT_ERROR_MESSAGE.'18005',0),
-18006 => array(DEFAULT_ERROR_MESSAGE.'18006',0),
-18007 => array(DEFAULT_ERROR_MESSAGE.'18007',0),
-18008 => array(DEFAULT_ERROR_MESSAGE.'18008',0),
-19001 => array(DEFAULT_ERROR_MESSAGE.'19001',0),
-19002 => array(DEFAULT_ERROR_MESSAGE.'19002',0),
-19003 => array(DEFAULT_ERROR_MESSAGE.'19003',0),
-20001 => array(DEFAULT_ERROR_MESSAGE.'20001',0),
-20002 => array(DEFAULT_ERROR_MESSAGE.'20002',0),
-20003 => array(DEFAULT_ERROR_MESSAGE.'20003',0),
-21001 => array(DEFAULT_ERROR_MESSAGE.'21001',0),
-23001 => array(DEFAULT_ERROR_MESSAGE.'23001',0),
-23002 => array(DEFAULT_ERROR_MESSAGE.'23002',0),
-23003 => array(DEFAULT_ERROR_MESSAGE.'23003',0),
-24001 => array(DEFAULT_ERROR_MESSAGE.'24001',0),
-24002 => array(DEFAULT_ERROR_MESSAGE.'24002',0),
-24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0),
-25001 => array(DEFAULT_ERROR_MESSAGE.'25001',0),
-25002 => array(DEFAULT_ERROR_MESSAGE.'25002',0),
-25003 => array(DEFAULT_ERROR_MESSAGE.'25003',0),
-25004 => array(DEFAULT_ERROR_MESSAGE.'25004',0),
-25005 => array(DEFAULT_ERROR_MESSAGE.'25005',0),
-25006 => array(DEFAULT_ERROR_MESSAGE.'25006',0),
-25007 => array(DEFAULT_ERROR_MESSAGE.'25007',0),
-25008 => array(DEFAULT_ERROR_MESSAGE.'25008',0),
-25009 => array(DEFAULT_ERROR_MESSAGE.'25009',0),
-25010 => array(DEFAULT_ERROR_MESSAGE.'25010',0),
-25011 => array(DEFAULT_ERROR_MESSAGE.'25011',0),
-25012 => array(DEFAULT_ERROR_MESSAGE.'25012',0),
-25013 => array(DEFAULT_ERROR_MESSAGE.'25013',0),
-25014 => array(DEFAULT_ERROR_MESSAGE.'25014',0),
-25015 => array(DEFAULT_ERROR_MESSAGE.'25015',0),
-25016 => array(DEFAULT_ERROR_MESSAGE.'25016',0),
-25017 => array(DEFAULT_ERROR_MESSAGE.'25017',0),
-25018 => array(DEFAULT_ERROR_MESSAGE.'25018',0),
-25019 => array(DEFAULT_ERROR_MESSAGE.'25019',0),
-25020 => array(DEFAULT_ERROR_MESSAGE.'25020',0),
-25021 => array(DEFAULT_ERROR_MESSAGE.'25021',0),
-25022 => array(DEFAULT_ERROR_MESSAGE.'25022',0),
-25023 => array(DEFAULT_ERROR_MESSAGE.'25023',0),
-25024 => array(DEFAULT_ERROR_MESSAGE.'25024',0),
-25025 => array(DEFAULT_ERROR_MESSAGE.'25025',0),
-25026 => array(DEFAULT_ERROR_MESSAGE.'25026',0),
-25027 => array(DEFAULT_ERROR_MESSAGE.'25027',0),
-25028 => array(DEFAULT_ERROR_MESSAGE.'25028',0),
-25029 => array(DEFAULT_ERROR_MESSAGE.'25029',0),
-25030 => array(DEFAULT_ERROR_MESSAGE.'25030',0),
-25031 => array(DEFAULT_ERROR_MESSAGE.'25031',0),
-25032 => array(DEFAULT_ERROR_MESSAGE.'25032',0),
-25033 => array(DEFAULT_ERROR_MESSAGE.'25033',0),
-25034 => array(DEFAULT_ERROR_MESSAGE.'25034',0),
-25035 => array(DEFAULT_ERROR_MESSAGE.'25035',0),
-25036 => array(DEFAULT_ERROR_MESSAGE.'25036',0),
-25037 => array(DEFAULT_ERROR_MESSAGE.'25037',0),
-25038 => array(DEFAULT_ERROR_MESSAGE.'25038',0),
-25039 => array(DEFAULT_ERROR_MESSAGE.'25039',0),
-25040 => array(DEFAULT_ERROR_MESSAGE.'25040',0),
-25041 => array(DEFAULT_ERROR_MESSAGE.'25041',0),
-25042 => array(DEFAULT_ERROR_MESSAGE.'25042',0),
-25043 => array(DEFAULT_ERROR_MESSAGE.'25043',0),
-25044 => array(DEFAULT_ERROR_MESSAGE.'25044',0),
-25045 => array(DEFAULT_ERROR_MESSAGE.'25045',0),
-25046 => array(DEFAULT_ERROR_MESSAGE.'25046',0),
-25047 => array(DEFAULT_ERROR_MESSAGE.'25047',0),
-25048 => array(DEFAULT_ERROR_MESSAGE.'25048',0),
-25049 => array(DEFAULT_ERROR_MESSAGE.'25049',0),
-25050 => array(DEFAULT_ERROR_MESSAGE.'25050',0),
-25051 => array(DEFAULT_ERROR_MESSAGE.'25051',0),
-25052 => array(DEFAULT_ERROR_MESSAGE.'25052',0),
-25053 => array(DEFAULT_ERROR_MESSAGE.'25053',0),
-25054 => array(DEFAULT_ERROR_MESSAGE.'25054',0),
-25055 => array(DEFAULT_ERROR_MESSAGE.'25055',0),
-25056 => array(DEFAULT_ERROR_MESSAGE.'25056',0),
-25057 => array(DEFAULT_ERROR_MESSAGE.'25057',0),
-25058 => array(DEFAULT_ERROR_MESSAGE.'25058',0),
-25059 => array(DEFAULT_ERROR_MESSAGE.'25059',0),
-25060 => array(DEFAULT_ERROR_MESSAGE.'25060',0),
-25061 => array(DEFAULT_ERROR_MESSAGE.'25061',0),
-25062 => array(DEFAULT_ERROR_MESSAGE.'25062',0),
-25063 => array(DEFAULT_ERROR_MESSAGE.'25063',0),
-25064 => array(DEFAULT_ERROR_MESSAGE.'25064',0),
-25065 => array(DEFAULT_ERROR_MESSAGE.'25065',0),
-25066 => array(DEFAULT_ERROR_MESSAGE.'25066',0),
-25067 => array(DEFAULT_ERROR_MESSAGE.'25067',0),
-25068 => array(DEFAULT_ERROR_MESSAGE.'25068',0),
-25069 => array(DEFAULT_ERROR_MESSAGE.'25069',0),
-25070 => array(DEFAULT_ERROR_MESSAGE.'25070',0),
-25071 => array(DEFAULT_ERROR_MESSAGE.'25071',0),
-25072 => array(DEFAULT_ERROR_MESSAGE.'25072',0),
-25073 => array(DEFAULT_ERROR_MESSAGE.'25073',0),
-25074 => array(DEFAULT_ERROR_MESSAGE.'25074',0),
-25075 => array(DEFAULT_ERROR_MESSAGE.'25075',0),
-25077 => array(DEFAULT_ERROR_MESSAGE.'25077',0),
-25078 => array(DEFAULT_ERROR_MESSAGE.'25078',0),
-25079 => array(DEFAULT_ERROR_MESSAGE.'25079',0),
-25080 => array(DEFAULT_ERROR_MESSAGE.'25080',0),
-25081 => array(DEFAULT_ERROR_MESSAGE.'25081',0),
-25082 => array(DEFAULT_ERROR_MESSAGE.'25082',0),
-25083 => array(DEFAULT_ERROR_MESSAGE.'25083',0),
-25084 => array(DEFAULT_ERROR_MESSAGE.'25084',0),
-25085 => array(DEFAULT_ERROR_MESSAGE.'25085',0),
-25086 => array(DEFAULT_ERROR_MESSAGE.'25086',0),
-25087 => array(DEFAULT_ERROR_MESSAGE.'25087',0),
-25088 => array(DEFAULT_ERROR_MESSAGE.'25088',0),
-25089 => array(DEFAULT_ERROR_MESSAGE.'25089',0),
-25090 => array(DEFAULT_ERROR_MESSAGE.'25090',0),
-25091 => array(DEFAULT_ERROR_MESSAGE.'25091',0),
-25092 => array(DEFAULT_ERROR_MESSAGE.'25092',0),
-25093 => array(DEFAULT_ERROR_MESSAGE.'25093',0),
-25094 => array(DEFAULT_ERROR_MESSAGE.'25094',0),
-25095 => array(DEFAULT_ERROR_MESSAGE.'25095',0),
-25096 => array(DEFAULT_ERROR_MESSAGE.'25096',0),
-25097 => array(DEFAULT_ERROR_MESSAGE.'25097',0),
-25098 => array(DEFAULT_ERROR_MESSAGE.'25098',0),
-25099 => array(DEFAULT_ERROR_MESSAGE.'25099',0),
-25100 => array(DEFAULT_ERROR_MESSAGE.'25100',0),
-25101 => array(DEFAULT_ERROR_MESSAGE.'25101',0),
-25102 => array(DEFAULT_ERROR_MESSAGE.'25102',0),
-25103 => array(DEFAULT_ERROR_MESSAGE.'25103',0),
-25104 => array(DEFAULT_ERROR_MESSAGE.'25104',0),
-25105 => array(DEFAULT_ERROR_MESSAGE.'25105',0),
-25106 => array(DEFAULT_ERROR_MESSAGE.'25106',0),
-25107 => array(DEFAULT_ERROR_MESSAGE.'25107',0),
-25108 => array(DEFAULT_ERROR_MESSAGE.'25108',0),
-25109 => array(DEFAULT_ERROR_MESSAGE.'25109',0),
-25110 => array(DEFAULT_ERROR_MESSAGE.'25110',0),
-25111 => array(DEFAULT_ERROR_MESSAGE.'25111',0),
-25112 => array(DEFAULT_ERROR_MESSAGE.'25112',0),
-25113 => array(DEFAULT_ERROR_MESSAGE.'25113',0),
-25114 => array(DEFAULT_ERROR_MESSAGE.'25114',0),
-25115 => array(DEFAULT_ERROR_MESSAGE.'25115',0),
-25116 => array(DEFAULT_ERROR_MESSAGE.'25116',0),
-25117 => array(DEFAULT_ERROR_MESSAGE.'25117',0),
-25118 => array(DEFAULT_ERROR_MESSAGE.'25118',0),
-25119 => array(DEFAULT_ERROR_MESSAGE.'25119',0),
-25120 => array(DEFAULT_ERROR_MESSAGE.'25120',0),
-25121 => array(DEFAULT_ERROR_MESSAGE.'25121',0),
-25122 => array(DEFAULT_ERROR_MESSAGE.'25122',0),
-25123 => array(DEFAULT_ERROR_MESSAGE.'25123',0),
-25124 => array(DEFAULT_ERROR_MESSAGE.'25124',0),
-25125 => array(DEFAULT_ERROR_MESSAGE.'25125',0),
-25126 => array(DEFAULT_ERROR_MESSAGE.'25126',0),
-25127 => array(DEFAULT_ERROR_MESSAGE.'25126',0),
-24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0),
-24004 => array(DEFAULT_ERROR_MESSAGE.'24004',0),
-24005 => array(DEFAULT_ERROR_MESSAGE.'24005',0),
-24006 => array(DEFAULT_ERROR_MESSAGE.'24006',0),
-24007 => array(DEFAULT_ERROR_MESSAGE.'24007',0),
-24008 => array(DEFAULT_ERROR_MESSAGE.'24008',0),
-24009 => array(DEFAULT_ERROR_MESSAGE.'24009',0),
-24010 => array(DEFAULT_ERROR_MESSAGE.'24010',0),
-24011 => array(DEFAULT_ERROR_MESSAGE.'24011',0),
-24012 => array(DEFAULT_ERROR_MESSAGE.'24012',0),
-24013 => array(DEFAULT_ERROR_MESSAGE.'24013',0),
-24014 => array(DEFAULT_ERROR_MESSAGE.'24014',0),
-24015 => array(DEFAULT_ERROR_MESSAGE.'24015',0),
-22001 => array(DEFAULT_ERROR_MESSAGE.'22001',0),
-22002 => array(DEFAULT_ERROR_MESSAGE.'22002',0),
-22004 => array(DEFAULT_ERROR_MESSAGE.'22004',0),
-22005 => array(DEFAULT_ERROR_MESSAGE.'22005',0),
-22006 => array(DEFAULT_ERROR_MESSAGE.'22006',0),
-22007 => array(DEFAULT_ERROR_MESSAGE.'22007',0),
-22008 => array(DEFAULT_ERROR_MESSAGE.'22008',0),
-22009 => array(DEFAULT_ERROR_MESSAGE.'22009',0),
-22010 => array(DEFAULT_ERROR_MESSAGE.'22010',0),
-22011 => array(DEFAULT_ERROR_MESSAGE.'22011',0),
-22012 => array(DEFAULT_ERROR_MESSAGE.'22012',0),
-22013 => array(DEFAULT_ERROR_MESSAGE.'22013',0),
-22014 => array(DEFAULT_ERROR_MESSAGE.'22014',0),
-22015 => array(DEFAULT_ERROR_MESSAGE.'22015',0),
-22016 => array(DEFAULT_ERROR_MESSAGE.'22016',0),
-22017 => array(DEFAULT_ERROR_MESSAGE.'22017',0),
-22018 => array(DEFAULT_ERROR_MESSAGE.'22018',0),
-22019 => array(DEFAULT_ERROR_MESSAGE.'22019',0),
-22020 => array(DEFAULT_ERROR_MESSAGE.'22020',0),
-13001 => array(DEFAULT_ERROR_MESSAGE.'13001',0),
-13002 => array(DEFAULT_ERROR_MESSAGE.'13002',0),
-1001 => array(DEFAULT_ERROR_MESSAGE.'1001',0),
-1002 => array(DEFAULT_ERROR_MESSAGE.'1002',0),
-1003 => array(DEFAULT_ERROR_MESSAGE.'1003',0),
-1004 => array(DEFAULT_ERROR_MESSAGE.'1004',0),
-1005 => array(DEFAULT_ERROR_MESSAGE.'1005',0),
-1006 => array(DEFAULT_ERROR_MESSAGE.'1006',0),
-1007 => array(DEFAULT_ERROR_MESSAGE.'1007',0),
-1008 => array(DEFAULT_ERROR_MESSAGE.'1008',0),
-1009 => array(DEFAULT_ERROR_MESSAGE.'1009',0),
-1010 => array(DEFAULT_ERROR_MESSAGE.'1010',0),
-1011 => array(DEFAULT_ERROR_MESSAGE.'1011',0),
-26001 => array(DEFAULT_ERROR_MESSAGE.'26001',0),
-26002 => array(DEFAULT_ERROR_MESSAGE.'26002',0),
-26003 => array(DEFAULT_ERROR_MESSAGE.'26003',0),
-26004 => array(DEFAULT_ERROR_MESSAGE.'26004',0),
-26005 => array(DEFAULT_ERROR_MESSAGE.'26005',0),
-26006 => array(DEFAULT_ERROR_MESSAGE.'26006',0),
-26007 => array(DEFAULT_ERROR_MESSAGE.'26007',0),
-26008 => array(DEFAULT_ERROR_MESSAGE.'26008',0),
-26009 => array(DEFAULT_ERROR_MESSAGE.'26009',0),
-26010 => array(DEFAULT_ERROR_MESSAGE.'26010',0),
-26011 => array(DEFAULT_ERROR_MESSAGE.'26011',0),
-26012 => array(DEFAULT_ERROR_MESSAGE.'26012',0),
-26013 => array(DEFAULT_ERROR_MESSAGE.'26013',0),
-26014 => array(DEFAULT_ERROR_MESSAGE.'26014',0),
-26015 => array(DEFAULT_ERROR_MESSAGE.'26015',0),
-26016 => array(DEFAULT_ERROR_MESSAGE.'26016',0),
-
-27001 => array(DEFAULT_ERROR_MESSAGE.'27001',0),
-27002 => array(DEFAULT_ERROR_MESSAGE.'27002',0),
-27003 => array(DEFAULT_ERROR_MESSAGE.'27003',0),
-27004 => array(DEFAULT_ERROR_MESSAGE.'27004',0),
-27005 => array(DEFAULT_ERROR_MESSAGE.'27005',0),
-27006 => array(DEFAULT_ERROR_MESSAGE.'27006',0),
-27007 => array(DEFAULT_ERROR_MESSAGE.'27007',0),
-27008 => array(DEFAULT_ERROR_MESSAGE.'27008',0),
-27009 => array(DEFAULT_ERROR_MESSAGE.'27009',0),
-27010 => array(DEFAULT_ERROR_MESSAGE.'27010',0),
-27011 => array(DEFAULT_ERROR_MESSAGE.'27011',0),
-27012 => array(DEFAULT_ERROR_MESSAGE.'27012',0),
-27013 => array(DEFAULT_ERROR_MESSAGE.'27013',0),
-27014 => array(DEFAULT_ERROR_MESSAGE.'27014',0),
-27015 => array(DEFAULT_ERROR_MESSAGE.'27015',0),
-);
-
-?>
diff --git a/nightly-test-server/locgraph.php b/nightly-test-server/locgraph.php
deleted file mode 100644
index 6b8faee..0000000
--- a/nightly-test-server/locgraph.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-}
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-}
-
-$locgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-
-$lines  = array();
-$files = array();
-$dirs = array();
-$xdata = array();
-
-/********************************
- *
- * This is where we choose the bounds on the graph
- * 
- ********************************/
-if(isset($start) && isset($end)){
-	$query = mysql_query("select * from code where added <= \"$end\" and added >= \"$start\" order by added desc") or die (mysql_error());
-}
-else if(!isset($start) && isset($end)){
-	$query = mysql_query("select * from code where added <=\"$end\" order by added desc") or die (mysql_error());
-}	
-else if(isset($start) && !isset($end)){
-	$query = mysql_query("select * from code where added >= \"$start\" order by added desc") or die (mysql_error());
-}
-else{
-	$query = mysql_query("select * from code order by added desc") or die (mysql_error());
-}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize = $HTTP_GET_VARS['xsize'];
-}
-else{
-	$xsize=400;
-}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}
-else{
-	$ysize=250;
-}
-
-
-while($row = mysql_fetch_array($query)){
-	array_push($lines, $row['loc']);
-	#array_push($dirs, $row['dirs']);
-	#array_push($files, $row['files']);
-	preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $row['added'], $values);
-	$seconds = mktime($values[4], $values[5], $values[6], $values[2], $values[3],$values[1]);
-	array_push($xdata, $seconds);
-}
-
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" Lines of Code in CVS Repository ");
-#$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(70,40,30,80);
-$graph->xaxis->title->SetMargin(70);
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.2,0.13,'left','top');
-$graph->legend->hide(true);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-$line = new LinePlot($lines, $xdata);
-$line->SetLegend("Lines of code");
-$line->SetColor("red");
-
-$graph->Add($line);
-$graph->Stroke();
-
-mysql_close($locgraphlink);
-?>
diff --git a/nightly-test-server/machine.php b/nightly-test-server/machine.php
deleted file mode 100644
index 184fec5..0000000
--- a/nightly-test-server/machine.php
+++ /dev/null
@@ -1,456 +0,0 @@
-<?
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-	print "Error: Incorrect URL for machine.php!\n";
-        die();
-}
-$machine = $HTTP_GET_VARS['machine'];
-		
-if(!(include "NightlyTester.php")){
-	print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine);
-$machine_name = $row['name'];
-if(strcmp($row['nickname'],"")!=0){
-	$machine_name=$row['nickname'];
-}
-
-
-?>
-
-<html>
-<head>
-<title>LLVM Machine Test Results For <?php print $machine_name ?></title>
-<script type="text/javascript" src="popup.js"></script>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Machine Test Results For <?php print $machine_name ?></b></font></center><br>
-
-<table cellspacing=5 cellpadding=5 border=0>
-        <tr>
-                <td valign=top>
-                        <? 
-			$machine = $HTTP_GET_VARS['machine'];
-			$night = -1;
-			include "sidebar.php"; 
-			?>
-                </td>
-                <td valign=top>
-
-<?
-
-print "<table border=0 cellpadding=0 cellspacing=5>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-//print $row['uname'];
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-
-$result = getNightsResource($machine);
-$recent=mysql_fetch_array($result);
-$recent_id=$recent['id'];
-$cur_date = $recent['added'];
-$old=mysql_fetch_array($result);
-$old_id=$old['id'];
-mysql_free_result($result);
-
-include("ProgramResults.php");
-if(is_numeric($recent_id) && is_numeric($old_id)){
-	$today_results = GetDayResults($recent_id, $category_array);
-	$yesterday_results = GetDayResults($old_id, $category_array);
-	$percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results);
-
-	/* note: $medium_change, $large_change, and $crazy_change are defined in ProgramResult.php */
-	print "<table border=0><tr><td>\n";
-	
-	print "<table border=0>\n";
-	Print "<tr><td>$medium_change % differences from yesterday:</td><td> $medium_number</td></tr>\n";
-	Print "<tr><td>$large_change % differences from yesterday:</td><td> $large_number</td></tr>\n";
-	Print "<tr><td>$crazy_change % differences from yesterday:</td><td> $crazy_number</td></tr>\n";
-	print "</table>\n";
-	
-	print "</td><td valign=top>";
-
-	print "<span style=\"position:relative;\">\n";
-	print "<span id=\"differences\" class=\"popup\">\n";
-	print "<pre>The number of measurements that signifigantly<br>changed from the previous test.</pre>\n";
-	print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('differences');\">?</a></span>\n";
-
-	print "</td></tr></table>\n";
-}
-
-print "<form method=GET action=\"machinegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine\">\n";
-print "<input type=hidden name=night value=\"$recent_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-print "<input type=hidden name=start value=\"2000-01-01 01:01:01\">\n";
-
-echo "<table border=1 cellpadding=0 cellspacing=0>\n";
-echo "<tr bgcolor=#FFCC99>";
-	echo "<td>";
-		echo "Date added";
-	echo "</td>";
-	
-	echo "<td align=center>";
-		echo "CVS checkout time";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"getcvstime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Configure time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"configuretime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Configure time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"configuretime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Build time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"buildtime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Build time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"buildtime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Dejagnu time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"dejagnutime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Dejagnu time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"dejagnutime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-                echo "# of expected test passes";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_exppass\">\n";
-        echo "</td>";
-        echo "<td align=center>";
-                echo "# of unexpected test failures";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_unexpfail\">\n";
-        echo "</td>";
-        echo "<td align=center>";
-                echo "# of expected test failures";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_expfail\">\n";
-        echo "</td>";
-	echo "<td align=center>";
-		echo "# of warnings";
-	echo "</td>";
-	echo "<td>";
-	echo "</td>";
-echo "</tr>";
-
-$result = getNightsResource($machine);
-$line=1;
-$row = mysql_fetch_array($result);
-$x=0;
-
-
-while($x<10 && $prev_row = mysql_fetch_array($result)){
-	$warnings ="";
-	if(strcmp($row['warnings'],"")!=0){
-		$warnings=$row['warnings'];
-	}
-	$num_warnings = preg_match_all('/warning/', $warnings, $match);	
-
-	if(strpos($row['buildstatus'],"OK")===FALSE){
-		print "\t<tr bgcolor=#FFCC33>\n";
-		$build_ok=0;
-	}
-	else if($line % 2 ==0){
-		print "\t<tr bgcolor=#DDDDDD>\n";
-		$build_ok=1;
-	}
-	else{
-		print "\t<tr bgcolor='white'>\n";
-		$build_ok=1;
-	}	
-	$line++;
-	
-	#this test is to test whether the test that precedes this failed,
-	#thus the test would have bogus data and we shouldnt color based on its
-	#results
-	if(strpos($prev_row['buildstatus'],"OK")===false){
-		$prev_build_ok=0;
-	}
-	else{
-		$prev_build_ok=1;
-	}
-
-	/*~~~~~~~~~~~~ Date of test ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
-		echo "$date";
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Get CVS Wall Time ~~~~~~~~~~~~*/
-
-
-	echo "<td>";
-		echo $row['getcvstime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Configure Time CPU ~~~~~~~~~~~~*/
-	if($prev_row['configuretime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round(( ($prev_row['configuretime_cpu'] - $row['configuretime_cpu']) / $prev_row['configuretime_cpu'] ) * 100,2);
-		if ($delta > 20){
-			print "<td bgcolor=#CCFFCC>{$row['configuretime_cpu']}</td>";
-		}
-		else if ($delta < -20){
-			print "<td bgcolor=#FFAAAA>{$row['configuretime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['configuretime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['configuretime_cpu']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Configure Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['configuretime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Build Time CPU ~~~~~~~~~~~~*/
-
-	if($prev_row['buildtime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round(( ($prev_row['buildtime_cpu'] - $row['buildtime_cpu']) / $prev_row['buildtime_cpu'] ) * 100,2);
-		if ($delta > 10){
-			print "<td bgcolor=#CCFFCC>{$row['buildtime_cpu']}</td>";
-		}
-		else if ($delta < -10){
-			print "<td bgcolor=#FFAAAA>{$row['buildtime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['buildtime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['buildtime_cpu']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Build Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['buildtime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Dejagnu Time CPU ~~~~~~~~~~~~*/
-
-	if($prev_row['dejagnutime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round( ( ($prev_row['dejagnutime_cpu'] - $row['dejagnutime_cpu']) / $prev_row['dejagnutime_cpu'] ) * 100,2);
-		if ($delta > 10){
-			print "<td bgcolor=#CCFFCC>{$row['dejagnutime_cpu']}</td>";
-		}
-		else if ($delta < -10){
-			print "<td bgcolor=#FFAAAA>{$row['dejagnutime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['dejagnutime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['dejagnutime_cpu']}</td>";
-	}
-	
-
-	/*~~~~~~~~~~~~ Dejagnu Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['dejagnutime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ # of expected passes ~~~~~~~~~~~~*/
-
-	if ($row['teststats_exppass'] > $prev_row['teststats_exppass'] && $build_ok && $prev_build_ok){
-		$color="#CCFFCC";
-	}
-	else if ($row['teststats_exppass'] < $prev_row['teststats_exppass'] && $build_ok  && $prev_build_ok){
-		$color="#FFAAAA";	
-	}
-	else{
-		$color="white";
-	}
-	if(!$build_ok){
-		print "<td>{$row['teststats_exppass']}</td>";		
-	}
-	else{
-		print "<td bgcolor=$color>{$row['teststats_exppass']}</td>";		
-	}
-	/*~~~~~~~~~~~~ # of unexpected failures ~~~~~~~~~~~~*/
-
-	if ($row['teststats_unexpfail'] < $prev_row['teststats_unexpfail'] && $build_ok && $prev_build_ok){
-		$color="#CCFFCC";
-	}
-	else if ($row['teststats_unexpfail'] > $prev_row['teststats_unexpfail'] && $build_ok && $prev_build_ok){
-		$color="#FFAAAA";	
-	}
-	else{
-		$color="white";
-	}
-
-	if(!$build_ok){
-		print "<td>{$row['teststats_unexpfail']}</td>";
-	}
-	else if($row['teststats_exppass']!=0){
-		print "<td bgcolor=$color><a href=\"test.php?machine=$machine&night={$row['id']}#unexpfail_tests\">{$row['teststats_unexpfail']}</a></td>";
-	}
-	else{
-		print "<td bgcolor=$color>{$row['teststats_unexpfail']}</td>";		
-	}
-
-	/*~~~~~~~~~~~~ # of expected failures ~~~~~~~~~~~~*/
-
-				if ($row['teststats_expfail'] < $prev_row['teststats_expfail'] && $build_ok && $prev_build_ok){
-		print "<td bgcolor=#CCFFCC>{$row['teststats_expfail']}</td>";
-	}
-	else if ($row['teststats_expfail'] > $prev_row['teststats_expfail'] && $build_ok && $prev_build_ok){
-		print "<td bgcolor=#FFAAAA>{$row['teststats_expfail']}</td>";
-	}
-	else{
-		print "<td>{$row['teststats_expfail']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Number Of Warnings ~~~~~~~~~~~~*/
-
-	if($num_warnings>0){
-		print "\t<td><a href=\"test.php?machine=$machine&night={$row['id']}#warnings\">$num_warnings</a></td>\n";
-	}	
-	else{
-		print "\t<td>$num_warnings</td>\n";
-	}
-
-	/*~~~~~~~~~~~~ Link to test page ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		print "<a href=\"test.php?machine=$machine&night={$row['id']}\">View details</a>\n";
-	echo "</td>";
-	echo "</tr>";
-	
-	$row = $prev_row;
-	$x++;
-} #end while
-
-mysql_free_result($result);
-
-/*******************************
- *
- * Taking care of last row
- *******************************/
-
-if($line % 2 ==0){
-	print "\t<tr bgcolor=#DDDDDD>\n";
-}
-else{
-	print "\t<tr bgcolor='white'>\n";
-}	
-$line++;
-echo "<td>";
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
-	echo $date;
-echo "</td>";
-echo "<td>";
-	echo $row['getcvstime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['configuretime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['configuretime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['buildtime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['buildtime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['dejagnutime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['dejagnutime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['teststats_exppass'];
-echo "</td>";
-echo "<td>";
-       	echo $row['teststats_unexpfail'];
-echo "</td>";
-echo "<td>";
-     	echo $row['teststats_expfail'];
-echo "</td>";
-echo "<td>";
-	if(isset($num_warnings)){
-		echo $num_warnings;
-	}
-	else{
-		echo "-";
-	}
-echo "</td>";
-echo "<td>";
-	print "<a href=\"test.php?machine=$machine&night={$row['id']}\">View details</a>\n";
-echo "</td>";
-echo "</tr>";
-
-echo "</table>";
-
-
-print "<input type=submit name=action value=\"Graph Column\"> | ";
-print "<input type=reset>\n";
-print "<span style=\"position:relative;\">\n";
-print "<span id=\"graph\" class=\"popup2\">\n";
-print "<pre>Produces a graph of the selected columns over<br>time.</pre>\n";
-print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('graph');\">?</a></span>\n";
-print "</form>\n";
-
-mysql_close($mysql_link);
-?>
-
-                </td>
-        </tr>
-</table>
-
-</body>
-</html>
diff --git a/nightly-test-server/machinegraph.php b/nightly-test-server/machinegraph.php
deleted file mode 100644
index 4c69de4..0000000
--- a/nightly-test-server/machinegraph.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-if(!isset($HTTP_GET_VARS['measure'])){
-        die("ERROR: Please select a checkbox at the top of a column to create a graph.\n");
-}
-
-$measure=$HTTP_GET_VARS['measure'];
-if(sizeof($measure)>1){
-	include("multiplemachinegraph.php");
-}
-else{
-	include("individualmachinegraph.php");
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/multiplemachinegraph.php b/nightly-test-server/multiplemachinegraph.php
deleted file mode 100644
index 451d09b..0000000
--- a/nightly-test-server/multiplemachinegraph.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-$machine = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-$night = $HTTP_GET_VARS['night'];
-
-$end = "";
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-		$end = "&end={$HTTP_GET_VARS['end']}";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-        	die();
-	}
-}
-$end_url="";
-$start_url="";
-
-if(!isset($HTTP_GET_VARS['measure'])){
-	die("ERROR: Incorrect URL\n");
-}
-$measure_arr = $HTTP_GET_VARS['measure'];
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-?>
-
-<html>
-<head><title>LLVM Nightly Test Results Machine Graph</title></head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Machine Graph</b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-foreach ($measure_arr as $measure){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=800&ysize=500&machine=$machine_id&measure[]=$measure$end\">\n";
-	print "\t<img src=\"drawmachinegraph.php?name=$measure&xsize=800&ysize=400&machine=$machine_id&measure[]=$measure$end\" alt=\"$measure\" height=400 width=800>\n";
-	print "</a><br>\n";
-
-}
-	
-	
-
-?>
-		
-			
-
-</td></tr></table>
-</body></html>
diff --git a/nightly-test-server/multipleresultsgraph.php b/nightly-test-server/multipleresultsgraph.php
deleted file mode 100644
index 99d0434..0000000
--- a/nightly-test-server/multipleresultsgraph.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-$machine = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-$night = $HTTP_GET_VARS['night'];
-
-$end = "";
-if(isset($HTTP_GET_VARS['end'])){
-        if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-                $end = "&end={$HTTP_GET_VARS['end']}";
-        }
-        else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-//the following variables are added for sidebar.php to work
-$end_url="";
-$start_url="";
-
-if(!isset($HTTP_GET_VARS['measure'])){
-        die("ERROR: Incorrect URL\n");
-}
-$measure_arr = $HTTP_GET_VARS['measure'];
-
-if(!isset($HTTP_GET_VARS['program'])){
-        die("ERROR: Incorrect URL\n");
-}
-$program_arr = $HTTP_GET_VARS['program'];
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-?>
-
-<html>
-<head><title>LLVM Nightly Test Graphs For <?php print $cur_date; ?></title></head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Graphs For <?php print $cur_date; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        $machine = $HTTP_GET_VARS['machine'];
-                        $night = $HTTP_GET_VARS['night'];
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-foreach ($measure_arr as $measure){
-
-	$list_of_programs="";
-	foreach($program_arr as $program){
-		$list_of_programs.="&program[]=$program";
-	}
-
-	print "<a href=\"individualgraph.php?name=$measure&xsize=800&ysize=500&machine=$machine_id&night=$night_id&measure[]=$measure$list_of_programs$end\">\n";
-	print "\t<img src=\"drawresultsgraph.php?name=$measure&xsize=800&ysize=400&machine=$machine_id&measure=$measure$list_of_programs$end\" alt=\"$measure\" height=400 width=800>\n";
-	print "</a><br>\n";
-
-}
-	
-	
-
-?>
-		
-			
-
-</td></tr></table>
-</body></html>
diff --git a/nightly-test-server/phpinfo.php b/nightly-test-server/phpinfo.php
deleted file mode 100644
index e3caa1d..0000000
--- a/nightly-test-server/phpinfo.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php 
-phpinfo(); 
-?> 
\ No newline at end of file
diff --git a/nightly-test-server/popup.js b/nightly-test-server/popup.js
deleted file mode 100644
index 09503fb..0000000
--- a/nightly-test-server/popup.js
+++ /dev/null
@@ -1,133 +0,0 @@
-function ShowPop(id)
-{
-	if (document.getElementById)
-	{
-   		document.getElementById(id).style.visibility = " visible";
-	}
-	else if (document.all)
-	{
-		document.all[id].style.visibility = " visible";
-	}
-	else if (document.layers)
-	{
-		document.layers[id].style.visibility = " visible";
-	}
-}
-
-
-
-
-
-
-function HidePop(id)
-{
-   	if (document.getElementById)
-	{
-   		document.getElementById(id).style.visibility = " hidden";
-	}
-	/*else if (document.all)
-	{
-		document.all[id].style.visibility = " hidden";
-	}
-	else if (document.layers)
-	{
-		document.layers[id].style.visibility = " hidden";
-	}*/
-}
-
-
-
-function TogglePop(id)
-{
-   	if (document.getElementById)
-	{
-		if(document.getElementById(id).style.visibility  == "visible"){
-			document.getElementById(id).style.visibility = "hidden";
-		}
-		else{
-			document.getElementById(id).style.visibility  = "visible";
-		}
-	}
-	else if (document.all)
-	{
-		if(document.all[id].style.visibility  == "visible"){
-			document.all[id].style.visibility  = "hidden";
-		}
-		else{
-			document.all[id].style.visibility = "visible";
-		}
-	}
-	else if (document.layers)
-	{
-		if(document.layers[id].style.visibility == "visible"){
-			document.layers[id].style.visibility = "hidden";
-		}
-		else{
-			document.layers[id].style.visibility = "visible";
-		}
-	}
-}
-
-
-function toggleLayer(whichLayer)
-{
-	if (document.getElementById)
-	{
-		// this is the way the standards work
-		var style2 = document.getElementById(whichLayer).style;
-		style2.display = style2.display? "":"none";
-		var link  = document.getElementById(whichLayer+"_").innerHTML;
-		if(link.indexOf("(+)") >= 0){
-			document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}//end if
-	else if (document.all)
-	{
-		// this is the way old msie versions work
-		var style2 = document.all[whichLayer].style;
-		style2.display = style2.display? "":"none";
-		var link  = document.all[wwhichLayer+"_"].innerHTML;
-		if(link.indexOf("(+)") >= 0){
-    		document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}
-	else if (document.layers)
-	{
-		// this is the way nn4 works
-		var style2 = document.layers[whichLayer].style;
-		style2.display = style2.display? "":"none";
-		var link  = document.layers[whichLayer+"_"].innerHTML;
-		if(link.indexOf("(+)") >= 0){
-			document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}
-}//end function
-
-var checkflag="false";
-function check(field) {
-  if (checkflag == "false") {
-    for (i = 0; i < field.length; i++) {
-      field[i].checked = true;
-    }
-    checkflag = "true";
-    return "Uncheck all"; 
-  }  
-  else {
-    for (i = 0; i < field.length; i++) {
-      if(field[i].type == 'checkbox'){
-        field[i].checked = false; 
-      }
-    }
-    checkflag = "false";
-    return "Check all"; 
-  }
-}
\ No newline at end of file
diff --git a/nightly-test-server/resultsgraph.php b/nightly-test-server/resultsgraph.php
deleted file mode 100644
index ffef996..0000000
--- a/nightly-test-server/resultsgraph.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-$measure=$HTTP_GET_VARS['measure'];
-if(sizeof($measure)>1){
-        include("multipleresultsgraph.php");
-}
-else{
-        include("individualgraph.php");
-}
-
-?>
-
diff --git a/nightly-test-server/sidebar.php b/nightly-test-server/sidebar.php
deleted file mode 100644
index ff30fae..0000000
--- a/nightly-test-server/sidebar.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*****************************************************
- *
- * Prints out a sidebar for results graph page
- *
- ******************************************************/
-if(isset($measure_arr) && isset($program_arr)){
-	$machine_row=getMachineInfo($machine);
-	$today_row = getNightInfo($night);
-	$cur_date = $today_row['added'];
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	if(isset($machine_row['nickname'])){
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['nickname']}</a><br><br>\n";
-	}
-	else{
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['name']}</a><br><br>\n";
-	}
-	print "Test dates:<br>\n<ul>\n";
-	
-	$measure_link="";
-	foreach ($measure_arr as $x){
-		$measure_link.="&measure[]=$x";
-	}
-	$program_link="";
-	foreach ($program_arr as $x){
-		$program_link.="&program[]=$x";
-	}
-
-
-	/********************** Creating list to future and past tests **********************/
-	
-	$next_stack = array();
-	$next_query = getNightsResource($machine,$cur_date,"2020-12-30 01:01:01");
-	$x=0;
-	while($x<7 && $x<mysql_affected_rows()-1 && $next = mysql_fetch_array($next_query)){
-		array_push($next_stack, $next);
-		$x++;
-	}
-	foreach ($next_stack as $x){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$x['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$x['id']}\">$date</a>\n";
-		
-	}
-	mysql_free_result($next_query);	
-
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$today_row['added']);
-	print "\t<li><h3><a href=\"test.php?machine=$machine&night=$night\">$date</a></h3>\n"; 
-	
-	$previous_query = getNightsResource($machine,"2000-01-01 01:01:01","$cur_date");
-	$x=0;
-	$prev=mysql_fetch_array($previous_query); //eliminates current date
-	while($x<7 && $prev=mysql_fetch_array($previous_query)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$prev['added']);
-		print "\t<li><a href=\"resultsgraph.php?machine=$machine&night={$prev['id']}$end_url$start_url$measure_link$program_link\">$date</a>\n";
-		$x++;
-	}
-	print "</ul>\n";
-	mysql_free_result($previous_query);
-
-}
-
-/*****************************************************
- *
- * sidebar for test page
- *
- * print out link to homepage, then find links to the next 7 
- * days and the previous 7 dates. Also 
- * link to machine page.
- *
- ******************************************************/
-else if($machine!=-1 && $night !=-1){
-	$machine_row=getMachineInfo($machine);
-	$today_row = getNightInfo($night);
-	$cur_date = $today_row['added'];
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	if(isset($machine_row['nickname'])){
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['nickname']}</a><br><br>\n";
-	}
-	else{
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['name']}</a><br><br>\n";
-	}
-	print "Test dates:<br>\n<ul>\n";
-	
-
-	/********************** Creating list to future and past tests **********************/
-	
-	$next_stack = array();
-	$next_query = getNightsIDs($machine,$cur_date,"2020-12-30 01:01:01","ASC");
-	$next = mysql_fetch_array($next_query);
-	$x=0;
-	while($x<7 && $x<mysql_affected_rows()-1 && $next = mysql_fetch_array($next_query)){
-		array_unshift($next_stack, $next);
-		$x++;
-	}
-	foreach ($next_stack as $x){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$x['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$x['id']}\">$date</a>\n";
-		
-	}
-	mysql_free_result($next_query);	
-
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$today_row['added']);
-	print "\t<li><h3><a href=\"test.php?machine=$machine&night=$night\">$date</a></h3>\n"; 
-	
-	$previous_query = getNightsIDs($machine,"2000-01-01 01:01:01","$cur_date");
-	$x=0;
-	$prev=mysql_fetch_array($previous_query); //eliminates current date
-	while($x<7 && $prev=mysql_fetch_array($previous_query)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$prev['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$prev['id']}\">$date</a>\n";
-		$x++;
-	}
-	print "</ul>\n";
-	mysql_free_result($previous_query);
-       
-	$next_query = getNightsIDs($machine);
-	print "<form method=GET action=\"test.php\">\n";
-        print "<input type=hidden name=\"machine\" value=\"$machine\">\n";
-	print "<select name=night>\n";
-	while($next=mysql_fetch_array($next_query)){
-	  print "<option value={$next['id']}>{$next['added']}\n";
-	}
-	mysql_free_result($next_query);
-	
-	print "</select><br>\n";
-	print "<input type=submit value=\"Jump to Date\">\n";
-	print "</form>\n";
-	
-
-}
-
-
-
-/*****************************************************
- *
- * This is the sidebar for the machine page
- *
- * Print out a link to the homepage then print
- * out links to the last 20 tests
- *
- ******************************************************/
-elseif($machine != -1 && $night == -1){
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	print "Test dates:<br>\n<ul>\n";
-	$x=0;
-	$machine_nights = getNightsResource($machine); 
-	while($x<20 && $temp_row=mysql_fetch_array($machine_nights)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$temp_row['added']);
-		print "<li><a href=\"test.php?machine=$machine&night={$temp_row['id']}\">$date</a>\n";
-		$x++;
-	}	
-	print "</ul>\n";
-	mysql_free_result($machine_nights);	
-
-	$next_query = getNightsResource($machine);
-        print "<form method=GET action=\"test.php\">\n";
-        print "<input type=hidden name=machine value=\"$machine\">\n";
-        print "<select name=night>\n";
-        while ($next = mysql_fetch_array($next_query)){
-                print "<option value={$next['id']}>{$next['added']}\n";
-        }
-        print "</select><br>\n";
-        print "<input type=submit value=\"Jump to Date\">\n";
-        print "</form>\n";
-        mysql_free_result($next_query);
-}
-
-
-
-/*****************************************************
- *
- * This is the sidebar for the index
- *
- * Print out link to homepage, then a link to machine page, 
- * then link to every machine.
- *
- ******************************************************/
-else{ /*if($machine ==-1 && night ==-1)*/
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	$list_o_machines = getRecentMachineResource();
-	print "Test Machines With<br> Recent Submissions:<br>\n<ul>\n";
-	while($temp_row = mysql_fetch_array($list_o_machines)){
-		if(strcmp($temp_row['nickname'],"")==0){
-			print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['name']}</a>\n";
-		}
-		else{
-			print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['nickname']}</a>\n";	
-		}
-	}
-	print "</ul>\n";	
-	mysql_free_result($list_o_machines);
-
-	print "<a href='testers.php'>All Test Machines:</a><br>\n<ul>\n";
-	$list_o_machines = getMachineResource();
-        while($temp_row = mysql_fetch_array($list_o_machines)){
-                if(strcmp($temp_row['nickname'],"")==0){
-                        print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['name']}</a>\n";
-                }
-                else{
-                        print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['nickname']}</a>\n";
-                }
-        }
-        print "</ul>\n";
-        mysql_free_result($list_o_machines);
-}
-
-$this_url = $this_url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
-print "<h5><a href=\"common.php?$this_url\">Link to this page</a></h5><br>\n";
-
-?>
diff --git a/nightly-test-server/sorttable.js b/nightly-test-server/sorttable.js
deleted file mode 100644
index 9023fd6..0000000
--- a/nightly-test-server/sorttable.js
+++ /dev/null
@@ -1,187 +0,0 @@
-addEvent(window, "load", sortables_init);
-
-var SORT_COLUMN_INDEX;
-
-function sortables_init() {
-    // Find all tables with class sortable and make them sortable
-    if (!document.getElementsByTagName) return;
-    tbls = document.getElementsByTagName("table");
-    for (ti=0;ti<tbls.length;ti++) {
-        thisTbl = tbls[ti];
-        if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) {
-            //initTable(thisTbl.id);
-            ts_makeSortable(thisTbl);
-        }
-    }
-}
-
-function ts_makeSortable(table) {
-    if (table.rows && table.rows.length > 0) {
-        var firstRow = table.rows[0];
-    }
-    if (!firstRow) return;
-    
-    // We have a first row: assume it's the header, and make its contents clickable links
-    for (var i=0;i<firstRow.cells.length;i++) {
-        var cell = firstRow.cells[i];
-        var txt = ts_getInnerText(cell);
-        cell.innerHTML = '<a href="#" class="sortheader" '+ 
-        'onclick="ts_resortTable(this, '+i+');return false;">' + 
-        txt+'<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';
-    }
-}
-
-function ts_getInnerText(el) {
-	if (typeof el == "string") return el;
-	if (typeof el == "undefined") { return el };
-	if (el.innerText) return el.innerText;	//Not needed but it is faster
-	var str = "";
-	
-	var cs = el.childNodes;
-	var l = cs.length;
-	for (var i = 0; i < l; i++) {
-		switch (cs[i].nodeType) {
-			case 1: //ELEMENT_NODE
-				str += ts_getInnerText(cs[i]);
-				break;
-			case 3:	//TEXT_NODE
-				str += cs[i].nodeValue;
-				break;
-		}
-	}
-	return str;
-}
-
-function ts_resortTable(lnk,clid) {
-    // get the span
-    var span;
-    for (var ci=0;ci<lnk.childNodes.length;ci++) {
-        if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
-    }
-    var spantext = ts_getInnerText(span);
-    var td = lnk.parentNode;
-    var column = clid || td.cellIndex;
-    var table = getParent(td,'TABLE');
-    
-    // Work out a type for the column
-    if (table.rows.length <= 1) return;
-    var itm = ts_getInnerText(table.rows[2].cells[column]);
-    sortfn = ts_sort_caseinsensitive;
-    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;
-    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;
-    if (itm.match(/^[£$]/)) sortfn = ts_sort_currency;
-    if (itm.match(/^[\-\d\.]+$/)) sortfn = ts_sort_numeric;
-    SORT_COLUMN_INDEX = column;
-    var firstRow = new Array();
-    var secondRow = new Array();
-    var newRows = new Array();
-    for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
-    for (i=0;i<table.rows[1].length;i++) { secondRow[i] = table.rows[1][i]; }
-    for (j=2;j<table.rows.length;j++) { newRows[j-2] = table.rows[j]; }
-
-    newRows.sort(sortfn);
-
-    if (span.getAttribute("sortdir") == 'down') {
-        ARROW = '&nbsp;&nbsp;&uarr;';
-        newRows.reverse();
-        span.setAttribute('sortdir','up');
-    } else {
-        ARROW = '&nbsp;&nbsp;&darr;';  
-	span.setAttribute('sortdir','down');
-    }
-    
-    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
-    // don't do sortbottom rows
-    for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
-    // do sortbottom rows only
-    for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}
-    
-    // Delete any other arrows there may be showing
-    var allspans = document.getElementsByTagName("span");
-    for (var ci=0;ci<allspans.length;ci++) {
-        if (allspans[ci].className == 'sortarrow') {
-            if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
-                allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
-            }
-        }
-    }
-        
-    span.innerHTML = ARROW;
-}
-
-function getParent(el, pTagName) {
-	if (el == null) return null;
-	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
-		return el;
-	else
-		return getParent(el.parentNode, pTagName);
-}
-function ts_sort_date(a,b) {
-    // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
-    if (aa.length == 10) {
-        dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
-    } else {
-        yr = aa.substr(6,2);
-        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
-        dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
-    }
-    if (bb.length == 10) {
-        dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
-    } else {
-        yr = bb.substr(6,2);
-        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
-        dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
-    }
-    if (dt1==dt2) return 0;
-    if (dt1<dt2) return -1;
-    return 1;
-}
-
-function ts_sort_currency(a,b) { 
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
-    return parseFloat(aa) - parseFloat(bb);
-}
-
-function ts_sort_numeric(a,b) { 
-    aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));
-    if (isNaN(aa)) aa = 0;
-    bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); 
-    if (isNaN(bb)) bb = 0;
-    return aa-bb;
-}
-
-function ts_sort_caseinsensitive(a,b) {
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
-    if (aa==bb) return 0;
-    if (aa<bb) return -1;
-    return 1;
-}
-
-function ts_sort_default(a,b) {
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
-    if (aa==bb) return 0;
-    if (aa<bb) return -1;
-    return 1;
-}
-
-
-function addEvent(elm, evType, fn, useCapture)
-// addEvent and removeEvent
-// cross-browser event handling for IE5+,  NS6 and Mozilla
-// By Scott Andrew
-{
-  if (elm.addEventListener){
-    elm.addEventListener(evType, fn, useCapture);
-    return true;
-  } else if (elm.attachEvent){
-    var r = elm.attachEvent("on"+evType, fn);
-    return r;
-  } else {
-    alert("Handler could not be removed");
-  }
-} 
diff --git a/nightly-test-server/style.css b/nightly-test-server/style.css
deleted file mode 100644
index 2d137c6..0000000
--- a/nightly-test-server/style.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.hideable {
-	border-width:thin;
-	border-color:blackground;
-	border-style:solid;
-	background: #F8F8FF
-}
-
-.popup
-{
-   position:absolute; left:10; bottom:10; width:400;
-   border-style:solid;
-   border-width:2;
-   border-color:blue;
-   background-color:white;
-   padding:5px;
-   color:black;
-   font-family:Arial;
-   font-weight:bold;
-   font-size:10pt;
-   z-index:2;
-   visibility:hidden;
-}
-
-.popup2
-{
-   position:absolute; left:10; top:10; width:400;
-   border-style:solid;
-   border-width:2;
-   border-color:blue;
-   background-color:white;
-   padding:5px;
-   color:black;
-   font-family:Arial;
-   font-weight:bold;
-   font-size:10pt;
-   z-index:2;
-   visibility:hidden;
-}
\ No newline at end of file
diff --git a/nightly-test-server/test.php b/nightly-test-server/test.php
deleted file mode 100644
index eb3fa60..0000000
--- a/nightly-test-server/test.php
+++ /dev/null
@@ -1,739 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-$today_query = getSuccessfulNightsHistory($machine_id,$night_id);
-$today_row = mysql_fetch_array($today_query);
-$yesterday_row = mysql_fetch_array($today_query);
-$oldday_row = mysql_fetch_array($today_query);
-mysql_free_result($today_query);
-$previous_succesful_id = $yesterday_row['id'];
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results For <?php print $cur_date; ?></title>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-<script type="text/javascript" src="sorttable.js"></script>
-<script type="text/javascript" src="popup.js"></script>
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results For <?php print $cur_date; ?></b></font></center><br>
-
-<table cellspacing=0 cellpadding=0 border=0>
-  <tr>
-    <td valign=top width="180">
-      <? 
-      $machine = $HTTP_GET_VARS['machine'];
-      $night = $HTTP_GET_VARS['night'];
-      include 'sidebar.php'; 
-      ?>      
-    </td>
-    <td>
-<?php
-
-/*****************************************************
- *
- * Printing machine information
- *
- ******************************************************/
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-/*****************************************************
- *
- * Printing link to build log
- *
- ******************************************************/
-print"<h4><a href=\"fulltest.php?machine=$machine_id&night=$night_id\">See Full Test Results</a></h4>\n";
-
-$buildfile=str_replace(" ", "_", $cur_date);
-if(file_exists("machines/$machine_id/$buildfile-Build-Log.txt")){
-  print "<h4><a href=\"machines/$machine_id/$buildfile-Build-Log.txt\">".
-      "View Build Log</a></h4>\n";
-}
-
-/*****************************************************
- *
- * Printing the build status
- *
- ******************************************************/
-if(strpos($today_row['buildstatus'], "OK")===FALSE){
-  $disp="";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer".
-    "('buildStatus');\", id=\"buildStatus_\">$sign Build Status</a></font>\n";
-print "<div id=\"buildStatus\" style=\"display: $disp;\" class=\"hideable\">\n";
-print "<h3><u>Build Status </u></h3></p>";
-print "<font color=red>{$today_row['buildstatus']}</font><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing changes in test suite
- *
- ******************************************************/
-$new_tests=htmlifyTestResults(getNewTests($night_id, $previous_succesful_id));
-if(strcmp($new_tests,"")===0){
-  $new_tests="None";
-}
-$removed_tests=htmlifyTestResults(getRemovedTests($night_id, $previous_succesful_id));
-if(strcmp($removed_tests,"")===0){
-  $removed_tests="None";
-}
-$newly_passing_tests=htmlifyTestResults(getFixedTests($night_id, $previous_succesful_id));
-if(strcmp($newly_passing_tests,"")===0){
-  $newly_passing_tests="None";
-}
-$newly_failing_tests=htmlifyTestResults(getBrokenTests($night_id, $previous_succesful_id));
-if(strcmp($newly_failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-
-if(strpos($new_tests, "None")!==FALSE &&
-   strpos($removed_tests, "None")!==FALSE &&
-   strpos($newly_passing_tests, "None")!==FALSE &&
-   strpos($newly_failing_tests, "None")!==FALSE ){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuite');\", id=\"testSuite_\">$sign Test Suite Changes</a></font>\n";
-print "<div id=\"testSuite\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite changes:</u></h3>\n";
-print"<b>New tests:</b><br>\n";
-print "$new_tests<br><br>\n";
-print"<b>Removed tests:</b><br>\n";
-print "$removed_tests<br><br>\n";
-print"<b>Newly passing tests:</b><br>\n";
-print "$newly_passing_tests<br><br>\n";
-print"<b>Newly failing tests:</b><br>\n";
-print "$newly_failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing failures in test suite
- *
- ******************************************************/
-$failing_tests=htmlifyTestResults(getFailures($night_id));
-if(strcmp($failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-$disp="none";
-$sign="(-)";
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuiteFailures');\", id=\"testSuite_\">$sign Test Suite Failures</a></font>\n";
-print "<div id=\"testSuiteFailures\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite failures:</u></h3>\n";
-print"<b>Failing tests:</b><br>\n";
-print "$failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Dejagnu result go here
- *
- ******************************************************/
-$delta_exppass = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-$delta_expfail = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-$delta_unexpfail = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-$unexpected_failures = htmlifyTestResults(getUnexpectedFailures($night_id));
-
-if($delta_exppass==0 && $delta_expfail==0 && 
-   $delta_unexpfail==0 && strcmp($unexpected_failures,"")===0){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-
-if(isset($today_row['teststats_exppass'])){
-  $exp_pass=$today_row['teststats_exppass'];
-}
-else{
-  $exp_pass=0;
-}
-if(isset($today_row['teststats_unexpfail'])){
-  $unexp_fail=$today_row['teststats_unexpfail'];
-}
-else{
-  $unexp_fail=0;
-}
-if(isset($today_row['teststats_expfail'])){
-  $exp_fail=$today_row['teststats_expfail'];  
-}
-else{
-  $exp_fail=0;
-
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dejagnuTests');\", id=\"dejagnuTests_\">$sign Dejagnu Tests</a></font>\n";
-print "<div id=\"dejagnuTests\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print"<h3><u>Dejagnu tests:</u></h3><br>\n";
-
-print "<table>\n";
-print "\t<tr>\n";
-print "\t\t<td></td><td># of tests</td><td>Change from yesterday</td>\n";
-print "\t</tr>\n";
-$delta = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-print "\t\t<td>Expected Passes:</td><td align=center>$exp_pass</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-print "\t\t<td>Unexpected Failures:</td><td align=center>$unexp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-print "\t\t<td>Expected Failures:</td><td align=center>$exp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<a name=\"unexpfail_tests\"><b>Unexpected test failures:</b></a><br>\n";
-print "$unexpected_failures<br><br>\n";
-
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing warning information
- *
- ******************************************************/
-if((strpos($today_row['warnings_added'], "none")===FALSE &&
-   strpos($today_row['warnings_removed'], "none")===FALSE) &&
-   (strcmp($today_row['warnings_added'], "")!=0 &&
-   strcmp($today_row['warnings_removed'], "")!=0)){
-  $disp=" ";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('warningsChanges');\", id=\"warningsChanges_\">$sign Warnings Information</a></font>\n";
-print "<div id=\"warningsChanges\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Changes to warnings during the build:</u></h3>\n";
-print"<b>New Warnings:</b><br>\n";
-print "{$today_row['warnings_added']}<br><br>\n";
-print"<b>Removed Warnings:</b><br>\n";
-print "{$today_row['warnings_removed']}<br>\n";
-print"<a name=\"warnings\"><h3><u>Warnings during the build:</u></h3></a><tt>{$today_row['warnings']}</tt><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing execution
- *
- ******************************************************/
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('executionTimes');\", id=\"executionTimes_\">(-) Execution Times</a></font>\n";
-print "<div id=\"executionTimes\" style=\"display: none;\" class=\"hideable\">\n";
-print"<h3><u>Execution times in seconds:</u></h3><br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-
-print "\t<tr>\n";
-print "\t\t<td></td>\n";
-print "\t\t<td>CVS cpu</td>\n";
-print "\t\t<td>CVS wall</td>\n";
-print "\t\t<td>Configure cpu</td>\n";
-print "\t\t<td>Configure wall</td>\n";
-print "\t\t<td>Build cpu</td>\n";
-print "\t\t<td>Build wall</td>\n";
-print "\t\t<td>Dejagnu cpu</td>\n";
-print "\t\t<td>Dejagnu wall</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "\t\t<td>$cur_date</td>\n";
-print "\t\t<td>{$today_row['getcvstime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['getcvstime_wall']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_wall']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_wall']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_wall']}</td>\n";
-print "\t</tr>\n";
-
-if( isset($yesterday_row) ){
-  print "\t<tr>\n";
-  print "\t\t<td>Previous nightly test ({$yesterday_row['added']})</td>\n";
-  print "\t\t<td>{$yesterday_row['getcvstime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['getcvstime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['configuretime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['configuretime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['buildtime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['buildtime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['dejagnutime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['dejagnutime_wall']}</td>\n";
-  print "\t</tr>\n";
-
-
-  print "\t<tr>\n";
-  print "\t\t<td>% change</td>\n";
-  
-  if($yesterday_row['getcvstime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_cpu'] - $yesterday_row['getcvstime_cpu'])/$yesterday_row['getcvstime_cpu']) * 100,2);  
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }  
-
-  $color="white";
-  if($yesterday_row['getcvstime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_wall'] - $yesterday_row['getcvstime_wall'])/$yesterday_row['getcvstime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($yesterday_row['configuretime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_cpu'] - $yesterday_row['configuretime_cpu'])/$yesterday_row['configuretime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-
-  if($yesterday_row['configuretime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_wall'] - $yesterday_row['configuretime_wall'])/$yesterday_row['configuretime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['buildtime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_cpu'] - $yesterday_row['buildtime_cpu'])/$yesterday_row['buildtime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['buildtime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_wall'] - $yesterday_row['buildtime_wall'])/$yesterday_row['buildtime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($yesterday_row['dejagnutime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_cpu'] - $yesterday_row['dejagnutime_cpu'])/$yesterday_row['dejagnutime_cpu']) * 100,2);
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['dejagnutime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_wall'] - $yesterday_row['dejagnutime_wall'])/$yesterday_row['dejagnutime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  print "\t</tr>\n";
-}
-
-print "</table><br>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing CVS information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('CVSInformation');\", id=\"CVSInformation_\">(-) CVS Information</a></font>\n";
-print "<div id=\"CVSInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>CVS information:</u></h3><br>\n";
-
-$row = getNightInfo($night_id);
-$com_users = $row['cvs_usersadd'];
-$co_users  = $row['cvs_usersco'];
-$com_users = str_replace("\n","<br>",$com_users);
-$co_users = str_replace("\n","<br>",$co_users);
-print "<table border=1 cellspacing=0 cellpadding=0>\n";
-print "\t<tr>\n";
-print "\t\t<td>Users who commited</td><td>Users who checked out</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-print "\t\t<td valign=top>$com_users</td><td valign=top>$co_users</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<b>Added files:</b><br>\n";
-$added_files  = $row['cvs_added'];
-if(strcmp($added_files,"")!=0){
-  $added_files = str_replace("\n","<br>",$added_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$added_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Removed files:</b><br>\n";
-$removed_files  = $row['cvs_removed'];
-if(strcmp($removed_files,"")!=0){
-  $removed_files = str_replace("\n","<br>",$removed_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$removed_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Modified files:</b><br>\n";
-$modified_files  = $row['cvs_modified'];
-if(strcmp($modified_files,"")!=0){
-  $modified_files = str_replace("\n","<br>",$modified_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$modified_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br>\n";
-}
-else{
-  print "No removed files<br>\n";
-}
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * ending sidebar table here
- *
- ******************************************************/
-print "</td></tr></table>\n";
-
-/*****************************************************
- *
- * Printing file size information
- *
- ******************************************************/
-$all_data=buildFileSizeTable($machine_id, $night_id);
-
-$num_sig_changes=0;
-foreach (array_keys($all_data) as $d){
-  if( ($all_data["$d"][1]>$medium_change && $all_data["$d"][2]>$byte_threshold) ||
-      ($all_data["$d"][1]<($medium_change*-1) && $all_data["$d"][2]<($byte_threshold*-1)) ) {
-    $num_sig_changes++;
-  }
-}
-if($num_sig_changes==0){
-    $disp="none";
-    $sign="(-)";
-  }
-  else{
-    $disp="";
-    $sign="(+)";
-  }
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('file_sizes_layer');\", id=\"file_sizes_layer_\">$sign $num_sig_changes Significant Changes in File Size</a></font>\n";
-print "<div id=\"file_sizes_layer\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print "<form method=GET action=\"individualfilesizegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-
-$unformatted_num=number_format($all_data['Total Sum'][0],0,".",",");
-print "<b>Total size</b>: $unformatted_num bytes<br>\n";
-print "<b>Percent difference from previous test</b>: {$all_data['Total Sum'][1]}<br>\n";
-print "<b>Percent difference from five tests ago</b>: {$all_data['Total Sum'][2]}<br><br>\n";
-
-print "<b>Significant Changes in File Size<br></b>";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border
-print "<table class=\"sortable\" id=\"file_sizes\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td>File</td>\n";
-print "\t\t<td>File Size in Bytes</td>\n";
-print "\t\t<td>% difference from previous test</td>\n";
-print "\t\t<td>Byte difference from previous test</td>\n";
-print "\t\t<td>% difference from five tests ago</td>\n";
-print "\t\t<td>Byte difference from five tests ago</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "\t</tr>\n";
-
-$row_color=0;
-foreach (array_keys($all_data) as $d){
-  if( ($all_data["$d"][1]>$medium_change && $all_data["$d"][2]>$byte_threshold) || 
-      ($all_data["$d"][1]<($medium_change*-1) && $all_data["$d"][2]<($byte_threshold*-1)) ) {
-   
-    if($row_color % 2 == 0){
-      $def_color="white";
-    } else{
-      $def_color="#DDDDDD";
-    }
-    $row_color++;
-
-    print "\t<tr bgcolor=\"$def_color\">\n";
-    if(strcmp($d, "Total Sum")!=0){
-      print "\t\t<td><input type=checkbox name=files[] multiple=\"multiple\" value=\"$d\" >\n";
-    }
-    else{
-      print "\t\t<td>\n";
-    }
-    print "\t\t$d</td>\n";
-    print "\t\t<td>{$all_data["$d"][0]}</td>\n";
-
-    $color="bgcolor=\"".DetermineColor($all_data["$d"][1], "$def_color")."\"";
-    print "\t\t<td $color>{$all_data["$d"][1]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][2]}</td>\n";
-
-    $color="bgcolor=\"".DetermineColor($all_data["$d"][3], "$def_color")."\"";
-    print "\t\t<td $color>{$all_data["$d"][3]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][4]}</td>\n";
-
-    print "\t</tr>\n";
-  }
-}
-
-print "</table>\n";
-print "</td></tr></table><br>\n"; #ending black border around table  
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=button value=\"Check all\" onClick=\"this.value=check(this.form.elements)\"> | \n"; 
-print "<input type=reset>\n";
-print "</form>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Finding big changes in results table
- *
- ******************************************************/
-
-$today_results = GetDayResults($today_row['id'], $category_array);
-if(isset($yesterday_row['id'])){
-  $yesterday_results = GetDayResults($yesterday_row['id'], $category_array);
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results, .2);
-}
-if(isset($oldday_row['id'])){
-  $oldday_results = GetDayResults($oldday_row['id'], $category_array);
-  $twoday_difference = CalculateChangeBetweenDays($oldday_results, $today_results, .01);
-}
-
-
-if(isset($percent_difference) && isset($twoday_difference)){
-  $big_changes = getThreeDaySignifigantChanges($today_results, $yesterday_results, $oldday_results, $percent_difference, $twoday_difference, $category_print_array);
-  sortSignifigantChangeArray($big_changes, 3);
-}
-else if(isset($percent_difference) && !isset($twoday_difference)){
-  $big_changes = getTwoDaySignifigantChanges($today_results, $yesterday_results, $percent_difference, $category_print_array);
-        sortSignifigantChangeArray($big_changes, 3);
-}
-
-/********************** Regressions table **********************/
-
-if(!isset($big_changes)){
-  print "Cannot compare today's results to previous results. Reason: there are no previous results!<br>\n";
-}
-else{
-
-$row_color=1;
-$count=0;
-for($y=0; $y<sizeof($category_print_array_ordered); $y++){
-  print "<form method=GET action=\"resultsgraph.php\">\n";
-  print "<input type=hidden name=machine value=\"$machine_id\">\n";
-  print "<input type=hidden name=night value=\"$night_id\">\n";
-  print "<input type=hidden name=end value=\"$cur_date\">\n";
-  print "<input type=hidden name=measure[] value=\"{$category_print_array_ordered[$y]}\">\n";
-  
-
-  /* testing to see if we should show this table */
-  $measure_number=0;
-  for($pdj = 0; $pdj < sizeof($category_print_array); $pdj++){
-    if(strcmp($category_print_array[$pdj],$category_print_array_ordered[$y])==0){
-      $measure_number=$pdj;
-    }
-  }
-  $num_changes = CountSignifigantDifferences($percent_difference, $measure_number, $medium_change);
-  if($num_changes==0){
-    $disp="none";
-    $sign="(-)";
-  }
-  else{
-    $disp="";
-    $sign="(+)";
-  }
-
-  print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('{$category_print_array_ordered[$y]}');\", id=\"{$category_print_array_ordered[$y]}_\">$sign $num_changes Tests Significantly Changed for {$category_print_array_ordered[$y]}</a></font>\n";
-  print "<div id=\"{$category_print_array_ordered[$y]}\" style=\"display: $disp;\" class=\"hideable\">\n";
-  print "<b>Significant Changes for {$category_print_array_ordered[$y]}</b>";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"$y\" class=\"popup2\">\n";
-  print "<pre>$category_print_array_ordered_description[$y]</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('$y');\">?</a></span>\n";
-  print "<br>\n";
-  print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black borde
-  print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-  print "\t<tr bgcolor=#FFCC99>\n";
-  print "\t\t<th>Program</th>\n";
-  print "\t\t<th>% Change from yesterday</th>\n";
-  print "\t\t<th>% Change from two days ago</th>\n";
-  print "\t\t<th>Previous day's test value</th>\n";
-  print "\t\t<th>Current day's test value</th>\n";
-  print "\t</tr>\n";
-  print "\t<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>\n";
-
-  foreach (array_keys($big_changes) as $x){
-    if(strcmp($big_changes[$x][1],$category_print_array_ordered[$y])==0){
-      if($row_color % 2 == 0){
-        $def_color="white";
-      } else{
-        $def_color="#DDDDDD";
-      }
-      print "\t<tr bgcolor='$def_color'>\n";
-      print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"{$big_changes[$x][0]}\">{$big_changes[$x][2]}/{$big_changes[$x][0]}</td>\n";
-      $color=DetermineColor($big_changes[$x][3], "#FFFFFF");
-      print "\t\t<td bgcolor=\"$color\">{$big_changes[$x][3]}</td>\n";
-      $color=DetermineColor($big_changes[$x][4], "#FFFFFF");
-      print "\t\t<td bgcolor=\"$color\">{$big_changes[$x][4]}</td>\n";
-      print "\t\t<td>{$big_changes[$x][5]}</td>\n";
-      print "\t\t<td>{$big_changes[$x][6]}</td>\n";
-                       
-  
-      /*for($y=0; $y<sizeof($big_changes[$x]); $y++){
-                          print "\t\t<td>{$big_changes[$x][$y]}</td>\n";
-                   }*/
-                  print "\t</tr>\n";
-                  $row_color++;
-                  if($row_color > 4){
-      $row_color=1;
-                  }
-                   $count++;
-          }//end if strcmp
-  }
-  print "</table>\n";
-  print "</td></tr></table><br>\n"; #ending black border around table  
-  print "<input type=submit name=action value=\"Examine Longterm Results\"> | ";
-  print "<input type=button value=\"Check all\" onClick=\"this.value=check(this.form.elements)\"> | \n"; 
-  print "<input type=reset>\n";
-  print "</form>\n";
-  print "</div><br><br>\n";
-}
-
-
-}//end foreach
-
-
-mysql_close($mysql_link);
-?>
-
-
-
-</body>
-</html>
-
-
diff --git a/nightly-test-server/testers.php b/nightly-test-server/testers.php
deleted file mode 100644
index 3b19273..0000000
--- a/nightly-test-server/testers.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-include("NightlyTester.php");
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm"); 
-if(!$mysql_link){
-	die("$mysql_link,Could not connect to database ". mysql_error()."\n");
-}
-mysql_select_db("nightlytestresults");
-
-
-
-?>
-<html>
-<head><title>List of LLVM Nightly Test Machines</title></head>
-<body>
-<center><font size=+3 face=Verdana><b>List of LLVM Nightly Test Machines</b></font></center><br>
-<table cellspacing=5 cellpadding=3 border=0>
-        <tr>
-                <td valign=top>
-                        <?
-                        $machine = -1;
-                        $night = -1;
-                        include "sidebar.php";
-                        ?>
-                </td>
-                <td>
-
-<?php
-/*
- * the following lists all the machines
- */
-
-print "<br>List of all machines:<br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "\t<tr bgcolor=#FFCC99>\n";
-        print "\t\t<td>ID</td>\n";
-        print "\t\t<td>Nickname</td>\n";
-        print "\t\t<td>Machine name</td>\n";
-        print "\t\t<td>Operating system</td>\n";
-        print "\t\t<td>Hardware</td>\n";
-        print "\t\t<td>GCC version</td>\n";
-        print "\t\t<td>Time of last test</td>\n";
-        print "\t\t<td>Build status of last test</td>\n";
-print "\t</tr>\n";
-
-$result = getMachineResource();
-$line=1;
-while($row = mysql_fetch_array($result)){
-	$query = getNightsResource($row['id']);
-	$latest_test = mysql_fetch_array($query);
-	mysql_free_result($query);      
-
-	if($line %2 == 0){
-		print "\t<tr bgcolor=#DDDDDD>\n";
-	}
-	else{
-		print "\t<tr bgcolor='white'>\n";        
-	}
-	$line++;
-	print "\t\t<td>{$row['id']}</td>\n";
-        print "\t\t<td><a href=\"machine.php?machine={$row['id']}\">{$row['nickname']}</a></td>\n";
-	print "\t\t<td><a href=\"machine.php?machine={$row['id']}\">{$row['name']}</a></td>\n";
-        print "\t\t<td>{$row['os']}</td>\n";
-        print "\t\t<td>{$row['hardware']}</td>\n";
-        print "\t\t<td>{$row['gcc']}</td>\n";
-        print "\t\t<td>{$latest_test['added']}</td>\n";
-        print "\t\t<td>{$latest_test['buildstatus']}</td>\n";
-        print "\t</tr>\n";
-}
-print "</table>\n";
-
-mysql_free_result($result);
-mysql_close($mysql_link);
-?>
-
-</td></tr></table>
-
-</body>
-</html>
diff --git a/nightly-test-server/try.php b/nightly-test-server/try.php
deleted file mode 100755
index 2394d33..0000000
--- a/nightly-test-server/try.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-<body>
-<?php
-/*
- foreach ($_ENV as $key => $value) {
-  print "_ENV $key => $value<br>\n";
- }
- 
- foreach ($_SERVER as $key => $value) {
-  print "_SERVER $key => $value<br>\n";
- }
- 
- foreach ($_GET as $key => $value) {
-  print "_GET $key => $value<br>\n";
- }
- 
- foreach ($_POST as $key => $value) {
-  print "_POST $key => $value<br>\n";
- }
- 
- foreach ($_COOKIE as $key => $value) {
-  print "_COOKIE $key => $value<br>\n";
- }
- 
- foreach ($_FILES as $key => $value) {
-  print "_FILES $key => $value<br>\n";
- }
- 
- foreach ($_REQUEST as $key => $value) {
-  print "_REQUEST $key => $value<br>\n";
- }
-*/
-
-$info = "PASS: /Users/sabre/buildtest/llvm/test/Feature/alignment.ll\n";
-$subpatterns = array();
-preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns);
-
-foreach ($subpatterns as $key => $value) {
-  print "$key => $value<br>\n";
-}
-
-?>
-</body>
-</html>
diff --git a/poolalloc/LICENSE.TXT b/poolalloc/LICENSE.TXT
deleted file mode 100644
index 2e5bf97..0000000
--- a/poolalloc/LICENSE.TXT
+++ /dev/null
@@ -1,44 +0,0 @@
-==============================================================================
-LLVM Pool Allocator Release License
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2003, 2004, 2005, 2006 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
-    LLVM Team
-
-    University of Illinois at Urbana-Champaign
-
-    http://llvm.cs.uiuc.edu
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-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:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimers.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimers in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the names of the LLVM Team, University of Illinois at
-      Urbana-Champaign, nor the names of its contributors may be used to
-      endorse or promote products derived from this Software without specific
-      prior written permission.
-
-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
-CONTRIBUTORS 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 WITH THE
-SOFTWARE.
-
diff --git a/poolalloc/Makefile b/poolalloc/Makefile
deleted file mode 100644
index 1f85962..0000000
--- a/poolalloc/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# This is a sample Makefile for a project that uses LLVM.
-#
-
-#
-# Indicates our relative path to the top of the project's root directory.
-#
-LEVEL = .
-
-#
-# Directories that needs to be built.
-#
-DIRS = lib runtime
-
-#
-# Include the Master Makefile that knows how to build all.
-#
--include $(LEVEL)/Makefile.common
-
-notconfigured:
-	@echo "ERROR: You must configure this project before you can use it!"
-	@exit 1
-
-distclean:: clean
-	${RM} -f Makefile.common Makefile.config
-
diff --git a/poolalloc/Makefile.common.in b/poolalloc/Makefile.common.in
deleted file mode 100644
index 1648375..0000000
--- a/poolalloc/Makefile.common.in
+++ /dev/null
@@ -1,24 +0,0 @@
-PROJECT_NAME := poolalloc
-PROJ_VERSION := 1.0
-
-# Set this variable to the top of the LLVM source tree.
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the source root and source directory pathnames
-####PROJ_SRC_DIR := $(subst //,/,@abs_top_srcdir@/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
-
-PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/,@abs_top_objdir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_SRC_ROOT)/Makefile.common
-
diff --git a/poolalloc/ModuleInfo.txt b/poolalloc/ModuleInfo.txt
deleted file mode 100644
index 6085d62..0000000
--- a/poolalloc/ModuleInfo.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file defines the relationship of this module to other modules and 
-# tells llvm-top how to drive it.
-
-# Declare that this module depends on llvm.
-DepModule: llvm
-
diff --git a/poolalloc/README b/poolalloc/README
deleted file mode 100644
index 361d3dd..0000000
--- a/poolalloc/README
+++ /dev/null
@@ -1,72 +0,0 @@
-Welcome to the Pre-Release of the Automatic Pool Allocator!
-
-LICENSE:
-========
-Before using the Automatic Pool Allocator, you should read the pre-release
-license in LICENSE.TXT.
-
-BUILDING:
-=========
-To build the Automatic Pool Allocator, you will need to have installed and
-compiled LLVM.
-
-Once that is done, you can build the Automatic Pool Allocator using the
-following steps:
-
-	1. Run the configure script to tell the build system LLVM has been
-	   installed.  Use the --with-llvmsrc=<dir> option to specify the
-	   location of the LLVM source code, and use the --with-llvmobj=<dir>
-	   option to specify the location of the LLVM object code.
-
-	   For example, if the user joe with home directory of /usr/home/joe
-	   has the LLVM source in /usr/home/joe/llvm, and it was configured
-	   with ./configure --with-objroot=/tmp, then the Automatic Pool
-	   Allocator should be configured with:
-
-	   > ./configure --with-llvmsrc=/usr/home/joe/llvm \
-	                 --with-llvmobj=/tmp/llvm
-
-	2. Using GNU Make (sometimes called gmake), type "make" to build the
-	   Automatic Pool Allocator:
-
-	   > make
-
-	3. To install the pool allocator bytecode libraries into the C front
-	   end, use make with the install target:
-
-	   > make install
-
-USING THE POOL ALLOCATOR:
-=========================
-To use the Automatic Pool Allocator optimization pass, you will need to
-explicitly load it into the opt program:
-
-	> opt -load <path to pool allocator> -poolalloc <other opt options>
-
-To link and run programs with the pool allocator, you will need to have the
-poolalloc bytecode library in your LLVM_LIB_SEARCH_PATH.  If you have followed
-the directions in the "Getting Started Guide" for LLVM, your
-LLVM_LIB_SEARCH_PATH environment variable already points to the C front end's
-directory of bytecode libraries.  Just use the install target (mentioned above)
-of make to install the poolalloc library into that directory.
-
-To link a bytecode file once it has been optimized, you can do the following:
-
-	> llvmgcc -o <output file> <optimized bytecode file> -lpoolalloc
-
-...where llvmgcc is an alias to the GCC C front end.
-
-This will generate a bytecode file that can be executed.
-
-BUGS:
-=====
-Please see our website for information on how to report bugs
-(http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html).
-
-LLVM DEVELOPER'S MAILING LIST
-=============================
-The LLVM Developer's Mailing List provides announcements and general discussion
-about LLVM.  The list is low volume.  You can subscribe to it at
-http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev.
-
-
diff --git a/poolalloc/Regressions/2006-02-13.ArrayOfObjects.ll b/poolalloc/Regressions/2006-02-13.ArrayOfObjects.ll
deleted file mode 100644
index e274042..0000000
--- a/poolalloc/Regressions/2006-02-13.ArrayOfObjects.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; This causes a segfault in pointer compression
-; The pool type is struct.DLL, but the result of malloc is an array of struct.DLL
-; the GEP rewrite assumed that a pointer would have the pool type which isn't true here
-
-target endian = little
-target pointersize = 64
-target triple = "alphaev6-unknown-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.DLL = type { int, %struct.DLL*, %struct.DLL* }
-
-implementation   ; Functions:
-
-void %main() {
-entry:
-	%tmp.12.i.i = malloc [101 x %struct.DLL]		; <[101 x %struct.DLL]*> [#uses=2]
-	%tmp.37.i.i = getelementptr [101 x %struct.DLL]* %tmp.12.i.i, int 0, int 0, uint 2		; <%struct.DLL**> [#uses=1]
-	%tmp.42.i.i = getelementptr [101 x %struct.DLL]* %tmp.12.i.i, int 0, int 0		; <%struct.DLL*> [#uses=1]
-	store %struct.DLL* %tmp.42.i.i, %struct.DLL** %tmp.37.i.i
-	unreachable
-}
diff --git a/poolalloc/Regressions/2006-02-23.memcpy.ll b/poolalloc/Regressions/2006-02-23.memcpy.ll
deleted file mode 100644
index 09acb3c..0000000
--- a/poolalloc/Regressions/2006-02-23.memcpy.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; pointer compression tries to turn the llvm.memcpy into llvm.memcpy_pc
-; this is of course bad.  It should materialize the pointers.
-target endian = little
-target pointersize = 64
-target triple = "alphaev6-unknown-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.spec_fd_t = type { int, int, int, ubyte* }
-%spec_fd = external global [3 x %struct.spec_fd_t]		; <[3 x %struct.spec_fd_t]*> [#uses=2]
-
-implementation   ; Functions:
-
-declare void %llvm.memcpy(sbyte*, sbyte*, ulong, uint)
-
-void %main() {
-entry:
-	br bool false, label %no_exit.0.i161, label %endif.0
-
-endif.0:		; preds = %entry
-	ret void
-
-no_exit.0.i161:		; preds = %entry
-	%tmp.25.i = getelementptr [3 x %struct.spec_fd_t]* %spec_fd, long 0, int 0, uint 3		; <ubyte**> [#uses=1]
-	%tmp.26.i = malloc ubyte, uint 0		; <ubyte*> [#uses=1]
-	store ubyte* %tmp.26.i, ubyte** %tmp.25.i
-	br bool false, label %no_exit.1.i, label %then.4
-
-no_exit.1.i:		; preds = %no_exit.0.i161
-	%tmp.103.i = load ubyte** getelementptr ([3 x %struct.spec_fd_t]* %spec_fd, long 0, int 0, uint 3)		; <ubyte*> [#uses=1]
-	%tmp.118.i = cast ubyte* %tmp.103.i to sbyte*		; <sbyte*> [#uses=1]
-	tail call void %llvm.memcpy( sbyte* null, sbyte* %tmp.118.i, ulong 0, uint 1 )
-	ret void
-
-then.4:		; preds = %no_exit.0.i161
-	ret void
-}
diff --git a/poolalloc/Regressions/2006-03-04.undefArg.ll b/poolalloc/Regressions/2006-03-04.undefArg.ll
deleted file mode 100644
index 82f0c9b..0000000
--- a/poolalloc/Regressions/2006-03-04.undefArg.ll
+++ /dev/null
@@ -1,96 +0,0 @@
-; ModuleID = 'bugpoint-reduced-simplified.bc'
-target endian = little
-target pointersize = 64
-target triple = "alphaev6-unknown-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct..TorRec = type { int, void ()* }
-	%struct.CON_list_struct = type { %struct.CON_list_struct*, %struct.CON_node_struct* }
-	%struct.CON_node_struct = type { %struct.DIS_list_struct*, %struct.DIS_list_struct*, int }
-	%struct.Connector_struct = type { short, short, sbyte, sbyte, %struct.Connector_struct*, sbyte* }
-	%struct.DIS_list_struct = type { %struct.DIS_list_struct*, %struct.DIS_node_struct* }
-	%struct.DIS_node_struct = type { %struct.CON_list_struct*, %struct.List_o_links_struct*, int }
-	%struct.D_type_list_struct = type { %struct.D_type_list_struct*, int }
-	%struct.Dict_node_struct = type { sbyte*, %struct.Word_file_struct*, %struct.Exp_struct*, %struct.Dict_node_struct*, %struct.Dict_node_struct* }
-	%struct.Disjunct_struct = type { %struct.Disjunct_struct*, short, sbyte, sbyte*, %struct.Connector_struct*, %struct.Connector_struct* }
-	%struct.E_list_struct = type { %struct.E_list_struct*, %struct.Exp_struct* }
-	%struct.Exp_struct = type { sbyte, ubyte, sbyte, sbyte, { sbyte* } }
-	%struct.Image_node_struct = type { %struct.Image_node_struct*, %struct.Connector_struct*, int }
-	%struct.Link_struct = type { int, int, %struct.Connector_struct*, %struct.Connector_struct*, sbyte* }
-	%struct.Linkage_info_struct = type { int, short, short, short, short, short }
-	%struct.Links_to_patch_struct = type { %struct.Links_to_patch_struct*, int, sbyte, int }
-	%struct.List_o_links_struct = type { int, int, int, %struct.List_o_links_struct* }
-	%struct.Match_node_struct = type { %struct.Match_node_struct*, %struct.Disjunct_struct* }
-	%struct.PP_node_struct = type { %struct.D_type_list_struct**, %struct.Violation_list_struct* }
-	%struct.Table_connector = type { short, short, %struct.Connector_struct*, %struct.Connector_struct*, short, int, %struct.Table_connector* }
-	%struct.Tconnector_struct = type { sbyte, sbyte, %struct.Tconnector_struct*, sbyte* }
-	%struct.TorRec = type { int, void ()* }
-	%struct.Violation_list_struct = type { %struct.Violation_list_struct*, sbyte* }
-	%struct.Word_file_struct = type { [60 x sbyte], int, %struct.Word_file_struct* }
-	%struct.Word_struct = type { [60 x sbyte], %struct.X_node_struct*, %struct.Disjunct_struct* }
-	%struct.X_node_struct = type { sbyte*, %struct.Exp_struct*, %struct.X_node_struct* }
-	%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, long, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [44 x sbyte] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
-	%struct.__va_list_tag = type { sbyte*, int }
-	%struct.c_list_struct = type { %struct.Connector_struct*, int, %struct.c_list_struct* }
-	%struct.clause_struct = type { %struct.clause_struct*, int, int, %struct.Tconnector_struct* }
-	%struct.d_tree_leaf_struct = type { %struct.domain_struct*, int, %struct.d_tree_leaf_struct* }
-	%struct.domain_struct = type { sbyte*, int, %struct.List_o_links_struct*, int, int, %struct.d_tree_leaf_struct*, %struct.domain_struct* }
-	%struct.label_node_struct = type { int, %struct.label_node_struct* }
-	%struct.patch_element_struct = type { sbyte, sbyte, int, int }
-	%struct.string_node_struct = type { sbyte*, int, %struct.string_node_struct* }
-%sentence = external global [250 x %struct.Word_struct]		; <[250 x %struct.Word_struct]*> [#uses=2]
-%mn_free_list = external global %struct.Match_node_struct*              ; <%struct.Match_node_struct**> [#uses=1]
-
-implementation   ; Functions:
-
-declare fastcc %struct.Match_node_struct* %form_match_list(%struct.Connector_struct*) 
-
-internal fastcc void %prune() {
-entry:
-	%tmp.15 = getelementptr [250 x %struct.Word_struct]* %sentence, long 0, int 0, uint 2		; <%struct.Disjunct_struct**> [#uses=1]
-	%tmp.16 = load %struct.Disjunct_struct** %tmp.15		; <%struct.Disjunct_struct*> [#uses=1]
-	%tmp.44 = getelementptr %struct.Disjunct_struct* %tmp.16, long 0, uint 5		; <%struct.Connector_struct**> [#uses=1]
-	%tmp.45 = load %struct.Connector_struct** %tmp.44		; <%struct.Connector_struct*> [#uses=1]
-	free %struct.Connector_struct* %tmp.45
-	ret void
-}
-
-int %main(int %argc, sbyte** %argv) {
-entry:
-	%tmp.2 = load %struct.Disjunct_struct** getelementptr ([250 x %struct.Word_struct]* %sentence, long 0, long 0, uint 2)		; <%struct.Disjunct_struct*> [#uses=1]
-	%tmp.16 = getelementptr %struct.Disjunct_struct* %tmp.2, long 0, uint 5		; <%struct.Connector_struct**> [#uses=1]
-	%tmp.17 = load %struct.Connector_struct** %tmp.16		; <%struct.Connector_struct*> [#uses=1]
-	%tmp.13 = tail call fastcc int %count( %struct.Connector_struct* %tmp.17 )		; <int> [#uses=0]
-	%tmp.24 = tail call fastcc int %count( %struct.Connector_struct* null )		; <int> [#uses=0]
-	ret int 0
-}
-
-internal fastcc int %count(%struct.Connector_struct* %le) {
-no_exit.0:		; preds = %endif.4
-	%tmp.101 = tail call fastcc %struct.Match_node_struct* %form_match_list( %struct.Connector_struct* %le)
-	br label %no_exit.1
-
-no_exit.1:		; preds = %loopexit.2, %no_exit.0
-	%m.2.0 = phi %struct.Match_node_struct* [ %tmp.101, %no_exit.0 ], [ %tmp.542, %loopexit.2 ]		; <%struct.Match_node_struct*> [#uses=2]
-	%tmp.112 = getelementptr %struct.Match_node_struct* %m.2.0, long 0, uint 1		; <%struct.Disjunct_struct**> [#uses=1]
-	%tmp.113 = load %struct.Disjunct_struct** %tmp.112		; <%struct.Disjunct_struct*> [#uses=1]
-	br bool false, label %loopexit.2, label %no_exit.2.preheader
-
-no_exit.2.preheader:		; preds = %no_exit.1
-	%tmp.141 = getelementptr %struct.Disjunct_struct* %tmp.113, long 0, uint 5		; <%struct.Connector_struct**> [#uses=1]
-	%tmp.432 = load %struct.Connector_struct** %tmp.141		; <%struct.Connector_struct*> [#uses=1]
-	%tmp.427 = tail call fastcc int %count( %struct.Connector_struct* %tmp.432 )		; <int> [#uses=0]
-	ret int 0
-
-loopexit.2:		; preds = %no_exit.1
-	%tmp.541 = getelementptr %struct.Match_node_struct* %m.2.0, long 0, uint 0		; <%struct.Match_node_struct**> [#uses=1]
-	%tmp.542 = load %struct.Match_node_struct** %tmp.541		; <%struct.Match_node_struct*> [#uses=1]
-	br bool false, label %no_exit.i.preheader, label %no_exit.1
-
-no_exit.i.preheader:		; preds = %loopexit.2
-	%mn_free_list.promoted = load %struct.Match_node_struct** %mn_free_list		; <%struct.Match_node_struct*> [#uses=1]
-	%tmp.5.i = getelementptr %struct.Match_node_struct* %tmp.101, long 0, uint 0		; <%struct.Match_node_struct**> [#uses=1]
-	store %struct.Match_node_struct* %mn_free_list.promoted, %struct.Match_node_struct** %tmp.5.i
-	ret int 0
-}
-
diff --git a/poolalloc/Regressions/2006-03-05.vaargCall.ll b/poolalloc/Regressions/2006-03-05.vaargCall.ll
deleted file mode 100644
index 5e334c9..0000000
--- a/poolalloc/Regressions/2006-03-05.vaargCall.ll
+++ /dev/null
@@ -1,406 +0,0 @@
-; ModuleID = 'bugpoint-reduced-simplified.bc'
-target endian = little
-target pointersize = 64
-target triple = "alphaev6-unknown-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.arg_list = type { int, %struct.arg_list* }
-	%typedef.YYSTYPE = type { sbyte*, sbyte, int, %struct.arg_list* }
-%yyv = external global [150 x %typedef.YYSTYPE]		; <[150 x %typedef.YYSTYPE]*> [#uses=1]
-%.str_11 = external global [26 x sbyte]		; <[26 x sbyte]*> [#uses=0]
-
-implementation   ; Functions:
-
-void %warn(int, ...) {
-entry:
-	ret void
-}
-
-fastcc void %lookup(sbyte* %name) {
-entry:
-	br bool false, label %then.0, label %no_exit.i
-
-no_exit.i:		; preds = %entry
-	ret void
-
-then.0:		; preds = %entry
-	tail call void (int, ...)* %warn( int 0, sbyte* %name )
-	ret void
-}
-
-fastcc void %addbyte() {
-entry:
-	ret void
-}
-
-void %main() {
-entry:
-	switch int 0, label %switchexit [
-		 int -1, label %loopexit
-		 int 118, label %label.5
-		 int 115, label %label.4
-		 int 119, label %label.3
-		 int 105, label %label.2
-		 int 108, label %label.1
-		 int 99, label %label.0
-	]
-
-label.0:		; preds = %entry
-	ret void
-
-label.1:		; preds = %entry
-	ret void
-
-label.2:		; preds = %entry
-	ret void
-
-label.3:		; preds = %entry
-	ret void
-
-label.4:		; preds = %entry
-	ret void
-
-label.5:		; preds = %entry
-	ret void
-
-switchexit:		; preds = %entry
-	ret void
-
-loopexit:		; preds = %entry
-	%tmp.11.i = getelementptr %typedef.YYSTYPE* getelementptr ([150 x %typedef.YYSTYPE]* %yyv, long 0, long -1), long 1, uint 0		; <sbyte**> [#uses=2]
-	br bool false, label %yydefault.preheader.i, label %endif.1.i2
-
-yystack.i:		; preds = %endif.15.i
-	ret void
-
-endif.1.i2:		; preds = %loopexit
-	ret void
-
-yydefault.preheader.i:		; preds = %loopexit
-	switch short 0, label %endif.12.i [
-		 short -2, label %then.7.i
-		 short 0, label %then.12.i
-	]
-
-then.7.i:		; preds = %yydefault.preheader.i
-	ret void
-
-then.12.i:		; preds = %yydefault.preheader.i
-	ret void
-
-endif.12.i:		; preds = %yydefault.preheader.i
-	br bool false, label %endif.15.i, label %then.15.i
-
-then.15.i:		; preds = %endif.12.i
-	ret void
-
-endif.15.i:		; preds = %endif.12.i
-	switch int 0, label %yystack.i [
-		 int 97, label %label.86.i
-		 int 96, label %label.85.i
-		 int 95, label %label.84.i
-		 int 94, label %label.83.i
-		 int 93, label %label.82.i
-		 int 92, label %label.81.i
-		 int 91, label %label.80.i
-		 int 90, label %label.79.i
-		 int 89, label %label.78.i
-		 int 88, label %label.77.i
-		 int 87, label %label.76.i
-		 int 86, label %label.75.i
-		 int 85, label %label.74.i
-		 int 84, label %label.73.i
-		 int 83, label %label.72.i
-		 int 82, label %label.71.i
-		 int 81, label %label.70.i
-		 int 80, label %label.69.i
-		 int 79, label %label.68.i
-		 int 78, label %label.67.i
-		 int 77, label %label.66.i
-		 int 76, label %label.61.i
-		 int 75, label %label.60.i
-		 int 74, label %label.59.i
-		 int 73, label %label.58.i
-		 int 72, label %label.57.i
-		 int 71, label %label.56.i
-		 int 70, label %label.55.i
-		 int 69, label %label.54.i
-		 int 68, label %label.53.i
-		 int 67, label %label.52.i
-		 int 65, label %label.51.i
-		 int 64, label %label.50.i
-		 int 63, label %label.49.i
-		 int 62, label %label.48.i
-		 int 61, label %label.47.i
-		 int 59, label %label.46.i
-		 int 54, label %label.41.i
-		 int 53, label %label.40.i
-		 int 52, label %label.39.i
-		 int 50, label %label.38.i
-		 int 49, label %else.i796.i
-		 int 48, label %label.36.i
-		 int 46, label %label.35.i
-		 int 44, label %label.34.i
-		 int 43, label %label.33.i
-		 int 39, label %label.32.i
-		 int 38, label %label.31.i
-		 int 37, label %label.30.i
-		 int 36, label %label.29.i
-		 int 35, label %label.28.i
-		 int 34, label %label.27.i
-		 int 32, label %label.25.i
-		 int 31, label %label.24.i
-		 int 30, label %label.23.i
-		 int 29, label %label.22.i
-		 int 28, label %label.21.i
-		 int 27, label %label.20.i
-		 int 26, label %else.i586.i
-		 int 25, label %else.i558.i
-		 int 23, label %else.2.i
-		 int 22, label %label.15.i
-		 int 21, label %label.14.i
-		 int 20, label %then.17.i
-		 int 19, label %label.12.i
-		 int 18, label %label.11.i
-		 int 17, label %label.10.i
-		 int 10, label %label.9.i
-		 int 6, label %label.8.i
-		 int 5, label %label.7.i
-		 int 4, label %label.6.i
-		 int 3, label %label.5.i
-		 int 1, label %label.4.i
-	]
-
-label.4.i:		; preds = %endif.15.i
-	ret void
-
-label.5.i:		; preds = %endif.15.i
-	ret void
-
-label.6.i:		; preds = %endif.15.i
-	ret void
-
-label.7.i:		; preds = %endif.15.i
-	ret void
-
-label.8.i:		; preds = %endif.15.i
-	ret void
-
-label.9.i:		; preds = %endif.15.i
-	ret void
-
-label.10.i:		; preds = %endif.15.i
-	ret void
-
-label.11.i:		; preds = %endif.15.i
-	ret void
-
-label.12.i:		; preds = %endif.15.i
-	ret void
-
-then.17.i:		; preds = %endif.15.i
-	ret void
-
-label.14.i:		; preds = %endif.15.i
-	ret void
-
-label.15.i:		; preds = %endif.15.i
-	ret void
-
-else.2.i:		; preds = %endif.15.i
-	ret void
-
-else.i558.i:		; preds = %endif.15.i
-	ret void
-
-else.i586.i:		; preds = %endif.15.i
-	ret void
-
-label.20.i:		; preds = %endif.15.i
-	ret void
-
-label.21.i:		; preds = %endif.15.i
-	ret void
-
-label.22.i:		; preds = %endif.15.i
-	ret void
-
-label.23.i:		; preds = %endif.15.i
-	ret void
-
-label.24.i:		; preds = %endif.15.i
-	ret void
-
-label.25.i:		; preds = %endif.15.i
-	ret void
-
-label.27.i:		; preds = %endif.15.i
-	ret void
-
-label.28.i:		; preds = %endif.15.i
-	ret void
-
-label.29.i:		; preds = %endif.15.i
-	ret void
-
-label.30.i:		; preds = %endif.15.i
-	ret void
-
-label.31.i:		; preds = %endif.15.i
-	ret void
-
-label.32.i:		; preds = %endif.15.i
-	ret void
-
-label.33.i:		; preds = %endif.15.i
-	br bool false, label %else.i912.i, label %else.i884.i
-
-else.i884.i:		; preds = %label.33.i
-	ret void
-
-else.i912.i:		; preds = %label.33.i
-	%tmp.4961260.i = load sbyte** %tmp.11.i		; <sbyte*> [#uses=1]
-	free sbyte* %tmp.4961260.i
-	ret void
-
-label.34.i:		; preds = %endif.15.i
-	ret void
-
-label.35.i:		; preds = %endif.15.i
-	ret void
-
-label.36.i:		; preds = %endif.15.i
-	ret void
-
-else.i796.i:		; preds = %endif.15.i
-	ret void
-
-label.38.i:		; preds = %endif.15.i
-	ret void
-
-label.39.i:		; preds = %endif.15.i
-	ret void
-
-label.40.i:		; preds = %endif.15.i
-	ret void
-
-label.41.i:		; preds = %endif.15.i
-	ret void
-
-label.46.i:		; preds = %endif.15.i
-	ret void
-
-label.47.i:		; preds = %endif.15.i
-	ret void
-
-label.48.i:		; preds = %endif.15.i
-	ret void
-
-label.49.i:		; preds = %endif.15.i
-	ret void
-
-label.50.i:		; preds = %endif.15.i
-	ret void
-
-label.51.i:		; preds = %endif.15.i
-	ret void
-
-label.52.i:		; preds = %endif.15.i
-	ret void
-
-label.53.i:		; preds = %endif.15.i
-	ret void
-
-label.54.i:		; preds = %endif.15.i
-	ret void
-
-label.55.i:		; preds = %endif.15.i
-	ret void
-
-label.56.i:		; preds = %endif.15.i
-	ret void
-
-label.57.i:		; preds = %endif.15.i
-	ret void
-
-label.58.i:		; preds = %endif.15.i
-	ret void
-
-label.59.i:		; preds = %endif.15.i
-	ret void
-
-label.60.i:		; preds = %endif.15.i
-	ret void
-
-label.61.i:		; preds = %endif.15.i
-	ret void
-
-label.66.i:		; preds = %endif.15.i
-	ret void
-
-label.67.i:		; preds = %endif.15.i
-	ret void
-
-label.68.i:		; preds = %endif.15.i
-	ret void
-
-label.69.i:		; preds = %endif.15.i
-	ret void
-
-label.70.i:		; preds = %endif.15.i
-	ret void
-
-label.71.i:		; preds = %endif.15.i
-	ret void
-
-label.72.i:		; preds = %endif.15.i
-	ret void
-
-label.73.i:		; preds = %endif.15.i
-	ret void
-
-label.74.i:		; preds = %endif.15.i
-	ret void
-
-label.75.i:		; preds = %endif.15.i
-	ret void
-
-label.76.i:		; preds = %endif.15.i
-	ret void
-
-label.77.i:		; preds = %endif.15.i
-	ret void
-
-label.78.i:		; preds = %endif.15.i
-	ret void
-
-label.79.i:		; preds = %endif.15.i
-	ret void
-
-label.80.i:		; preds = %endif.15.i
-	ret void
-
-label.81.i:		; preds = %endif.15.i
-	%tmp.1165.i = load sbyte** %tmp.11.i		; <sbyte*> [#uses=1]
-	call fastcc void %lookup( sbyte* %tmp.1165.i )
-	ret void
-
-label.82.i:		; preds = %endif.15.i
-	ret void
-
-label.83.i:		; preds = %endif.15.i
-	ret void
-
-label.84.i:		; preds = %endif.15.i
-	ret void
-
-label.85.i:		; preds = %endif.15.i
-	ret void
-
-label.86.i:		; preds = %endif.15.i
-	ret void
-}
-
-fastcc void %more_functions() {
-entry:
-	ret void
-}
diff --git a/poolalloc/Regressions/2006-04-13.MixedAllocaGlobals.ll b/poolalloc/Regressions/2006-04-13.MixedAllocaGlobals.ll
deleted file mode 100644
index 8c3f158..0000000
--- a/poolalloc/Regressions/2006-04-13.MixedAllocaGlobals.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; ModuleID = 'bugpoint-reduced-simplified.bc'
-target endian = little
-target pointersize = 32
-target triple = "i686-pc-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.MT = type { int, [100 x [3 x [3 x int]]], [3 x [3 x int]], [3 x [3 x int]] }
-	%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
-	%struct.cellbox = type { sbyte*, sbyte, sbyte, int, int, short, short, short, short, short, short, short, %struct.tilebox* }
-	%struct.netbox = type { %struct.netbox*, int, int, int, int, int, int, short, short, short, sbyte, sbyte, sbyte, sbyte }
-	%struct.termbox = type { %struct.termbox*, %struct.netbox*, int, int, short, [2 x short], [2 x short], short }
-	%struct.tilebox = type { short, short, short, short, %struct.termbox* }
-%carray = external global %struct.cellbox**		; <%struct.cellbox***> [#uses=1]
-%foo = external global sbyte*
-
-implementation   ; Functions:
-
-void %main() {
-entry:
-	call fastcc void %readcell( )
-	ret void
-}
-
-;fastcc sbyte* %safe_malloc(uint %size) {
-;entry:
-;	%tmp.0 = malloc sbyte, uint %size		; <sbyte*> [#uses=1]
-;	ret sbyte* %tmp.0
-;}
-
-fastcc void %readcell() {
-entry:
-	%input = alloca [1024 x sbyte]		; <[1024 x sbyte]*> [#uses=1]
-	%tmp.48384 = getelementptr [1024 x sbyte]* %input, int 0, int 0		; <sbyte*> [#uses=1]
-;	%tmp.7314 = call fastcc sbyte* %safe_malloc( uint 0 )		; <sbyte*> [#uses=2]
-        %tmp.7314 = malloc sbyte, uint 0	
-        store sbyte* %tmp.7314, sbyte** %foo
-	call void %llvm.memcpy.i32( sbyte* %tmp.7314, sbyte* %tmp.48384, uint 0, uint 1 )
-	ret void
-}
-
-declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint)
diff --git a/poolalloc/autoconf/AutoRegen.sh b/poolalloc/autoconf/AutoRegen.sh
deleted file mode 100755
index 2f921a5..0000000
--- a/poolalloc/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-test -d autoconf && test -f autoconf/configure.ac && cd autoconf
-test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.5[0-9]' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.5x"
-fi
-cwd=`pwd`
-if test -d ../../../autoconf/m4 ; then
-  cd ../../../autoconf/m4
-  llvm_m4=`pwd`
-  llvm_src_root='`(cd ../..; pwd)`'
-  llvm_obj_root='`(cd ../..; pwd)`'
-  cd $cwd
-elif test -d ../../llvm/autoconf/m4 ; then
-  cd ../../llvm/autoconf/m4
-  llvm_m4=`pwd`
-  llvm_src_root='`(cd ../..; pwd)`'
-  llvm_obj_root='`(cd ../..; pwd)`'
-  cd $cwd
-else
-  while true ; do
-    echo "LLVM source root not found." 
-    read -p "Enter full path to LLVM source:"
-    if test -d "$REPLY/autoconf/m4" ; then
-      llvm_src_root="$REPLY"
-      llvm_m4="$REPLY/autoconf/m4"
-      read -p "Enter full path to LLVM objects (empty for same as source):"
-      if test -d "$REPLY" ; then
-        llvm_obj_root="$REPLY"
-      else
-        llvm_obj_root="$llvm_src_root"
-      fi
-      break
-    fi
-  done
-fi
-# Patch the LLVM_ROOT in configure.ac, if it needs it
-cp configure.ac configure.bak
-#sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
-#    -e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
-echo "Regenerating aclocal.m4 with aclocal"
-rm -f aclocal.m4
-aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.5x"
-autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
-cd ..
-exit 0
diff --git a/poolalloc/autoconf/aclocal.m4 b/poolalloc/autoconf/aclocal.m4
deleted file mode 100644
index d3959fc..0000000
--- a/poolalloc/autoconf/aclocal.m4
+++ /dev/null
@@ -1,105 +0,0 @@
-# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# 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.
-
-#
-# Configure a Makefile without clobbering it if it exists and is not out of
-# date.  This macro is unique to LLVM.
-#
-AC_DEFUN([AC_CONFIG_MAKEFILE],
-[AC_CONFIG_COMMANDS($1,
-  [${llvm_src}/autoconf/mkinstalldirs `dirname $1`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/$1 $1])
-])
-
-#
-# Provide the arguments and other processing needed for an LLVM project
-#
-AC_DEFUN([LLVM_CONFIG_PROJECT],
-  [AC_ARG_WITH([llvmsrc],
-    AS_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),
-    [llvm_src="$withval"],[llvm_src="]$1["])
-  AC_SUBST(LLVM_SRC,$llvm_src)
-  AC_ARG_WITH([llvmobj],
-    AS_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),
-    [llvm_obj="$withval"],[llvm_obj="]$2["])
-  AC_SUBST(LLVM_OBJ,$llvm_obj)
-  AC_CONFIG_COMMANDS([setup],,[llvm_src="${LLVM_SRC}"])
-])
-
-#
-# Check for the ability to mmap a file.  
-#
-AC_DEFUN([AC_FUNC_MMAP_FILE],
-[AC_CACHE_CHECK(for mmap of files,
-ac_cv_func_mmap_file,
-[ AC_LANG_PUSH([C])
-  AC_RUN_IFELSE([
-    AC_LANG_PROGRAM([[
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-]],[[
-  int fd;
-  fd = creat ("foo",0777); 
-  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
-  unlink ("foo"); 
-  return (fd != (int) MAP_FAILED);]])],
-  [ac_cv_func_mmap_file=yes],[ac_cv_func_mmap_file=no],[ac_cv_func_mmap_file=no])
-  AC_LANG_POP([C])
-])
-if test "$ac_cv_func_mmap_file" = yes; then
-   AC_DEFINE([HAVE_MMAP_FILE],[],[Define if mmap() can map files into memory])
-   AC_SUBST(MMAP_FILE,[yes])
-fi
-])
-
-#
-# Check for anonymous mmap macros.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
-[AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
-ac_cv_header_mmap_anon,
-[ AC_LANG_PUSH([C])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [[#include <sys/mman.h>
-#include <unistd.h>
-#include <fcntl.h>]],
-  [[mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);]])],
-  ac_cv_header_mmap_anon=yes, 
-  ac_cv_header_mmap_anon=no)
-  AC_LANG_POP([C])
-])
-if test "$ac_cv_header_mmap_anon" = yes; then
-   AC_DEFINE([HAVE_MMAP_ANONYMOUS],[1],[Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if it uses MAP_ANON])
-fi
-])
-
-#
-# When allocating RWX memory, check whether we need to use /dev/zero
-# as the file descriptor or not.
-#
-AC_DEFUN([AC_NEED_DEV_ZERO_FOR_MMAP],
-[AC_CACHE_CHECK([if /dev/zero is needed for mmap],
-ac_cv_need_dev_zero_for_mmap,
-[if test "$llvm_cv_os_type" = "Interix" ; then
-   ac_cv_need_dev_zero_for_mmap=yes
- else
-   ac_cv_need_dev_zero_for_mmap=no
- fi
-])
-if test "$ac_cv_need_dev_zero_for_mmap" = yes; then
-  AC_DEFINE([NEED_DEV_ZERO_FOR_MMAP],[1],
-   [Define if /dev/zero should be used when mapping RWX memory, or undefine if its not necessary])
-fi])
-
diff --git a/poolalloc/autoconf/config.guess b/poolalloc/autoconf/config.guess
deleted file mode 100755
index cc726cd..0000000
--- a/poolalloc/autoconf/config.guess
+++ /dev/null
@@ -1,1388 +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 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { 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 ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
-	# 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 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/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    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 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    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 0 ;;
-    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 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    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 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # 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 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    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 \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    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 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????: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 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    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 0 ;;
-    *: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
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	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 0 ;;
-    *:AIX:*:[45])
-	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 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    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
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    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 && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    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 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-	exit 0 ;;
-    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 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:3*)
-	echo i586-pc-interix3
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    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 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    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 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    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 0 ;;
-    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 0 ;;
-    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 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    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 0 ;;
-    i*86:*:5:[78]*)
-	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 0 ;;
-    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 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    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 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*: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)
-	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 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *: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 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    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 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-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"); 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 && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# 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 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    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
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-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@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/poolalloc/autoconf/config.sub b/poolalloc/autoconf/config.sub
deleted file mode 100755
index 9772e87..0000000
--- a/poolalloc/autoconf/config.sub
+++ /dev/null
@@ -1,1489 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# 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., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 0;;
-
-    * )
-       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* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-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/'`
-		;;
-	-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] \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k \
-	| m32r | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# 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-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* \
-	| m32r-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# 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
-		;;
-	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
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	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
-		;;
-	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
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	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
-		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	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
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2)
-		basic_machine=i686-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-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	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
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-        tic4x | c4x*)
-		basic_machine=tic4x-unknown
-		os=-coff
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	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
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	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
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -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*)
-	# 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* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-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
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-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
-		;;
-	-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
-		;;
-	-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
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	# 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
-		;;
-	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
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-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 0
-
-# 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/poolalloc/autoconf/configure.ac b/poolalloc/autoconf/configure.ac
deleted file mode 100644
index 08a310f..0000000
--- a/poolalloc/autoconf/configure.ac
+++ /dev/null
@@ -1,102 +0,0 @@
-dnl **************************************************************************
-dnl * Initialize
-dnl **************************************************************************
-AC_INIT([[[Pool Allocation]]],[[[1.0]]],[llvmbugs@cs.uiuc.edu])
-
-dnl Identify where LLVM source tree is
-LLVM_SRC_ROOT="`(cd $srcdir/../..; pwd)`"
-LLVM_OBJ_ROOT="`(cd ../..; pwd)`"
-
-dnl Tell autoconf that the auxilliary files are actually located in
-dnl the LLVM autoconf directory, not here.
-AC_CONFIG_AUX_DIR($LLVM_SRC_ROOT/autoconf)
-
-dnl Tell autoconf that this is an LLVM project being configured
-dnl This provides the --with-llvmsrc and --with-llvmobj options
-LLVM_CONFIG_PROJECT($LLVM_SRC_ROOT,$LLVM_OBJ_ROOT)
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(["Makefile.common.in"])
-
-dnl Configure a common Makefile
-AC_CONFIG_FILES(Makefile.common)
-
-dnl Configure project makefiles
-dnl List every Makefile that exists within your source tree
-AC_CONFIG_MAKEFILE(Makefile)
-AC_CONFIG_MAKEFILE(lib/Makefile)
-AC_CONFIG_MAKEFILE(lib/PoolAllocate/Makefile)
-AC_CONFIG_MAKEFILE(runtime/Makefile)
-AC_CONFIG_MAKEFILE(runtime/PoolAllocator/Makefile)
-AC_CONFIG_MAKEFILE(runtime/FreeListAllocator/Makefile)
-AC_CONFIG_MAKEFILE(test/Makefile)
-
-dnl **************************************************************************
-dnl * Determine which system we are building on
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for programs.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for libraries.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for header files.
-dnl **************************************************************************
-AC_HEADER_MMAP_ANONYMOUS
-AC_HEADER_STAT
-AC_CHECK_HEADERS([fcntl.h sys/mman.h])
-
-dnl **************************************************************************
-dnl * Checks for typedefs, structures, and compiler characteristics.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for library functions.
-dnl **************************************************************************
-AC_FUNC_MMAP
-AC_FUNC_MMAP_FILE
-AC_NEED_DEV_ZERO_FOR_MMAP
-
-dnl **************************************************************************
-dnl * Enable various compile-time options
-dnl **************************************************************************
-
-dnl --enable-safecode: Enable SAFECode functionality
-AC_ARG_ENABLE(safecode,
-  AS_HELP_STRING(--enable-safecode,
-                 [Enable SAFECode functionality (default is NO)]),
-                  AC_DEFINE(SAFECODE,[[1]]),
-                  )
-
-dnl --enable-boundscheck: Enable SAFECode Bounds Check functionality
-AC_ARG_ENABLE(boundscheck,
-  AS_HELP_STRING(--enable-boundschecks,
-                 [Enable SAFECode bounds checking (default is NO)]),
-                  AC_DEFINE(BOUNDS_CHECK,[[1]]),
-                  )
-
-dnl --enable-llva-kernel: Compile DSA for pool inference
-AC_ARG_ENABLE(kernel,
-  AS_HELP_STRING(--enable-kernel,
-                 [Use SAFECode for use with Linux Kernel (default is NO)]),
-                  AC_DEFINE(LLVA_KERNEL,[[1]]),
-                  )
-
-dnl **************************************************************************
-dnl * Set the location of various third-party software packages
-dnl **************************************************************************
-
-dnl Location of SAFECode
-AC_ARG_WITH(safecodesrc,AS_HELP_STRING(--with-safecode,Location of SAFECode Source Code),AC_SUBST(SAFECODESRC,[$withval]),AC_SUBST(SAFECODESRC,[`cd ../safecode; pwd`]))
-
-dnl **************************************************************************
-dnl * Create the output files
-dnl **************************************************************************
-AC_CONFIG_HEADERS(include/poolalloc/Config/config.h)
-
-dnl This must be last
-AC_OUTPUT
diff --git a/poolalloc/autoconf/install-sh b/poolalloc/autoconf/install-sh
deleted file mode 100644
index 398a88e..0000000
--- a/poolalloc/autoconf/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# 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.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	:
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=$mkdirprog
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		:
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		:
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		:
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-	'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
-	shift
-
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		:
-	fi
-
-	pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		:
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# 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 $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/poolalloc/autoconf/ltmain.sh b/poolalloc/autoconf/ltmain.sh
deleted file mode 100644
index fe83ff4..0000000
--- a/poolalloc/autoconf/ltmain.sh
+++ /dev/null
@@ -1,6290 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5
-TIMESTAMP=" (1.1220 2003/04/05 19:32:58)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# 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'
-# test EBCDIC or ASCII
-case `echo A|od -x` in
- *[Cc]1*) # EBCDIC based system
-  SP2NL="tr '\100' '\n'"
-  NL2SP="tr '\r\n' '\100\100'"
-  ;;
- *) # Assume ASCII based system
-  SP2NL="tr '\040' '\012'"
-  NL2SP="tr '\015\012' '\040\040'"
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-: ${IFS=" 	"}
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# 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.
-win32_libid () {
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-      if test "X$win32_nmres" = "Ximport" ; then
-        win32_libid_type="x86 archive import"
-      else
-        win32_libid_type="x86 archive static"
-      fi
-    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
-}
-
-# End of Shell function definitions
-#####################################
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit 1
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit 0
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
-    done
-    exit 0
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --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 0
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    ;;
-
-  --tag) prevopt="--tag" prev=tag ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
-
-# 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=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_output=
-    arg_mode=normal
-    libobj=
-
-    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)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit 1
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static)
-	  build_old_libs=yes
-	  continue
-	  ;;
-
-	-prefer-pic)
-	  pic_mode=yes
-	  continue
-	  ;;
-
-	-prefer-non-pic)
-	  pic_mode=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,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$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.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit 1
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    # 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.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
-      # 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$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case "$base_compile " in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # 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
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # 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
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    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 $run ln "$0" "$lockfile" 2>/dev/null; do
-	$show "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."
-
-	$run $rm $removelist
-	exit 1
-      fi
-      $echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # 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 $srcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	status=$?
-	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit 1
-      fi
-
-      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."
-
-	$run $rm $removelist
-	exit 1
-      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
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    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 $srcfile"
-      else
-	command="$base_compile $srcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit 1
-      fi
-
-      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."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit 0
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # 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=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	prefer_static_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"
-      base_compile="$base_compile $arg"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit 1
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit 1
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$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
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit 1
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit 1
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit 1
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $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
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit 1
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	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*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    exit 1
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-mingw* | *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # gcc -m* arguments should be passed to the linker via $compiler_flags
-      # in order to pass architecture information to the linker
-      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
-      # but this is not reliable with gcc because gcc may use -mfoo to
-      # select a different linker, different libraries, etc, while
-      # -Wl,-mfoo simply passes -mfoo to the linker.
-      -m*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        if test "$with_gcc" = "yes" ; then
-          compiler_flags="$compiler_flags $arg"
-        fi
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit 1
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# 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
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit 1
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$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
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit 1
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # 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 link
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
-      # 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$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case $base_compile in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # The compiler in $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
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#       else
-#         $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplcations in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    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 test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit 1
-	    ;;
-	  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
-      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 "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    # Search the libtool library
-	    lib="$searchdir/lib${name}.la"
-	    if test -f "$lib"; then
-	      found=yes
-	      break
-	    fi
-	  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 (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  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
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    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
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    if test "$deplibs_check_method" != pass_all; 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 used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit 1
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-
-	# Read the .la file
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit 1
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit 1
-	  fi
-	  continue
-	fi # $pass = conv
-
-    
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	else
-	  dir="$ladir/$objdir"
-	  absdir="$abs_ladir/$objdir"
-	  # Remove this search path later
-	  notinst_path="$notinst_path $abs_ladir"
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-    
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    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 test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var"; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath " in
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $dir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-	
-      # Warn about portability, can't link against -module's on some systems (darwin)
-      if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"    
-      fi	  
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; 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*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$extract_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$old_archive_from_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against it, someone
-		    # is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; 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 
-		    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; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case "$libdir" in
-		    [\\/]*)
-		      add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		      ;;
-		  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
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit 1
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case "$libdir" in
-		  [\\/]*)
-		    add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		    ;;
-		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
-	    convenience="$convenience $dir/$old_library"
-	    old_convenience="$old_convenience $dir/$old_library"
-	    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*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit 1
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs, but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		   fi
-		    newlib_search_path="$newlib_search_path $path"
-		    path=""
-		  fi
-		  ;;
-		*)
-		path="-L$path"
-		;;
-		esac 
-		
-		;;
-		  -l*)
-		case $host in
-		*-*-darwin*)
-		 # Again, we only want to link against shared libraries
-		 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		 for tmp in $newlib_search_path ; do
-		     if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		       eval depdepl="$tmp/lib$tmp_libs.dylib"
-		       break
-		     fi  
-         done
-         path=""
-		  ;;
-		*) continue ;;
-		esac  		  
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$deplibs $depdepl" ;;
-	      esac	      
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$deplibs $path" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit 1
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      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
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# 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="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	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]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $revision in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $age in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	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
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  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)
-	  major=`expr $current - $age + 1`
-
-	  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
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  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
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit 1
-	  ;;
-	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
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$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
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    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
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$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
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	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
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; 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"
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    eval cmds=\"$export_symbols_cmds\"
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "using reloadable object file for export list..."
-	        skipped_export=:
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*) 
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs" 
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$gentop"; then
-	      exit $status
-	    fi
-	    generated="$generated $gentop"
-
-	    for xlib in $convenience; do
-	      # Extract the objects.
-	      case $xlib in
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	      *) xabs=`pwd`"/$xlib" ;;
-	      esac
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	      xdir="$gentop/$xlib"
-
-	      $show "${rm}r $xdir"
-	      $run ${rm}r "$xdir"
-	      $show "$mkdir $xdir"
-	      $run $mkdir "$xdir"
-	      status=$?
-	      if test "$status" -ne 0 && test ! -d "$xdir"; then
-		exit $status
-	      fi
-	      # We will extract separately just the conflicting names and we will no
-	      # longer touch any unique names. It is faster to leave these extract
-	      # automatically by $AR in one run.
-	      $show "(cd $xdir && $AR x $xabs)"
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-		:
-	      else
-		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-		$AR t "$xabs" | sort | uniq -cd | while read -r count name
-		do
-		  i=1
-		  while test "$i" -le "$count"
-		  do
-		   # Put our $i before any first dot (extension)
-		   # Never overwrite any file
-		   name_to="$name"
-		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		   do
-		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		   done
-		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		   i=`expr $i + 1`
-		  done
-		done
-	      fi
-
-	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	    done
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $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 cmds=\"$module_expsym_cmds\"
-	  else
-	    eval cmds=\"$module_cmds\"
-	  fi
-	else
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval cmds=\"$archive_expsym_cmds\"
-	else
-	  eval cmds=\"$archive_cmds\"
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # 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
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$save_output-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*"` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$save_output-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$save_output-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadale object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-	  done
-
-	  $echo "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"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  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\"
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval cmds=\"$archive_expsym_cmds\"
-	  else
-	    eval cmds=\"$archive_cmds\"
-	  fi
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-	  exit 0
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run 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 "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit 1
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $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
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  $show "${rm}r $gentop"
-	  $run ${rm}r "$gentop"
-	  $show "$mkdir $gentop"
-	  $run $mkdir "$gentop"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$gentop"; then
-	    exit $status
-	  fi
-	  generated="$generated $gentop"
-
-	  for xlib in $convenience; do
-	    # Extract the objects.
-	    case $xlib in
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	    *) xabs=`pwd`"/$xlib" ;;
-	    esac
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	    xdir="$gentop/$xlib"
-
-	    $show "${rm}r $xdir"
-	    $run ${rm}r "$xdir"
-	    $show "$mkdir $xdir"
-	    $run $mkdir "$xdir"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$xdir"; then
-	      exit $status
-	    fi
-	    # We will extract separately just the conflicting names and we will no
-	    # longer touch any unique names. It is faster to leave these extract
-	    # automatically by $AR in one run.
-	    $show "(cd $xdir && $AR x $xabs)"
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	      :
-	    else
-	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	      do
-		i=1
-		while test "$i" -le "$count"
-		do
-		 # Put our $i before any first dot (extension)
-		 # Never overwrite any file
-		 name_to="$name"
-		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		 do
-		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		 done
-		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		 i=`expr $i + 1`
-		done
-	      done
-	    fi
-
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	  done
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit 0
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${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"
-	# $run eval "echo timestamp > $libobj" || exit $?
-	exit 0
-      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"
-	eval cmds=\"$reload_cmds\"
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit 0
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$output.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	    else
-	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # 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/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  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*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit 1
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit 0
-      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"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "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}\" || 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
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-	case $0 in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    cwrappersource=`$echo ${objdir}/lt-${output}.c`
-	    cwrapper=`$echo ${output}.exe`
-	    $rm $cwrappersource $cwrapper
-	    trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   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.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2 
-#define DIR_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 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-  
-  program_name = (char *) xstrdup ((char *) basename (argv[0]));
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  newargz[0] = "$SHELL";
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-  newargz[1] = fnqualify(argv[0]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe"); 
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char * 
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':') 
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return (char *) base;
-}
-
-char * 
-fnqualify(const char *path)
-{
-  size_t size;
-  char *p;
-  char tmp[LT_PATHMAX + 1];
-
-  assert(path != NULL);
-
-  /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha (path[0]) && path[1] == ':')
-    return xstrdup (path);
-#endif
-  if (IS_DIR_SEPARATOR (path[0]))
-    return xstrdup (path);
-
-  /* prepend the current directory */
-  /* doesn't handle '~' */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-  p = XMALLOC(char, size);
-  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-  return p;
-}
-
-char *
-strendzap(char *str, const char *pat) 
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode, 
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-	  # we should really use a build-platform specific compiler
-	  # here, but OTOH, the wrappers (shell script and this C one)
-	  # are only useful if you want to execute the "real" binary.
-	  # Since the "real" binary is built for $host, then this
-	  # wrapper might as well be built for $host, too.
-	  $run $LTCC -s -o $cwrapper $cwrappersource
-	  ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit 1" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  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 >> $output "\
-
-    # 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 >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit 0
-      ;;
-    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"
-	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"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	$show "${rm}r $gentop"
-	$run ${rm}r "$gentop"
-	$show "$mkdir $gentop"
-	$run $mkdir "$gentop"
-	status=$?
-	if test "$status" -ne 0 && test ! -d "$gentop"; then
-	  exit $status
-	fi
-	generated="$generated $gentop"
-
-	# Add in members from convenience archives.
-	for xlib in $addlibs; do
-	  # Extract the objects.
-	  case $xlib in
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	  *) xabs=`pwd`"/$xlib" ;;
-	  esac
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	  xdir="$gentop/$xlib"
-
-	  $show "${rm}r $xdir"
-	  $run ${rm}r "$xdir"
-	  $show "$mkdir $xdir"
-	  $run $mkdir "$xdir"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$xdir"; then
-	    exit $status
-	  fi
-	  # We will extract separately just the conflicting names and we will no
-	  # longer touch any unique names. It is faster to leave these extract
-	  # automatically by $AR in one run.
-	  $show "(cd $xdir && $AR x $xabs)"
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	    do
-	      i=1
-	      while test "$i" -le "$count"
-	      do
-	       # Put our $i before any first dot (extension)
-	       # Never overwrite any file
-	       name_to="$name"
-	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-	       do
-		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-	       done
-	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-	       i=`expr $i + 1`
-	      done
-	    done
-	  fi
-
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-	done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	eval cmds=\"$old_archive_from_new_cmds\"
-      else
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
-	  # encoded into archives.  This makes 'ar r' malfunction in
-	  # this piecewise linking case whenever conflicting object
-	  # names appear in distinct ar calls; check, warn and compensate.
-	    if (for obj in $save_oldobjs
-	    do
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
-	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
-	    AR_FLAGS=cq
-	  fi
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done  
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*"` &&
-	       test "$len" -le "$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=
-	    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
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "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}\" || 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
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	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)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit 1
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# 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'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_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
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest="$arg"
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*) ;;
-
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest="$arg"
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$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 "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.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit 1
-	  fi
-
-	  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
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit 1
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run eval "$striplib $destdir/$realname" || exit $?
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  eval cmds=\"$postinstall_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit 0
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  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
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit 1
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-	      else
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyways
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
-    else
-      exit 0
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  eval cmds=\"$finish_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit 0
-
-    $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"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit 1
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # 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 0
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-	  if test "$mode" = uninstall; then
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      eval cmds=\"$postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      eval cmds=\"$old_postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe) 
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit 1
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [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
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit 0
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [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: $modename [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
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -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
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-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: $modename [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."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# 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:
diff --git a/poolalloc/autoconf/mkinstalldirs b/poolalloc/autoconf/mkinstalldirs
deleted file mode 100755
index 994d71c..0000000
--- a/poolalloc/autoconf/mkinstalldirs
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
-   case "${1}" in
-     -h | --help | --h* )			# -h for help
-	echo "${usage}" 1>&2; exit 0 ;;
-     -m )					# -m PERM arg
-	shift
-	test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
-	dirmode="${1}"
-	shift ;;
-     -- ) shift; break ;;			# stop option processing
-     -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option
-     * )  break ;;				# first non-opt arg
-   esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-0) exit 0 ;;
-esac
-
-case $dirmode in
-'')
-  if mkdir -p -- . 2>/dev/null; then
-    echo "mkdir -p -- $*"
-    exec mkdir -p -- "$@"
-  fi ;;
-*)
-  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
-    echo "mkdir -m $dirmode -p -- $*"
-    exec mkdir -m "$dirmode" -p -- "$@"
-  fi ;;
-esac
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-	echo "mkdir $pathcomp"
-
-	mkdir "$pathcomp" || lasterr=$?
-
-	if test ! -d "$pathcomp"; then
-	  errstatus=$lasterr
-	else
-	  if test ! -z "$dirmode"; then
-	     echo "chmod $dirmode $pathcomp"
-
-	     lasterr=""
-	     chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	     if test ! -z "$lasterr"; then
-	       errstatus=$lasterr
-	     fi
-	  fi
-	fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 3
-# End:
-# mkinstalldirs ends here
diff --git a/poolalloc/configure b/poolalloc/configure
deleted file mode 100755
index fefb036..0000000
--- a/poolalloc/configure
+++ /dev/null
@@ -1,4941 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for [Pool Allocation] [1.0].
-#
-# Report bugs to <llvmbugs@cs.uiuc.edu>.
-#
-# Copyright (C) 2003 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 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='[Pool Allocation]'
-PACKAGE_TARNAME='--pool-allocation--'
-PACKAGE_VERSION='[1.0]'
-PACKAGE_STRING='[Pool Allocation] [1.0]'
-PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
-
-ac_unique_file=""Makefile.common.in""
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP MMAP_FILE SAFECODESRC LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# 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.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-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
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -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 | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$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 ;;
-
-  -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 ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    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 ;;
-
-  -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=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 ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      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'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-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
-    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
-
-
-# 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 its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    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
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# 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 [Pool Allocation] [1.0] to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-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]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --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]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of [Pool Allocation] [1.0]:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-safecode       Enable SAFECode functionality (default is NO)
-  --enable-boundschecks   Enable SAFECode bounds checking (default is NO)
-  --enable-kernel         Use SAFECode for use with Linux Kernel (default is
-                          NO)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-  --with-safecode         Location of SAFECode Source Code
-
-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>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-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 <llvmbugs@cs.uiuc.edu>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style 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
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-[Pool Allocation] configure [1.0]
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 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 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by [Pool Allocation] $as_me [1.0], which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-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`
-hostinfo               = `(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=.
-  echo "PATH: $as_dir"
-done
-
-} >&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_sep=
-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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$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
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >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
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  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.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$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 `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-LLVM_SRC_ROOT="`(cd $srcdir/../..; pwd)`"
-LLVM_OBJ_ROOT="`(cd ../..; pwd)`"
-
-ac_aux_dir=
-for ac_dir in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf; 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
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  llvm_src="$withval"
-else
-  llvm_src="$LLVM_SRC_ROOT"
-fi;
-  LLVM_SRC=$llvm_src
-
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  llvm_obj="$withval"
-else
-  llvm_obj="$LLVM_OBJ_ROOT"
-fi;
-  LLVM_OBJ=$llvm_obj
-
-            ac_config_commands="$ac_config_commands setup"
-
-
-
-
-
-          ac_config_files="$ac_config_files Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/PoolAllocate/Makefile"
-
-
-          ac_config_commands="$ac_config_commands runtime/Makefile"
-
-
-          ac_config_commands="$ac_config_commands runtime/PoolAllocator/Makefile"
-
-
-          ac_config_commands="$ac_config_commands runtime/FreeListAllocator/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Makefile"
-
-
-
-
-
-
-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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-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
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-	;;
-    conftest.$ac_ext )
-	# This is the source file.
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	# FIXME: I believe we export ac_cv_exeext for Libtool,
-	# but it would be cool to find out if it's true.  Does anybody
-	# maintain Libtool? --akim.
-	export ac_cv_exeext
-	break;;
-    * )
-	break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# 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 | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  export ac_cv_exeext
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$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
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 -std1 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 -std1.  */
-int osf4_cc_array ['\x00' == 0 ? 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
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext 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
-
-
-echo "$as_me:$LINENO: checking for MAP_ANONYMOUS vs. MAP_ANON" >&5
-echo $ECHO_N "checking for MAP_ANONYMOUS vs. MAP_ANON... $ECHO_C" >&6
-if test "${ac_cv_header_mmap_anon+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/mman.h>
-#include <unistd.h>
-#include <fcntl.h>
-int
-main ()
-{
-mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_mmap_anon=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_mmap_anon=no
-fi
-rm -f conftest.err conftest.$ac_objext 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
-echo "$as_me:$LINENO: result: $ac_cv_header_mmap_anon" >&5
-echo "${ECHO_T}$ac_cv_header_mmap_anon" >&6
-if test "$ac_cv_header_mmap_anon" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP_ANONYMOUS 1
-_ACEOF
-
-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
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f 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
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
-echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
-if test "${ac_cv_header_stat_broken+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined(S_ISBLK) && defined(S_IFDIR)
-# if S_ISBLK (S_IFDIR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISBLK) && defined(S_IFCHR)
-# if S_ISBLK (S_IFCHR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISLNK) && defined(S_IFREG)
-# if S_ISLNK (S_IFREG)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISSOCK) && defined(S_IFREG)
-# if S_ISSOCK (S_IFREG)
-You lose.
-# endif
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "You lose" >/dev/null 2>&1; then
-  ac_cv_header_stat_broken=yes
-else
-  ac_cv_header_stat_broken=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
-echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
-if test $ac_cv_header_stat_broken = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STAT_MACROS_BROKEN 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.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))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-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=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-for ac_header in fcntl.h sys/mman.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to llvmbugs@cs.uiuc.edu ##
-## ----------------------------------- ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to llvmbugs@cs.uiuc.edu ##
-## ----------------------------------- ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* 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_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !STDC_HEADERS && !HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#if !HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h.  */
-# if !HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  if HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
-  char *data, *data2, *data3;
-  int i, pagesize;
-  int fd;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    exit (1);
-  if (write (fd, data, pagesize) != pagesize)
-    exit (1);
-  close (fd);
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    exit (1);
-  data2 = (char *) malloc (2 * pagesize);
-  if (!data2)
-    exit (1);
-  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      exit (1);
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    exit (1);
-  if (read (fd, data3, pagesize) != pagesize)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      exit (1);
-  close (fd);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_fixed_mapped=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-echo "$as_me:$LINENO: checking for mmap of files" >&5
-echo $ECHO_N "checking for mmap of files... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_file+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_file=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-
-    /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-
-int
-main ()
-{
-
-  int fd;
-  fd = creat ("foo",0777);
-  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
-  unlink ("foo");
-  return (fd != (int) MAP_FAILED);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_file=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_file=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-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
-
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_file" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_file" >&6
-if test "$ac_cv_func_mmap_file" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP_FILE
-_ACEOF
-
-   MMAP_FILE=yes
-
-fi
-
-echo "$as_me:$LINENO: checking if /dev/zero is needed for mmap" >&5
-echo $ECHO_N "checking if /dev/zero is needed for mmap... $ECHO_C" >&6
-if test "${ac_cv_need_dev_zero_for_mmap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$llvm_cv_os_type" = "Interix" ; then
-   ac_cv_need_dev_zero_for_mmap=yes
- else
-   ac_cv_need_dev_zero_for_mmap=no
- fi
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_need_dev_zero_for_mmap" >&5
-echo "${ECHO_T}$ac_cv_need_dev_zero_for_mmap" >&6
-if test "$ac_cv_need_dev_zero_for_mmap" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define NEED_DEV_ZERO_FOR_MMAP 1
-_ACEOF
-
-fi
-
-
-# Check whether --enable-safecode or --disable-safecode was given.
-if test "${enable_safecode+set}" = set; then
-  enableval="$enable_safecode"
-  cat >>confdefs.h <<\_ACEOF
-#define SAFECODE 1
-_ACEOF
-
-fi;
-
-# Check whether --enable-boundscheck or --disable-boundscheck was given.
-if test "${enable_boundscheck+set}" = set; then
-  enableval="$enable_boundscheck"
-  cat >>confdefs.h <<\_ACEOF
-#define BOUNDS_CHECK 1
-_ACEOF
-
-fi;
-
-# Check whether --enable-kernel or --disable-kernel was given.
-if test "${enable_kernel+set}" = set; then
-  enableval="$enable_kernel"
-  cat >>confdefs.h <<\_ACEOF
-#define LLVA_KERNEL 1
-_ACEOF
-
-fi;
-
-
-
-# Check whether --with-safecodesrc or --without-safecodesrc was given.
-if test "${with_safecodesrc+set}" = set; then
-  withval="$with_safecodesrc"
-  SAFECODESRC=$withval
-
-else
-  SAFECODESRC=`cd ../safecode; pwd`
-
-fi;
-
-          ac_config_headers="$ac_config_headers include/poolalloc/Config/config.h"
-
-
-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, don't put newlines in cache variables' values.
-# 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.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *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 \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  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}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $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}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by [Pool Allocation] $as_me [1.0], which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -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
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-[Pool Allocation] config.status [1.0]
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-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=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  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
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-llvm_src="${LLVM_SRC}"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-  "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/PoolAllocate/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/PoolAllocate/Makefile" ;;
-  "runtime/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/Makefile" ;;
-  "runtime/PoolAllocator/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/PoolAllocator/Makefile" ;;
-  "runtime/FreeListAllocator/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/FreeListAllocator/Makefile" ;;
-  "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;;
-  "include/poolalloc/Config/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/poolalloc/Config/config.h" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  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_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  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 to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@MMAP_FILE@,$MMAP_FILE,;t t
-s,@SAFECODESRC@,$SAFECODESRC,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # 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.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
-ac_dB='[	 ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 # Do quote $f, to prevent DOS paths from being IFS'd.
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # 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.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
-    fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
-  fi
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    lib/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/PoolAllocate/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/PoolAllocate/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/PoolAllocate/Makefile lib/PoolAllocate/Makefile ;;
-    runtime/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/Makefile runtime/Makefile ;;
-    runtime/PoolAllocator/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/PoolAllocator/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/PoolAllocator/Makefile runtime/PoolAllocator/Makefile ;;
-    runtime/FreeListAllocator/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/FreeListAllocator/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/FreeListAllocator/Makefile runtime/FreeListAllocator/Makefile ;;
-    test/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# 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 || { (exit 1); exit 1; }
-fi
-
diff --git a/poolalloc/include/dsa/CallTargets.h b/poolalloc/include/dsa/CallTargets.h
deleted file mode 100644
index fbbfb40..0000000
--- a/poolalloc/include/dsa/CallTargets.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//=- llvm/Analysis/CallTargets.h - Resolve Indirect Call Targets --*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass uses DSA to map targets of all calls, and reports on if it
-// thinks it knows all targets of a given call.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_CALLTARGETS_H
-#define LLVM_ANALYSIS_CALLTARGETS_H
-
-#include "llvm/Pass.h"
-#include "llvm/Support/CallSite.h"
-
-#include <set>
-#include <list>
-
-namespace llvm {
-
-  class CallTargetFinder : public ModulePass {
-    std::map<CallSite, std::vector<Function*> > IndMap;
-    std::set<CallSite> CompleteSites;
-    std::list<CallSite> AllSites;
-
-    void findIndTargets(Module &M);
-  public:
-    static char ID;
-    CallTargetFinder() : ModulePass((intptr_t)&ID) {}
-
-    virtual bool runOnModule(Module &M);
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const;
-
-    virtual void print(std::ostream &O, const Module *M) const;
-
-    // Given a CallSite, get an iterator of callees
-    std::vector<Function*>::iterator begin(CallSite cs);
-    std::vector<Function*>::iterator end(CallSite cs);
-
-    // Iterate over CallSites in program
-    std::list<CallSite>::iterator cs_begin();
-    std::list<CallSite>::iterator cs_end();
-
-    // Do we think we have complete knowledge of this site?
-    // That is, do we think there are no missing callees
-    bool isComplete(CallSite cs) const;
-  };
-  
-}
-
-#endif
diff --git a/poolalloc/include/dsa/DSGraph.h b/poolalloc/include/dsa/DSGraph.h
deleted file mode 100644
index 470153e..0000000
--- a/poolalloc/include/dsa/DSGraph.h
+++ /dev/null
@@ -1,598 +0,0 @@
-//===- DSGraph.h - Represent a collection of data structures ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This header defines the data structure graph (DSGraph) and the
-// ReachabilityCloner class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_DSGRAPH_H
-#define LLVM_ANALYSIS_DSGRAPH_H
-
-#include "dsa/DSNode.h"
-#include "llvm/ADT/hash_map"
-#include "llvm/ADT/EquivalenceClasses.h"
-
-#include <list>
-#include <map>
-#include <iostream>
-namespace llvm {
-
-
-class GlobalValue;
-
-//===----------------------------------------------------------------------===//
-/// DSScalarMap - An instance of this class is used to keep track of all of
-/// which DSNode each scalar in a function points to.  This is specialized to
-/// keep track of globals with nodes in the function, and to keep track of the
-/// unique DSNodeHandle being used by the scalar map.
-///
-/// This class is crucial to the efficiency of DSA with some large SCC's.  In
-/// these cases, the cost of iterating over the scalar map dominates the cost
-/// of DSA.  In all of these cases, the DSA phase is really trying to identify
-/// globals or unique node handles active in the function.
-///
-class DSScalarMap {
-  typedef hash_map<Value*, DSNodeHandle> ValueMapTy;
-  ValueMapTy ValueMap;
-
-  typedef hash_set<GlobalValue*> GlobalSetTy;
-  GlobalSetTy GlobalSet;
-
-  EquivalenceClasses<GlobalValue*> &GlobalECs;
-public:
-  DSScalarMap(EquivalenceClasses<GlobalValue*> &ECs) : GlobalECs(ECs) {}
-
-  EquivalenceClasses<GlobalValue*> &getGlobalECs() const { return GlobalECs; }
-
-  // Compatibility methods: provide an interface compatible with a map of
-  // Value* to DSNodeHandle's.
-  typedef ValueMapTy::const_iterator const_iterator;
-  typedef ValueMapTy::iterator iterator;
-  iterator begin() { return ValueMap.begin(); }
-  iterator end()   { return ValueMap.end(); }
-  const_iterator begin() const { return ValueMap.begin(); }
-  const_iterator end() const { return ValueMap.end(); }
-
-  GlobalValue *getLeaderForGlobal(GlobalValue *GV) const {
-    EquivalenceClasses<GlobalValue*>::iterator ECI = GlobalECs.findValue(GV);
-    if (ECI == GlobalECs.end()) return GV;
-    return *GlobalECs.findLeader(ECI);
-  }
-
-
-  iterator find(Value *V) {
-    iterator I = ValueMap.find(V);
-    if (I != ValueMap.end()) return I;
-
-    if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) {
-      // If this is a global, check to see if it is equivalenced to something
-      // in the map.
-      GlobalValue *Leader = getLeaderForGlobal(GV);
-      if (Leader != GV)
-        I = ValueMap.find((Value*)Leader);
-    }
-    return I;
-  }
-  const_iterator find(Value *V) const {
-    const_iterator I = ValueMap.find(V);
-    if (I != ValueMap.end()) return I;
-
-    if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) {
-      // If this is a global, check to see if it is equivalenced to something
-      // in the map.
-      GlobalValue *Leader = getLeaderForGlobal(GV);
-      if (Leader != GV)
-        I = ValueMap.find((Value*)Leader);
-    }
-    return I;
-  }
-
-  /// getRawEntryRef - This method can be used by clients that are aware of the
-  /// global value equivalence class in effect.
-  DSNodeHandle &getRawEntryRef(Value *V) {
-    std::pair<iterator,bool> IP =
-      ValueMap.insert(std::make_pair(V, DSNodeHandle()));
-     if (IP.second)   // Inserted the new entry into the map.
-       if (GlobalValue *GV = dyn_cast<GlobalValue>(V))
-         GlobalSet.insert(GV);
-     return IP.first->second;
-  }
-
-  unsigned count(Value *V) const { return ValueMap.find(V) != ValueMap.end(); }
-
-  void erase(Value *V) { erase(ValueMap.find(V)); }
-
-  void eraseIfExists(Value *V) {
-    iterator I = find(V);
-    if (I != end()) erase(I);
-  }
-
-  /// replaceScalar - When an instruction needs to be modified, this method can
-  /// be used to update the scalar map to remove the old and insert the new.
-  ///
-  void replaceScalar(Value *Old, Value *New) {
-    iterator I = find(Old);
-    assert(I != end() && "Old value is not in the map!");
-    ValueMap.insert(std::make_pair(New, I->second));
-    erase(I);
-  }
-
-  /// copyScalarIfExists - If Old exists in the scalar map, make New point to
-  /// whatever Old did.
-  void copyScalarIfExists(Value *Old, Value *New) {
-    iterator I = find(Old);
-    if (I != end())
-      ValueMap.insert(std::make_pair(New, I->second));
-  }
-
-  /// operator[] - Return the DSNodeHandle for the specified value, creating a
-  /// new null handle if there is no entry yet.
-  DSNodeHandle &operator[](Value *V) {
-    iterator I = ValueMap.find(V);
-    if (I != ValueMap.end())
-      return I->second;   // Return value if already exists.
-
-    if (GlobalValue *GV = dyn_cast<GlobalValue>(V))
-      return AddGlobal(GV);
-
-    return ValueMap.insert(std::make_pair(V, DSNodeHandle())).first->second;
-  }
-
-  void erase(iterator I) {
-    assert(I != ValueMap.end() && "Cannot erase end!");
-    if (GlobalValue *GV = dyn_cast<GlobalValue>(I->first))
-      GlobalSet.erase(GV);
-    ValueMap.erase(I);
-  }
-
-  void clear() {
-    ValueMap.clear();
-    GlobalSet.clear();
-  }
-
-  /// spliceFrom - Copy all entries from RHS, then clear RHS.
-  ///
-  void spliceFrom(DSScalarMap &RHS);
-
-  // Access to the global set: the set of all globals currently in the
-  // scalar map.
-  typedef GlobalSetTy::const_iterator global_iterator;
-  global_iterator global_begin() const { return GlobalSet.begin(); }
-  global_iterator global_end() const { return GlobalSet.end(); }
-  unsigned global_size() const { return GlobalSet.size(); }
-  unsigned global_count(GlobalValue *GV) const { return GlobalSet.count(GV); }
-private:
-  DSNodeHandle &AddGlobal(GlobalValue *GV);
-};
-
-//===----------------------------------------------------------------------===//
-/// DSGraph - The graph that represents a function.
-///
-class DSGraph {
-public:
-  // Public data-type declarations...
-  typedef DSScalarMap ScalarMapTy;
-  typedef hash_map<Function*, DSNodeHandle> ReturnNodesTy;
-  typedef ilist<DSNode> NodeListTy;
-
-  /// NodeMapTy - This data type is used when cloning one graph into another to
-  /// keep track of the correspondence between the nodes in the old and new
-  /// graphs.
-  typedef hash_map<const DSNode*, DSNodeHandle> NodeMapTy;
-
-  // InvNodeMapTy - This data type is used to represent the inverse of a node
-  // map.
-  typedef hash_multimap<DSNodeHandle, const DSNode*> InvNodeMapTy;
-private:
-  DSGraph *GlobalsGraph;   // Pointer to the common graph of global objects
-  bool PrintAuxCalls;      // Should this graph print the Aux calls vector?
-
-  NodeListTy Nodes;
-  ScalarMapTy ScalarMap;
-
-  // ReturnNodes - A return value for every function merged into this graph.
-  // Each DSGraph may have multiple functions merged into it at any time, which
-  // is used for representing SCCs.
-  //
-  ReturnNodesTy ReturnNodes;
-
-  // FunctionCalls - This list maintains a single entry for each call
-  // instruction in the current graph.  The first entry in the vector is the
-  // scalar that holds the return value for the call, the second is the function
-  // scalar being invoked, and the rest are pointer arguments to the function.
-  // This vector is built by the Local graph and is never modified after that.
-  //
-  std::list<DSCallSite> FunctionCalls;
-
-  // AuxFunctionCalls - This vector contains call sites that have been processed
-  // by some mechanism.  In pratice, the BU Analysis uses this vector to hold
-  // the _unresolved_ call sites, because it cannot modify FunctionCalls.
-  //
-  std::list<DSCallSite> AuxFunctionCalls;
-
-  /// TD - This is the target data object for the machine this graph is
-  /// constructed for.
-  const TargetData &TD;
-
-  void operator=(const DSGraph &); // DO NOT IMPLEMENT
-  DSGraph(const DSGraph&);         // DO NOT IMPLEMENT
-public:
-  // Create a new, empty, DSGraph.
-  DSGraph(EquivalenceClasses<GlobalValue*> &ECs, const TargetData &td,
-          DSGraph *GG = 0) 
-    :GlobalsGraph(GG), PrintAuxCalls(false), 
-     ScalarMap(ECs), TD(td)
-  { }
-
-  // Copy ctor - If you want to capture the node mapping between the source and
-  // destination graph, you may optionally do this by specifying a map to record
-  // this into.
-  //
-  // Note that a copied graph does not retain the GlobalsGraph pointer of the
-  // source.  You need to set a new GlobalsGraph with the setGlobalsGraph
-  // method.
-  //
-  DSGraph( DSGraph &DSG, EquivalenceClasses<GlobalValue*> &ECs,
-          unsigned CloneFlags = 0);
-  ~DSGraph();
-
-  DSGraph *getGlobalsGraph() const { return GlobalsGraph; }
-  void setGlobalsGraph(DSGraph *G) { GlobalsGraph = G; }
-
-  /// getGlobalECs - Return the set of equivalence classes that the global
-  /// variables in the program form.
-  EquivalenceClasses<GlobalValue*> &getGlobalECs() const {
-    return ScalarMap.getGlobalECs();
-  }
-
-  /// getTargetData - Return the TargetData object for the current target.
-  ///
-  const TargetData &getTargetData() const { return TD; }
-
-  /// setPrintAuxCalls - If you call this method, the auxillary call vector will
-  /// be printed instead of the standard call vector to the dot file.
-  ///
-  void setPrintAuxCalls() { PrintAuxCalls = true; }
-  bool shouldPrintAuxCalls() const { return PrintAuxCalls; }
-
-  /// node_iterator/begin/end - Iterate over all of the nodes in the graph.  Be
-  /// extremely careful with these methods because any merging of nodes could
-  /// cause the node to be removed from this list.  This means that if you are
-  /// iterating over nodes and doing something that could cause _any_ node to
-  /// merge, your node_iterators into this graph can be invalidated.
-  typedef NodeListTy::iterator node_iterator;
-  node_iterator node_begin() { return Nodes.begin(); }
-  node_iterator node_end()   { return Nodes.end(); }
-
-  typedef NodeListTy::const_iterator node_const_iterator;
-  node_const_iterator node_begin() const { return Nodes.begin(); }
-  node_const_iterator node_end()   const { return Nodes.end(); }
-
-  /// getFunctionNames - Return a space separated list of the name of the
-  /// functions in this graph (if any)
-  ///
-  std::string getFunctionNames() const;
-
-  /// addNode - Add a new node to the graph.
-  ///
-  void addNode(DSNode *N) { Nodes.push_back(N); }
-  void unlinkNode(DSNode *N) { Nodes.remove(N); }
-
-  /// getScalarMap - Get a map that describes what the nodes the scalars in this
-  /// function point to...
-  ///
-  ScalarMapTy &getScalarMap() { return ScalarMap; }
-  const ScalarMapTy &getScalarMap() const { return ScalarMap; }
-
-  /// getFunctionCalls - Return the list of call sites in the original local
-  /// graph...
-  ///
-  const std::list<DSCallSite> &getFunctionCalls() const { return FunctionCalls;}
-  std::list<DSCallSite> &getFunctionCalls() { return FunctionCalls;}
-
-  /// getAuxFunctionCalls - Get the call sites as modified by whatever passes
-  /// have been run.
-  ///
-  std::list<DSCallSite> &getAuxFunctionCalls() { return AuxFunctionCalls; }
-  const std::list<DSCallSite> &getAuxFunctionCalls() const {
-    return AuxFunctionCalls;
-  }
-
-  // Function Call iteration
-  typedef std::list<DSCallSite>::const_iterator fc_iterator;
-  fc_iterator fc_begin() const { return FunctionCalls.begin(); }
-  fc_iterator fc_end() const { return FunctionCalls.end(); }
-
-
-  // Aux Function Call iteration
-  typedef std::list<DSCallSite>::const_iterator afc_iterator;
-  afc_iterator afc_begin() const { return AuxFunctionCalls.begin(); }
-  afc_iterator afc_end() const { return AuxFunctionCalls.end(); }
-
-  /// getNodeForValue - Given a value that is used or defined in the body of the
-  /// current function, return the DSNode that it points to.
-  ///
-  DSNodeHandle &getNodeForValue(Value *V) { return ScalarMap[V]; }
-
-  const DSNodeHandle &getNodeForValue(Value *V) const {
-    ScalarMapTy::const_iterator I = ScalarMap.find(V);
-    assert(I != ScalarMap.end() &&
-           "Use non-const lookup function if node may not be in the map");
-    return I->second;
-  }
-
-  bool hasNodeForValue(Value* V) const {
-    ScalarMapTy::const_iterator I = ScalarMap.find(V);
-    return I != ScalarMap.end();
-  }
-
-  void eraseNodeForValue(Value* V) {
-    ScalarMap.erase(V);
-  }
-
-  /// retnodes_* iterator methods: expose iteration over return nodes in the
-  /// graph, which are also the set of functions incorporated in this graph.
-  typedef ReturnNodesTy::const_iterator retnodes_iterator;
-  retnodes_iterator retnodes_begin() const { return ReturnNodes.begin(); }
-  retnodes_iterator retnodes_end() const { return ReturnNodes.end(); }
-
-
-  /// getReturnNodes - Return the mapping of functions to their return nodes for
-  /// this graph.
-  ///
-  const ReturnNodesTy &getReturnNodes() const { return ReturnNodes; }
-        ReturnNodesTy &getReturnNodes()       { return ReturnNodes; }
-
-  /// getReturnNodeFor - Return the return node for the specified function.
-  ///
-  DSNodeHandle &getReturnNodeFor(Function &F) {
-    ReturnNodesTy::iterator I = ReturnNodes.find(&F);
-    assert(I != ReturnNodes.end() && "F not in this DSGraph!");
-    return I->second;
-  }
-
-  const DSNodeHandle &getReturnNodeFor(Function &F) const {
-    ReturnNodesTy::const_iterator I = ReturnNodes.find(&F);
-    assert(I != ReturnNodes.end() && "F not in this DSGraph!");
-    return I->second;
-  }
-
-  DSNodeHandle& getOrCreateReturnNodeFor(Function& F) {
-    return ReturnNodes[&F];
-  }
-
-  /// containsFunction - Return true if this DSGraph contains information for
-  /// the specified function.
-  bool containsFunction(Function *F) const {
-    return ReturnNodes.count(F);
-  }
-
-  /// getGraphSize - Return the number of nodes in this graph.
-  ///
-  unsigned getGraphSize() const {
-    return Nodes.size();
-  }
-
-  /// addObjectToGraph - This method can be used to add global, stack, and heap
-  /// objects to the graph.  This can be used when updating DSGraphs due to the
-  /// introduction of new temporary objects.  The new object is not pointed to
-  /// and does not point to any other objects in the graph.  Note that this
-  /// method initializes the type of the DSNode to the declared type of the
-  /// object if UseDeclaredType is true, otherwise it leaves the node type as
-  /// void.
-  DSNode *addObjectToGraph(Value *Ptr, bool UseDeclaredType = true);
-
-
-  /// print - Print a dot graph to the specified ostream...
-  ///
-  void print(OStream &O) const {
-    if (O.stream()) print(*O.stream());
-  }
-  void print(std::ostream &O) const;
-
-  /// dump - call print(cerr), for use from the debugger...
-  ///
-  void dump() const;
-
-  /// viewGraph - Emit a dot graph, run 'dot', run gv on the postscript file,
-  /// then cleanup.  For use from the debugger.
-  ///
-  void viewGraph() const;
-
-  void writeGraphToFile(std::ostream &O, const std::string &GraphName) const;
-
-  /// maskNodeTypes - Apply a mask to all of the node types in the graph.  This
-  /// is useful for clearing out markers like Incomplete.
-  ///
-  void maskNodeTypes(unsigned Mask) {
-    for (node_iterator I = node_begin(), E = node_end(); I != E; ++I)
-      I->maskNodeTypes(Mask);
-  }
-  void maskIncompleteMarkers() { maskNodeTypes(~DSNode::IncompleteNode); }
-
-  // markIncompleteNodes - Traverse the graph, identifying nodes that may be
-  // modified by other functions that have not been resolved yet.  This marks
-  // nodes that are reachable through three sources of "unknownness":
-  //   Global Variables, Function Calls, and Incoming Arguments
-  //
-  // For any node that may have unknown components (because something outside
-  // the scope of current analysis may have modified it), the 'Incomplete' flag
-  // is added to the NodeType.
-  //
-  enum MarkIncompleteFlags {
-    MarkFormalArgs = 1, IgnoreFormalArgs = 0,
-    IgnoreGlobals = 2, MarkGlobalsIncomplete = 0
-  };
-  void markIncompleteNodes(unsigned Flags);
-
-  // removeDeadNodes - Use a reachability analysis to eliminate subgraphs that
-  // are unreachable.  This often occurs because the data structure doesn't
-  // "escape" into it's caller, and thus should be eliminated from the caller's
-  // graph entirely.  This is only appropriate to use when inlining graphs.
-  //
-  enum RemoveDeadNodesFlags {
-    RemoveUnreachableGlobals = 1, KeepUnreachableGlobals = 0
-  };
-  void removeDeadNodes(unsigned Flags);
-
-  /// CloneFlags enum - Bits that may be passed into the cloneInto method to
-  /// specify how to clone the function graph.
-  enum CloneFlags {
-    StripAllocaBit        = 1 << 0, KeepAllocaBit     = 0,
-    DontCloneCallNodes    = 1 << 1, CloneCallNodes    = 0,
-    DontCloneAuxCallNodes = 1 << 2, CloneAuxCallNodes = 0,
-    StripModRefBits       = 1 << 3, KeepModRefBits    = 0,
-    StripIncompleteBit    = 1 << 4, KeepIncompleteBit = 0
-  };
-
-  void updateFromGlobalGraph();
-
-  /// computeNodeMapping - Given roots in two different DSGraphs, traverse the
-  /// nodes reachable from the two graphs, computing the mapping of nodes from
-  /// the first to the second graph.
-  ///
-  static void computeNodeMapping(const DSNodeHandle &NH1,
-                                 const DSNodeHandle &NH2, NodeMapTy &NodeMap,
-                                 bool StrictChecking = true);
-
-  /// computeGToGGMapping - Compute the mapping of nodes in the graph to nodes
-  /// in the globals graph.
-  void computeGToGGMapping(NodeMapTy &NodeMap);
-
-  /// computeGGToGMapping - Compute the mapping of nodes in the global
-  /// graph to nodes in this graph.
-  void computeGGToGMapping(InvNodeMapTy &InvNodeMap);
-
-  /// computeCalleeCallerMapping - Given a call from a function in the current
-  /// graph to the 'Callee' function (which lives in 'CalleeGraph'), compute the
-  /// mapping of nodes from the callee to nodes in the caller.
-  void computeCalleeCallerMapping(DSCallSite CS, const Function &Callee,
-                                  DSGraph &CalleeGraph, NodeMapTy &NodeMap);
-
-  /// spliceFrom - Logically perform the operation of cloning the RHS graph into
-  /// this graph, then clearing the RHS graph.  Instead of performing this as
-  /// two seperate operations, do it as a single, much faster, one.
-  ///
-  void spliceFrom(DSGraph &RHS);
-
-  /// cloneInto - Clone the specified DSGraph into the current graph.
-  ///
-  /// The CloneFlags member controls various aspects of the cloning process.
-  ///
-  void cloneInto(DSGraph &G, unsigned CloneFlags = 0);
-
-  /// getFunctionArgumentsForCall - Given a function that is currently in this
-  /// graph, return the DSNodeHandles that correspond to the pointer-compatible
-  /// function arguments.  The vector is filled in with the return value (or
-  /// null if it is not pointer compatible), followed by all of the
-  /// pointer-compatible arguments.
-  void getFunctionArgumentsForCall(Function *F,
-                                   std::vector<DSNodeHandle> &Args) const;
-
-  /// mergeInGraph - This graph merges in the minimal number of
-  /// nodes from G2 into 'this' graph, merging the bindings specified by the
-  /// call site (in this graph) with the bindings specified by the vector in G2.
-  /// If the StripAlloca's argument is 'StripAllocaBit' then Alloca markers are
-  /// removed from nodes.
-  ///
-  void mergeInGraph(const DSCallSite &CS, std::vector<DSNodeHandle> &Args,
-                    const DSGraph &G2, unsigned CloneFlags);
-
-  /// mergeInGraph - This method is the same as the above method, but the
-  /// argument bindings are provided by using the formal arguments of F.
-  ///
-  void mergeInGraph(const DSCallSite &CS, Function &F, const DSGraph &Graph,
-                    unsigned CloneFlags);
-
-  /// getCallSiteForArguments - Get the arguments and return value bindings for
-  /// the specified function in the current graph.
-  ///
-  DSCallSite getCallSiteForArguments(Function &F) const;
-
-  /// getDSCallSiteForCallSite - Given an LLVM CallSite object that is live in
-  /// the context of this graph, return the DSCallSite for it.
-  DSCallSite getDSCallSiteForCallSite(CallSite CS) const;
-
-  // Methods for checking to make sure graphs are well formed...
-  void AssertNodeInGraph(const DSNode *N) const {
-    assert((!N || N->getParentGraph() == this) &&
-           "AssertNodeInGraph: Node is not in graph!");
-  }
-  void AssertNodeContainsGlobal(const DSNode *N, GlobalValue *GV) const;
-
-  void AssertCallSiteInGraph(const DSCallSite &CS) const;
-  void AssertCallNodesInGraph() const;
-  void AssertAuxCallNodesInGraph() const;
-
-  void AssertGraphOK() const;
-
-  /// removeTriviallyDeadNodes - After the graph has been constructed, this
-  /// method removes all unreachable nodes that are created because they got
-  /// merged with other nodes in the graph.  This is used as the first step of
-  /// removeDeadNodes.
-  ///
-  void removeTriviallyDeadNodes();
-};
-
-
-/// ReachabilityCloner - This class is used to incrementally clone and merge
-/// nodes from a non-changing source graph into a potentially mutating
-/// destination graph.  Nodes are only cloned over on demand, either in
-/// responds to a merge() or getClonedNH() call.  When a node is cloned over,
-/// all of the nodes reachable from it are automatically brought over as well.
-///
-class ReachabilityCloner {
-  DSGraph &Dest;
-  const DSGraph &Src;
-
-  /// BitsToKeep - These bits are retained from the source node when the
-  /// source nodes are merged into the destination graph.
-  unsigned BitsToKeep;
-  unsigned CloneFlags;
-
-  // NodeMap - A mapping from nodes in the source graph to the nodes that
-  // represent them in the destination graph.
-  DSGraph::NodeMapTy NodeMap;
-public:
-  ReachabilityCloner(DSGraph &dest, const DSGraph &src, unsigned cloneFlags)
-    : Dest(dest), Src(src), CloneFlags(cloneFlags) {
-    assert(&Dest != &Src && "Cannot clone from graph to same graph!");
-    BitsToKeep = ~DSNode::DeadNode;
-    if (CloneFlags & DSGraph::StripAllocaBit)
-      BitsToKeep &= ~DSNode::AllocaNode;
-    if (CloneFlags & DSGraph::StripModRefBits)
-      BitsToKeep &= ~(DSNode::ModifiedNode | DSNode::ReadNode);
-    if (CloneFlags & DSGraph::StripIncompleteBit)
-      BitsToKeep &= ~DSNode::IncompleteNode;
-  }
-
-  DSNodeHandle getClonedNH(const DSNodeHandle &SrcNH);
-
-  void merge(const DSNodeHandle &NH, const DSNodeHandle &SrcNH);
-
-  /// mergeCallSite - Merge the nodes reachable from the specified src call
-  /// site into the nodes reachable from DestCS.
-  ///
-  void mergeCallSite(DSCallSite &DestCS, const DSCallSite &SrcCS);
-
-  bool clonedAnyNodes() const { return !NodeMap.empty(); }
-
-  /// hasClonedNode - Return true if the specified node has been cloned from
-  /// the source graph into the destination graph.
-  bool hasClonedNode(const DSNode *N) {
-    return NodeMap.count(N);
-  }
-
-  void destroy() { NodeMap.clear(); }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/poolalloc/include/dsa/DSGraphTraits.h b/poolalloc/include/dsa/DSGraphTraits.h
deleted file mode 100644
index 9278dd3..0000000
--- a/poolalloc/include/dsa/DSGraphTraits.h
+++ /dev/null
@@ -1,152 +0,0 @@
-//===- DSGraphTraits.h - Provide generic graph interface --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides GraphTraits specializations for the DataStructure graph
-// nodes, allowing datastructure graphs to be processed by generic graph
-// algorithms.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_DSGRAPHTRAITS_H
-#define LLVM_ANALYSIS_DSGRAPHTRAITS_H
-
-#include "dsa/DSGraph.h"
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/ADT/iterator"
-#include "llvm/ADT/STLExtras.h"
-
-namespace llvm {
-
-template<typename NodeTy>
-class DSNodeIterator : public forward_iterator<const DSNode, ptrdiff_t> {
-  friend class DSNode;
-  NodeTy * const Node;
-  unsigned Offset;
-
-  typedef DSNodeIterator<NodeTy> _Self;
-
-  DSNodeIterator(NodeTy *N) : Node(N), Offset(0) {}   // begin iterator
-  DSNodeIterator(NodeTy *N, bool) : Node(N) {         // Create end iterator
-    if (N != 0) {
-      Offset = N->getNumLinks() << DS::PointerShift;
-      if (Offset == 0 && Node->getForwardNode() &&
-          Node->isDeadNode())        // Model Forward link
-        Offset += DS::PointerSize;
-    } else {
-      Offset = 0;
-    }
-  }
-public:
-  DSNodeIterator(const DSNodeHandle &NH)
-    : Node(NH.getNode()), Offset(NH.getOffset()) {}
-
-  bool operator==(const _Self& x) const {
-    return Offset == x.Offset;
-  }
-  bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  const _Self &operator=(const _Self &I) {
-    assert(I.Node == Node && "Cannot assign iterators to two different nodes!");
-    Offset = I.Offset;
-    return *this;
-  }
-
-  pointer operator*() const {
-    if (Node->isDeadNode())
-      return Node->getForwardNode();
-    else
-      return Node->getLink(Offset).getNode();
-  }
-  pointer operator->() const { return operator*(); }
-
-  _Self& operator++() {                // Preincrement
-    Offset += (1 << DS::PointerShift);
-    return *this;
-  }
-  _Self operator++(int) { // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-
-  unsigned getOffset() const { return Offset; }
-  const DSNode *getNode() const { return Node; }
-};
-
-// Provide iterators for DSNode...
-inline DSNode::iterator DSNode::begin() {
-  return DSNode::iterator(this);
-}
-inline DSNode::iterator DSNode::end() {
-  return DSNode::iterator(this, false);
-}
-inline DSNode::const_iterator DSNode::begin() const {
-  return DSNode::const_iterator(this);
-}
-inline DSNode::const_iterator DSNode::end() const {
-  return DSNode::const_iterator(this, false);
-}
-
-template <> struct GraphTraits<DSNode*> {
-  typedef DSNode NodeType;
-  typedef DSNode::iterator ChildIteratorType;
-
-  static NodeType *getEntryNode(NodeType *N) { return N; }
-  static ChildIteratorType child_begin(NodeType *N) { return N->begin(); }
-  static ChildIteratorType child_end(NodeType *N) { return N->end(); }
-};
-
-template <> struct GraphTraits<const DSNode*> {
-  typedef const DSNode NodeType;
-  typedef DSNode::const_iterator ChildIteratorType;
-
-  static NodeType *getEntryNode(NodeType *N) { return N; }
-  static ChildIteratorType child_begin(NodeType *N) { return N->begin(); }
-  static ChildIteratorType child_end(NodeType *N) { return N->end(); }
-};
-
-static       DSNode &dereference (      DSNode *N) { return *N; }
-
-template <> struct GraphTraits<DSGraph*> {
-  typedef DSNode NodeType;
-  typedef DSNode::iterator ChildIteratorType;
-
-  typedef std::pointer_to_unary_function<DSNode *, DSNode&> DerefFun;
-
-  // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
-  typedef mapped_iterator<DSGraph::node_iterator, DerefFun> nodes_iterator;
-  static nodes_iterator nodes_begin(DSGraph *G) {
-    return map_iterator(G->node_begin(), DerefFun(dereference));
-  }
-  static nodes_iterator nodes_end(DSGraph *G) {
-    return map_iterator(G->node_end(), DerefFun(dereference));
-  }
-
-  static ChildIteratorType child_begin(NodeType *N) { return N->begin(); }
-  static ChildIteratorType child_end(NodeType *N) { return N->end(); }
-};
-
-template <> struct GraphTraits<const DSGraph*> {
-  typedef const DSNode NodeType;
-  typedef DSNode::const_iterator ChildIteratorType;
-
-  // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
-  typedef DSGraph::node_const_iterator nodes_iterator;
-  static nodes_iterator nodes_begin(const DSGraph *G) {
-    return G->node_begin();
-  }
-  static nodes_iterator nodes_end(const DSGraph *G) {
-    return G->node_end();
-  }
-
-  static ChildIteratorType child_begin(const NodeType *N) { return N->begin(); }
-  static ChildIteratorType child_end(const NodeType *N) { return N->end(); }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/poolalloc/include/dsa/DSNode.h b/poolalloc/include/dsa/DSNode.h
deleted file mode 100644
index de6c2ab..0000000
--- a/poolalloc/include/dsa/DSNode.h
+++ /dev/null
@@ -1,526 +0,0 @@
-//===- DSNode.h - Node definition for datastructure graphs ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Data structure graph nodes and some implementation of DSNodeHandle.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_DSNODE_H
-#define LLVM_ANALYSIS_DSNODE_H
-
-#include "dsa/DSSupport.h"
-#include "llvm/ADT/hash_map"
-
-namespace llvm {
-
-template<typename BaseType>
-class DSNodeIterator;          // Data structure graph traversal iterator
-class TargetData;
-
-//===----------------------------------------------------------------------===//
-/// DSNode - Data structure node class
-///
-/// This class represents an untyped memory object of Size bytes.  It keeps
-/// track of any pointers that have been stored into the object as well as the
-/// different types represented in this object.
-///
-class DSNode {
-  /// NumReferrers - The number of DSNodeHandles pointing to this node... if
-  /// this is a forwarding node, then this is the number of node handles which
-  /// are still forwarding over us.
-  ///
-  unsigned NumReferrers;
-
-  /// ForwardNH - This NodeHandle contain the node (and offset into the node)
-  /// that this node really is.  When nodes get folded together, the node to be
-  /// eliminated has these fields filled in, otherwise ForwardNH.getNode() is
-  /// null.
-  ///
-  DSNodeHandle ForwardNH;
-
-  /// Next, Prev - These instance variables are used to keep the node on a
-  /// doubly-linked ilist in the DSGraph.
-  ///
-  DSNode *Next, *Prev;
-  friend struct ilist_traits<DSNode>;
-
-  /// Size - The current size of the node.  This should be equal to the size of
-  /// the current type record.
-  ///
-  unsigned Size;
-
-  /// ParentGraph - The graph this node is currently embedded into.
-  ///
-  DSGraph *ParentGraph;
-
-  /// Ty - Keep track of the current outer most type of this object, in addition
-  /// to whether or not it has been indexed like an array or not.  If the
-  /// isArray bit is set, the node cannot grow.
-  ///
-  const Type *Ty;                 // The type itself...
-
-  /// Links - Contains one entry for every sizeof(void*) bytes in this memory
-  /// object.  Note that if the node is not a multiple of size(void*) bytes
-  /// large, that there is an extra entry for the "remainder" of the node as
-  /// well.  For this reason, nodes of 1 byte in size do have one link.
-  ///
-  std::vector<DSNodeHandle> Links;
-
-  /// Globals - The list of global values that are merged into this node.
-  ///
-  std::vector<GlobalValue*> Globals;
-
-  void operator=(const DSNode &); // DO NOT IMPLEMENT
-  DSNode(const DSNode &);         // DO NOT IMPLEMENT
-public:
-  enum NodeTy {
-    ShadowNode      = 0,        // Nothing is known about this node...
-    AllocaNode      = 1 << 0,   // This node was allocated with alloca
-    HeapNode        = 1 << 1,   // This node was allocated with malloc
-    GlobalNode      = 1 << 2,   // This node was allocated by a global var decl
-    UnknownNode     = 1 << 3,   // This node points to unknown allocated memory
-    IncompleteNode  = 1 << 4,   // This node may not be complete
-
-    ModifiedNode    = 1 << 5,   // This node is modified in this context
-    ReadNode        = 1 << 6,   // This node is read in this context
-
-    ArrayNode       = 1 << 7,   // This node is treated like an array
-    ExternalNode    = 1 << 8,   // This node comes from an external source
-    IntToPtrNode    = 1 << 9,   // This node comes from an int cast
-    PtrToIntNode    = 1 << 10,  // This node excapes to an int cast
-
-    //#ifndef NDEBUG
-    DeadNode        = 1 << 11,   // This node is dead and should not be pointed to
-    //#endif
-
-    Composition = AllocaNode | HeapNode | GlobalNode | UnknownNode
-  };
-
-  /// NodeType - A union of the above bits.  "Shadow" nodes do not add any flags
-  /// to the nodes in the data structure graph, so it is possible to have nodes
-  /// with a value of 0 for their NodeType.
-  ///
-private:
-  unsigned short NodeType;
-public:
-
-  /// DSNode ctor - Create a node of the specified type, inserting it into the
-  /// specified graph.
-  ///
-  DSNode(const Type *T, DSGraph *G);
-
-  /// DSNode "copy ctor" - Copy the specified node, inserting it into the
-  /// specified graph.  If NullLinks is true, then null out all of the links,
-  /// but keep the same number of them.  This can be used for efficiency if the
-  /// links are just going to be clobbered anyway.
-  ///
-  DSNode(const DSNode &, DSGraph *G, bool NullLinks = false);
-
-#if 0
-  ~DSNode() {
-    dropAllReferences();
-    assert(hasNoReferrers() && "Referrers to dead node exist!");
-  }
-#else
-  ~DSNode();
-#endif
-
-  // Iterator for graph interface... Defined in DSGraphTraits.h
-  typedef DSNodeIterator<DSNode> iterator;
-  typedef DSNodeIterator<const DSNode> const_iterator;
-  inline iterator begin();
-  inline iterator end();
-  inline const_iterator begin() const;
-  inline const_iterator end() const;
-
-  //===--------------------------------------------------
-  // Accessors
-
-  /// getSize - Return the maximum number of bytes occupied by this object...
-  ///
-  unsigned getSize() const { return Size; }
-
-  /// getType - Return the node type of this object...
-  ///
-  const Type *getType() const { return Ty; }
-
-  bool isArray() const { return NodeType & ArrayNode; }
-
-  /// hasNoReferrers - Return true if nothing is pointing to this node at all.
-  ///
-  bool hasNoReferrers() const { return getNumReferrers() == 0; }
-
-  /// getNumReferrers - This method returns the number of referrers to the
-  /// current node.  Note that if this node is a forwarding node, this will
-  /// return the number of nodes forwarding over the node!
-  unsigned getNumReferrers() const { return NumReferrers; }
-
-  DSGraph *getParentGraph() const { return ParentGraph; }
-  void setParentGraph(DSGraph *G) { ParentGraph = G; }
-
-
-  /// getTargetData - Get the target data object used to construct this node.
-  ///
-  const TargetData &getTargetData() const;
-
-  /// getForwardNode - This method returns the node that this node is forwarded
-  /// to, if any.
-  ///
-  DSNode *getForwardNode() const { return ForwardNH.getNode(); }
-
-  /// isForwarding - Return true if this node is forwarding to another.
-  ///
-  bool isForwarding() const { return !ForwardNH.isNull(); }
-
-  /// stopForwarding - When the last reference to this forwarding node has been
-  /// dropped, delete the node.
-  ///
-  void stopForwarding() {
-    assert(isForwarding() &&
-           "Node isn't forwarding, cannot stopForwarding()!");
-    ForwardNH.setTo(0, 0);
-    assert(ParentGraph == 0 &&
-           "Forwarding nodes must have been removed from graph!");
-    delete this;
-  }
-
-  /// hasLink - Return true if this memory object has a link in slot LinkNo
-  ///
-  bool hasLink(unsigned Offset) const {
-    assert((Offset & ((1 << DS::PointerShift)-1)) == 0 &&
-           "Pointer offset not aligned correctly!");
-    unsigned Index = Offset >> DS::PointerShift;
-    assert(Index < Links.size() && "Link index is out of range!");
-    return Links[Index].getNode();
-  }
-
-  /// getLink - Return the link at the specified offset.
-  ///
-  DSNodeHandle &getLink(unsigned Offset) {
-    assert((Offset & ((1 << DS::PointerShift)-1)) == 0 &&
-           "Pointer offset not aligned correctly!");
-    unsigned Index = Offset >> DS::PointerShift;
-    assert(Index < Links.size() && "Link index is out of range!");
-    return Links[Index];
-  }
-  const DSNodeHandle &getLink(unsigned Offset) const {
-    assert((Offset & ((1 << DS::PointerShift)-1)) == 0 &&
-           "Pointer offset not aligned correctly!");
-    unsigned Index = Offset >> DS::PointerShift;
-    assert(Index < Links.size() && "Link index is out of range!");
-    return Links[Index];
-  }
-
-  /// getNumLinks - Return the number of links in a node...
-  ///
-  unsigned getNumLinks() const { return Links.size(); }
-
-  /// edge_* - Provide iterators for accessing outgoing edges.  Some outgoing
-  /// edges may be null.
-  typedef std::vector<DSNodeHandle>::iterator edge_iterator;
-  typedef std::vector<DSNodeHandle>::const_iterator const_edge_iterator;
-  edge_iterator edge_begin() { return Links.begin(); }
-  edge_iterator edge_end() { return Links.end(); }
-  const_edge_iterator edge_begin() const { return Links.begin(); }
-  const_edge_iterator edge_end() const { return Links.end(); }
-
-
-  /// mergeTypeInfo - This method merges the specified type into the current
-  /// node at the specified offset.  This may update the current node's type
-  /// record if this gives more information to the node, it may do nothing to
-  /// the node if this information is already known, or it may merge the node
-  /// completely (and return true) if the information is incompatible with what
-  /// is already known.
-  ///
-  /// This method returns true if the node is completely folded, otherwise
-  /// false.
-  ///
-  bool mergeTypeInfo(const Type *Ty, unsigned Offset,
-                     bool FoldIfIncompatible = true);
-
-  /// foldNodeCompletely - If we determine that this node has some funny
-  /// behavior happening to it that we cannot represent, we fold it down to a
-  /// single, completely pessimistic, node.  This node is represented as a
-  /// single byte with a single TypeEntry of "void" with isArray = true.
-  ///
-  void foldNodeCompletely();
-
-  /// isNodeCompletelyFolded - Return true if this node has been completely
-  /// folded down to something that can never be expanded, effectively losing
-  /// all of the field sensitivity that may be present in the node.
-  ///
-  bool isNodeCompletelyFolded() const;
-
-  /// setLink - Set the link at the specified offset to the specified
-  /// NodeHandle, replacing what was there.  It is uncommon to use this method,
-  /// instead one of the higher level methods should be used, below.
-  ///
-  void setLink(unsigned Offset, const DSNodeHandle &NH) {
-    assert((Offset & ((1 << DS::PointerShift)-1)) == 0 &&
-           "Pointer offset not aligned correctly!");
-    unsigned Index = Offset >> DS::PointerShift;
-    assert(Index < Links.size() && "Link index is out of range!");
-    Links[Index] = NH;
-  }
-
-  /// getPointerSize - Return the size of a pointer for the current target.
-  ///
-  unsigned getPointerSize() const { return DS::PointerSize; }
-
-  /// addEdgeTo - Add an edge from the current node to the specified node.  This
-  /// can cause merging of nodes in the graph.
-  ///
-  void addEdgeTo(unsigned Offset, const DSNodeHandle &NH);
-
-  /// mergeWith - Merge this node and the specified node, moving all links to
-  /// and from the argument node into the current node, deleting the node
-  /// argument.  Offset indicates what offset the specified node is to be merged
-  /// into the current node.
-  ///
-  /// The specified node may be a null pointer (in which case, nothing happens).
-  ///
-  void mergeWith(const DSNodeHandle &NH, unsigned Offset);
-
-  /// addGlobal - Add an entry for a global value to the Globals list.  This
-  /// also marks the node with the 'G' flag if it does not already have it.
-  ///
-  void addGlobal(GlobalValue *GV);
-
-  /// removeGlobal - Remove the specified global that is explicitly in the
-  /// globals list.
-  void removeGlobal(GlobalValue *GV);
-
-  void mergeGlobals(const std::vector<GlobalValue*> &RHS);
-  void clearGlobals() { std::vector<GlobalValue*>().swap(Globals); }
-
-  /// getGlobalsList - Return the set of global leaders that are represented by
-  /// this node.  Note that globals that are in this equivalence class but are
-  /// not leaders are not returned: for that, use addFullGlobalsList().
-  const std::vector<GlobalValue*> &getGlobalsList() const { return Globals; }
-
-  /// addFullGlobalsList - Compute the full set of global values that are
-  /// represented by this node.  Unlike getGlobalsList(), this requires fair
-  /// amount of work to compute, so don't treat this method call as free.
-  void addFullGlobalsList(std::vector<GlobalValue*> &List) const;
-
-  /// addFullFunctionList - Identical to addFullGlobalsList, but only return the
-  /// functions in the full list.
-  void addFullFunctionList(std::vector<Function*> &List) const;
-
-  /// globals_iterator/begin/end - Provide iteration methods over the global
-  /// value leaders set that is merged into this node.  Like the getGlobalsList
-  /// method, these iterators do not return globals that are part of the
-  /// equivalence classes for globals in this node, but aren't leaders.
-  typedef std::vector<GlobalValue*>::const_iterator globals_iterator;
-  globals_iterator globals_begin() const { return Globals.begin(); }
-  globals_iterator globals_end() const { return Globals.end(); }
-
-
-  /// maskNodeTypes - Apply a mask to the node types bitfield.
-  ///
-  void maskNodeTypes(unsigned Mask) {
-    NodeType &= Mask;
-  }
-
-  void mergeNodeFlags(unsigned RHS) {
-    NodeType |= RHS;
-  }
-
-  /// getNodeFlags - Return all of the flags set on the node.  If the DEAD flag
-  /// is set, hide it from the caller.
-  ///
-  unsigned getNodeFlags() const { return NodeType & ~DeadNode; }
-
-  /// clearNodeFlags - Useful for completely resetting a node, 
-  /// used in external recognizers
-  DSNode* clearNodeFlags() { NodeType = 0; return this; }
-
-  bool isAllocaNode()     const { return NodeType & AllocaNode;    }
-  bool isHeapNode()       const { return NodeType & HeapNode;      }
-  bool isGlobalNode()     const { return NodeType & GlobalNode;    }
-  bool isUnknownNode()    const { return NodeType & UnknownNode;   }
-  bool isModifiedNode()   const { return NodeType & ModifiedNode;  }
-  bool isReadNode()       const { return NodeType & ReadNode;      }
-  bool isArrayNode()      const { return NodeType & ArrayNode;     }
-  bool isIncompleteNode() const { return NodeType & IncompleteNode;}
-  bool isCompleteNode()   const { return !isIncompleteNode();      }
-  bool isDeadNode()       const { return NodeType & DeadNode;      }
-  bool isExternalNode()   const { return NodeType & ExternalNode;  }
-  bool isIntToPtrNode()   const { return NodeType & IntToPtrNode;  }
-  bool isPtrToIntNode()   const { return NodeType & PtrToIntNode;  }
-
-  DSNode* setAllocaMarker()     { NodeType |= AllocaNode;     return this; }
-  DSNode* setHeapMarker()       { NodeType |= HeapNode;       return this; }
-  DSNode* setGlobalMarker()     { NodeType |= GlobalNode;     return this; }
-  DSNode* setUnknownMarker()    { NodeType |= UnknownNode;    return this; }
-  DSNode* setModifiedMarker()   { NodeType |= ModifiedNode;   return this; }
-  DSNode* setReadMarker()       { NodeType |= ReadNode;       return this; }
-  DSNode* setArrayMarker()      { NodeType |= ArrayNode;      return this; }
-  DSNode* setIncompleteMarker() { NodeType |= IncompleteNode; return this; }
-  DSNode* setExternalMarker()   { NodeType |= ExternalNode;   return this; }
-  DSNode* setIntToPtrMarker()   { NodeType |= IntToPtrNode;   return this; }
-  DSNode* setPtrToIntMarker()   { NodeType |= PtrToIntNode;   return this; }
-
-  void makeNodeDead() {
-    Globals.clear();
-    assert(hasNoReferrers() && "Dead node shouldn't have refs!");
-    NodeType = DeadNode;
-  }
-
-  /// forwardNode - Mark this node as being obsolete, and all references to it
-  /// should be forwarded to the specified node and offset.
-  ///
-  void forwardNode(DSNode *To, unsigned Offset);
-
-  void print(OStream &O, const DSGraph *G) const {
-    if (O.stream()) print(*O.stream(), G);
-  }
-  void print(std::ostream &O, const DSGraph *G) const;
-  void dump() const;
-
-  void assertOK() const;
-
-  void dropAllReferences() {
-    Links.clear();
-    if (isForwarding())
-      ForwardNH.setTo(0, 0);
-  }
-
-  /// remapLinks - Change all of the Links in the current node according to the
-  /// specified mapping.
-  ///
-  void remapLinks(hash_map<const DSNode*, DSNodeHandle> &OldNodeMap);
-
-  /// markReachableNodes - This method recursively traverses the specified
-  /// DSNodes, marking any nodes which are reachable.  All reachable nodes it
-  /// adds to the set, which allows it to only traverse visited nodes once.
-  ///
-  void markReachableNodes(hash_set<const DSNode*> &ReachableNodes) const;
-
-private:
-  friend class DSNodeHandle;
-
-  // static mergeNodes - Helper for mergeWith()
-  static void MergeNodes(DSNodeHandle& CurNodeH, DSNodeHandle& NH);
-};
-
-//===----------------------------------------------------------------------===//
-// Define the ilist_traits specialization for the DSGraph ilist.
-//
-template<>
-struct ilist_traits<DSNode> {
-  static DSNode *getPrev(const DSNode *N) { return N->Prev; }
-  static DSNode *getNext(const DSNode *N) { return N->Next; }
-
-  static void setPrev(DSNode *N, DSNode *Prev) { N->Prev = Prev; }
-  static void setNext(DSNode *N, DSNode *Next) { N->Next = Next; }
-
-  static DSNode *createSentinel() { return new DSNode(0,0); }
-  static void destroySentinel(DSNode *N) { delete N; }
-  //static DSNode *createNode(const DSNode &V) { return new DSNode(V); }
-
-
-  void addNodeToList(DSNode *NTy) {}
-  void removeNodeFromList(DSNode *NTy) {}
-  void transferNodesFromList(iplist<DSNode, ilist_traits> &L2,
-                             ilist_iterator<DSNode> first,
-                             ilist_iterator<DSNode> last) {}
-};
-
-template<>
-struct ilist_traits<const DSNode> : public ilist_traits<DSNode> {};
-
-//===----------------------------------------------------------------------===//
-// Define inline DSNodeHandle functions that depend on the definition of DSNode
-//
-inline DSNode *DSNodeHandle::getNode() const {
-  // Disabling this assertion because it is failing on a "magic" struct
-  // in named (from bind).  The fourth field is an array of length 0,
-  // presumably used to create struct instances of different sizes.
-  // In a variable length struct, Offset could exceed Size when getNode()
-  // is called before such a node is folded. In this case, the DS Analysis now 
-  // correctly folds this node after calling getNode.
-  /*  assert((!N ||
-          N->isNodeCompletelyFolded() ||
-          (N->Size == 0 && Offset == 0) ||
-          (int(Offset) >= 0 && Offset < N->Size) ||
-          (int(Offset) < 0 && -int(Offset) < int(N->Size)) ||
-          N->isForwarding()) && "Node handle offset out of range!");
-  */
-  if (N == 0 || !N->isForwarding())
-    return N;
-
-  return HandleForwarding();
-}
-
-inline void DSNodeHandle::setTo(DSNode *n, unsigned NewOffset) const {
-  assert(!n || !n->isForwarding() && "Cannot set node to a forwarded node!");
-  if (N) getNode()->NumReferrers--;
-  N = n;
-  Offset = NewOffset;
-  if (N) {
-    N->NumReferrers++;
-    if (Offset >= N->Size) {
-      assert((Offset == 0 || N->Size == 1) &&
-             "Pointer to non-collapsed node with invalid offset!");
-      Offset = 0;
-    }
-  }
-  assert(!N || ((N->NodeType & DSNode::DeadNode) == 0));
-  assert((!N || Offset < N->Size || (N->Size == 0 && Offset == 0) ||
-          N->isForwarding()) && "Node handle offset out of range!");
-}
-
-inline bool DSNodeHandle::hasLink(unsigned Num) const {
-  assert(N && "DSNodeHandle does not point to a node yet!");
-  return getNode()->hasLink(Num+Offset);
-}
-
-
-/// getLink - Treat this current node pointer as a pointer to a structure of
-/// some sort.  This method will return the pointer a mem[this+Num]
-///
-inline const DSNodeHandle &DSNodeHandle::getLink(unsigned Off) const {
-  assert(N && "DSNodeHandle does not point to a node yet!");
-  return getNode()->getLink(Offset+Off);
-}
-inline DSNodeHandle &DSNodeHandle::getLink(unsigned Off) {
-  assert(N && "DSNodeHandle does not point to a node yet!");
-  return getNode()->getLink(Off+Offset);
-}
-
-inline void DSNodeHandle::setLink(unsigned Off, const DSNodeHandle &NH) {
-  assert(N && "DSNodeHandle does not point to a node yet!");
-  getNode()->setLink(Off+Offset, NH);
-}
-
-/// addEdgeTo - Add an edge from the current node to the specified node.  This
-/// can cause merging of nodes in the graph.
-///
-inline void DSNodeHandle::addEdgeTo(unsigned Off, const DSNodeHandle &Node) {
-  assert(N && "DSNodeHandle does not point to a node yet!");
-  getNode()->addEdgeTo(Off+Offset, Node);
-}
-
-/// mergeWith - Merge the logical node pointed to by 'this' with the node
-/// pointed to by 'N'.
-///
-inline void DSNodeHandle::mergeWith(const DSNodeHandle &Node) const {
-  if (!isNull())
-    getNode()->mergeWith(Node, Offset);
-  else {   // No node to merge with, so just point to Node
-    Offset = 0;
-    DSNode *NN = Node.getNode();
-    setTo(NN, Node.getOffset());
-  }
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/poolalloc/include/dsa/DSSupport.h b/poolalloc/include/dsa/DSSupport.h
deleted file mode 100644
index dc4c31f..0000000
--- a/poolalloc/include/dsa/DSSupport.h
+++ /dev/null
@@ -1,338 +0,0 @@
-//===- DSSupport.h - Support for datastructure graphs -----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Support for graph nodes, call sites, and types.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_DSSUPPORT_H
-#define LLVM_ANALYSIS_DSSUPPORT_H
-
-#include <functional>
-#include "llvm/ADT/hash_map"
-#include "llvm/ADT/hash_set"
-#include "llvm/Support/CallSite.h"
-
-namespace llvm {
-
-class Function;
-class CallInst;
-class Value;
-class GlobalValue;
-class Type;
-
-class DSNode;                  // Each node in the graph
-class DSGraph;                 // A graph for a function
-class ReachabilityCloner;
-
-namespace DS { // FIXME: After the paper, this should get cleaned up
-  enum { PointerShift = 2,     // 64bit ptrs = 3, 32 bit ptrs = 2
-         PointerSize = 1 << PointerShift
-  };
-
-  /// isPointerType - Return true if this first class type is big enough to hold
-  /// a pointer.
-  ///
-  bool isPointerType(const Type *Ty);
-}
-
-//===----------------------------------------------------------------------===//
-/// DSNodeHandle - Implement a "handle" to a data structure node that takes care
-/// of all of the add/un'refing of the node to prevent the backpointers in the
-/// graph from getting out of date.  This class represents a "pointer" in the
-/// graph, whose destination is an indexed offset into a node.
-///
-/// Note: some functions that are marked as inline in DSNodeHandle are actually
-/// defined in DSNode.h because they need knowledge of DSNode operation. Putting
-/// them in a CPP file wouldn't help making them inlined and keeping DSNode and
-/// DSNodeHandle (and friends) in one file complicates things.
-///
-class DSNodeHandle {
-  mutable DSNode *N;
-  mutable unsigned Offset;
-  void operator==(const DSNode *N);  // DISALLOW, use to promote N to nodehandle
-public:
-  // Allow construction, destruction, and assignment...
-  DSNodeHandle(DSNode *n = 0, unsigned offs = 0) : N(0), Offset(0) {
-    setTo(n, offs);
-  }
-  DSNodeHandle(const DSNodeHandle &H) : N(0), Offset(0) {
-    DSNode *NN = H.getNode();
-    setTo(NN, H.Offset);  // Must read offset AFTER the getNode()
-  }
-  ~DSNodeHandle() { setTo(0, 0); }
-  DSNodeHandle &operator=(const DSNodeHandle &H) {
-    if (&H == this) return *this;  // Don't set offset to 0 if self assigning.
-    DSNode *NN = H.getNode();  // Call getNode() before .Offset
-    setTo(NN, H.Offset);
-    return *this;
-  }
-
-  bool operator<(const DSNodeHandle &H) const {  // Allow sorting
-    return getNode() < H.getNode() || (N == H.N && Offset < H.Offset);
-  }
-  bool operator>(const DSNodeHandle &H) const { return H < *this; }
-  bool operator==(const DSNodeHandle &H) const { // Allow comparison
-    // getNode can change the offset, so we must call getNode() first.
-    return getNode() == H.getNode() && Offset == H.Offset;
-  }
-  bool operator!=(const DSNodeHandle &H) const { return !operator==(H); }
-
-  inline void swap(DSNodeHandle &NH) {
-    std::swap(Offset, NH.Offset);
-    std::swap(N, NH.N);
-  }
-
-  /// isNull - Check to see if getNode() == 0, without going through the trouble
-  /// of checking to see if we are forwarding...
-  ///
-  bool isNull() const { return N == 0; }
-
-  // Allow explicit conversion to DSNode...
-  inline DSNode *getNode() const;  // Defined inline in DSNode.h
-  unsigned getOffset() const {
-    assert(!isForwarding() && "This is a forwarding NH, call getNode() first!");
-    return Offset;
-  }
-
-  void setOffset(unsigned O) {
-    assert(!isForwarding() && "This is a forwarding NH, call getNode() first!");
-    //assert((!N || Offset < N->Size || (N->Size == 0 && Offset == 0) ||
-    //       !N->ForwardNH.isNull()) && "Node handle offset out of range!");
-    //assert((!N || O < N->Size || (N->Size == 0 && O == 0) ||
-    //       !N->ForwardNH.isNull()) && "Node handle offset out of range!");
-    Offset = O;
-  }
-
-  inline void setTo(DSNode *N, unsigned O) const; // Defined inline in DSNode.h
-
-  void addEdgeTo(unsigned LinkNo, const DSNodeHandle &N);
-  void addEdgeTo(const DSNodeHandle &N) { addEdgeTo(0, N); }
-
-  /// mergeWith - Merge the logical node pointed to by 'this' with the node
-  /// pointed to by 'N'.
-  ///
-  void mergeWith(const DSNodeHandle &N) const;
-
-  /// hasLink - Return true if there is a link at the specified offset...
-  ///
-  inline bool hasLink(unsigned Num) const;
-
-  /// getLink - Treat this current node pointer as a pointer to a structure of
-  /// some sort.  This method will return the pointer a mem[this+Num]
-  ///
-  inline const DSNodeHandle &getLink(unsigned Num) const;
-  inline DSNodeHandle &getLink(unsigned Num);
-
-  inline void setLink(unsigned Num, const DSNodeHandle &NH);
-private:
-  DSNode *HandleForwarding() const;
-
-  /// isForwarding - Return true if this NodeHandle is forwarding to another
-  /// one.
-  bool isForwarding() const;
-};
-
-} // End llvm namespace
-
-namespace std {
-  template<>
-  inline void swap<llvm::DSNodeHandle>(llvm::DSNodeHandle &NH1, llvm::DSNodeHandle &NH2) { NH1.swap(NH2); }
-}
-
-namespace HASH_NAMESPACE {
-  // Provide a hash function for arbitrary pointers...
-  template <> struct hash<llvm::DSNodeHandle> {
-    inline size_t operator()(const llvm::DSNodeHandle &Val) const {
-      return hash<void*>()(Val.getNode()) ^ Val.getOffset();
-    }
-  };
-}
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-/// DSCallSite - Representation of a call site via its call instruction,
-/// the DSNode handle for the callee function (or function pointer), and
-/// the DSNode handles for the function arguments.
-///
-class DSCallSite {
-  CallSite     Site;                 // Actual call site
-  Function    *CalleeF;              // The function called (direct call)
-  DSNodeHandle CalleeN;              // The function node called (indirect call)
-  DSNodeHandle RetVal;               // Returned value
-  std::vector<DSNodeHandle> CallArgs;// The pointer arguments
-
-  static void InitNH(DSNodeHandle &NH, const DSNodeHandle &Src,
-                     const hash_map<const DSNode*, DSNode*> &NodeMap) {
-    if (DSNode *N = Src.getNode()) {
-      hash_map<const DSNode*, DSNode*>::const_iterator I = NodeMap.find(N);
-      assert(I != NodeMap.end() && "Node not in mapping!");
-      NH.setTo(I->second, Src.getOffset());
-    }
-  }
-
-  static void InitNH(DSNodeHandle &NH, const DSNodeHandle &Src,
-                     const hash_map<const DSNode*, DSNodeHandle> &NodeMap) {
-    if (DSNode *N = Src.getNode()) {
-      hash_map<const DSNode*, DSNodeHandle>::const_iterator I = NodeMap.find(N);
-      assert(I != NodeMap.end() && "Node not in mapping!");
-
-      DSNode *NN = I->second.getNode(); // Call getNode before getOffset()
-      NH.setTo(NN, Src.getOffset()+I->second.getOffset());
-    }
-  }
-
-  static void InitNH(DSNodeHandle &NH, const DSNodeHandle &Src,
-                     ReachabilityCloner &RC);
-
-
-  DSCallSite();                         // DO NOT IMPLEMENT
-public:
-  /// Constructor.  Note - This ctor destroys the argument vector passed in.  On
-  /// exit, the argument vector is empty.
-  ///
-  DSCallSite(CallSite CS, const DSNodeHandle &rv, DSNode *Callee,
-             std::vector<DSNodeHandle> &Args)
-    : Site(CS), CalleeF(0), CalleeN(Callee), RetVal(rv) {
-    assert(Callee && "Null callee node specified for call site!");
-    Args.swap(CallArgs);
-  }
-  DSCallSite(CallSite CS, const DSNodeHandle &rv, Function *Callee,
-             std::vector<DSNodeHandle> &Args)
-    : Site(CS), CalleeF(Callee), RetVal(rv) {
-    assert(Callee && "Null callee function specified for call site!");
-    Args.swap(CallArgs);
-  }
-
-  DSCallSite(const DSCallSite &DSCS)   // Simple copy ctor
-    : Site(DSCS.Site), CalleeF(DSCS.CalleeF), CalleeN(DSCS.CalleeN),
-      RetVal(DSCS.RetVal), CallArgs(DSCS.CallArgs) {}
-
-  /// Mapping copy constructor - This constructor takes a preexisting call site
-  /// to copy plus a map that specifies how the links should be transformed.
-  /// This is useful when moving a call site from one graph to another.
-  ///
-  template<typename MapTy>
-  DSCallSite(const DSCallSite &FromCall, MapTy &NodeMap) {
-    Site = FromCall.Site;
-    InitNH(RetVal, FromCall.RetVal, NodeMap);
-    InitNH(CalleeN, FromCall.CalleeN, NodeMap);
-    CalleeF = FromCall.CalleeF;
-
-    CallArgs.resize(FromCall.CallArgs.size());
-    for (unsigned i = 0, e = FromCall.CallArgs.size(); i != e; ++i)
-      InitNH(CallArgs[i], FromCall.CallArgs[i], NodeMap);
-  }
-
-  const DSCallSite &operator=(const DSCallSite &RHS) {
-    Site     = RHS.Site;
-    CalleeF  = RHS.CalleeF;
-    CalleeN  = RHS.CalleeN;
-    RetVal   = RHS.RetVal;
-    CallArgs = RHS.CallArgs;
-    return *this;
-  }
-
-  /// isDirectCall - Return true if this call site is a direct call of the
-  /// function specified by getCalleeFunc.  If not, it is an indirect call to
-  /// the node specified by getCalleeNode.
-  ///
-  bool isDirectCall() const { return CalleeF != 0; }
-  bool isIndirectCall() const { return !isDirectCall(); }
-
-
-  // Accessor functions...
-  Function           &getCaller()     const;
-  CallSite            getCallSite()   const { return Site; }
-        DSNodeHandle &getRetVal()           { return RetVal; }
-  const DSNodeHandle &getRetVal()     const { return RetVal; }
-
-  DSNode *getCalleeNode() const {
-    assert(!CalleeF && CalleeN.getNode()); return CalleeN.getNode();
-  }
-  Function *getCalleeFunc() const {
-    assert(!CalleeN.getNode() && CalleeF); return CalleeF;
-  }
-
-  unsigned getNumPtrArgs() const { return CallArgs.size(); }
-
-  DSNodeHandle &getPtrArg(unsigned i) {
-    assert(i < CallArgs.size() && "Argument to getPtrArgNode is out of range!");
-    return CallArgs[i];
-  }
-  const DSNodeHandle &getPtrArg(unsigned i) const {
-    assert(i < CallArgs.size() && "Argument to getPtrArgNode is out of range!");
-    return CallArgs[i];
-  }
-
-  void addPtrArg(const DSNodeHandle &NH) {
-    CallArgs.push_back(NH);
-  }
-
-  void swap(DSCallSite &CS) {
-    if (this != &CS) {
-      std::swap(Site, CS.Site);
-      std::swap(RetVal, CS.RetVal);
-      std::swap(CalleeN, CS.CalleeN);
-      std::swap(CalleeF, CS.CalleeF);
-      std::swap(CallArgs, CS.CallArgs);
-    }
-  }
-
-  /// mergeWith - Merge the return value and parameters of the these two call
-  /// sites.
-  ///
-  void mergeWith(DSCallSite &CS) {
-    getRetVal().mergeWith(CS.getRetVal());
-    unsigned MinArgs = getNumPtrArgs();
-    if (CS.getNumPtrArgs() < MinArgs) MinArgs = CS.getNumPtrArgs();
-
-    for (unsigned a = 0; a != MinArgs; ++a)
-      getPtrArg(a).mergeWith(CS.getPtrArg(a));
-
-    for (unsigned a = MinArgs, e = CS.getNumPtrArgs(); a != e; ++a)
-      CallArgs.push_back(CS.getPtrArg(a));
-  }
-
-  /// markReachableNodes - This method recursively traverses the specified
-  /// DSNodes, marking any nodes which are reachable.  All reachable nodes it
-  /// adds to the set, which allows it to only traverse visited nodes once.
-  ///
-  void markReachableNodes(hash_set<const DSNode*> &Nodes) const;
-
-  bool operator<(const DSCallSite &CS) const {
-    if (isDirectCall()) {      // This must sort by callee first!
-      if (CS.isIndirectCall()) return true;
-      if (CalleeF < CS.CalleeF) return true;
-      if (CalleeF > CS.CalleeF) return false;
-    } else {
-      if (CS.isDirectCall()) return false;
-      if (CalleeN < CS.CalleeN) return true;
-      if (CalleeN > CS.CalleeN) return false;
-    }
-    if (RetVal < CS.RetVal) return true;
-    if (RetVal > CS.RetVal) return false;
-    return CallArgs < CS.CallArgs;
-  }
-
-  bool operator==(const DSCallSite &CS) const {
-    return CalleeF == CS.CalleeF && CalleeN == CS.CalleeN &&
-           RetVal == CS.RetVal && CallArgs == CS.CallArgs;
-  }
-};
-
-} // End llvm namespace
-
-namespace std {
-  template<>
-  inline void swap<llvm::DSCallSite>(llvm::DSCallSite &CS1,
-                                     llvm::DSCallSite &CS2) { CS1.swap(CS2); }
-}
-#endif
diff --git a/poolalloc/include/dsa/DataStructure.h b/poolalloc/include/dsa/DataStructure.h
deleted file mode 100644
index 1b04649..0000000
--- a/poolalloc/include/dsa/DataStructure.h
+++ /dev/null
@@ -1,449 +0,0 @@
-//===- DataStructure.h - Build data structure graphs ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Implement the LLVM data structure analysis library.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ANALYSIS_DATA_STRUCTURE_H
-#define LLVM_ANALYSIS_DATA_STRUCTURE_H
-
-#include "llvm/Pass.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/ADT/hash_map"
-#include "llvm/ADT/hash_set"
-#include "llvm/ADT/EquivalenceClasses.h"
-
-namespace llvm {
-
-class Type;
-class Instruction;
-class GlobalValue;
-class DSGraph;
-class DSCallSite;
-class DSNode;
-class DSNodeHandle;
-
-FunctionPass *createDataStructureStatsPass();
-FunctionPass *createDataStructureGraphCheckerPass();
-
-class DataStructures : public ModulePass {
-
-  /// TargetData, comes in handy
-  TargetData* TD;
-
-  /// Pass to get Graphs from
-  DataStructures* GraphSource;
-
-  /// Do we clone Graphs or steal them?
-  bool Clone;
-
-  void buildGlobalECs(std::set<GlobalValue*>& ECGlobals);
-
-  void eliminateUsesOfECGlobals(DSGraph& G, const std::set<GlobalValue*> &ECGlobals);
-
-protected:
-  // DSInfo, one graph for each function
-  hash_map<Function*, DSGraph*> DSInfo;
-
-  /// The Globals Graph contains all information on the globals
-  DSGraph *GlobalsGraph;
-
-  /// GlobalECs - The equivalence classes for each global value that is merged
-  /// with other global values in the DSGraphs.
-  EquivalenceClasses<GlobalValue*> GlobalECs;
-
-
-  void setGraphSource(DataStructures* D) {
-    assert(!GraphSource && "Already have a Graph");
-    GraphSource = D;
-  }
-
-  void setGraphClone(bool clone) {
-    Clone = clone;
-  }
-
-  void setTargetData(TargetData& T) {
-    TD = &T;
-  }
-
-  void formGlobalECs();
-
-  DataStructures(intptr_t id) 
-    :ModulePass(id), TD(0), GraphSource(0), GlobalsGraph(0) {}
-
-public:
-
-  bool hasGraph(const Function &F) const {
-    return DSInfo.find(const_cast<Function*>(&F)) != DSInfo.end();
-  }
-
-  /// getDSGraph - Return the data structure graph for the specified function.
-  ///
-  DSGraph &getDSGraph(const Function &F) const {
-    hash_map<Function*, DSGraph*>::const_iterator I =
-      DSInfo.find(const_cast<Function*>(&F));
-    assert(I != DSInfo.end() && "Function not in module!");
-    return *I->second;
-  }
-
-  DSGraph& getOrCreateGraph(Function* F);
-
-  DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
-
-  EquivalenceClasses<GlobalValue*> &getGlobalECs() { return GlobalECs; }
-
-  TargetData& getTargetData() const { return *TD; }
-
-  /// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
-  /// These correspond to the interfaces defined in the AliasAnalysis class.
-  void deleteValue(Value *V);
-  void copyValue(Value *From, Value *To);
-};
-
-
-// LocalDataStructures - The analysis that computes the local data structure
-// graphs for all of the functions in the program.
-//
-// FIXME: This should be a Function pass that can be USED by a Pass, and would
-// be automatically preserved.  Until we can do that, this is a Pass.
-//
-class LocalDataStructures : public DataStructures {
-public:
-  static char ID;
-  LocalDataStructures() : DataStructures((intptr_t)&ID) {}
-  ~LocalDataStructures() { releaseMemory(); }
-
-  virtual bool runOnModule(Module &M);
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-  /// releaseMemory - if the pass pipeline is done with this pass, we can
-  /// release our memory...
-  ///
-  virtual void releaseMemory();
-
-  /// getAnalysisUsage - This obviously provides a data structure graph.
-  ///
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<TargetData>();
-  }
-};
-
-// StdLibDataStructures - This analysis recognizes common standard c library
-// functions and generates graphs for them.
-class StdLibDataStructures : public DataStructures {
-public:
-  static char ID;
-  StdLibDataStructures() : DataStructures((intptr_t)&ID) {}
-  ~StdLibDataStructures() { releaseMemory(); }
-
-  virtual bool runOnModule(Module &M);
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-  /// releaseMemory - if the pass pipeline is done with this pass, we can
-  /// release our memory...
-  ///
-  virtual void releaseMemory();
-
-  /// getAnalysisUsage - This obviously provides a data structure graph.
-  ///
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<LocalDataStructures>();
-  }
-};
-
-/// BUDataStructures - The analysis that computes the interprocedurally closed
-/// data structure graphs for all of the functions in the program.  This pass
-/// only performs a "Bottom Up" propagation (hence the name).
-///
-class BUDataStructures : public DataStructures {
-protected:
-  std::set<std::pair<Instruction*, Function*> > ActualCallees;
-
-  // This map is only maintained during construction of BU Graphs
-  std::map<std::vector<Function*>,
-           std::pair<DSGraph*, std::vector<DSNodeHandle> > > *IndCallGraphMap;
-
-  BUDataStructures(intptr_t id) : DataStructures(id) {}
-public:
-  static char ID;
-  BUDataStructures() : DataStructures((intptr_t)&ID) {}
-  ~BUDataStructures() { releaseMyMemory(); }
-
-  virtual bool runOnModule(Module &M);
-
-  DSGraph &CreateGraphForExternalFunction(const Function &F);
-
-  /// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
-  /// These correspond to the interfaces defined in the AliasAnalysis class.
-  void deleteValue(Value *V);
-  void copyValue(Value *From, Value *To);
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-  // FIXME: Once the pass manager is straightened out, rename this to
-  // releaseMemory.
-  void releaseMyMemory();
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<StdLibDataStructures>();
-  }
-
-  typedef std::set<std::pair<Instruction*, Function*> > ActualCalleesTy;
-  const ActualCalleesTy &getActualCallees() const {
-    return ActualCallees;
-  }
-
-  typedef ActualCalleesTy::const_iterator callee_iterator;
-  callee_iterator callee_begin(Instruction *I) const {
-    return ActualCallees.lower_bound(std::pair<Instruction*,Function*>(I, 0));
-  }
-
-  callee_iterator callee_end(Instruction *I) const {
-    I = (Instruction*)((char*)I + 1);
-    return ActualCallees.lower_bound(std::pair<Instruction*,Function*>(I, 0));
-  }
-
-private:
-  void calculateGraph(DSGraph &G);
-
-  unsigned calculateGraphs(Function *F, std::vector<Function*> &Stack,
-                           unsigned &NextID,
-                           hash_map<Function*, unsigned> &ValMap);
-};
-
-
-/// TDDataStructures - Analysis that computes new data structure graphs
-/// for each function using the closed graphs for the callers computed
-/// by the bottom-up pass.
-///
-class TDDataStructures : public DataStructures {
-  hash_set<Function*> ArgsRemainIncomplete;
-  BUDataStructures *BUInfo;
-
-  /// CallerCallEdges - For a particular graph, we keep a list of these records
-  /// which indicates which graphs call this function and from where.
-  struct CallerCallEdge {
-    DSGraph *CallerGraph;        // The graph of the caller function.
-    const DSCallSite *CS;        // The actual call site.
-    Function *CalledFunction;    // The actual function being called.
-
-    CallerCallEdge(DSGraph *G, const DSCallSite *cs, Function *CF)
-      : CallerGraph(G), CS(cs), CalledFunction(CF) {}
-
-    bool operator<(const CallerCallEdge &RHS) const {
-      return CallerGraph < RHS.CallerGraph ||
-            (CallerGraph == RHS.CallerGraph && CS < RHS.CS);
-    }
-  };
-
-  std::map<DSGraph*, std::vector<CallerCallEdge> > CallerEdges;
-
-
-  // IndCallMap - We memoize the results of indirect call inlining operations
-  // that have multiple targets here to avoid N*M inlining.  The key to the map
-  // is a sorted set of callee functions, the value is the DSGraph that holds
-  // all of the caller graphs merged together, and the DSCallSite to merge with
-  // the arguments for each function.
-  std::map<std::vector<Function*>, DSGraph*> IndCallMap;
-
-public:
-  static char ID;
-  TDDataStructures() : DataStructures((intptr_t)&ID) {}
-  ~TDDataStructures() { releaseMyMemory(); }
-
-  virtual bool runOnModule(Module &M);
-
-  /// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
-  /// These correspond to the interfaces defined in the AliasAnalysis class.
-  void deleteValue(Value *V);
-  void copyValue(Value *From, Value *To);
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-  /// If the pass pipeline is done with this pass, we can release our memory...
-  ///
-  virtual void releaseMyMemory();
-
-  /// getAnalysisUsage - This obviously provides a data structure graph.
-  ///
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<BUDataStructures>();
-  }
-
-private:
-  void markReachableFunctionsExternallyAccessible(DSNode *N,
-                                                  hash_set<DSNode*> &Visited);
-
-  void InlineCallersIntoGraph(DSGraph &G);
-  void ComputePostOrder(Function &F, hash_set<DSGraph*> &Visited,
-                        std::vector<DSGraph*> &PostOrder);
-};
-
-
-/// CompleteBUDataStructures - This is the exact same as the bottom-up graphs,
-/// but we use take a completed call graph and inline all indirect callees into
-/// their callers graphs, making the result more useful for things like pool
-/// allocation.
-///
-class CompleteBUDataStructures : public BUDataStructures {
-public:
-  static char ID;
-  CompleteBUDataStructures() : BUDataStructures((intptr_t)&ID) {}
-  ~CompleteBUDataStructures() { releaseMyMemory(); }
-
-  virtual bool runOnModule(Module &M);
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<BUDataStructures>();
-
-    // FIXME: TEMPORARY (remove once finalization of indirect call sites in the
-    // globals graph has been implemented in the BU pass)
-    AU.addRequired<TDDataStructures>();
-  }
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-private:
-  unsigned calculateSCCGraphs(DSGraph &FG, std::vector<DSGraph*> &Stack,
-                              unsigned &NextID,
-                              hash_map<DSGraph*, unsigned> &ValMap);
-  DSGraph &getOrCreateGraph(Function &F);
-  void processGraph(DSGraph &G);
-};
-
-
-/// EquivClassGraphs - This is the same as the complete bottom-up graphs, but
-/// with functions partitioned into equivalence classes and a single merged
-/// DS graph for all functions in an equivalence class.  After this merging,
-/// graphs are inlined bottom-up on the SCCs of the final (CBU) call graph.
-///
-struct EquivClassGraphs : public ModulePass {
-  CompleteBUDataStructures *CBU;
-
-  DSGraph *GlobalsGraph;
-
-  // DSInfo - one graph for each function.
-  hash_map<const Function*, DSGraph*> DSInfo;
-
-  /// ActualCallees - The actual functions callable from indirect call sites.
-  ///
-  std::set<std::pair<Instruction*, Function*> > ActualCallees;
-
-  // Equivalence class where functions that can potentially be called via the
-  // same function pointer are in the same class.
-  EquivalenceClasses<Function*> FuncECs;
-
-  /// OneCalledFunction - For each indirect call, we keep track of one
-  /// target of the call.  This is used to find equivalence class called by
-  /// a call site.
-  std::map<DSNode*, Function *> OneCalledFunction;
-
-  /// GlobalECs - The equivalence classes for each global value that is merged
-  /// with other global values in the DSGraphs.
-  EquivalenceClasses<GlobalValue*> GlobalECs;
-
-public:
-  static char ID;
-  EquivClassGraphs() : ModulePass((intptr_t)&ID) {}
-
-  /// EquivClassGraphs - Computes the equivalence classes and then the
-  /// folded DS graphs for each class.
-  ///
-
-  virtual bool runOnModule(Module &M);
-
-  /// print - Print out the analysis results...
-  ///
-  void print(std::ostream &O, const Module *M) const;
-
-  EquivalenceClasses<GlobalValue*> &getGlobalECs() { return GlobalECs; }
-
-  /// getDSGraph - Return the data structure graph for the specified function.
-  /// This returns the folded graph.  The folded graph is the same as the CBU
-  /// graph iff the function is in a singleton equivalence class AND all its
-  /// callees also have the same folded graph as the CBU graph.
-  ///
-  DSGraph &getDSGraph(const Function &F) const {
-    hash_map<const Function*, DSGraph*>::const_iterator I = DSInfo.find(&F);
-    assert(I != DSInfo.end() && "No graph computed for that function!");
-    return *I->second;
-  }
-
-  bool hasGraph(const Function &F) const {
-    return DSInfo.find(&F) != DSInfo.end();
-  }
-
-  /// ContainsDSGraphFor - Return true if we have a graph for the specified
-  /// function.
-  bool ContainsDSGraphFor(const Function &F) const {
-    return DSInfo.find(&F) != DSInfo.end();
-  }
-
-  /// getSomeCalleeForCallSite - Return any one callee function at
-  /// a call site.
-  ///
-  Function *getSomeCalleeForCallSite(const CallSite &CS) const;
-
-  DSGraph &getGlobalsGraph() const {
-    return *GlobalsGraph;
-  }
-
-  typedef std::set<std::pair<Instruction*, Function*> > ActualCalleesTy;
-  const ActualCalleesTy &getActualCallees() const {
-    return ActualCallees;
-  }
-
-  typedef ActualCalleesTy::const_iterator callee_iterator;
-  callee_iterator callee_begin(Instruction *I) const {
-    return ActualCallees.lower_bound(std::pair<Instruction*,Function*>(I, 0));
-  }
-
-  callee_iterator callee_end(Instruction *I) const {
-    I = (Instruction*)((char*)I + 1);
-    return ActualCallees.lower_bound(std::pair<Instruction*,Function*>(I, 0));
-  }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.setPreservesAll();
-    AU.addRequired<CompleteBUDataStructures>();
-  }
-
-private:
-  void buildIndirectFunctionSets(Module &M);
-
-  unsigned processSCC(DSGraph &FG, std::vector<DSGraph*> &Stack,
-                      unsigned &NextID,
-                      std::map<DSGraph*, unsigned> &ValMap);
-  void processGraph(DSGraph &FG);
-
-  DSGraph &getOrCreateGraph(Function &F);
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/poolalloc/include/poolalloc/Config/config.h.in b/poolalloc/include/poolalloc/Config/config.h.in
deleted file mode 100644
index e714839..0000000
--- a/poolalloc/include/poolalloc/Config/config.h.in
+++ /dev/null
@@ -1,477 +0,0 @@
-/* include/poolalloc/Config/config.h.in.  Generated from autoconf/configure.ac by autoheader.  */
-
-/* Define if dlopen(0) will open the symbols of the program */
-#undef CAN_DLOPEN_SELF
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the `argz_append' function. */
-#undef HAVE_ARGZ_APPEND
-
-/* Define to 1 if you have the `argz_create_sep' function. */
-#undef HAVE_ARGZ_CREATE_SEP
-
-/* Define to 1 if you have the <argz.h> header file. */
-#undef HAVE_ARGZ_H
-
-/* Define to 1 if you have the `argz_insert' function. */
-#undef HAVE_ARGZ_INSERT
-
-/* Define to 1 if you have the `argz_next' function. */
-#undef HAVE_ARGZ_NEXT
-
-/* Define to 1 if you have the `argz_stringify' function. */
-#undef HAVE_ARGZ_STRINGIFY
-
-/* Define to 1 if you have the <assert.h> header file. */
-#undef HAVE_ASSERT_H
-
-/* Define to 1 if you have the `backtrace' function. */
-#undef HAVE_BACKTRACE
-
-/* Define to 1 if you have the `bcopy' function. */
-#undef HAVE_BCOPY
-
-/* Does not have bi-directional iterator */
-#undef HAVE_BI_ITERATOR
-
-/* Define to 1 if you have the `closedir' function. */
-#undef HAVE_CLOSEDIR
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the GNU dld library. */
-#undef HAVE_DLD
-
-/* Define to 1 if you have the <dld.h> header file. */
-#undef HAVE_DLD_H
-
-/* Define to 1 if you have the `dlerror' function. */
-#undef HAVE_DLERROR
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if dlopen() is available on this platform. */
-#undef HAVE_DLOPEN
-
-/* Define to 1 if you have the <dl.h> header file. */
-#undef HAVE_DL_H
-
-/* Define if you have the _dyld_func_lookup function. */
-#undef HAVE_DYLD
-
-/* Define to 1 if you have the <errno.h> header file. */
-#undef HAVE_ERRNO_H
-
-/* Define to 1 if the system has the type `error_t'. */
-#undef HAVE_ERROR_T
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Set to 1 if the finite function is found in <ieeefp.h> */
-#undef HAVE_FINITE_IN_IEEEFP_H
-
-/* Does not have forward iterator */
-#undef HAVE_FWD_ITERATOR
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define to 1 if you have the `getrusage' function. */
-#undef HAVE_GETRUSAGE
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Does not have <hash_map> */
-#undef HAVE_GLOBAL_HASH_MAP
-
-/* Does not have hash_set in global namespace */
-#undef HAVE_GLOBAL_HASH_SET
-
-/* Does not have ext/hash_map */
-#undef HAVE_GNU_EXT_HASH_MAP
-
-/* Does not have hash_set in gnu namespace */
-#undef HAVE_GNU_EXT_HASH_SET
-
-/* Define to 1 if you have the `index' function. */
-#undef HAVE_INDEX
-
-/* Define to 1 if the system has the type `int64_t'. */
-#undef HAVE_INT64_T
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isatty' function. */
-#undef HAVE_ISATTY
-
-/* Set to 1 if the isinf function is found in <cmath> */
-#undef HAVE_ISINF_IN_CMATH
-
-/* Set to 1 if the isinf function is found in <math.h> */
-#undef HAVE_ISINF_IN_MATH_H
-
-/* Set to 1 if the isnan function is found in <cmath> */
-#undef HAVE_ISNAN_IN_CMATH
-
-/* Set to 1 if the isnan function is found in <math.h> */
-#undef HAVE_ISNAN_IN_MATH_H
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define to 1 if you have the `elf' library (-lelf). */
-#undef HAVE_LIBELF
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the <link.h> header file. */
-#undef HAVE_LINK_H
-
-/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
-   the current directory to the dynamic linker search path. */
-#undef HAVE_LINK_R
-
-/* Define if lt_dlopen() is available on this platform */
-#undef HAVE_LT_DLOPEN
-
-/* Define to 1 if you have the <mach-o/dyld.h> header file. */
-#undef HAVE_MACH_O_DYLD_H
-
-/* Define if mallinfo() is available on this platform. */
-#undef HAVE_MALLINFO
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the `memcpy' function. */
-#undef HAVE_MEMCPY
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkdtemp' function. */
-#undef HAVE_MKDTEMP
-
-/* Define to 1 if you have the `mkstemp' function. */
-#undef HAVE_MKSTEMP
-
-/* Define to 1 if you have the `mktemp' function. */
-#undef HAVE_MKTEMP
-
-/* Define to 1 if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
-   it uses MAP_ANON */
-#undef HAVE_MMAP_ANONYMOUS
-
-/* Define if mmap() can map files into memory */
-#undef HAVE_MMAP_FILE
-
-/* define if the compiler implements namespaces */
-#undef HAVE_NAMESPACES
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the `opendir' function. */
-#undef HAVE_OPENDIR
-
-/* Define if libtool can extract symbol lists from object files. */
-#undef HAVE_PRELOADED_SYMBOLS
-
-/* Define to have the %a format string */
-#undef HAVE_PRINTF_A
-
-/* Have pthread_mutex_lock */
-#undef HAVE_PTHREAD_MUTEX_LOCK
-
-/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */
-#undef HAVE_RAND48
-
-/* Define to 1 if you have the `readdir' function. */
-#undef HAVE_READDIR
-
-/* Define to 1 if you have the `realpath' function. */
-#undef HAVE_REALPATH
-
-/* Define to 1 if you have the `rindex' function. */
-#undef HAVE_RINDEX
-
-/* Define to 1 if you have the <rw/stdex/hash_map.h> header file. */
-#undef HAVE_RW_STDEX_HASH_MAP_H
-
-/* Define to 1 if you have the <rw/stdex/hash_set.h> header file. */
-#undef HAVE_RW_STDEX_HASH_SET_H
-
-/* Define to 1 if you have the `sbrk' function. */
-#undef HAVE_SBRK
-
-/* Define to 1 if you have the `setrlimit' function. */
-#undef HAVE_SETRLIMIT
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
-/* Define to 1 if you have the <signal.h> header file. */
-#undef HAVE_SIGNAL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Does not have ext/hash_map> */
-#undef HAVE_STD_EXT_HASH_MAP
-
-/* Does not have hash_set in std namespace */
-#undef HAVE_STD_EXT_HASH_SET
-
-/* Set to 1 if the std::isinf function is found in <cmath> */
-#undef HAVE_STD_ISINF_IN_CMATH
-
-/* Set to 1 if the std::isnan function is found in <cmath> */
-#undef HAVE_STD_ISNAN_IN_CMATH
-
-/* Does not have std namespace iterator */
-#undef HAVE_STD_ITERATOR
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strcmp' function. */
-#undef HAVE_STRCMP
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the `strerror_r' function. */
-#undef HAVE_STRERROR_R
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strtoll' function. */
-#undef HAVE_STRTOLL
-
-/* Define to 1 if you have the `strtoq' function. */
-#undef HAVE_STRTOQ
-
-/* Define to 1 if you have the `sysconf' function. */
-#undef HAVE_SYSCONF
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/dl.h> header file. */
-#undef HAVE_SYS_DL_H
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#undef HAVE_SYS_RESOURCE_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if the system has the type `uint64_t'. */
-#undef HAVE_UINT64_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the <utime.h> header file. */
-#undef HAVE_UTIME_H
-
-/* Define to 1 if the system has the type `u_int64_t'. */
-#undef HAVE_U_INT64_T
-
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
-/* Installation directory for binary executables */
-#undef LLVM_BINDIR
-
-/* Time at which LLVM was configured */
-#undef LLVM_CONFIGTIME
-
-/* Installation directory for documentation */
-#undef LLVM_DATADIR
-
-/* Installation directory for config files */
-#undef LLVM_ETCDIR
-
-/* Installation directory for include files */
-#undef LLVM_INCLUDEDIR
-
-/* Installation directory for .info files */
-#undef LLVM_INFODIR
-
-/* Installation directory for libraries */
-#undef LLVM_LIBDIR
-
-/* Installation directory for man pages */
-#undef LLVM_MANDIR
-
-/* Define if this is Unixish platform */
-#undef LLVM_ON_UNIX
-
-/* Define if this is Win32ish platform */
-#undef LLVM_ON_WIN32
-
-/* Installation prefix directory */
-#undef LLVM_PREFIX
-
-/* Define if the OS needs help to load dependent libraries for dlopen(). */
-#undef LTDL_DLOPEN_DEPLIBS
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LTDL_OBJDIR
-
-/* Define to the name of the environment variable that determines the dynamic
-   library search path. */
-#undef LTDL_SHLIBPATH_VAR
-
-/* Define to the extension used for shared libraries, say, ".so". */
-#undef LTDL_SHLIB_EXT
-
-/* Define to the system default library search path. */
-#undef LTDL_SYSSEARCHPATH
-
-/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
-   its not necessary */
-#undef NEED_DEV_ZERO_FOR_MMAP
-
-/* Define if dlsym() requires a leading underscore in symbol names. */
-#undef NEED_USCORE
-
-#if 0
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-#endif
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-#undef STAT_MACROS_BROKEN
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-#undef TM_IN_SYS_TIME
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
-   `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to a type to use for `error_t' if it is not otherwise available. */
-#undef error_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to `unsigned' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to 1 if enabling SAFECode */
-#undef SAFECODE
-
-/* Define to 1 if enabling SAFECode bounds checking */
-#undef BOUNDS_CHECK
-
-/* Define to 1 if compiling for pool inference */
-#undef LLVA_KERNEL
-
diff --git a/poolalloc/include/poolalloc/MMAPSupport.h b/poolalloc/include/poolalloc/MMAPSupport.h
deleted file mode 100644
index f2bb41c..0000000
--- a/poolalloc/include/poolalloc/MMAPSupport.h
+++ /dev/null
@@ -1,56 +0,0 @@
-//===- MMAPSupport.h - mmap portability wrappers ----------------*- C++ -*-===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file allows clients to use some functionality of mmap efficiently and
-// portably.  This is used for the pool allocator runtime implementations.
-//
-//===----------------------------------------------------------------------===//
-
-#include "poolalloc/Config/config.h"
-#include <cstdlib>
-#include <cassert>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
-#define MAP_ANONYMOUS MAP_ANON
-#endif /* defined(MAP_ANON) && !defined(MAP_ANONYMOUS) */
-
-static void *AllocateSpaceWithMMAP(size_t Size, bool UseNoReserve = false) {
-  // NOTE: this assumes Size is a multiple of the page size.
-  int FD = -1;
-#ifdef NEED_DEV_ZERO_FOR_MMAP
-  static int DevZeroFD = open("/dev/zero", O_RDWR);
-  if (DevZeroFD == -1) {
-    perror("Can't open /dev/zero device");
-    abort();
-  }
-  FD = zero_fd;
-#endif
-
-  int Flags = MAP_PRIVATE | MAP_ANONYMOUS;
-#ifdef MAP_NORESERVE
-  if (UseNoReserve)
-    Flags |= MAP_NORESERVE;
-#endif
-
-  void *Mem = ::mmap(0, Size, PROT_READ|PROT_WRITE, Flags, FD, 0);
-  assert(Mem != MAP_FAILED && "couldn't get space!");
-  return Mem;
-}
diff --git a/poolalloc/include/poolalloc/PoolAllocate.h b/poolalloc/include/poolalloc/PoolAllocate.h
deleted file mode 100644
index 6e66fe7..0000000
--- a/poolalloc/include/poolalloc/PoolAllocate.h
+++ /dev/null
@@ -1,292 +0,0 @@
-//===-- PoolAllocate.h - Pool allocation pass -------------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This transform changes programs so that disjoint data structures are
-// allocated out of different pools of memory, increasing locality.  This header
-// file exposes information about the pool allocation itself so that follow-on
-// passes may extend or use the pool allocation for analysis.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POOLALLOCATE_H
-#define POOLALLOCATE_H
-
-#include "llvm/Pass.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/ADT/EquivalenceClasses.h"
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/ADT/hash_set"
-#include "poolalloc/Config/config.h"
-
-#ifdef SAFECODE
-//FIXME : make this use some configuration options
-#include "/home/vadve/criswell/src/latestllvm/projects/safecode/include/ConvertUnsafeAllocas.h"
-#endif
-
-
-#include <set>
-
-namespace llvm {
-#ifdef SAFECODE
-  using namespace CUA;
-#endif  
-class DSNode;
-class DSGraph;
-class Type;
-class AllocaInst;
-class EquivClassGraphs;
-class CallTargetFinder;
-
-namespace PA {
-
-  class Heuristic;
-
-  /// FuncInfo - Represent the pool allocation information for one function in
-  /// the program.  Note that many functions must actually be cloned in order
-  /// for pool allocation to add arguments to the function signature.  In this
-  /// case, the Clone and NewToOldValueMap information identify how the clone
-  /// maps to the original function...
-  ///
-  struct FuncInfo {
-    FuncInfo(Function &f) : F(f), Clone(0) {}
-
-    /// MarkedNodes - The set of nodes which are not locally pool allocatable in
-    /// the current function.
-    ///
-    hash_set<const DSNode*> MarkedNodes;
-
-    /// F - The function this FuncInfo corresponds to.
-    ///
-    Function &F;
-
-    /// Clone - The cloned version of the function, if applicable.
-    ///
-    Function *Clone;
-
-    /// ArgNodes - The list of DSNodes which have pools passed in as arguments.
-    /// 
-    std::vector<const DSNode*> ArgNodes;
-
-    /// NodesToPA - The list of nodes which are to be pool allocated locally in
-    /// this function.  This only includes heap nodes.
-    std::vector<const DSNode*> NodesToPA;
-
-    /// PoolDescriptors - The Value* which defines the pool descriptor for this
-    /// DSNode.  Note: This does not necessarily include pool arguments that are
-    /// passed in because of indirect function calls that are not used in the
-    /// function.
-    std::map<const DSNode*, Value*> PoolDescriptors;
-
-#ifdef SAFECODE
-    //This is a map from Old to New Value Map reverse of the one above
-    //Useful in SAFECode for check insertion
-    std::map<const Value*, Value*> ValueMap;
-#endif
-    
-    /// NewToOldValueMap - When and if a function needs to be cloned, this map
-    /// contains a mapping from all of the values in the new function back to
-    /// the values they correspond to in the old function.
-    ///
-    typedef std::map<Value*, const Value*> NewToOldValueMapTy;
-    NewToOldValueMapTy NewToOldValueMap;
-
-    /// MapValueToOriginal - Given a value in the cloned version of this
-    /// function, map it back to the original.  If the specified value did not
-    /// exist in the original function (e.g. because it's a pool descriptor),
-    /// return null.
-    Value *MapValueToOriginal(Value *V) const {
-      NewToOldValueMapTy::const_iterator I = NewToOldValueMap.find(V);
-      return I != NewToOldValueMap.end() ? const_cast<Value*>(I->second) : 0;
-    }
-  };
-
-} // end PA namespace
-
-
-
-/// PoolAllocate - The main pool allocation pass
-///
-class PoolAllocate : public ModulePass {
-  /// PassAllArguments - If set to true, we should pass pool descriptor
-  /// arguments into any function that loads or stores to a pool, in addition to
-  /// those functions that allocate or deallocate.  See also the
-  /// PoolAllocatePassAllPools pass below.
-  bool PassAllArguments;
-
-  Module *CurModule;
-  EquivClassGraphs *ECGraphs;
-  CallTargetFinder* CTF;
-  
-  std::map<Function*, PA::FuncInfo> FunctionInfo;
-  std::map<Function*, Function*> CloneToOrigMap;
-public:
-
-#ifdef SAFECODE  
-  ConvertUnsafeAllocas *CUAPass;
-#endif  
-  Constant *PoolInit, *PoolDestroy, *PoolAlloc, *PoolRealloc, *PoolMemAlign;
-  Constant *PoolFree;
-#if defined(SAFECODE) || defined(BOUNDS_CHECK)
-  Constant *PoolRegister;
-#endif
-  
-  static const Type *PoolDescPtrTy;
-
-  PA::Heuristic *CurHeuristic;
-
-  /// GlobalNodes - For each node (with an H marker) in the globals graph, this
-  /// map contains the global variable that holds the pool descriptor for the
-  /// node.
-  std::map<const DSNode*, Value*> GlobalNodes;
-
- public:
-  static char ID;
-#ifdef SAFECODE  
-  PoolAllocate(bool passAllArguments = true) 
-    : ModulePass((intptr_t)&ID), PassAllArguments(passAllArguments) {}
-#else
-  PoolAllocate(bool passAllArguments = false) 
-    : ModulePass((intptr_t)&ID), PassAllArguments(passAllArguments) {}
-#endif
-  bool runOnModule(Module &M);
-  
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
-  
-  EquivClassGraphs &getECGraphs() const { return *ECGraphs; }
-  
-  /// getOrigFunctionFromClone - Given a pointer to a function that was cloned
-  /// from another function, return the original function.  If the argument
-  /// function is not a clone, return null.
-  Function *getOrigFunctionFromClone(Function *F) const {
-    std::map<Function*, Function*>::const_iterator I = CloneToOrigMap.find(F);
-    return I != CloneToOrigMap.end() ? I->second : 0;
-  }
-
-  /// getFuncInfo - Return the FuncInfo object for the specified function.
-  ///
-  PA::FuncInfo *getFuncInfo(Function &F) {
-    std::map<Function*, PA::FuncInfo>::iterator I = FunctionInfo.find(&F);
-    return I != FunctionInfo.end() ? &I->second : 0;
-  }
-
-  /// getFuncInfoOrClone - Return the function info object for for the specified
-  /// function.  If this function is a clone of another function, return the
-  /// function info object for the original function.
-  PA::FuncInfo *getFuncInfoOrClone(Function &F) {
-    // If it is cloned or not check it out.
-    if (PA::FuncInfo *FI = getFuncInfo(F))
-      return FI;
-    // Maybe this is a function clone?
-    if (Function *FC = getOrigFunctionFromClone(&F))
-      return getFuncInfo(*FC);
-    return 0;
-  }
-  
-
-  /// releaseMemory - When the pool allocator is no longer used, release
-  /// resources used by it.
-  virtual void releaseMemory() {
-    FunctionInfo.clear();
-    GlobalNodes.clear();
-    CloneToOrigMap.clear();
-  }
-
-
-  Module *getCurModule() { return CurModule; }
-
-  /// CreateGlobalPool - Create a global pool descriptor, initialize it in main,
-  /// and return a pointer to the global for it.
-  GlobalVariable *CreateGlobalPool(unsigned RecSize, unsigned Alignment,
-                                   Instruction *IPHint = 0);
-
- private:
-  
-  /// AddPoolPrototypes - Add prototypes for the pool functions to the
-  /// specified module and update the Pool* instance variables to point to
-  /// them.
-  ///
-  void AddPoolPrototypes();
-
-  /// MicroOptimizePoolCalls - Apply any microoptimizations to calls to pool
-  /// allocation function calls that we can.
-  void MicroOptimizePoolCalls();
-  
-  /// BuildIndirectFunctionSets - Iterate over the module looking for indirect
-  /// calls to functions
-  void BuildIndirectFunctionSets(Module &M);   
-
-  /// SetupGlobalPools - Create global pools for all DSNodes in the globals
-  /// graph which contain heap objects.  If a global variable points to a piece
-  /// of memory allocated from the heap, this pool gets a global lifetime.
-  ///
-  /// This method returns true if correct pool allocation of the module cannot
-  /// be performed because there is no main function for the module and there
-  /// are global pools.
-  bool SetupGlobalPools(Module &M);
-
-  /// FindFunctionPoolArgs - In the first pass over the program, we decide which
-  /// arguments will have to be added for each function, build the FunctionInfo
-  /// map and recording this info in the ArgNodes set.
-  void FindFunctionPoolArgs(Function &F);   
-  
-  /// MakeFunctionClone - If the specified function needs to be modified for
-  /// pool allocation support, make a clone of it, adding additional arguments
-  /// as neccesary, and return it.  If not, just return null.
-  ///
-  Function *MakeFunctionClone(Function &F);
-  
-  /// ProcessFunctionBody - Rewrite the body of a transformed function to use
-  /// pool allocation where appropriate.
-  ///
-  void ProcessFunctionBody(Function &Old, Function &New);
-  
-  /// CreatePools - This inserts alloca instruction in the function for all
-  /// pools specified in the NodesToPA list.  This adds an entry to the
-  /// PoolDescriptors map for each DSNode.
-  ///
-  void CreatePools(Function &F, DSGraph &G, 
-                   const std::vector<const DSNode*> &NodesToPA,
-                   std::map<const DSNode*, Value*> &PoolDescriptors);
-  
-  void TransformBody(DSGraph &g, PA::FuncInfo &fi,
-                     std::multimap<AllocaInst*, Instruction*> &poolUses,
-                     std::multimap<AllocaInst*, CallInst*> &poolFrees,
-                     Function &F);
-
-  /// InitializeAndDestroyPools - This inserts calls to poolinit and pooldestroy
-  /// into the function to initialize and destroy the pools in the NodesToPA
-  /// list.
-  void InitializeAndDestroyPools(Function &F,
-                                 const std::vector<const DSNode*> &NodesToPA,
-                      std::map<const DSNode*, Value*> &PoolDescriptors,
-                      std::multimap<AllocaInst*, Instruction*> &PoolUses,
-                      std::multimap<AllocaInst*, CallInst*> &PoolFrees);
-
-  void InitializeAndDestroyPool(Function &F, const DSNode *Pool,
-                            std::map<const DSNode*, Value*> &PoolDescriptors,
-                            std::multimap<AllocaInst*, Instruction*> &PoolUses,
-                            std::multimap<AllocaInst*, CallInst*> &PoolFrees);
-
-  void CalculateLivePoolFreeBlocks(std::set<BasicBlock*> &LiveBlocks,Value *PD);
-};
-
-
-/// PoolAllocatePassAllPools - This class is the same as the pool allocator,
-/// except that it passes pool descriptors into functions that do not do
-/// allocations or deallocations.  This is needed by the pointer compression
-/// pass, which requires a pool descriptor to be available for a pool if any
-/// load or store to that pool is performed.
-struct PoolAllocatePassAllPools : public PoolAllocate {
-  PoolAllocatePassAllPools() : PoolAllocate(true) {}
-};
-
-}
-
-#endif
diff --git a/poolalloc/include/poolalloc/Support/MallocAllocator.h b/poolalloc/include/poolalloc/Support/MallocAllocator.h
deleted file mode 100644
index ae3dbac..0000000
--- a/poolalloc/include/poolalloc/Support/MallocAllocator.h
+++ /dev/null
@@ -1,93 +0,0 @@
-//===-- llvm/Support/MallocAllocator.h --------------------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines MallocAllocator class, an STL compatible allocator which
-// just uses malloc/free to get and release memory.  The default allocator uses
-// the STL pool allocator runtime library, this explicitly avoids it.
-//
-// This file is used for variety of purposes, including the pool allocator
-// project and testing, regardless of whether or not it's used directly in the
-// LLVM code, so don't delete this from CVS if you think it's unused!
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MALLOCALLOCATOR_H
-#define LLVM_SUPPORT_MALLOCALLOCATOR_H
-
-#include <cstdlib>
-#include <memory>
-
-namespace llvm {
-
-template<typename T>
-struct MallocAllocator {
-  typedef size_t size_type;
-  typedef ptrdiff_t difference_type;
-  typedef T* pointer;
-  typedef const T* const_pointer;
-  typedef T& reference;
-  typedef const T& const_reference;
-  typedef T value_type;
-  template <class U> struct rebind {
-    typedef MallocAllocator<U> other;
-  };
-
-  template<typename R>
-  MallocAllocator(const MallocAllocator<R> &) {}
-  MallocAllocator() {}
-
-  pointer address(reference x) const { return &x; }
-  const_pointer address(const_reference x) const { return &x; }
-  size_type max_size() const { return ~0 / sizeof(T); }
-  
-  static pointer allocate(size_t n, void* hint = 0) {
-    return static_cast<pointer>(malloc(n*sizeof(T)));
-  }
-
-  static void deallocate(pointer p, size_t n) {
-    free(static_cast<void*>(p));
-  }
-
-  void construct(pointer p, const T &val) {
-    new(static_cast<void*>(p)) T(val);
-  }
-  void destroy(pointer p) {
-    p->~T();
-  }
-};
-
-template<typename T>
-inline bool operator==(const MallocAllocator<T> &, const MallocAllocator<T> &) {
-  return true;
-}
-template<typename T>
-inline bool operator!=(const MallocAllocator<T>&, const MallocAllocator<T>&) {
-  return false;
-}
-} // End llvm namespace
-
-/*
- * This specialization was used for optimization earlier, but doesn't appear
- * to work with newer versions of GCC, Linux or otherwise.
- *
- * This can be re-enabled if desired, but by default, it won't be included.
- */ 
-#if 0
-namespace std {
-  template<typename Type, typename Type2>
-  struct _Alloc_traits<Type, ::llvm::MallocAllocator<Type2> > {
-    static const bool _S_instanceless = true;
-    typedef ::llvm::MallocAllocator<Type> base_alloc_type;
-    typedef ::llvm::MallocAllocator<Type> _Alloc_type;
-    typedef ::llvm::MallocAllocator<Type> allocator_type;
-  };
-}
-#endif
-
-#endif
diff --git a/poolalloc/lib/DSA/BottomUpClosure.cpp b/poolalloc/lib/DSA/BottomUpClosure.cpp
deleted file mode 100644
index 99deb65..0000000
--- a/poolalloc/lib/DSA/BottomUpClosure.cpp
+++ /dev/null
@@ -1,536 +0,0 @@
-//===- BottomUpClosure.cpp - Compute bottom-up interprocedural closure ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the BUDataStructures class, which represents the
-// Bottom-Up Interprocedural closure of the data structure graph over the
-// program.  This is useful for applications like pool allocation, but **not**
-// applications like alias analysis.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "bu_dsa"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Module.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-using namespace llvm;
-
-namespace {
-  STATISTIC (MaxSCC, "Maximum SCC Size in Call Graph");
-  STATISTIC (NumBUInlines, "Number of graphs inlined");
-  STATISTIC (NumCallEdges, "Number of 'actual' call edges");
-
-  RegisterPass<BUDataStructures>
-  X("dsa-bu", "Bottom-up Data Structure Analysis");
-}
-
-char BUDataStructures::ID;
-
-// run - Calculate the bottom up data structure graphs for each function in the
-// program.
-//
-bool BUDataStructures::runOnModule(Module &M) {
-  StdLibDataStructures &LocalDSA = getAnalysis<StdLibDataStructures>();
-  setGraphSource(&LocalDSA);
-  setTargetData(LocalDSA.getTargetData());
-  setGraphClone(false);
-  GlobalECs = LocalDSA.getGlobalECs();
-
-  GlobalsGraph = new DSGraph(LocalDSA.getGlobalsGraph(), GlobalECs);
-  GlobalsGraph->setPrintAuxCalls();
-
-  IndCallGraphMap = new std::map<std::vector<Function*>,
-                           std::pair<DSGraph*, std::vector<DSNodeHandle> > >();
-
-  std::vector<Function*> Stack;
-  hash_map<Function*, unsigned> ValMap;
-  unsigned NextID = 1;
-
-  Function *MainFunc = M.getFunction("main");
-  if (MainFunc)
-    calculateGraphs(MainFunc, Stack, NextID, ValMap);
-
-  // Calculate the graphs for any functions that are unreachable from main...
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration() && !DSInfo.count(I)) {
-      if (MainFunc)
-        DOUT << "*** BU: Function unreachable from main: "
-             << I->getName() << "\n";
-      calculateGraphs(I, Stack, NextID, ValMap);     // Calculate all graphs.
-    }
-
-  // If we computed any temporary indcallgraphs, free them now.
-  for (std::map<std::vector<Function*>,
-         std::pair<DSGraph*, std::vector<DSNodeHandle> > >::iterator I =
-         IndCallGraphMap->begin(), E = IndCallGraphMap->end(); I != E; ++I) {
-    I->second.second.clear();  // Drop arg refs into the graph.
-    delete I->second.first;
-  }
-  delete IndCallGraphMap;
-
-  // At the end of the bottom-up pass, the globals graph becomes complete.
-  // FIXME: This is not the right way to do this, but it is sorta better than
-  // nothing!  In particular, externally visible globals and unresolvable call
-  // nodes at the end of the BU phase should make things that they point to
-  // incomplete in the globals graph.
-  //
-  GlobalsGraph->removeTriviallyDeadNodes();
-  GlobalsGraph->maskIncompleteMarkers();
-
-  // Mark external globals incomplete.
-  GlobalsGraph->markIncompleteNodes(DSGraph::IgnoreGlobals);
-
-  formGlobalECs();
-
-  // Merge the globals variables (not the calls) from the globals graph back
-  // into the main function's graph so that the main function contains all of
-  // the information about global pools and GV usage in the program.
-  if (MainFunc && !MainFunc->isDeclaration()) {
-    DSGraph &MainGraph = getOrCreateGraph(MainFunc);
-    const DSGraph &GG = *MainGraph.getGlobalsGraph();
-    ReachabilityCloner RC(MainGraph, GG,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-
-    // Clone the global nodes into this graph.
-    for (DSScalarMap::global_iterator I = GG.getScalarMap().global_begin(),
-           E = GG.getScalarMap().global_end(); I != E; ++I)
-      if (isa<GlobalVariable>(*I))
-        RC.getClonedNH(GG.getNodeForValue(*I));
-
-    MainGraph.maskIncompleteMarkers();
-    MainGraph.markIncompleteNodes(DSGraph::MarkFormalArgs |
-                                  DSGraph::IgnoreGlobals);
-  }
-
-  NumCallEdges += ActualCallees.size();
-
-  return false;
-}
-
-static void GetAllCallees(const DSCallSite &CS,
-                          std::vector<Function*> &Callees) {
-  if (CS.isDirectCall()) {
-    Callees.push_back(CS.getCalleeFunc());
-  } else if (!CS.getCalleeNode()->isIncompleteNode()) {
-    // Get all callees.
-    CS.getCalleeNode()->addFullFunctionList(Callees);
-  }
-}
-
-/// GetAllAuxCallees - Return a list containing all of the resolvable callees in
-/// the aux list for the specified graph in the Callees vector.
-static void GetAllAuxCallees(DSGraph &G, std::vector<Function*> &Callees) {
-  Callees.clear();
-  for (DSGraph::afc_iterator I = G.afc_begin(), E = G.afc_end(); I != E; ++I)
-    GetAllCallees(*I, Callees);
-}
-
-unsigned BUDataStructures::calculateGraphs(Function *F,
-                                           std::vector<Function*> &Stack,
-                                           unsigned &NextID,
-                                           hash_map<Function*, unsigned> &ValMap) {
-  assert(!ValMap.count(F) && "Shouldn't revisit functions!");
-  unsigned Min = NextID++, MyID = Min;
-  ValMap[F] = Min;
-  Stack.push_back(F);
-
-  DSGraph &Graph = getOrCreateGraph(F);
-
-  // Find all callee functions.
-  std::vector<Function*> CalleeFunctions;
-  GetAllAuxCallees(Graph, CalleeFunctions);
-
-  // The edges out of the current node are the call site targets...
-  for (unsigned i = 0, e = CalleeFunctions.size(); i != e; ++i) {
-    Function *Callee = CalleeFunctions[i];
-    unsigned M;
-    // Have we visited the destination function yet?
-    hash_map<Function*, unsigned>::iterator It = ValMap.find(Callee);
-    if (It == ValMap.end())  // No, visit it now.
-      M = calculateGraphs(Callee, Stack, NextID, ValMap);
-    else                    // Yes, get it's number.
-      M = It->second;
-    if (M < Min) Min = M;
-  }
-
-  assert(ValMap[F] == MyID && "SCC construction assumption wrong!");
-  if (Min != MyID)
-    return Min;         // This is part of a larger SCC!
-
-  // If this is a new SCC, process it now.
-  if (Stack.back() == F) {           // Special case the single "SCC" case here.
-    DOUT << "Visiting single node SCC #: " << MyID << " fn: "
-         << F->getName() << "\n";
-    Stack.pop_back();
-    DOUT << "  [BU] Calculating graph for: " << F->getName()<< "\n";
-    calculateGraph(Graph);
-    DOUT << "  [BU] Done inlining: " << F->getName() << " ["
-         << Graph.getGraphSize() << "+" << Graph.getAuxFunctionCalls().size()
-         << "]\n";
-
-    if (MaxSCC < 1) MaxSCC = 1;
-
-    // Should we revisit the graph?  Only do it if there are now new resolvable
-    // callees.
-    GetAllAuxCallees(Graph, CalleeFunctions);
-    if (!CalleeFunctions.empty()) {
-      DOUT << "Recalculating " << F->getName() << " due to new knowledge\n";
-      ValMap.erase(F);
-      return calculateGraphs(F, Stack, NextID, ValMap);
-    } else {
-      ValMap[F] = ~0U;
-    }
-    return MyID;
-
-  } else {
-    // SCCFunctions - Keep track of the functions in the current SCC
-    //
-    std::vector<DSGraph*> SCCGraphs;
-
-    unsigned SCCSize = 1;
-    Function *NF = Stack.back();
-    ValMap[NF] = ~0U;
-    DSGraph &SCCGraph = getDSGraph(*NF);
-
-    // First thing first, collapse all of the DSGraphs into a single graph for
-    // the entire SCC.  Splice all of the graphs into one and discard all of the
-    // old graphs.
-    //
-    while (NF != F) {
-      Stack.pop_back();
-      NF = Stack.back();
-      ValMap[NF] = ~0U;
-
-      DSGraph &NFG = getDSGraph(*NF);
-
-      // Update the Function -> DSG map.
-      for (DSGraph::retnodes_iterator I = NFG.retnodes_begin(),
-             E = NFG.retnodes_end(); I != E; ++I)
-        DSInfo[I->first] = &SCCGraph;
-
-      SCCGraph.spliceFrom(NFG);
-      delete &NFG;
-
-      ++SCCSize;
-    }
-    Stack.pop_back();
-
-    DOUT << "Calculating graph for SCC #: " << MyID << " of size: "
-         << SCCSize << "\n";
-
-    // Compute the Max SCC Size.
-    if (MaxSCC < SCCSize)
-      MaxSCC = SCCSize;
-
-    // Clean up the graph before we start inlining a bunch again...
-    SCCGraph.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-
-    // Now that we have one big happy family, resolve all of the call sites in
-    // the graph...
-    calculateGraph(SCCGraph);
-    DOUT << "  [BU] Done inlining SCC  [" << SCCGraph.getGraphSize()
-         << "+" << SCCGraph.getAuxFunctionCalls().size() << "]\n"
-         << "DONE with SCC #: " << MyID << "\n";
-
-    // We never have to revisit "SCC" processed functions...
-    return MyID;
-  }
-
-  return MyID;  // == Min
-}
-
-
-// releaseMemory - If the pass pipeline is done with this pass, we can release
-// our memory... here...
-//
-void BUDataStructures::releaseMyMemory() {
-  for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
-         E = DSInfo.end(); I != E; ++I) {
-    I->second->getReturnNodes().erase(I->first);
-    if (I->second->getReturnNodes().empty())
-      delete I->second;
-  }
-
-  // Empty map so next time memory is released, data structures are not
-  // re-deleted.
-  DSInfo.clear();
-  delete GlobalsGraph;
-  GlobalsGraph = 0;
-}
-
-DSGraph &BUDataStructures::CreateGraphForExternalFunction(const Function &Fn) {
-  Function *F = const_cast<Function*>(&Fn);
-  DSGraph *DSG = new DSGraph(GlobalECs, GlobalsGraph->getTargetData());
-  DSInfo[F] = DSG;
-  DSG->setGlobalsGraph(GlobalsGraph);
-  DSG->setPrintAuxCalls();
-
-  // Add function to the graph.
-  DSG->getReturnNodes().insert(std::make_pair(F, DSNodeHandle()));
-
-  if (F->getName() == "free") { // Taking the address of free.
-
-    // Free should take a single pointer argument, mark it as heap memory.
-    DSNodeHandle N(new DSNode(0, DSG));
-    N.getNode()->setHeapMarker();
-    DSG->getNodeForValue(F->arg_begin()).mergeWith(N);
-
-  } else {
-    cerr << "Unrecognized external function: " << F->getName() << "\n";
-    abort();
-  }
-
-  return *DSG;
-}
-
-void BUDataStructures::calculateGraph(DSGraph &Graph) {
-  // If this graph contains the main function, clone the globals graph into this
-  // graph before we inline callees and other fun stuff.
-  bool ContainsMain = false;
-  DSGraph::ReturnNodesTy &ReturnNodes = Graph.getReturnNodes();
-
-  for (DSGraph::ReturnNodesTy::iterator I = ReturnNodes.begin(),
-         E = ReturnNodes.end(); I != E; ++I)
-    if (I->first->hasExternalLinkage() && I->first->getName() == "main") {
-      ContainsMain = true;
-      break;
-    }
-
-  // If this graph contains main, copy the contents of the globals graph over.
-  // Note that this is *required* for correctness.  If a callee contains a use
-  // of a global, we have to make sure to link up nodes due to global-argument
-  // bindings.
-  if (ContainsMain) {
-    const DSGraph &GG = *Graph.getGlobalsGraph();
-    ReachabilityCloner RC(Graph, GG,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-
-    // Clone the global nodes into this graph.
-    for (DSScalarMap::global_iterator I = GG.getScalarMap().global_begin(),
-           E = GG.getScalarMap().global_end(); I != E; ++I)
-      if (isa<GlobalVariable>(*I))
-        RC.getClonedNH(GG.getNodeForValue(*I));
-  }
-
-
-  // Move our call site list into TempFCs so that inline call sites go into the
-  // new call site list and doesn't invalidate our iterators!
-  std::list<DSCallSite> TempFCs;
-  std::list<DSCallSite> &AuxCallsList = Graph.getAuxFunctionCalls();
-  TempFCs.swap(AuxCallsList);
-
-  bool Printed = false;
-  std::vector<Function*> CalledFuncs;
-  while (!TempFCs.empty()) {
-    DSCallSite &CS = *TempFCs.begin();
-
-    CalledFuncs.clear();
-
-    // Fast path for noop calls.  Note that we don't care about merging globals
-    // in the callee with nodes in the caller here.
-    if (CS.getRetVal().isNull() && CS.getNumPtrArgs() == 0) {
-      TempFCs.erase(TempFCs.begin());
-      continue;
-    }
-
-    GetAllCallees(CS, CalledFuncs);
-
-    if (CalledFuncs.empty()) {
-      // Remember that we could not resolve this yet!
-      AuxCallsList.splice(AuxCallsList.end(), TempFCs, TempFCs.begin());
-      continue;
-    } else {
-      DSGraph *GI;
-      Instruction *TheCall = CS.getCallSite().getInstruction();
-
-      if (CalledFuncs.size() == 1) {
-        Function *Callee = CalledFuncs[0];
-        ActualCallees.insert(std::make_pair(TheCall, Callee));
-
-        // Get the data structure graph for the called function.
-        GI = &getDSGraph(*Callee);  // Graph to inline
-        DOUT << "    Inlining graph for " << Callee->getName()
-             << "[" << GI->getGraphSize() << "+"
-             << GI->getAuxFunctionCalls().size() << "] into '"
-             << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
-             << Graph.getAuxFunctionCalls().size() << "]\n";
-        Graph.mergeInGraph(CS, *Callee, *GI,
-                           DSGraph::StripAllocaBit|DSGraph::DontCloneCallNodes);
-        ++NumBUInlines;
-      } else {
-        if (!Printed)
-          DEBUG(std::cerr << "In Fns: " << Graph.getFunctionNames() << "\n");
-          DEBUG(std::cerr << "  calls " << CalledFuncs.size()
-                  << " fns from site: " << CS.getCallSite().getInstruction()
-                  << "  " << *CS.getCallSite().getInstruction());
-        DEBUG(std::cerr << "   Fns =");
-        unsigned NumPrinted = 0;
-
-        for (std::vector<Function*>::iterator I = CalledFuncs.begin(),
-               E = CalledFuncs.end(); I != E; ++I) {
-          if (NumPrinted++ < 8) cerr << " " << (*I)->getName();
-
-          // Add the call edges to the call graph.
-          ActualCallees.insert(std::make_pair(TheCall, *I));
-        }
-        cerr << "\n";
-
-        // See if we already computed a graph for this set of callees.
-        std::sort(CalledFuncs.begin(), CalledFuncs.end());
-        std::pair<DSGraph*, std::vector<DSNodeHandle> > &IndCallGraph =
-          (*IndCallGraphMap)[CalledFuncs];
-
-        if (IndCallGraph.first == 0) {
-          std::vector<Function*>::iterator I = CalledFuncs.begin(),
-            E = CalledFuncs.end();
-
-          // Start with a copy of the first graph.
-          GI = IndCallGraph.first = new DSGraph(getDSGraph(**I), GlobalECs);
-          GI->setGlobalsGraph(Graph.getGlobalsGraph());
-          std::vector<DSNodeHandle> &Args = IndCallGraph.second;
-
-          // Get the argument nodes for the first callee.  The return value is
-          // the 0th index in the vector.
-          GI->getFunctionArgumentsForCall(*I, Args);
-
-          // Merge all of the other callees into this graph.
-          for (++I; I != E; ++I) {
-            // If the graph already contains the nodes for the function, don't
-            // bother merging it in again.
-            if (!GI->containsFunction(*I)) {
-              GI->cloneInto(getDSGraph(**I));
-              ++NumBUInlines;
-            }
-
-            std::vector<DSNodeHandle> NextArgs;
-            GI->getFunctionArgumentsForCall(*I, NextArgs);
-            unsigned i = 0, e = Args.size();
-            for (; i != e; ++i) {
-              if (i == NextArgs.size()) break;
-              Args[i].mergeWith(NextArgs[i]);
-            }
-            for (e = NextArgs.size(); i != e; ++i)
-              Args.push_back(NextArgs[i]);
-          }
-
-          // Clean up the final graph!
-          GI->removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-        } else {
-          cerr << "***\n*** RECYCLED GRAPH ***\n***\n";
-        }
-
-        GI = IndCallGraph.first;
-
-        // Merge the unified graph into this graph now.
-        DOUT << "    Inlining multi callee graph "
-             << "[" << GI->getGraphSize() << "+"
-             << GI->getAuxFunctionCalls().size() << "] into '"
-             << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
-             << Graph.getAuxFunctionCalls().size() << "]\n";
-
-        Graph.mergeInGraph(CS, IndCallGraph.second, *GI,
-                           DSGraph::StripAllocaBit |
-                           DSGraph::DontCloneCallNodes);
-        ++NumBUInlines;
-      }
-    }
-    TempFCs.erase(TempFCs.begin());
-  }
-
-  // Recompute the Incomplete markers
-  Graph.maskIncompleteMarkers();
-  Graph.markIncompleteNodes(DSGraph::MarkFormalArgs);
-
-  // Delete dead nodes.  Treat globals that are unreachable but that can
-  // reach live nodes as live.
-  Graph.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-
-  // When this graph is finalized, clone the globals in the graph into the
-  // globals graph to make sure it has everything, from all graphs.
-  DSScalarMap &MainSM = Graph.getScalarMap();
-  ReachabilityCloner RC(*GlobalsGraph, Graph, DSGraph::StripAllocaBit);
-
-  // Clone everything reachable from globals in the function graph into the
-  // globals graph.
-  for (DSScalarMap::global_iterator I = MainSM.global_begin(),
-         E = MainSM.global_end(); I != E; ++I)
-    RC.getClonedNH(MainSM[*I]);
-
-  //Graph.writeGraphToFile(cerr, "bu_" + F.getName());
-}
-
-static const Function *getFnForValue(const Value *V) {
-  if (const Instruction *I = dyn_cast<Instruction>(V))
-    return I->getParent()->getParent();
-  else if (const Argument *A = dyn_cast<Argument>(V))
-    return A->getParent();
-  else if (const BasicBlock *BB = dyn_cast<BasicBlock>(V))
-    return BB->getParent();
-  return 0;
-}
-
-/// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
-/// These correspond to the interfaces defined in the AliasAnalysis class.
-void BUDataStructures::deleteValue(Value *V) {
-  if (const Function *F = getFnForValue(V)) {  // Function local value?
-    // If this is a function local value, just delete it from the scalar map!
-    getDSGraph(*F).getScalarMap().eraseIfExists(V);
-    return;
-  }
-
-  if (Function *F = dyn_cast<Function>(V)) {
-    assert(getDSGraph(*F).getReturnNodes().size() == 1 &&
-           "cannot handle scc's");
-    delete DSInfo[F];
-    DSInfo.erase(F);
-    return;
-  }
-
-  assert(!isa<GlobalVariable>(V) && "Do not know how to delete GV's yet!");
-}
-
-void BUDataStructures::copyValue(Value *From, Value *To) {
-  if (From == To) return;
-  if (const Function *F = getFnForValue(From)) {  // Function local value?
-    // If this is a function local value, just delete it from the scalar map!
-    getDSGraph(*F).getScalarMap().copyScalarIfExists(From, To);
-    return;
-  }
-
-  if (Function *FromF = dyn_cast<Function>(From)) {
-    Function *ToF = cast<Function>(To);
-    assert(!DSInfo.count(ToF) && "New Function already exists!");
-    DSGraph *NG = new DSGraph(getDSGraph(*FromF), GlobalECs);
-    DSInfo[ToF] = NG;
-    assert(NG->getReturnNodes().size() == 1 && "Cannot copy SCC's yet!");
-
-    // Change the Function* is the returnnodes map to the ToF.
-    DSNodeHandle Ret = NG->retnodes_begin()->second;
-    NG->getReturnNodes().clear();
-    NG->getReturnNodes()[ToF] = Ret;
-    return;
-  }
-
-  if (const Function *F = getFnForValue(To)) {
-    DSGraph &G = getDSGraph(*F);
-    G.getScalarMap().copyScalarIfExists(From, To);
-    return;
-  }
-
-  cerr << *From;
-  cerr << *To;
-  assert(0 && "Do not know how to copy this yet!");
-  abort();
-}
diff --git a/poolalloc/lib/DSA/CallTargets.cpp b/poolalloc/lib/DSA/CallTargets.cpp
deleted file mode 100644
index 75a2aa7..0000000
--- a/poolalloc/lib/DSA/CallTargets.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//=- lib/Analysis/IPA/CallTargets.cpp - Resolve Call Targets --*- C++ -*-=====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass uses DSA to map targets of all calls, and reports on if it
-// thinks it knows all targets of a given call.
-//
-// Loop over all callsites, and lookup the DSNode for that site.  Pull the
-// Functions from the node as callees.
-// This is essentially a utility pass to simplify later passes that only depend
-// on call sites and callees to operate (such as a devirtualizer).
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Instructions.h"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "dsa/CallTargets.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/Constants.h"
-#include <ostream>
-using namespace llvm;
-
-namespace {
-  STATISTIC (DirCall, "Number of direct calls");
-  STATISTIC (IndCall, "Number of indirect calls");
-  STATISTIC (CompleteInd, "Number of complete indirect calls");
-  STATISTIC (CompleteEmpty, "Number of complete empty calls");
-
-  RegisterPass<CallTargetFinder> X("calltarget","Find Call Targets (uses DSA)");
-}
-
-char CallTargetFinder::ID;
-
-void CallTargetFinder::findIndTargets(Module &M)
-{
-  TDDataStructures* T = &getAnalysis<TDDataStructures>();
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration())
-      for (Function::iterator F = I->begin(), FE = I->end(); F != FE; ++F)
-        for (BasicBlock::iterator B = F->begin(), BE = F->end(); B != BE; ++B)
-          if (isa<CallInst>(B) || isa<InvokeInst>(B)) {
-            CallSite cs = CallSite::get(B);
-            AllSites.push_back(cs);
-            if (!cs.getCalledFunction()) {
-              IndCall++;
-              DSNode* N = T->getDSGraph(*cs.getCaller())
-                .getNodeForValue(cs.getCalledValue()).getNode();
-              N->addFullFunctionList(IndMap[cs]);
-              if (N->isCompleteNode() && IndMap[cs].size()) {
-                CompleteSites.insert(cs);
-                ++CompleteInd;
-              } 
-              if (N->isCompleteNode() && !IndMap[cs].size()) {
-                ++CompleteEmpty;
-                cerr << "Call site empty: '"
-                     << cs.getInstruction()->getName() 
-                     << "' In '"
-                     << cs.getInstruction()->getParent()->getParent()->getName()
-                     << "'\n";
-              }
-            } else {
-              ++DirCall;
-              IndMap[cs].push_back(cs.getCalledFunction());
-              CompleteSites.insert(cs);
-            }
-          }
-}
-
-void CallTargetFinder::print(std::ostream &O, const Module *M) const
-{
-  return;
-  O << "[* = incomplete] CS: func list\n";
-  for (std::map<CallSite, std::vector<Function*> >::const_iterator ii =
-       IndMap.begin(),
-         ee = IndMap.end(); ii != ee; ++ii) {
-    if (!ii->first.getCalledFunction()) { //only print indirect
-      if (!isComplete(ii->first)) {
-        O << "* ";
-        CallSite cs = ii->first;
-        cs.getInstruction()->dump();
-        O << cs.getInstruction()->getParent()->getParent()->getName() << " "
-          << cs.getInstruction()->getName() << " ";
-      }
-      O << ii->first.getInstruction() << ":";
-      for (std::vector<Function*>::const_iterator i = ii->second.begin(),
-             e = ii->second.end(); i != e; ++i) {
-        O << " " << (*i)->getName();
-      }
-      O << "\n";
-    }
-  }
-}
-
-bool CallTargetFinder::runOnModule(Module &M) {
-  findIndTargets(M);
-  return false;
-}
-
-void CallTargetFinder::getAnalysisUsage(AnalysisUsage &AU) const {
-  AU.setPreservesAll();
-  AU.addRequired<TDDataStructures>();
-}
-
-std::vector<Function*>::iterator CallTargetFinder::begin(CallSite cs) {
-  return IndMap[cs].begin();
-}
-
-std::vector<Function*>::iterator CallTargetFinder::end(CallSite cs) {
-  return IndMap[cs].end();
-}
-
-bool CallTargetFinder::isComplete(CallSite cs) const {
-  return CompleteSites.find(cs) != CompleteSites.end();
-}
-
-std::list<CallSite>::iterator CallTargetFinder::cs_begin() {
-  return AllSites.begin();
-}
-
-std::list<CallSite>::iterator CallTargetFinder::cs_end() {
-  return AllSites.end();
-}
diff --git a/poolalloc/lib/DSA/CompleteBottomUp.cpp b/poolalloc/lib/DSA/CompleteBottomUp.cpp
deleted file mode 100644
index 91a5018..0000000
--- a/poolalloc/lib/DSA/CompleteBottomUp.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-//===- CompleteBottomUp.cpp - Complete Bottom-Up Data Structure Graphs ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is the exact same as the bottom-up graphs, but we use take a completed
-// call graph and inline all indirect callees into their callers graphs, making
-// the result more useful for things like pool allocation.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "cbudatastructure"
-#include "dsa/DataStructure.h"
-#include "llvm/Module.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/ADT/SCCIterator.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/STLExtras.h"
-using namespace llvm;
-
-namespace {
-  RegisterPass<CompleteBUDataStructures>
-  X("cbudatastructure", "'Complete' Bottom-up Data Structure Analysis");
-  STATISTIC (NumCBUInlines, "Number of graphs inlined");
-}
-
-char CompleteBUDataStructures::ID;
-
-// run - Calculate the bottom up data structure graphs for each function in the
-// program.
-//
-bool CompleteBUDataStructures::runOnModule(Module &M) {
-  BUDataStructures &BU = getAnalysis<BUDataStructures>();
-  GlobalECs = BU.getGlobalECs();
-  GlobalsGraph = new DSGraph(BU.getGlobalsGraph(), GlobalECs);
-  GlobalsGraph->setPrintAuxCalls();
-
-  // Our call graph is the same as the BU data structures call graph
-  ActualCallees = BU.getActualCallees();
-
-  std::vector<DSGraph*> Stack;
-  hash_map<DSGraph*, unsigned> ValMap;
-  unsigned NextID = 1;
-
-  Function *MainFunc = M.getFunction("main");
-  if (MainFunc) {
-    if (!MainFunc->isDeclaration())
-      calculateSCCGraphs(getOrCreateGraph(*MainFunc), Stack, NextID, ValMap);
-  } else {
-    DOUT << "CBU-DSA: No 'main' function found!\n";
-  }
-
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration() && !DSInfo.count(I)) {
-      if (MainFunc) {
-        DOUT << "*** CBU: Function unreachable from main: "
-             << I->getName() << "\n";
-      }
-      calculateSCCGraphs(getOrCreateGraph(*I), Stack, NextID, ValMap);
-    }
-
-  GlobalsGraph->removeTriviallyDeadNodes();
-
-
-  // Merge the globals variables (not the calls) from the globals graph back
-  // into the main function's graph so that the main function contains all of
-  // the information about global pools and GV usage in the program.
-  if (MainFunc && !MainFunc->isDeclaration()) {
-    DSGraph &MainGraph = getOrCreateGraph(*MainFunc);
-    const DSGraph &GG = *MainGraph.getGlobalsGraph();
-    ReachabilityCloner RC(MainGraph, GG,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-
-    // Clone the global nodes into this graph.
-    for (DSScalarMap::global_iterator I = GG.getScalarMap().global_begin(),
-           E = GG.getScalarMap().global_end(); I != E; ++I)
-      if (isa<GlobalVariable>(*I))
-        RC.getClonedNH(GG.getNodeForValue(*I));
-
-    MainGraph.maskIncompleteMarkers();
-    MainGraph.markIncompleteNodes(DSGraph::MarkFormalArgs |
-                                  DSGraph::IgnoreGlobals);
-  }
-
-  return false;
-}
-
-DSGraph &CompleteBUDataStructures::getOrCreateGraph(Function &F) {
-  // Has the graph already been created?
-  DSGraph *&Graph = DSInfo[&F];
-  if (Graph) return *Graph;
-
-  // Copy the BU graph...
-  Graph = new DSGraph(getAnalysis<BUDataStructures>().getDSGraph(F), GlobalECs);
-  Graph->setGlobalsGraph(GlobalsGraph);
-  Graph->setPrintAuxCalls();
-
-  // Make sure to update the DSInfo map for all of the functions currently in
-  // this graph!
-  for (DSGraph::retnodes_iterator I = Graph->retnodes_begin();
-       I != Graph->retnodes_end(); ++I)
-    DSInfo[I->first] = Graph;
-
-  return *Graph;
-}
-
-
-
-unsigned CompleteBUDataStructures::calculateSCCGraphs(DSGraph &FG,
-                                                  std::vector<DSGraph*> &Stack,
-                                                  unsigned &NextID,
-                                         hash_map<DSGraph*, unsigned> &ValMap) {
-  assert(!ValMap.count(&FG) && "Shouldn't revisit functions!");
-  unsigned Min = NextID++, MyID = Min;
-  ValMap[&FG] = Min;
-  Stack.push_back(&FG);
-
-  // The edges out of the current node are the call site targets...
-  for (DSGraph::fc_iterator CI = FG.fc_begin(), CE = FG.fc_end();
-       CI != CE; ++CI) {
-    Instruction *Call = CI->getCallSite().getInstruction();
-
-    // Loop over all of the actually called functions...
-    callee_iterator I = callee_begin(Call), E = callee_end(Call);
-    for (; I != E && I->first == Call; ++I) {
-      assert(I->first == Call && "Bad callee construction!");
-      if (!I->second->isDeclaration()) {
-        DSGraph &Callee = getOrCreateGraph(*I->second);
-        unsigned M;
-        // Have we visited the destination function yet?
-        hash_map<DSGraph*, unsigned>::iterator It = ValMap.find(&Callee);
-        if (It == ValMap.end())  // No, visit it now.
-          M = calculateSCCGraphs(Callee, Stack, NextID, ValMap);
-        else                    // Yes, get it's number.
-          M = It->second;
-        if (M < Min) Min = M;
-      }
-    }
-  }
-
-  assert(ValMap[&FG] == MyID && "SCC construction assumption wrong!");
-  if (Min != MyID)
-    return Min;         // This is part of a larger SCC!
-
-  // If this is a new SCC, process it now.
-  bool IsMultiNodeSCC = false;
-  while (Stack.back() != &FG) {
-    DSGraph *NG = Stack.back();
-    ValMap[NG] = ~0U;
-
-    FG.cloneInto(*NG);
-
-    // Update the DSInfo map and delete the old graph...
-    for (DSGraph::retnodes_iterator I = NG->retnodes_begin();
-         I != NG->retnodes_end(); ++I)
-      DSInfo[I->first] = &FG;
-
-    // Remove NG from the ValMap since the pointer may get recycled.
-    ValMap.erase(NG);
-    delete NG;
-
-    Stack.pop_back();
-    IsMultiNodeSCC = true;
-  }
-
-  // Clean up the graph before we start inlining a bunch again...
-  if (IsMultiNodeSCC)
-    FG.removeTriviallyDeadNodes();
-
-  Stack.pop_back();
-  processGraph(FG);
-  ValMap[&FG] = ~0U;
-  return MyID;
-}
-
-
-/// processGraph - Process the BU graphs for the program in bottom-up order on
-/// the SCC of the __ACTUAL__ call graph.  This builds "complete" BU graphs.
-void CompleteBUDataStructures::processGraph(DSGraph &G) {
-  hash_set<Instruction*> calls;
-
-  // The edges out of the current node are the call site targets...
-  unsigned i = 0;
-  for (DSGraph::fc_iterator CI = G.fc_begin(), CE = G.fc_end(); CI != CE;
-       ++CI, ++i) {
-    const DSCallSite &CS = *CI;
-    Instruction *TheCall = CS.getCallSite().getInstruction();
-
-    assert(calls.insert(TheCall).second &&
-           "Call instruction occurs multiple times in graph??");
-
-    // Fast path for noop calls.  Note that we don't care about merging globals
-    // in the callee with nodes in the caller here.
-    if (CS.getRetVal().isNull() && CS.getNumPtrArgs() == 0)
-      continue;
-
-    // Loop over all of the potentially called functions...
-    // Inline direct calls as well as indirect calls because the direct
-    // callee may have indirect callees and so may have changed.
-    //
-    callee_iterator I = callee_begin(TheCall),E = callee_end(TheCall);
-    unsigned TNum = 0, Num = 0;
-    DEBUG(Num = std::distance(I, E));
-    for (; I != E; ++I, ++TNum) {
-      assert(I->first == TheCall && "Bad callee construction!");
-      Function *CalleeFunc = I->second;
-      if (!CalleeFunc->isDeclaration()) {
-        // Merge the callee's graph into this graph.  This works for normal
-        // calls or for self recursion within an SCC.
-        DSGraph &GI = getOrCreateGraph(*CalleeFunc);
-        ++NumCBUInlines;
-        G.mergeInGraph(CS, *CalleeFunc, GI,
-                       DSGraph::StripAllocaBit | DSGraph::DontCloneCallNodes |
-                       DSGraph::DontCloneAuxCallNodes);
-        DOUT << "    Inlining graph [" << i << "/"
-             << G.getFunctionCalls().size()-1
-             << ":" << TNum << "/" << Num-1 << "] for "
-             << CalleeFunc->getName() << "["
-             << GI.getGraphSize() << "+" << GI.getAuxFunctionCalls().size()
-             << "] into '" /*<< G.getFunctionNames()*/ << "' ["
-             << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
-             << "]\n";
-      }
-    }
-  }
-
-  // Recompute the Incomplete markers
-  G.maskIncompleteMarkers();
-  G.markIncompleteNodes(DSGraph::MarkFormalArgs);
-
-  // Delete dead nodes.  Treat globals that are unreachable but that can
-  // reach live nodes as live.
-  G.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-}
diff --git a/poolalloc/lib/DSA/DataStructure.cpp b/poolalloc/lib/DSA/DataStructure.cpp
deleted file mode 100644
index 7efe428..0000000
--- a/poolalloc/lib/DSA/DataStructure.cpp
+++ /dev/null
@@ -1,2849 +0,0 @@
-//===- DataStructure.cpp - Implement the core data structure analysis -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the core data structure functionality.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DSGraphTraits.h"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Constants.h"
-#include "llvm/Function.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/Instructions.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/ADT/DepthFirstIterator.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/SCCIterator.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Timer.h"
-#include "llvm/ADT/hash_map"
-
-#include <iostream>
-#include <algorithm>
-using namespace llvm;
-
-#define COLLAPSE_ARRAYS_AGGRESSIVELY 0
-namespace {
-  STATISTIC (NumFolds, "Number of nodes completely folded");
-  STATISTIC (NumCallNodesMerged, "Number of call nodes merged");
-  STATISTIC (NumNodeAllocated  , "Number of nodes allocated");
-  STATISTIC (NumDNE            , "Number of nodes removed by reachability");
-  STATISTIC (NumTrivialDNE     , "Number of nodes trivially removed");
-  STATISTIC (NumTrivialGlobalDNE, "Number of globals trivially removed");
-#ifdef LLVA_KERNEL
-  STATISTIC (LostPools         , "Number of pools lost to DSNode Merge");
-#endif
-  static cl::opt<unsigned>
-  DSAFieldLimit("dsa-field-limit", cl::Hidden,
-                cl::desc("Number of fields to track before collapsing a node"),
-                cl::init(256));
-}
-
-#if 0
-#define TIME_REGION(VARNAME, DESC) \
-   NamedRegionTimer VARNAME(DESC)
-#else
-#define TIME_REGION(VARNAME, DESC)
-#endif
-
-using namespace DS;
-
-/// isForwarding - Return true if this NodeHandle is forwarding to another
-/// one.
-bool DSNodeHandle::isForwarding() const {
-  return N && N->isForwarding();
-}
-
-DSNode *DSNodeHandle::HandleForwarding() const {
-  assert(N->isForwarding() && "Can only be invoked if forwarding!");
-  DEBUG(
-        { //assert not looping
-          DSNode* NH = N;
-          std::set<DSNode*> seen;
-          while(NH && NH->isForwarding()) {
-            assert(seen.find(NH) == seen.end() && "Loop detected");
-            seen.insert(NH);
-            NH = NH->ForwardNH.N;
-          }
-        }
-        );
-  // Handle node forwarding here!
-  DSNode *Next = N->ForwardNH.getNode();  // Cause recursive shrinkage
-  Offset += N->ForwardNH.getOffset();
-
-  if (--N->NumReferrers == 0) {
-    // Removing the last referrer to the node, sever the forwarding link
-    N->stopForwarding();
-  }
-
-  N = Next;
-  N->NumReferrers++;
-  if (N->Size <= Offset) {
-    assert(N->Size <= 1 && "Forwarded to shrunk but not collapsed node?");
-    Offset = 0;
-  }
-  return N;
-}
-
-//===----------------------------------------------------------------------===//
-// DSScalarMap Implementation
-//===----------------------------------------------------------------------===//
-
-DSNodeHandle &DSScalarMap::AddGlobal(GlobalValue *GV) {
-  assert(ValueMap.count(GV) == 0 && "GV already exists!");
-
-  // If the node doesn't exist, check to see if it's a global that is
-  // equated to another global in the program.
-  EquivalenceClasses<GlobalValue*>::iterator ECI = GlobalECs.findValue(GV);
-  if (ECI != GlobalECs.end()) {
-    GlobalValue *Leader = *GlobalECs.findLeader(ECI);
-    if (Leader != GV) {
-      GV = Leader;
-      iterator I = ValueMap.find(GV);
-      if (I != ValueMap.end())
-        return I->second;
-    }
-  }
-
-  // Okay, this is either not an equivalenced global or it is the leader, it
-  // will be inserted into the scalar map now.
-  GlobalSet.insert(GV);
-
-  return ValueMap.insert(std::make_pair(GV, DSNodeHandle())).first->second;
-}
-
-
-//===----------------------------------------------------------------------===//
-// DSNode Implementation
-//===----------------------------------------------------------------------===//
-
-DSNode::DSNode(const Type *T, DSGraph *G)
-  : NumReferrers(0), Size(0), ParentGraph(G), Ty(Type::VoidTy), NodeType(0) {
-  // Add the type entry if it is specified...
-  if (T) mergeTypeInfo(T, 0);
-  if (G) G->addNode(this);
-  ++NumNodeAllocated;
-#if JTC
-std::cerr << "LLVA: Creating (1) DSNode " << this << "\n";
-#endif
-}
-
-// DSNode copy constructor... do not copy over the referrers list!
-DSNode::DSNode(const DSNode &N, DSGraph *G, bool NullLinks)
-  : NumReferrers(0), Size(N.Size), ParentGraph(G),
-    Ty(N.Ty), Globals(N.Globals), NodeType(N.NodeType) {
-  if (!NullLinks) {
-    Links = N.Links;
-  } else
-    Links.resize(N.Links.size()); // Create the appropriate number of null links
-  G->addNode(this);
-  ++NumNodeAllocated;
-#if JTC
-std::cerr << "LLVA: Creating (2) DSNode " << this << "\n";
-#endif
-}
-
-DSNode::~DSNode() {
-  dropAllReferences();
-  assert(hasNoReferrers() && "Referrers to dead node exist!");
-
-#ifdef LLVA_KERNEL
-  //
-  // Remove all references to this node from the Pool Descriptor Map.
-  //
-#if JTC
-  std::cerr << "LLVA: Removing " << this << "\n";
-#endif
-  if (ParentGraph) {
-    hash_map<const DSNode *, MetaPoolHandle*> &pdm=ParentGraph->getPoolDescriptorsMap();
-    pdm.erase (this);
-  }
-#endif
-}
-
-/// getTargetData - Get the target data object used to construct this node.
-///
-const TargetData &DSNode::getTargetData() const {
-  return ParentGraph->getTargetData();
-}
-
-void DSNode::assertOK() const {
-  assert((Ty != Type::VoidTy ||
-          Ty == Type::VoidTy && (Size == 0 ||
-                                 (NodeType & DSNode::ArrayNode))) &&
-         "Node not OK!");
-
-  assert(ParentGraph && "Node has no parent?");
-  const DSScalarMap &SM = ParentGraph->getScalarMap();
-  for (unsigned i = 0, e = Globals.size(); i != e; ++i) {
-    assert(SM.global_count(Globals[i]));
-    assert(SM.find(Globals[i])->second.getNode() == this);
-  }
-}
-
-/// forwardNode - Mark this node as being obsolete, and all references to it
-/// should be forwarded to the specified node and offset.
-///
-void DSNode::forwardNode(DSNode *To, unsigned Offset) {
-  assert(this != To && "Cannot forward a node to itself!");
-  assert(ForwardNH.isNull() && "Already forwarding from this node!");
-  if (To->Size <= 1) Offset = 0;
-  assert((Offset < To->Size || (Offset == To->Size && Offset == 0)) &&
-         "Forwarded offset is wrong!");
-  ForwardNH.setTo(To, Offset);
-  NodeType = DeadNode;
-  Size = 0;
-  Ty = Type::VoidTy;
-
-  // Remove this node from the parent graph's Nodes list.
-  ParentGraph->unlinkNode(this);
-  ParentGraph = 0;
-}
-
-// addGlobal - Add an entry for a global value to the Globals list.  This also
-// marks the node with the 'G' flag if it does not already have it.
-//
-void DSNode::addGlobal(GlobalValue *GV) {
-  // First, check to make sure this is the leader if the global is in an
-  // equivalence class.
-  GV = getParentGraph()->getScalarMap().getLeaderForGlobal(GV);
-
-  // Keep the list sorted.
-  std::vector<GlobalValue*>::iterator I =
-    std::lower_bound(Globals.begin(), Globals.end(), GV);
-
-  if (I == Globals.end() || *I != GV) {
-    Globals.insert(I, GV);
-    NodeType |= GlobalNode;
-  }
-}
-
-// removeGlobal - Remove the specified global that is explicitly in the globals
-// list.
-void DSNode::removeGlobal(GlobalValue *GV) {
-  std::vector<GlobalValue*>::iterator I =
-    std::lower_bound(Globals.begin(), Globals.end(), GV);
-  assert(I != Globals.end() && *I == GV && "Global not in node!");
-  Globals.erase(I);
-}
-
-/// foldNodeCompletely - If we determine that this node has some funny
-/// behavior happening to it that we cannot represent, we fold it down to a
-/// single, completely pessimistic, node.  This node is represented as a
-/// single byte with a single TypeEntry of "void".
-///
-void DSNode::foldNodeCompletely() {
-  if (isNodeCompletelyFolded()) return;  // If this node is already folded...
-
-  ++NumFolds;
-
-  // If this node has a size that is <= 1, we don't need to create a forwarding
-  // node.
-  if (getSize() <= 1) {
-    NodeType |= DSNode::ArrayNode;
-    Ty = Type::VoidTy;
-    Size = 1;
-    assert(Links.size() <= 1 && "Size is 1, but has more links?");
-    Links.resize(1);
-  } else {
-    // Create the node we are going to forward to.  This is required because
-    // some referrers may have an offset that is > 0.  By forcing them to
-    // forward, the forwarder has the opportunity to correct the offset.
-    DSNode *DestNode = new DSNode(0, ParentGraph);
-    DestNode->NodeType = NodeType|DSNode::ArrayNode;
-    DestNode->Ty = Type::VoidTy;
-    DestNode->Size = 1;
-    DestNode->Globals.swap(Globals);
-    
-#if JTC
-    std::cerr << "LLVA: foldNode: " << this << " becomes " << DestNode << "\n";
-#endif
-#ifdef LLVA_KERNEL
-    //Again we have created a new DSNode, we need to fill in the
-    // pool desc map appropriately
-    assert(ParentGraph && "parent graph is not null \n"); 
-    hash_map<const DSNode *, MetaPoolHandle*> &pdm = ParentGraph->getPoolDescriptorsMap();
-    if (pdm.count(this) > 0) {
-      pdm[DestNode] = pdm[this];
-    } else {
-      //do nothing 
-    }
-#endif    
-
-    // Start forwarding to the destination node...
-    forwardNode(DestNode, 0);
-
-
-    if (!Links.empty()) {
-      DestNode->Links.reserve(1);
-
-      DSNodeHandle NH(DestNode);
-      DestNode->Links.push_back(Links[0]);
-
-      // If we have links, merge all of our outgoing links together...
-      for (unsigned i = Links.size()-1; i != 0; --i)
-        NH.getNode()->Links[0].mergeWith(Links[i]);
-      Links.clear();
-    } else {
-      DestNode->Links.resize(1);
-    }
-  }
-}
-
-/// isNodeCompletelyFolded - Return true if this node has been completely
-/// folded down to something that can never be expanded, effectively losing
-/// all of the field sensitivity that may be present in the node.
-///
-bool DSNode::isNodeCompletelyFolded() const {
-  return getSize() == 1 && Ty == Type::VoidTy && isArray();
-}
-
-/// addFullGlobalsList - Compute the full set of global values that are
-/// represented by this node.  Unlike getGlobalsList(), this requires fair
-/// amount of work to compute, so don't treat this method call as free.
-void DSNode::addFullGlobalsList(std::vector<GlobalValue*> &List) const {
-  if (globals_begin() == globals_end()) return;
-
-  EquivalenceClasses<GlobalValue*> &EC = getParentGraph()->getGlobalECs();
-
-  for (globals_iterator I = globals_begin(), E = globals_end(); I != E; ++I) {
-    EquivalenceClasses<GlobalValue*>::iterator ECI = EC.findValue(*I);
-    if (ECI == EC.end())
-      List.push_back(*I);
-    else
-      List.insert(List.end(), EC.member_begin(ECI), EC.member_end());
-  }
-}
-
-/// addFullFunctionList - Identical to addFullGlobalsList, but only return the
-/// functions in the full list.
-void DSNode::addFullFunctionList(std::vector<Function*> &List) const {
-  if (globals_begin() == globals_end()) return;
-
-  EquivalenceClasses<GlobalValue*> &EC = getParentGraph()->getGlobalECs();
-
-  for (globals_iterator I = globals_begin(), E = globals_end(); I != E; ++I) {
-    EquivalenceClasses<GlobalValue*>::iterator ECI = EC.findValue(*I);
-    if (ECI == EC.end()) {
-      if (Function *F = dyn_cast<Function>(*I))
-        List.push_back(F);
-    } else {
-      for (EquivalenceClasses<GlobalValue*>::member_iterator MI =
-             EC.member_begin(ECI), E = EC.member_end(); MI != E; ++MI)
-        if (Function *F = dyn_cast<Function>(*MI))
-          List.push_back(F);
-    }
-  }
-}
-
-namespace {
-  /// TypeElementWalker Class - Used for implementation of physical subtyping...
-  ///
-  class TypeElementWalker {
-    struct StackState {
-      const Type *Ty;
-      unsigned Offset;
-      unsigned Idx;
-      StackState(const Type *T, unsigned Off = 0)
-        : Ty(T), Offset(Off), Idx(0) {}
-    };
-
-    std::vector<StackState> Stack;
-    const TargetData &TD;
-  public:
-    TypeElementWalker(const Type *T, const TargetData &td) : TD(td) {
-      Stack.push_back(T);
-      StepToLeaf();
-    }
-
-    bool isDone() const { return Stack.empty(); }
-    const Type *getCurrentType()   const { return Stack.back().Ty;     }
-    unsigned    getCurrentOffset() const { return Stack.back().Offset; }
-
-    void StepToNextType() {
-      PopStackAndAdvance();
-      StepToLeaf();
-    }
-
-  private:
-    /// PopStackAndAdvance - Pop the current element off of the stack and
-    /// advance the underlying element to the next contained member.
-    void PopStackAndAdvance() {
-      assert(!Stack.empty() && "Cannot pop an empty stack!");
-      Stack.pop_back();
-      while (!Stack.empty()) {
-        StackState &SS = Stack.back();
-        if (const StructType *ST = dyn_cast<StructType>(SS.Ty)) {
-          ++SS.Idx;
-          if (SS.Idx != ST->getNumElements()) {
-            const StructLayout *SL = TD.getStructLayout(ST);
-            SS.Offset +=
-               unsigned(SL->getElementOffset(SS.Idx)-SL->getElementOffset(SS.Idx-1));
-            return;
-          }
-          Stack.pop_back();  // At the end of the structure
-        } else {
-          const ArrayType *AT = cast<ArrayType>(SS.Ty);
-          ++SS.Idx;
-          if (SS.Idx != AT->getNumElements()) {
-            SS.Offset += unsigned(TD.getTypeSize(AT->getElementType()));
-            return;
-          }
-          Stack.pop_back();  // At the end of the array
-        }
-      }
-    }
-
-    /// StepToLeaf - Used by physical subtyping to move to the first leaf node
-    /// on the type stack.
-    void StepToLeaf() {
-      if (Stack.empty()) return;
-      while (!Stack.empty() && !Stack.back().Ty->isFirstClassType()) {
-        StackState &SS = Stack.back();
-        if (const StructType *ST = dyn_cast<StructType>(SS.Ty)) {
-          if (ST->getNumElements() == 0) {
-            assert(SS.Idx == 0);
-            PopStackAndAdvance();
-          } else {
-            // Step into the structure...
-            assert(SS.Idx < ST->getNumElements());
-            const StructLayout *SL = TD.getStructLayout(ST);
-            Stack.push_back(StackState(ST->getElementType(SS.Idx),
-                            SS.Offset+unsigned(SL->getElementOffset(SS.Idx))));
-          }
-        } else {
-          const ArrayType *AT = cast<ArrayType>(SS.Ty);
-          if (AT->getNumElements() == 0) {
-            assert(SS.Idx == 0);
-            PopStackAndAdvance();
-          } else {
-            // Step into the array...
-            assert(SS.Idx < AT->getNumElements());
-            Stack.push_back(StackState(AT->getElementType(),
-                                       SS.Offset+SS.Idx*
-                             unsigned(TD.getTypeSize(AT->getElementType()))));
-          }
-        }
-      }
-    }
-  };
-} // end anonymous namespace
-
-/// ElementTypesAreCompatible - Check to see if the specified types are
-/// "physically" compatible.  If so, return true, else return false.  We only
-/// have to check the fields in T1: T2 may be larger than T1.  If AllowLargerT1
-/// is true, then we also allow a larger T1.
-///
-static bool ElementTypesAreCompatible(const Type *T1, const Type *T2,
-                                      bool AllowLargerT1, const TargetData &TD){
-  TypeElementWalker T1W(T1, TD), T2W(T2, TD);
-
-  while (!T1W.isDone() && !T2W.isDone()) {
-    if (T1W.getCurrentOffset() != T2W.getCurrentOffset())
-      return false;
-
-    const Type *T1 = T1W.getCurrentType();
-    const Type *T2 = T2W.getCurrentType();
-    if (T1 != T2 && !T1->canLosslesslyBitCastTo(T2))
-      return false;
-
-    T1W.StepToNextType();
-    T2W.StepToNextType();
-  }
-
-  return AllowLargerT1 || T1W.isDone();
-}
-
-
-/// mergeTypeInfo - This method merges the specified type into the current node
-/// at the specified offset.  This may update the current node's type record if
-/// this gives more information to the node, it may do nothing to the node if
-/// this information is already known, or it may merge the node completely (and
-/// return true) if the information is incompatible with what is already known.
-///
-/// This method returns true if the node is completely folded, otherwise false.
-///
-bool DSNode::mergeTypeInfo(const Type *NewTy, unsigned Offset,
-                           bool FoldIfIncompatible) {
-  DOUT << "merging " << *NewTy << " at " << Offset << " with " << *Ty << "\n";
-  const TargetData &TD = getTargetData();
-  // Check to make sure the Size member is up-to-date.  Size can be one of the
-  // following:
-  //  Size = 0, Ty = Void: Nothing is known about this node.
-  //  Size = 0, Ty = FnTy: FunctionPtr doesn't have a size, so we use zero
-  //  Size = 1, Ty = Void, Array = 1: The node is collapsed
-  //  Otherwise, sizeof(Ty) = Size
-  //
-  assert(((Size == 0 && Ty == Type::VoidTy && !isArray()) ||
-          (Size == 0 && !Ty->isSized() && !isArray()) ||
-          (Size == 1 && Ty == Type::VoidTy && isArray()) ||
-          (Size == 0 && !Ty->isSized() && !isArray()) ||
-          (TD.getTypeSize(Ty) == Size)) &&
-         "Size member of DSNode doesn't match the type structure!");
-  assert(NewTy != Type::VoidTy && "Cannot merge void type into DSNode!");
-
-  if (Offset == 0 && NewTy == Ty)
-    return false;  // This should be a common case, handle it efficiently
-
-  // Return true immediately if the node is completely folded.
-  if (isNodeCompletelyFolded()) return true;
-
-  // If this is an array type, eliminate the outside arrays because they won't
-  // be used anyway.  This greatly reduces the size of large static arrays used
-  // as global variables, for example.
-  //
-  bool WillBeArray = false;
-  while (const ArrayType *AT = dyn_cast<ArrayType>(NewTy)) {
-    // FIXME: we might want to keep small arrays, but must be careful about
-    // things like: [2 x [10000 x int*]]
-    NewTy = AT->getElementType();
-    WillBeArray = true;
-  }
-
-  // Figure out how big the new type we're merging in is...
-  unsigned NewTySize = NewTy->isSized() ? (unsigned)TD.getTypeSize(NewTy) : 0;
-
-  // Otherwise check to see if we can fold this type into the current node.  If
-  // we can't, we fold the node completely, if we can, we potentially update our
-  // internal state.
-  //
-  if (Ty == Type::VoidTy) {
-    // If this is the first type that this node has seen, just accept it without
-    // question....
-    assert(Offset == 0 && !isArray() &&
-           "Cannot have an offset into a void node!");
-
-    // If this node would have to have an unreasonable number of fields, just
-    // collapse it.  This can occur for fortran common blocks, which have stupid
-    // things like { [100000000 x double], [1000000 x double] }.
-    unsigned NumFields = (NewTySize+DS::PointerSize-1) >> DS::PointerShift;
-    if (NumFields > DSAFieldLimit) {
-      foldNodeCompletely();
-      return true;
-    }
-
-    Ty = NewTy;
-    NodeType &= ~ArrayNode;
-    if (WillBeArray) NodeType |= ArrayNode;
-    Size = NewTySize;
-
-    // Calculate the number of outgoing links from this node.
-    Links.resize(NumFields);
-    return false;
-  }
-
-  // Handle node expansion case here...
-  if (Offset+NewTySize > Size) {
-    // It is illegal to grow this node if we have treated it as an array of
-    // objects...
-    if (isArray()) {
-      if (FoldIfIncompatible) foldNodeCompletely();
-      return true;
-    }
-
-    // If this node would have to have an unreasonable number of fields, just
-    // collapse it.  This can occur for fortran common blocks, which have stupid
-    // things like { [100000000 x double], [1000000 x double] }.
-    unsigned NumFields = (NewTySize+Offset+DS::PointerSize-1) >> DS::PointerShift;
-    if (NumFields > DSAFieldLimit) {
-      foldNodeCompletely();
-      return true;
-    }
-
-    if (Offset) {
-      //handle some common cases:
-      // Ty:    struct { t1, t2, t3, t4, ..., tn}
-      // NewTy: struct { offset, stuff...}
-      // try merge with NewTy: struct {t1, t2, stuff...} if offset lands exactly
-      // on a field in Ty
-      if (isa<StructType>(NewTy) && isa<StructType>(Ty)) {
-        DOUT << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n";
-        const StructType *STy = cast<StructType>(Ty);
-        const StructLayout &SL = *TD.getStructLayout(STy);
-        unsigned i = SL.getElementContainingOffset(Offset);
-        //Either we hit it exactly or give up
-        if (SL.getElementOffset(i) != Offset) {
-          if (FoldIfIncompatible) foldNodeCompletely();
-          return true;
-        }
-        std::vector<const Type*> nt;
-        for (unsigned x = 0; x < i; ++x)
-          nt.push_back(STy->getElementType(x));
-        STy = cast<StructType>(NewTy);
-        nt.insert(nt.end(), STy->element_begin(), STy->element_end());
-        //and merge
-        STy = StructType::get(nt);
-        DOUT << "Trying with: " << *STy << "\n";
-        return mergeTypeInfo(STy, 0);
-      }
-
-      //Ty: struct { t1, t2, t3 ... tn}
-      //NewTy T offset x
-      //try merge with NewTy: struct : {t1, t2, T} if offset lands on a field
-      //in Ty
-      if (isa<StructType>(Ty)) {
-        DOUT << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n";
-        const StructType *STy = cast<StructType>(Ty);
-        const StructLayout &SL = *TD.getStructLayout(STy);
-        unsigned i = SL.getElementContainingOffset(Offset);
-        //Either we hit it exactly or give up
-        if (SL.getElementOffset(i) != Offset) {
-          if (FoldIfIncompatible) foldNodeCompletely();
-          return true;
-        }
-        std::vector<const Type*> nt;
-        for (unsigned x = 0; x < i; ++x)
-          nt.push_back(STy->getElementType(x));
-        nt.push_back(NewTy);
-        //and merge
-        STy = StructType::get(nt);
-        DOUT << "Trying with: " << *STy << "\n";
-        return mergeTypeInfo(STy, 0);
-      }
-
-      assert(0 &&
-             "UNIMP: Trying to merge a growth type into "
-             "offset != 0: Collapsing!");
-      abort();
-      if (FoldIfIncompatible) foldNodeCompletely();
-      return true;
-
-    }
-
-
-    // Okay, the situation is nice and simple, we are trying to merge a type in
-    // at offset 0 that is bigger than our current type.  Implement this by
-    // switching to the new type and then merge in the smaller one, which should
-    // hit the other code path here.  If the other code path decides it's not
-    // ok, it will collapse the node as appropriate.
-    //
-
-    const Type *OldTy = Ty;
-    Ty = NewTy;
-    NodeType &= ~ArrayNode;
-    if (WillBeArray) NodeType |= ArrayNode;
-    Size = NewTySize;
-
-    // Must grow links to be the appropriate size...
-    Links.resize(NumFields);
-
-    // Merge in the old type now... which is guaranteed to be smaller than the
-    // "current" type.
-    return mergeTypeInfo(OldTy, 0);
-  }
-
-  assert(Offset <= Size &&
-         "Cannot merge something into a part of our type that doesn't exist!");
-
-  // Find the section of Ty that NewTy overlaps with... first we find the
-  // type that starts at offset Offset.
-  //
-  unsigned O = 0;
-  const Type *SubType = Ty;
-  while (O < Offset) {
-    assert(Offset-O < TD.getTypeSize(SubType) && "Offset out of range!");
-
-    switch (SubType->getTypeID()) {
-    case Type::StructTyID: {
-      const StructType *STy = cast<StructType>(SubType);
-      const StructLayout &SL = *TD.getStructLayout(STy);
-      unsigned i = SL.getElementContainingOffset(Offset-O);
-
-      // The offset we are looking for must be in the i'th element...
-      SubType = STy->getElementType(i);
-      O += (unsigned)SL.getElementOffset(i);
-      break;
-    }
-    case Type::ArrayTyID: {
-      SubType = cast<ArrayType>(SubType)->getElementType();
-      unsigned ElSize = (unsigned)TD.getTypeSize(SubType);
-      unsigned Remainder = (Offset-O) % ElSize;
-      O = Offset-Remainder;
-      break;
-    }
-    default:
-      if (FoldIfIncompatible) foldNodeCompletely();
-      return true;
-    }
-  }
-
-  assert(O == Offset && "Could not achieve the correct offset!");
-
-  // If we found our type exactly, early exit
-  if (SubType == NewTy) return false;
-
-  // Differing function types don't require us to merge.  They are not values
-  // anyway.
-  if (isa<FunctionType>(SubType) &&
-      isa<FunctionType>(NewTy)) return false;
-
-  unsigned SubTypeSize = SubType->isSized() ?
-       (unsigned)TD.getTypeSize(SubType) : 0;
-
-  // Ok, we are getting desperate now.  Check for physical subtyping, where we
-  // just require each element in the node to be compatible.
-  if (NewTySize <= SubTypeSize && NewTySize && NewTySize < 256 &&
-      SubTypeSize && SubTypeSize < 256 &&
-      ElementTypesAreCompatible(NewTy, SubType, !isArray(), TD))
-    return false;
-
-  // Okay, so we found the leader type at the offset requested.  Search the list
-  // of types that starts at this offset.  If SubType is currently an array or
-  // structure, the type desired may actually be the first element of the
-  // composite type...
-  //
-  unsigned PadSize = SubTypeSize; // Size, including pad memory which is ignored
-  while (SubType != NewTy) {
-    const Type *NextSubType = 0;
-    unsigned NextSubTypeSize = 0;
-    unsigned NextPadSize = 0;
-    switch (SubType->getTypeID()) {
-    case Type::StructTyID: {
-      const StructType *STy = cast<StructType>(SubType);
-      const StructLayout &SL = *TD.getStructLayout(STy);
-      if (STy->getNumElements() > 1)
-        NextPadSize = (unsigned)SL.getElementOffset(1);
-      else
-        NextPadSize = SubTypeSize;
-      NextSubType = STy->getElementType(0);
-      NextSubTypeSize = (unsigned)TD.getTypeSize(NextSubType);
-      break;
-    }
-    case Type::ArrayTyID:
-      NextSubType = cast<ArrayType>(SubType)->getElementType();
-      NextSubTypeSize = (unsigned)TD.getTypeSize(NextSubType);
-      NextPadSize = NextSubTypeSize;
-      break;
-    default: ;
-      // fall out
-    }
-
-    if (NextSubType == 0)
-      break;   // In the default case, break out of the loop
-
-    if (NextPadSize < NewTySize)
-      break;   // Don't allow shrinking to a smaller type than NewTySize
-    SubType = NextSubType;
-    SubTypeSize = NextSubTypeSize;
-    PadSize = NextPadSize;
-  }
-
-  // If we found the type exactly, return it...
-  if (SubType == NewTy)
-    return false;
-
-  // Check to see if we have a compatible, but different type...
-  if (NewTySize == SubTypeSize) {
-    // Check to see if this type is obviously convertible... int -> uint f.e.
-    if (NewTy->canLosslesslyBitCastTo(SubType))
-      return false;
-
-    // Check to see if we have a pointer & integer mismatch going on here,
-    // loading a pointer as a long, for example.
-    //
-    if (SubType->isInteger() && isa<PointerType>(NewTy) ||
-        NewTy->isInteger() && isa<PointerType>(SubType))
-      return false;
-  } else if (NewTySize > SubTypeSize && NewTySize <= PadSize) {
-    // We are accessing the field, plus some structure padding.  Ignore the
-    // structure padding.
-    return false;
-  }
-
-  Module *M = 0;
-  if (getParentGraph()->retnodes_begin() != getParentGraph()->retnodes_end())
-    M = getParentGraph()->retnodes_begin()->first->getParent();
-
-  DOUT << "MergeTypeInfo Folding OrigTy: ";
-  DEBUG(WriteTypeSymbolic(*cerr.stream(), Ty, M) << "\n due to:";
-        WriteTypeSymbolic(*cerr.stream(), NewTy, M) << " @ " << Offset << "!\n"
-                                                    << "SubType: ";
-        WriteTypeSymbolic(*cerr.stream(), SubType, M) << "\n\n");
-
-  if (FoldIfIncompatible) foldNodeCompletely();
-  return true;
-}
-
-
-
-/// addEdgeTo - Add an edge from the current node to the specified node.  This
-/// can cause merging of nodes in the graph.
-///
-void DSNode::addEdgeTo(unsigned Offset, const DSNodeHandle &NH) {
-  if (NH.isNull()) return;       // Nothing to do
-
-  if (isNodeCompletelyFolded())
-    Offset = 0;
-
-  DSNodeHandle &ExistingEdge = getLink(Offset);
-  if (!ExistingEdge.isNull()) {
-    // Merge the two nodes...
-    ExistingEdge.mergeWith(NH);
-  } else {                             // No merging to perform...
-    setLink(Offset, NH);               // Just force a link in there...
-  }
-}
-
-
-/// MergeSortedVectors - Efficiently merge a vector into another vector where
-/// duplicates are not allowed and both are sorted.  This assumes that 'T's are
-/// efficiently copyable and have sane comparison semantics.
-///
-static void MergeSortedVectors(std::vector<GlobalValue*> &Dest,
-                               const std::vector<GlobalValue*> &Src) {
-  // By far, the most common cases will be the simple ones.  In these cases,
-  // avoid having to allocate a temporary vector...
-  //
-  if (Src.empty()) {             // Nothing to merge in...
-    return;
-  } else if (Dest.empty()) {     // Just copy the result in...
-    Dest = Src;
-  } else if (Src.size() == 1) {  // Insert a single element...
-    const GlobalValue *V = Src[0];
-    std::vector<GlobalValue*>::iterator I =
-      std::lower_bound(Dest.begin(), Dest.end(), V);
-    if (I == Dest.end() || *I != Src[0])  // If not already contained...
-      Dest.insert(I, Src[0]);
-  } else if (Dest.size() == 1) {
-    GlobalValue *Tmp = Dest[0];           // Save value in temporary...
-    Dest = Src;                           // Copy over list...
-    std::vector<GlobalValue*>::iterator I =
-      std::lower_bound(Dest.begin(), Dest.end(), Tmp);
-    if (I == Dest.end() || *I != Tmp)     // If not already contained...
-      Dest.insert(I, Tmp);
-
-  } else {
-    // Make a copy to the side of Dest...
-    std::vector<GlobalValue*> Old(Dest);
-
-    // Make space for all of the type entries now...
-    Dest.resize(Dest.size()+Src.size());
-
-    // Merge the two sorted ranges together... into Dest.
-    std::merge(Old.begin(), Old.end(), Src.begin(), Src.end(), Dest.begin());
-
-    // Now erase any duplicate entries that may have accumulated into the
-    // vectors (because they were in both of the input sets)
-    Dest.erase(std::unique(Dest.begin(), Dest.end()), Dest.end());
-  }
-}
-
-void DSNode::mergeGlobals(const std::vector<GlobalValue*> &RHS) {
-  MergeSortedVectors(Globals, RHS);
-}
-
-// MergeNodes - Helper function for DSNode::mergeWith().
-// This function does the hard work of merging two nodes, CurNodeH
-// and NH after filtering out trivial cases and making sure that
-// CurNodeH.offset >= NH.offset.
-//
-// ***WARNING***
-// Since merging may cause either node to go away, we must always
-// use the node-handles to refer to the nodes.  These node handles are
-// automatically updated during merging, so will always provide access
-// to the correct node after a merge.
-//
-void DSNode::MergeNodes(DSNodeHandle& CurNodeH, DSNodeHandle& NH) {
-  assert(CurNodeH.getOffset() >= NH.getOffset() &&
-         "This should have been enforced in the caller.");
-  assert(CurNodeH.getNode()->getParentGraph()==NH.getNode()->getParentGraph() &&
-         "Cannot merge two nodes that are not in the same graph!");
-
-  // Now we know that Offset >= NH.Offset, so convert it so our "Offset" (with
-  // respect to NH.Offset) is now zero.  NOffset is the distance from the base
-  // of our object that N starts from.
-  //
-  unsigned NOffset = CurNodeH.getOffset()-NH.getOffset();
-  unsigned NSize = NH.getNode()->getSize();
-
-  // If the two nodes are of different size, and the smaller node has the array
-  // bit set, collapse!
-  if (NSize != CurNodeH.getNode()->getSize()) {
-#if COLLAPSE_ARRAYS_AGGRESSIVELY
-    if (NSize < CurNodeH.getNode()->getSize()) {
-      if (NH.getNode()->isArray())
-        NH.getNode()->foldNodeCompletely();
-    } else if (CurNodeH.getNode()->isArray()) {
-      NH.getNode()->foldNodeCompletely();
-    }
-#endif
-  }
-#ifdef LLVA_KERNEL
-  DSNode *currNode  = CurNodeH.getNode();
-  DSNode *NNode  = NH.getNode();
-  DSGraph *pGraph =  currNode->getParentGraph();
-  assert((pGraph == NNode->getParentGraph()) && "LLVA_KERNEL : merging nodes in two different graphs?");
-  //get the pooldescriptor map
-  hash_map<const DSNode *, MetaPoolHandle*> &pdm = pGraph->getPoolDescriptorsMap();
-  if (pdm.count(currNode) == 0) {
-    if (pdm.count(NNode) == 0) {
-      //do nothing  (common case)
-    } else {
-      if (pdm[NNode]) {
-#if JTC
-	std::cerr << "LLVA: 1: currNode (" << currNode << ") becomes " << pdm[NNode]->getName() << "(" << NNode << ")\n";
-#endif
-	pdm[currNode] = pdm[NNode];
-      }
-    }
-  } else {
-    if (pdm.count(NNode) == 0) {
-#if 1
-      //
-      // FIXME:
-      //  Verify that this is correct.  I believe it is; it seems to make sense
-      //  since either node can be used after the merge.
-      //
-#if JTC
-std::cerr << "LLVA: MergeNodes: currnode has something, newnode has nothing\n";
-	std::cerr << "LLVA: 2: currNode (" << currNode << ") becomes <no name>" << "(" << NNode << ")\n";
-#endif
-      pdm[NNode] = pdm[currNode];
-#endif
-      //do nothing 
-    } else {
-      if (pdm[currNode] != pdm[NNode]) {
-	//The following is commented because pdm[..] could be null!
-	//std::cerr << "LLVA: OldPool: " << pdm[currNode]->getName() << "("
-        //                       << pdm[currNode] << ") "
-	//          << " NewPool: "      << pdm[NNode]->getName() << "("
-	//                               << pdm[NNode] << ")" << std::endl;
-        pdm[NNode]->merge(pdm[currNode]);
-        /*
-        Value *currN = pdm[currNode]->getMetaPoolValue();
-        Value *NN = pdm[NNode]->getMetaPoolValue();
-        if (currN != NN) {
-          std::cerr << "LLVA: Two Pools for one DSNode\n";
-          currN->replaceAllUsesWith(NN);
-          pdm[currNode]->merge(pdm[NNode]);
-        } else {
-          //The nodes are same
-        }
-        */
-      }
-    }
-  }
-#endif  
-  // Merge the type entries of the two nodes together...
-  if (NH.getNode()->Ty != Type::VoidTy)
-    CurNodeH.getNode()->mergeTypeInfo(NH.getNode()->Ty, NOffset);
-  assert(!CurNodeH.getNode()->isDeadNode());
-
-  // If we are merging a node with a completely folded node, then both nodes are
-  // now completely folded.
-  //
-  if (CurNodeH.getNode()->isNodeCompletelyFolded()) {
-    if (!NH.getNode()->isNodeCompletelyFolded()) {
-      NH.getNode()->foldNodeCompletely();
-      assert(NH.getNode() && NH.getOffset() == 0 &&
-             "folding did not make offset 0?");
-      NOffset = NH.getOffset();
-      NSize = NH.getNode()->getSize();
-      assert(NOffset == 0 && NSize == 1);
-    }
-  } else if (NH.getNode()->isNodeCompletelyFolded()) {
-    CurNodeH.getNode()->foldNodeCompletely();
-    assert(CurNodeH.getNode() && CurNodeH.getOffset() == 0 &&
-           "folding did not make offset 0?");
-    NSize = NH.getNode()->getSize();
-    NOffset = NH.getOffset();
-    assert(NOffset == 0 && NSize == 1);
-  }
-
-  DSNode *N = NH.getNode();
-  if (CurNodeH.getNode() == N || N == 0) return;
-  assert(!CurNodeH.getNode()->isDeadNode());
-
-  // Merge the NodeType information.
-  CurNodeH.getNode()->NodeType |= N->NodeType;
-
-  // Start forwarding to the new node!
-  N->forwardNode(CurNodeH.getNode(), NOffset);
-  assert(!CurNodeH.getNode()->isDeadNode());
-
-  // Make all of the outgoing links of N now be outgoing links of CurNodeH.
-  //
-  for (unsigned i = 0; i < N->getNumLinks(); ++i) {
-    DSNodeHandle &Link = N->getLink(i << DS::PointerShift);
-    if (Link.getNode()) {
-      // Compute the offset into the current node at which to
-      // merge this link.  In the common case, this is a linear
-      // relation to the offset in the original node (with
-      // wrapping), but if the current node gets collapsed due to
-      // recursive merging, we must make sure to merge in all remaining
-      // links at offset zero.
-      unsigned MergeOffset = 0;
-      DSNode *CN = CurNodeH.getNode();
-      if (CN->Size != 1)
-        MergeOffset = ((i << DS::PointerShift)+NOffset) % CN->getSize();
-      CN->addEdgeTo(MergeOffset, Link);
-    }
-  }
-
-  // Now that there are no outgoing edges, all of the Links are dead.
-  N->Links.clear();
-
-  // Merge the globals list...
-  if (!N->Globals.empty()) {
-    CurNodeH.getNode()->mergeGlobals(N->Globals);
-
-    // Delete the globals from the old node...
-    std::vector<GlobalValue*>().swap(N->Globals);
-  }
-}
-
-
-/// mergeWith - Merge this node and the specified node, moving all links to and
-/// from the argument node into the current node, deleting the node argument.
-/// Offset indicates what offset the specified node is to be merged into the
-/// current node.
-///
-/// The specified node may be a null pointer (in which case, we update it to
-/// point to this node).
-///
-void DSNode::mergeWith(const DSNodeHandle &NH, unsigned Offset) {
-#if JTC
-std::cerr << "LLVA: mergeWith: " << this << " becomes " << NH.getNode() << "\n";
-#endif
-  DSNode *N = NH.getNode();
-  if (N == this && NH.getOffset() == Offset)
-    return;  // Noop
-
-  // If the RHS is a null node, make it point to this node!
-  if (N == 0) {
-    NH.mergeWith(DSNodeHandle(this, Offset));
-    return;
-  }
-
-  assert(!N->isDeadNode() && !isDeadNode());
-  assert(!hasNoReferrers() && "Should not try to fold a useless node!");
-
-  if (N == this) {
-    // We cannot merge two pieces of the same node together, collapse the node
-    // completely.
-    DOUT << "Attempting to merge two chunks of the same node together!\n";
-    foldNodeCompletely();
-    return;
-  }
-
-  // If both nodes are not at offset 0, make sure that we are merging the node
-  // at an later offset into the node with the zero offset.
-  //
-  if (Offset < NH.getOffset()) {
-    N->mergeWith(DSNodeHandle(this, Offset), NH.getOffset());
-    return;
-  } else if (Offset == NH.getOffset() && getSize() < N->getSize()) {
-    // If the offsets are the same, merge the smaller node into the bigger node
-    N->mergeWith(DSNodeHandle(this, Offset), NH.getOffset());
-    return;
-  }
-
-  // Ok, now we can merge the two nodes.  Use a static helper that works with
-  // two node handles, since "this" may get merged away at intermediate steps.
-  DSNodeHandle CurNodeH(this, Offset);
-  DSNodeHandle NHCopy(NH);
-  if (CurNodeH.getOffset() >= NHCopy.getOffset())
-    DSNode::MergeNodes(CurNodeH, NHCopy);
-  else
-    DSNode::MergeNodes(NHCopy, CurNodeH);
-}
-
-
-//===----------------------------------------------------------------------===//
-// ReachabilityCloner Implementation
-//===----------------------------------------------------------------------===//
-
-DSNodeHandle ReachabilityCloner::getClonedNH(const DSNodeHandle &SrcNH) {
-  if (SrcNH.isNull()) return DSNodeHandle();
-  const DSNode *SN = SrcNH.getNode();
-
-  DSNodeHandle &NH = NodeMap[SN];
-  if (!NH.isNull()) {   // Node already mapped?
-    DSNode *NHN = NH.getNode();
-    return DSNodeHandle(NHN, NH.getOffset()+SrcNH.getOffset());
-  }
-
-  // If SrcNH has globals and the destination graph has one of the same globals,
-  // merge this node with the destination node, which is much more efficient.
-  if (SN->globals_begin() != SN->globals_end()) {
-    DSScalarMap &DestSM = Dest.getScalarMap();
-    for (DSNode::globals_iterator I = SN->globals_begin(),E = SN->globals_end();
-         I != E; ++I) {
-      GlobalValue *GV = *I;
-      DSScalarMap::iterator GI = DestSM.find(GV);
-      if (GI != DestSM.end() && !GI->second.isNull()) {
-        // We found one, use merge instead!
-        merge(GI->second, Src.getNodeForValue(GV));
-        assert(!NH.isNull() && "Didn't merge node!");
-        DSNode *NHN = NH.getNode();
-        return DSNodeHandle(NHN, NH.getOffset()+SrcNH.getOffset());
-      }
-    }
-  }
-
-  DSNode *DN = new DSNode(*SN, &Dest, true /* Null out all links */);
-  DN->maskNodeTypes(BitsToKeep);
-  NH = DN;
-#if JTC
-std::cerr << "LLVA: getClonedNH: " << SN << " becomes " << DN << "\n";
-#endif
-#if 1
-#ifdef LLVA_KERNEL
-    //Again we have created a new DSNode, we need to fill in the
-    // pool desc map appropriately
-    hash_map<const DSNode *, MetaPoolHandle*> &pdm = Dest.getPoolDescriptorsMap();
-    if (pdm.count(SN) > 0) {
-      pdm[DN] = pdm[SN];
-    } else {
-      //do nothing 
-    }
-#endif    
-#endif
-
-  // Next, recursively clone all outgoing links as necessary.  Note that
-  // adding these links can cause the node to collapse itself at any time, and
-  // the current node may be merged with arbitrary other nodes.  For this
-  // reason, we must always go through NH.
-  DN = 0;
-  for (unsigned i = 0, e = SN->getNumLinks(); i != e; ++i) {
-    const DSNodeHandle &SrcEdge = SN->getLink(i << DS::PointerShift);
-    if (!SrcEdge.isNull()) {
-      const DSNodeHandle &DestEdge = getClonedNH(SrcEdge);
-      // Compute the offset into the current node at which to
-      // merge this link.  In the common case, this is a linear
-      // relation to the offset in the original node (with
-      // wrapping), but if the current node gets collapsed due to
-      // recursive merging, we must make sure to merge in all remaining
-      // links at offset zero.
-      unsigned MergeOffset = 0;
-      DSNode *CN = NH.getNode();
-      if (CN->getSize() != 1)
-        MergeOffset = ((i << DS::PointerShift)+NH.getOffset()) % CN->getSize();
-      CN->addEdgeTo(MergeOffset, DestEdge);
-    }
-  }
-
-  // If this node contains any globals, make sure they end up in the scalar
-  // map with the correct offset.
-  for (DSNode::globals_iterator I = SN->globals_begin(), E = SN->globals_end();
-       I != E; ++I) {
-    GlobalValue *GV = *I;
-    const DSNodeHandle &SrcGNH = Src.getNodeForValue(GV);
-    DSNodeHandle &DestGNH = NodeMap[SrcGNH.getNode()];
-    assert(DestGNH.getNode() == NH.getNode() &&"Global mapping inconsistent");
-    Dest.getNodeForValue(GV).mergeWith(DSNodeHandle(DestGNH.getNode(),
-                                       DestGNH.getOffset()+SrcGNH.getOffset()));
-  }
-  NH.getNode()->mergeGlobals(SN->getGlobalsList());
-
-  return DSNodeHandle(NH.getNode(), NH.getOffset()+SrcNH.getOffset());
-}
-
-void ReachabilityCloner::merge(const DSNodeHandle &NH,
-                               const DSNodeHandle &SrcNH) {
-  if (SrcNH.isNull()) return;  // Noop
-  if (NH.isNull()) {
-    // If there is no destination node, just clone the source and assign the
-    // destination node to be it.
-    NH.mergeWith(getClonedNH(SrcNH));
-    return;
-  }
-
-  // Okay, at this point, we know that we have both a destination and a source
-  // node that need to be merged.  Check to see if the source node has already
-  // been cloned.
-  const DSNode *SN = SrcNH.getNode();
-  DSNodeHandle &SCNH = NodeMap[SN];  // SourceClonedNodeHandle
-  if (!SCNH.isNull()) {   // Node already cloned?
-    DSNode *SCNHN = SCNH.getNode();
-    NH.mergeWith(DSNodeHandle(SCNHN,
-                              SCNH.getOffset()+SrcNH.getOffset()));
-    return;  // Nothing to do!
-  }
-
-  // Okay, so the source node has not already been cloned.  Instead of creating
-  // a new DSNode, only to merge it into the one we already have, try to perform
-  // the merge in-place.  The only case we cannot handle here is when the offset
-  // into the existing node is less than the offset into the virtual node we are
-  // merging in.  In this case, we have to extend the existing node, which
-  // requires an allocation anyway.
-  DSNode *DN = NH.getNode();   // Make sure the Offset is up-to-date
-  if (NH.getOffset() >= SrcNH.getOffset()) {
-    if (!DN->isNodeCompletelyFolded()) {
-      // Make sure the destination node is folded if the source node is folded.
-      if (SN->isNodeCompletelyFolded()) {
-        DN->foldNodeCompletely();
-        DN = NH.getNode();
-      } else if (SN->getSize() != DN->getSize()) {
-        // If the two nodes are of different size, and the smaller node has the
-        // array bit set, collapse!
-#if COLLAPSE_ARRAYS_AGGRESSIVELY
-        if (SN->getSize() < DN->getSize()) {
-          if (SN->isArray()) {
-            DN->foldNodeCompletely();
-            DN = NH.getNode();
-          }
-        } else if (DN->isArray()) {
-          DN->foldNodeCompletely();
-          DN = NH.getNode();
-        }
-#endif
-      }
-
-      // Merge the type entries of the two nodes together...
-      if (SN->getType() != Type::VoidTy && !DN->isNodeCompletelyFolded()) {
-        DN->mergeTypeInfo(SN->getType(), NH.getOffset()-SrcNH.getOffset());
-        DN = NH.getNode();
-      }
-    }
-
-    assert(!DN->isDeadNode());
-
-    // Merge the NodeType information.
-    DN->mergeNodeFlags(SN->getNodeFlags() & BitsToKeep);
-
-    // Before we start merging outgoing links and updating the scalar map, make
-    // sure it is known that this is the representative node for the src node.
-    SCNH = DSNodeHandle(DN, NH.getOffset()-SrcNH.getOffset());
-
-    // If the source node contains any globals, make sure they end up in the
-    // scalar map with the correct offset.
-    if (SN->globals_begin() != SN->globals_end()) {
-      // Update the globals in the destination node itself.
-      DN->mergeGlobals(SN->getGlobalsList());
-
-      // Update the scalar map for the graph we are merging the source node
-      // into.
-      for (DSNode::globals_iterator I = SN->globals_begin(),
-             E = SN->globals_end(); I != E; ++I) {
-        GlobalValue *GV = *I;
-        const DSNodeHandle &SrcGNH = Src.getNodeForValue(GV);
-        DSNodeHandle &DestGNH = NodeMap[SrcGNH.getNode()];
-        assert(DestGNH.getNode()==NH.getNode() &&"Global mapping inconsistent");
-        Dest.getNodeForValue(GV).mergeWith(DSNodeHandle(DestGNH.getNode(),
-                                      DestGNH.getOffset()+SrcGNH.getOffset()));
-      }
-      NH.getNode()->mergeGlobals(SN->getGlobalsList());
-    }
-  } else {
-    // We cannot handle this case without allocating a temporary node.  Fall
-    // back on being simple.
-    DSNode *NewDN = new DSNode(*SN, &Dest, true /* Null out all links */);
-    NewDN->maskNodeTypes(BitsToKeep);
-
-    unsigned NHOffset = NH.getOffset();
-    NH.mergeWith(DSNodeHandle(NewDN, SrcNH.getOffset()));
-
-    assert(NH.getNode() &&
-           (NH.getOffset() > NHOffset ||
-            (NH.getOffset() == 0 && NH.getNode()->isNodeCompletelyFolded())) &&
-           "Merging did not adjust the offset!");
-
-    // Before we start merging outgoing links and updating the scalar map, make
-    // sure it is known that this is the representative node for the src node.
-    SCNH = DSNodeHandle(NH.getNode(), NH.getOffset()-SrcNH.getOffset());
-
-    // If the source node contained any globals, make sure to create entries
-    // in the scalar map for them!
-    for (DSNode::globals_iterator I = SN->globals_begin(),
-           E = SN->globals_end(); I != E; ++I) {
-      GlobalValue *GV = *I;
-      const DSNodeHandle &SrcGNH = Src.getNodeForValue(GV);
-      DSNodeHandle &DestGNH = NodeMap[SrcGNH.getNode()];
-      assert(DestGNH.getNode()==NH.getNode() &&"Global mapping inconsistent");
-      assert(SrcGNH.getNode() == SN && "Global mapping inconsistent");
-      Dest.getNodeForValue(GV).mergeWith(DSNodeHandle(DestGNH.getNode(),
-                                    DestGNH.getOffset()+SrcGNH.getOffset()));
-    }
-  }
-
-#if JTC
-std::cerr << "LLVA: mergeWith: " << SN << " becomes " << DN << "\n";
-#endif
-
-#ifdef LLVA_KERNEL
-  //Here some merge is going on just like in DSNode::merge
-  //I think because of the inplace merging we don't update the pool desc maps
-  //This is modification from DSNode::MergeNodes
-  //Here DN and SN may belong to different graphs
- DN = NH.getNode(); 
-#if 0
-  DSGraph *destGraph =  DN->getParentGraph();
-  DSGraph *srcGraph =  SN->getParentGraph();
-#else
-  DSGraph *destGraph = NH.getNode()->getParentGraph();
-  DSGraph *srcGraph =  SN->getParentGraph();
-#endif
-  if (destGraph && srcGraph) {
-    //get the pooldescriptor map
-    hash_map<const DSNode *, MetaPoolHandle*> &destpdm = destGraph->getPoolDescriptorsMap();
-    hash_map<const DSNode *, MetaPoolHandle*> &srcpdm = srcGraph->getPoolDescriptorsMap();
-    if (destpdm.count(DN) == 0) {
-      if (srcpdm.count(SN) == 0) {
-        //do nothing  (common case)
-      } else {
-        if (srcpdm[SN]) {
-#if JTC
-          std::cerr << "LLVA: DN becomes " << srcpdm[SN]->getName() << std::endl;
-#endif
-          destpdm[DN] = srcpdm[SN];
-        }
-      }
-    } else {
-      if (srcpdm.count(SN) == 0) {
-        srcpdm[SN] = destpdm[DN];
-      } else {
-        if (destpdm[DN] != srcpdm[SN]) {
-          srcpdm[SN]->merge(destpdm[DN]);
-          /*
-          Value *dnv = destpdm[DN]->getMetaPoolValue();
-          Value *snv = srcpdm[SN]->getMetaPoolValue();
-          if (dnv != snv) {
-            DEBUG(std::cerr << "LLVA: Two Pools for one DSNode\n");
-            dnv->replaceAllUsesWith(snv);
-            destpdm[DN]->setMetaPoolValue(snv);
-          }
-          */
-        }
-      }
-    }
-  }
-#endif  
-  // Next, recursively merge all outgoing links as necessary.  Note that
-  // adding these links can cause the destination node to collapse itself at
-  // any time, and the current node may be merged with arbitrary other nodes.
-  // For this reason, we must always go through NH.
-  DN = 0;
-  for (unsigned i = 0, e = SN->getNumLinks(); i != e; ++i) {
-    const DSNodeHandle &SrcEdge = SN->getLink(i << DS::PointerShift);
-    if (!SrcEdge.isNull()) {
-      // Compute the offset into the current node at which to
-      // merge this link.  In the common case, this is a linear
-      // relation to the offset in the original node (with
-      // wrapping), but if the current node gets collapsed due to
-      // recursive merging, we must make sure to merge in all remaining
-      // links at offset zero.
-      DSNode *CN = SCNH.getNode();
-      unsigned MergeOffset =
-        ((i << DS::PointerShift)+SCNH.getOffset()) % CN->getSize();
-
-      DSNodeHandle Tmp = CN->getLink(MergeOffset);
-      if (!Tmp.isNull()) {
-        // Perform the recursive merging.  Make sure to create a temporary NH,
-        // because the Link can disappear in the process of recursive merging.
-        merge(Tmp, SrcEdge);
-      } else {
-        Tmp.mergeWith(getClonedNH(SrcEdge));
-        // Merging this could cause all kinds of recursive things to happen,
-        // culminating in the current node being eliminated.  Since this is
-        // possible, make sure to reaquire the link from 'CN'.
-
-        unsigned MergeOffset = 0;
-        CN = SCNH.getNode();
-        MergeOffset = ((i << DS::PointerShift)+SCNH.getOffset()) %CN->getSize();
-        CN->getLink(MergeOffset).mergeWith(Tmp);
-      }
-    }
-  }
-}
-
-/// mergeCallSite - Merge the nodes reachable from the specified src call
-/// site into the nodes reachable from DestCS.
-void ReachabilityCloner::mergeCallSite(DSCallSite &DestCS,
-                                       const DSCallSite &SrcCS) {
-  merge(DestCS.getRetVal(), SrcCS.getRetVal());
-  unsigned MinArgs = DestCS.getNumPtrArgs();
-  if (SrcCS.getNumPtrArgs() < MinArgs) MinArgs = SrcCS.getNumPtrArgs();
-
-  for (unsigned a = 0; a != MinArgs; ++a)
-    merge(DestCS.getPtrArg(a), SrcCS.getPtrArg(a));
-
-  for (unsigned a = MinArgs, e = SrcCS.getNumPtrArgs(); a != e; ++a)
-    DestCS.addPtrArg(getClonedNH(SrcCS.getPtrArg(a)));
-}
-
-
-//===----------------------------------------------------------------------===//
-// DSCallSite Implementation
-//===----------------------------------------------------------------------===//
-
-// Define here to avoid including iOther.h and BasicBlock.h in DSGraph.h
-Function &DSCallSite::getCaller() const {
-  return *Site.getInstruction()->getParent()->getParent();
-}
-
-void DSCallSite::InitNH(DSNodeHandle &NH, const DSNodeHandle &Src,
-                        ReachabilityCloner &RC) {
-  NH = RC.getClonedNH(Src);
-}
-
-#ifdef LLVA_KERNEL
-// MetaPoolHandle Implementation
-  //The following should go in a cpp file later
-   MetaPoolHandle::MetaPoolHandle(MetaPool *mp, Instruction * Maker) {
-    Rep = mp;
-    Rep->insert(this);
-    Creator = Maker;
-  }
-  const std::string& MetaPoolHandle::getName() {
-    assert(Rep != 0 && "Null meta pool ??\n");
-    return Rep->getName();
-  }
-  Value *MetaPoolHandle::getMetaPoolValue() {
-    assert(Rep != 0 && "Null meta pool ??\n");
-    return Rep->getMetaPoolValue();
-  }
-  void MetaPoolHandle::merge(MetaPoolHandle *other) {
-    //after this operation other points to what this points to .
-    //first replace all uses 
-     Value *dest = getMetaPoolValue();
-     Value *curr = other->getMetaPoolValue();
-     if (dest != curr) {
-       std::cerr << "LLVA: Merging metapools: " << this->Creator->getParent()->getParent()->getName() << " : " << other->Creator->getParent()->getParent()->getName() << "\n"
-                 << "LLVA:   " << *(this->Creator) << "\n"
-                 << "LLVA:   " << *(other->Creator) << "\n";
-       curr->replaceAllUsesWith(dest);
-     }
-   
-     //merge the hash sets in to other
-     hash_set<MetaPoolHandle *> &otherHandleSet = other->getMetaPool()->getHandleSet();
-     hash_set<MetaPoolHandle *>::iterator ohsI = otherHandleSet.begin(), ohsE = otherHandleSet.end();
-     for (; ohsI != ohsE; ++ohsI) {
-     MetaPoolHandle *omph = *ohsI;
-     //now make sure that this omph points to what we point to
-     omph->setMetaPool(Rep);
-     Rep->insert(omph);
-     }
-
-     //now delete others MetaPool
-     //gd     delete other->getMetaPool(); 
-
-     //Assign our metapool to other 
-     other->setMetaPool(Rep);
-}
-
-#endif
-
-//===----------------------------------------------------------------------===//
-// DSGraph Implementation
-//===----------------------------------------------------------------------===//
-
-/// getFunctionNames - Return a space separated list of the name of the
-/// functions in this graph (if any)
-std::string DSGraph::getFunctionNames() const {
-  switch (getReturnNodes().size()) {
-  case 0: return "Globals graph";
-  case 1: return retnodes_begin()->first->getName();
-  default:
-    std::string Return;
-    for (DSGraph::retnodes_iterator I = retnodes_begin();
-         I != retnodes_end(); ++I)
-      Return += I->first->getName() + " ";
-    Return.erase(Return.end()-1, Return.end());   // Remove last space character
-    return Return;
-  }
-}
-
-
-DSGraph::DSGraph(DSGraph &G, EquivalenceClasses<GlobalValue*> &ECs,
-                 unsigned CloneFlags)
-  : GlobalsGraph(0), ScalarMap(ECs), TD(G.TD) {
-  PrintAuxCalls = false;
-  cloneInto(G, CloneFlags);
-}
-
-DSGraph::~DSGraph() {
-  FunctionCalls.clear();
-  AuxFunctionCalls.clear();
-  ScalarMap.clear();
-  ReturnNodes.clear();
-
-  // Drop all intra-node references, so that assertions don't fail...
-  for (node_iterator NI = node_begin(), E = node_end(); NI != E; ++NI)
-    NI->dropAllReferences();
-
-  // Free all of the nodes.
-  Nodes.clear();
-}
-
-// dump - Allow inspection of graph in a debugger.
-void DSGraph::dump() const { print(cerr); }
-
-
-/// remapLinks - Change all of the Links in the current node according to the
-/// specified mapping.
-///
-void DSNode::remapLinks(DSGraph::NodeMapTy &OldNodeMap) {
-  for (unsigned i = 0, e = Links.size(); i != e; ++i)
-    if (DSNode *N = Links[i].getNode()) {
-      DSGraph::NodeMapTy::const_iterator ONMI = OldNodeMap.find(N);
-      if (ONMI != OldNodeMap.end()) {
-        DSNode *ONMIN = ONMI->second.getNode();
-        Links[i].setTo(ONMIN, Links[i].getOffset()+ONMI->second.getOffset());
-      }
-    }
-}
-
-/// addObjectToGraph - This method can be used to add global, stack, and heap
-/// objects to the graph.  This can be used when updating DSGraphs due to the
-/// introduction of new temporary objects.  The new object is not pointed to
-/// and does not point to any other objects in the graph.
-DSNode *DSGraph::addObjectToGraph(Value *Ptr, bool UseDeclaredType) {
-  assert(isa<PointerType>(Ptr->getType()) && "Ptr is not a pointer!");
-  const Type *Ty = cast<PointerType>(Ptr->getType())->getElementType();
-  DSNode *N = new DSNode(UseDeclaredType ? Ty : 0, this);
-  assert(ScalarMap[Ptr].isNull() && "Object already in this graph!");
-  ScalarMap[Ptr] = N;
-
-  if (GlobalValue *GV = dyn_cast<GlobalValue>(Ptr)) {
-    N->addGlobal(GV);
-  } else if (isa<MallocInst>(Ptr)) {
-   N->setHeapMarker();
-  } else if (isa<AllocaInst>(Ptr)) {
-    N->setAllocaMarker();
-  } else {
-    assert(0 && "Illegal memory object input!");
-  }
-  return N;
-}
-
-
-/// cloneInto - Clone the specified DSGraph into the current graph.  The
-/// translated ScalarMap for the old function is filled into the ScalarMap
-/// for the graph, and the translated ReturnNodes map is returned into
-/// ReturnNodes.
-///
-/// The CloneFlags member controls various aspects of the cloning process.
-///
-void DSGraph::cloneInto( DSGraph &G, unsigned CloneFlags) {
-  TIME_REGION(X, "cloneInto");
-  assert(&G != this && "Cannot clone graph into itself!");
-
-  NodeMapTy OldNodeMap;
-
-  // Remove alloca or mod/ref bits as specified...
-  unsigned BitsToClear = ((CloneFlags & StripAllocaBit)? DSNode::AllocaNode : 0)
-    | ((CloneFlags & StripModRefBits)? (DSNode::ModifiedNode | DSNode::ReadNode) : 0)
-    | ((CloneFlags & StripIncompleteBit)? DSNode::IncompleteNode : 0);
-  BitsToClear |= DSNode::DeadNode;  // Clear dead flag...
-
-  for (node_const_iterator I = G.node_begin(), E = G.node_end(); I != E; ++I) {
-    assert(!I->isForwarding() &&
-           "Forward nodes shouldn't be in node list!");
-    DSNode *New = new DSNode(*I, this);
-    New->maskNodeTypes(~BitsToClear);
-    OldNodeMap[I] = New;
-  }
-
-#ifndef NDEBUG
-  Timer::addPeakMemoryMeasurement();
-#endif
-
-  // Rewrite the links in the new nodes to point into the current graph now.
-  // Note that we don't loop over the node's list to do this.  The problem is
-  // that remaping links can cause recursive merging to happen, which means
-  // that node_iterator's can get easily invalidated!  Because of this, we
-  // loop over the OldNodeMap, which contains all of the new nodes as the
-  // .second element of the map elements.  Also note that if we remap a node
-  // more than once, we won't break anything.
-  for (NodeMapTy::iterator I = OldNodeMap.begin(), E = OldNodeMap.end();
-       I != E; ++I)
-    I->second.getNode()->remapLinks(OldNodeMap);
-
-  // Copy the scalar map... merging all of the global nodes...
-  for (DSScalarMap::const_iterator I = G.ScalarMap.begin(),
-         E = G.ScalarMap.end(); I != E; ++I) {
-    DSNodeHandle &MappedNode = OldNodeMap[I->second.getNode()];
-    DSNodeHandle &H = ScalarMap.getRawEntryRef(I->first);
-    DSNode *MappedNodeN = MappedNode.getNode();
-    H.mergeWith(DSNodeHandle(MappedNodeN,
-                             I->second.getOffset()+MappedNode.getOffset()));
-  }
-
-  if (!(CloneFlags & DontCloneCallNodes)) {
-    // Copy the function calls list.
-    for (fc_iterator I = G.fc_begin(), E = G.fc_end(); I != E; ++I)
-      FunctionCalls.push_back(DSCallSite(*I, OldNodeMap));
-  }
-
-  if (!(CloneFlags & DontCloneAuxCallNodes)) {
-    // Copy the auxiliary function calls list.
-    for (afc_iterator I = G.afc_begin(), E = G.afc_end(); I != E; ++I)
-      AuxFunctionCalls.push_back(DSCallSite(*I, OldNodeMap));
-  }
-
-  // Map the return node pointers over...
-  for (retnodes_iterator I = G.retnodes_begin(),
-         E = G.retnodes_end(); I != E; ++I) {
-    const DSNodeHandle &Ret = I->second;
-    DSNodeHandle &MappedRet = OldNodeMap[Ret.getNode()];
-    DSNode *MappedRetN = MappedRet.getNode();
-    ReturnNodes.insert(std::make_pair(I->first,
-                                      DSNodeHandle(MappedRetN,
-                                     MappedRet.getOffset()+Ret.getOffset())));
-  }
-}
-
-/// spliceFrom - Logically perform the operation of cloning the RHS graph into
-/// this graph, then clearing the RHS graph.  Instead of performing this as
-/// two seperate operations, do it as a single, much faster, one.
-///
-void DSGraph::spliceFrom(DSGraph &RHS) {
-  // Change all of the nodes in RHS to think we are their parent.
-  for (NodeListTy::iterator I = RHS.Nodes.begin(), E = RHS.Nodes.end();
-       I != E; ++I)
-    I->setParentGraph(this);
-  // Take all of the nodes.
-  Nodes.splice(Nodes.end(), RHS.Nodes);
-
-  // Take all of the calls.
-  FunctionCalls.splice(FunctionCalls.end(), RHS.FunctionCalls);
-  AuxFunctionCalls.splice(AuxFunctionCalls.end(), RHS.AuxFunctionCalls);
-
-  // Take all of the return nodes.
-  if (ReturnNodes.empty()) {
-    ReturnNodes.swap(RHS.ReturnNodes);
-  } else {
-    ReturnNodes.insert(RHS.ReturnNodes.begin(), RHS.ReturnNodes.end());
-    RHS.ReturnNodes.clear();
-  }
-
-  // Merge the scalar map in.
-  ScalarMap.spliceFrom(RHS.ScalarMap);
-}
-
-/// spliceFrom - Copy all entries from RHS, then clear RHS.
-///
-void DSScalarMap::spliceFrom(DSScalarMap &RHS) {
-  // Special case if this is empty.
-  if (ValueMap.empty()) {
-    ValueMap.swap(RHS.ValueMap);
-    GlobalSet.swap(RHS.GlobalSet);
-  } else {
-    GlobalSet.insert(RHS.GlobalSet.begin(), RHS.GlobalSet.end());
-    for (ValueMapTy::iterator I = RHS.ValueMap.begin(), E = RHS.ValueMap.end();
-         I != E; ++I)
-      ValueMap[I->first].mergeWith(I->second);
-    RHS.ValueMap.clear();
-  }
-}
-
-
-/// getFunctionArgumentsForCall - Given a function that is currently in this
-/// graph, return the DSNodeHandles that correspond to the pointer-compatible
-/// function arguments.  The vector is filled in with the return value (or
-/// null if it is not pointer compatible), followed by all of the
-/// pointer-compatible arguments.
-void DSGraph::getFunctionArgumentsForCall(Function *F,
-                                       std::vector<DSNodeHandle> &Args) const {
-  Args.push_back(getReturnNodeFor(*F));
-  for (Function::arg_iterator AI = F->arg_begin(), E = F->arg_end();
-       AI != E; ++AI)
-    if (isa<PointerType>(AI->getType())) {
-      Args.push_back(getNodeForValue(AI));
-      assert(!Args.back().isNull() && "Pointer argument w/o scalarmap entry!?");
-    }
-}
-
-namespace {
-  // HackedGraphSCCFinder - This is used to find nodes that have a path from the
-  // node to a node cloned by the ReachabilityCloner object contained.  To be
-  // extra obnoxious it ignores edges from nodes that are globals, and truncates
-  // search at RC marked nodes.  This is designed as an object so that
-  // intermediate results can be memoized across invocations of
-  // PathExistsToClonedNode.
-  struct HackedGraphSCCFinder {
-    ReachabilityCloner &RC;
-    unsigned CurNodeId;
-    std::vector<const DSNode*> SCCStack;
-    std::map<const DSNode*, std::pair<unsigned, bool> > NodeInfo;
-
-    HackedGraphSCCFinder(ReachabilityCloner &rc) : RC(rc), CurNodeId(1) {
-      // Remove null pointer as a special case.
-      NodeInfo[0] = std::make_pair(0, false);
-    }
-
-    std::pair<unsigned, bool> &VisitForSCCs(const DSNode *N);
-
-    bool PathExistsToClonedNode(const DSNode *N) {
-      return VisitForSCCs(N).second;
-    }
-
-    bool PathExistsToClonedNode(const DSCallSite &CS) {
-      if (PathExistsToClonedNode(CS.getRetVal().getNode()))
-        return true;
-      for (unsigned i = 0, e = CS.getNumPtrArgs(); i != e; ++i)
-        if (PathExistsToClonedNode(CS.getPtrArg(i).getNode()))
-          return true;
-      return false;
-    }
-  };
-}
-
-std::pair<unsigned, bool> &HackedGraphSCCFinder::
-VisitForSCCs(const DSNode *N) {
-  std::map<const DSNode*, std::pair<unsigned, bool> >::iterator
-    NodeInfoIt = NodeInfo.lower_bound(N);
-  if (NodeInfoIt != NodeInfo.end() && NodeInfoIt->first == N)
-    return NodeInfoIt->second;
-
-  unsigned Min = CurNodeId++;
-  unsigned MyId = Min;
-  std::pair<unsigned, bool> &ThisNodeInfo =
-    NodeInfo.insert(NodeInfoIt,
-                    std::make_pair(N, std::make_pair(MyId, false)))->second;
-
-  // Base case: if we find a global, this doesn't reach the cloned graph
-  // portion.
-  if (N->isGlobalNode()) {
-    ThisNodeInfo.second = false;
-    return ThisNodeInfo;
-  }
-
-  // Base case: if this does reach the cloned graph portion... it does. :)
-  if (RC.hasClonedNode(N)) {
-    ThisNodeInfo.second = true;
-    return ThisNodeInfo;
-  }
-
-  SCCStack.push_back(N);
-
-  // Otherwise, check all successors.
-  bool AnyDirectSuccessorsReachClonedNodes = false;
-  for (DSNode::const_edge_iterator EI = N->edge_begin(), EE = N->edge_end();
-       EI != EE; ++EI)
-    if (DSNode *Succ = EI->getNode()) {
-      std::pair<unsigned, bool> &SuccInfo = VisitForSCCs(Succ);
-      if (SuccInfo.first < Min) Min = SuccInfo.first;
-      AnyDirectSuccessorsReachClonedNodes |= SuccInfo.second;
-    }
-
-  if (Min != MyId)
-    return ThisNodeInfo;  // Part of a large SCC.  Leave self on stack.
-
-  if (SCCStack.back() == N) {  // Special case single node SCC.
-    SCCStack.pop_back();
-    ThisNodeInfo.second = AnyDirectSuccessorsReachClonedNodes;
-    return ThisNodeInfo;
-  }
-
-  // Find out if any direct successors of any node reach cloned nodes.
-  if (!AnyDirectSuccessorsReachClonedNodes)
-    for (unsigned i = SCCStack.size()-1; SCCStack[i] != N; --i)
-      for (DSNode::const_edge_iterator EI = N->edge_begin(), EE = N->edge_end();
-           EI != EE; ++EI)
-        if (DSNode *N = EI->getNode())
-          if (NodeInfo[N].second) {
-            AnyDirectSuccessorsReachClonedNodes = true;
-            goto OutOfLoop;
-          }
-OutOfLoop:
-  // If any successor reaches a cloned node, mark all nodes in this SCC as
-  // reaching the cloned node.
-  if (AnyDirectSuccessorsReachClonedNodes)
-    while (SCCStack.back() != N) {
-      NodeInfo[SCCStack.back()].second = true;
-      SCCStack.pop_back();
-    }
-  SCCStack.pop_back();
-  ThisNodeInfo.second = true;
-  return ThisNodeInfo;
-}
-
-/// mergeInCallFromOtherGraph - This graph merges in the minimal number of
-/// nodes from G2 into 'this' graph, merging the bindings specified by the
-/// call site (in this graph) with the bindings specified by the vector in G2.
-/// The two DSGraphs must be different.
-///
-void DSGraph::mergeInGraph(const DSCallSite &CS,
-                           std::vector<DSNodeHandle> &Args,
-                           const DSGraph &Graph, unsigned CloneFlags) {
-  TIME_REGION(X, "mergeInGraph");
-
-  assert((CloneFlags & DontCloneCallNodes) &&
-         "Doesn't support copying of call nodes!");
-
-  // If this is not a recursive call, clone the graph into this graph...
-  if (&Graph == this) {
-    // Merge the return value with the return value of the context.
-    Args[0].mergeWith(CS.getRetVal());
-
-    // Resolve all of the function arguments.
-    for (unsigned i = 0, e = CS.getNumPtrArgs(); i != e; ++i) {
-      if (i == Args.size()-1)
-        break;
-
-      // Add the link from the argument scalar to the provided value.
-      Args[i+1].mergeWith(CS.getPtrArg(i));
-    }
-    return;
-  }
-
-  // Clone the callee's graph into the current graph, keeping track of where
-  // scalars in the old graph _used_ to point, and of the new nodes matching
-  // nodes of the old graph.
-  ReachabilityCloner RC(*this, Graph, CloneFlags);
-
-  // Map the return node pointer over.
-  if (!CS.getRetVal().isNull())
-    RC.merge(CS.getRetVal(), Args[0]);
-
-  // Map over all of the arguments.
-  for (unsigned i = 0, e = CS.getNumPtrArgs(); i != e; ++i) {
-    if (i == Args.size()-1)
-      break;
-
-    // Add the link from the argument scalar to the provided value.
-    RC.merge(CS.getPtrArg(i), Args[i+1]);
-  }
-
-  // We generally don't want to copy global nodes or aux calls from the callee
-  // graph to the caller graph.  However, we have to copy them if there is a
-  // path from the node to a node we have already copied which does not go
-  // through another global.  Compute the set of node that can reach globals and
-  // aux call nodes to copy over, then do it.
-  std::vector<const DSCallSite*> AuxCallToCopy;
-  std::vector<GlobalValue*> GlobalsToCopy;
-
-  // NodesReachCopiedNodes - Memoize results for efficiency.  Contains a
-  // true/false value for every visited node that reaches a copied node without
-  // going through a global.
-  HackedGraphSCCFinder SCCFinder(RC);
-
-  if (!(CloneFlags & DontCloneAuxCallNodes))
-    for (afc_iterator I = Graph.afc_begin(), E = Graph.afc_end(); I!=E; ++I)
-      if (SCCFinder.PathExistsToClonedNode(*I))
-        AuxCallToCopy.push_back(&*I);
-//       else if (I->isIndirectCall()){
-//  	//If the call node doesn't have any callees, clone it
-//  	std::vector< Function *> List;
-//  	I->getCalleeNode()->addFullFunctionList(List);
-//  	if (!List.size())
-//  	  AuxCallToCopy.push_back(&*I);
-//        }
-
-  const DSScalarMap &GSM = Graph.getScalarMap();
-  for (DSScalarMap::global_iterator GI = GSM.global_begin(),
-         E = GSM.global_end(); GI != E; ++GI) {
-    DSNode *GlobalNode = Graph.getNodeForValue(*GI).getNode();
-    for (DSNode::edge_iterator EI = GlobalNode->edge_begin(),
-           EE = GlobalNode->edge_end(); EI != EE; ++EI)
-      if (SCCFinder.PathExistsToClonedNode(EI->getNode())) {
-        GlobalsToCopy.push_back(*GI);
-        break;
-      }
-  }
-
-  // Copy aux calls that are needed.
-  for (unsigned i = 0, e = AuxCallToCopy.size(); i != e; ++i)
-    AuxFunctionCalls.push_back(DSCallSite(*AuxCallToCopy[i], RC));
-
-  // Copy globals that are needed.
-  for (unsigned i = 0, e = GlobalsToCopy.size(); i != e; ++i)
-    RC.getClonedNH(Graph.getNodeForValue(GlobalsToCopy[i]));
-}
-
-
-
-/// mergeInGraph - The method is used for merging graphs together.  If the
-/// argument graph is not *this, it makes a clone of the specified graph, then
-/// merges the nodes specified in the call site with the formal arguments in the
-/// graph.
-///
-void DSGraph::mergeInGraph(const DSCallSite &CS, Function &F,
-                           const DSGraph &Graph, unsigned CloneFlags) {
-  // Set up argument bindings.
-  std::vector<DSNodeHandle> Args;
-  Graph.getFunctionArgumentsForCall(&F, Args);
-
-  mergeInGraph(CS, Args, Graph, CloneFlags);
-}
-
-/// getCallSiteForArguments - Get the arguments and return value bindings for
-/// the specified function in the current graph.
-///
-DSCallSite DSGraph::getCallSiteForArguments(Function &F) const {
-  std::vector<DSNodeHandle> Args;
-
-  for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end(); I != E; ++I)
-    if (isa<PointerType>(I->getType()))
-      Args.push_back(getNodeForValue(I));
-
-  return DSCallSite(CallSite(), getReturnNodeFor(F), &F, Args);
-}
-
-/// getDSCallSiteForCallSite - Given an LLVM CallSite object that is live in
-/// the context of this graph, return the DSCallSite for it.
-DSCallSite DSGraph::getDSCallSiteForCallSite(CallSite CS) const {
-  DSNodeHandle RetVal;
-  Instruction *I = CS.getInstruction();
-  if (isa<PointerType>(I->getType()))
-    RetVal = getNodeForValue(I);
-
-  std::vector<DSNodeHandle> Args;
-  Args.reserve(CS.arg_end()-CS.arg_begin());
-
-  // Calculate the arguments vector...
-  for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end(); I != E; ++I)
-    if (isa<PointerType>((*I)->getType()))
-      if (isa<ConstantPointerNull>(*I))
-        Args.push_back(DSNodeHandle());
-      else
-        Args.push_back(getNodeForValue(*I));
-
-  // Add a new function call entry...
-  if (Function *F = CS.getCalledFunction())
-    return DSCallSite(CS, RetVal, F, Args);
-  else
-    return DSCallSite(CS, RetVal,
-                      getNodeForValue(CS.getCalledValue()).getNode(), Args);
-}
-
-
-
-// markIncompleteNodes - Mark the specified node as having contents that are not
-// known with the current analysis we have performed.  Because a node makes all
-// of the nodes it can reach incomplete if the node itself is incomplete, we
-// must recursively traverse the data structure graph, marking all reachable
-// nodes as incomplete.
-//
-static void markIncompleteNode(DSNode *N) {
-  // Stop recursion if no node, or if node already marked...
-  if (N == 0 || N->isIncompleteNode()) return;
-
-  // Actually mark the node
-  N->setIncompleteMarker();
-
-  // Recursively process children...
-  for (DSNode::edge_iterator I = N->edge_begin(),E = N->edge_end(); I != E; ++I)
-    if (DSNode *DSN = I->getNode())
-      markIncompleteNode(DSN);
-}
-
-static void markIncomplete(DSCallSite &Call) {
-  // Then the return value is certainly incomplete!
-  markIncompleteNode(Call.getRetVal().getNode());
-
-  // All objects pointed to by function arguments are incomplete!
-  for (unsigned i = 0, e = Call.getNumPtrArgs(); i != e; ++i)
-    markIncompleteNode(Call.getPtrArg(i).getNode());
-}
-
-// markIncompleteNodes - Traverse the graph, identifying nodes that may be
-// modified by other functions that have not been resolved yet.  This marks
-// nodes that are reachable through three sources of "unknownness":
-//
-//  Global Variables, Function Calls, and Incoming Arguments
-//
-// For any node that may have unknown components (because something outside the
-// scope of current analysis may have modified it), the 'Incomplete' flag is
-// added to the NodeType.
-//
-void DSGraph::markIncompleteNodes(unsigned Flags) {
-  // Mark any incoming arguments as incomplete.
-  if (Flags & DSGraph::MarkFormalArgs)
-    for (ReturnNodesTy::iterator FI = ReturnNodes.begin(), E =ReturnNodes.end();
-         FI != E; ++FI) {
-      Function &F = *FI->first;
-      for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end();
-           I != E; ++I)
-        if (isa<PointerType>(I->getType()))
-          markIncompleteNode(getNodeForValue(I).getNode());
-      markIncompleteNode(FI->second.getNode());
-    }
-
-  // Mark stuff passed into functions calls as being incomplete.
-  if (!shouldPrintAuxCalls())
-    for (std::list<DSCallSite>::iterator I = FunctionCalls.begin(),
-           E = FunctionCalls.end(); I != E; ++I)
-      markIncomplete(*I);
-  else
-    for (std::list<DSCallSite>::iterator I = AuxFunctionCalls.begin(),
-           E = AuxFunctionCalls.end(); I != E; ++I)
-      markIncomplete(*I);
-
-  // Mark stuff passed into external functions as being incomplete.
-  // External functions may not appear in Aux during td, so process
-  // them specially
-  for (std::list<DSCallSite>::iterator I = FunctionCalls.begin(),
-         E = FunctionCalls.end(); I != E; ++I)
-    if(I->isDirectCall() && I->getCalleeFunc()->isDeclaration())
-      markIncomplete(*I);
-
-  // Mark all global nodes as incomplete.
-  for (DSScalarMap::global_iterator I = ScalarMap.global_begin(),
-         E = ScalarMap.global_end(); I != E; ++I)
-    if (GlobalVariable *GV = dyn_cast<GlobalVariable>(*I))
-      if (!GV->hasInitializer() ||    // Always mark external globals incomp.
-          (!GV->isConstant() && (Flags & DSGraph::IgnoreGlobals) == 0))
-        markIncompleteNode(ScalarMap[GV].getNode());
-}
-
-static inline void killIfUselessEdge(DSNodeHandle &Edge) {
-  if (DSNode *N = Edge.getNode())  // Is there an edge?
-    if (N->getNumReferrers() == 1)  // Does it point to a lonely node?
-      // No interesting info?
-      if ((N->getNodeFlags() & ~DSNode::IncompleteNode) == 0 &&
-          N->getType() == Type::VoidTy && !N->isNodeCompletelyFolded())
-        Edge.setTo(0, 0);  // Kill the edge!
-}
-
-static inline bool nodeContainsExternalFunction(const DSNode *N) {
-  std::vector<Function*> Funcs;
-  N->addFullFunctionList(Funcs);
-  for (unsigned i = 0, e = Funcs.size(); i != e; ++i)
-    if (Funcs[i]->isDeclaration()) return true;
-  return false;
-}
-
-static void removeIdenticalCalls(std::list<DSCallSite> &Calls) {
-  // Remove trivially identical function calls
-  Calls.sort();  // Sort by callee as primary key!
-
-  // Scan the call list cleaning it up as necessary...
-  DSNodeHandle LastCalleeNode;
-#if 0
-  Function *LastCalleeFunc = 0;
-  unsigned NumDuplicateCalls = 0;
-#endif
-  bool LastCalleeContainsExternalFunction = false;
-
-  unsigned NumDeleted = 0;
-  for (std::list<DSCallSite>::iterator I = Calls.begin(), E = Calls.end();
-       I != E;) {
-    DSCallSite &CS = *I;
-    std::list<DSCallSite>::iterator OldIt = I++;
-
-    if (!CS.isIndirectCall()) {
-      LastCalleeNode = 0;
-    } else {
-      DSNode *Callee = CS.getCalleeNode();
-
-      // If the Callee is a useless edge, this must be an unreachable call site,
-      // eliminate it.
-      if (Callee->getNumReferrers() == 1 && Callee->isCompleteNode() &&
-          Callee->getGlobalsList().empty()) {  // No useful info?
-        DOUT << "WARNING: Useless call site found.\n";
-        Calls.erase(OldIt);
-        ++NumDeleted;
-        continue;
-      }
-
-      // If the last call site in the list has the same callee as this one, and
-      // if the callee contains an external function, it will never be
-      // resolvable, just merge the call sites.
-      if (!LastCalleeNode.isNull() && LastCalleeNode.getNode() == Callee) {
-        LastCalleeContainsExternalFunction =
-          nodeContainsExternalFunction(Callee);
-
-        std::list<DSCallSite>::iterator PrevIt = OldIt;
-        --PrevIt;
-        PrevIt->mergeWith(CS);
-
-        // No need to keep this call anymore.
-        Calls.erase(OldIt);
-        ++NumDeleted;
-        continue;
-      } else {
-        LastCalleeNode = Callee;
-      }
-    }
-
-    // If the return value or any arguments point to a void node with no
-    // information at all in it, and the call node is the only node to point
-    // to it, remove the edge to the node (killing the node).
-    //
-    killIfUselessEdge(CS.getRetVal());
-    for (unsigned a = 0, e = CS.getNumPtrArgs(); a != e; ++a)
-      killIfUselessEdge(CS.getPtrArg(a));
-
-#if 0
-    // If this call site calls the same function as the last call site, and if
-    // the function pointer contains an external function, this node will
-    // never be resolved.  Merge the arguments of the call node because no
-    // information will be lost.
-    //
-    if ((CS.isDirectCall()   && CS.getCalleeFunc() == LastCalleeFunc) ||
-        (CS.isIndirectCall() && CS.getCalleeNode() == LastCalleeNode)) {
-      ++NumDuplicateCalls;
-      if (NumDuplicateCalls == 1) {
-        if (LastCalleeNode)
-          LastCalleeContainsExternalFunction =
-            nodeContainsExternalFunction(LastCalleeNode);
-        else
-          LastCalleeContainsExternalFunction = LastCalleeFunc->isExternal();
-      }
-
-      // It is not clear why, but enabling this code makes DSA really
-      // sensitive to node forwarding.  Basically, with this enabled, DSA
-      // performs different number of inlinings based on which nodes are
-      // forwarding or not.  This is clearly a problem, so this code is
-      // disabled until this can be resolved.
-#if 1
-      if (LastCalleeContainsExternalFunction
-#if 0
-          ||
-          // This should be more than enough context sensitivity!
-          // FIXME: Evaluate how many times this is tripped!
-          NumDuplicateCalls > 20
-#endif
-          ) {
-
-        std::list<DSCallSite>::iterator PrevIt = OldIt;
-        --PrevIt;
-        PrevIt->mergeWith(CS);
-
-        // No need to keep this call anymore.
-        Calls.erase(OldIt);
-        ++NumDeleted;
-        continue;
-      }
-#endif
-    } else {
-      if (CS.isDirectCall()) {
-        LastCalleeFunc = CS.getCalleeFunc();
-        LastCalleeNode = 0;
-      } else {
-        LastCalleeNode = CS.getCalleeNode();
-        LastCalleeFunc = 0;
-      }
-      NumDuplicateCalls = 0;
-    }
-#endif
-
-    if (I != Calls.end() && CS == *I) {
-      LastCalleeNode = 0;
-      Calls.erase(OldIt);
-      ++NumDeleted;
-      continue;
-    }
-  }
-
-  // Resort now that we simplified things.
-  Calls.sort();
-
-  // Now that we are in sorted order, eliminate duplicates.
-  std::list<DSCallSite>::iterator CI = Calls.begin(), CE = Calls.end();
-  if (CI != CE)
-    while (1) {
-      std::list<DSCallSite>::iterator OldIt = CI++;
-      if (CI == CE) break;
-
-      // If this call site is now the same as the previous one, we can delete it
-      // as a duplicate.
-      if (*OldIt == *CI) {
-        Calls.erase(CI);
-        CI = OldIt;
-        ++NumDeleted;
-      }
-    }
-
-  //Calls.erase(std::unique(Calls.begin(), Calls.end()), Calls.end());
-
-  // Track the number of call nodes merged away...
-  NumCallNodesMerged += NumDeleted;
-
-  if (NumDeleted)
-    DOUT << "Merged " << NumDeleted << " call nodes.\n";
-}
-
-
-// removeTriviallyDeadNodes - After the graph has been constructed, this method
-// removes all unreachable nodes that are created because they got merged with
-// other nodes in the graph.  These nodes will all be trivially unreachable, so
-// we don't have to perform any non-trivial analysis here.
-//
-void DSGraph::removeTriviallyDeadNodes() {
-  TIME_REGION(X, "removeTriviallyDeadNodes");
-
-#if 0
-  /// NOTE: This code is disabled.  This slows down DSA on 177.mesa
-  /// substantially!
-
-  // Loop over all of the nodes in the graph, calling getNode on each field.
-  // This will cause all nodes to update their forwarding edges, causing
-  // forwarded nodes to be delete-able.
-  { TIME_REGION(X, "removeTriviallyDeadNodes:node_iterate");
-  for (node_iterator NI = node_begin(), E = node_end(); NI != E; ++NI) {
-    DSNode &N = *NI;
-    for (unsigned l = 0, e = N.getNumLinks(); l != e; ++l)
-      N.getLink(l*N.getPointerSize()).getNode();
-  }
-  }
-
-  // NOTE: This code is disabled.  Though it should, in theory, allow us to
-  // remove more nodes down below, the scan of the scalar map is incredibly
-  // expensive for certain programs (with large SCCs).  In the future, if we can
-  // make the scalar map scan more efficient, then we can reenable this.
-  { TIME_REGION(X, "removeTriviallyDeadNodes:scalarmap");
-
-  // Likewise, forward any edges from the scalar nodes.  While we are at it,
-  // clean house a bit.
-  for (DSScalarMap::iterator I = ScalarMap.begin(),E = ScalarMap.end();I != E;){
-    I->second.getNode();
-    ++I;
-  }
-  }
-#endif
-  bool isGlobalsGraph = !GlobalsGraph;
-
-  for (NodeListTy::iterator NI = Nodes.begin(), E = Nodes.end(); NI != E; ) {
-    DSNode &Node = *NI;
-
-    // Do not remove *any* global nodes in the globals graph.
-    // This is a special case because such nodes may not have I, M, R flags set.
-    if (Node.isGlobalNode() && isGlobalsGraph) {
-      ++NI;
-      continue;
-    }
-
-    if (Node.isCompleteNode() && !Node.isModifiedNode() && !Node.isReadNode()) {
-      // This is a useless node if it has no mod/ref info (checked above),
-      // outgoing edges (which it cannot, as it is not modified in this
-      // context), and it has no incoming edges.  If it is a global node it may
-      // have all of these properties and still have incoming edges, due to the
-      // scalar map, so we check those now.
-      //
-      if (Node.getNumReferrers() == Node.getGlobalsList().size()) {
-        const std::vector<GlobalValue*> &Globals = Node.getGlobalsList();
-
-        // Loop through and make sure all of the globals are referring directly
-        // to the node...
-        for (unsigned j = 0, e = Globals.size(); j != e; ++j) {
-          DSNode *N = getNodeForValue(Globals[j]).getNode();
-          assert(N == &Node && "ScalarMap doesn't match globals list!");
-        }
-
-        // Make sure NumReferrers still agrees, if so, the node is truly dead.
-        if (Node.getNumReferrers() == Globals.size()) {
-          for (unsigned j = 0, e = Globals.size(); j != e; ++j)
-            ScalarMap.erase(Globals[j]);
-          Node.makeNodeDead();
-          ++NumTrivialGlobalDNE;
-        }
-      }
-    }
-
-    if (Node.getNodeFlags() == 0 && Node.hasNoReferrers()) {
-      // This node is dead!
-      NI = Nodes.erase(NI);    // Erase & remove from node list.
-      ++NumTrivialDNE;
-    } else {
-      ++NI;
-    }
-  }
-
-  removeIdenticalCalls(FunctionCalls);
-  removeIdenticalCalls(AuxFunctionCalls);
-}
-
-
-/// markReachableNodes - This method recursively traverses the specified
-/// DSNodes, marking any nodes which are reachable.  All reachable nodes it adds
-/// to the set, which allows it to only traverse visited nodes once.
-///
-void DSNode::markReachableNodes(hash_set<const DSNode*> &ReachableNodes) const {
-  if (this == 0) return;
-  assert(getForwardNode() == 0 && "Cannot mark a forwarded node!");
-  if (ReachableNodes.insert(this).second)        // Is newly reachable?
-    for (DSNode::const_edge_iterator I = edge_begin(), E = edge_end();
-         I != E; ++I)
-      I->getNode()->markReachableNodes(ReachableNodes);
-}
-
-void DSCallSite::markReachableNodes(hash_set<const DSNode*> &Nodes) const {
-  getRetVal().getNode()->markReachableNodes(Nodes);
-  if (isIndirectCall()) getCalleeNode()->markReachableNodes(Nodes);
-
-  for (unsigned i = 0, e = getNumPtrArgs(); i != e; ++i)
-    getPtrArg(i).getNode()->markReachableNodes(Nodes);
-}
-
-// CanReachAliveNodes - Simple graph walker that recursively traverses the graph
-// looking for a node that is marked alive.  If an alive node is found, return
-// true, otherwise return false.  If an alive node is reachable, this node is
-// marked as alive...
-//
-static bool CanReachAliveNodes(DSNode *N, hash_set<const DSNode*> &Alive,
-                               hash_set<const DSNode*> &Visited,
-                               bool IgnoreGlobals) {
-  if (N == 0) return false;
-  assert(N->getForwardNode() == 0 && "Cannot mark a forwarded node!");
-
-  // If this is a global node, it will end up in the globals graph anyway, so we
-  // don't need to worry about it.
-  if (IgnoreGlobals && N->isGlobalNode()) return false;
-
-  // If we know that this node is alive, return so!
-  if (Alive.count(N)) return true;
-
-  // Otherwise, we don't think the node is alive yet, check for infinite
-  // recursion.
-  if (Visited.count(N)) return false;  // Found a cycle
-  Visited.insert(N);   // No recursion, insert into Visited...
-
-  for (DSNode::edge_iterator I = N->edge_begin(),E = N->edge_end(); I != E; ++I)
-    if (CanReachAliveNodes(I->getNode(), Alive, Visited, IgnoreGlobals)) {
-      N->markReachableNodes(Alive);
-      return true;
-    }
-  return false;
-}
-
-// CallSiteUsesAliveArgs - Return true if the specified call site can reach any
-// alive nodes.
-//
-static bool CallSiteUsesAliveArgs(const DSCallSite &CS,
-                                  hash_set<const DSNode*> &Alive,
-                                  hash_set<const DSNode*> &Visited,
-                                  bool IgnoreGlobals) {
-  if (CanReachAliveNodes(CS.getRetVal().getNode(), Alive, Visited,
-                         IgnoreGlobals))
-    return true;
-  if (CS.isIndirectCall() &&
-      CanReachAliveNodes(CS.getCalleeNode(), Alive, Visited, IgnoreGlobals))
-    return true;
-  for (unsigned i = 0, e = CS.getNumPtrArgs(); i != e; ++i)
-    if (CanReachAliveNodes(CS.getPtrArg(i).getNode(), Alive, Visited,
-                           IgnoreGlobals))
-      return true;
-  return false;
-}
-
-// removeDeadNodes - Use a more powerful reachability analysis to eliminate
-// subgraphs that are unreachable.  This often occurs because the data
-// structure doesn't "escape" into it's caller, and thus should be eliminated
-// from the caller's graph entirely.  This is only appropriate to use when
-// inlining graphs.
-//
-void DSGraph::removeDeadNodes(unsigned Flags) {
-  DEBUG(AssertGraphOK(); if (GlobalsGraph) GlobalsGraph->AssertGraphOK());
-
-  // Reduce the amount of work we have to do... remove dummy nodes left over by
-  // merging...
-  removeTriviallyDeadNodes();
-
-  TIME_REGION(X, "removeDeadNodes");
-
-  // FIXME: Merge non-trivially identical call nodes...
-
-  // Alive - a set that holds all nodes found to be reachable/alive.
-  hash_set<const DSNode*> Alive;
-  std::vector<std::pair<Value*, DSNode*> > GlobalNodes;
-
-  // Copy and merge all information about globals to the GlobalsGraph if this is
-  // not a final pass (where unreachable globals are removed).
-  //
-  // Strip all alloca bits since the current function is only for the BU pass.
-  // Strip all incomplete bits since they are short-lived properties and they
-  // will be correctly computed when rematerializing nodes into the functions.
-  //
-  ReachabilityCloner GGCloner(*GlobalsGraph, *this, DSGraph::StripAllocaBit |
-                              DSGraph::StripIncompleteBit);
-
-  // Mark all nodes reachable by (non-global) scalar nodes as alive...
-{ TIME_REGION(Y, "removeDeadNodes:scalarscan");
-  for (DSScalarMap::iterator I = ScalarMap.begin(), E = ScalarMap.end();
-       I != E; ++I)
-    if (isa<GlobalValue>(I->first)) {             // Keep track of global nodes
-      assert(!I->second.isNull() && "Null global node?");
-      assert(I->second.getNode()->isGlobalNode() && "Should be a global node!");
-      GlobalNodes.push_back(std::make_pair(I->first, I->second.getNode()));
-
-      // Make sure that all globals are cloned over as roots.
-      if (!(Flags & DSGraph::RemoveUnreachableGlobals) && GlobalsGraph) {
-        DSGraph::ScalarMapTy::iterator SMI =
-          GlobalsGraph->getScalarMap().find(I->first);
-        if (SMI != GlobalsGraph->getScalarMap().end())
-          GGCloner.merge(SMI->second, I->second);
-        else
-          GGCloner.getClonedNH(I->second);
-      }
-    } else {
-      I->second.getNode()->markReachableNodes(Alive);
-    }
-}
-
-  // The return values are alive as well.
-  for (ReturnNodesTy::iterator I = ReturnNodes.begin(), E = ReturnNodes.end();
-       I != E; ++I)
-    I->second.getNode()->markReachableNodes(Alive);
-
-  // Mark any nodes reachable by primary calls as alive...
-  for (fc_iterator I = fc_begin(), E = fc_end(); I != E; ++I)
-    I->markReachableNodes(Alive);
-
-
-  // Now find globals and aux call nodes that are already live or reach a live
-  // value (which makes them live in turn), and continue till no more are found.
-  //
-  bool Iterate;
-  hash_set<const DSNode*> Visited;
-  hash_set<const DSCallSite*> AuxFCallsAlive;
-  do {
-    Visited.clear();
-    // If any global node points to a non-global that is "alive", the global is
-    // "alive" as well...  Remove it from the GlobalNodes list so we only have
-    // unreachable globals in the list.
-    //
-    Iterate = false;
-    if (!(Flags & DSGraph::RemoveUnreachableGlobals))
-      for (unsigned i = 0; i != GlobalNodes.size(); ++i)
-        if (CanReachAliveNodes(GlobalNodes[i].second, Alive, Visited,
-                               Flags & DSGraph::RemoveUnreachableGlobals)) {
-          std::swap(GlobalNodes[i--], GlobalNodes.back()); // Move to end to...
-          GlobalNodes.pop_back();                          // erase efficiently
-          Iterate = true;
-        }
-
-    // Mark only unresolvable call nodes for moving to the GlobalsGraph since
-    // call nodes that get resolved will be difficult to remove from that graph.
-    // The final unresolved call nodes must be handled specially at the end of
-    // the BU pass (i.e., in main or other roots of the call graph).
-    for (afc_iterator CI = afc_begin(), E = afc_end(); CI != E; ++CI)
-      if (!AuxFCallsAlive.count(&*CI) &&
-          (CI->isIndirectCall()
-           || CallSiteUsesAliveArgs(*CI, Alive, Visited,
-                                  Flags & DSGraph::RemoveUnreachableGlobals))) {
-        CI->markReachableNodes(Alive);
-        AuxFCallsAlive.insert(&*CI);
-        Iterate = true;
-      }
-  } while (Iterate);
-
-  // Move dead aux function calls to the end of the list
-  for (std::list<DSCallSite>::iterator CI = AuxFunctionCalls.begin(),
-         E = AuxFunctionCalls.end(); CI != E; )
-    if (AuxFCallsAlive.count(&*CI))
-      ++CI;
-    else {
-      // Copy and merge global nodes and dead aux call nodes into the
-      // GlobalsGraph, and all nodes reachable from those nodes.  Update their
-      // target pointers using the GGCloner.
-      //
-      if (!(Flags & DSGraph::RemoveUnreachableGlobals))
-        GlobalsGraph->AuxFunctionCalls.push_back(DSCallSite(*CI, GGCloner));
-
-      AuxFunctionCalls.erase(CI++);
-    }
-
-  // We are finally done with the GGCloner so we can destroy it.
-  GGCloner.destroy();
-
-  // At this point, any nodes which are visited, but not alive, are nodes
-  // which can be removed.  Loop over all nodes, eliminating completely
-  // unreachable nodes.
-  //
-  std::vector<DSNode*> DeadNodes;
-  DeadNodes.reserve(Nodes.size());
-  for (NodeListTy::iterator NI = Nodes.begin(), E = Nodes.end(); NI != E;) {
-    DSNode *N = NI++;
-    assert(!N->isForwarding() && "Forwarded node in nodes list?");
-
-    if (!Alive.count(N)) {
-      Nodes.remove(N);
-      assert(!N->isForwarding() && "Cannot remove a forwarding node!");
-      DeadNodes.push_back(N);
-      N->dropAllReferences();
-      ++NumDNE;
-    }
-  }
-
-  // Remove all unreachable globals from the ScalarMap.
-  // If flag RemoveUnreachableGlobals is set, GlobalNodes has only dead nodes.
-  // In either case, the dead nodes will not be in the set Alive.
-  for (unsigned i = 0, e = GlobalNodes.size(); i != e; ++i)
-    if (!Alive.count(GlobalNodes[i].second))
-      ScalarMap.erase(GlobalNodes[i].first);
-    else
-      assert((Flags & DSGraph::RemoveUnreachableGlobals) && "non-dead global");
-
-  // Delete all dead nodes now since their referrer counts are zero.
-  for (unsigned i = 0, e = DeadNodes.size(); i != e; ++i)
-    delete DeadNodes[i];
-
-  DEBUG(AssertGraphOK(); GlobalsGraph->AssertGraphOK());
-}
-
-void DSGraph::AssertNodeContainsGlobal(const DSNode *N, GlobalValue *GV) const {
-  assert(std::find(N->globals_begin(),N->globals_end(), GV) !=
-         N->globals_end() && "Global value not in node!");
-}
-
-void DSGraph::AssertCallSiteInGraph(const DSCallSite &CS) const {
-  if (CS.isIndirectCall()) {
-    AssertNodeInGraph(CS.getCalleeNode());
-#if 0
-    if (CS.getNumPtrArgs() && CS.getCalleeNode() == CS.getPtrArg(0).getNode() &&
-        CS.getCalleeNode() && CS.getCalleeNode()->getGlobals().empty())
-      DOUT << "WARNING: WEIRD CALL SITE FOUND!\n";
-#endif
-  }
-  AssertNodeInGraph(CS.getRetVal().getNode());
-  for (unsigned j = 0, e = CS.getNumPtrArgs(); j != e; ++j)
-    AssertNodeInGraph(CS.getPtrArg(j).getNode());
-}
-
-void DSGraph::AssertCallNodesInGraph() const {
-  for (fc_iterator I = fc_begin(), E = fc_end(); I != E; ++I)
-    AssertCallSiteInGraph(*I);
-}
-void DSGraph::AssertAuxCallNodesInGraph() const {
-  for (afc_iterator I = afc_begin(), E = afc_end(); I != E; ++I)
-    AssertCallSiteInGraph(*I);
-}
-
-void DSGraph::AssertGraphOK() const {
-  for (node_const_iterator NI = node_begin(), E = node_end(); NI != E; ++NI)
-    NI->assertOK();
-
-  for (ScalarMapTy::const_iterator I = ScalarMap.begin(),
-         E = ScalarMap.end(); I != E; ++I) {
-    assert(!I->second.isNull() && "Null node in scalarmap!");
-    AssertNodeInGraph(I->second.getNode());
-    if (GlobalValue *GV = dyn_cast<GlobalValue>(I->first)) {
-      assert(I->second.getNode()->isGlobalNode() &&
-             "Global points to node, but node isn't global?");
-      AssertNodeContainsGlobal(I->second.getNode(), GV);
-    }
-  }
-  AssertCallNodesInGraph();
-  AssertAuxCallNodesInGraph();
-
-  // Check that all pointer arguments to any functions in this graph have
-  // destinations.
-  for (ReturnNodesTy::const_iterator RI = ReturnNodes.begin(),
-         E = ReturnNodes.end();
-       RI != E; ++RI) {
-    Function &F = *RI->first;
-    for (Function::arg_iterator AI = F.arg_begin(); AI != F.arg_end(); ++AI)
-      if (isa<PointerType>(AI->getType()))
-        assert(!getNodeForValue(AI).isNull() &&
-               "Pointer argument must be in the scalar map!");
-  }
-}
-
-/// computeNodeMapping - Given roots in two different DSGraphs, traverse the
-/// nodes reachable from the two graphs, computing the mapping of nodes from the
-/// first to the second graph.  This mapping may be many-to-one (i.e. the first
-/// graph may have multiple nodes representing one node in the second graph),
-/// but it will not work if there is a one-to-many or many-to-many mapping.
-///
-void DSGraph::computeNodeMapping(const DSNodeHandle &NH1,
-                                 const DSNodeHandle &NH2, NodeMapTy &NodeMap,
-                                 bool StrictChecking) {
-  DSNode *N1 = NH1.getNode(), *N2 = NH2.getNode();
-  if (N1 == 0 || N2 == 0) return;
-
-  DSNodeHandle &Entry = NodeMap[N1];
-  if (!Entry.isNull()) {
-    // Termination of recursion!
-    if (StrictChecking) {
-      assert(Entry.getNode() == N2 && "Inconsistent mapping detected!");
-      assert((Entry.getOffset() == (NH2.getOffset()-NH1.getOffset()) ||
-              Entry.getNode()->isNodeCompletelyFolded()) &&
-             "Inconsistent mapping detected!");
-    }
-    return;
-  }
-
-  Entry.setTo(N2, NH2.getOffset()-NH1.getOffset());
-
-  // Loop over all of the fields that N1 and N2 have in common, recursively
-  // mapping the edges together now.
-  int N2Idx = NH2.getOffset()-NH1.getOffset();
-  unsigned N2Size = N2->getSize();
-  if (N2Size == 0) return;   // No edges to map to.
-
-  for (unsigned i = 0, e = N1->getSize(); i < e; i += DS::PointerSize) {
-    const DSNodeHandle &N1NH = N1->getLink(i);
-    // Don't call N2->getLink if not needed (avoiding crash if N2Idx is not
-    // aligned right).
-    if (!N1NH.isNull()) {
-      if (unsigned(N2Idx)+i < N2Size)
-        computeNodeMapping(N1NH, N2->getLink(N2Idx+i), NodeMap);
-      else
-        computeNodeMapping(N1NH,
-                           N2->getLink(unsigned(N2Idx+i) % N2Size), NodeMap);
-    }
-  }
-}
-
-
-/// computeGToGGMapping - Compute the mapping of nodes in the global graph to
-/// nodes in this graph.
-void DSGraph::computeGToGGMapping(NodeMapTy &NodeMap) {
-  DSGraph &GG = *getGlobalsGraph();
-
-  DSScalarMap &SM = getScalarMap();
-  for (DSScalarMap::global_iterator I = SM.global_begin(),
-         E = SM.global_end(); I != E; ++I)
-    DSGraph::computeNodeMapping(SM[*I], GG.getNodeForValue(*I), NodeMap);
-}
-
-/// computeGGToGMapping - Compute the mapping of nodes in the global graph to
-/// nodes in this graph.  Note that any uses of this method are probably bugs,
-/// unless it is known that the globals graph has been merged into this graph!
-void DSGraph::computeGGToGMapping(InvNodeMapTy &InvNodeMap) {
-  NodeMapTy NodeMap;
-  computeGToGGMapping(NodeMap);
-
-  while (!NodeMap.empty()) {
-    InvNodeMap.insert(std::make_pair(NodeMap.begin()->second,
-                                     NodeMap.begin()->first));
-    NodeMap.erase(NodeMap.begin());
-  }
-}
-
-
-/// computeCalleeCallerMapping - Given a call from a function in the current
-/// graph to the 'Callee' function (which lives in 'CalleeGraph'), compute the
-/// mapping of nodes from the callee to nodes in the caller.
-void DSGraph::computeCalleeCallerMapping(DSCallSite CS, const Function &Callee,
-                                         DSGraph &CalleeGraph,
-                                         NodeMapTy &NodeMap) {
-
-  DSCallSite CalleeArgs =
-    CalleeGraph.getCallSiteForArguments(const_cast<Function&>(Callee));
-
-  computeNodeMapping(CalleeArgs.getRetVal(), CS.getRetVal(), NodeMap);
-
-  unsigned NumArgs = CS.getNumPtrArgs();
-  if (NumArgs > CalleeArgs.getNumPtrArgs())
-    NumArgs = CalleeArgs.getNumPtrArgs();
-
-  for (unsigned i = 0; i != NumArgs; ++i)
-    computeNodeMapping(CalleeArgs.getPtrArg(i), CS.getPtrArg(i), NodeMap);
-
-  // Map the nodes that are pointed to by globals.
-  DSScalarMap &CalleeSM = CalleeGraph.getScalarMap();
-  DSScalarMap &CallerSM = getScalarMap();
-
-  if (CalleeSM.global_size() >= CallerSM.global_size()) {
-    for (DSScalarMap::global_iterator GI = CallerSM.global_begin(),
-           E = CallerSM.global_end(); GI != E; ++GI)
-      if (CalleeSM.global_count(*GI))
-        computeNodeMapping(CalleeSM[*GI], CallerSM[*GI], NodeMap);
-  } else {
-    for (DSScalarMap::global_iterator GI = CalleeSM.global_begin(),
-           E = CalleeSM.global_end(); GI != E; ++GI)
-      if (CallerSM.global_count(*GI))
-        computeNodeMapping(CalleeSM[*GI], CallerSM[*GI], NodeMap);
-  }
-}
-
-/// updateFromGlobalGraph - This function rematerializes global nodes and
-/// nodes reachable from them from the globals graph into the current graph.
-///
-void DSGraph::updateFromGlobalGraph() {
-  TIME_REGION(X, "updateFromGlobalGraph");
-  ReachabilityCloner RC(*this, *GlobalsGraph, 0);
-
-  // Clone the non-up-to-date global nodes into this graph.
-  for (DSScalarMap::global_iterator I = getScalarMap().global_begin(),
-         E = getScalarMap().global_end(); I != E; ++I) {
-    DSScalarMap::iterator It = GlobalsGraph->ScalarMap.find(*I);
-    if (It != GlobalsGraph->ScalarMap.end())
-      RC.merge(getNodeForValue(*I), It->second);
-  }
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-//Base DataStructures impl:
-////////////////////////////////////////////////////////////////////////////////
-
-static const Function *getFnForValue(const Value *V) {
-  if (const Instruction *I = dyn_cast<Instruction>(V))
-    return I->getParent()->getParent();
-  else if (const Argument *A = dyn_cast<Argument>(V))
-    return A->getParent();
-  else if (const BasicBlock *BB = dyn_cast<BasicBlock>(V))
-    return BB->getParent();
-  return 0;
-}
-
-/// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
-/// These correspond to the interfaces defined in the AliasAnalysis class.
-void DataStructures::deleteValue(Value *V) {
-  if (const Function *F = getFnForValue(V)) {  // Function local value?
-    // If this is a function local value, just delete it from the scalar map!
-    getDSGraph(*F).getScalarMap().eraseIfExists(V);
-    return;
-  }
-  
-  if (Function *F = dyn_cast<Function>(V)) {
-    assert(getDSGraph(*F).getReturnNodes().size() == 1 &&
-           "cannot handle scc's");
-    delete DSInfo[F];
-    DSInfo.erase(F);
-    return;
-  }
-  
-  assert(!isa<GlobalVariable>(V) && "Do not know how to delete GV's yet!");
-}
-
-void DataStructures::copyValue(Value *From, Value *To) {
-  if (From == To) return;
-  if (const Function *F = getFnForValue(From)) {  // Function local value?
-    // If this is a function local value, just delete it from the scalar map!
-    getDSGraph(*F).getScalarMap().copyScalarIfExists(From, To);
-    return;
-  }
-  
-  if (Function *FromF = dyn_cast<Function>(From)) {
-    Function *ToF = cast<Function>(To);
-    assert(!DSInfo.count(ToF) && "New Function already exists!");
-    DSGraph *NG = new DSGraph(getDSGraph(*FromF), GlobalECs);
-    DSInfo[ToF] = NG;
-    assert(NG->getReturnNodes().size() == 1 && "Cannot copy SCC's yet!");
-    
-    // Change the Function* is the returnnodes map to the ToF.
-    DSNodeHandle Ret = NG->retnodes_begin()->second;
-    NG->getReturnNodes().clear();
-    NG->getReturnNodes()[ToF] = Ret;
-    return;
-  }
-  
-  if (const Function *F = getFnForValue(To)) {
-    DSGraph &G = getDSGraph(*F);
-    G.getScalarMap().copyScalarIfExists(From, To);
-    return;
-  }
-  
-  cerr << *From;
-  cerr << *To;
-  assert(0 && "Do not know how to copy this yet!");
-  abort();
-}
-
-DSGraph& DataStructures::getOrCreateGraph(Function* F) {
-  assert(F && "No function");
-  DSGraph *&G = DSInfo[F];
-  if (!G) {
-    //Clone or Steal the Source Graph
-    DSGraph &BaseGraph = GraphSource->getDSGraph(*F);
-    if (Clone) {
-      G = new DSGraph(BaseGraph, GlobalECs, DSGraph::DontCloneAuxCallNodes);
-    } else {
-      G = new DSGraph(GlobalECs, GraphSource->getTargetData());
-      G->spliceFrom(BaseGraph);
-      G->getAuxFunctionCalls() = G->getFunctionCalls();
-    }
-    G->setPrintAuxCalls();
-    G->setGlobalsGraph(GlobalsGraph);
-    
-    // Note that this graph is the graph for ALL of the function in the SCC, not
-    // just F.
-    for (DSGraph::retnodes_iterator RI = G->retnodes_begin(),
-           E = G->retnodes_end(); RI != E; ++RI)
-      if (RI->first != F)
-        DSInfo[RI->first] = G;
-  }
-  return *G;
-}
-
-
-void DataStructures::formGlobalECs() {
-  // Grow the equivalence classes for the globals to include anything that we
-  // now know to be aliased.
-  std::set<GlobalValue*> ECGlobals;
-  buildGlobalECs(ECGlobals);
-  if (!ECGlobals.empty()) {
-    DOUT << "Eliminating " << ECGlobals.size() << " EC Globals!\n";
-    for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
-           E = DSInfo.end(); I != E; ++I)
-      eliminateUsesOfECGlobals(*I->second, ECGlobals);
-  }
-}
-
-/// BuildGlobalECs - Look at all of the nodes in the globals graph.  If any node
-/// contains multiple globals, DSA will never, ever, be able to tell the globals
-/// apart.  Instead of maintaining this information in all of the graphs
-/// throughout the entire program, store only a single global (the "leader") in
-/// the graphs, and build equivalence classes for the rest of the globals.
-void DataStructures::buildGlobalECs(std::set<GlobalValue*> &ECGlobals) {
-  DSScalarMap &SM = GlobalsGraph->getScalarMap();
-  EquivalenceClasses<GlobalValue*> &GlobalECs = SM.getGlobalECs();
-  for (DSGraph::node_iterator I = GlobalsGraph->node_begin(), 
-         E = GlobalsGraph->node_end();
-       I != E; ++I) {
-    if (I->getGlobalsList().size() <= 1) continue;
-
-    // First, build up the equivalence set for this block of globals.
-    DSNode::globals_iterator i = I->globals_begin();
-    GlobalValue *First = *i++;
-    for( ; i != I->globals_end(); ++i) {
-      GlobalECs.unionSets(First, *i);
-      ECGlobals.insert(*i);
-      SM.erase(SM.find(*i));
-    }
-
-    // Next, get the leader element.
-    assert(First == GlobalECs.getLeaderValue(First) &&
-           "First did not end up being the leader?");
-
-    // Finally, change the global node to only contain the leader.
-    I->clearGlobals();
-    I->addGlobal(First);
-  }
-
-  DEBUG(GlobalsGraph->AssertGraphOK());
-}
-
-/// EliminateUsesOfECGlobals - Once we have determined that some globals are in
-/// really just equivalent to some other globals, remove the globals from the
-/// specified DSGraph (if present), and merge any nodes with their leader nodes.
-void DataStructures::eliminateUsesOfECGlobals(DSGraph &G,
-                                              const std::set<GlobalValue*> &ECGlobals) {
-  DSScalarMap &SM = G.getScalarMap();
-  EquivalenceClasses<GlobalValue*> &GlobalECs = SM.getGlobalECs();
-
-  bool MadeChange = false;
-  for (DSScalarMap::global_iterator GI = SM.global_begin(), E = SM.global_end();
-       GI != E; ) {
-    GlobalValue *GV = *GI++;
-    if (!ECGlobals.count(GV)) continue;
-
-    const DSNodeHandle &GVNH = SM[GV];
-    assert(!GVNH.isNull() && "Global has null NH!?");
-
-    // Okay, this global is in some equivalence class.  Start by finding the
-    // leader of the class.
-    GlobalValue *Leader = GlobalECs.getLeaderValue(GV);
-
-    // If the leader isn't already in the graph, insert it into the node
-    // corresponding to GV.
-    if (!SM.global_count(Leader)) {
-      GVNH.getNode()->addGlobal(Leader);
-      SM[Leader] = GVNH;
-    } else {
-      // Otherwise, the leader is in the graph, make sure the nodes are the
-      // merged in the specified graph.
-      const DSNodeHandle &LNH = SM[Leader];
-      if (LNH.getNode() != GVNH.getNode())
-        LNH.mergeWith(GVNH);
-    }
-
-    // Next step, remove the global from the DSNode.
-    GVNH.getNode()->removeGlobal(GV);
-
-    // Finally, remove the global from the ScalarMap.
-    SM.erase(GV);
-    MadeChange = true;
-  }
-
-  DEBUG(if(MadeChange) G.AssertGraphOK());
-}
diff --git a/poolalloc/lib/DSA/DataStructureAA.cpp b/poolalloc/lib/DSA/DataStructureAA.cpp
deleted file mode 100644
index 5a0920a..0000000
--- a/poolalloc/lib/DSA/DataStructureAA.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-//===- DataStructureAA.cpp - Data Structure Based Alias Analysis ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass uses the top-down data structure graphs to implement a simple
-// context sensitive alias analysis.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Analysis/AliasAnalysis.h"
-#include "llvm/Analysis/Passes.h"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-using namespace llvm;
-
-namespace {
-  class DSAA : public ModulePass, public AliasAnalysis {
-    TDDataStructures *TD;
-    BUDataStructures *BU;
-
-    // These members are used to cache mod/ref information to make us return
-    // results faster, particularly for aa-eval.  On the first request of
-    // mod/ref information for a particular call site, we compute and store the
-    // calculated nodemap for the call site.  Any time DSA info is updated we
-    // free this information, and when we move onto a new call site, this
-    // information is also freed.
-    CallSite MapCS;
-    std::multimap<DSNode*, const DSNode*> CallerCalleeMap;
-  public:
-    static char ID;
-    DSAA() : ModulePass((intptr_t)&ID), TD(0) {}
-    ~DSAA() {
-      InvalidateCache();
-    }
-
-    void InvalidateCache() {
-      MapCS = CallSite();
-      CallerCalleeMap.clear();
-    }
-
-    //------------------------------------------------
-    // Implement the Pass API
-    //
-
-    // run - Build up the result graph, representing the pointer graph for the
-    // program.
-    //
-    bool runOnModule(Module &M) {
-      InitializeAliasAnalysis(this);
-      TD = &getAnalysis<TDDataStructures>();
-      BU = &getAnalysis<BUDataStructures>();
-      return false;
-    }
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AliasAnalysis::getAnalysisUsage(AU);
-      AU.setPreservesAll();                         // Does not transform code
-      AU.addRequiredTransitive<TDDataStructures>(); // Uses TD Datastructures
-      AU.addRequiredTransitive<BUDataStructures>(); // Uses BU Datastructures
-    }
-
-    //------------------------------------------------
-    // Implement the AliasAnalysis API
-    //
-
-    AliasResult alias(const Value *V1, unsigned V1Size,
-                      const Value *V2, unsigned V2Size);
-
-    ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
-    ModRefResult getModRefInfo(CallSite CS1, CallSite CS2) {
-      return AliasAnalysis::getModRefInfo(CS1,CS2);
-    }
-
-    virtual void deleteValue(Value *V) {
-      InvalidateCache();
-      BU->deleteValue(V);
-      TD->deleteValue(V);
-    }
-
-    virtual void copyValue(Value *From, Value *To) {
-      if (From == To) return;
-      InvalidateCache();
-      BU->copyValue(From, To);
-      TD->copyValue(From, To);
-    }
-
-  private:
-    DSGraph *getGraphForValue(const Value *V);
-  };
-
-  // Register the pass...
-  RegisterPass<DSAA> X("ds-aa", "Data Structure Graph Based Alias Analysis");
-
-  // Register as an implementation of AliasAnalysis
-  RegisterAnalysisGroup<AliasAnalysis> Y(X);
-}
-
-char DSAA::ID;
-
-ModulePass *llvm::createDSAAPass() { return new DSAA(); }
-
-// getGraphForValue - Return the DSGraph to use for queries about the specified
-// value...
-//
-DSGraph *DSAA::getGraphForValue(const Value *V) {
-  if (const Instruction *I = dyn_cast<Instruction>(V))
-    return &TD->getDSGraph(*I->getParent()->getParent());
-  else if (const Argument *A = dyn_cast<Argument>(V))
-    return &TD->getDSGraph(*A->getParent());
-  else if (const BasicBlock *BB = dyn_cast<BasicBlock>(V))
-    return &TD->getDSGraph(*BB->getParent());
-  return 0;
-}
-
-AliasAnalysis::AliasResult DSAA::alias(const Value *V1, unsigned V1Size,
-                                       const Value *V2, unsigned V2Size) {
-  if (V1 == V2) return MustAlias;
-
-  DSGraph *G1 = getGraphForValue(V1);
-  DSGraph *G2 = getGraphForValue(V2);
-  assert((!G1 || !G2 || G1 == G2) && "Alias query for 2 different functions?");
-
-  // Get the graph to use...
-  DSGraph &G = *(G1 ? G1 : (G2 ? G2 : &TD->getGlobalsGraph()));
-
-  const DSGraph::ScalarMapTy &GSM = G.getScalarMap();
-  DSGraph::ScalarMapTy::const_iterator I = GSM.find((Value*)V1);
-  if (I == GSM.end()) return NoAlias;
-
-  DSGraph::ScalarMapTy::const_iterator J = GSM.find((Value*)V2);
-  if (J == GSM.end()) return NoAlias;
-
-  DSNode  *N1 = I->second.getNode(),  *N2 = J->second.getNode();
-  unsigned O1 = I->second.getOffset(), O2 = J->second.getOffset();
-  if (N1 == 0 || N2 == 0)
-    // Can't tell whether anything aliases null.
-    return AliasAnalysis::alias(V1, V1Size, V2, V2Size);
-
-  // We can only make a judgment if one of the nodes is complete.
-  if (N1->isCompleteNode() || N2->isCompleteNode()) {
-    if (N1 != N2)
-      return NoAlias;   // Completely different nodes.
-
-    // See if they point to different offsets...  if so, we may be able to
-    // determine that they do not alias...
-    if (O1 != O2) {
-      if (O2 < O1) {    // Ensure that O1 <= O2
-        std::swap(V1, V2);
-        std::swap(O1, O2);
-        std::swap(V1Size, V2Size);
-      }
-
-      if (O1+V1Size <= O2)
-        return NoAlias;
-    }
-  }
-
-  // FIXME: we could improve on this by checking the globals graph for aliased
-  // global queries...
-  return AliasAnalysis::alias(V1, V1Size, V2, V2Size);
-}
-
-/// getModRefInfo - does a callsite modify or reference a value?
-///
-AliasAnalysis::ModRefResult
-DSAA::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
-  DSNode *N = 0;
-  // First step, check our cache.
-  if (CS.getInstruction() == MapCS.getInstruction()) {
-    {
-      const Function *Caller = CS.getInstruction()->getParent()->getParent();
-      DSGraph &CallerTDGraph = TD->getDSGraph(*Caller);
-
-      // Figure out which node in the TD graph this pointer corresponds to.
-      DSScalarMap &CallerSM = CallerTDGraph.getScalarMap();
-      DSScalarMap::iterator NI = CallerSM.find(P);
-      if (NI == CallerSM.end()) {
-        InvalidateCache();
-        return DSAA::getModRefInfo(CS, P, Size);
-      }
-      N = NI->second.getNode();
-    }
-
-  HaveMappingInfo:
-    assert(N && "Null pointer in scalar map??");
-
-    typedef std::multimap<DSNode*, const DSNode*>::iterator NodeMapIt;
-    std::pair<NodeMapIt, NodeMapIt> Range = CallerCalleeMap.equal_range(N);
-
-    // Loop over all of the nodes in the callee that correspond to "N", keeping
-    // track of aggregate mod/ref info.
-    bool NeverReads = true, NeverWrites = true;
-    for (; Range.first != Range.second; ++Range.first) {
-      if (Range.first->second->isModifiedNode())
-        NeverWrites = false;
-      if (Range.first->second->isReadNode())
-        NeverReads = false;
-      if (NeverReads == false && NeverWrites == false)
-        return AliasAnalysis::getModRefInfo(CS, P, Size);
-    }
-
-    ModRefResult Result = ModRef;
-    if (NeverWrites)      // We proved it was not modified.
-      Result = ModRefResult(Result & ~Mod);
-    if (NeverReads)       // We proved it was not read.
-      Result = ModRefResult(Result & ~Ref);
-
-    return ModRefResult(Result & AliasAnalysis::getModRefInfo(CS, P, Size));
-  }
-
-  // Any cached info we have is for the wrong function.
-  InvalidateCache();
-
-  Function *F = CS.getCalledFunction();
-
-  if (!F) return AliasAnalysis::getModRefInfo(CS, P, Size);
-
-  if (F->isDeclaration()) {
-    // If we are calling an external function, and if this global doesn't escape
-    // the portion of the program we have analyzed, we can draw conclusions
-    // based on whether the global escapes the program.
-    Function *Caller = CS.getInstruction()->getParent()->getParent();
-    DSGraph *G = &TD->getDSGraph(*Caller);
-    DSScalarMap::iterator NI = G->getScalarMap().find(P);
-    if (NI == G->getScalarMap().end()) {
-      // If it wasn't in the local function graph, check the global graph.  This
-      // can occur for globals who are locally reference but hoisted out to the
-      // globals graph despite that.
-      G = G->getGlobalsGraph();
-      NI = G->getScalarMap().find(P);
-      if (NI == G->getScalarMap().end())
-        return AliasAnalysis::getModRefInfo(CS, P, Size);
-    }
-
-    // If we found a node and it's complete, it cannot be passed out to the
-    // called function.
-    if (NI->second.getNode()->isCompleteNode())
-      return NoModRef;
-    return AliasAnalysis::getModRefInfo(CS, P, Size);
-  }
-
-  // Get the graphs for the callee and caller.  Note that we want the BU graph
-  // for the callee because we don't want all caller's effects incorporated!
-  const Function *Caller = CS.getInstruction()->getParent()->getParent();
-  DSGraph &CallerTDGraph = TD->getDSGraph(*Caller);
-  DSGraph &CalleeBUGraph = BU->getDSGraph(*F);
-
-  // Figure out which node in the TD graph this pointer corresponds to.
-  DSScalarMap &CallerSM = CallerTDGraph.getScalarMap();
-  DSScalarMap::iterator NI = CallerSM.find(P);
-  if (NI == CallerSM.end()) {
-    ModRefResult Result = ModRef;
-    if (isa<ConstantPointerNull>(P) || isa<UndefValue>(P))
-      return NoModRef;                 // null is never modified :)
-    else {
-      assert(isa<GlobalVariable>(P) &&
-    cast<GlobalVariable>(P)->getType()->getElementType()->isFirstClassType() &&
-             "This isn't a global that DSA inconsiderately dropped "
-             "from the graph?");
-
-      DSGraph &GG = *CallerTDGraph.getGlobalsGraph();
-      DSScalarMap::iterator NI = GG.getScalarMap().find(P);
-      if (NI != GG.getScalarMap().end() && !NI->second.isNull()) {
-        // Otherwise, if the node is only M or R, return this.  This can be
-        // useful for globals that should be marked const but are not.
-        DSNode *N = NI->second.getNode();
-        if (!N->isModifiedNode())
-          Result = (ModRefResult)(Result & ~Mod);
-        if (!N->isReadNode())
-          Result = (ModRefResult)(Result & ~Ref);
-      }
-    }
-
-    if (Result == NoModRef) return Result;
-    return ModRefResult(Result & AliasAnalysis::getModRefInfo(CS, P, Size));
-  }
-
-  // Compute the mapping from nodes in the callee graph to the nodes in the
-  // caller graph for this call site.
-  DSGraph::NodeMapTy CalleeCallerMap;
-  DSCallSite DSCS = CallerTDGraph.getDSCallSiteForCallSite(CS);
-  CallerTDGraph.computeCalleeCallerMapping(DSCS, *F, CalleeBUGraph,
-                                           CalleeCallerMap);
-
-  // Remember the mapping and the call site for future queries.
-  MapCS = CS;
-
-  // Invert the mapping into CalleeCallerInvMap.
-  for (DSGraph::NodeMapTy::iterator I = CalleeCallerMap.begin(),
-         E = CalleeCallerMap.end(); I != E; ++I)
-    CallerCalleeMap.insert(std::make_pair(I->second.getNode(), I->first));
-
-  N = NI->second.getNode();
-  goto HaveMappingInfo;
-}
diff --git a/poolalloc/lib/DSA/DataStructureOpt.cpp b/poolalloc/lib/DSA/DataStructureOpt.cpp
deleted file mode 100644
index e427c29..0000000
--- a/poolalloc/lib/DSA/DataStructureOpt.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//===- DataStructureOpt.cpp - Data Structure Analysis Based Optimizations -===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass uses DSA to a series of simple optimizations, like marking
-// unwritten global variables 'constant'.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Analysis/Passes.h"
-#include "llvm/Module.h"
-#include "llvm/Constant.h"
-#include "llvm/Type.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-using namespace llvm;
-
-namespace {
-  STATISTIC (NumGlobalsConstanted, "Number of globals marked constant");
-  STATISTIC (NumGlobalsIsolated, "Number of globals with references dropped");
-
-  class DSOpt : public ModulePass {
-    TDDataStructures *TD;
-  public:
-    static char ID;
-    DSOpt() : ModulePass((intptr_t)&ID) {};
-
-    bool runOnModule(Module &M) {
-      TD = &getAnalysis<TDDataStructures>();
-      bool Changed = OptimizeGlobals(M);
-      return Changed;
-    }
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<TDDataStructures>();      // Uses TD Datastructures
-      AU.addPreserved<LocalDataStructures>();  // Preserves local...
-      AU.addPreserved<TDDataStructures>();     // Preserves bu...
-      AU.addPreserved<BUDataStructures>();     // Preserves td...
-    }
-
-  private:
-    bool OptimizeGlobals(Module &M);
-  };
-
-  RegisterPass<DSOpt> X("ds-opt", "DSA-based simple optimizations");
-}
-
-char DSOpt::ID;
-
-ModulePass *llvm::createDSOptPass() { return new DSOpt(); }
-
-/// OptimizeGlobals - This method uses information taken from DSA to optimize
-/// global variables.
-///
-bool DSOpt::OptimizeGlobals(Module &M) {
-  DSGraph &GG = TD->getGlobalsGraph();
-  const DSGraph::ScalarMapTy &SM = GG.getScalarMap();
-  bool Changed = false;
-
-  for (Module::global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I)
-    if (!I->isDeclaration()) { // Loop over all of the non-external globals...
-      // Look up the node corresponding to this global, if it exists.
-      DSNode *GNode = 0;
-      DSGraph::ScalarMapTy::const_iterator SMI = SM.find(I);
-      if (SMI != SM.end()) GNode = SMI->second.getNode();
-
-      if (GNode == 0 && I->hasInternalLinkage()) {
-        // If there is no entry in the scalar map for this global, it was never
-        // referenced in the program.  If it has internal linkage, that means we
-        // can delete it.  We don't ACTUALLY want to delete the global, just
-        // remove anything that references the global: later passes will take
-        // care of nuking it.
-        if (!I->use_empty()) {
-          I->replaceAllUsesWith(Constant::getNullValue((Type*)I->getType()));
-          ++NumGlobalsIsolated;
-        }
-      } else if (GNode && GNode->isCompleteNode()) {
-
-        // If the node has not been read or written, and it is not externally
-        // visible, kill any references to it so it can be DCE'd.
-        if (!GNode->isModifiedNode() && !GNode->isReadNode() &&I->hasInternalLinkage()){
-          if (!I->use_empty()) {
-            I->replaceAllUsesWith(Constant::getNullValue((Type*)I->getType()));
-            ++NumGlobalsIsolated;
-          }
-        }
-
-        // We expect that there will almost always be a node for this global.
-        // If there is, and the node doesn't have the M bit set, we can set the
-        // 'constant' bit on the global.
-        if (!GNode->isModifiedNode() && !I->isConstant()) {
-          I->setConstant(true);
-          ++NumGlobalsConstanted;
-          Changed = true;
-        }
-      }
-    }
-  return Changed;
-}
diff --git a/poolalloc/lib/DSA/DataStructureStats.cpp b/poolalloc/lib/DSA/DataStructureStats.cpp
deleted file mode 100644
index fa38f65..0000000
--- a/poolalloc/lib/DSA/DataStructureStats.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//===- DataStructureStats.cpp - Various statistics for DS Graphs ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a little pass that prints out statistics for DS Graphs.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Function.h"
-#include "llvm/Instructions.h"
-#include "llvm/Pass.h"
-#include "llvm/Support/InstVisitor.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-#include <ostream>
-using namespace llvm;
-
-namespace {
-  STATISTIC (TotalNumCallees, "Total number of callee functions at all indirect call sites");
-  STATISTIC (NumIndirectCalls, "Total number of indirect call sites in the program");
-  STATISTIC (NumPoolNodes, "Number of allocation nodes that could be pool allocated");
-
-  // Typed/Untyped memory accesses: If DSA can infer that the types the loads
-  // and stores are accessing are correct (ie, the node has not been collapsed),
-  // increment the appropriate counter.
-  STATISTIC (NumTypedMemAccesses,
-                                "Number of loads/stores which are fully typed");
-  STATISTIC (NumUntypedMemAccesses,
-                                "Number of loads/stores which are untyped");
-
-  class DSGraphStats : public FunctionPass, public InstVisitor<DSGraphStats> {
-    void countCallees(const Function &F);
-    const DSGraph *TDGraph;
-
-    DSNode *getNodeForValue(Value *V);
-    bool isNodeForValueCollapsed(Value *V);
-  public:
-    static char ID;
-    DSGraphStats() : FunctionPass((intptr_t)&ID) {}
-
-    /// Driver functions to compute the Load/Store Dep. Graph per function.
-    bool runOnFunction(Function& F);
-
-    /// getAnalysisUsage - This modify nothing, and uses the Top-Down Graph.
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<TDDataStructures>();
-    }
-
-    void visitLoad(LoadInst &LI);
-    void visitStore(StoreInst &SI);
-
-    /// Debugging support methods
-    void print(std::ostream &O, const Module* = 0) const { }
-  };
-
-  static RegisterPass<DSGraphStats> Z("dsstats", "DS Graph Statistics");
-}
-
-char DSGraphStats::ID;
-
-FunctionPass *llvm::createDataStructureStatsPass() { 
-  return new DSGraphStats();
-}
-
-
-static bool isIndirectCallee(Value *V) {
-  if (isa<Function>(V)) return false;
-
-  if (CastInst *CI = dyn_cast<CastInst>(V))
-    return isIndirectCallee(CI->getOperand(0));
-  return true;
-}
-
-
-void DSGraphStats::countCallees(const Function& F) {
-  unsigned numIndirectCalls = 0, totalNumCallees = 0;
-
-  for (DSGraph::fc_iterator I = TDGraph->fc_begin(), E = TDGraph->fc_end();
-       I != E; ++I)
-    if (isIndirectCallee(I->getCallSite().getCalledValue())) {
-      // This is an indirect function call
-      std::vector<Function*> Callees;
-      I->getCalleeNode()->addFullFunctionList(Callees);
-
-      if (Callees.size() > 0) {
-        totalNumCallees  += Callees.size();
-        ++numIndirectCalls;
-      } else
-        cerr << "WARNING: No callee in Function '" << F.getName()
-             << "' at call: \n"
-             << *I->getCallSite().getInstruction();
-    }
-
-  TotalNumCallees  += totalNumCallees;
-  NumIndirectCalls += numIndirectCalls;
-
-  if (numIndirectCalls)
-    cout << "  In function " << F.getName() << ":  "
-         << (totalNumCallees / (double) numIndirectCalls)
-         << " average callees per indirect call\n";
-}
-
-DSNode *DSGraphStats::getNodeForValue(Value *V) {
-  const DSGraph *G = TDGraph;
-  if (isa<Constant>(V))
-    G = TDGraph->getGlobalsGraph();
-
-  const DSGraph::ScalarMapTy &ScalarMap = G->getScalarMap();
-  DSGraph::ScalarMapTy::const_iterator I = ScalarMap.find(V);
-  if (I != ScalarMap.end())
-    return I->second.getNode();
-  return 0;
-}
-
-bool DSGraphStats::isNodeForValueCollapsed(Value *V) {
-  if (DSNode *N = getNodeForValue(V))
-    return N->isNodeCompletelyFolded() || N->isIncompleteNode();
-  return false;
-}
-
-void DSGraphStats::visitLoad(LoadInst &LI) {
-  if (isNodeForValueCollapsed(LI.getOperand(0))) {
-    NumUntypedMemAccesses++;
-  } else {
-    NumTypedMemAccesses++;
-  }
-}
-
-void DSGraphStats::visitStore(StoreInst &SI) {
-  if (isNodeForValueCollapsed(SI.getOperand(1))) {
-    NumUntypedMemAccesses++;
-  } else {
-    NumTypedMemAccesses++;
-  }
-}
-
-
-
-bool DSGraphStats::runOnFunction(Function& F) {
-  TDGraph = &getAnalysis<TDDataStructures>().getDSGraph(F);
-  countCallees(F);
-  visit(F);
-  return true;
-}
diff --git a/poolalloc/lib/DSA/EquivClassGraphs.cpp b/poolalloc/lib/DSA/EquivClassGraphs.cpp
deleted file mode 100644
index fc8fcae..0000000
--- a/poolalloc/lib/DSA/EquivClassGraphs.cpp
+++ /dev/null
@@ -1,479 +0,0 @@
-//===- EquivClassGraphs.cpp - Merge equiv-class graphs & inline bottom-up -===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass is the same as the complete bottom-up graphs, but
-// with functions partitioned into equivalence classes and a single merged
-// DS graph for all functions in an equivalence class.  After this merging,
-// graphs are inlined bottom-up on the SCCs of the final (CBU) call graph.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "ECGraphs"
-#include "dsa/DataStructure.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/ADT/SCCIterator.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/EquivalenceClasses.h"
-#include "llvm/ADT/STLExtras.h"
-using namespace llvm;
-
-namespace {
-  RegisterPass<EquivClassGraphs> X("eqdatastructure",
-                    "Equivalence-class Bottom-up Data Structure Analysis");
-  STATISTIC (NumEquivBUInlines,
-                                "Number of graphs inlined");
-  STATISTIC (NumFoldGraphInlines,
-                                  "Number of graphs inlined");
-}
-
-char EquivClassGraphs::ID;
-
-#ifndef NDEBUG
-template<typename GT>
-static void CheckAllGraphs(Module *M, GT &ECGraphs) {
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    if (!I->isDeclaration()) {
-      DSGraph &G = ECGraphs.getDSGraph(*I);
-      if (G.retnodes_begin()->first != I)
-        continue;  // Only check a graph once.
-
-      DSGraph::NodeMapTy GlobalsGraphNodeMapping;
-      G.computeGToGGMapping(GlobalsGraphNodeMapping);
-    }
-}
-#endif
-
-// getSomeCalleeForCallSite - Return any one callee function at a call site.
-//
-Function *EquivClassGraphs::getSomeCalleeForCallSite(const CallSite &CS) const{
-  Function *thisFunc = CS.getCaller();
-  assert(thisFunc && "getSomeCalleeForCallSite(): Not a valid call site?");
-  DSGraph &DSG = getDSGraph(*thisFunc);
-  DSNode *calleeNode = DSG.getNodeForValue(CS.getCalledValue()).getNode();
-  std::map<DSNode*, Function *>::const_iterator I =
-    OneCalledFunction.find(calleeNode);
-  return (I == OneCalledFunction.end())? NULL : I->second;
-}
-
-// runOnModule - Calculate the bottom up data structure graphs for each function
-// in the program.
-//
-bool EquivClassGraphs::runOnModule(Module &M) {
-  CBU = &getAnalysis<CompleteBUDataStructures>();
-  GlobalECs = CBU->getGlobalECs();
-  DEBUG(CheckAllGraphs(&M, *CBU));
-
-  GlobalsGraph = new DSGraph(CBU->getGlobalsGraph(), GlobalECs);
-  GlobalsGraph->setPrintAuxCalls();
-
-  ActualCallees = CBU->getActualCallees();
-
-  // Find equivalence classes of functions called from common call sites.
-  // Fold the CBU graphs for all functions in an equivalence class.
-  buildIndirectFunctionSets(M);
-
-  // Stack of functions used for Tarjan's SCC-finding algorithm.
-  std::vector<DSGraph*> Stack;
-  std::map<DSGraph*, unsigned> ValMap;
-  unsigned NextID = 1;
-
-  Function *MainFunc = M.getFunction("main");
-  if (MainFunc && !MainFunc->isDeclaration()) {
-    processSCC(getOrCreateGraph(*MainFunc), Stack, NextID, ValMap);
-  } else {
-    cerr << "Fold Graphs: No 'main' function found!\n";
-  }
-
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration())
-      processSCC(getOrCreateGraph(*I), Stack, NextID, ValMap);
-
-  DEBUG(CheckAllGraphs(&M, *this));
-
-  getGlobalsGraph().removeTriviallyDeadNodes();
-  getGlobalsGraph().markIncompleteNodes(DSGraph::IgnoreGlobals);
-
-  // Merge the globals variables (not the calls) from the globals graph back
-  // into the main function's graph so that the main function contains all of
-  // the information about global pools and GV usage in the program.
-  if (MainFunc && !MainFunc->isDeclaration()) {
-    DSGraph &MainGraph = getOrCreateGraph(*MainFunc);
-    const DSGraph &GG = *MainGraph.getGlobalsGraph();
-    ReachabilityCloner RC(MainGraph, GG,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-
-    // Clone the global nodes into this graph.
-    for (DSScalarMap::global_iterator I = GG.getScalarMap().global_begin(),
-           E = GG.getScalarMap().global_end(); I != E; ++I)
-      if (isa<GlobalVariable>(*I))
-        RC.getClonedNH(GG.getNodeForValue(*I));
-
-    MainGraph.maskIncompleteMarkers();
-    MainGraph.markIncompleteNodes(DSGraph::MarkFormalArgs |
-                                  DSGraph::IgnoreGlobals);
-  }
-
-  // Final processing.  Note that dead node elimination may actually remove
-  // globals from a function graph that are immediately used.  If there are no
-  // scalars pointing to the node (e.g. because the only use is a direct store
-  // to a scalar global) we have to make sure to rematerialize the globals back
-  // into the graphs here, or clients will break!
-  for (Module::global_iterator GI = M.global_begin(), E = M.global_end();
-       GI != E; ++GI)
-    // This only happens to first class typed globals.
-    if (GI->getType()->getElementType()->isFirstClassType())
-      for (Value::use_iterator UI = GI->use_begin(), E = GI->use_end();
-           UI != E; ++UI)
-        // This only happens to direct uses by instructions.
-        if (Instruction *User = dyn_cast<Instruction>(*UI)) {
-          DSGraph &DSG = getOrCreateGraph(*User->getParent()->getParent());
-          if (!DSG.getScalarMap().count(GI)) {
-            // If this global does not exist in the graph, but it is immediately
-            // used by an instruction in the graph, clone it over from the
-            // globals graph.
-            ReachabilityCloner RC(DSG, *GlobalsGraph, 0);
-            RC.getClonedNH(GlobalsGraph->getNodeForValue(GI));
-          }
-        }
-
-  return false;
-}
-
-
-// buildIndirectFunctionSets - Iterate over the module looking for indirect
-// calls to functions.  If a call site can invoke any functions [F1, F2... FN],
-// unify the N functions together in the FuncECs set.
-//
-void EquivClassGraphs::buildIndirectFunctionSets(Module &M) {
-  const ActualCalleesTy& AC = CBU->getActualCallees();
-
-  // Loop over all of the indirect calls in the program.  If a call site can
-  // call multiple different functions, we need to unify all of the callees into
-  // the same equivalence class.
-  Instruction *LastInst = 0;
-  Function *FirstFunc = 0;
-  for (ActualCalleesTy::const_iterator I=AC.begin(), E=AC.end(); I != E; ++I) {
-    if (I->second->isDeclaration())
-      continue;                         // Ignore functions we cannot modify
-
-    CallSite CS = CallSite::get(I->first);
-
-    if (CS.getCalledFunction()) {       // Direct call:
-      FuncECs.insert(I->second);        // -- Make sure function has equiv class
-      FirstFunc = I->second;            // -- First callee at this site
-    } else {                            // Else indirect call
-      // DOUT << "CALLEE: " << I->second->getName()
-      //      << " from : " << I->first;
-      if (I->first != LastInst) {
-        // This is the first callee from this call site.
-        LastInst = I->first;
-        FirstFunc = I->second;
-        // Instead of storing the lastInst For Indirection call Sites we store
-        // the DSNode for the function ptr arguemnt
-        Function *thisFunc = LastInst->getParent()->getParent();
-        DSGraph &TFG = CBU->getDSGraph(*thisFunc);
-        DSNode *calleeNode = TFG.getNodeForValue(CS.getCalledValue()).getNode();
-        OneCalledFunction[calleeNode] = FirstFunc;
-        FuncECs.insert(I->second);
-      } else {
-        // This is not the first possible callee from a particular call site.
-        // Union the callee in with the other functions.
-        FuncECs.unionSets(FirstFunc, I->second);
-#ifndef NDEBUG
-        Function *thisFunc = LastInst->getParent()->getParent();
-        DSGraph &TFG = CBU->getDSGraph(*thisFunc);
-        DSNode *calleeNode = TFG.getNodeForValue(CS.getCalledValue()).getNode();
-        assert(OneCalledFunction.count(calleeNode) > 0 && "Missed a call?");
-#endif
-      }
-    }
-
-    // Now include all functions that share a graph with any function in the
-    // equivalence class.  More precisely, if F is in the class, and G(F) is
-    // its graph, then we include all other functions that are also in G(F).
-    // Currently, that is just the functions in the same call-graph-SCC as F.
-    //
-    DSGraph& funcDSGraph = CBU->getDSGraph(*I->second);
-    for (DSGraph::retnodes_iterator RI = funcDSGraph.retnodes_begin(),
-           RE = funcDSGraph.retnodes_end(); RI != RE; ++RI)
-      FuncECs.unionSets(FirstFunc, RI->first);
-  }
-
-  // Now that all of the equivalences have been built, merge the graphs for
-  // each equivalence class.
-  //
-  DOUT << "\nIndirect Function Equivalence Sets:\n";
-  for (EquivalenceClasses<Function*>::iterator EQSI = FuncECs.begin(), E =
-         FuncECs.end(); EQSI != E; ++EQSI) {
-    if (!EQSI->isLeader()) continue;
-
-    EquivalenceClasses<Function*>::member_iterator SI =
-      FuncECs.member_begin(EQSI);
-    assert(SI != FuncECs.member_end() && "Empty equiv set??");
-    EquivalenceClasses<Function*>::member_iterator SN = SI;
-    ++SN;
-    if (SN == FuncECs.member_end())
-      continue;   // Single function equivalence set, no merging to do.
-
-    Function* LF = *SI;
-
-#ifndef NDEBUG
-    DOUT <<"  Equivalence set for leader " << LF->getName() <<" = ";
-    for (SN = SI; SN != FuncECs.member_end(); ++SN)
-      DOUT << " " << (*SN)->getName() << "," ;
-    DOUT << "\n";
-#endif
-
-    // This equiv class has multiple functions: merge their graphs.  First,
-    // clone the CBU graph for the leader and make it the common graph for the
-    // equivalence graph.
-    DSGraph &MergedG = getOrCreateGraph(*LF);
-
-    // Record the argument nodes for use in merging later below.
-    std::vector<DSNodeHandle> ArgNodes;
-
-    for (Function::arg_iterator AI = LF->arg_begin(), E = LF->arg_end();
-         AI != E; ++AI)
-      if (DS::isPointerType(AI->getType()))
-        ArgNodes.push_back(MergedG.getNodeForValue(AI));
-
-    // Merge in the graphs of all other functions in this equiv. class.  Note
-    // that two or more functions may have the same graph, and it only needs
-    // to be merged in once.
-    std::set<DSGraph*> GraphsMerged;
-    GraphsMerged.insert(&CBU->getDSGraph(*LF));
-
-    for (++SI; SI != FuncECs.member_end(); ++SI) {
-      Function *F = *SI;
-      DSGraph &CBUGraph = CBU->getDSGraph(*F);
-      if (GraphsMerged.insert(&CBUGraph).second) {
-        // Record the "folded" graph for the function.
-        for (DSGraph::retnodes_iterator I = CBUGraph.retnodes_begin(),
-               E = CBUGraph.retnodes_end(); I != E; ++I) {
-          assert(DSInfo[I->first] == 0 && "Graph already exists for Fn!");
-          DSInfo[I->first] = &MergedG;
-        }
-
-        // Clone this member of the equivalence class into MergedG.
-        MergedG.cloneInto(CBUGraph);
-      }
-
-      // Merge the return nodes of all functions together.
-      MergedG.getReturnNodes()[LF].mergeWith(MergedG.getReturnNodes()[F]);
-
-      // Merge the function arguments with all argument nodes found so far.
-      // If there are extra function args, add them to the vector of argNodes
-      Function::arg_iterator AI2 = F->arg_begin(), AI2end = F->arg_end();
-      for (unsigned arg = 0, numArgs = ArgNodes.size();
-           arg != numArgs && AI2 != AI2end; ++AI2, ++arg)
-        if (DS::isPointerType(AI2->getType()))
-          ArgNodes[arg].mergeWith(MergedG.getNodeForValue(AI2));
-
-      for ( ; AI2 != AI2end; ++AI2)
-        if (DS::isPointerType(AI2->getType()))
-          ArgNodes.push_back(MergedG.getNodeForValue(AI2));
-      DEBUG(MergedG.AssertGraphOK());
-    }
-  }
-  DOUT << "\n";
-}
-
-
-DSGraph &EquivClassGraphs::getOrCreateGraph(Function &F) {
-  // Has the graph already been created?
-  DSGraph *&Graph = DSInfo[&F];
-  if (Graph) return *Graph;
-
-  DSGraph &CBUGraph = CBU->getDSGraph(F);
-
-  // Copy the CBU graph...
-  Graph = new DSGraph(CBUGraph, GlobalECs);   // updates the map via reference
-  Graph->setGlobalsGraph(&getGlobalsGraph());
-  Graph->setPrintAuxCalls();
-
-  // Make sure to update the DSInfo map for all functions in the graph!
-  for (DSGraph::retnodes_iterator I = Graph->retnodes_begin();
-       I != Graph->retnodes_end(); ++I)
-    if (I->first != &F) {
-      DSGraph *&FG = DSInfo[I->first];
-      assert(FG == 0 && "Merging function in SCC twice?");
-      FG = Graph;
-    }
-
-  return *Graph;
-}
-
-
-unsigned EquivClassGraphs::
-processSCC(DSGraph &FG, std::vector<DSGraph*> &Stack, unsigned &NextID,
-           std::map<DSGraph*, unsigned> &ValMap) {
-  std::map<DSGraph*, unsigned>::iterator It = ValMap.lower_bound(&FG);
-  if (It != ValMap.end() && It->first == &FG)
-    return It->second;
-
-  DOUT << "    ProcessSCC for function " << FG.getFunctionNames() << "\n";
-
-  unsigned Min = NextID++, MyID = Min;
-  ValMap[&FG] = Min;
-  Stack.push_back(&FG);
-
-  // The edges out of the current node are the call site targets...
-  for (DSGraph::fc_iterator CI = FG.fc_begin(), CE = FG.fc_end();
-       CI != CE; ++CI) {
-    Instruction *Call = CI->getCallSite().getInstruction();
-
-    // Loop over all of the actually called functions...
-    for (callee_iterator I = callee_begin(Call), E = callee_end(Call);
-         I != E; ++I)
-      if (!I->second->isDeclaration()) {
-        // Process the callee as necessary.
-        unsigned M = processSCC(getOrCreateGraph(*I->second),
-                                Stack, NextID, ValMap);
-        if (M < Min) Min = M;
-      }
-  }
-
-  assert(ValMap[&FG] == MyID && "SCC construction assumption wrong!");
-  if (Min != MyID)
-    return Min;         // This is part of a larger SCC!
-
-  // If this is a new SCC, process it now.
-  bool MergedGraphs = false;
-  while (Stack.back() != &FG) {
-    DSGraph *NG = Stack.back();
-    ValMap[NG] = ~0U;
-
-    // If the SCC found is not the same as those found in CBU, make sure to
-    // merge the graphs as appropriate.
-    FG.cloneInto(*NG);
-
-    // Update the DSInfo map and delete the old graph...
-    for (DSGraph::retnodes_iterator I = NG->retnodes_begin();
-         I != NG->retnodes_end(); ++I)
-      DSInfo[I->first] = &FG;
-
-    // Remove NG from the ValMap since the pointer may get recycled.
-    ValMap.erase(NG);
-    delete NG;
-    MergedGraphs = true;
-    Stack.pop_back();
-  }
-
-  // Clean up the graph before we start inlining a bunch again.
-  if (MergedGraphs)
-    FG.removeTriviallyDeadNodes();
-
-  Stack.pop_back();
-
-  processGraph(FG);
-  ValMap[&FG] = ~0U;
-  return MyID;
-}
-
-
-/// processGraph - Process the CBU graphs for the program in bottom-up order on
-/// the SCC of the __ACTUAL__ call graph.  This builds final folded CBU graphs.
-void EquivClassGraphs::processGraph(DSGraph &G) {
-  DOUT << "    ProcessGraph for function " << G.getFunctionNames() << "\n";
-
-  hash_set<Instruction*> calls;
-
-  // Else we need to inline some callee graph.  Visit all call sites.
-  // The edges out of the current node are the call site targets...
-  unsigned i = 0;
-  for (DSGraph::fc_iterator CI = G.fc_begin(), CE = G.fc_end(); CI != CE;
-       ++CI, ++i) {
-    const DSCallSite &CS = *CI;
-    Instruction *TheCall = CS.getCallSite().getInstruction();
-
-    assert(calls.insert(TheCall).second &&
-           "Call instruction occurs multiple times in graph??");
-
-    if (CS.getRetVal().isNull() && CS.getNumPtrArgs() == 0)
-      continue;
-
-    // Inline the common callee graph into the current graph, if the callee
-    // graph has not changed.  Note that all callees should have the same
-    // graph so we only need to do this once.
-    //
-    DSGraph* CalleeGraph = NULL;
-    callee_iterator I = callee_begin(TheCall), E = callee_end(TheCall);
-    unsigned TNum, Num;
-
-    // Loop over all potential callees to find the first non-external callee.
-    for (TNum = 0, Num = std::distance(I, E); I != E; ++I, ++TNum)
-      if (!I->second->isDeclaration())
-        break;
-
-    // Now check if the graph has changed and if so, clone and inline it.
-    if (I != E) {
-      Function *CalleeFunc = I->second;
-
-      // Merge the callee's graph into this graph, if not already the same.
-      // Callees in the same equivalence class (which subsumes those
-      // in the same SCCs) have the same graph.  Note that all recursion
-      // including self-recursion have been folded in the equiv classes.
-      //
-      CalleeGraph = &getOrCreateGraph(*CalleeFunc);
-      if (CalleeGraph != &G) {
-        ++NumFoldGraphInlines;
-        G.mergeInGraph(CS, *CalleeFunc, *CalleeGraph,
-                       DSGraph::StripAllocaBit |
-                       DSGraph::DontCloneCallNodes |
-                       DSGraph::DontCloneAuxCallNodes);
-        DOUT << "    Inlining graph [" << i << "/"
-             << G.getFunctionCalls().size()-1
-             << ":" << TNum << "/" << Num-1 << "] for "
-             << CalleeFunc->getName() << "["
-             << CalleeGraph->getGraphSize() << "+"
-             << CalleeGraph->getAuxFunctionCalls().size()
-             << "] into '" /*<< G.getFunctionNames()*/ << "' ["
-             << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
-             << "]\n";
-      }
-    }
-
-#ifndef NDEBUG
-    // Now loop over the rest of the callees and make sure they have the
-    // same graph as the one inlined above.
-    if (CalleeGraph)
-      for (++I, ++TNum; I != E; ++I, ++TNum)
-        if (!I->second->isDeclaration())
-          assert(CalleeGraph == &getOrCreateGraph(*I->second) &&
-                 "Callees at a call site have different graphs?");
-#endif
-  }
-
-  // Recompute the Incomplete markers.
-  G.maskIncompleteMarkers();
-  G.markIncompleteNodes(DSGraph::MarkFormalArgs);
-
-  // Delete dead nodes.  Treat globals that are unreachable but that can
-  // reach live nodes as live.
-  G.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-
-  // When this graph is finalized, clone the globals in the graph into the
-  // globals graph to make sure it has everything, from all graphs.
-  ReachabilityCloner RC(*G.getGlobalsGraph(), G, DSGraph::StripAllocaBit);
-
-  // Clone everything reachable from globals in the function graph into the
-  // globals graph.
-  DSScalarMap &MainSM = G.getScalarMap();
-  for (DSScalarMap::global_iterator I = MainSM.global_begin(),
-         E = MainSM.global_end(); I != E; ++I)
-    RC.getClonedNH(MainSM[*I]);
-
-  DOUT << "  -- DONE ProcessGraph for function " << G.getFunctionNames() <<"\n";
-}
diff --git a/poolalloc/lib/DSA/GraphChecker.cpp b/poolalloc/lib/DSA/GraphChecker.cpp
deleted file mode 100644
index 8d03c88..0000000
--- a/poolalloc/lib/DSA/GraphChecker.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-//===- GraphChecker.cpp - Assert that various graph properties hold -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass is used to test DSA with regression tests.  It can be used to check
-// that certain graph properties hold, such as two nodes being disjoint, whether
-// or not a node is collapsed, etc.  These are the command line arguments that
-// it supports:
-//
-//   --dsgc-dspass={local,bu,td}      - Specify what flavor of graph to check
-//   --dsgc-abort-if-any-collapsed    - Abort if any collapsed nodes are found
-//   --dsgc-abort-if-collapsed=<list> - Abort if a node pointed to by an SSA
-//                                      value with name in <list> is collapsed
-//   --dsgc-check-flags=<list>        - Abort if the specified nodes have flags
-//                                      that are not specified.
-//   --dsgc-abort-if-merged=<list>    - Abort if any of the named SSA values
-//                                      point to the same node.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/Value.h"
-#include <set>
-using namespace llvm;
-
-namespace {
-  enum DSPass { local, bu, td };
-  cl::opt<DSPass>
-  DSPass("dsgc-dspass", cl::Hidden,
-       cl::desc("Specify which DSA pass the -datastructure-gc pass should use"),
-         cl::values(clEnumVal(local, "Local pass"),
-                    clEnumVal(bu,    "Bottom-up pass"),
-                    clEnumVal(td,    "Top-down pass"),
-                    clEnumValEnd), cl::init(local));
-
-  cl::opt<bool>
-  AbortIfAnyCollapsed("dsgc-abort-if-any-collapsed", cl::Hidden,
-                      cl::desc("Abort if any collapsed nodes are found"));
-  cl::list<std::string>
-  AbortIfCollapsed("dsgc-abort-if-collapsed", cl::Hidden, cl::CommaSeparated,
-                   cl::desc("Abort if any of the named symbols is collapsed"));
-  cl::list<std::string>
-  CheckFlags("dsgc-check-flags", cl::Hidden, cl::CommaSeparated,
-             cl::desc("Check that flags are specified for nodes"));
-  cl::list<std::string>
-  AbortIfMerged("dsgc-abort-if-merged", cl::Hidden, cl::CommaSeparated,
-             cl::desc("Abort if any of the named symbols are merged together"));
-
-  struct DSGC : public FunctionPass {
-    static char ID;
-    DSGC();
-    bool doFinalization(Module &M);
-    bool runOnFunction(Function &F);
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      switch (DSPass) {
-      case local: AU.addRequired<LocalDataStructures>(); break;
-      case bu:    AU.addRequired<BUDataStructures>(); break;
-      case td:    AU.addRequired<TDDataStructures>(); break;
-      }
-      AU.setPreservesAll();
-    }
-    void print(std::ostream &O, const Module *M) const {}
-
-  private:
-    void verify(const DSGraph &G);
-  };
-
-  RegisterPass<DSGC> X("datastructure-gc", "DSA Graph Checking Pass");
-}
-
-char DSGC::ID;
-
-FunctionPass *llvm::createDataStructureGraphCheckerPass() {
-  return new DSGC();
-}
-
-
-DSGC::DSGC() : FunctionPass((intptr_t)&ID) {
-  if (!AbortIfAnyCollapsed && AbortIfCollapsed.empty() &&
-      CheckFlags.empty() && AbortIfMerged.empty()) {
-    cerr << "The -datastructure-gc is useless if you don't specify any"
-         << " -dsgc-* options.  See the -help-hidden output for a list.\n";
-    abort();
-  }
-}
-
-
-/// doFinalization - Verify that the globals graph is in good shape...
-///
-bool DSGC::doFinalization(Module &M) {
-  switch (DSPass) {
-  case local:verify(getAnalysis<LocalDataStructures>().getGlobalsGraph());break;
-  case bu:   verify(getAnalysis<BUDataStructures>().getGlobalsGraph()); break;
-  case td:   verify(getAnalysis<TDDataStructures>().getGlobalsGraph()); break;
-  }
-  return false;
-}
-
-/// runOnFunction - Get the DSGraph for this function and verify that it is ok.
-///
-bool DSGC::runOnFunction(Function &F) {
-  switch (DSPass) {
-  case local: verify(getAnalysis<LocalDataStructures>().getDSGraph(F)); break;
-  case bu:    verify(getAnalysis<BUDataStructures>().getDSGraph(F)); break;
-  case td:    verify(getAnalysis<TDDataStructures>().getDSGraph(F)); break;
-  }
-
-  return false;
-}
-
-/// verify - This is the function which checks to make sure that all of the
-/// invariants established on the command line are true.
-///
-void DSGC::verify(const DSGraph &G) {
-  // Loop over all of the nodes, checking to see if any are collapsed...
-  if (AbortIfAnyCollapsed) {
-    for (DSGraph::node_const_iterator I = G.node_begin(), E = G.node_end();
-         I != E; ++I)
-      if (I->isNodeCompletelyFolded()) {
-        cerr << "Node is collapsed: ";
-        I->print(cerr, &G);
-        abort();
-      }
-  }
-
-  if (!AbortIfCollapsed.empty() || !CheckFlags.empty() ||
-      !AbortIfMerged.empty()) {
-    // Convert from a list to a set, because we don't have cl::set's yet.  FIXME
-    std::set<std::string> AbortIfCollapsedS(AbortIfCollapsed.begin(),
-                                            AbortIfCollapsed.end());
-    std::set<std::string> AbortIfMergedS(AbortIfMerged.begin(),
-                                         AbortIfMerged.end());
-    std::map<std::string, unsigned> CheckFlagsM;
-
-    for (cl::list<std::string>::iterator I = CheckFlags.begin(),
-           E = CheckFlags.end(); I != E; ++I) {
-      std::string::size_type ColonPos = I->rfind(':');
-      if (ColonPos == std::string::npos) {
-        cerr << "Error: '" << *I
-             << "' is an invalid value for the --dsgc-check-flags option!\n";
-        abort();
-      }
-
-      unsigned Flags = 0;
-      for (unsigned C = ColonPos+1; C != I->size(); ++C)
-        switch ((*I)[C]) {
-        case 'S': Flags |= DSNode::AllocaNode;      break;
-        case 'H': Flags |= DSNode::HeapNode;        break;
-        case 'G': Flags |= DSNode::GlobalNode;      break;
-        case 'U': Flags |= DSNode::UnknownNode;     break;
-        case 'I': Flags |= DSNode::IncompleteNode;  break;
-        case 'M': Flags |= DSNode::ModifiedNode;    break;
-        case 'R': Flags |= DSNode::ReadNode;        break;
-        case 'A': Flags |= DSNode::ArrayNode;       break;
-        default: cerr << "Invalid DSNode flag!\n"; abort();
-        }
-      CheckFlagsM[std::string(I->begin(), I->begin()+ColonPos)] = Flags;
-    }
-
-    // Now we loop over all of the scalars, checking to see if any are collapsed
-    // that are not supposed to be, or if any are merged together.
-    const DSGraph::ScalarMapTy &SM = G.getScalarMap();
-    std::map<DSNode*, std::string> AbortIfMergedNodes;
-
-    for (DSGraph::ScalarMapTy::const_iterator I = SM.begin(), E = SM.end();
-         I != E; ++I)
-      if (I->first->hasName() && I->second.getNode()) {
-        const std::string &Name = I->first->getName();
-        DSNode *N = I->second.getNode();
-
-        // Verify it is not collapsed if it is not supposed to be...
-        if (N->isNodeCompletelyFolded() && AbortIfCollapsedS.count(Name)) {
-          cerr << "Node for value '%" << Name << "' is collapsed: ";
-          N->print(cerr, &G);
-          abort();
-        }
-
-        if (CheckFlagsM.count(Name) && CheckFlagsM[Name] != N->getNodeFlags()) {
-          cerr << "Node flags are not as expected for node: " << Name 
-               << " (" << CheckFlagsM[Name] << ":" <<N->getNodeFlags()
-               << ")\n";
-          N->print(cerr, &G);
-          abort();
-        }
-
-        // Verify that it is not merged if it is not supposed to be...
-        if (AbortIfMergedS.count(Name)) {
-          if (AbortIfMergedNodes.count(N)) {
-            cerr << "Nodes for values '%" << Name << "' and '%"
-                 << AbortIfMergedNodes[N] << "' is merged: ";
-            N->print(cerr, &G);
-            abort();
-          }
-          AbortIfMergedNodes[N] = Name;
-        }
-      }
-  }
-}
diff --git a/poolalloc/lib/DSA/Local.cpp b/poolalloc/lib/DSA/Local.cpp
deleted file mode 100644
index 9ab40ec..0000000
--- a/poolalloc/lib/DSA/Local.cpp
+++ /dev/null
@@ -1,770 +0,0 @@
-//===- Local.cpp - Compute a local data structure graph for a function ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Compute the local version of the data structure graph for a function.  The
-// external interface to this file is the DSGraph constructor.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/Statistic.h"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Support/InstVisitor.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-#include <iostream>
-
-// FIXME: This should eventually be a FunctionPass that is automatically
-// aggregated into a Pass.
-//
-#include "llvm/Module.h"
-
-using namespace llvm;
-
-static RegisterPass<LocalDataStructures>
-X("dsa-local", "Local Data Structure Analysis");
-
-static cl::list<std::string>
-AllocList("dsa-alloc-list",
-          cl::value_desc("list"),
-          cl::desc("List of functions that allocate memory from the heap"),
-          cl::CommaSeparated, cl::Hidden);
-
-static cl::list<std::string>
-FreeList("dsa-free-list",
-          cl::value_desc("list"),
-          cl::desc("List of functions that free memory from the heap"),
-          cl::CommaSeparated, cl::Hidden);
-
-namespace {
-  //===--------------------------------------------------------------------===//
-  //  GraphBuilder Class
-  //===--------------------------------------------------------------------===//
-  //
-  /// This class is the builder class that constructs the local data structure
-  /// graph by performing a single pass over the function in question.
-  ///
-  class GraphBuilder : InstVisitor<GraphBuilder> {
-    DSGraph &G;
-    Function* FB;
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Helper functions used to implement the visitation functions...
-
-    void MergeConstantInitIntoNode(DSNodeHandle &NH, const Type* Ty, Constant *C);
-
-    /// createNode - Create a new DSNode, ensuring that it is properly added to
-    /// the graph.
-    ///
-    DSNode *createNode(const Type *Ty = 0) 
-    {   
-      DSNode* ret = new DSNode(Ty, &G);
-      assert(ret->getParentGraph() && "No parent?");
-      return ret;
-    }
-
-    /// setDestTo - Set the ScalarMap entry for the specified value to point to
-    /// the specified destination.  If the Value already points to a node, make
-    /// sure to merge the two destinations together.
-    ///
-    void setDestTo(Value &V, const DSNodeHandle &NH);
-
-    /// getValueDest - Return the DSNode that the actual value points to.
-    ///
-    DSNodeHandle getValueDest(Value &V);
-
-    /// getLink - This method is used to return the specified link in the
-    /// specified node if one exists.  If a link does not already exist (it's
-    /// null), then we create a new node, link it, then return it.
-    ///
-    DSNodeHandle &getLink(const DSNodeHandle &Node, unsigned Link = 0);
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Visitor functions, used to handle each instruction type we encounter...
-    friend class InstVisitor<GraphBuilder>;
-
-    void visitMallocInst(MallocInst &MI)
-    { setDestTo(MI, createNode()->setHeapMarker()); }
-
-    void visitAllocaInst(AllocaInst &AI)
-    { setDestTo(AI, createNode()->setAllocaMarker()); }
-
-    void visitFreeInst(FreeInst &FI)
-    { if (DSNode *N = getValueDest(*FI.getOperand(0)).getNode())
-        N->setHeapMarker();
-    }
-
-    //the simple ones
-    void visitPHINode(PHINode &PN);
-    void visitSelectInst(SelectInst &SI);
-    void visitLoadInst(LoadInst &LI);
-    void visitStoreInst(StoreInst &SI);
-    void visitReturnInst(ReturnInst &RI);
-    void visitVAArgInst(VAArgInst   &I);
-    void visitIntToPtrInst(IntToPtrInst &I);
-    void visitPtrToIntInst(PtrToIntInst &I);
-    void visitBitCastInst(BitCastInst &I);
-    void visitCmpInst(CmpInst &I);
-
-    //the nasty ones
-    void visitGetElementPtrInst(User &GEP);
-    void visitCallInst(CallInst &CI);
-    void visitInvokeInst(InvokeInst &II);
-    void visitInstruction(Instruction &I);
-
-    bool visitIntrinsic(CallSite CS, Function* F);
-    void visitCallSite(CallSite CS);
-
-  public:
-    GraphBuilder(Function &f, DSGraph &g)
-      : G(g), FB(&f) {
-      // Create scalar nodes for all pointer arguments...
-      for (Function::arg_iterator I = f.arg_begin(), E = f.arg_end();
-           I != E; ++I) {
-        if (isa<PointerType>(I->getType())) {
-          DSNode * Node = getValueDest(*I).getNode();
-
-          if (!f.hasInternalLinkage() || f.isDeclaration()) {
-            Node->setExternalMarker();
-            //pecimistic assumptions on externals
-            if (f.isDeclaration())
-              Node->setReadMarker()->setModifiedMarker();
-          }
-        }
-      }
-
-      // Create an entry for the return, which tracks which functions are in the graph
-      g.getOrCreateReturnNodeFor(f);
-
-      if (!f.isDeclaration()) {
-        visit(f);  // Single pass over the function
-
-        // If there are any constant globals referenced in this function, merge their
-        // initializers into the local graph from the globals graph.
-        if (g.getScalarMap().global_begin() != g.getScalarMap().global_end()) {
-          ReachabilityCloner RC(g, *g.getGlobalsGraph(), 0);
-          
-          for (DSScalarMap::global_iterator I = g.getScalarMap().global_begin();
-               I != g.getScalarMap().global_end(); ++I)
-            if (GlobalVariable *GV = dyn_cast<GlobalVariable>(*I))
-              if (!GV->isDeclaration() && GV->isConstant())
-                RC.merge(g.getNodeForValue(GV), g.getGlobalsGraph()->getNodeForValue(GV));
-        }
-      } else {
-        DSNodeHandle& RNH = g.getOrCreateReturnNodeFor(f);
-        //Make sure return values from externals are marked as such
-        if (isa<PointerType>(f.getReturnType()))
-          RNH.mergeWith(createNode()->setReadMarker()->setModifiedMarker()->setExternalMarker());
-      }
-      
-      g.markIncompleteNodes(DSGraph::MarkFormalArgs);
-      
-      // Remove any nodes made dead due to merging...
-      g.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-    }
-
-    // GraphBuilder ctor for working on the globals graph
-    explicit GraphBuilder(DSGraph& g)
-      :G(g), FB(0)
-    {}
-
-    void mergeInGlobalInitializer(GlobalVariable *GV);
-  };
-}
-
-//===----------------------------------------------------------------------===//
-// Helper method implementations...
-//
-
-/// getValueDest - Return the DSNode that the actual value points to.
-///
-DSNodeHandle GraphBuilder::getValueDest(Value &Val) {
-  Value *V = &Val;
-  if (isa<Constant>(V) && cast<Constant>(V)->isNullValue()) 
-    return 0;  // Null doesn't point to anything, don't add to ScalarMap!
-
-  DSNodeHandle &NH = G.getNodeForValue(V);
-  if (!NH.isNull())
-    return NH;     // Already have a node?  Just return it...
-
-  // Otherwise we need to create a new node to point to.
-  // Check first for constant expressions that must be traversed to
-  // extract the actual value.
-  DSNode* N;
-  if (GlobalValue* GV = dyn_cast<GlobalValue>(V)) {
-    // Create a new global node for this global variable.
-    N = createNode(GV->getType()->getElementType());
-    N->addGlobal(GV);
-  } else if (Constant *C = dyn_cast<Constant>(V)) {
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C)) {
-      if (CE->isCast()) {
-        if (isa<PointerType>(CE->getOperand(0)->getType()))
-          NH = getValueDest(*CE->getOperand(0));
-        else
-          NH = createNode()->setUnknownMarker();
-      } else if (CE->getOpcode() == Instruction::GetElementPtr) {
-        visitGetElementPtrInst(*CE);
-        assert(G.hasNodeForValue(CE) && "GEP didn't get processed right?");
-        NH = G.getNodeForValue(CE);
-      } else {
-        // This returns a conservative unknown node for any unhandled ConstExpr
-        return NH = createNode()->setUnknownMarker();
-      }
-      if (NH.isNull()) {  // (getelementptr null, X) returns null
-        G.eraseNodeForValue(V);
-        return 0;
-      }
-      return NH;
-    } else if (isa<UndefValue>(C)) {
-      G.eraseNodeForValue(V);
-      return 0;
-    } else {
-      assert(0 && "Unknown constant type!");
-    }
-    N = createNode(); // just create a shadow node
-  } else {
-    // Otherwise just create a shadow node
-    N = createNode();
-  }
-
-  NH.setTo(N, 0);      // Remember that we are pointing to it...
-  return NH;
-}
-
-
-/// getLink - This method is used to return the specified link in the
-/// specified node if one exists.  If a link does not already exist (it's
-/// null), then we create a new node, link it, then return it.  We must
-/// specify the type of the Node field we are accessing so that we know what
-/// type should be linked to if we need to create a new node.
-///
-DSNodeHandle &GraphBuilder::getLink(const DSNodeHandle &node, unsigned LinkNo) {
-  DSNodeHandle &Node = const_cast<DSNodeHandle&>(node);
-  DSNodeHandle &Link = Node.getLink(LinkNo);
-  if (Link.isNull()) {
-    // If the link hasn't been created yet, make and return a new shadow node
-    Link = createNode();
-  }
-  return Link;
-}
-
-
-/// setDestTo - Set the ScalarMap entry for the specified value to point to the
-/// specified destination.  If the Value already points to a node, make sure to
-/// merge the two destinations together.
-///
-void GraphBuilder::setDestTo(Value &V, const DSNodeHandle &NH) {
-  G.getNodeForValue(&V).mergeWith(NH);
-}
-
-
-//===----------------------------------------------------------------------===//
-// Specific instruction type handler implementations...
-//
-
-// PHINode - Make the scalar for the PHI node point to all of the things the
-// incoming values point to... which effectively causes them to be merged.
-//
-void GraphBuilder::visitPHINode(PHINode &PN) {
-  if (!isa<PointerType>(PN.getType())) return; // Only pointer PHIs
-
-  DSNodeHandle &PNDest = G.getNodeForValue(&PN);
-  for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i)
-    PNDest.mergeWith(getValueDest(*PN.getIncomingValue(i)));
-}
-
-void GraphBuilder::visitSelectInst(SelectInst &SI) {
-  if (!isa<PointerType>(SI.getType())) return; // Only pointer Selects
-
-  DSNodeHandle &Dest = G.getNodeForValue(&SI);
-  Dest.mergeWith(getValueDest(*SI.getOperand(1)));
-  Dest.mergeWith(getValueDest(*SI.getOperand(2)));
-}
-
-void GraphBuilder::visitLoadInst(LoadInst &LI) {
-  DSNodeHandle Ptr = getValueDest(*LI.getOperand(0));
-
-  if (Ptr.isNull()) return; // Load from null
-
-  // Make that the node is read from...
-  Ptr.getNode()->setReadMarker();
-
-  // Ensure a typerecord exists...
-  Ptr.getNode()->mergeTypeInfo(LI.getType(), Ptr.getOffset(), false);
-
-  if (isa<PointerType>(LI.getType()))
-    setDestTo(LI, getLink(Ptr));
-}
-
-void GraphBuilder::visitStoreInst(StoreInst &SI) {
-  const Type *StoredTy = SI.getOperand(0)->getType();
-  DSNodeHandle Dest = getValueDest(*SI.getOperand(1));
-  if (Dest.isNull()) return;
-
-  // Mark that the node is written to...
-  Dest.getNode()->setModifiedMarker();
-
-  // Ensure a type-record exists...
-  Dest.getNode()->mergeTypeInfo(StoredTy, Dest.getOffset());
-
-  // Avoid adding edges from null, or processing non-"pointer" stores
-  if (isa<PointerType>(StoredTy))
-    Dest.addEdgeTo(getValueDest(*SI.getOperand(0)));
-}
-
-void GraphBuilder::visitReturnInst(ReturnInst &RI) {
-  if (RI.getNumOperands() && isa<PointerType>(RI.getOperand(0)->getType()))
-    G.getOrCreateReturnNodeFor(*FB).mergeWith(getValueDest(*RI.getOperand(0)));
-}
-
-void GraphBuilder::visitVAArgInst(VAArgInst &I) {
-  //FIXME: also updates the argument
-  DSNodeHandle Ptr = getValueDest(*I.getOperand(0));
-  if (Ptr.isNull()) return;
-
-  // Make that the node is read and written
-  Ptr.getNode()->setReadMarker()->setModifiedMarker();
-
-  // Ensure a type record exists.
-  DSNode *PtrN = Ptr.getNode();
-  PtrN->mergeTypeInfo(I.getType(), Ptr.getOffset(), false);
-
-  if (isa<PointerType>(I.getType()))
-    setDestTo(I, getLink(Ptr));
-}
-
-void GraphBuilder::visitIntToPtrInst(IntToPtrInst &I) {
-  std::cerr << "cast in " << I.getParent()->getParent()->getName() << "\n";
-  I.dump();
-  setDestTo(I, createNode()->setUnknownMarker()->setIntToPtrMarker()); 
-}
-
-void GraphBuilder::visitPtrToIntInst(PtrToIntInst& I) {
-  if (DSNode* N = getValueDest(*I.getOperand(0)).getNode())
-    N->setPtrToIntMarker();
-}
-
-
-void GraphBuilder::visitBitCastInst(BitCastInst &I) {
-  if (!isa<PointerType>(I.getType())) return; // Only pointers
-  DSNodeHandle Ptr = getValueDest(*I.getOperand(0));
-  if (Ptr.isNull()) return;
-  setDestTo(I, Ptr);
-}
-
-void GraphBuilder::visitCmpInst(CmpInst &I) {
-  //Should this merge or not?  I don't think so.
-}
-
-void GraphBuilder::visitGetElementPtrInst(User &GEP) {
-  DSNodeHandle Value = getValueDest(*GEP.getOperand(0));
-  if (Value.isNull())
-    Value = createNode();
-
-  // As a special case, if all of the index operands of GEP are constant zeros,
-  // handle this just like we handle casts (ie, don't do much).
-  bool AllZeros = true;
-  for (unsigned i = 1, e = GEP.getNumOperands(); i != e; ++i)
-    if (GEP.getOperand(i) !=
-           Constant::getNullValue(GEP.getOperand(i)->getType())) {
-      AllZeros = false;
-      break;
-    }
-
-  // If all of the indices are zero, the result points to the operand without
-  // applying the type.
-  if (AllZeros || (!Value.isNull() &&
-                   Value.getNode()->isNodeCompletelyFolded())) {
-    setDestTo(GEP, Value);
-    return;
-  }
-
-
-  const PointerType *PTy = cast<PointerType>(GEP.getOperand(0)->getType());
-  const Type *CurTy = PTy->getElementType();
-
-  if (Value.getNode()->mergeTypeInfo(CurTy, Value.getOffset())) {
-    // If the node had to be folded... exit quickly
-    setDestTo(GEP, Value);  // GEP result points to folded node
-
-    return;
-  }
-
-  const TargetData &TD = Value.getNode()->getTargetData();
-
-#if 0
-  // Handle the pointer index specially...
-  if (GEP.getNumOperands() > 1 &&
-      (!isa<Constant>(GEP.getOperand(1)) ||
-       !cast<Constant>(GEP.getOperand(1))->isNullValue())) {
-
-    // If we already know this is an array being accessed, don't do anything...
-    if (!TopTypeRec.isArray) {
-      TopTypeRec.isArray = true;
-
-      // If we are treating some inner field pointer as an array, fold the node
-      // up because we cannot handle it right.  This can come because of
-      // something like this:  &((&Pt->X)[1]) == &Pt->Y
-      //
-      if (Value.getOffset()) {
-        // Value is now the pointer we want to GEP to be...
-        Value.getNode()->foldNodeCompletely();
-        setDestTo(GEP, Value);  // GEP result points to folded node
-        return;
-      } else {
-        // This is a pointer to the first byte of the node.  Make sure that we
-        // are pointing to the outter most type in the node.
-        // FIXME: We need to check one more case here...
-      }
-    }
-  }
-#endif
-
-  // All of these subscripts are indexing INTO the elements we have...
-  unsigned Offset = 0;
-  for (gep_type_iterator I = gep_type_begin(GEP), E = gep_type_end(GEP);
-       I != E; ++I)
-    if (const StructType *STy = dyn_cast<StructType>(*I)) {
-      const ConstantInt* CUI = cast<ConstantInt>(I.getOperand());
-#if 0
-      unsigned FieldNo = 
-        CUI->getType()->isSigned() ? CUI->getSExtValue() : CUI->getZExtValue();
-#else
-      int FieldNo = CUI->getSExtValue();
-#endif
-      Offset += (unsigned)TD.getStructLayout(STy)->getElementOffset(FieldNo);
-    } else if (isa<PointerType>(*I)) {
-      if (!isa<Constant>(I.getOperand()) ||
-          !cast<Constant>(I.getOperand())->isNullValue())
-        Value.getNode()->setArrayMarker();
-    }
-
-
-#if 0
-    if (const SequentialType *STy = cast<SequentialType>(*I)) {
-      CurTy = STy->getElementType();
-      if (ConstantInt *CS = dyn_cast<ConstantInt>(GEP.getOperand(i))) {
-        Offset += 
-          (CS->getType()->isSigned() ? CS->getSExtValue() : CS->getZExtValue())
-          * TD.getTypeSize(CurTy);
-      } else {
-        // Variable index into a node.  We must merge all of the elements of the
-        // sequential type here.
-        if (isa<PointerType>(STy))
-          cerr << "Pointer indexing not handled yet!\n";
-        else {
-          const ArrayType *ATy = cast<ArrayType>(STy);
-          unsigned ElSize = TD.getTypeSize(CurTy);
-          DSNode *N = Value.getNode();
-          assert(N && "Value must have a node!");
-          unsigned RawOffset = Offset+Value.getOffset();
-
-          // Loop over all of the elements of the array, merging them into the
-          // zeroth element.
-          for (unsigned i = 1, e = ATy->getNumElements(); i != e; ++i)
-            // Merge all of the byte components of this array element
-            for (unsigned j = 0; j != ElSize; ++j)
-              N->mergeIndexes(RawOffset+j, RawOffset+i*ElSize+j);
-        }
-      }
-    }
-#endif
-
-  // Add in the offset calculated...
-  Value.setOffset(Value.getOffset()+Offset);
-
-  // Check the offset
-  DSNode *N = Value.getNode();
-  if (N &&
-      !N->isNodeCompletelyFolded() &&
-      (N->getSize() != 0 || Offset != 0) &&
-      !N->isForwarding()) {
-    if ((Offset >= N->getSize()) || int(Offset) < 0) {
-      // Accessing offsets out of node size range
-      // This is seen in the "magic" struct in named (from bind), where the
-      // fourth field is an array of length 0, presumably used to create struct
-      // instances of different sizes
-
-      // Collapse the node since its size is now variable
-      N->foldNodeCompletely();
-    }
-  }
-
-  // Value is now the pointer we want to GEP to be...  
-  setDestTo(GEP, Value);
-#if 0
-  if (debug && (isa<Instruction>(GEP))) {
-    Instruction * IGEP = (Instruction *)(&GEP);
-    DSNode * N = Value.getNode();
-    if (IGEP->getParent()->getParent()->getName() == "alloc_vfsmnt")
-    {
-      if (G.getPoolDescriptorsMap().count(N) != 0)
-        if (G.getPoolDescriptorsMap()[N])
-  std::cerr << "LLVA: GEP[" << 0 << "]: Pool for " << GEP.getName() << " is " << G.getPoolDescriptorsMap()[N]->getName() << "\n";
-    }
-  }
-#endif
-
-}
-
-
-void GraphBuilder::visitCallInst(CallInst &CI) {
-  visitCallSite(&CI);
-}
-
-void GraphBuilder::visitInvokeInst(InvokeInst &II) {
-  visitCallSite(&II);
-}
-
-/// returns true if the intrinsic is handled
-bool GraphBuilder::visitIntrinsic(CallSite CS, Function *F) {
-  switch (F->getIntrinsicID()) {
-  case Intrinsic::vastart:
-    getValueDest(*CS.getInstruction()).getNode()->setAllocaMarker();
-    return true;
-  case Intrinsic::vacopy:
-    getValueDest(*CS.getInstruction()).
-      mergeWith(getValueDest(**(CS.arg_begin())));
-    return true;
-  case Intrinsic::vaend:
-  case Intrinsic::dbg_func_start:
-  case Intrinsic::dbg_region_end:
-  case Intrinsic::dbg_stoppoint:
-    return true;  // noop
-  case Intrinsic::memcpy_i32: 
-  case Intrinsic::memcpy_i64:
-  case Intrinsic::memmove_i32:
-  case Intrinsic::memmove_i64: {
-    // Merge the first & second arguments, and mark the memory read and
-    // modified.
-    DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
-    RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
-    if (DSNode *N = RetNH.getNode())
-      N->setModifiedMarker()->setReadMarker();
-    return true;
-  }
-  case Intrinsic::memset_i32:
-  case Intrinsic::memset_i64:
-    // Mark the memory modified.
-    if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
-      N->setModifiedMarker();
-    return true;
-  default: {
-    //ignore pointer free intrinsics
-    if (!isa<PointerType>(F->getReturnType())) {
-      bool hasPtr = false;
-      for (Function::const_arg_iterator I = F->arg_begin(), E = F->arg_end();
-           I != E && !hasPtr; ++I)
-        if (isa<PointerType>(I->getType()))
-          hasPtr = true;
-      if (!hasPtr)
-        return true;
-    }
-
-    assert(0 && "Unhandled intrinsic");
-    DOUT << "[dsa:local] Unhandled intrinsic: " << F->getName() << "\n";
-    return false;
-  }
-  }
-}
-
-void GraphBuilder::visitCallSite(CallSite CS) {
-  Value *Callee = CS.getCalledValue();
-
-  // Special case handling of certain libc allocation functions here.
-  if (Function *F = dyn_cast<Function>(Callee))
-    if (F->isDeclaration())
-      if (F->isIntrinsic() && visitIntrinsic(CS, F))
-        return;
-      else {
-        // Determine if the called function is one of the specified heap
-        // allocation functions
-        if (AllocList.end() != std::find(AllocList.begin(), AllocList.end(), F->getName())) {
-          setDestTo(*CS.getInstruction(),
-                    createNode()->setHeapMarker()->setModifiedMarker());
-          return;
-        }
-
-        // Determine if the called function is one of the specified heap
-        // free functions
-        if (FreeList.end() != std::find(FreeList.begin(), FreeList.end(),
-                                        F->getName())) {
-          // Mark that the node is written to...
-          if (DSNode *N = getValueDest(*(CS.getArgument(0))).getNode())
-            N->setModifiedMarker()->setHeapMarker();
-          return;
-        }
-      }
-
-  // Set up the return value...
-  DSNodeHandle RetVal;
-  Instruction *I = CS.getInstruction();
-  if (isa<PointerType>(I->getType()))
-    RetVal = getValueDest(*I);
-
-  DSNode *CalleeNode = 0;
-  if (!isa<Function>(Callee)) {
-    CalleeNode = getValueDest(*Callee).getNode();
-    if (CalleeNode == 0) {
-      cerr << "WARNING: Program is calling through a null pointer?\n"<< *I;
-      return;  // Calling a null pointer?
-    }
-  }
-
-  std::vector<DSNodeHandle> Args;
-  Args.reserve(CS.arg_end()-CS.arg_begin());
-
-  // Calculate the arguments vector...
-  for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end(); I != E; ++I)
-    if (isa<PointerType>((*I)->getType()))
-      Args.push_back(getValueDest(**I));
-
-  // Add a new function call entry...
-  if (CalleeNode)
-    G.getFunctionCalls().push_back(DSCallSite(CS, RetVal, CalleeNode, Args));
-  else
-    G.getFunctionCalls().push_back(DSCallSite(CS, RetVal, cast<Function>(Callee),
-                                              Args));
-}
-
-// visitInstruction - For all other instruction types, if we have any arguments
-// that are of pointer type, make them have unknown composition bits, and merge
-// the nodes together.
-void GraphBuilder::visitInstruction(Instruction &Inst) {
-  DSNodeHandle CurNode;
-  if (isa<PointerType>(Inst.getType()))
-    CurNode = getValueDest(Inst);
-  for (User::op_iterator I = Inst.op_begin(), E = Inst.op_end(); I != E; ++I)
-    if (isa<PointerType>((*I)->getType()))
-      CurNode.mergeWith(getValueDest(**I));
-
-  if (DSNode *N = CurNode.getNode())
-    N->setUnknownMarker();
-}
-
-
-
-//===----------------------------------------------------------------------===//
-// LocalDataStructures Implementation
-//===----------------------------------------------------------------------===//
-
-// MergeConstantInitIntoNode - Merge the specified constant into the node
-// pointed to by NH.
-void GraphBuilder::MergeConstantInitIntoNode(DSNodeHandle &NH, const Type* Ty, Constant *C) {
-  // Ensure a type-record exists...
-  DSNode *NHN = NH.getNode();
-  NHN->mergeTypeInfo(Ty, NH.getOffset());
-
-  if (Ty->isFirstClassType()) {
-    if (isa<PointerType>(Ty))
-      // Avoid adding edges from null, or processing non-"pointer" stores
-      NH.addEdgeTo(getValueDest(*C));
-    return;
-  }
-
-  const TargetData &TD = NH.getNode()->getTargetData();
-
-  if (ConstantArray *CA = dyn_cast<ConstantArray>(C)) {
-    for (unsigned i = 0, e = CA->getNumOperands(); i != e; ++i)
-      // We don't currently do any indexing for arrays...
-      MergeConstantInitIntoNode(NH, cast<ArrayType>(Ty)->getElementType(), cast<Constant>(CA->getOperand(i)));
-  } else if (ConstantStruct *CS = dyn_cast<ConstantStruct>(C)) {
-    const StructLayout *SL = TD.getStructLayout(cast<StructType>(Ty));
-    for (unsigned i = 0, e = CS->getNumOperands(); i != e; ++i) {
-      DSNode *NHN = NH.getNode();
-      //Some programmers think ending a structure with a [0 x sbyte] is cute
-      if (SL->getElementOffset(i) < SL->getSizeInBytes()) {
-        DSNodeHandle NewNH(NHN, NH.getOffset()+(unsigned)SL->getElementOffset(i));
-        MergeConstantInitIntoNode(NewNH, cast<StructType>(Ty)->getElementType(i), cast<Constant>(CS->getOperand(i)));
-      } else if (SL->getElementOffset(i) == SL->getSizeInBytes()) {
-        DOUT << "Zero size element at end of struct\n";
-        NHN->foldNodeCompletely();
-      } else {
-        assert(0 && "type was smaller than offsets of of struct layout indicate");
-      }
-    }
-  } else if (isa<ConstantAggregateZero>(C) || isa<UndefValue>(C)) {
-    // Noop
-  } else {
-    assert(0 && "Unknown constant type!");
-  }
-}
-
-void GraphBuilder::mergeInGlobalInitializer(GlobalVariable *GV) {
-  assert(!GV->isDeclaration() && "Cannot merge in external global!");
-  // Get a node handle to the global node and merge the initializer into it.
-  DSNodeHandle NH = getValueDest(*GV);
-  MergeConstantInitIntoNode(NH, GV->getType()->getElementType(), GV->getInitializer());
-}
-
-char LocalDataStructures::ID;
-
-bool LocalDataStructures::runOnModule(Module &M) {
-  setTargetData(getAnalysis<TargetData>());
-
-  // First step, build the globals graph.
-  GlobalsGraph = new DSGraph(GlobalECs, getTargetData());
-  {
-    GraphBuilder GGB(*GlobalsGraph);
-
-    // Add initializers for all of the globals to the globals graph.
-    for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-         I != E; ++I)
-      if (!I->isDeclaration())
-        GGB.mergeInGlobalInitializer(I);
-  }
-
-  // Next step, iterate through the nodes in the globals graph, unioning
-  // together the globals into equivalence classes.
-  formGlobalECs();
-
-  // Calculate all of the graphs...
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
-    DSGraph* G = new DSGraph(GlobalECs, getTargetData(), GlobalsGraph);
-    GraphBuilder GGB(*I, *G);
-    DSInfo.insert(std::make_pair(I, G));
-  }
-
-  GlobalsGraph->removeTriviallyDeadNodes();
-  GlobalsGraph->markIncompleteNodes(DSGraph::MarkFormalArgs);
-
-  // Now that we've computed all of the graphs, and merged all of the info into
-  // the globals graph, see if we have further constrained the globals in the
-  // program if so, update GlobalECs and remove the extraneous globals from the
-  // program.
-  formGlobalECs();
-
-  return false;
-}
-
-// releaseMemory - If the pass pipeline is done with this pass, we can release
-// our memory... here...
-//
-void LocalDataStructures::releaseMemory() {
-  for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
-         E = DSInfo.end(); I != E; ++I) {
-    I->second->getReturnNodes().erase(I->first);
-    if (I->second->getReturnNodes().empty())
-      delete I->second;
-  }
-
-  // Empty map so next time memory is released, data structures are not
-  // re-deleted.
-  DSInfo.clear();
-  delete GlobalsGraph;
-  GlobalsGraph = 0;
-}
-
diff --git a/poolalloc/lib/DSA/Makefile b/poolalloc/lib/DSA/Makefile
deleted file mode 100644
index aa61981..0000000
--- a/poolalloc/lib/DSA/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/DSA/Makefile ------------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-SHARED_LIBRARY=1
-LOADABLE_MODULE = 1
-DONT_BUILD_RELINKED=1
-LIBRARYNAME = LLVMDataStructure
-
-include $(LEVEL)/Makefile.common
-
diff --git a/poolalloc/lib/DSA/Printer.cpp b/poolalloc/lib/DSA/Printer.cpp
deleted file mode 100644
index f24acaf..0000000
--- a/poolalloc/lib/DSA/Printer.cpp
+++ /dev/null
@@ -1,365 +0,0 @@
-//===- Printer.cpp - Code for printing data structure graphs nicely -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the 'dot' graph printer.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "dsa/DSGraphTraits.h"
-#include "llvm/Module.h"
-#include "llvm/Constants.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/GraphWriter.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Config/config.h"
-#include <ostream>
-#include <fstream>
-#include <sstream>
-using namespace llvm;
-
-// OnlyPrintMain - The DataStructure printer exposes this option to allow
-// printing of only the graph for "main".
-//
-namespace {
-  cl::opt<bool> OnlyPrintMain("only-print-main-ds", cl::ReallyHidden);
-  cl::opt<bool> DontPrintAnything("dont-print-ds", cl::ReallyHidden);
-  STATISTIC (MaxGraphSize   , "Maximum graph size");
-  STATISTIC (NumFoldedNodes , "Number of folded nodes (in final graph)");
-}
-
-void DSNode::dump() const { print(cerr, 0); }
-
-static std::string getCaption(const DSNode *N, const DSGraph *G) {
-  std::stringstream OS;
-  Module *M = 0;
-
-  if (!G) G = N->getParentGraph();
-
-  // Get the module from ONE of the functions in the graph it is available.
-  if (G && G->retnodes_begin() != G->retnodes_end())
-    M = G->retnodes_begin()->first->getParent();
-  if (M == 0 && G) {
-    // If there is a global in the graph, we can use it to find the module.
-    const DSScalarMap &SM = G->getScalarMap();
-    if (SM.global_begin() != SM.global_end())
-      M = (*SM.global_begin())->getParent();
-  }
-
-  if (N->isNodeCompletelyFolded())
-    OS << "COLLAPSED";
-  else {
-    WriteTypeSymbolic(OS, N->getType(), M);
-    if (N->isArray())
-      OS << " array";
-  }
-  if (unsigned NodeType = N->getNodeFlags()) {
-    OS << ": ";
-    if (NodeType & DSNode::AllocaNode     ) OS << "S";
-    if (NodeType & DSNode::HeapNode       ) OS << "H";
-    if (NodeType & DSNode::GlobalNode     ) OS << "G";
-    if (NodeType & DSNode::UnknownNode    ) OS << "U";
-    if (NodeType & DSNode::IncompleteNode ) OS << "I";
-    if (NodeType & DSNode::ModifiedNode   ) OS << "M";
-    if (NodeType & DSNode::ReadNode       ) OS << "R";
-    if (NodeType & DSNode::ExternalNode   ) OS << "E";
-    if (NodeType & DSNode::IntToPtrNode   ) OS << "P";
-    if (NodeType & DSNode::PtrToIntNode   ) OS << "2";
-
-#ifndef NDEBUG
-    if (NodeType & DSNode::DeadNode       ) OS << "<dead>";
-#endif
-    OS << "\n";
-  }
-
-  EquivalenceClasses<GlobalValue*> *GlobalECs = 0;
-  if (G) GlobalECs = &G->getGlobalECs();
-
-  for (unsigned i = 0, e = N->getGlobalsList().size(); i != e; ++i) {
-    WriteAsOperand(OS, N->getGlobalsList()[i], false, M);
-
-    // Figure out how many globals are equivalent to this one.
-    if (GlobalECs) {
-      EquivalenceClasses<GlobalValue*>::iterator I =
-        GlobalECs->findValue(N->getGlobalsList()[i]);
-      if (I != GlobalECs->end()) {
-        unsigned NumMembers =
-          std::distance(GlobalECs->member_begin(I), GlobalECs->member_end());
-        if (NumMembers != 1) OS << " + " << (NumMembers-1) << " EC";
-      }
-    }
-    OS << "\n";
-  }
-
-  return OS.str();
-}
-
-namespace llvm {
-template<>
-struct DOTGraphTraits<const DSGraph*> : public DefaultDOTGraphTraits {
-  static std::string getGraphName(const DSGraph *G) {
-    switch (G->getReturnNodes().size()) {
-    case 0: return G->getFunctionNames();
-    case 1: return "Function " + G->getFunctionNames();
-    default: return "Functions: " + G->getFunctionNames();
-    }
-  }
-
-  static std::string getNodeLabel(const DSNode *Node, const DSGraph *Graph) {
-    return getCaption(Node, Graph);
-  }
-
-  static std::string getNodeAttributes(const DSNode *N, const DSGraph *Graph) {
-    return "shape=Mrecord";
-  }
-
-  static bool edgeTargetsEdgeSource(const void *Node,
-                                    DSNode::const_iterator I) {
-    unsigned O = I.getNode()->getLink(I.getOffset()).getOffset();
-    return (O >> DS::PointerShift) != 0;
-  }
-
-  static DSNode::const_iterator getEdgeTarget(const DSNode *Node,
-                                              DSNode::const_iterator I) {
-    unsigned O = I.getNode()->getLink(I.getOffset()).getOffset();
-    unsigned LinkNo = O >> DS::PointerShift;
-    const DSNode *N = *I;
-    DSNode::const_iterator R = N->begin();
-    for (; LinkNo; --LinkNo)
-      ++R;
-    return R;
-  }
-
-
-  /// addCustomGraphFeatures - Use this graph writing hook to emit call nodes
-  /// and the return node.
-  ///
-  static void addCustomGraphFeatures(const DSGraph *G,
-                                     GraphWriter<const DSGraph*> &GW) {
-    Module *CurMod = 0;
-    if (G->retnodes_begin() != G->retnodes_end())
-      CurMod = G->retnodes_begin()->first->getParent();
-    else {
-      // If there is a global in the graph, we can use it to find the module.
-      const DSScalarMap &SM = G->getScalarMap();
-      if (SM.global_begin() != SM.global_end())
-        CurMod = (*SM.global_begin())->getParent();
-    }
-
-
-    // Add scalar nodes to the graph...
-    const DSGraph::ScalarMapTy &VM = G->getScalarMap();
-    for (DSGraph::ScalarMapTy::const_iterator I = VM.begin(); I != VM.end();++I)
-      if (!isa<GlobalValue>(I->first)) {
-        std::stringstream OS;
-        WriteAsOperand(OS, I->first, false, CurMod);
-        GW.emitSimpleNode(I->first, "", OS.str());
-
-        // Add edge from return node to real destination
-        DSNode *DestNode = I->second.getNode();
-        int EdgeDest = I->second.getOffset() >> DS::PointerShift;
-        if (EdgeDest == 0) EdgeDest = -1;
-        GW.emitEdge(I->first, -1, DestNode,
-                    EdgeDest, "arrowtail=tee,color=gray63");
-      }
-
-
-    // Output the returned value pointer...
-    for (DSGraph::retnodes_iterator I = G->retnodes_begin(),
-           E = G->retnodes_end(); I != E; ++I)
-      if (I->second.getNode()) {
-        std::string Label;
-        if (G->getReturnNodes().size() == 1)
-          Label = "returning";
-        else
-          Label = I->first->getName() + " ret node";
-        // Output the return node...
-        GW.emitSimpleNode((void*)I->first, "plaintext=circle", Label);
-
-        // Add edge from return node to real destination
-        DSNode *RetNode = I->second.getNode();
-        int RetEdgeDest = I->second.getOffset() >> DS::PointerShift;;
-        if (RetEdgeDest == 0) RetEdgeDest = -1;
-        GW.emitEdge((void*)I->first, -1, RetNode,
-                    RetEdgeDest, "arrowtail=tee,color=gray63");
-      }
-
-    // Output all of the call nodes...
-    const std::list<DSCallSite> &FCs =
-      G->shouldPrintAuxCalls() ? G->getAuxFunctionCalls()
-      : G->getFunctionCalls();
-    for (std::list<DSCallSite>::const_iterator I = FCs.begin(), E = FCs.end();
-         I != E; ++I) {
-      const DSCallSite &Call = *I;
-      std::vector<std::string> EdgeSourceCaptions(Call.getNumPtrArgs()+2);
-      EdgeSourceCaptions[0] = "r";
-      if (Call.isDirectCall())
-        EdgeSourceCaptions[1] = Call.getCalleeFunc()->getName();
-      else
-        EdgeSourceCaptions[1] = "f";
-
-      GW.emitSimpleNode(&Call, "shape=record", "call", Call.getNumPtrArgs()+2,
-                        &EdgeSourceCaptions);
-
-      if (DSNode *N = Call.getRetVal().getNode()) {
-        int EdgeDest = Call.getRetVal().getOffset() >> DS::PointerShift;
-        if (EdgeDest == 0) EdgeDest = -1;
-        GW.emitEdge(&Call, 0, N, EdgeDest, "color=gray63,tailclip=false");
-      }
-
-      // Print out the callee...
-      if (Call.isIndirectCall()) {
-        DSNode *N = Call.getCalleeNode();
-        assert(N && "Null call site callee node!");
-        GW.emitEdge(&Call, 1, N, -1, "color=gray63,tailclip=false");
-      }
-
-      for (unsigned j = 0, e = Call.getNumPtrArgs(); j != e; ++j)
-        if (DSNode *N = Call.getPtrArg(j).getNode()) {
-          int EdgeDest = Call.getPtrArg(j).getOffset() >> DS::PointerShift;
-          if (EdgeDest == 0) EdgeDest = -1;
-          GW.emitEdge(&Call, j+2, N, EdgeDest, "color=gray63,tailclip=false");
-        }
-    }
-  }
-};
-}   // end namespace llvm
-
-void DSNode::print(std::ostream &O, const DSGraph *G) const {
-  GraphWriter<const DSGraph *> W(O, G);
-  W.writeNode(this);
-}
-
-void DSGraph::print(std::ostream &O) const {
-  WriteGraph(O, this, "DataStructures");
-}
-
-void DSGraph::writeGraphToFile(std::ostream &O,
-                               const std::string &GraphName) const {
-  std::string Filename = GraphName + ".dot";
-  O << "Writing '" << Filename << "'...";
-  std::ofstream F(Filename.c_str());
-
-  if (F.good()) {
-    print(F);
-    unsigned NumCalls = shouldPrintAuxCalls() ?
-      getAuxFunctionCalls().size() : getFunctionCalls().size();
-    O << " [" << getGraphSize() << "+" << NumCalls << "]\n";
-  } else {
-    O << "  error opening file for writing!\n";
-  }
-}
-
-/// viewGraph - Emit a dot graph, run 'dot', run gv on the postscript file,
-/// then cleanup.  For use from the debugger.
-///
-void DSGraph::viewGraph() const {
-  ViewGraph(this, "ds.tempgraph", "DataStructures");
-}
-
-
-template <typename Collection>
-static void printCollection(const Collection &C, std::ostream &O,
-                            const Module *M, const std::string &Prefix) {
-  if (M == 0) {
-    O << "Null Module pointer, cannot continue!\n";
-    return;
-  }
-
-  unsigned TotalNumNodes = 0, TotalCallNodes = 0;
-  for (Module::const_iterator I = M->begin(), E = M->end(); I != E; ++I)
-    if (C.hasGraph(*I)) {
-      DSGraph &Gr = C.getDSGraph((Function&)*I);
-      unsigned NumCalls = Gr.shouldPrintAuxCalls() ?
-        Gr.getAuxFunctionCalls().size() : Gr.getFunctionCalls().size();
-      bool IsDuplicateGraph = false;
-
-      if (I->getName() == "main" || !OnlyPrintMain) {
-        Function *SCCFn = Gr.retnodes_begin()->first;
-        if (&*I == SCCFn) {
-          Gr.writeGraphToFile(O, Prefix+I->getName());
-        } else {
-          IsDuplicateGraph = true; // Don't double count node/call nodes.
-          O << "Didn't write '" << Prefix+I->getName()
-            << ".dot' - Graph already emitted to '" << Prefix+SCCFn->getName()
-            << "\n";
-        }
-      } else {
-        Function *SCCFn = Gr.retnodes_begin()->first;
-        if (&*I == SCCFn) {
-          O << "Skipped Writing '" << Prefix+I->getName() << ".dot'... ["
-            << Gr.getGraphSize() << "+" << NumCalls << "]\n";
-        } else {
-          IsDuplicateGraph = true; // Don't double count node/call nodes.
-        }
-      }
-
-      if (!IsDuplicateGraph) {
-        unsigned GraphSize = Gr.getGraphSize();
-        if (MaxGraphSize < GraphSize) MaxGraphSize = GraphSize;
-
-        TotalNumNodes += Gr.getGraphSize();
-        TotalCallNodes += NumCalls;
-        for (DSGraph::node_iterator NI = Gr.node_begin(), E = Gr.node_end();
-             NI != E; ++NI)
-          if (NI->isNodeCompletelyFolded())
-            ++NumFoldedNodes;
-      }
-    }
-
-  DSGraph &GG = C.getGlobalsGraph();
-  TotalNumNodes  += GG.getGraphSize();
-  TotalCallNodes += GG.getFunctionCalls().size();
-  if (!OnlyPrintMain) {
-    GG.writeGraphToFile(O, Prefix+"GlobalsGraph");
-  } else {
-    O << "Skipped Writing '" << Prefix << "GlobalsGraph.dot'... ["
-      << GG.getGraphSize() << "+" << GG.getFunctionCalls().size() << "]\n";
-  }
-
-  O << "\nGraphs contain [" << TotalNumNodes << "+" << TotalCallNodes
-    << "] nodes total" << std::endl;
-}
-
-
-// print - Print out the analysis results...
-void LocalDataStructures::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "ds.");
-}
-
-void StdLibDataStructures::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "ds.");
-}
-
-void BUDataStructures::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "bu.");
-}
-
-void TDDataStructures::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "td.");
-}
-
-void CompleteBUDataStructures::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "cbu.");
-}
-
-
-void EquivClassGraphs::print(std::ostream &O, const Module *M) const {
-  if (DontPrintAnything) return;
-  printCollection(*this, O, M, "eq.");
-}
-
diff --git a/poolalloc/lib/DSA/StdLibPass.cpp b/poolalloc/lib/DSA/StdLibPass.cpp
deleted file mode 100644
index 03382db..0000000
--- a/poolalloc/lib/DSA/StdLibPass.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Recognize common standard c library functions and generate graphs for them
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/Statistic.h"
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-#include <iostream>
-#include "llvm/Module.h"
-
-using namespace llvm;
-
-static RegisterPass<StdLibDataStructures>
-X("dsa-stdlib", "Standard Library Local Data Structure Analysis");
-
-char StdLibDataStructures::ID;
-
-bool StdLibDataStructures::runOnModule(Module &M) {
-  LocalDataStructures &LocalDSA = getAnalysis<LocalDataStructures>();
-  setGraphSource(&LocalDSA);
-  setTargetData(LocalDSA.getTargetData());
-  setGraphClone(false);
-  GlobalECs = LocalDSA.getGlobalECs();
-
-  GlobalsGraph = new DSGraph(LocalDSA.getGlobalsGraph(), GlobalECs);
-  GlobalsGraph->setPrintAuxCalls();
-
-  // Calculate all of the graphs...
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
-    DSGraph &Graph = getOrCreateGraph(&*I);
-    //If this is an true external, check it out
-    if (I->isDeclaration() && !I->isIntrinsic()) {
-      const std::string& Name = I->getName();
-      if (Name == "calloc" ||
-          Name == "malloc" ||
-          Name == "valloc" ||
-          Name == "memalign") {
-        Graph.getReturnNodeFor(*I).getNode()->clearNodeFlags()
-          ->setHeapMarker()->setModifiedMarker();
-      } else if (Name == "realloc") {
-        Graph.getReturnNodeFor(*I).getNode()->clearNodeFlags()
-          ->setHeapMarker()->setModifiedMarker();
-        Graph.getNodeForValue(I->arg_begin()).getNode()->clearNodeFlags()
-          ->mergeWith(Graph.getReturnNodeFor(*I), 0);
-      } else if (Name == "free") {
-        Graph.getNodeForValue(&*I->arg_begin()).getNode()->clearNodeFlags()
-          ->setHeapMarker()->setModifiedMarker();
-      } else if (Name == "atoi"     || Name == "atof"    ||
-                 Name == "atol"     || Name == "atoll"   ||
-                 Name == "remove"   || Name == "unlink"  ||
-                 Name == "rename"   || Name == "memcmp"  ||
-                 Name == "strcmp"   || Name == "strncmp" ||
-                 Name == "execl"    || Name == "execlp"  ||
-                 Name == "execle"   || Name == "execv"   ||
-                 Name == "execvp"   || Name == "chmod"   ||
-                 Name == "puts"     || Name == "write"   ||
-                 Name == "open"     || Name == "create"  ||
-                 Name == "truncate" || Name == "chdir"   ||
-                 Name == "mkdir"    || Name == "rmdir"   ||
-                 Name == "strlen") {
-        for (Function::arg_iterator AI = I->arg_begin(), E = I->arg_end();
-             AI != E; ++AI) {
-          if (isa<PointerType>(AI->getType()))
-            Graph.getNodeForValue(&*AI).getNode()->clearNodeFlags()
-              ->setReadMarker();
-        }
-      } else if (Name == "read" || Name == "pipe" ||
-                 Name == "wait" || Name == "time" ||
-                 Name == "getrusage") {
-        for (Function::arg_iterator AI = I->arg_begin(), E = I->arg_end();
-             AI != E; ++AI) {
-          if (isa<PointerType>(AI->getType()))
-            Graph.getNodeForValue(&*AI).getNode()->clearNodeFlags()
-              ->setModifiedMarker();
-        }
-      } else if (Name == "memchr" || Name == "memrchr") {
-        DSNodeHandle RetNH = Graph.getReturnNodeFor(*I);
-        DSNodeHandle Result = Graph.getNodeForValue(&*I->arg_begin());
-        RetNH.mergeWith(Result);
-        RetNH.getNode()->clearNodeFlags()->setReadMarker();
-      } else if (Name == "memmove") {
-        // Merge the first & second arguments, and mark the memory read and
-        // modified.
-        DSNodeHandle& RetNH = Graph.getNodeForValue(&*I->arg_begin());
-        RetNH.mergeWith(Graph.getNodeForValue(&*(++(I->arg_begin()))));
-        RetNH.getNode()->clearNodeFlags()->setModifiedMarker()->setReadMarker();
-      } else if (Name == "stat" || Name == "fstat" || Name == "lstat") {
-        // These functions read their first operand if its a pointer.
-        Function::arg_iterator AI = I->arg_begin();
-        if (isa<PointerType>(AI->getType()))
-          Graph.getNodeForValue(&*AI).getNode()
-            ->clearNodeFlags()->setReadMarker();
-        // Then they write into the stat buffer.
-        DSNodeHandle StatBuf = Graph.getNodeForValue(&*++AI);
-        DSNode *N = StatBuf.getNode();
-        N->setModifiedMarker();
-        const Type *StatTy = I->getFunctionType()->getParamType(1);
-        if (const PointerType *PTy = dyn_cast<PointerType>(StatTy))
-          N->mergeTypeInfo(PTy->getElementType(), StatBuf.getOffset());
-      } else if (Name == "strtod" || Name == "strtof" || Name == "strtold") {
-        // These functions read the first pointer
-        DSNodeHandle& Str = Graph.getNodeForValue(&*I->arg_begin());
-        Str.getNode()->clearNodeFlags()->setReadMarker();
-        // If the second parameter is passed, it will point to the first
-        // argument node.
-        DSNodeHandle& EndNH = Graph.getNodeForValue(&*(++(I->arg_begin())));
-        EndNH.getNode()->clearNodeFlags()->setModifiedMarker();
-        EndNH.getNode()->mergeTypeInfo(PointerType::get(Type::Int8Ty),
-                                       EndNH.getOffset(), false);
-        DSNodeHandle &Link = EndNH.getLink(0);
-        Link.mergeWith(Str);
-      } else {
-        //ignore pointer free functions
-        bool hasPtr = isa<PointerType>(I->getReturnType());
-        for (Function::const_arg_iterator AI = I->arg_begin(), AE = I->arg_end();
-             AI != AE && !hasPtr; ++AI)
-          if (isa<PointerType>(AI->getType()))
-            hasPtr = true;
-        if (hasPtr)
-          std::cerr << "Unhandled External: " << Name << "\n";
-      }
-    }
-  }
-
-  return false;
-}
-
-// releaseMemory - If the pass pipeline is done with this pass, we can release
-// our memory... here...
-//
-void StdLibDataStructures::releaseMemory() {
-  for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
-         E = DSInfo.end(); I != E; ++I) {
-    I->second->getReturnNodes().erase(I->first);
-    if (I->second->getReturnNodes().empty())
-      delete I->second;
-  }
-
-  // Empty map so next time memory is released, data structures are not
-  // re-deleted.
-  DSInfo.clear();
-  delete GlobalsGraph;
-  GlobalsGraph = 0;
-}
-
diff --git a/poolalloc/lib/DSA/Steensgaard.cpp b/poolalloc/lib/DSA/Steensgaard.cpp
deleted file mode 100644
index 525e402..0000000
--- a/poolalloc/lib/DSA/Steensgaard.cpp
+++ /dev/null
@@ -1,281 +0,0 @@
-//===- Steensgaard.cpp - Context Insensitive Alias Analysis ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass uses the data structure graphs to implement a simple context
-// insensitive alias analysis.  It does this by computing the local analysis
-// graphs for all of the functions, then merging them together into a single big
-// graph without cloning.
-//
-//===----------------------------------------------------------------------===//
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Analysis/AliasAnalysis.h"
-#include "llvm/Analysis/Passes.h"
-#include "llvm/Module.h"
-#include "llvm/Support/Debug.h"
-#include <ostream>
-using namespace llvm;
-
-namespace {
-  class Steens : public ModulePass, public AliasAnalysis {
-    DSGraph *ResultGraph;
-
-    EquivalenceClasses<GlobalValue*> GlobalECs;  // Always empty
-  public:
-    static char ID;
-    Steens() : ModulePass((intptr_t)&ID), ResultGraph(0) {}
-    ~Steens() {
-      releaseMyMemory();
-      assert(ResultGraph == 0 && "releaseMemory not called?");
-    }
-
-    //------------------------------------------------
-    // Implement the Pass API
-    //
-
-    // run - Build up the result graph, representing the pointer graph for the
-    // program.
-    //
-    bool runOnModule(Module &M);
-
-    virtual void releaseMyMemory() { delete ResultGraph; ResultGraph = 0; }
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AliasAnalysis::getAnalysisUsage(AU);
-      AU.setPreservesAll();                    // Does not transform code...
-      AU.addRequired<LocalDataStructures>();   // Uses local dsgraph
-    }
-
-    // print - Implement the Pass::print method...
-    void print(OStream O, const Module *M) const {
-      if (O.stream()) print(*O.stream(), M);
-    }
-    void print(std::ostream &O, const Module *M) const {
-      assert(ResultGraph && "Result graph has not yet been computed!");
-      ResultGraph->writeGraphToFile(O, "steensgaards");
-    }
-
-    //------------------------------------------------
-    // Implement the AliasAnalysis API
-    //
-
-    AliasResult alias(const Value *V1, unsigned V1Size,
-                      const Value *V2, unsigned V2Size);
-
-    virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
-    virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
-
-  private:
-    void ResolveFunctionCall(Function *F, const DSCallSite &Call,
-                             DSNodeHandle &RetVal);
-  };
-
-  // Register the pass...
-  RegisterPass<Steens> X("steens-aa",
-                         "Steensgaard's alias analysis (DSGraph based)");
-
-  // Register as an implementation of AliasAnalysis
-  RegisterAnalysisGroup<AliasAnalysis> Y(X);
-}
-
-char Steens::ID;
-
-ModulePass *llvm::createSteensgaardPass() { return new Steens(); }
-
-/// ResolveFunctionCall - Resolve the actual arguments of a call to function F
-/// with the specified call site descriptor.  This function links the arguments
-/// and the return value for the call site context-insensitively.
-///
-void Steens::ResolveFunctionCall(Function *F, const DSCallSite &Call,
-                                 DSNodeHandle &RetVal) {
-  assert(ResultGraph != 0 && "Result graph not allocated!");
-  DSGraph::ScalarMapTy &ValMap = ResultGraph->getScalarMap();
-
-  // Handle the return value of the function...
-  if (Call.getRetVal().getNode() && RetVal.getNode())
-    RetVal.mergeWith(Call.getRetVal());
-
-  // Loop over all pointer arguments, resolving them to their provided pointers
-  unsigned PtrArgIdx = 0;
-  for (Function::arg_iterator AI = F->arg_begin(), AE = F->arg_end();
-       AI != AE && PtrArgIdx < Call.getNumPtrArgs(); ++AI) {
-    DSGraph::ScalarMapTy::iterator I = ValMap.find(AI);
-    if (I != ValMap.end())    // If its a pointer argument...
-      I->second.mergeWith(Call.getPtrArg(PtrArgIdx++));
-  }
-}
-
-
-/// run - Build up the result graph, representing the pointer graph for the
-/// program.
-///
-bool Steens::runOnModule(Module &M) {
-  InitializeAliasAnalysis(this);
-  assert(ResultGraph == 0 && "Result graph already allocated!");
-  LocalDataStructures &LDS = getAnalysis<LocalDataStructures>();
-
-  // Create a new, empty, graph...
-  ResultGraph = new DSGraph(GlobalECs, getTargetData());
-  ResultGraph->spliceFrom(LDS.getGlobalsGraph());
-
-  // Loop over the rest of the module, merging graphs for non-external functions
-  // into this graph.
-  //
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration())
-      ResultGraph->spliceFrom(LDS.getDSGraph(*I));
-
-  ResultGraph->removeTriviallyDeadNodes();
-
-  // FIXME: Must recalculate and use the Incomplete markers!!
-
-  // Now that we have all of the graphs inlined, we can go about eliminating
-  // call nodes...
-  //
-  std::list<DSCallSite> &Calls = ResultGraph->getAuxFunctionCalls();
-  assert(Calls.empty() && "Aux call list is already in use??");
-
-  // Start with a copy of the original call sites.
-  Calls = ResultGraph->getFunctionCalls();
-
-  for (std::list<DSCallSite>::iterator CI = Calls.begin(), E = Calls.end();
-       CI != E;) {
-    DSCallSite &CurCall = *CI++;
-
-    // Loop over the called functions, eliminating as many as possible...
-    std::vector<Function*> CallTargets;
-    if (CurCall.isDirectCall())
-      CallTargets.push_back(CurCall.getCalleeFunc());
-    else
-      CurCall.getCalleeNode()->addFullFunctionList(CallTargets);
-
-    for (unsigned c = 0; c != CallTargets.size(); ) {
-      // If we can eliminate this function call, do so!
-      Function *F = CallTargets[c];
-      if (!F->isDeclaration()) {
-        ResolveFunctionCall(F, CurCall, ResultGraph->getReturnNodes()[F]);
-        CallTargets[c] = CallTargets.back();
-        CallTargets.pop_back();
-      } else
-        ++c;  // Cannot eliminate this call, skip over it...
-    }
-
-    if (CallTargets.empty()) {        // Eliminated all calls?
-      std::list<DSCallSite>::iterator I = CI;
-      Calls.erase(--I);               // Remove entry
-    }
-  }
-
-  // Remove our knowledge of what the return values of the functions are, except
-  // for functions that are externally visible from this module (e.g. main).  We
-  // keep these functions so that their arguments are marked incomplete.
-  for (DSGraph::ReturnNodesTy::iterator I =
-         ResultGraph->getReturnNodes().begin(),
-         E = ResultGraph->getReturnNodes().end(); I != E; )
-    if (I->first->hasInternalLinkage())
-      ResultGraph->getReturnNodes().erase(I++);
-    else
-      ++I;
-
-  // Update the "incomplete" markers on the nodes, ignoring unknownness due to
-  // incoming arguments...
-  ResultGraph->maskIncompleteMarkers();
-  ResultGraph->markIncompleteNodes(DSGraph::IgnoreGlobals |
-                                   DSGraph::MarkFormalArgs);
-
-  // Remove any nodes that are dead after all of the merging we have done...
-  // FIXME: We should be able to disable the globals graph for steens!
-  //ResultGraph->removeDeadNodes(DSGraph::KeepUnreachableGlobals);
-
-  print(DOUT, &M);
-  return false;
-}
-
-AliasAnalysis::AliasResult Steens::alias(const Value *V1, unsigned V1Size,
-                                         const Value *V2, unsigned V2Size) {
-  assert(ResultGraph && "Result graph has not been computed yet!");
-
-  DSGraph::ScalarMapTy &GSM = ResultGraph->getScalarMap();
-
-  DSGraph::ScalarMapTy::iterator I = GSM.find(const_cast<Value*>(V1));
-  DSGraph::ScalarMapTy::iterator J = GSM.find(const_cast<Value*>(V2));
-  if (I != GSM.end() && !I->second.isNull() &&
-      J != GSM.end() && !J->second.isNull()) {
-    DSNodeHandle &V1H = I->second;
-    DSNodeHandle &V2H = J->second;
-
-    // If at least one of the nodes is complete, we can say something about
-    // this.  If one is complete and the other isn't, then they are obviously
-    // different nodes.  If they are both complete, we can't say anything
-    // useful.
-    if (I->second.getNode()->isCompleteNode() ||
-        J->second.getNode()->isCompleteNode()) {
-      // If the two pointers point to different data structure graph nodes, they
-      // cannot alias!
-      if (V1H.getNode() != V2H.getNode())
-        return NoAlias;
-
-      // See if they point to different offsets...  if so, we may be able to
-      // determine that they do not alias...
-      unsigned O1 = I->second.getOffset(), O2 = J->second.getOffset();
-      if (O1 != O2) {
-        if (O2 < O1) {    // Ensure that O1 <= O2
-          std::swap(V1, V2);
-          std::swap(O1, O2);
-          std::swap(V1Size, V2Size);
-        }
-
-        if (O1+V1Size <= O2)
-          return NoAlias;
-      }
-    }
-  }
-
-  // If we cannot determine alias properties based on our graph, fall back on
-  // some other AA implementation.
-  //
-  return AliasAnalysis::alias(V1, V1Size, V2, V2Size);
-}
-
-AliasAnalysis::ModRefResult
-Steens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
-  AliasAnalysis::ModRefResult Result = ModRef;
-
-  // Find the node in question.
-  DSGraph::ScalarMapTy &GSM = ResultGraph->getScalarMap();
-  DSGraph::ScalarMapTy::iterator I = GSM.find(P);
-
-  if (I != GSM.end() && !I->second.isNull()) {
-    DSNode *N = I->second.getNode();
-    if (N->isCompleteNode()) {
-      // If this is a direct call to an external function, and if the pointer
-      // points to a complete node, the external function cannot modify or read
-      // the value (we know it's not passed out of the program!).
-      if (Function *F = CS.getCalledFunction())
-        if (F->isDeclaration())
-          return NoModRef;
-
-      // Otherwise, if the node is complete, but it is only M or R, return this.
-      // This can be useful for globals that should be marked const but are not.
-      if (!N->isModifiedNode())
-        Result = (ModRefResult)(Result & ~Mod);
-      if (!N->isReadNode())
-        Result = (ModRefResult)(Result & ~Ref);
-    }
-  }
-
-  return (ModRefResult)(Result & AliasAnalysis::getModRefInfo(CS, P, Size));
-}
-
-AliasAnalysis::ModRefResult 
-Steens::getModRefInfo(CallSite CS1, CallSite CS2)
-{
-  return AliasAnalysis::getModRefInfo(CS1,CS2);
-}
diff --git a/poolalloc/lib/DSA/TopDownClosure.cpp b/poolalloc/lib/DSA/TopDownClosure.cpp
deleted file mode 100644
index 0810fd1..0000000
--- a/poolalloc/lib/DSA/TopDownClosure.cpp
+++ /dev/null
@@ -1,385 +0,0 @@
-//===- TopDownClosure.cpp - Compute the top-down interprocedure closure ---===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the TDDataStructures class, which represents the
-// Top-down Interprocedural closure of the data structure graph over the
-// program.  This is useful (but not strictly necessary?) for applications
-// like pointer analysis.
-//
-//===----------------------------------------------------------------------===//
-#define DEBUG_TYPE "td_dsa"
-
-#include "dsa/DataStructure.h"
-#include "llvm/Module.h"
-#include "llvm/DerivedTypes.h"
-#include "dsa/DSGraph.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-#include "llvm/ADT/Statistic.h"
-using namespace llvm;
-
-#if 0
-#define TIME_REGION(VARNAME, DESC) \
-   NamedRegionTimer VARNAME(DESC)
-#else
-#define TIME_REGION(VARNAME, DESC)
-#endif
-
-namespace {
-  RegisterPass<TDDataStructures>   // Register the pass
-  Y("dsa-td", "Top-down Data Structure Analysis");
-
-  STATISTIC (NumTDInlines, "Number of graphs inlined");
-}
-
-char TDDataStructures::ID;
-
-void TDDataStructures::markReachableFunctionsExternallyAccessible(DSNode *N,
-                                                   hash_set<DSNode*> &Visited) {
-  if (!N || Visited.count(N)) return;
-  Visited.insert(N);
-
-  for (unsigned i = 0, e = N->getNumLinks(); i != e; ++i) {
-    DSNodeHandle &NH = N->getLink(i*N->getPointerSize());
-    if (DSNode *NN = NH.getNode()) {
-      std::vector<Function*> Functions;
-      NN->addFullFunctionList(Functions);
-      ArgsRemainIncomplete.insert(Functions.begin(), Functions.end());
-      markReachableFunctionsExternallyAccessible(NN, Visited);
-    }
-  }
-}
-
-
-// run - Calculate the top down data structure graphs for each function in the
-// program.
-//
-bool TDDataStructures::runOnModule(Module &M) {
-  BUInfo = &getAnalysis<BUDataStructures>();
-  setGraphSource(BUInfo);
-  setTargetData(BUInfo->getTargetData());
-  setGraphClone(true);
-
-  GlobalECs = BUInfo->getGlobalECs();
-  GlobalsGraph = new DSGraph(BUInfo->getGlobalsGraph(), GlobalECs);
-  GlobalsGraph->setPrintAuxCalls();
-
-  // Figure out which functions must not mark their arguments complete because
-  // they are accessible outside this compilation unit.  Currently, these
-  // arguments are functions which are reachable by global variables in the
-  // globals graph.
-  const DSScalarMap &GGSM = GlobalsGraph->getScalarMap();
-  hash_set<DSNode*> Visited;
-  for (DSScalarMap::global_iterator I=GGSM.global_begin(), E=GGSM.global_end();
-       I != E; ++I) {
-    DSNode *N = GGSM.find(*I)->second.getNode();
-    if (N->isIncompleteNode())
-      markReachableFunctionsExternallyAccessible(N, Visited);
-  }
-
-  // Loop over unresolved call nodes.  Any functions passed into (but not
-  // returned!) from unresolvable call nodes may be invoked outside of the
-  // current module.
-  for (DSGraph::afc_iterator I = GlobalsGraph->afc_begin(),
-         E = GlobalsGraph->afc_end(); I != E; ++I)
-    for (unsigned arg = 0, e = I->getNumPtrArgs(); arg != e; ++arg)
-      markReachableFunctionsExternallyAccessible(I->getPtrArg(arg).getNode(),
-                                                 Visited);
-  Visited.clear();
-
-  // Functions without internal linkage also have unknown incoming arguments!
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->hasInternalLinkage())
-      ArgsRemainIncomplete.insert(I);
-
-  // We want to traverse the call graph in reverse post-order.  To do this, we
-  // calculate a post-order traversal, then reverse it.
-  hash_set<DSGraph*> VisitedGraph;
-  std::vector<DSGraph*> PostOrder;
-
-#if 0
-{TIME_REGION(XXX, "td:Copy graphs");
-
-  // Visit each of the graphs in reverse post-order now!
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    getOrCreateGraph(*I);
-  return false;
-}
-#endif
-
-
-{TIME_REGION(XXX, "td:Compute postorder");
-
-  // Calculate top-down from main...
-  if (Function *F = M.getFunction("main"))
-    ComputePostOrder(*F, VisitedGraph, PostOrder);
-
-  // Next calculate the graphs for each unreachable function...
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration())
-      ComputePostOrder(*I, VisitedGraph, PostOrder);
-
-  VisitedGraph.clear();   // Release memory!
-}
-
-{TIME_REGION(XXX, "td:Inline stuff");
-
-  // Visit each of the graphs in reverse post-order now!
-  while (!PostOrder.empty()) {
-    InlineCallersIntoGraph(*PostOrder.back());
-    PostOrder.pop_back();
-  }
-}
-
-  // Free the IndCallMap.
-  while (!IndCallMap.empty()) {
-    delete IndCallMap.begin()->second;
-    IndCallMap.erase(IndCallMap.begin());
-  }
-
-
-  ArgsRemainIncomplete.clear();
-  GlobalsGraph->removeTriviallyDeadNodes();
-
-  return false;
-}
-
-
-void TDDataStructures::ComputePostOrder(Function &F,hash_set<DSGraph*> &Visited,
-                                        std::vector<DSGraph*> &PostOrder) {
-  DSGraph &G = getOrCreateGraph(&F);
-  if (Visited.count(&G)) return;
-  Visited.insert(&G);
-
-  // Recursively traverse all of the callee graphs.
-  for (DSGraph::fc_iterator CI = G.fc_begin(), CE = G.fc_end(); CI != CE; ++CI){
-    Instruction *CallI = CI->getCallSite().getInstruction();
-    for (BUDataStructures::callee_iterator I = BUInfo->callee_begin(CallI),
-           E = BUInfo->callee_end(CallI); I != E; ++I)
-      ComputePostOrder(*I->second, Visited, PostOrder);
-  }
-
-  PostOrder.push_back(&G);
-}
-
-
-
-
-
-// releaseMemory - If the pass pipeline is done with this pass, we can release
-// our memory... here...
-//
-// FIXME: This should be releaseMemory and will work fine, except that LoadVN
-// has no way to extend the lifetime of the pass, which screws up ds-aa.
-//
-void TDDataStructures::releaseMyMemory() {
-  for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
-         E = DSInfo.end(); I != E; ++I) {
-    I->second->getReturnNodes().erase(I->first);
-    if (I->second->getReturnNodes().empty())
-      delete I->second;
-  }
-
-  // Empty map so next time memory is released, data structures are not
-  // re-deleted.
-  DSInfo.clear();
-  delete GlobalsGraph;
-  GlobalsGraph = 0;
-}
-
-/// InlineCallersIntoGraph - Inline all of the callers of the specified DS graph
-/// into it, then recompute completeness of nodes in the resultant graph.
-void TDDataStructures::InlineCallersIntoGraph(DSGraph &DSG) {
-  // Inline caller graphs into this graph.  First step, get the list of call
-  // sites that call into this graph.
-  std::vector<CallerCallEdge> EdgesFromCaller;
-  std::map<DSGraph*, std::vector<CallerCallEdge> >::iterator
-    CEI = CallerEdges.find(&DSG);
-  if (CEI != CallerEdges.end()) {
-    std::swap(CEI->second, EdgesFromCaller);
-    CallerEdges.erase(CEI);
-  }
-
-  // Sort the caller sites to provide a by-caller-graph ordering.
-  std::sort(EdgesFromCaller.begin(), EdgesFromCaller.end());
-
-
-  // Merge information from the globals graph into this graph.  FIXME: This is
-  // stupid.  Instead of us cloning information from the GG into this graph,
-  // then having RemoveDeadNodes clone it back, we should do all of this as a
-  // post-pass over all of the graphs.  We need to take cloning out of
-  // removeDeadNodes and gut removeDeadNodes at the same time first though. :(
-  {
-    DSGraph &GG = *DSG.getGlobalsGraph();
-    ReachabilityCloner RC(DSG, GG,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-    for (DSScalarMap::global_iterator
-           GI = DSG.getScalarMap().global_begin(),
-           E = DSG.getScalarMap().global_end(); GI != E; ++GI)
-      RC.getClonedNH(GG.getNodeForValue(*GI));
-  }
-
-  DOUT << "[TD] Inlining callers into '" << DSG.getFunctionNames() << "'\n";
-
-  // Iteratively inline caller graphs into this graph.
-  while (!EdgesFromCaller.empty()) {
-    DSGraph &CallerGraph = *EdgesFromCaller.back().CallerGraph;
-
-    // Iterate through all of the call sites of this graph, cloning and merging
-    // any nodes required by the call.
-    ReachabilityCloner RC(DSG, CallerGraph,
-                          DSGraph::DontCloneCallNodes |
-                          DSGraph::DontCloneAuxCallNodes);
-
-    // Inline all call sites from this caller graph.
-    do {
-      const DSCallSite &CS = *EdgesFromCaller.back().CS;
-      Function &CF = *EdgesFromCaller.back().CalledFunction;
-      DOUT << "   [TD] Inlining graph into Fn '" << CF.getName() << "' from ";
-      if (CallerGraph.getReturnNodes().empty())
-        DOUT << "SYNTHESIZED INDIRECT GRAPH";
-      else
-        DOUT << "Fn '" << CS.getCallSite().getInstruction()->
-                            getParent()->getParent()->getName() << "'";
-      DOUT << ": " << CF.getFunctionType()->getNumParams() << " args\n";
-
-      // Get the formal argument and return nodes for the called function and
-      // merge them with the cloned subgraph.
-      DSCallSite T1 = DSG.getCallSiteForArguments(CF);
-      RC.mergeCallSite(T1, CS);
-      ++NumTDInlines;
-
-      EdgesFromCaller.pop_back();
-    } while (!EdgesFromCaller.empty() &&
-             EdgesFromCaller.back().CallerGraph == &CallerGraph);
-  }
-
-
-  // Next, now that this graph is finalized, we need to recompute the
-  // incompleteness markers for this graph and remove unreachable nodes.
-  DSG.maskIncompleteMarkers();
-
-  // If any of the functions has incomplete incoming arguments, don't mark any
-  // of them as complete.
-  bool HasIncompleteArgs = false;
-  for (DSGraph::retnodes_iterator I = DSG.retnodes_begin(),
-         E = DSG.retnodes_end(); I != E; ++I)
-    if (ArgsRemainIncomplete.count(I->first)) {
-      HasIncompleteArgs = true;
-      break;
-    }
-
-  // Recompute the Incomplete markers.  Depends on whether args are complete
-  unsigned Flags
-    = HasIncompleteArgs ? DSGraph::MarkFormalArgs : DSGraph::IgnoreFormalArgs;
-  DSG.markIncompleteNodes(Flags | DSGraph::IgnoreGlobals);
-
-  // Delete dead nodes.  Treat globals that are unreachable as dead also.
-  DSG.removeDeadNodes(DSGraph::RemoveUnreachableGlobals);
-
-  // We are done with computing the current TD Graph!  Finally, before we can
-  // finish processing this function, we figure out which functions it calls and
-  // records these call graph edges, so that we have them when we process the
-  // callee graphs.
-  if (DSG.fc_begin() == DSG.fc_end()) return;
-
-  // Loop over all the call sites and all the callees at each call site, and add
-  // edges to the CallerEdges structure for each callee.
-  for (DSGraph::fc_iterator CI = DSG.fc_begin(), E = DSG.fc_end();
-       CI != E; ++CI) {
-
-    // Handle direct calls efficiently.
-    if (CI->isDirectCall()) {
-      if (!DSG.getReturnNodes().count(CI->getCalleeFunc()))
-        CallerEdges[&getOrCreateGraph(CI->getCalleeFunc())]
-          .push_back(CallerCallEdge(&DSG, &*CI, CI->getCalleeFunc()));
-      continue;
-    }
-
-    Instruction *CallI = CI->getCallSite().getInstruction();
-    // For each function in the invoked function list at this call site...
-    BUDataStructures::callee_iterator IPI =
-      BUInfo->callee_begin(CallI), IPE = BUInfo->callee_end(CallI);
-
-    // Skip over all calls to this graph (SCC calls).
-    while (IPI != IPE && &getOrCreateGraph(IPI->second) == &DSG)
-      ++IPI;
-
-    // All SCC calls?
-    if (IPI == IPE) continue;
-
-    Function *FirstCallee = IPI->second;
-    ++IPI;
-
-    // Skip over more SCC calls.
-    while (IPI != IPE && &getOrCreateGraph(IPI->second) == &DSG)
-      ++IPI;
-
-    // If there is exactly one callee from this call site, remember the edge in
-    // CallerEdges.
-    if (IPI == IPE) {
-      CallerEdges[&getOrCreateGraph(FirstCallee)]
-        .push_back(CallerCallEdge(&DSG, &*CI, FirstCallee));
-      continue;
-    }
-
-    // Otherwise, there are multiple callees from this call site, so it must be
-    // an indirect call.  Chances are that there will be other call sites with
-    // this set of targets.  If so, we don't want to do M*N inlining operations,
-    // so we build up a new, private, graph that represents the calls of all
-    // calls to this set of functions.
-    std::vector<Function*> Callees;
-    for (BUDataStructures::ActualCalleesTy::const_iterator I =
-           BUInfo->callee_begin(CallI), E = BUInfo->callee_end(CallI);
-         I != E; ++I)
-      Callees.push_back(I->second);
-    std::sort(Callees.begin(), Callees.end());
-
-    std::map<std::vector<Function*>, DSGraph*>::iterator IndCallRecI =
-      IndCallMap.lower_bound(Callees);
-
-    DSGraph *IndCallGraph;
-
-    // If we already have this graph, recycle it.
-    if (IndCallRecI != IndCallMap.end() && IndCallRecI->first == Callees) {
-      DOUT << "  [TD] *** Reuse of indcall graph for " << Callees.size()
-           << " callees!\n";
-      IndCallGraph = IndCallRecI->second;
-    } else {
-      // Otherwise, create a new DSGraph to represent this.
-      IndCallGraph = new DSGraph(DSG.getGlobalECs(), DSG.getTargetData());
-      // Make a nullary dummy call site, which will eventually get some content
-      // merged into it.  The actual callee function doesn't matter here, so we
-      // just pass it something to keep the ctor happy.
-      std::vector<DSNodeHandle> ArgDummyVec;
-      DSCallSite DummyCS(CI->getCallSite(), DSNodeHandle(), Callees[0]/*dummy*/,
-                         ArgDummyVec);
-      IndCallGraph->getFunctionCalls().push_back(DummyCS);
-
-      IndCallRecI = IndCallMap.insert(IndCallRecI,
-                                      std::make_pair(Callees, IndCallGraph));
-
-      // Additionally, make sure that each of the callees inlines this graph
-      // exactly once.
-      DSCallSite *NCS = &IndCallGraph->getFunctionCalls().front();
-      for (unsigned i = 0, e = Callees.size(); i != e; ++i) {
-        DSGraph& CalleeGraph = getOrCreateGraph(Callees[i]);
-        if (&CalleeGraph != &DSG)
-          CallerEdges[&CalleeGraph].push_back(CallerCallEdge(IndCallGraph, NCS,
-                                                             Callees[i]));
-      }
-    }
-
-    // Now that we know which graph to use for this, merge the caller
-    // information into the graph, based on information from the call site.
-    ReachabilityCloner RC(*IndCallGraph, DSG, 0);
-    RC.mergeCallSite(IndCallGraph->getFunctionCalls().front(), *CI);
-  }
-}
diff --git a/poolalloc/lib/Macroscopic/DeadFieldElimination.cpp b/poolalloc/lib/Macroscopic/DeadFieldElimination.cpp
deleted file mode 100644
index cd8cf99..0000000
--- a/poolalloc/lib/Macroscopic/DeadFieldElimination.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-//===-- DeadFieldElimination.cpp - Dead Field Elimination Pass ------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the -rds-deadfieldelim pass, which implements
-// Macroscopic Dead Field Elimination.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "rds-deadfieldelim"
-#include "StructureFieldVisitor.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-using namespace llvm;
-using namespace llvm::Macroscopic;
-
-namespace {
-  /// DeadFieldElim - This class implements the dead field elimination
-  /// optimization.  This transformation is a very simple macroscopic
-  /// optimization whose high-level algorithm works like this:
-  ///
-  /// 1. Identify all type-homogenous data structures that only contain HGS
-  ///    composition bits.
-  /// 2. For each data structure, visit every load of fields in the node.
-  ///    Keep track of whether a field is ever loaded.
-  /// 3. If we found fields that are never loaded from, rewrite the affected 
-  ///    data structures, deleting the dead fields!
-  ///
-  class DeadFieldElim : public ModulePass {
-
-    bool runOnModule(Module &M);
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      // Need information from DSA.
-      AU.addRequired<EquivClassGraphs>();
-      AU.addPreserved<EquivClassGraphs>();
-    }
-  };
-  RegisterPass<DeadFieldElim>
-  X("rds-deadfieldelim", "Macroscopic Dead Field Elimination");
-}  // end anonymous namespace
-
-
-namespace {
-  /// DeadFieldElimLattice - This is the most trivial lattice possible: it
-  /// consists of two states, dead (the default) and alive (overdefined,
-  /// bottom).  Because it has only two states, it does not need to maintain any
-  /// actual state.
-  struct DeadFieldElimLattice : public LatticeValue {
-    DeadFieldElimLattice(DSNode *Node, const std::vector<unsigned> &Idxs,
-                         const Type *FieldTy)
-      : LatticeValue(Node, Idxs, FieldTy) {}
-
-    // getInterestingEvents - We only care about reads from memory?
-    static unsigned getInterestingEvents() { return Macroscopic::Visit::Loads; }
-
-    virtual void dump() const {
-      LatticeValue::dump();
-      std::cerr << "  DEAD FIELD!\n";
-    }
-
-    // create - Return a dataflow fact for this field, initialized to top.
-    static DeadFieldElimLattice *create(DSNode *Node,
-                                        const std::vector<unsigned> &Idxs,
-                                        const Type *FieldTy) {
-      return new DeadFieldElimLattice(Node, Idxs, FieldTy);      
-    }
-
-    virtual bool mergeInValue(const LatticeValue *RHS) {
-      return false;  // Neither LHS nor RHS are overdefined.
-    }
-
-    // VisitLoad - Load events always move us to bottom.
-    virtual bool visitLoad(LoadInst &LI) {
-      return true;  // Bottom!
-    }
-  };
-}
-
-
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-namespace {
-  /// ConstPropLattice - This is the standard 3-level constant propagation
-  /// lattice.  When CstVal is null it is undefined, when it is non-null it is
-  /// defined to that constant, and it hits bottom of set to something
-  /// unanalyzable or multiple values.
-  struct ConstPropLattice : public LatticeValue {
-    Constant *CstVal;
-
-    ConstPropLattice(DSNode *Node, const std::vector<unsigned> &Idxs,
-                     const Type *FieldTy)
-      : LatticeValue(Node, Idxs, FieldTy), CstVal(0) {}
-
-    // getInterestingEvents - We only care about reads from memory?
-    static unsigned getInterestingEvents() { return Macroscopic::Visit::Stores;}
-
-    // create - Return a dataflow fact for this field, initialized to top.
-    static ConstPropLattice *create(DSNode *Node,
-                                    const std::vector<unsigned> &Idxs,
-                                    const Type *FieldTy) {
-      return new ConstPropLattice(Node, Idxs, FieldTy);      
-    }
-
-    bool mergeInValue(Constant *V) {
-      if (V == 0 || isa<UndefValue>(V)) return false;
-      if (CstVal == 0)
-        CstVal = V;
-      else if (CstVal != V)
-        return true;
-      return false;
-    }
-
-    virtual void dump() const {
-      LatticeValue::dump();
-      if (CstVal)
-        std::cerr << "  CONSTANT VALUE = " << *CstVal << "\n";
-      else
-        std::cerr << "  FIELD NEVER DEFINED!\n";
-    }
-
-    virtual bool mergeInValue(const LatticeValue *RHSLV) {
-      const ConstPropLattice *RHS = static_cast<const ConstPropLattice*>(RHSLV);
-      return mergeInValue(RHS->CstVal);
-    }
-
-    virtual bool visitStore(StoreInst &SI) {
-      if (Constant *CV = dyn_cast<Constant>(SI.getOperand(0)))
-        return mergeInValue(CV);
-      return true;  // Bottom!
-    }
-
-    bool visitGlobalInit(Constant *InitVal) {
-      return mergeInValue(InitVal);
-    }
-
-    virtual bool visitMemSet(CallInst &I) {
-      if (Constant *C = dyn_cast<Constant>(I.getOperand(2)))
-        if (C->isNullValue()) {
-          std::cerr << "HANDLED MEMSET: " << I;
-          return mergeInValue(Constant::getNullValue(getFieldType()));
-        }
-      return true;
-    }
-  };
-}
-
-
-
-bool DeadFieldElim::runOnModule(Module &M) {
-  EquivClassGraphs &ECG = getAnalysis<EquivClassGraphs>();
-
-  // Step #1: Identify all type-homogenous HGS (non-U) data structure nodes.
-  std::set<DSNode*> Nodes;
-
-  { NamedRegionTimer XX("Dead Fields");
-
-  FindAllDataStructures(Nodes, 0 /*nothing required*/,
-                        DSNode::UnknownNode, true /*typesafe*/, ECG);
-
-  DEBUG(std::cerr << "DeadFieldElim: Found " << Nodes.size()
-                  << " eligible data structure nodes.\n");
-
-  // Step #2: For each data structure, visit every load of fields in the node.
-  // Keep track of whether a field is ever loaded.  The visitor returns a set of
-  // lattice values that have not reached bottom (in this case, that means it
-  // returns a set of dead fields).
-  std::set<DeadFieldElimLattice*> DeadFields =
-    StructureFieldVisitor<DeadFieldElimLattice>(ECG).visit(Nodes);
-
-  DEBUG(std::cerr << "DeadFieldElim: Found " << DeadFields.size()
-        << " dead fields!\n");
-  for (std::set<DeadFieldElimLattice*>::iterator I = DeadFields.begin(),
-         E = DeadFields.end(); I != E; ++I) {
-    DEBUG((*I)->dump());
-    delete *I;
-  }
-  DEBUG(std::cerr << "\n");
-  }
-  //return true;
-
-  { NamedRegionTimer XX("Constants");
-
-  Nodes.clear();
-  FindAllDataStructures(Nodes, 0 /*nothing required*/,
-                        DSNode::UnknownNode, true /*typesafe*/, ECG);
-
-  // Step #2: For each data structure, visit every stores to fields in the node.
-  // Keep track of whether a field is always constant.  The visitor returns a
-  // set of lattice values that have not reached bottom (in this case, that
-  // means they are either undefined or overdefined.
-  std::set<ConstPropLattice*> ConstantFields =
-    StructureFieldVisitor<ConstPropLattice>(ECG).visit(Nodes);
-
-  DEBUG(std::cerr << "ConstProp: Found " << ConstantFields.size()
-        << " constant or uninitialized fields!\n");
-  for (std::set<ConstPropLattice*>::iterator I = ConstantFields.begin(),
-         E = ConstantFields.end(); I != E; ++I) {
-    DEBUG((*I)->dump());
-    delete *I;
-  }
-  DEBUG(std::cerr << "\n");
-
-  }
-
-  return true;
-
-  // NOTE: We could do a simple thing that checks for fields whose loads are
-  // immediately casted to something smaller, and stores that are casted from
-  // something smaller to shrink them.
-
-
-  { NamedRegionTimer XX("Combined");
-
-  Nodes.clear();
-  FindAllDataStructures(Nodes, 0 /*nothing required*/,
-                        DSNode::UnknownNode, true /*typesafe*/, ECG);
-
-  typedef CombinedLatticeValue<DeadFieldElimLattice,ConstPropLattice>
-    CombinedLattice;
-
-  // Step #2: For each data structure, visit every stores to fields in the node.
-  // Keep track of whether a field is always constant.  The visitor returns a
-  // set of lattice values that have not reached bottom (in this case, that
-  // means they are either undefined or overdefined.
-  std::set<CombinedLattice*> CombinedFields =
-    StructureFieldVisitor<CombinedLattice>(ECG).visit(Nodes);
-
-  DEBUG(std::cerr << "Combined: Found " << CombinedFields.size()
-        << " interesting fields!\n");
-  for (std::set<CombinedLattice*>::iterator I = CombinedFields.begin(),
-         E = CombinedFields.end(); I != E; ++I) {
-    DEBUG((*I)->dump());
-    delete *I;
-  }
-  DEBUG(std::cerr << "\n");
-
-  }
-
-  return true;
-}
diff --git a/poolalloc/lib/Macroscopic/Makefile b/poolalloc/lib/Macroscopic/Makefile
deleted file mode 100755
index 1c76cf8..0000000
--- a/poolalloc/lib/Macroscopic/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# Indicate where we are relative to the top of the source tree.
-LEVEL=../..
-
-# Give the name of a library.  This will build a dynamic version.
-SHARED_LIBRARY=1
-LOADABLE_MODULE = 1
-DONT_BUILD_RELINKED=1
-LIBRARYNAME=macroscopic
-
-# Include Makefile.common so we know what to do.
-include $(LEVEL)/Makefile.common
-
diff --git a/poolalloc/lib/Macroscopic/README.txt b/poolalloc/lib/Macroscopic/README.txt
deleted file mode 100644
index 323ccf6..0000000
--- a/poolalloc/lib/Macroscopic/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-//===- llvm-poolalloc/lib/Macroscopic -------------------------------------===//
-
-This directory contains an experimental implementation of several ideas for
-Macroscopic analyses and transformations, which may eventually include
-reimplementation of the pool allocator and other passes.
diff --git a/poolalloc/lib/Macroscopic/StructureFieldVisitor.cpp b/poolalloc/lib/Macroscopic/StructureFieldVisitor.cpp
deleted file mode 100644
index b5f06b6..0000000
--- a/poolalloc/lib/Macroscopic/StructureFieldVisitor.cpp
+++ /dev/null
@@ -1,939 +0,0 @@
-//===-- StructureFieldVisitor.cpp - Implement StructureFieldVisitor -------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the StructureFieldVisitor and related classes.
-//
-//===----------------------------------------------------------------------===//
-
-#include "StructureFieldVisitor.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/Support/InstVisitor.h"
-#include <algorithm>
-#include <iostream>
-
-using namespace llvm::Macroscopic;
-using namespace llvm;
-
-/// FindAllDataStructures - Inspect the program specified by ECG, adding to
-/// 'Nodes' all of the data structures node in the program that contain the
-/// "IncludeFlags" and do not contain "ExcludeFlags" node flags.  If
-/// OnlyHomogenous is true, only type-homogenous nodes are considered.
-void FindAllDataStructures(std::set<DSNode*> &Nodes, unsigned IncludeFlags,
-                           unsigned ExcludeFlags, bool OnlyHomogenous,
-                           EquivClassGraphs &ECG) {
-  // Loop over all of the graphs in ECG, finding nodes that are not incomplete
-  // and do not have any of the flags specified by Flags.
-  ExcludeFlags |= DSNode::Incomplete;
-
-  /// FIXME: nodes in the global graph should not be marked incomplete in main!!
-  for (hash_map<const Function*, DSGraph*>::iterator GI = ECG.DSInfo.begin(),
-         E = ECG.DSInfo.end(); GI != E; ++GI) {
-    assert(GI->second && "Null graph pointer?");
-    DSGraph &G = *GI->second;
-    for (DSGraph::node_iterator I = G.node_begin(), E = G.node_end();
-         I != E; ++I)
-      // If this node matches our constraints, include it.
-      if ((I->getNodeFlags() & IncludeFlags) == IncludeFlags &&
-          (I->getNodeFlags() & ExcludeFlags) == 0)
-        if (!OnlyHomogenous || !I->isNodeCompletelyFolded())
-          Nodes.insert(I);
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// LatticeValue class implementation
-//
-
-DSGraph &LatticeValue::getParentGraph() const {
-  DSGraph *PG = getNode()->getParentGraph();
-  assert(PG && "Node doesn't have a parent, is it a GlobalGraph node?");
-  return *PG;
-}
-
-/// getFieldOffset - Return the offset of this field from the start of the node.
-///
-unsigned LatticeValue::getFieldOffset() const {
-  const TargetData &TD = getNode()->getParentGraph()->getTargetData();
-
-  unsigned Offset = 0;
-  const Type *Ty = Node->getType();
-  for (unsigned i = 0, e = Idxs.size(); i != e; ++i)
-    if (const StructType *STy = dyn_cast<StructType>(Ty)) {
-      const StructLayout *SL = TD.getStructLayout(STy);
-      Offset += SL->MemberOffsets[Idxs[i]];
-      Ty = STy->getElementType(Idxs[i]);
-    } else {
-      const SequentialType *STy = cast<SequentialType>(Ty);
-      Ty = STy->getElementType();
-      --i;   // This doesn't index a struct.
-    }
-  return Offset;
-}
-
-
-
-void LatticeValue::dump() const {
-  std::cerr << "\nFunction: " << Node->getParentGraph()->getFunctionNames()
-            << "\n";
-  Node->dump();
-  if (!Idxs.empty()) {
-    std::cerr << "Field: ";
-    for (unsigned i = 0, e = Idxs.size(); i != e; ++i)
-      std::cerr << Idxs[i] << ".";
-  }
-  std::cerr << "\n";
-}
-
-bool LatticeValue::visitLoad(LoadInst &) {
-  std::cerr << "ERROR: Client requested load visitation, but did not "
-            << "overload visitLoad!\n";
-  dump();
-  return true;
-}
-bool LatticeValue::visitStore(StoreInst &) {
-  std::cerr << "ERROR: Client requested store visitation, but did not "
-            << "overload visitStore!\n";
-  dump();
-  return true;
-}
-
-bool LatticeValue::visitGlobalInit(Constant *) {
-  std::cerr << "ERROR: Client requested store visitation, but did not "
-            << "overload visitGlobalInit!\n";
-  dump();
-  return true;
-}
-
-//===----------------------------------------------------------------------===//
-// SFVInstVisitor class implementation
-//
-
-namespace {
-  /// SFVInstVisitor - This visitor is used to do the actual visitation of
-  /// memory instructions in the program.
-  ///
-  struct SFVInstVisitor : public InstVisitor<SFVInstVisitor, bool> {
-    DSGraph &DSG;
-    const unsigned Callbacks;
-    std::multimap<DSNode*, LatticeValue*> &NodeLVs;
-
-    // DirectCallSites - When we see call sites, we don't process them, but we
-    // do remember them if they are direct calls.
-    std::set<Instruction*> DirectCallSites;
-
-    SFVInstVisitor(DSGraph &dsg, unsigned CBs,
-                   std::multimap<DSNode*, LatticeValue*> &LVs)
-      : DSG(dsg), Callbacks(CBs), NodeLVs(LVs) {}
-
-    // Methods used by visitation methods.
-    LatticeValue *getLatticeValueForField(Value *Ptr);
-    bool RemoveLatticeValueAtBottom(LatticeValue *LV);
-
-    /// Visitation methods - These methods should return true when a lattice
-    /// value is driven to 'bottom' and removed from NodeLVs.
-    bool visitLoadInst(LoadInst &LI);
-    bool visitStoreInst(StoreInst &SI);
-
-    /// These are not implemented yet.
-    bool visitGetElementPtrInst(GetElementPtrInst &GEPI) { return false; }
-    bool visitMallocInst(MallocInst &MI) { return false; }
-    bool visitAllocaInst(AllocaInst &AI) { return false; }
-    bool visitFreeInst(FreeInst &FI) { return false; }
-    bool visitPHINode(PHINode &PN) { return false; }
-    bool visitSelectInst(SelectInst &SI) { return false; }
-    bool visitSetCondInst(SetCondInst &SCI) { return false; }
-    bool visitCastInst(CastInst &CI) { return false; }
-    bool visitReturnInst(ReturnInst &RI) { return false; }
-    
-    // visitCallInst/visitInvokeInst - Call and invoke are handled specially, so
-    // they are just noops here.
-    bool visitCallInst(CallInst &CI) { return visitCallSite(CI); }
-    bool visitInvokeInst(InvokeInst &II) { return visitCallSite(II); }
-    bool visitCallSite(Instruction &I) {
-      // Remember direct function calls.
-      if (isa<Function>(I.getOperand(0))) DirectCallSites.insert(&I);
-      return false;
-    }
-
-    bool visitInstruction(Instruction &I) {
-#ifndef NDEBUG
-      // Check to make sure this instruction really isn't using anything we the
-      // client needs to know about.
-      assert(getLatticeValueForField(&I) == 0 && "Inst should be handled!");
-      for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i)
-        assert(getLatticeValueForField(I.getOperand(i)) == 0 &&
-               "Inst should be handled by visitor!");
-#endif
-      return false;
-    }
-  };
-}
-
-static void ComputeStructureFieldIndices(const Type *Ty, unsigned Offset,
-                                         std::vector<unsigned> &Idxs,
-                                         const TargetData &TD) {
-  if (Ty->isFirstClassType()) {
-    assert(Offset == 0 && "Illegal structure index!");
-    return;
-  }
-
-  if (const SequentialType *STy = dyn_cast<SequentialType>(Ty)) {
-    ComputeStructureFieldIndices(STy->getElementType(), Offset, Idxs, TD);
-  } else if (const StructType *STy = dyn_cast<StructType>(Ty)) {
-    const StructLayout *SL = TD.getStructLayout(STy);
-    
-    std::vector<uint64_t>::const_iterator SI =
-      std::upper_bound(SL->MemberOffsets.begin(), SL->MemberOffsets.end(),
-                       Offset);
-    assert(SI != SL->MemberOffsets.begin() && "Offset not in structure type!");
-    --SI;
-    assert(*SI <= Offset && "upper_bound didn't work");
-    assert((SI == SL->MemberOffsets.begin() || *(SI-1) < Offset) &&
-           (SI+1 == SL->MemberOffsets.end() || *(SI+1) > Offset) &&
-           "Upper bound didn't work!");
-    Offset -= *SI;   // Skip over the offset to this structure field.
-    unsigned Idx = SI - SL->MemberOffsets.begin();
-    assert(Idx < STy->getNumElements() && "Illegal structure index");
-    Idxs.push_back(Idx);
-    ComputeStructureFieldIndices(STy->getElementType(Idx), Offset, Idxs, TD);
-  } else {
-    assert(0 && "Unknown type to index into!");
-  }  
-}
-
-LatticeValue *SFVInstVisitor::getLatticeValueForField(Value *Ptr) {
-  if (!isa<PointerType>(Ptr->getType()) ||
-      isa<ConstantPointerNull>(Ptr)) return 0;
-
-  const DSNodeHandle *NH = &DSG.getNodeForValue(Ptr);
-  DSNode *Node = NH->getNode();
-  assert(Node && "Pointer doesn't have node??");
-
-  std::multimap<DSNode*, LatticeValue*>::iterator I = NodeLVs.find(Node);
-  if (I == NodeLVs.end()) return 0;  // Not a node we are still tracking.
-
-  // Okay, next convert the node offset to a field index expression.
-  std::vector<unsigned> Idxs;
-  ComputeStructureFieldIndices(Node->getType(), NH->getOffset(), Idxs,
-                               Node->getParentGraph()->getTargetData());
-
-  for (; I != NodeLVs.end() && I->first == Node; ++I)
-    if (I->second->getIndices() == Idxs)
-      return I->second;
-  return 0;
-}
-
-/// RemoveLatticeValueAtBottom - When analysis determines that LV hit bottom,
-/// this method is used to remove it from the NodeLVs map.  This method always
-/// returns true to simplify caller code.
-///
-bool SFVInstVisitor::RemoveLatticeValueAtBottom(LatticeValue *LV) {
-  for (std::multimap<DSNode*, LatticeValue*>::iterator I
-         = NodeLVs.find(LV->getNode());; ++I) {
-    assert(I != NodeLVs.end() && "Lattice value not in map??");
-    if (I->second == LV) {
-      NodeLVs.erase(I);
-      return true;
-    }
-  }
-}
-
-
-bool SFVInstVisitor::visitLoadInst(LoadInst &LI) {
-  if ((Callbacks & Visit::Loads) == 0) return false;
-
-  if (LatticeValue *LV = getLatticeValueForField(LI.getOperand(0)))
-    if (LV->visitLoad(LI))
-      return RemoveLatticeValueAtBottom(LV);
-
-  return false;
-}
-
-bool SFVInstVisitor::visitStoreInst(StoreInst &SI) {
-  if ((Callbacks & Visit::Stores) == 0) return false;
-
-  if (LatticeValue *LV = getLatticeValueForField(SI.getOperand(1)))
-    if (LV->visitStore(SI))
-      return RemoveLatticeValueAtBottom(LV);
-
-  return false;
-}
-
-
-//===----------------------------------------------------------------------===//
-// StructureFieldVisitorBase class implementation
-//
-
-void StructureFieldVisitorBase::
-AddLatticeValuesForFields(DSNode *Node, const Type *Ty,
-                          const std::vector<unsigned> &Idxs,
-                          std::set<LatticeValue*> &Values) {
-  if (Ty->isFirstClassType()) {
-    if (LatticeValue *LV = createLatticeValue(Node, Idxs, Ty))
-      Values.insert(LV);
-    return;
-  }
-
-  const StructType *STy = dyn_cast<StructType>(Ty);
-  if (STy == 0) return;  // Not handling arrays yet!
-
-  std::vector<unsigned> NextIdxs(Idxs);
-  NextIdxs.push_back(0);
-  for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
-    NextIdxs.back() = i;
-    AddLatticeValuesForFields(Node, STy->getElementType(i), NextIdxs, Values);
-  }
-}
-
-void StructureFieldVisitorBase::
-AddLatticeValuesForNode(DSNode *N, std::set<LatticeValue*> &Values) {
-  if (N->isNodeCompletelyFolded() ||
-      N->getType() == Type::VoidTy) return;  // Can't analyze node.
-  std::vector<unsigned> Idxs;
-  AddLatticeValuesForFields(N, N->getType(), Idxs, Values);
-}
-
-
-/// visitNodes - This is a simple wrapper around visitFields that creates a
-/// lattice value for every field in the specified collection of nodes.
-///
-std::set<LatticeValue*> StructureFieldVisitorBase::
-visitNodes(const std::set<DSNode*> &Nodes) {
-  std::set<LatticeValue*> Result;
-
-  // Create lattice values for all of the fields in these nodes.
-  for (std::set<DSNode*>::const_iterator I = Nodes.begin(), E = Nodes.end();
-       I != E; ++I)
-    AddLatticeValuesForNode(*I, Result);
-
-  // Now that we have the lattice values, just use visitFields to do the grunt
-  // work.
-  visitFields(Result);
-  return Result;
-}
-
-
-/// VisitGlobalInit - The specified lattice value corresponds to a field (or
-/// several) in the specified global.  Merge all of the overlapping initializer
-/// values into LV (up-to and until it becomes overdefined).
-///
-static bool VisitGlobalInit(LatticeValue *LV, Constant *Init,
-                            unsigned FieldOffset) {
-  const TargetData &TD = LV->getParentGraph().getTargetData();
-
-  if (Init->isNullValue())
-    return LV->visitGlobalInit(Constant::getNullValue(LV->getFieldType()));
-  if (isa<UndefValue>(Init))
-    return LV->visitGlobalInit(UndefValue::get(LV->getFieldType()));
-
-  if (LV->getNode()->isArray() &&
-      TD.getTypeSize(Init->getType()) > LV->getNode()->getSize()) {
-    ConstantArray *CA = cast<ConstantArray>(Init);
-    for (unsigned i = 0, e = CA->getNumOperands(); i != e; ++i)
-      if (VisitGlobalInit(LV, CA->getOperand(i), FieldOffset))
-        return true;
-    return false;
-  }
-
-NextStep:  // Manual tail recursion
-
-  if (Init->isNullValue())
-    return LV->visitGlobalInit(Constant::getNullValue(LV->getFieldType()));
-  if (isa<UndefValue>(Init))
-    return LV->visitGlobalInit(UndefValue::get(LV->getFieldType()));
-  if (Init->getType()->isFirstClassType()) {
-    assert(FieldOffset == 0 && "GV Init mismatch!");
-    return LV->visitGlobalInit(Init);
-  }
-  
-  if (const StructType *STy = dyn_cast<StructType>(Init->getType())) {
-    const StructLayout *SL = TD.getStructLayout(STy);
-    unsigned Field = SL->getElementContainingOffset(FieldOffset);
-    FieldOffset -= SL->MemberOffsets[Field];
-    Init = cast<ConstantStruct>(Init)->getOperand(Field);
-    goto NextStep;
-  } else if (const ArrayType *ATy = dyn_cast<ArrayType>(Init->getType())) {
-    unsigned ElSz = TD.getTypeSize(ATy->getElementType());
-    unsigned Idx = FieldOffset / ElSz;
-    FieldOffset -= Idx*ElSz;
-    Init = cast<ConstantArray>(Init)->getOperand(Idx);
-    goto NextStep;
-  } else {
-    assert(0 && "Unexpected initializer type!");
-    return true;
-  }
-}
-
-
-/// visitFields - Visit all uses of the specified fields, updating the lattice
-/// values as appropriate.
-///
-void StructureFieldVisitorBase::visitFields(std::set<LatticeValue*> &Fields) {
-  // Now that we added all of the initial nodes, find out what graphs these
-  // nodes are rooted in.  For efficiency, handle batches of nodes in the same
-  // function together at the same time.  To do this, pull everything out of
-  // Fields and put it into FieldsByGraph.
-  std::multimap<DSGraph*, LatticeValue*> FieldsByGraph;
-  while (!Fields.empty()) {
-    LatticeValue *LV = *Fields.begin();
-    Fields.erase(Fields.begin());
-    FieldsByGraph.insert(std::make_pair(&LV->getParentGraph(), LV));
-  }
-
-  // Now that everything is grouped by graph, process a graph worth of nodes at
-  // a time, moving the results back to Fields if they are not overdefined.
-  while (!FieldsByGraph.empty()) {
-    // NodeLVs - Inspect all of the lattice values that are active in this
-    // graph.
-    std::multimap<DSNode*, LatticeValue*> NodeLVs;
-    DSGraph &DSG = *FieldsByGraph.begin()->first;
-
-    // Pull out all nodes in this graph, putting them into NodeLVs.
-    while (FieldsByGraph.begin()->first == &DSG) {
-      LatticeValue *LV = FieldsByGraph.begin()->second;
-      FieldsByGraph.erase(FieldsByGraph.begin());
-      NodeLVs.insert(std::make_pair(LV->getNode(), LV));
-    }
-
-    // Visit all operations in this graph, looking at how these lattice values
-    // are used!
-    visitGraph(DSG, NodeLVs);
-
-    if (NodeLVs.empty()) continue;
-
-    // If any of the nodes have globals, and if we are inspecting stores, make
-    // sure to notice the global variable initializers.
-    if (Callbacks & Visit::Stores) {
-      for (std::multimap<DSNode*, LatticeValue*>::iterator I = NodeLVs.begin();
-           I != NodeLVs.end(); ) {
-        // If this node has globals, incorporate them.
-        bool LVisOverdefined = false;
-        std::vector<GlobalValue*> GVs;
-        I->first->addFullGlobalsList(GVs);
-        for (unsigned i = 0, e = GVs.size(); i != e; ++i)
-          if (GlobalVariable *GV = dyn_cast<GlobalVariable>(GVs[i])) {
-            assert(GV->hasInitializer() && "Should not be analyzing this GV!");
-            if (VisitGlobalInit(I->second, GV->getInitializer(),
-                                I->second->getFieldOffset())) {
-              LVisOverdefined = true;
-              break;
-            }
-          }
-
-        if (LVisOverdefined)
-          NodeLVs.erase(I++);
-        else
-          ++I;
-      }
-      if (NodeLVs.empty()) continue;
-    }
-
-    // Okay, final check.  If we have any dataflow facts about nodes that are
-    // reachable from global variable nodes, we must make sure to check every
-    // function in the program that uses the global for uses of the node.
-    // Because of the globals graph, we might not have all of the information we
-    // need with our (potentially) truncated call graph traversal.
-    ProcessNodesReachableFromGlobals(DSG, NodeLVs);
-
-    // Everything that survived goes into Fields now that we processed it.
-    while (!NodeLVs.empty()) {
-      Fields.insert(NodeLVs.begin()->second);
-      NodeLVs.erase(NodeLVs.begin());
-    }
-  }
-}
-
-/// ComputeInverseGraphFrom - Perform a simple depth-first search of the
-/// DSGraph, recording the inverse of all of the edges in the graph.
-///
-static void ComputeInverseGraphFrom(DSNode *N,
-                         std::set<std::pair<DSNode*,DSNode*> > &InverseGraph) {
-  for (DSNode::edge_iterator I = N->edge_begin(), E = N->edge_end(); I != E;++I)
-    if (DSNode *Target = I->getNode())
-      if (InverseGraph.insert(std::make_pair(Target, N)).second)
-        ComputeInverseGraphFrom(Target, InverseGraph);
-}
-
-
-/// ComputeNodesReacahbleFrom - Compute the set of nodes in the specified
-/// inverse graph that are reachable from N.  This is a simple depth first
-/// search.
-///
-static void ComputeNodesReachableFrom(DSNode *N,
-                            std::set<std::pair<DSNode*,DSNode*> > &InverseGraph,
-                                      hash_set<const DSNode*> &Reachable) {
-  if (!Reachable.insert(N).second) return;  // Already visited!
-  
-  std::set<std::pair<DSNode*,DSNode*> >::iterator I = 
-    InverseGraph.lower_bound(std::make_pair(N, (DSNode*)0));
-  for (; I != InverseGraph.end() && I->first == N; ++I)
-    ComputeNodesReachableFrom(I->second, InverseGraph, Reachable);
-}
-
-/// ProcessNodesReachableFromGlobals - If we inferred anything about nodes
-/// reachable from globals, we have to make sure that we incorporate data for
-/// all graphs that include those globals due to the nature of the globals
-/// graph.
-///
-void StructureFieldVisitorBase::
-ProcessNodesReachableFromGlobals(DSGraph &DSG,
-                                 std::multimap<DSNode*,LatticeValue*> &NodeLVs){
-  // Start by marking all nodes reachable from globals.
-  DSScalarMap &SM = DSG.getScalarMap();
-  if (SM.global_begin() == SM.global_end()) return;
-
-  hash_set<const DSNode*> Reachable;
-  for (DSScalarMap::global_iterator GI = SM.global_begin(),
-         E = SM.global_end(); GI != E; ++GI)
-    SM[*GI].getNode()->markReachableNodes(Reachable);
-  if (Reachable.empty()) return;
-  
-  // If any of the nodes with dataflow facts are reachable from the globals
-  // graph, we have to do the GG processing step.
-  bool MustProcessThroughGlobalsGraph = false;
-  for (std::multimap<DSNode*, LatticeValue*>::iterator I = NodeLVs.begin(),
-         E = NodeLVs.end(); I != E; ++I)
-    if (Reachable.count(I->first)) {
-      MustProcessThroughGlobalsGraph = true;
-      break;
-    }
-  
-  if (!MustProcessThroughGlobalsGraph) return;
-  Reachable.clear();
-
-  // Compute the mapping from DSG to the globals graph.
-  DSGraph::NodeMapTy DSGToGGMap;
-  DSG.computeGToGGMapping(DSGToGGMap);
-
-  // Most of the times when we find facts about things reachable from globals we
-  // we are in the main graph.  This means that we have *all* of the globals
-  // graph in this DSG.  To be efficient, we compute the minimum set of globals
-  // that can reach any of the NodeLVs facts.
-  //
-  // I'm not aware of any wonderful way of computing the set of globals that
-  // points to the set of nodes in NodeLVs that is not N^2 in either NodeLVs or
-  // the number of globals, except to compute the inverse of DSG.  As such, we
-  // compute the inverse graph of DSG, which basically has the edges going from
-  // pointed to nodes to pointing nodes.  Because we only care about one
-  // connectedness properties, we ignore field info.  In addition, we only
-  // compute inverse of the portion of the graph reachable from the globals.
-  std::set<std::pair<DSNode*,DSNode*> > InverseGraph;
-
-  for (DSScalarMap::global_iterator GI = SM.global_begin(),
-         E = SM.global_end(); GI != E; ++GI)
-    ComputeInverseGraphFrom(SM[*GI].getNode(), InverseGraph);
-
-  // Okay, now that we have our bastardized inverse graph, compute the set of
-  // globals nodes reachable from our lattice nodes.
-  for (std::multimap<DSNode*, LatticeValue*>::iterator I = NodeLVs.begin(),
-         E = NodeLVs.end(); I != E; ++I)
-    ComputeNodesReachableFrom(I->first, InverseGraph, Reachable);
- 
-  // Now that we know which nodes point to the data flow facts, figure out which
-  // globals point to the data flow facts.
-  std::set<GlobalValue*> Globals;
-  for (hash_set<const DSNode*>::iterator I = Reachable.begin(),
-         E = Reachable.end(); I != E; ++I)
-    Globals.insert((*I)->globals_begin(), (*I)->globals_end());
-
-  // Finally, loop over all of the DSGraphs for the program, computing
-  // information for the graph if not done already, mapping the result into our
-  // context.
-  for (hash_map<const Function*, DSGraph*>::iterator GI = ECG.DSInfo.begin(),
-         E = ECG.DSInfo.end(); GI != E; ++GI) {
-    DSGraph &FG = *GI->second;
-    // Graphs can contain multiple functions, only process the graph once.
-    if (GI->first != FG.retnodes_begin()->first ||
-        // Also, do not bother reprocessing DSG.
-        &FG == &DSG)
-      continue;
-
-    bool GraphUsesGlobal = false;
-    for (std::set<GlobalValue*>::iterator I = Globals.begin(),
-           E = Globals.end(); I != E; ++I)
-      if (FG.getScalarMap().count(*I)) {
-        GraphUsesGlobal = true;
-        break;
-      }
-
-    // If this graph does not contain the global at all, there is no reason to
-    // even think about it.
-    if (!GraphUsesGlobal) continue;
-
-    // Otherwise, compute the full set of dataflow effects of the function.
-    std::multimap<DSNode*, LatticeValue*> &FGF = getCalleeFacts(FG);
-    //std::cerr << "Computed: " << FG.getFunctionNames() << "\n";
-
-#if 0
-    for (std::multimap<DSNode*, LatticeValue*>::iterator I = FGF.begin(),
-           E = FGF.end(); I != E; ++I)
-      I->second->dump();
-#endif
-    // Compute the mapping of nodes in the globals graph to the function's
-    // graph.  Note that this function graph may not have nodes (or may have
-    // fragments of full nodes) in the globals graph, and we don't want this to
-    // pessimize the analysis.
-    std::multimap<const DSNode*, std::pair<DSNode*,int> > GraphMap;
-    DSGraph::NodeMapTy GraphToGGMap;
-    FG.computeGToGGMapping(GraphToGGMap);
-
-    // "Invert" the mapping.  We compute the mapping from the start of a global
-    // graph node to a place in the graph's node.  Note that not all of the GG
-    // node may be present in the graphs node, so there may be a negative offset
-    // involved.
-    while (!GraphToGGMap.empty()) {
-      DSNode *GN = const_cast<DSNode*>(GraphToGGMap.begin()->first);
-      DSNodeHandle &GGNH = GraphToGGMap.begin()->second;
-      GraphMap.insert(std::make_pair(GGNH.getNode(),
-                                     std::make_pair(GN, -GGNH.getOffset())));
-      GraphToGGMap.erase(GraphToGGMap.begin());
-    }
-
-    // Loop over all of the dataflow facts that we have computed, mapping them
-    // to the globals graph.
-    for (std::multimap<DSNode*, LatticeValue*>::iterator I = NodeLVs.begin(),
-           E = NodeLVs.end(); I != E; ) {
-      bool FactHitBottom = false;
-
-      //I->second->dump();
-
-      assert(I->first->getParentGraph() == &DSG);
-      assert(I->second->getNode()->getParentGraph() == &DSG);
-
-      // Node is in the GG?
-      DSGraph::NodeMapTy::iterator DSGToGGMapI = DSGToGGMap.find(I->first);
-      if (DSGToGGMapI != DSGToGGMap.end()) {
-        DSNodeHandle &GGNH = DSGToGGMapI->second;
-        const DSNode *GGNode = GGNH.getNode();
-        unsigned DSGToGGOffset = GGNH.getOffset();
-
-        // See if there is a node in FG that corresponds to this one.  If not,
-        // no information will be computed in this scope, as the memory is not
-        // accessed.
-        std::multimap<const DSNode*, std::pair<DSNode*,int> >::iterator GMI =
-          GraphMap.find(GGNode);
-
-        // LatticeValOffset - The offset from the start of the GG Node to the
-        // start of the field we are interested in.
-        unsigned LatticeValOffset = I->second->getFieldOffset()+DSGToGGOffset;
-
-        // Loop over all of the nodes in FG that correspond to this single node
-        // in the GG.
-        for (; GMI != GraphMap.end() && GMI->first == GGNode; ++GMI) {
-          // Compute the offset to the field in the user graph.
-          unsigned FieldOffset = LatticeValOffset - GMI->second.second;
-
-          // If the field is within the amount of memory accessed by this scope,
-          // then there must be a corresponding lattice value.
-          DSNode *FGNode = GMI->second.first;
-          if (FieldOffset < FGNode->getSize()) {
-            LatticeValue *CorrespondingLV = 0;
-
-            std::multimap<DSNode*, LatticeValue*>::iterator FGFI =
-              FGF.find(FGNode);
-            for (; FGFI != FGF.end() && FGFI->first == FGNode; ++FGFI)
-              if (FGFI->second->getFieldOffset() == FieldOffset) {
-                CorrespondingLV = FGFI->second;
-                break;
-              }
-
-            // Finally, if either there was no corresponding fact (because it
-            // hit bottom in this scope), or if merging the two pieces of
-            // information makes it hit bottom, remember this.
-            if (CorrespondingLV == 0 ||
-                I->second->mergeInValue(CorrespondingLV))
-              FactHitBottom = true;
-          }
-        }
-      }
-
-      if (FactHitBottom) {
-        delete I->second;
-        NodeLVs.erase(I++);
-        if (NodeLVs.empty()) return;
-      } else {
-        ++I;
-      }
-    }
-  }
-}
-
-
-/// getCalleeFacts - Compute the data flow effect that calling one of the
-/// functions in this graph has on the caller.  This information is cached after
-/// it is computed for a function the first time.
-///
-std::multimap<DSNode*, LatticeValue*> &
-StructureFieldVisitorBase::getCalleeFacts(DSGraph &DSG) {
-  // Already computed?
-  std::map<DSGraph*, std::multimap<DSNode*,LatticeValue*> >::iterator
-    I = CalleeFnFacts.find(&DSG);
-  if (I != CalleeFnFacts.end())
-    return I->second;   // We already computed stuff for this fn!
-  
-  std::multimap<DSNode*, LatticeValue*> &Result = CalleeFnFacts[&DSG];
-
-  std::set<LatticeValue*> LVs;
-  for (DSGraph::node_iterator NI = DSG.node_begin(), E = DSG.node_end();
-       NI != E; ++NI)
-    AddLatticeValuesForNode(NI, LVs);
-
-  while (!LVs.empty()) {
-    Result.insert(std::make_pair((*LVs.begin())->getNode(), *LVs.begin()));
-    LVs.erase(LVs.begin());
-  }
-
-  if (!Result.empty())
-    visitGraph(DSG, Result);
-  return Result;
-}
-
-
-/// NodeCanPossiblyBeInteresting - Return true if the specified node can
-/// potentially be interesting to a client that is only interested in
-/// VisitFlags events.  This is used to reduce the cost of interprocedural
-/// analysis by not traversing the call graph through portions that the DSGraph
-/// can answer immediately.
-///
-static bool NodeCanPossiblyBeInteresting(const DSNode *N, unsigned VisitFlags) {
-  // No fields are accessed in this context.
-  if (N->getType() == Type::VoidTy) return false;
-  
-  // This node is possibly interesting if we are looking for reads and it is
-  // read, we're looking for writes and it is modified, etc.
-  if ((VisitFlags & Visit::Loads) && N->isRead()) return true;
-  if ((VisitFlags & Visit::Stores) && N->isModified()) return true;
-
-  assert((VisitFlags & ~(Visit::Loads|Visit::Stores)) == 0 &&
-         "Unknown visitation type!");
-
-  // Otherwise, this node is not interesting to the current client.
-  return false;
-}
-
-/// visitGraph - Visit the functions in the specified graph, updating the
-/// specified lattice values for all of their uses.
-///
-void StructureFieldVisitorBase::
-visitGraph(DSGraph &DSG, std::multimap<DSNode*, LatticeValue*> &NodeLVs) {
-  assert(!NodeLVs.empty() && "No lattice values to compute!");
-
-  // To visit a graph, first step, we visit the instruction making up each
-  // function in the graph, but ignore calls when processing them.  We handle
-  // call nodes explicitly by looking at call nodes in the graph if needed.  We
-  // handle instructions before calls to avoid interprocedural analysis if we
-  // can drive lattice values to bottom early.
-  //
-  SFVInstVisitor IV(DSG, Callbacks, NodeLVs);
-
-  for (DSGraph::retnodes_iterator FI = DSG.retnodes_begin(),
-         E = DSG.retnodes_end(); FI != E; ++FI)
-    for (Function::iterator BB = FI->first->begin(), E = FI->first->end();
-         BB != E; ++BB)
-      for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
-        if (IV.visit(*I) && NodeLVs.empty())
-          return;  // Nothing left to analyze.
-
-  // Keep track of which actual direct callees are handled.
-  std::set<Function*> CalleesHandled;
-
-  // Once we have visited all of the instructions in the function bodies, if
-  // there are lattice values that have not been driven to bottom, see if any of
-  // the nodes involved are passed into function calls.  If so, we potentially
-  // have to recursively traverse the call graph.
-  for (DSGraph::fc_iterator CS = DSG.fc_begin(), E = DSG.fc_end();
-       CS != E; ++CS) {
-    // Figure out the mapping from a node in the caller (potentially several)
-    // nodes in the callee.
-    DSGraph::NodeMapTy CallNodeMap;
-
-    Instruction *TheCall = CS->getCallSite().getInstruction();
-
-    // If this is an indirect function call, assume nothing gets passed through
-    // it. FIXME: THIS IS BROKEN!  Just get the ECG for the fn ptr if it's not
-    // direct.
-    if (CS->isIndirectCall())
-      continue;
-
-    // If this is an external function call, it cannot be involved with this
-    // node, because otherwise the node would be marked incomplete!
-    if (CS->getCalleeFunc()->isExternal())
-      continue;
-
-    // If we can handle this function call, remove it from the set of direct
-    // calls found by the visitor.
-    CalleesHandled.insert(CS->getCalleeFunc());
-
-    std::vector<DSNodeHandle> Args;
-
-    DSGraph *CG = &ECG.getDSGraph(*CS->getCalleeFunc());
-    CG->getFunctionArgumentsForCall(CS->getCalleeFunc(), Args);
-
-    if (!CS->getRetVal().isNull())
-      DSGraph::computeNodeMapping(Args[0], CS->getRetVal(), CallNodeMap);
-    for (unsigned i = 0, e = CS->getNumPtrArgs(); i != e; ++i) {
-      if (i == Args.size()-1) break;
-      DSGraph::computeNodeMapping(Args[i+1], CS->getPtrArg(i), CallNodeMap);
-    }
-    Args.clear();
-
-    // The mapping we just computed maps from nodes in the callee to nodes in
-    // the caller, so we can't query it efficiently.  Instead of going through
-    // the trouble of inverting the map to do this (linear time with the size of
-    // the mapping), we just do a linear search to see if any affected nodes are
-    // passed into this call.
-    bool CallCanModifyDataFlow = false;
-    for (DSGraph::NodeMapTy::iterator MI = CallNodeMap.begin(),
-           E = CallNodeMap.end(); MI != E; ++MI)
-      if (NodeLVs.count(MI->second.getNode()))
-        // Okay, the node is passed in, check to see if the call might do
-        // something interesting to it (i.e. if analyzing the call can produce
-        // anything other than "top").
-        if ((CallCanModifyDataFlow = NodeCanPossiblyBeInteresting(MI->first,
-                                                                  Callbacks)))
-          break;
-
-    // If this function call cannot impact the analysis (either because the
-    // nodes we are tracking are not passed into the call, or the DSGraph for
-    // the callee tells us that analysis of the callee can't provide interesting
-    // information), ignore it.
-    if (!CallCanModifyDataFlow)
-      continue;
-
-    // Okay, either compute analysis results for the callee function, or reuse
-    // results previously computed.
-    std::multimap<DSNode*, LatticeValue*> &CalleeFacts = getCalleeFacts(*CG);
-
-    // Merge all of the facts for the callee into the facts for the caller.  If
-    // this reduces anything in the caller to 'bottom', remove them.
-    for (DSGraph::NodeMapTy::iterator MI = CallNodeMap.begin(),
-           E = CallNodeMap.end(); MI != E; ++MI) {
-      // If we have Lattice facts in the caller for this node in the callee,
-      // merge any information from the callee into the caller.
-
-      // If the node is not accessed in the callee at all, don't update.
-      if (MI->first->getType() == Type::VoidTy)
-        continue;
-
-      // If there are no data-flow facts live in the caller for this node, don't
-      // both processing it.
-      std::multimap<DSNode*, LatticeValue*>::iterator NLVI =
-        NodeLVs.find(MI->second.getNode());
-      if (NLVI == NodeLVs.end()) continue;
-          
-          
-      // Iterate over all of the lattice values that have corresponding fields
-      // in the callee, merging in information as we go.  Be careful about the
-      // fact that the callee may get passed the address of a substructure and
-      // other funny games.
-      //if (CalleeFacts.count(const_cast<DSNode*>(MI->first)) == 0) {
-
-      DSNode *CalleeNode = const_cast<DSNode*>(MI->first);
-
-      unsigned CalleeNodeOffset = MI->second.getOffset();
-      while (NLVI->first == MI->second.getNode()) {
-        // Figure out what offset in the callee this field would land.
-        unsigned FieldOff = NLVI->second->getFieldOffset()+CalleeNodeOffset;
-
-        // If the field is not within the callee node, ignore it.
-        if (FieldOff >= CalleeNode->getSize()) {
-          ++NLVI;
-          continue;
-        }
-
-        // Okay, check to see if we have a lattice value for the field at offset
-        // FieldOff in the callee node.
-        const LatticeValue *CalleeLV = 0;
-
-        std::multimap<DSNode*, LatticeValue*>::iterator CFI = 
-          CalleeFacts.lower_bound(CalleeNode);
-        for (; CFI != CalleeFacts.end() && CFI->first == CalleeNode; ++CFI)
-          if (CFI->second->getFieldOffset() == FieldOff) {
-            CalleeLV = CFI->second;   // Found it!
-            break;
-          }
-        
-        // If we don't, the lattice value hit bottom and we should remove the
-        // lattice value in the caller.
-        if (!CalleeLV) {
-          delete NLVI->second;   // The lattice value hit bottom.
-          NodeLVs.erase(NLVI++);
-          continue;
-        }
-
-        // Finally, if we did find a corresponding entry, merge the information
-        // into the caller's lattice value and keep going.
-        if (NLVI->second->mergeInValue(CalleeLV)) {
-          // Okay, merging these two caused the caller value to hit bottom.
-          // Remove it.
-          delete NLVI->second;   // The lattice value hit bottom.
-          NodeLVs.erase(NLVI++);
-        }
-
-        ++NLVI;  // We successfully merged in some information!
-      }
-
-      // If we ran out of facts to prove, just exit.
-      if (NodeLVs.empty()) return;
-    }
-  }
-
-  // The local analysis pass inconveniently discards many local function calls
-  // from the graph if they are to known functions.  Loop over direct function
-  // calls not handled above and visit them as appropriate.
-  while (!IV.DirectCallSites.empty()) {
-    Instruction *Call = *IV.DirectCallSites.begin();
-    IV.DirectCallSites.erase(IV.DirectCallSites.begin());
-
-    // Is this one actually handled by DSA?
-    if (CalleesHandled.count(cast<Function>(Call->getOperand(0))))
-      continue;
-
-    // Collect the pointers involved in this call.    
-    std::vector<Value*> Pointers;
-    if (isa<PointerType>(Call->getType()))
-      Pointers.push_back(Call);
-    for (unsigned i = 1, e = Call->getNumOperands(); i != e; ++i)
-      if (isa<PointerType>(Call->getOperand(i)->getType()))
-        Pointers.push_back(Call->getOperand(i));
-
-    // If this is an intrinsic function call, figure out which one.
-    unsigned IID = cast<Function>(Call->getOperand(0))->getIntrinsicID();
-
-    for (unsigned i = 0, e = Pointers.size(); i != e; ++i) {
-      // If any of our lattice values are passed into this call, which is
-      // specially handled by the local analyzer, inform the lattice function.
-      DSNode *N = DSG.getNodeForValue(Pointers[i]).getNode();
-      for (std::multimap<DSNode*, LatticeValue*>::iterator LVI =
-             NodeLVs.lower_bound(N); LVI != NodeLVs.end() && LVI->first == N;) {
-        bool AtBottom = false;
-        switch (IID) {
-        default:
-          AtBottom = LVI->second->visitRecognizedCall(*Call);
-          break;
-        case Intrinsic::memset:
-          if (Callbacks & Visit::Stores)
-            AtBottom = LVI->second->visitMemSet(*cast<CallInst>(Call));
-          break;
-        }
-
-        if (AtBottom) {
-          delete LVI->second;
-          NodeLVs.erase(LVI++);
-        } else {
-          ++LVI;
-        }
-      }
-    }
-  }
-}
diff --git a/poolalloc/lib/Macroscopic/StructureFieldVisitor.h b/poolalloc/lib/Macroscopic/StructureFieldVisitor.h
deleted file mode 100644
index 767ac70..0000000
--- a/poolalloc/lib/Macroscopic/StructureFieldVisitor.h
+++ /dev/null
@@ -1,277 +0,0 @@
-//===-- StructureFieldVisitor.h - Macroscopic DS inspector ------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the public interface to the LatticeValue and
-// StructureFieldVisitor classes.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MACROSCOPIC_STRUCTUREFIELDVISITOR_H
-#define MACROSCOPIC_STRUCTUREFIELDVISITOR_H
-
-#include <set>
-#include <map>
-#include <vector>
-
-namespace llvm {
-  class Type;
-  class Constant;
-  class Instruction;
-  class LoadInst;
-  class CallInst;
-  class StoreInst;
-  class EquivClassGraphs;
-  class DSNode;
-  class DSGraph;
-
-namespace Macroscopic {
-
-/// FindAllDataStructures - Inspect the program specified by ECG, adding to
-/// 'Nodes' all of the data structures node in the program that contain the
-/// "IncludeFlags" and do not contain "ExcludeFlags" node flags.  If
-/// OnlyHomogenous is true, only type-homogenous nodes are considered.
-void FindAllDataStructures(std::set<DSNode*> &Nodes, unsigned IncludeFlags,
-                           unsigned ExcludeFlags, bool OnlyHomogenous,
-                           EquivClassGraphs &ECG);
-
-//===----------------------------------------------------------------------===//
-/// Visit types - This describes an enum specifying which methods are
-/// overloaded in the concrete implementation of the LatticeValue class.
-namespace Visit {
-  enum {
-    Loads = 1,
-    Stores = 2,
-    Allocs = 4,
-    Deallocs = 8,
-    // ...
-  };
-}
-
-//===----------------------------------------------------------------------===//
-/// LatticeValue - Describe.
-///
-class LatticeValue {
-  DSNode *Node;
-  std::vector<unsigned> Idxs;  // The index path to get to this field.
-  const Type *FieldTy;         // The type of this field.
-public:
-  LatticeValue(DSNode *N, const std::vector<unsigned> &I,
-               const Type *Ty) : Node(N), Idxs(I), FieldTy(Ty) {}
-  virtual ~LatticeValue() {}
-
-  DSNode *getNode() const { return Node; }
-  DSGraph &getParentGraph() const;
-
-  const std::vector<unsigned> &getIndices() const { return Idxs; }
-  const Type *getFieldType() const { return FieldTy; }
-
-  /// getFieldOffset - Get the byte offset of this field from the start of the
-  /// node.
-  ///
-  unsigned getFieldOffset() const;
-
-  /// dump - Print debugging information about this class.
-  ///
-  virtual void dump() const;
-
-  /// mergeInValue - Merge the information from the RHS lattice value (which is
-  /// guaranteed to be the same dynamic type as 'this') into this lattice value.
-  /// If the resultant value hits bottom, return true.  This is used for
-  /// interprocedural analysis.
-  ///
-  virtual bool mergeInValue(const LatticeValue *RHS) {
-    return true;
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Visitation methods - These methods update the current lattice state
-  // based on the information in the operation.  If the lattice value reaches
-  // bottom, the method implementation should return true so that analysis
-  // can be stopped as early as possible.  Visitation methods are grouped by
-  // their Visitation class.
-
-  // All lattice values must implement these.
-
-  /// visitRecognizedCall - The node for this lattice value is passed into some
-  /// external function that is "known" by the Local analysis pass (e.g. atoi).
-  /// By default, this stops any analysis of the node.
-  ///
-  virtual bool visitRecognizedCall(Instruction &I) {
-    return true;
-  }
-  
-  // Load Vistation methods.
-  virtual bool visitLoad(LoadInst &);
-
-  // Store Visitation methods.
-  virtual bool visitStore(StoreInst &);
-  virtual bool visitGlobalInit(Constant *InitVal);
-  virtual bool visitMemSet(CallInst &I) {
-    return visitRecognizedCall((Instruction&)I);
-  }
-};
-
-//===----------------------------------------------------------------------===//
-/// CombinedLatticeValue - Describe.
-///
-template<typename L1, typename L2>
-class CombinedLatticeValue : public LatticeValue {
-  L1 LV1; L2 LV2;
-  bool LV1Bottom, LV2Bottom;
-public:
-  CombinedLatticeValue(DSNode *Node, const std::vector<unsigned> &Idxs,
-                       const Type *FieldTy)
-    : LatticeValue(Node, Idxs, FieldTy), LV1(Node, Idxs, FieldTy),
-      LV2(Node, Idxs, FieldTy), LV1Bottom(false), LV2Bottom(false) {}
-      
-  static unsigned getInterestingEvents() {
-    return L1::getInterestingEvents() | L2::getInterestingEvents();
-  }
-
-  static CombinedLatticeValue *create(DSNode *Node,
-                                      const std::vector<unsigned> &Idxs,
-                                      const Type *FieldTy) {
-    return new CombinedLatticeValue(Node, Idxs, FieldTy);      
-  }
-
-  void dump() const {
-    if (!LV1Bottom) LV1.dump();
-    if (!LV2Bottom) LV2.dump();
-  }
-
-  virtual bool mergeInValue(const LatticeValue *RHSLV) {
-    const CombinedLatticeValue *RHS =
-      static_cast<const CombinedLatticeValue *>(RHSLV);
-    LV1Bottom |= RHS->LV1Bottom;
-    LV2Bottom |= RHS->LV2Bottom;
-    if (!LV1Bottom) LV1Bottom = LV1.mergeInValue(&RHS->LV1);
-    if (!LV2Bottom) LV2Bottom = LV2.mergeInValue(&RHS->LV2);
-    return LV1Bottom & LV2Bottom;
-  }
-  
-  virtual bool visitRecognizedCall(Instruction &I) {
-    if (!LV1Bottom) LV1Bottom = LV1.visitRecognizedCall(I);
-    if (!LV2Bottom) LV2Bottom = LV2.visitRecognizedCall(I);
-    return LV1Bottom & LV2Bottom;
-  }
-  
-  // Load Vistation methods.
-  virtual bool visitLoad(LoadInst &LI) {
-    if (!LV1Bottom && (L1::getInterestingEvents() & Visit::Loads))
-      LV1Bottom = LV1.visitLoad(LI);
-    if (!LV2Bottom && (L2::getInterestingEvents() & Visit::Loads))
-      LV2Bottom = LV2.visitLoad(LI);
-    return LV1Bottom & LV2Bottom;
-  }
-
-  // Store Visitation methods.
-  virtual bool visitStore(StoreInst &SI) {
-    if (!LV1Bottom && (L1::getInterestingEvents() & Visit::Stores))
-      LV1Bottom = LV1.visitStore(SI);
-    if (!LV2Bottom && (L2::getInterestingEvents() & Visit::Stores))
-      LV2Bottom = LV2.visitStore(SI);
-    return LV1Bottom & LV2Bottom;
-  }
-
-  virtual bool visitGlobalInit(Constant *InitVal) {
-    if (!LV1Bottom && (L1::getInterestingEvents() & Visit::Stores))
-      LV1Bottom = LV1.visitGlobalInit(InitVal);
-    if (!LV2Bottom && (L2::getInterestingEvents() & Visit::Stores))
-      LV2Bottom = LV2.visitGlobalInit(InitVal);
-    return LV1Bottom & LV2Bottom;
-  }
-
-  virtual bool visitMemSet(CallInst &I) {
-    if (!LV1Bottom && (L1::getInterestingEvents() & Visit::Stores))
-      LV1Bottom = LV1.visitMemSet(I);
-    if (!LV2Bottom && (L2::getInterestingEvents() & Visit::Stores))
-      LV2Bottom = LV2.visitMemSet(I);
-    return LV1Bottom & LV2Bottom;
-  }
-};
-
-
-//===----------------------------------------------------------------------===//
-/// StructureFieldVisitorBase - This implements all of the heavy lifting
-/// for the StructureFieldVisitor class.  This class should not be used
-/// directly, see it (below) for usage.
-///
-class StructureFieldVisitorBase {
-  unsigned Callbacks;     // Bitfield containing bits from Macroscopic::Visit
-  EquivClassGraphs &ECG;
-  
-  std::map<DSGraph*, std::multimap<DSNode*,LatticeValue*> > CalleeFnFacts;
-
-  // createLatticeValue - Provide a virtual ctor for the concrete lattice value.
-  virtual LatticeValue* createLatticeValue(DSNode *Node,
-                                           const std::vector<unsigned> &Idxs,
-                                           const Type *FieldTy) = 0;
-protected:
-  // Only allow this to be subclassed.
-  StructureFieldVisitorBase(unsigned CB, EquivClassGraphs &ecg)
-    : Callbacks(CB), ECG(ecg) {}
-  virtual ~StructureFieldVisitorBase() {}
-  
-  
-  std::set<LatticeValue*> visitNodes(const std::set<DSNode*> &Nodes);
-  void visitFields(std::set<LatticeValue*> &Fields);
-
-private:
-  void visitGraph(DSGraph &DSG, std::multimap<DSNode*, LatticeValue*> &NodeLVs);
-  std::multimap<DSNode*, LatticeValue*> &getCalleeFacts(DSGraph &DSG);
-
-  void AddLatticeValuesForFields(DSNode *N, const Type *Ty,
-                                 const std::vector<unsigned> &Idxs,
-                                 std::set<LatticeValue*> &Values);
-  void AddLatticeValuesForNode(DSNode *N, std::set<LatticeValue*> &Values);
-  void ProcessNodesReachableFromGlobals(DSGraph &DSG,
-                             std::multimap<DSNode*,LatticeValue*> &NodeLVs);
-
-};
-
-
-
-//===----------------------------------------------------------------------===//
-/// FIXME: Describe
-template<typename ConcLatticeVal>
-class StructureFieldVisitor : public StructureFieldVisitorBase {
-public:
-  // FIXME: We really want to be able to infer which methods LatticeVal
-  // overloads from the base class using template metaprogramming techniques.
-  StructureFieldVisitor(EquivClassGraphs &ECG)
-    : StructureFieldVisitorBase(ConcLatticeVal::getInterestingEvents(), ECG) {}
-
-  /// visit - Visit the specified set of data structure nodes, recursively
-  /// visiting all accesses to structure fields defined in those nodes.  This
-  /// method returns a set of lattice values that have not reached bottom.
-  std::set<ConcLatticeVal*> visit(const std::set<DSNode*> &Nodes) {
-    std::set<LatticeValue*> ResultVals = visitNodes(Nodes);
-
-    // Convert the result set to the appropriate lattice type.
-    std::set<ConcLatticeVal*> Result;
-    while (!ResultVals.empty()) {
-      Result.insert(static_cast<ConcLatticeVal*>(*ResultVals.begin()));
-      ResultVals.erase(ResultVals.begin());
-    }
-    return Result;
-  }
-
-
-private:  // Virtual method implementations for the base class.
-  virtual LatticeValue* createLatticeValue(DSNode *N,
-                                           const std::vector<unsigned> &Idxs,
-                                           const Type *FieldTy) {
-    return ConcLatticeVal::create(N, Idxs, FieldTy);
-  }
-};
-
-}  // End Macroscopic namespace
-}  // End llvm namespace
-
-#endif
diff --git a/poolalloc/lib/Makefile b/poolalloc/lib/Makefile
deleted file mode 100644
index 75d357e..0000000
--- a/poolalloc/lib/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Relative path to the top of the source tree.
-#
-LEVEL=..
-
-#
-# List all of the subdirectories that we will compile.
-#
-PARALLEL_DIRS=DSA
-
-include $(LEVEL)/Makefile.common
diff --git a/poolalloc/lib/PoolAllocate/AccessTrace.cpp b/poolalloc/lib/PoolAllocate/AccessTrace.cpp
deleted file mode 100644
index d8ecabc..0000000
--- a/poolalloc/lib/PoolAllocate/AccessTrace.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//===-- PoolAccessTrace.cpp - Build trace of loads ------------------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the -poolaccesstrace pass.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pointercompress"
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "poolalloc/PoolAllocate.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-using namespace llvm;
-
-namespace {
-
-  /// PoolAccessTrace - This transformation adds instrumentation to the program
-  /// to print a trace of pairs containing the address of each load and the pool
-  /// descriptor loaded from.
-  class PoolAccessTrace : public ModulePass {
-    PoolAllocate *PoolAlloc;
-    EquivClassGraphs *ECG;
-    Constant *AccessTraceInitFn, *PoolAccessTraceFn;
-    const Type *VoidPtrTy;
-  public:
-
-    bool runOnModule(Module &M);
-
-    void getAnalysisUsage(AnalysisUsage &AU) const;
-
-    const DSGraph &getGraphForFunc(PA::FuncInfo *FI) const {
-      return ECG->getDSGraph(FI->F);
-    }
-
-  private:
-    void InitializeLibraryFunctions(Module &M);
-    void InstrumentAccess(Instruction *I, Value *Ptr, 
-                          PA::FuncInfo *FI, DSGraph &DSG);
-  };
-
-  RegisterPass<PoolAccessTrace>
-  X("poolaccesstrace", "Instrument program to print trace of accesses");
-}
-
-void PoolAccessTrace::getAnalysisUsage(AnalysisUsage &AU) const {
-  // Need information about how pool allocation happened.
-  AU.addRequired<PoolAllocatePassAllPools>();
-
-  // Need information from DSA.
-  AU.addRequired<EquivClassGraphs>();
-}
-
-void PoolAccessTrace::InitializeLibraryFunctions(Module &M) {
-  VoidPtrTy = PointerType::get(Type::Int8Ty);
-
-  AccessTraceInitFn = M.getOrInsertFunction("poolaccesstraceinit",
-                                            Type::VoidTy,NULL);
-  PoolAccessTraceFn = M.getOrInsertFunction("poolaccesstrace", Type::VoidTy,
-                                            VoidPtrTy, VoidPtrTy, NULL);
-}
-
-void PoolAccessTrace::InstrumentAccess(Instruction *I, Value *Ptr, 
-                                       PA::FuncInfo *FI, DSGraph &DSG) {
-  // Don't trace loads of globals or the stack.
-  if (isa<Constant>(Ptr) || isa<AllocaInst>(Ptr)) return;
-
-  Value *MappedPtr = Ptr;
-  if (!FI->NewToOldValueMap.empty())
-    if ((MappedPtr = FI->MapValueToOriginal(MappedPtr)) == 0) {
-      // Value didn't exist in the orig program (pool desc?).
-      return;
-    }
-  DSNode *Node = DSG.getNodeForValue(MappedPtr).getNode();
-  if (Node == 0) return;
-
-  Value *PD = FI->PoolDescriptors[Node];
-  Ptr = CastInst::createPointerCast (Ptr, VoidPtrTy, Ptr->getName(), I);
-
-  if (PD)
-    PD = CastInst::createPointerCast (PD, VoidPtrTy, PD->getName(), I);
-  else
-    PD = Constant::getNullValue(VoidPtrTy);
-
-  // Insert the trace call.
-  new CallInst(PoolAccessTraceFn, Ptr, PD, "", I);
-}
-
-bool PoolAccessTrace::runOnModule(Module &M) {
-  PoolAlloc = &getAnalysis<PoolAllocatePassAllPools>();
-  ECG = &getAnalysis<EquivClassGraphs>();
-
-  // Create the function prototypes for runtime library.
-  InitializeLibraryFunctions(M);
-
-  Function *MainFunc = M.getFunction("main");
-  if (MainFunc && !MainFunc->isDeclaration())
-    // Insert a call to the library init function into the beginning of main.
-    new CallInst(AccessTraceInitFn, "", MainFunc->begin()->begin());
-
-  // Look at all of the loads in the program.
-  for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
-    if (F->isDeclaration()) continue;
-
-    PA::FuncInfo *FI = PoolAlloc->getFuncInfoOrClone(*F);
-    assert(FI && "DIDN'T FIND POOL INFO!");
-
-    // If this function was cloned, and this is the original function, ignore it
-    // (it's dead).  We'll deal with the cloned version later when we run into
-    // it again.
-    if (FI->Clone && &FI->F == F)
-      continue;
-
-    // Get the DSGraph for this function.
-    DSGraph &DSG = ECG->getDSGraph(FI->F);
-
-    for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB)
-      for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
-        if (LoadInst *LI = dyn_cast<LoadInst>(I))
-          InstrumentAccess(LI, LI->getOperand(0), FI, DSG);
-  }
-  return true;
-}
diff --git a/poolalloc/lib/PoolAllocate/Heuristic.cpp b/poolalloc/lib/PoolAllocate/Heuristic.cpp
deleted file mode 100644
index 4f3ea9f..0000000
--- a/poolalloc/lib/PoolAllocate/Heuristic.cpp
+++ /dev/null
@@ -1,510 +0,0 @@
-//===-- Heuristic.cpp - Interface to PA heuristics ------------------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This implements the various pool allocation heuristics.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Heuristic.h"
-
-#include "dsa/DSGraphTraits.h"
-#include "poolalloc/PoolAllocate.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/ADT/DepthFirstIterator.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Target/TargetData.h"
-#include <iostream>
-using namespace llvm;
-using namespace PA;
-
-namespace {
-  enum PoolAllocHeuristic {
-    NoNodes,
-    OnlyOverhead,
-    AllInOneGlobalPool,
-    SmartCoallesceNodes,
-    CyclicNodes,
-    AllButUnreachableFromMemory,
-    AllNodes
-  };
-  cl::opt<PoolAllocHeuristic>
-  TheHeuristic("poolalloc-heuristic",
-    cl::desc("Heuristic to choose which nodes to pool allocate"),
-    cl::values(clEnumVal(AllNodes, "  Pool allocate all nodes"),
-               clEnumVal(AllButUnreachableFromMemory, "  Pool allocate all reachable from memory objects"),
-               clEnumVal(CyclicNodes, "  Pool allocate nodes with cycles"),
-               clEnumVal(SmartCoallesceNodes, "  Use the smart node merging heuristic"),
-               clEnumVal(AllInOneGlobalPool, "  Use pool library as replacement for malloc/free"),
-               clEnumVal(OnlyOverhead, "  Do not pool allocate anything, but induce all overhead from it"),
-               clEnumVal(NoNodes, "  Do not pool allocate anything"),
-               clEnumValEnd),
-    cl::init(AllButUnreachableFromMemory)); 
-
-  cl::opt<bool>
-  DisableAlignOpt("poolalloc-disable-alignopt",
-                  cl::desc("Force all pool alignment to 8 bytes"));
-}
-
-Heuristic::~Heuristic() {}
-
-unsigned Heuristic::getRecommendedSize(const DSNode *N) {
-  unsigned PoolSize = 0;
-  if (!N->isArray() && N->getType()->isSized()) {
-    PoolSize = N->getParentGraph()->getTargetData().getTypeSize(N->getType());
-  }
-  if (PoolSize == 1) PoolSize = 0;
-  return PoolSize;
-}
-
-/// Wants8ByteAlignment - FIXME: this is a complete hack for X86 right now.
-static bool Wants8ByteAlignment(const Type *Ty, unsigned Offs,
-                                const TargetData &TD) {
-  if (DisableAlignOpt) return true;
-
-  if ((Offs & 7) == 0) {
-    // Doubles always want to be 8-byte aligned.
-    if (Ty == Type::DoubleTy) return true;
-    
-    // If we are on a 64-bit system, we want to align 8-byte integers and
-    // pointers.
-    if (TD.getPrefTypeAlignment(Ty) == 8)
-      return true;
-  }
-
-  if (Ty->isFirstClassType())
-    return false;
-
-  if (const StructType *STy = dyn_cast<StructType>(Ty)) {
-    const StructLayout *SL = TD.getStructLayout(STy);
-    for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
-      if (Wants8ByteAlignment(STy->getElementType(i),
-                              Offs+SL->getElementOffset(i), TD))
-        return true;
-    }
-  } else if (const SequentialType *STy = dyn_cast<SequentialType>(Ty)) {
-    return Wants8ByteAlignment(STy->getElementType(), Offs, TD);
-  } else {
-    std::cerr << *Ty << "\n";
-    assert(0 && "Unknown type!");
-  }
-  return false;
-}
-
-unsigned Heuristic::getRecommendedAlignment(const Type *Ty,
-                                            const TargetData &TD) {
-  if (Ty == Type::VoidTy)  // Is this void or collapsed?
-    return 0;  // No known alignment, let runtime decide.
-
-  return Wants8ByteAlignment(Ty, 0, TD) ? 8 : 4;
-}
-
-/// getRecommendedAlignment - Return the recommended object alignment for this
-/// DSNode.
-///
-unsigned Heuristic::getRecommendedAlignment(const DSNode *N) {
-  if (N->getType() == Type::VoidTy)  // Is this void or collapsed?
-    return 0;  // No known alignment, let runtime decide.
-
-  const TargetData &TD = N->getParentGraph()->getTargetData();
-
-  // If there are no doubles on an 8-byte boundary in this structure, there is
-  // no reason to 8-byte align objects in the pool.
-  return Wants8ByteAlignment(N->getType(), 0, TD) ? 8 : 4;
-}
- 
-
-//===-- AllNodes Heuristic ------------------------------------------------===//
-//
-// This heuristic pool allocates everything possible into separate pools.
-//
-struct AllNodesHeuristic : public Heuristic {
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                     Function *F, DSGraph &G,
-                     std::vector<OnePool> &ResultPools) {
-    for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i)
-      ResultPools.push_back(OnePool(NodesToPA[i]));
-  }
-};
-
-
-//===-- AllButUnreachableFromMemoryHeuristic Heuristic --------------------===//
-//
-// This heuristic pool allocates everything possible into separate pools, unless
-// the pool is not reachable by other memory objects.  This filters out objects
-// that are not cyclic and are only pointed to by scalars: these tend to be
-// singular memory allocations that are not worth creating a whole pool for.
-//
-struct AllButUnreachableFromMemoryHeuristic : public Heuristic {
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                     Function *F, DSGraph &G,
-                     std::vector<OnePool> &ResultPools) {
-    // Build a set of all nodes that are reachable from another node in the
-    // graph.  Here we ignore scalar nodes that are only globals as they are
-    // often global pointers to big arrays.
-    std::set<const DSNode*> ReachableFromMemory;
-    for (DSGraph::node_iterator I = G.node_begin(), E = G.node_end();
-         I != E; ++I) {
-      DSNode *N = I;
-      // Ignore nodes that are just globals and not arrays.
-      /*
-      if (N->isArray() || N->isHeapNode() || N->isAllocaNode() ||
-          N->isUnknownNode())
-      */
-      // If a node is marked, all children are too.
-      if (!ReachableFromMemory.count(N))
-        for (DSNode::iterator NI = N->begin(), E = N->end(); NI != E; ++NI)
-          for (df_ext_iterator<const DSNode*>
-                 DI = df_ext_begin(*NI, ReachableFromMemory),
-                 E = df_ext_end(*NI, ReachableFromMemory); DI != E; ++DI)
-          /*empty*/;
-    }
-
-    // Only pool allocate a node if it is reachable from a memory object (itself
-    // included).
-    for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i)
-      if (ReachableFromMemory.count(NodesToPA[i]))
-        ResultPools.push_back(OnePool(NodesToPA[i]));
-  }
-};
-
-//===-- CyclicNodes Heuristic ---------------------------------------------===//
-//
-// This heuristic only pool allocates nodes in an SCC in the DSGraph.
-//
-struct CyclicNodesHeuristic : public Heuristic {
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                     Function *F, DSGraph &G,
-                     std::vector<OnePool> &ResultPools);
-};
-
-static bool NodeExistsInCycle(const DSNode *N) {
-  for (DSNode::const_iterator I = N->begin(), E = N->end(); I != E; ++I)
-    if (*I && std::find(df_begin(*I), df_end(*I), N) != df_end(*I))
-      return true;
-  return false;
-}
-
-void CyclicNodesHeuristic::AssignToPools(const std::vector<const 
-                                                           DSNode*> &NodesToPA,
-                                         Function *F, DSGraph &G,
-                                         std::vector<OnePool> &ResultPools) {
-  for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i)
-    if (NodeExistsInCycle(NodesToPA[i]))
-      ResultPools.push_back(OnePool(NodesToPA[i]));
-}
-
-
-//===-- SmartCoallesceNodes Heuristic -------------------------------------===//
-//
-// This heuristic attempts to be smart and coallesce nodes at times.  In
-// practice, it doesn't work very well.
-//
-struct SmartCoallesceNodesHeuristic : public Heuristic {
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                    Function *F, DSGraph &G,
-                    std::vector<OnePool> &ResultPools) {
-    // For globals, do not pool allocate unless the node is cyclic and not an
-    // array (unless it's collapsed).
-    if (F == 0) {
-      for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i) {
-        const DSNode *Node = NodesToPA[i];
-        if ((Node->isNodeCompletelyFolded() || !Node->isArray()) &&
-            NodeExistsInCycle(Node))
-          ResultPools.push_back(OnePool(Node));
-      }
-    } else {
-      // TODO
-    }
-  }
-};
-
-#if 0
-/// NodeIsSelfRecursive - Return true if this node contains a pointer to itself.
-static bool NodeIsSelfRecursive(DSNode *N) {
-  for (DSNode::iterator I = N->begin(), E = N->end(); I != E; ++I)
-    if (*I == N) return true;
-  return false;
-}
-
-/// POVisit - This implements functionality found in Support/PostOrderIterator.h
-/// but in a way that allows multiple roots to be used.  If PostOrderIterator
-/// supported an external set like DepthFirstIterator did I could eliminate this
-/// cruft.
-///
-static void POVisit(DSNode *N, std::set<DSNode*> &Visited,
-                    std::vector<DSNode*> &Order) {
-  if (!Visited.insert(N).second) return;  // already visited
-
-  // Visit all children before visiting this node.
-  for (DSNode::iterator I = N->begin(), E = N->end(); I != E; ++I)
-    if (DSNode *C = const_cast<DSNode*>(*I))
-      POVisit(C, Visited, Order);
-  // Now that we visited all of our children, add ourself to the order.
-  Order.push_back(N);
-}
-
-
-
-  // Heuristic for building per-function pools
-
-  switch (Heuristic) {
-  case SmartCoallesceNodes: {
-    std::set<DSNode*> NodesToPASet(NodesToPA.begin(), NodesToPA.end());
-
-    // DSGraphs only have unidirectional edges, to traverse or inspect the
-    // predecessors of nodes, we must build a mapping of the inverse graph.
-    std::map<DSNode*, std::vector<DSNode*> > InverseGraph;
-
-    for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i) {
-      DSNode *Node = NodesToPA[i];
-      for (DSNode::iterator CI = Node->begin(), E = Node->end(); CI != E; ++CI)
-        if (DSNode *Child = const_cast<DSNode*>(*CI))
-          if (NodesToPASet.count(Child))
-            InverseGraph[Child].push_back(Node);
-    }
-
-    // Traverse the heap nodes in reverse-post-order so that we are guaranteed
-    // to visit all nodes pointing to another node before we visit that node
-    // itself (except with cycles).
-
-    // FIXME: This really should be using the PostOrderIterator.h file stuff,
-    // but the routines there do not support external storage!
-    std::set<DSNode*> Visited;
-    std::vector<DSNode*> Order;
-    for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i)
-      POVisit(NodesToPA[i], Visited, Order);
-
-    // We want RPO, not PO, so reverse the order.
-    std::reverse(Order.begin(), Order.end());
-
-    // Okay, we have an ordering of the nodes in reverse post order.  Traverse
-    // each node in this ordering, noting that there may be nodes in the order
-    // that are not in our NodesToPA list.
-    for (unsigned i = 0, e = Order.size(); i != e; ++i)
-      if (NodesToPASet.count(Order[i])) {        // Only process pa nodes.
-        DSNode *N = Order[i];
-
-        // If this node has a backedge to itself, pool allocate it in a new
-        // pool.
-        if (NodeIsSelfRecursive(N)) {
-          // Create a new alloca instruction for the pool...
-          Value *AI = new AllocaInst(PoolDescType, 0, "PD", InsertPoint);
-        
-          // Void types in DS graph are never used
-          if (N->isNodeCompletelyFolded())
-            std::cerr << "Node collapsing in '" << F.getName() << "'\n";
-        
-          // Update the PoolDescriptors map
-          PoolDescriptors.insert(std::make_pair(N, AI));
-#if 1
-        } else if (N->isArray() && !N->isNodeCompletelyFolded()) {
-          // We never pool allocate array nodes.
-          PoolDescriptors[N] =
-            Constant::getNullValue(PointerType::get(PoolDescType));
-          ++NumNonprofit;
-#endif
-        } else {
-          // Otherwise the node is not self recursive.  If the node is not an
-          // array, we can co-locate it with the pool of a predecessor node if
-          // any has been pool allocated, and start a new pool if a predecessor
-          // is an array.  If there is a predecessor of this node that has not
-          // been visited yet in this RPO traversal, that means there is a
-          // cycle, so we choose to pool allocate this node right away.
-          //
-          // If there multiple predecessors in multiple different pools, we
-          // don't pool allocate this at all.
-
-          // Check out each of the predecessors of this node.
-          std::vector<DSNode*> &Preds = InverseGraph[N];
-          Value *PredPool = 0;
-          bool HasUnvisitedPred     = false;
-          bool HasArrayPred         = false;
-          bool HasMultiplePredPools = false;
-          for (unsigned p = 0, e = Preds.size(); p != e; ++p) {
-            DSNode *Pred = Preds[p];
-            if (!PoolDescriptors.count(Pred))
-              HasUnvisitedPred = true;  // no pool assigned to predecessor?
-            else if (Pred->isArray() && !Pred->isNodeCompletelyFolded())
-              HasArrayPred = true;
-            else if (PredPool && PoolDescriptors[Pred] != PredPool)
-              HasMultiplePredPools = true;
-            else if (!PredPool &&
-                     !isa<ConstantPointerNull>(PoolDescriptors[Pred]))
-              PredPool = PoolDescriptors[Pred];
-            // Otherwise, this predecessor has the same pool as a previous one.
-          }
-
-          if (HasMultiplePredPools) {
-            // If this node has predecessors that are in different pools, don't
-            // pool allocate this node.
-            PoolDescriptors[N] =
-              Constant::getNullValue(PointerType::get(PoolDescType));
-            ++NumNonprofit;
-          } else if (PredPool) {
-            // If all of the predecessors of this node are already in a pool,
-            // colocate.
-            PoolDescriptors[N] = PredPool;
-            ++NumColocated;
-          } else if (HasArrayPred || HasUnvisitedPred) {
-            // If this node has an array predecessor, or if there is a
-            // predecessor that has not been visited yet, allocate a new pool
-            // for it.
-            Value *AI = new AllocaInst(PoolDescType, 0, "PD", InsertPoint);
-            if (N->isNodeCompletelyFolded())
-              std::cerr << "Node collapsing in '" << F.getName() << "'\n";
-
-            PoolDescriptors[N] = AI;
-          } else {
-            // If this node has no pool allocated predecessors, and there is no
-            // reason to pool allocate it, don't.
-            assert(PredPool == 0);
-             PoolDescriptors[N] =
-              Constant::getNullValue(PointerType::get(PoolDescType));
-            ++NumNonprofit;
-          }
-        }
-      }
-  }  // End switch case
-  }  // end switch
-#endif
-
-
-//===-- AllInOneGlobalPool Heuristic --------------------------------------===//
-//
-// This heuristic puts all memory in the whole program into a single global
-// pool.  This is not safe, and is not good for performance, but can be used to
-// evaluate how good the pool allocator runtime works as a "malloc replacement".
-//
-struct AllInOneGlobalPoolHeuristic : public Heuristic {
-  // TheGlobalPD - This global pool is the one and only one used when running
-  // with Heuristic=AllInOneGlobalPool.
-  GlobalVariable *TheGlobalPD;
-
-  AllInOneGlobalPoolHeuristic() : TheGlobalPD(0) {}
-
-
-  virtual bool IsRealHeuristic() { return false; }
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                    Function *F, DSGraph &G,
-                    std::vector<OnePool> &ResultPools) {
-    if (TheGlobalPD == 0)
-      TheGlobalPD = PA->CreateGlobalPool(0, 0);
-
-    // All nodes allocate from the same global pool.
-    OnePool Pool;
-    Pool.NodesInPool = NodesToPA;
-    Pool.PoolDesc = TheGlobalPD;
-    ResultPools.push_back(Pool);
-  }
-};
-
-//===-- OnlyOverhead Heuristic --------------------------------------------===//
-//
-// This heuristic is a hack to evaluate how much overhead pool allocation adds
-// to a program.  It adds all of the arguments, poolinits and pool destroys to
-// the program, but dynamically only passes null into the pool alloc/free
-// functions, causing them to allocate from the heap.
-//
-struct OnlyOverheadHeuristic : public Heuristic {
-  virtual bool IsRealHeuristic() { return false; }
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                    Function *F, DSGraph &G,
-                    std::vector<OnePool> &ResultPools) {
-    // For this heuristic, we assign everything possible to its own pool.
-    for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i)
-      ResultPools.push_back(OnePool(NodesToPA[i]));
-  }
-
-  void HackFunctionBody(Function &F, std::map<const DSNode*, Value*> &PDs);
-};
-
-/// getDynamicallyNullPool - Return a PoolDescriptor* that is always dynamically
-/// null.  Insert the code necessary to produce it before the specified
-/// instruction.
-static Value *getDynamicallyNullPool(BasicBlock::iterator I) {
-  // Arrange to dynamically pass null into all of the pool functions if we are
-  // only checking for overhead.
-  static Value *NullGlobal = 0;
-  if (!NullGlobal) {
-    Module *M = I->getParent()->getParent()->getParent();
-    NullGlobal = new GlobalVariable(PoolAllocate::PoolDescPtrTy, false,
-                                    GlobalValue::ExternalLinkage,
-                         Constant::getNullValue(PoolAllocate::PoolDescPtrTy),
-                                    "llvm-poolalloc-null-init", M);
-  }
-  while (isa<AllocaInst>(I)) ++I;
-
-  return new LoadInst(NullGlobal, "nullpd", I);
-}
-
-// HackFunctionBody - This method is called on every transformed function body.
-// Basically it replaces all uses of real pool descriptors with dynamically null
-// values.  However, it leaves pool init/destroy alone.
-void OnlyOverheadHeuristic::HackFunctionBody(Function &F,
-                                             std::map<const DSNode*,
-                                             Value*> &PDs) {
-  Constant *PoolInit = PA->PoolInit;
-  Constant *PoolDestroy = PA->PoolDestroy;
-
-  Value *NullPD = getDynamicallyNullPool(F.front().begin());
-  for (std::map<const DSNode*, Value*>::iterator PDI = PDs.begin(),
-         E = PDs.end(); PDI != E; ++PDI) {
-    Value *OldPD = PDI->second;
-    std::vector<User*> OldPDUsers(OldPD->use_begin(), OldPD->use_end());
-    for (unsigned i = 0, e = OldPDUsers.size(); i != e; ++i) {
-      CallSite PDUser = CallSite::get(cast<Instruction>(OldPDUsers[i]));
-      if (PDUser.getCalledValue() != PoolInit &&
-          PDUser.getCalledValue() != PoolDestroy) {
-        assert(PDUser.getInstruction()->getParent()->getParent() == &F &&
-               "Not in cur fn??");
-        PDUser.getInstruction()->replaceUsesOfWith(OldPD, NullPD);
-      }
-    }
-  }
-}
-
-
-//===-- NoNodes Heuristic -------------------------------------------------===//
-//
-// This dummy heuristic chooses to not pool allocate anything.
-//
-struct NoNodesHeuristic : public Heuristic {
-  virtual bool IsRealHeuristic() { return false; }
-
-  void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                    Function *F, DSGraph &G,
-                    std::vector<OnePool> &ResultPools) {
-    // Nothing to pool allocate here.
-  }
-};
-
-//===----------------------------------------------------------------------===//
-// Heuristic dispatch support
-//
-
-PA::Heuristic *Heuristic::create() {
-  switch (TheHeuristic) {
-  default: assert(0 && "Unknown heuristic!");
-  case AllNodes: return new AllNodesHeuristic();
-  case AllButUnreachableFromMemory:
-    return new AllButUnreachableFromMemoryHeuristic();
-  case CyclicNodes: return new CyclicNodesHeuristic();
-  case SmartCoallesceNodes: return new SmartCoallesceNodesHeuristic();
-  case AllInOneGlobalPool: return new AllInOneGlobalPoolHeuristic();
-  case OnlyOverhead: return new OnlyOverheadHeuristic();
-  case NoNodes: return new NoNodesHeuristic();
-  }
-}
diff --git a/poolalloc/lib/PoolAllocate/Heuristic.h b/poolalloc/lib/PoolAllocate/Heuristic.h
deleted file mode 100644
index 9f8734e..0000000
--- a/poolalloc/lib/PoolAllocate/Heuristic.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//===-- Heuristic.h - Interface to PA heuristics ----------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This header is the abstract interface used by the pool allocator to access
-// the various heuristics supported.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POOLALLOCATION_HEURISTIC_H
-#define POOLALLOCATION_HEURISTIC_H
-
-#include <vector>
-#include <map>
-
-namespace llvm {
-  class Value;
-  class Function;
-  class Module;
-  class DSGraph;
-  class DSNode;
-  class PoolAllocate;
-  class TargetData;
-  class Type;
-
-namespace PA {
-  class Heuristic {
-  protected:
-    Module *M;
-    DSGraph *GG;
-    PoolAllocate *PA;
-
-    Heuristic() {}
-  public:
-    void Initialize(Module &m, DSGraph &gg, PoolAllocate &pa) {
-      M = &m; GG = &gg; PA = &pa;
-    }
-    virtual ~Heuristic();
-
-    /// IsRealHeuristic - Return true if this is not a real pool allocation
-    /// heuristic.
-    virtual bool IsRealHeuristic() { return true; }
-
-    /// OnePool - This represents some number of nodes which are coallesced into
-    /// a pool.
-    struct OnePool {
-      // NodesInPool - The DS nodes to be allocated to this pool.  There may be
-      // multiple here if they are being coallesced into the same pool.
-      std::vector<const DSNode*> NodesInPool;
-
-      // PoolDesc - If the heuristic wants the nodes allocated to a specific
-      // pool descriptor, it can specify it here, otherwise a new pool is
-      // created.
-      Value *PoolDesc;
-
-      // PoolSize - If the pool is to be created, indicate the "recommended
-      // size" for the pool here.  This gets passed into poolinit.
-      unsigned PoolSize;
-      unsigned PoolAlignment;
-
-      OnePool() : PoolDesc(0), PoolSize(0), PoolAlignment(0) {}
-
-      OnePool(const DSNode *N) : PoolDesc(0), PoolSize(getRecommendedSize(N)), 
-                                 PoolAlignment(getRecommendedAlignment(N)) {
-        NodesInPool.push_back(N);
-      }
-      OnePool(const DSNode *N, Value *PD) : PoolDesc(PD), PoolSize(0),
-                                            PoolAlignment(0) {
-        NodesInPool.push_back(N);
-      }
-    };
-
-    /// AssignToPools - Partition NodesToPA into a set of disjoint pools,
-    /// returning the result in ResultPools.  If this is a function being pool
-    /// allocated, F will not be null.
-    virtual void AssignToPools(const std::vector<const DSNode*> &NodesToPA,
-                               Function *F, DSGraph &G,
-                               std::vector<OnePool> &ResultPools) = 0;
-
-    // Hacks for the OnlyOverhead heuristic.
-    virtual void HackFunctionBody(Function &F,
-                                  std::map<const DSNode*, Value*> &PDs) {}
-
-    /// getRecommendedSize - Return the recommended pool size for this DSNode.
-    ///
-    static unsigned getRecommendedSize(const DSNode *N);
-
-    /// getRecommendedAlignment - Return the recommended object alignment for
-    /// this DSNode.
-    ///
-    static unsigned getRecommendedAlignment(const DSNode *N);
-    static unsigned getRecommendedAlignment(const Type *Ty,
-                                            const TargetData &TD);
-    
-    /// create - This static ctor creates the heuristic, based on the command
-    /// line argument to choose the heuristic.
-    static Heuristic *create();
-  };
-}
-}
-
-#endif
diff --git a/poolalloc/lib/PoolAllocate/Makefile b/poolalloc/lib/PoolAllocate/Makefile
deleted file mode 100644
index 08ef625..0000000
--- a/poolalloc/lib/PoolAllocate/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Indicate where we are relative to the top of the source tree.
-#
-LEVEL=../..
-
-#
-# Give the name of a library.  This will build a dynamic version.
-#
-SHARED_LIBRARY=1
-LOADABLE_MODULE = 1
-DONT_BUILD_RELINKED=1
-LIBRARYNAME=poolalloc
-
-#
-# Include Makefile.common so we know what to do.
-#
-include $(LEVEL)/Makefile.common
-
diff --git a/poolalloc/lib/PoolAllocate/PointerCompress.cpp b/poolalloc/lib/PoolAllocate/PointerCompress.cpp
deleted file mode 100644
index 9319072..0000000
--- a/poolalloc/lib/PoolAllocate/PointerCompress.cpp
+++ /dev/null
@@ -1,1548 +0,0 @@
-//===-- PointerCompress.cpp - Pointer Compression Pass --------------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the -pointercompress pass.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pointercompress"
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "poolalloc/PoolAllocate.h"
-#include "Heuristic.h"
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Support/InstVisitor.h"
-
-#include "llvm/Transforms/Utils/Cloning.h"
-
-#include <iostream>
-
-using namespace llvm;
-
-/// MEMUINTTYPE - This is the actual type we are compressing to.  This is really
-/// only capable of being Int32Ty, except when we are doing tests for 16-bit
-/// integers, when it's Int16Ty.
-static const Type *MEMUINTTYPE;
-
-/// SCALARUINTTYPE - We keep scalars the same size as the machine word on the
-/// system (e.g. 64-bits), only keeping memory objects in MEMUINTTYPE.
-static const Type *SCALARUINTTYPE;
-
-namespace {
-  cl::opt<bool>
-  SmallIntCompress("compress-to-16-bits",
-                   cl::desc("Pointer compress data structures to 16 bit "
-                            "integers instead of 32-bit integers"));
-  cl::opt<bool>
-  DisablePoolBaseASR("disable-ptrcomp-poolbase-aggregation",
-                     cl::desc("Don't optimize pool base loads"));
-  cl::opt<bool>
-  ADLFix("adl-pc",
-         cl::desc("Enable Andrew's fixes/hacks"));
-  
-
-  STATISTIC (NumCompressed, "Number of pools pointer compressed");
-  STATISTIC (NumNotCompressed, "Number of pools not compressible");
-  STATISTIC (NumCloned    , "Number of functions cloned");
-
-  class CompressedPoolInfo;
-
-  /// FunctionCloneRecord - One of these is kept for each function that is
-  /// cloned.
-  struct FunctionCloneRecord {
-    /// PAFn - The pool allocated input function that we compressed.
-    ///
-    Function *PAFn;
-    FunctionCloneRecord(Function *pafn) : PAFn(pafn) {}
-
-    /// PoolDescriptors - The Value* which defines the pool descriptor for this
-    /// DSNode.  Note: Does not necessarily include pool arguments that are
-    /// passed in because of indirect function calls that are not used in the
-    /// function.
-    std::map<const DSNode*, Value*> PoolDescriptors;
-
-    /// NewToOldValueMap - This is a mapping from the values in the cloned body
-    /// to the values in PAFn.
-    std::map<Value*, const Value*> NewToOldValueMap;
-
-    const Value *getValueInOriginalFunction(Value *V) const {
-      std::map<Value*, const Value*>::const_iterator I =
-        NewToOldValueMap.find(V);
-      if (I == NewToOldValueMap.end()) {
-        for (I = NewToOldValueMap.begin(); I != NewToOldValueMap.end(); ++I)
-          std::cerr << "MAP: " << *I->first << " TO: " << *I->second << "\n";
-      }
-      assert (I != NewToOldValueMap.end() && "Value did not come from clone!");
-      return I->second;
-    }
-  };
-
-  /// PointerCompress - This transformation hacks on type-safe pool allocated
-  /// data structures to reduce the size of pointers in the program.
-  class PointerCompress : public ModulePass {
-    PoolAllocate *PoolAlloc;
-    EquivClassGraphs *ECG;
-
-    /// ClonedFunctionMap - Every time we clone a function to compress its
-    /// arguments, keep track of the clone and which arguments are compressed.
-    typedef std::pair<Function*, std::set<const DSNode*> > CloneID;
-    std::map<CloneID, Function *> ClonedFunctionMap;
-
-    std::map<std::pair<Function*, std::vector<unsigned> >,
-             Function*> ExtCloneFunctionMap;
-
-    /// ClonedFunctionInfoMap - This identifies the pool allocated function that
-    /// a clone came from.
-    std::map<Function*, FunctionCloneRecord> ClonedFunctionInfoMap;
-    
-    /// CompressedGlobalPools - Keep track of which DSNodes in the globals graph
-    /// are both pool allocated and should be compressed, and which GlobalValue
-    /// their pool descriptor is.
-    std::map<const DSNode*, GlobalValue*> CompressedGlobalPools;
-
-  public:
-    Constant *PoolInitPC, *PoolDestroyPC, *PoolAllocPC;
-    typedef std::map<const DSNode*, CompressedPoolInfo> PoolInfoMap;
-
-    /// NoArgFunctionsCalled - When we are walking the call graph, keep track of
-    /// which functions are called that don't need their prototype to be
-    /// changed.
-    std::vector<Function*> NoArgFunctionsCalled;
-
-    bool runOnModule(Module &M);
-
-    void HandleGlobalPools(Module &M);
-
-
-    void getAnalysisUsage(AnalysisUsage &AU) const;
-
-    PoolAllocate *getPoolAlloc() const { return PoolAlloc; }
-
-    const DSGraph &getGraphForFunc(PA::FuncInfo *FI) const {
-      return ECG->getDSGraph(FI->F);
-    }
-
-    /// getCloneInfo - If the specified function is a clone, return the
-    /// information about the cloning process for it.  Otherwise, return a null
-    /// pointer.
-    FunctionCloneRecord *getCloneInfo(Function &F) {
-      std::map<Function*, FunctionCloneRecord>::iterator I = 
-        ClonedFunctionInfoMap.find(&F);
-      return I == ClonedFunctionInfoMap.end() ? 0 : &I->second;
-    }
-
-    Function *GetFunctionClone(Function *F, 
-                               std::set<const DSNode*> &PoolsToCompress,
-                               PA::FuncInfo &FI, const DSGraph &CG);
-    Function *GetExtFunctionClone(Function *F,
-                                  const std::vector<unsigned> &Args);
-
-  private:
-    void InitializePoolLibraryFunctions(Module &M);
-    bool CompressPoolsInFunction(Function &F,
-                std::vector<std::pair<Value*, Value*> > *PremappedVals = 0,
-                std::set<const DSNode*> *ExternalPoolsToCompress = 0);
-
-    void FindPoolsToCompress(std::set<const DSNode*> &Pools,
-                             std::map<const DSNode*, Value*> &PreassignedPools,
-                             Function &F, DSGraph &DSG, PA::FuncInfo *FI);
-  };
-
-  RegisterPass<PointerCompress>
-  X("pointercompress", "Compress type-safe data structures");
-}
-
-//===----------------------------------------------------------------------===//
-//               CompressedPoolInfo Class and Implementation
-//===----------------------------------------------------------------------===//
-
-namespace {
-  /// CompressedPoolInfo - An instance of this structure is created for each
-  /// pool that is compressed.
-  class CompressedPoolInfo {
-    const DSNode *Pool;
-    Value *PoolDesc;
-    const Type *NewTy;
-    unsigned NewSize;
-    mutable Value *PoolBase;
-  public:
-    CompressedPoolInfo(const DSNode *N, Value *PD)
-      : Pool(N), PoolDesc(PD), NewTy(0), PoolBase(0) {}
-    
-    /// Initialize - When we know all of the pools in a function that are going
-    /// to be compressed, initialize our state based on that data.
-    void Initialize(std::map<const DSNode*, CompressedPoolInfo> &Nodes,
-                    const TargetData &TD);
-
-    const DSNode *getNode() const { return Pool; }
-    const Type *getNewType() const { return NewTy; }
-
-    /// getNewSize - Return the size of each node after compression.
-    ///
-    unsigned getNewSize() const { return NewSize; }
-    
-    /// getPoolDesc - Return the Value* for the pool descriptor for this pool.
-    ///
-    Value *getPoolDesc() const { return PoolDesc; }
-
-    /// EmitPoolBaseLoad - Emit code to load the pool base value for this pool
-    /// before the specified instruction.
-    Value *EmitPoolBaseLoad(Instruction &I) const;
-    void setPoolBase(Value *PB) const { PoolBase = PB; }
-
-    // dump - Emit a debugging dump of this pool info.
-    void dump() const;
-
-  private:
-    const Type *ComputeCompressedType(const Type *OrigTy, unsigned NodeOffset,
-                           std::map<const DSNode*, CompressedPoolInfo> &Nodes);
-  };
-}
-
-/// Initialize - When we know all of the pools in a function that are going
-/// to be compressed, initialize our state based on that data.
-void CompressedPoolInfo::Initialize(std::map<const DSNode*, 
-                                             CompressedPoolInfo> &Nodes,
-                                    const TargetData &TD) {
-  // First step, compute the type of the compressed node.  This basically
-  // replaces all pointers to compressed pools with uints.
-  NewTy = ComputeCompressedType(Pool->getType(), 0, Nodes);
-
-  // Get the compressed type size.
-  NewSize = NewTy->isSized() ? TD.getTypeSize(NewTy) : 0;
-}
-
-
-/// ComputeCompressedType - Recursively compute the new type for this node after
-/// pointer compression.  This involves compressing any pointers that point into
-/// compressed pools.
-const Type *CompressedPoolInfo::
-ComputeCompressedType(const Type *OrigTy, unsigned NodeOffset,
-                      std::map<const DSNode*, CompressedPoolInfo> &Nodes) {
-  if (dyn_cast<PointerType>(OrigTy)) {
-    if (ADLFix) {
-      DSNode *PointeeNode = getNode()->getLink(NodeOffset).getNode();
-      if (PointeeNode == getNode())
-        return MEMUINTTYPE;
-      return OrigTy;
-    }
-
-    // Okay, we have a pointer.  Check to see if the node pointed to is actually
-    // compressed!
-    //DSNode *PointeeNode = getNode()->getLink(NodeOffset).getNode();
-    //if (PointeeNode && Nodes.count(PointeeNode))
-      return MEMUINTTYPE;
-    // Otherwise, it points to a non-compressed node.
-    return OrigTy;
-  } else if (OrigTy->isFirstClassType() || OrigTy == Type::VoidTy)
-    return OrigTy;
-
-
-  const TargetData &TD = getNode()->getParentGraph()->getTargetData();
-
-  // Okay, we have an aggregate type.
-  if (const StructType *STy = dyn_cast<StructType>(OrigTy)) {
-    std::vector<const Type*> Elements;
-    Elements.reserve(STy->getNumElements());
-
-    const StructLayout *SL = TD.getStructLayout(STy);
-
-    for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i)
-      Elements.push_back(ComputeCompressedType(STy->getElementType(i),
-                                               NodeOffset+SL->getElementOffset(i),
-                                               Nodes));
-    return StructType::get(Elements);
-  } else if (const ArrayType *ATy = dyn_cast<ArrayType>(OrigTy)) {
-    return ArrayType::get(ComputeCompressedType(ATy->getElementType(),
-                                                NodeOffset, Nodes),
-                          ATy->getNumElements());
-  } else {
-    std::cerr << "TYPE: " << *OrigTy << "\n";
-    assert(0 && "FIXME: Unhandled aggregate type!");
-    abort();
-  }
-}
-
-/// EmitPoolBaseLoad - Emit code to load the pool base value for this pool
-/// before the specified instruction.
-Value *CompressedPoolInfo::EmitPoolBaseLoad(Instruction &I) const {
-  if (DisablePoolBaseASR) {
-    assert(PoolBase == 0 && "Mixing and matching optimized vs not!");
-    
-    // Get the pool base pointer.
-    Constant *Zero = Constant::getNullValue(Type::Int32Ty);
-    Value *BasePtrPtr = new GetElementPtrInst(getPoolDesc(), Zero, Zero,
-                                              "poolbaseptrptr", &I);
-    return new LoadInst(BasePtrPtr, "poolbaseptr", &I);
-  } else {
-    // If this is a pool descriptor passed into the function, and this is the
-    // first use, emit a load of the pool base into the entry of the function.
-    if (PoolBase == 0 && (isa<Argument>(PoolDesc) || 
-                          isa<GlobalVariable>(PoolDesc))) {
-      BasicBlock::iterator IP = I.getParent()->getParent()->begin()->begin();
-      while (isa<AllocaInst>(IP)) ++IP;
-      Constant *Zero = Constant::getNullValue(Type::Int32Ty);
-      Value *BasePtrPtr = new GetElementPtrInst(getPoolDesc(), Zero, Zero,
-                                                "poolbaseptrptr", IP);
-      PoolBase = new LoadInst(BasePtrPtr, "poolbaseptr", IP);
-    }
-    
-    assert(PoolBase && "Mixing and matching optimized vs not!");
-    return PoolBase;
-  }
-}
-
-
-/// dump - Emit a debugging dump for this pool info.
-///
-void CompressedPoolInfo::dump() const {
-  const TargetData &TD = getNode()->getParentGraph()->getTargetData();
-  std::cerr << "  From size: "
-            << (getNode()->getType()->isSized() ? 
-                        TD.getTypeSize(getNode()->getType()) : 0)
-            << "  To size: "
-            << (NewTy->isSized() ? TD.getTypeSize(NewTy) : 0) << "\n";
-  std::cerr << "Node: "; getNode()->dump();
-  std::cerr << "New Type: " << *NewTy << "\n";
-}
-
-
-//===----------------------------------------------------------------------===//
-//                    InstructionRewriter Implementation
-//===----------------------------------------------------------------------===//
-
-namespace {
-  /// InstructionRewriter - This class implements the rewriting neccesary to
-  /// transform a function body from normal pool allocation to pointer
-  /// compression.  It is constructed, then the 'visit' method is called on a
-  /// function.  If is responsible for rewriting all instructions that refer to
-  /// pointers into compressed pools.
-  class InstructionRewriter : public llvm::InstVisitor<InstructionRewriter> {
-    /// OldToNewValueMap - This keeps track of what new instructions we create
-    /// for instructions that used to produce pointers into our pool.
-    std::map<Value*, Value*> OldToNewValueMap;
-  
-    const PointerCompress::PoolInfoMap &PoolInfo;
-
-    /// TD - The TargetData object for the current target.
-    ///
-    const TargetData &TD;
-
-
-    DSGraph &DSG;
-
-    /// PAFuncInfo - Information about the transformation the pool allocator did
-    /// to the original function.
-    PA::FuncInfo &PAFuncInfo;
-
-    /// FCR - If we are compressing a clone of a pool allocated function (as
-    /// opposed to the pool allocated function itself), this contains
-    /// information about the clone.
-    FunctionCloneRecord *FCR;
-
-    PointerCompress &PtrComp;
-  public:
-    InstructionRewriter(const PointerCompress::PoolInfoMap &poolInfo,
-                        DSGraph &dsg, PA::FuncInfo &pafi,
-                        FunctionCloneRecord *fcr, PointerCompress &ptrcomp)
-      : PoolInfo(poolInfo), TD(dsg.getTargetData()), DSG(dsg),
-        PAFuncInfo(pafi), FCR(fcr), PtrComp(ptrcomp) {
-    }
-
-    ~InstructionRewriter();
-
-    /// PremapValues - Seed the transformed value map with the specified values.
-    /// This indicates that the first value (a pointer) will map to the second
-    /// value (an integer).  When the InstructionRewriter is complete, all of
-    /// the pointers in this vector are deleted.
-    void PremapValues(std::vector<std::pair<Value*, Value*> > &Vals) {
-      for (unsigned i = 0, e = Vals.size(); i != e; ++i)
-        OldToNewValueMap.insert(Vals[i]);
-    }
-
-    /// getTransformedValue - Return the transformed version of the specified
-    /// value, creating a new forward ref value as needed.
-    Value *getTransformedValue(Value *V) {
-      if (isa<ConstantPointerNull>(V))                // null -> uint 0
-        return Constant::getNullValue(SCALARUINTTYPE);
-      if (isa<UndefValue>(V))                // undef -> uint undef
-        return UndefValue::get(SCALARUINTTYPE);
-
-      if (!getNodeIfCompressed(V))
-        assert(getNodeIfCompressed(V) && "Value is not compressed!");
-      Value *&RV = OldToNewValueMap[V];
-      if (RV) return RV;
-
-      RV = new Argument(SCALARUINTTYPE);
-      return RV;
-    }
-
-    /// setTransformedValue - When we create a new value, this method sets it as
-    /// the current value.
-    void setTransformedValue(Instruction &Old, Value *New) {
-      Value *&EV = OldToNewValueMap[&Old];
-      if (EV) {
-        assert(isa<Argument>(EV) && "Not a forward reference!");
-        EV->replaceAllUsesWith(New);
-        delete EV;
-      }
-      EV = New;
-    }
-
-    /// getMappedNodeHandle - Given a pointer value that may be cloned multiple
-    /// times (once for PA, once for PC) return the node handle in DSG, or a
-    /// null descriptor if the value didn't exist.
-    DSNodeHandle getMappedNodeHandle(Value *V) {
-      assert(isa<PointerType>(V->getType()) && "Not a pointer value!");
-
-      // If this is a function clone, map the value to the original function.
-      if (FCR)
-        V = const_cast<Value*>(FCR->getValueInOriginalFunction(V));
-
-      // If this is a pool allocator clone, map the value to the REAL original
-      // function.
-      if (!PAFuncInfo.NewToOldValueMap.empty())
-        if ((V = PAFuncInfo.MapValueToOriginal(V)) == 0)
-          // Value didn't exist in the orig program (pool desc?).
-          return DSNodeHandle();
-
-      return DSG.getNodeForValue(V);
-    }
-
-    /// getNodeIfCompressed - If the specified value is a pointer that will be
-    /// compressed, return the DSNode corresponding to the pool it belongs to.
-    const DSNode *getNodeIfCompressed(Value *V) {
-      if (!isa<PointerType>(V->getType()) || isa<ConstantPointerNull>(V) ||
-          isa<Function>(V))
-        return 0;
-
-      DSNode *N = getMappedNodeHandle(V).getNode();
-      return PoolInfo.count(N) ? N : 0;
-    }
-
-    /// getPoolInfo - Return the pool info for the specified compressed pool.
-    ///
-    const CompressedPoolInfo &getPoolInfo(const DSNode *N) {
-      assert(N && "Pool not compressed!");
-      PointerCompress::PoolInfoMap::const_iterator I = PoolInfo.find(N);
-      assert(I != PoolInfo.end() && "Pool is not compressed!");
-      return I->second;
-    }
-
-    /// getPoolInfo - Return the pool info object for the specified value if the
-    /// pointer points into a compressed pool, otherwise return null.
-    const CompressedPoolInfo *getPoolInfo(Value *V) {
-      if (const DSNode *N = getNodeIfCompressed(V))
-        return &getPoolInfo(N);
-      return 0;
-    }
-
-    /// getPoolInfoForPoolDesc - Given a pool descriptor as a Value*, return the
-    /// pool info for the pool if it is compressed.
-    const CompressedPoolInfo *getPoolInfoForPoolDesc(Value *PD) const {
-      for (PointerCompress::PoolInfoMap::const_iterator I = PoolInfo.begin(),
-             E = PoolInfo.end(); I != E; ++I)
-        if (I->second.getPoolDesc() == PD)
-          return &I->second;
-      return 0;
-    }
-
-    /// ValueRemoved - Whenever we remove a value from the current function,
-    /// update any maps that contain that pointer so we don't have stale
-    /// pointers hanging around.
-    void ValueRemoved(Value *V) {
-      if (FCR) {
-        // If this is in a pointer-compressed clone, update our map.
-        FCR->NewToOldValueMap.erase(V);
-      } else if (!PAFuncInfo.NewToOldValueMap.empty()) {
-        // Otherwise if this exists in a pool allocator clone, update it now.
-        PAFuncInfo.NewToOldValueMap.erase(V);
-      } else {
-        // Otherwise if this was in the original function, remove it from the
-        // DSG scalar map if it is there.
-        DSG.getScalarMap().eraseIfExists(V);
-      }
-    }
-
-    /// ValueReplaced - Whenever we replace a value from the current function,
-    /// update any maps that contain that value so we don't have stale pointers
-    /// hanging around.
-    void ValueReplaced(Value &Old, Value *New) {
-      // If this value exists in a pointer compress clone, update it now.
-      if (FCR) {
-        std::map<Value*, const Value*>::iterator I =
-          FCR->NewToOldValueMap.find(&Old);
-        assert(I != FCR->NewToOldValueMap.end() && "Didn't find element!?");
-        FCR->NewToOldValueMap.insert(std::make_pair(New, I->second));
-        FCR->NewToOldValueMap.erase(I);
-      } else if (!PAFuncInfo.NewToOldValueMap.empty()) {
-        // Otherwise if this exists in a pool allocator clone, update it now.
-        PA::FuncInfo::NewToOldValueMapTy::iterator I =
-          PAFuncInfo.NewToOldValueMap.find(&Old);
-        if (I != PAFuncInfo.NewToOldValueMap.end()) {
-          PAFuncInfo.NewToOldValueMap[New] = I->second;
-          PAFuncInfo.NewToOldValueMap.erase(I);
-        }
-      
-      } else {
-        // Finally, if this occurred in a function that neither the pool
-        // allocator nor the ptr compression implementation had to change,
-        // update the DSGraph.
-        if (DSG.getScalarMap().count(&Old))
-          DSG.getScalarMap().replaceScalar(&Old, New);
-      }
-    }
-
-    //===------------------------------------------------------------------===//
-    // Visitation methods.  These do all of the heavy lifting for the various
-    // cases we have to handle.
-
-    void visitReturnInst(ReturnInst &RI);
-    void visitCastInst(CastInst &CI);
-    void visitPHINode(PHINode &PN);
-    void visitSelectInst(SelectInst &SI);
-    void visitICmpInst(ICmpInst &I);
-    void visitFCmpInst(FCmpInst &I);
-    void visitGetElementPtrInst(GetElementPtrInst &GEPI);
-    void visitLoadInst(LoadInst &LI);
-    void visitStoreInst(StoreInst &SI);
-
-    void visitCallInst(CallInst &CI);
-    void visitPoolInit(CallInst &CI);
-    void visitPoolAlloc(CallInst &CI);
-    void visitPoolDestroy(CallInst &CI);
-
-    void visitInstruction(Instruction &I) {
-#ifndef NDEBUG
-      bool Unhandled = !!getNodeIfCompressed(&I);
-      for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i)
-        Unhandled |= !!getNodeIfCompressed(I.getOperand(i));
-
-      if (Unhandled) {
-        std::cerr << "ERROR: UNHANDLED INSTRUCTION: " << I;
-        //assert(0);
-        //abort();
-      }
-#endif
-    }
-  };
-} // end anonymous namespace.
-
-
-InstructionRewriter::~InstructionRewriter() {
-  // Nuke all of the old values from the program.
-  for (std::map<Value*, Value*>::iterator I = OldToNewValueMap.begin(),
-         E = OldToNewValueMap.end(); I != E; ++I) {
-    assert((!isa<Argument>(I->second) || cast<Argument>(I->second)->getParent())
-           && "ERROR: Unresolved value still left in the program!");
-    // If there is anything still using this, provide a temporary value.
-    if (!I->first->use_empty())
-      I->first->replaceAllUsesWith(UndefValue::get(I->first->getType()));
-
-    // Finally, remove it from the program.
-    if (Instruction *Inst = dyn_cast<Instruction>(I->first)) {
-      ValueRemoved(Inst);
-      Inst->eraseFromParent();
-    } else if (Argument *Arg = dyn_cast<Argument>(I->first)) {
-      assert(Arg->getParent() == 0 && "Unexpected argument type here!");
-      delete Arg;  // Marker node used when cloning.
-    } else {
-      assert(0 && "Unknown entry in this map!");
-    }
-  }
-}
-
-void InstructionRewriter::visitReturnInst(ReturnInst &RI) {
-  if (RI.getNumOperands() && isa<PointerType>(RI.getOperand(0)->getType()))
-    if (!isa<PointerType>(RI.getParent()->getParent()->getReturnType())) {
-      // Compressing the return value.  
-      new ReturnInst(getTransformedValue(RI.getOperand(0)), &RI);
-      RI.eraseFromParent();
-    }
-}
-
-
-void InstructionRewriter::visitCastInst(CastInst &CI) {
-  if (!isa<PointerType>(CI.getType())) {
-    // If this is a pointer -> integer cast, turn this into an idx -> integer
-    // cast.
-    if (isa<PointerType>(CI.getOperand(0)->getType()) &&
-        getPoolInfo(CI.getOperand(0)))
-      CI.setOperand(0, getTransformedValue(CI.getOperand(0)));
-    return;
-  }
-
-  const CompressedPoolInfo *PI = getPoolInfo(&CI);
-  if (!PI) return;
-  assert(getPoolInfo(CI.getOperand(0)) == PI && "Not cast from ptr -> ptr?");
-
-  // A cast from one pointer to another turns into a cast from uint -> uint,
-  // which is a noop.
-  setTransformedValue(CI, getTransformedValue(CI.getOperand(0)));
-}
-
-void InstructionRewriter::visitPHINode(PHINode &PN) {
-  const CompressedPoolInfo *DestPI = getPoolInfo(&PN);
-  if (DestPI == 0) return;
-
-  PHINode *New = new PHINode(SCALARUINTTYPE, PN.getName(), &PN);
-  New->reserveOperandSpace(PN.getNumIncomingValues());
-
-  for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i)
-    New->addIncoming(getTransformedValue(PN.getIncomingValue(i)),
-                     PN.getIncomingBlock(i));
-  setTransformedValue(PN, New);
-}
-
-void InstructionRewriter::visitSelectInst(SelectInst &SI) {
-  const CompressedPoolInfo *DestPI = getPoolInfo(&SI);
-  if (DestPI == 0) return;
-
-  setTransformedValue(SI, new SelectInst(SI.getOperand(0),
-                                         getTransformedValue(SI.getOperand(1)),
-                                         getTransformedValue(SI.getOperand(2)),
-                                         SI.getName(), &SI));
-}
-
-void InstructionRewriter::visitICmpInst(ICmpInst &SCI) {
-  if (!isa<PointerType>(SCI.getOperand(0)->getType())) return;
-  Value *NonNullPtr = SCI.getOperand(0);
-  if (isa<ConstantPointerNull>(NonNullPtr)) {
-    NonNullPtr = SCI.getOperand(1);
-    if (isa<ConstantPointerNull>(NonNullPtr))
-      return;  // setcc null, null
-  }
-
-  const CompressedPoolInfo *SrcPI = getPoolInfo(NonNullPtr);
-  if (SrcPI == 0) return;   // comparing non-compressed pointers.
- 
-  std::string Name = SCI.getName(); SCI.setName("");
-  Value *New = new ICmpInst(SCI.getPredicate(),
-                            getTransformedValue(SCI.getOperand(0)),
-                            getTransformedValue(SCI.getOperand(1)),
-                            Name, &SCI);
-  SCI.replaceAllUsesWith(New);
-  ValueReplaced(SCI, New);
-  SCI.eraseFromParent();
-}
-
-void InstructionRewriter::visitFCmpInst(FCmpInst &SCI) {
-  if (!isa<PointerType>(SCI.getOperand(0)->getType())) return;
-  Value *NonNullPtr = SCI.getOperand(0);
-  if (isa<ConstantPointerNull>(NonNullPtr)) {
-    NonNullPtr = SCI.getOperand(1);
-    if (isa<ConstantPointerNull>(NonNullPtr))
-      return;  // setcc null, null
-  }
-
-  const CompressedPoolInfo *SrcPI = getPoolInfo(NonNullPtr);
-  if (SrcPI == 0) return;   // comparing non-compressed pointers.
- 
-  std::string Name = SCI.getName(); SCI.setName("");
-  Value *New = new FCmpInst(SCI.getPredicate(),
-                            getTransformedValue(SCI.getOperand(0)),
-                            getTransformedValue(SCI.getOperand(1)),
-                            Name, &SCI);
-  SCI.replaceAllUsesWith(New);
-  ValueReplaced(SCI, New);
-  SCI.eraseFromParent();
-}
-
-void InstructionRewriter::visitGetElementPtrInst(GetElementPtrInst &GEPI) {
-  const CompressedPoolInfo *PI = getPoolInfo(&GEPI);
-  if (PI == 0) return;
-
-  // Get the base index.
-  Value *Val = getTransformedValue(GEPI.getOperand(0));
-
-  bool AllZeros = true;
-  for (unsigned i = 1, e = GEPI.getNumOperands(); i != e; ++i)
-    if (!isa<Constant>(GEPI.getOperand(i)) ||
-        !cast<Constant>(GEPI.getOperand(i))->isNullValue()) {
-      AllZeros = false;
-      break;
-    }
-  if (AllZeros) {
-    // We occasionally get non-type-matching GEP instructions with zeros.  These
-    // are effectively pointer casts, so treat them as such.
-    setTransformedValue(GEPI, Val);
-    return;
-  }
-
-  // The compressed type for the pool.  FIXME: NOTE: This only works if 'Val'
-  // pointed to the start of a node!
-  const Type *NTy = PointerType::get(PI->getNewType());
-
-  //Check if we have a pointer to an array of Original Types this happens if
-  //you do a malloc of [n x OrigTy] for a pool of Type OrigTy
-  if(isa<PointerType>(GEPI.getOperand(0)->getType())) {
-    const Type* PT =
-      cast<PointerType>(GEPI.getOperand(0)->getType())->getElementType();
-    if(isa<ArrayType>(PT)) {
-      if (cast<ArrayType>(PT)->getElementType() == PI->getNode()->getType())
-        NTy = PointerType::get(ArrayType::get(PI->getNewType(),
-                                              cast<ArrayType>(PT)->getNumElements()));
-    }
-  }
-
-
-  gep_type_iterator GTI = gep_type_begin(GEPI), E = gep_type_end(GEPI);
-  for (unsigned i = 1, e = GEPI.getNumOperands(); i != e; ++i, ++GTI) {
-    Value *Idx = GEPI.getOperand(i);
-    if (const StructType *STy = dyn_cast<StructType>(*GTI)) {
-      uint64_t Field = (unsigned)cast<ConstantInt>(Idx)->getZExtValue();
-      if (Field) {
-        uint64_t FieldOffs = TD.getStructLayout(cast<StructType>(NTy))
-          ->getElementOffset(Field);
-        Constant *FieldOffsCst = ConstantInt::get(SCALARUINTTYPE, FieldOffs);
-        Val = BinaryOperator::createAdd(Val, FieldOffsCst,
-                                        GEPI.getName(), &GEPI);
-      }
-
-      // If this is a one element struct, NTy may not have the structure type.
-      if (STy->getNumElements() > 1 ||
-          (isa<StructType>(NTy) &&
-           cast<StructType>(NTy)->getNumElements() == 1))
-        NTy = cast<StructType>(NTy)->getElementType(Field);
-    } else {
-      assert(isa<SequentialType>(*GTI) && "Not struct or sequential?");
-      const SequentialType *STy = cast<SequentialType>(*GTI);
-      if (!isa<Constant>(Idx) || !cast<Constant>(Idx)->isNullValue()) {
-        // Add Idx*sizeof(NewElementType) to the index.
-        const Type *ElTy = cast<SequentialType>(NTy)->getElementType();
-        if (Idx->getType() != SCALARUINTTYPE)
-          Idx = CastInst::createSExtOrBitCast(Idx, SCALARUINTTYPE, Idx->getName(), &GEPI);
-
-        Constant *Scale = ConstantInt::get(SCALARUINTTYPE,
-                                            TD.getTypeSize(ElTy));
-        Idx = BinaryOperator::createMul(Idx, Scale, "fieldidx", &GEPI);
-        Val = BinaryOperator::createAdd(Val, Idx, GEPI.getName(), &GEPI);
-      }
-
-      // If this is a one element array type, NTy may not reflect the array.
-      if (!isa<ArrayType>(STy) || cast<ArrayType>(STy)->getNumElements() != 1 ||
-          (isa<ArrayType>(NTy) && cast<ArrayType>(NTy)->getNumElements() == 1))
-        NTy = cast<SequentialType>(NTy)->getElementType();
-    }
-  }
-
-  setTransformedValue(GEPI, Val);
-}
-
-void InstructionRewriter::visitLoadInst(LoadInst &LI) {
-  const CompressedPoolInfo *SrcPI = getPoolInfo(LI.getOperand(0));
-  if (SrcPI == 0) {
-    // If we are loading a compressed pointer from a non-compressessed memory
-    // object, retain the load, but cast from the pointer type to our scalar
-    // type.
-    if (getPoolInfo(&LI)) {
-      Value *NLI = new LoadInst(LI.getOperand(0), LI.getName()+".cp", &LI);
-      Value *NC = CastInst::createZExtOrBitCast(NLI, SCALARUINTTYPE, NLI->getName(), &LI);
-      setTransformedValue(LI, NC);
-    }
-    return;
-  }
-
-  // We care about two cases, here:
-  //  1. Loading a normal value from a ptr compressed data structure.
-  //  2. Loading a compressed ptr from a ptr compressed data structure.
-  bool LoadingCompressedPtr = getNodeIfCompressed(&LI) != 0;
-
-  Value *BasePtr = SrcPI->EmitPoolBaseLoad(LI);
-
-  // Get the pointer to load from.
-  Value* Ops = getTransformedValue(LI.getOperand(0));
-  if (Ops->getType() == Type::Int16Ty)
-    Ops = CastInst::createZExtOrBitCast(Ops, Type::Int32Ty, "extend_idx", &LI);
-  Value *SrcPtr = new GetElementPtrInst(BasePtr, Ops,
-                                        LI.getOperand(0)->getName()+".pp", &LI);
-  const Type *DestTy = LoadingCompressedPtr ? MEMUINTTYPE : LI.getType();
-  SrcPtr = CastInst::createPointerCast(SrcPtr, PointerType::get(DestTy),
-                                      SrcPtr->getName(), &LI);
-  std::string OldName = LI.getName(); LI.setName("");
-  Value *NewLoad = new LoadInst(SrcPtr, OldName, &LI);
-
-  if (LoadingCompressedPtr) {
-    // Convert from MEMUINTTYPE to SCALARUINTTYPE if different.
-    if (MEMUINTTYPE != SCALARUINTTYPE)
-      NewLoad = CastInst::createZExtOrBitCast(NewLoad, SCALARUINTTYPE, NewLoad->getName(), &LI);
-
-    setTransformedValue(LI, NewLoad);
-  } else {
-    LI.replaceAllUsesWith(NewLoad);
-    ValueReplaced(LI, NewLoad);
-    LI.eraseFromParent();
-  }
-}
-
-
-
-void InstructionRewriter::visitStoreInst(StoreInst &SI) {
-  const CompressedPoolInfo *DestPI = getPoolInfo(SI.getOperand(1));
-  if (DestPI == 0) {
-    // If we are storing a compressed pointer into uncompressed memory, just
-    // cast the index to a pointer type and store that.
-    if (getPoolInfo(SI.getOperand(0))) {
-      Value *SrcVal = getTransformedValue(SI.getOperand(0));
-      SrcVal = CastInst::createPointerCast(SrcVal, SI.getOperand(0)->getType(),
-                                           SrcVal->getName(), &SI);
-      SI.setOperand(0, SrcVal);
-    }
-    return;
-  }
-
-  // We care about two cases, here:
-  //  1. Storing a normal value into a ptr compressed data structure.
-  //  2. Storing a compressed ptr into a ptr compressed data structure.  Note
-  //     that we cannot use the src value to decide if this is a compressed
-  //     pointer if it's a null pointer.  We have to try harder.
-  //
-  Value *SrcVal = SI.getOperand(0);
-  if (!isa<ConstantPointerNull>(SrcVal)) {
-    if (getPoolInfo(SrcVal)) {
-      // If the stored value is compressed, get the xformed version
-      SrcVal = getTransformedValue(SrcVal);
-
-      // If SCALAR type is not the MEM type, reduce it now.
-      if (SrcVal->getType() != MEMUINTTYPE)
-        SrcVal = CastInst::createZExtOrBitCast(SrcVal, MEMUINTTYPE, SrcVal->getName(), &SI);
-    }
-  } else {
-    // FIXME: This assumes that all null pointers are compressed!
-    SrcVal = Constant::getNullValue(MEMUINTTYPE);
-  }
-  
-  // Get the pool base pointer.
-  Value *BasePtr = DestPI->EmitPoolBaseLoad(SI);
-
-  // Get the pointer to store to.
-  Value* Ops = getTransformedValue(SI.getOperand(1));
-  if (Ops->getType() == Type::Int16Ty)
-    Ops = CastInst::createZExtOrBitCast(Ops, Type::Int32Ty, "extend_idx", &SI);
-
-  Value *DestPtr = new GetElementPtrInst(BasePtr, Ops,
-                                         SI.getOperand(1)->getName()+".pp",
-                                         &SI);
-  DestPtr = CastInst::createPointerCast(DestPtr,
-                                        PointerType::get(SrcVal->getType()),
-                                        DestPtr->getName(), &SI);
-  new StoreInst(SrcVal, DestPtr, &SI);
-
-  // Finally, explicitly remove the store from the program, as it does not
-  // produce a pointer result.
-  SI.eraseFromParent();
-}
-
-
-void InstructionRewriter::visitPoolInit(CallInst &CI) {
-  // Transform to poolinit_pc if this is initializing a pool that we are
-  // compressing.
-  const CompressedPoolInfo *PI = getPoolInfoForPoolDesc(CI.getOperand(1));
-  if (PI == 0) return;  // Pool isn't compressed.
-
-  std::vector<Value*> Ops;
-  Ops.push_back(CI.getOperand(1));
-  // Transform to pass in the compressed size.
-  Ops.push_back(ConstantInt::get(Type::Int32Ty, PI->getNewSize()));
-
-  // Pointer compression can reduce the alignment restriction to 4 bytes from 8.
-  // Reevaluate the desired alignment.
-  Ops.push_back(ConstantInt::get(Type::Int32Ty,
-             PA::Heuristic::getRecommendedAlignment(PI->getNewType(), TD)));
-  // TODO: Compression could reduce the alignment restriction for the pool!
-  Value *PB = new CallInst(PtrComp.PoolInitPC, &Ops[0], Ops.size(), "", &CI);
-
-  if (!DisablePoolBaseASR) { // Load the pool base immediately.
-    PB->setName(CI.getOperand(1)->getName()+".poolbase");
-    // Remember the pool base for this pool.
-    PI->setPoolBase(PB);
-  }
-
-  CI.eraseFromParent();
-}
-
-void InstructionRewriter::visitPoolDestroy(CallInst &CI) {
-  // Transform to pooldestroy_pc if this is destroying a pool that we are
-  // compressing.
-  const CompressedPoolInfo *PI = getPoolInfoForPoolDesc(CI.getOperand(1));
-  if (PI == 0) return;  // Pool isn't compressed.
-
-  new CallInst(PtrComp.PoolDestroyPC, CI.getOperand(1), "", &CI);
-  CI.eraseFromParent();
-}
-
-void InstructionRewriter::visitPoolAlloc(CallInst &CI) {
-  const CompressedPoolInfo *PI = getPoolInfo(&CI);
-  if (PI == 0) return;  // Pool isn't compressed.
-
-  Value *Size = CI.getOperand(2);
-
-  // If there was a recommended size, shrink it down now.
-  if (unsigned OldSizeV = PA::Heuristic::getRecommendedSize(PI->getNode()))
-    if (OldSizeV != PI->getNewSize()) {
-      // Emit code to scale the allocated size down by the old size then up by
-      // the new size.  We actually compute (N+OS-1)/OS * NS.
-      Value *OldSize = ConstantInt::get(Type::Int32Ty, OldSizeV);
-      Value *NewSize = ConstantInt::get(Type::Int32Ty, PI->getNewSize());
-
-      Size = BinaryOperator::createAdd(Size,
-                                  ConstantInt::get(Type::Int32Ty, OldSizeV-1),
-                                       "roundup", &CI);
-      Size = BinaryOperator::createUDiv(Size, OldSize, "numnodes", &CI);
-      Size = BinaryOperator::createMul(Size, NewSize, "newbytes", &CI);
-    }
-
-  Value *NC = new CallInst(PtrComp.PoolAllocPC, CI.getOperand(1), Size, CI.getName(), &CI);
-  setTransformedValue(CI, NC);
-}
-
-
-void InstructionRewriter::visitCallInst(CallInst &CI) {
-  if (Function *F = CI.getCalledFunction())
-    // These functions are handled specially.
-    if (F->getName() == "poolinit") {
-      visitPoolInit(CI);
-      return;
-    } else if (F->getName() == "pooldestroy") {
-      visitPoolDestroy(CI);
-      return;
-    } else if (F->getName() == "poolalloc") {
-      visitPoolAlloc(CI);
-      return;
-    }
-  
-  // Normal function call: check to see if this call produces or uses a pointer
-  // into a compressed pool.  If so, we will need to transform the callee or use
-  // a previously transformed version.
-
-  // PoolsToCompress - Keep track of which pools we are supposed to compress,
-  // with the nodes from the callee's graph.
-  std::set<const DSNode*> PoolsToCompress;
-
-  // If this is a direct call, get the information about the callee.
-  PA::FuncInfo *FI = 0;
-  const DSGraph *CG = 0;
-  Function *Callee = CI.getCalledFunction();
-  if (Callee)
-    if ((FI = PtrComp.getPoolAlloc()->getFuncInfoOrClone(*Callee)))
-      CG = &PtrComp.getGraphForFunc(FI);
-
-  if (!Callee) {
-    // Indirect call: you CAN'T passed compress pointers in.  Don't even think
-    // about it.
-    return;
-  } else if (Callee->isDeclaration()) {
-    // We don't have a DSG for the callee in this case.  Assume that things will
-    // work out if we pass compressed pointers.
-    std::vector<Value*> Operands;
-    Operands.reserve(CI.getNumOperands()-1);
-
-    // If this is one of the functions we know about, just materialize the
-    // compressed pointer as a real pointer, and pass it.
-    if (Callee->getName() == "printf" || Callee->getName() == "sprintf") {
-      for (unsigned i = 1, e = CI.getNumOperands(); i != e; ++i)
-        if (isa<PointerType>(CI.getOperand(i)->getType()) &&
-            getPoolInfo(CI.getOperand(i)))
-          CI.setOperand(i, getTransformedValue(CI.getOperand(i)));
-      return;
-    } else if (Callee->getName() == "read") {
-      if (const CompressedPoolInfo *DestPI = getPoolInfo(CI.getOperand(2))) {
-        Value *BasePtr = DestPI->EmitPoolBaseLoad(CI);
-        Value *SrcPtr = new GetElementPtrInst(BasePtr, getTransformedValue(CI.getOperand(2)),
-                                       CI.getOperand(2)->getName()+".pp", &CI);
-        SrcPtr = CastInst::createPointerCast(SrcPtr, CI.getOperand(2)->getType(), "", &CI);
-        CI.setOperand(2, SrcPtr);
-        return;
-      }
-    } else if (Callee->getName() == "fwrite") {
-      if (const CompressedPoolInfo *DestPI = getPoolInfo(CI.getOperand(1))) {
-        Value *BasePtr = DestPI->EmitPoolBaseLoad(CI);
-        Value *SrcPtr = new GetElementPtrInst(BasePtr, getTransformedValue(CI.getOperand(1)),
-                                       CI.getOperand(1)->getName()+".pp", &CI);
-        SrcPtr = CastInst::createPointerCast(SrcPtr, CI.getOperand(1)->getType(), "", &CI);
-        CI.setOperand(1, SrcPtr);
-        return;
-      }
-    } else if (Callee->getName() == "llvm.memset" ||
-               Callee->getName() == "llvm.memset.i32" ||
-               Callee->getName() == "llvm.memset.i64") {
-      if (const CompressedPoolInfo *DestPI = getPoolInfo(CI.getOperand(1))) {
-        Value *BasePtr = DestPI->EmitPoolBaseLoad(CI);
-        Value *SrcPtr = new GetElementPtrInst(BasePtr, getTransformedValue(CI.getOperand(1)),
-                                       CI.getOperand(1)->getName()+".pp", &CI);
-        SrcPtr = CastInst::createPointerCast(SrcPtr, CI.getOperand(1)->getType(), "", &CI);
-        CI.setOperand(1, SrcPtr);
-        return;
-      }
-    } else if (Callee->getName() == "llvm.memcpy" ||
-               Callee->getName() == "llvm.memcpy.i32" ||
-               Callee->getName() == "llvm.memcpy.i64") {
-      bool doret = false;
-      if (const CompressedPoolInfo *DestPI = getPoolInfo(CI.getOperand(1))) {
-        Value *BasePtr = DestPI->EmitPoolBaseLoad(CI);
-        Value *SrcPtr = new GetElementPtrInst(BasePtr, getTransformedValue(CI.getOperand(1)),
-                                       CI.getOperand(1)->getName()+".pp", &CI);
-        SrcPtr = CastInst::createPointerCast(SrcPtr, CI.getOperand(1)->getType(), "", &CI);
-        CI.setOperand(1, SrcPtr);
-        doret = true;
-      }
-      if (const CompressedPoolInfo *DestPI = getPoolInfo(CI.getOperand(2))) {
-        Value *BasePtr = DestPI->EmitPoolBaseLoad(CI);
-        Value *SrcPtr = new GetElementPtrInst(BasePtr, getTransformedValue(CI.getOperand(2)),
-                                       CI.getOperand(2)->getName()+".pp", &CI);
-        SrcPtr = CastInst::createPointerCast(SrcPtr, CI.getOperand(2)->getType(), "", &CI);
-        CI.setOperand(2, SrcPtr);
-        doret = true;
-      }
-      if (doret) return;
-    }
-
-
-    std::vector<unsigned> CompressedArgs;
-    if (isa<PointerType>(CI.getType()) && getPoolInfo(&CI))
-      CompressedArgs.push_back(0);  // Compress retval.
-  
-    for (unsigned i = 1, e = CI.getNumOperands(); i != e; ++i)
-      if (isa<PointerType>(CI.getOperand(i)->getType()) &&
-          getPoolInfo(CI.getOperand(i))) {
-        CompressedArgs.push_back(i);
-        Operands.push_back(getTransformedValue(CI.getOperand(i)));
-      } else {
-        Operands.push_back(CI.getOperand(i));
-      }
-
-    if (CompressedArgs.empty()) {
-      PtrComp.NoArgFunctionsCalled.push_back(Callee);
-      return;  // Nothing to compress!
-    }
-
-    Function *Clone = PtrComp.GetExtFunctionClone(Callee, CompressedArgs);
-    Value *NC = new CallInst(Clone, &Operands[0], Operands.size(), CI.getName(), &CI);
-    if (NC->getType() != CI.getType())      // Compressing return value?
-      setTransformedValue(CI, NC);
-    else {
-      if (CI.getType() != Type::VoidTy)
-        CI.replaceAllUsesWith(NC);
-      ValueReplaced(CI, NC);
-      CI.eraseFromParent();
-    }
-    return;
-  }
-
-  // CalleeCallerMap: Mapping from nodes in the callee to nodes in the caller.
-  DSGraph::NodeMapTy CalleeCallerMap;
-  
-  // Do we need to compress the return value?
-  if (isa<PointerType>(CI.getType()))
-    DSGraph::computeNodeMapping(CG->getReturnNodeFor(FI->F),
-                                getMappedNodeHandle(&CI), CalleeCallerMap);
-    
-  // Find the arguments we need to compress.
-  unsigned NumPoolArgs = FI ? FI->ArgNodes.size() : 0;
-  //only search non-vararg arguments
-  //FIXME: suspect hack to prevent crashing on user-defined vaarg functions
-  unsigned NumSearch = FI ? FI->F.arg_size() + 1: CI.getNumOperands();
-  for (unsigned i = 1, e = NumSearch; i != e; ++i)
-    if (isa<PointerType>(CI.getOperand(i)->getType()) && i > NumPoolArgs) {
-      Argument *FormalArg = next(FI->F.arg_begin(), i-1-NumPoolArgs);
-        
-      DSGraph::computeNodeMapping(CG->getNodeForValue(FormalArg),
-                                  getMappedNodeHandle(CI.getOperand(i)),
-                                  CalleeCallerMap);
-    }
-
-  // Now that we know the basic pools passed/returned through the
-  // argument/retval of the call, add the compressed pools that are reachable
-  // from them.  The CalleeCallerMap contains a mapping from callee nodes to the
-  // caller nodes they correspond to (a many-to-one mapping).
-  for (DSGraph::NodeMapTy::iterator I = CalleeCallerMap.begin(),
-         E = CalleeCallerMap.end(); I != E; ++I) {
-    // If the destination is compressed, so should the source be.
-    if (PoolInfo.count(I->second.getNode()))
-      PoolsToCompress.insert(I->first);
-  }
-
-  // If this function doesn't require compression, there is nothing to do!
-  // However, this function still needs to be transformed; it may just be
-  // using a global pool descriptor.
-  if (PoolsToCompress.empty()) {
-    PtrComp.NoArgFunctionsCalled.push_back(Callee);
-    return;
-  }
-    
-    
-  // Get the clone of this function that uses compressed pointers instead of
-  // normal pointers.
-  Function *Clone = PtrComp.GetFunctionClone(Callee, PoolsToCompress,
-                                             *FI, *CG);
-
-
-  // Okay, we now have our clone: rewrite the call instruction.
-  std::vector<Value*> Operands;
-  Operands.reserve(CI.getNumOperands()-1);
-
-  Function::arg_iterator AI = FI->F.arg_begin();
-  
-  // Pass pool descriptors.
-  for (unsigned i = 1; i != NumPoolArgs+1; ++i)
-    Operands.push_back(CI.getOperand(i));
-
-  for (unsigned i = NumPoolArgs+1, e = CI.getNumOperands(); i != e; ++i, ++AI)
-    if (isa<PointerType>(CI.getOperand(i)->getType()) &&
-        PoolsToCompress.count(CG->getNodeForValue(AI).getNode()))
-      Operands.push_back(getTransformedValue(CI.getOperand(i)));
-    else
-      Operands.push_back(CI.getOperand(i));
-
-  Value *NC = new CallInst(Clone, &Operands[0], Operands.size(), CI.getName(), &CI);
-  if (NC->getType() != CI.getType())      // Compressing return value?
-    setTransformedValue(CI, NC);
-  else {
-    if (CI.getType() != Type::VoidTy)
-      CI.replaceAllUsesWith(NC);
-    ValueReplaced(CI, NC);
-    CI.eraseFromParent();
-  }
-}
-
-
-
-//===----------------------------------------------------------------------===//
-//                    PointerCompress Implementation
-//===----------------------------------------------------------------------===//
-
-void PointerCompress::getAnalysisUsage(AnalysisUsage &AU) const {
-  // Need information about how pool allocation happened.
-  AU.addRequired<PoolAllocatePassAllPools>();
-
-  // Need information from DSA.
-  AU.addRequired<EquivClassGraphs>();
-}
-
-/// PoolIsCompressible - Return true if we can pointer compress this node.
-/// If not, we should DEBUG print out why.
-static bool PoolIsCompressible(const DSNode *N) {
-  assert(!N->isForwarding() && "Should not be dealing with merged nodes!");
-  if (N->isNodeCompletelyFolded()) {
-    DEBUG(std::cerr << "Node is not type-safe:\n");
-    return false;
-  }
-
-  // FIXME: If any non-type-safe nodes point to this one, we cannot compress it.
-#if 0
-  bool HasFields = false;
-  for (DSNode::const_edge_iterator I = N->edge_begin(), E = N->edge_end();
-       I != E; ++I)
-    if (!I->isNull()) {
-      HasFields = true;
-      if (I->getNode() != N) {
-        // We currently only handle trivially self cyclic DS's right now.
-        DEBUG(std::cerr << "Node points to nodes other than itself:\n");
-        return false;
-      }        
-    }
-
-  if (!HasFields) {
-    DEBUG(std::cerr << "Node does not contain any pointers to compress:\n");
-    return false;
-  }
-#endif
-
-  if ((N->getNodeFlags() & DSNode::Composition) != DSNode::HeapNode) {
-    DEBUG(std::cerr << "Node contains non-heap values:\n");
-    return false;
-  }
-
-  return true;
-}
-
-/// FindPoolsToCompress - Inspect the specified function and find pools that are
-/// compressible that are homed in that function.  Return those pools in the
-/// Pools set.
-void PointerCompress::FindPoolsToCompress(std::set<const DSNode*> &Pools,
-                                          std::map<const DSNode*,
-                                          Value*> &PreassignedPools,
-                                          Function &F, DSGraph &DSG,
-                                          PA::FuncInfo *FI) {
-  DEBUG(std::cerr << "In function '" << F.getName() << "':\n");
-  for (unsigned i = 0, e = FI->NodesToPA.size(); i != e; ++i) {
-    const DSNode *N = FI->NodesToPA[i];
-
-    // Ignore potential pools that the pool allocation heuristic decided not to
-    // pool allocated.
-    if (!isa<ConstantPointerNull>(FI->PoolDescriptors[N]))
-      if (PoolIsCompressible(N)) {
-        Pools.insert(N);
-        ++NumCompressed;
-      } else {
-        DEBUG(std::cerr << "PCF: "; N->dump());
-        ++NumNotCompressed;
-      }
-  }
-
-  // If there are no compressed global pools, don't bother to look for them.
-  if (CompressedGlobalPools.empty()) return;
-
-  // Calculate which DSNodes are reachable from globals.  If a node is reachable
-  // from a global, we check to see if the global pool is compressed.
-  ECG->getGlobalsGraph();
-
-  // Map all node reachable from this global to the corresponding nodes in the
-  // globals graph.
-  DSGraph::NodeMapTy GlobalsGraphNodeMapping;
-  DSG.computeGToGGMapping(GlobalsGraphNodeMapping);
-
-  // See if there are nodes in this graph that correspond to nodes in the
-  // globals graph, and if so, if it is compressed.
-  for (DSGraph::node_iterator I = DSG.node_begin(), E = DSG.node_end();
-       I != E;++I)
-    if (GlobalsGraphNodeMapping.count(I)) {
-      // If it is a global pool, set up the pool descriptor appropriately.
-      DSNode *GGN = GlobalsGraphNodeMapping[I].getNode();
-      if (CompressedGlobalPools.count(GGN)) {
-        Pools.insert(I);
-        PreassignedPools[I] = CompressedGlobalPools[GGN];
-      }
-    }
-}
-
-
-/// CompressPoolsInFunction - Find all pools that are compressible in this
-/// function and compress them.
-bool PointerCompress::
-CompressPoolsInFunction(Function &F,
-                        std::vector<std::pair<Value*, Value*> > *PremappedVals,
-                        std::set<const DSNode*> *ExternalPoolsToCompress){
-  if (F.isDeclaration()) return false;
-
-  // If this is a pointer compressed clone of a pool allocated function, get the
-  // the pool allocated function.  Rewriting a clone means that there are
-  // incoming arguments that point into compressed pools.
-  FunctionCloneRecord *FCR = getCloneInfo(F);
-  Function *CloneSource = FCR ? FCR->PAFn : 0;
-
-  PA::FuncInfo *FI;
-  if (CloneSource)
-    FI = PoolAlloc->getFuncInfoOrClone(*CloneSource);
-  else
-    FI = PoolAlloc->getFuncInfoOrClone(F);
-
-  if (FI == 0) {
-    std::cerr << "DIDN'T FIND POOL INFO FOR: "
-              << *F.getType() << F.getName() << "!\n";
-    return false;
-  }
-
-  // If this function was cloned, and this is the original function, ignore it
-  // (it's dead).  We'll deal with the cloned version later when we run into it
-  // again.
-  if (FI->Clone && &FI->F == &F)
-    return false;
-
-  // Get the DSGraph for this function.
-  DSGraph &DSG = ECG->getDSGraph(FI->F);
-
-  std::set<const DSNode*> PoolsToCompressSet;
-
-  // Compute the set of compressible pools in this function that are hosted
-  // here.
-  std::map<const DSNode*, Value*> PreassignedPools;
-  FindPoolsToCompress(PoolsToCompressSet, PreassignedPools, F, DSG, FI);
-
-  // Handle pools that are passed into the function through arguments or
-  // returned by the function.  If this occurs, we must be dealing with a ptr
-  // compressed clone of the pool allocated clone of the original function.
-  if (ExternalPoolsToCompress)
-    PoolsToCompressSet.insert(ExternalPoolsToCompress->begin(),
-                              ExternalPoolsToCompress->end());
-
-  // If there is nothing that we can compress, exit now.
-  if (PoolsToCompressSet.empty()) return false;
-
-  // Compute the initial collection of compressed pointer infos.
-  std::map<const DSNode*, CompressedPoolInfo> PoolsToCompress;
-
-  for (std::set<const DSNode*>::iterator I = PoolsToCompressSet.begin(),
-         E = PoolsToCompressSet.end(); I != E; ++I) {
-    Value *PD;
-    if (Value *PAPD = PreassignedPools[*I])
-      PD = PAPD;                             // Must be a global pool.
-    else if (FCR)
-      PD = FCR->PoolDescriptors.find(*I)->second;
-    else
-      PD = FI->PoolDescriptors[*I];
-    assert(PD && "No pool descriptor available for this pool???");
-    
-    PoolsToCompress.insert(std::make_pair(*I, CompressedPoolInfo(*I, PD)));
-  }
-
-  // Use these to compute the closure of compression information.  In
-  // particular, if one pool points to another, we need to know if the outgoing
-  // pointer is compressed.
-  const TargetData &TD = DSG.getTargetData();
-  std::cerr << "In function '" << F.getName() << "':\n";
-  for (std::map<const DSNode*, CompressedPoolInfo>::iterator
-         I = PoolsToCompress.begin(), E = PoolsToCompress.end(); I != E; ++I) {
-
-    I->second.Initialize(PoolsToCompress, TD);
-
-    // Only dump info about a compressed pool if this is the home for it.
-    if (isa<AllocaInst>(I->second.getPoolDesc()) ||
-        (isa<GlobalValue>(I->second.getPoolDesc()) &&
-         F.hasExternalLinkage() && F.getName() == "main")) {
-      std::cerr << "  COMPRESSING POOL:\nPCS:";
-      I->second.dump();
-    }
-  }
-  
-  // Finally, rewrite the function body to use compressed pointers!
-  InstructionRewriter IR(PoolsToCompress, DSG, *FI, FCR, *this);
-  if (PremappedVals)
-    IR.PremapValues(*PremappedVals);
-  IR.visit(F);
-  return true;
-}
-
-
-/// GetExtFunctionClone - Return a clone of the specified external function with
-/// the specified arguments compressed.
-Function *PointerCompress::
-GetExtFunctionClone(Function *F, const std::vector<unsigned> &ArgsToComp) {
-  assert(!ArgsToComp.empty() && "No reason to make a clone!");
-  Function *&Clone = ExtCloneFunctionMap[std::make_pair(F, ArgsToComp)];
-  if (Clone) return Clone;
-
-  const FunctionType *FTy = F->getFunctionType();
-  const Type *RetTy = FTy->getReturnType();
-  unsigned ArgIdx = 0;
-  if (isa<PointerType>(RetTy) && ArgsToComp[0] == 0) {
-    RetTy = SCALARUINTTYPE;
-    ++ArgIdx;
-  }
-
-  std::vector<const Type*> ParamTypes;
-
-  for (unsigned i = 0, e = FTy->getNumParams(); i != e; ++i)
-    if (ArgIdx < ArgsToComp.size() && ArgsToComp[ArgIdx]-1 == i) {
-      // Compressed pool, pass an index.
-      ParamTypes.push_back(SCALARUINTTYPE);
-      ++ArgIdx;
-    } else {
-      ParamTypes.push_back(FTy->getParamType(i));
-    }
-  FunctionType *CFTy = FunctionType::get(RetTy, ParamTypes, FTy->isVarArg());
-
-  // Next, create the clone prototype and insert it into the module.
-  Clone = new Function(CFTy, GlobalValue::ExternalLinkage,
-                       F->getName()+"_pc");
-  F->getParent()->getFunctionList().insert(F, Clone);
-  return Clone;
-}
-
-/// GetFunctionClone - Lazily create clones of pool allocated functions that we
-/// need in compressed form.  This memoizes the functions that have been cloned
-/// to allow only one clone of each function in a desired permutation.
-Function *PointerCompress::
-GetFunctionClone(Function *F, std::set<const DSNode*> &PoolsToCompress,
-                 PA::FuncInfo &FI, const DSGraph &CG) {
-  assert(!PoolsToCompress.empty() && "No clone needed!");
-
-  // Check to see if we have already compressed this function, if so, there is
-  // no need to make another clone.  This is also important to avoid infinite
-  // recursion.
-  Function *&Clone = ClonedFunctionMap[std::make_pair(F, PoolsToCompress)];
-  if (Clone) return Clone;
-
-  // First step, construct the new function prototype.
-  const FunctionType *FTy = F->getFunctionType();
-  const Type *RetTy = FTy->getReturnType();
-  if (isa<PointerType>(RetTy) &&
-      PoolsToCompress.count(CG.getReturnNodeFor(FI.F).getNode())) {
-    RetTy = SCALARUINTTYPE;
-  }
-  std::vector<const Type*> ParamTypes;
-  unsigned NumPoolArgs = FI.ArgNodes.size();
-
-  // Pass all pool args unmodified.
-  for (unsigned i = 0; i != NumPoolArgs; ++i)
-    ParamTypes.push_back(FTy->getParamType(i));
-
-  Function::arg_iterator AI = FI.F.arg_begin();
-  for (unsigned i = NumPoolArgs, e = FTy->getNumParams(); i != e; ++i, ++AI)
-    if (isa<PointerType>(FTy->getParamType(i)) &&
-        PoolsToCompress.count(CG.getNodeForValue(AI).getNode())) {
-      // Compressed pool, pass an index.
-      ParamTypes.push_back(SCALARUINTTYPE);
-    } else {
-      ParamTypes.push_back(FTy->getParamType(i));
-    }
-  FunctionType *CFTy = FunctionType::get(RetTy, ParamTypes, FTy->isVarArg());
-
-  // Next, create the clone prototype and insert it into the module.
-  Clone = new Function(CFTy, GlobalValue::InternalLinkage,
-                       F->getName()+".pc");
-  F->getParent()->getFunctionList().insert(F, Clone);
-
-  // Remember where this clone came from.
-  FunctionCloneRecord &CFI = 
-    ClonedFunctionInfoMap.insert(std::make_pair(Clone, F)).first->second;
-
-  ++NumCloned;
-  std::cerr << " CLONING FUNCTION: " << F->getName() << " -> "
-            << Clone->getName() << "\n";
-
-  if (F->isDeclaration()) {
-    Clone->setLinkage(GlobalValue::ExternalLinkage);
-    return Clone;
-  }
-
-  DenseMap<const Value*, Value*> ValueMap;
-
-  // Create dummy Value*'s of pointer type for any arguments that are
-  // compressed.  These are needed to satisfy typing constraints before the
-  // function body has been rewritten.
-  std::vector<std::pair<Value*,Value*> > RemappedArgs;
-
-  // Process arguments, setting up the ValueMap for them.
-  Function::arg_iterator CI = Clone->arg_begin();// Iterate over cloned fn args.
-  for (Function::arg_iterator I = F->arg_begin(), E = F->arg_end();
-       I != E; ++I, ++CI) {
-    // Transfer the argument names over.
-    CI->setName(I->getName());
-
-    // If we are compressing this argument, set up RemappedArgs.
-    if (CI->getType() != I->getType()) {
-      // Create a useless value* that is only needed to hold the uselist for the
-      // argument.
-      Value *V = new Argument(I->getType());   // dummy argument
-      RemappedArgs.push_back(std::make_pair(V, CI));
-      ValueMap[I] = V;
-    } else {
-      // Otherwise, just remember the mapping.
-      ValueMap[I] = CI;
-    }
-  }
-
-  // Clone the actual function body over.
-  std::vector<ReturnInst*> Returns;
-  CloneFunctionInto(Clone, F, ValueMap, Returns);
-  Returns.clear();  // Don't need this.
-  
-  // Invert the ValueMap into the NewToOldValueMap
-  std::map<Value*, const Value*> &NewToOldValueMap = CFI.NewToOldValueMap;
-  for (DenseMap<const Value*, Value*>::iterator I = ValueMap.begin(),
-         E = ValueMap.end(); I != E; ++I)
-    NewToOldValueMap.insert(std::make_pair(I->second, I->first));
-
-  // Compute the PoolDescriptors map for the cloned function.
-  for (std::map<const DSNode*, Value*>::iterator I =
-         FI.PoolDescriptors.begin(), E = FI.PoolDescriptors.end();
-       I != E; ++I)
-    CFI.PoolDescriptors[I->first] = ValueMap[I->second];
-  
-  ValueMap.clear();
-  
-  // Recursively transform the function.
-  CompressPoolsInFunction(*Clone, &RemappedArgs, &PoolsToCompress);
-  return Clone;
-}
-
-
-// Handle all pools pointed to by global variables.
-void PointerCompress::HandleGlobalPools(Module &M) {
-  if (PoolAlloc->GlobalNodes.empty()) return;
-
-  DEBUG(std::cerr << "Inspecting global nodes:\n");
-
-  // Loop over all of the global nodes identified by the pool allocator.
-  for (std::map<const DSNode*, Value*>::iterator I =
-         PoolAlloc->GlobalNodes.begin(), E = PoolAlloc->GlobalNodes.end();
-       I != E; ++I) {
-    const DSNode *N = I->first;
-
-    // Ignore potential pools that the pool allocation heuristic decided not to
-    // pool allocated.
-    if (!isa<ConstantPointerNull>(I->second))
-      if (PoolIsCompressible(N)) {
-        CompressedGlobalPools.insert(std::make_pair(N, 
-                                             cast<GlobalValue>(I->second)));
-        ++NumCompressed;
-      } else {
-        DEBUG(std::cerr << "PCF: "; N->dump());
-        ++NumNotCompressed;
-      }
-  }
-}
-
-
-/// InitializePoolLibraryFunctions - Create the function prototypes for pointer
-/// compress runtime library functions.
-void PointerCompress::InitializePoolLibraryFunctions(Module &M) {
-  const Type *VoidPtrTy = PointerType::get(Type::Int8Ty);
-  const Type *PoolDescPtrTy = PointerType::get(ArrayType::get(VoidPtrTy, 16));
-
-  PoolInitPC = M.getOrInsertFunction("poolinit_pc", VoidPtrTy, PoolDescPtrTy, 
-                                     Type::Int32Ty, Type::Int32Ty, NULL);
-  PoolDestroyPC = M.getOrInsertFunction("pooldestroy_pc", Type::VoidTy,
-                                        PoolDescPtrTy, NULL);
-  PoolAllocPC = M.getOrInsertFunction("poolalloc_pc", SCALARUINTTYPE,
-                                      PoolDescPtrTy, Type::Int32Ty, NULL);
-  // FIXME: Need bumppointer versions as well as realloc??/memalign??
-}
-
-bool PointerCompress::runOnModule(Module &M) {
-  PoolAlloc = &getAnalysis<PoolAllocatePassAllPools>();
-  ECG = &getAnalysis<EquivClassGraphs>();
-  
-  if (SmallIntCompress)
-    MEMUINTTYPE = Type::Int16Ty;
-  else 
-    MEMUINTTYPE = Type::Int32Ty;
-
-  // FIXME: make this IntPtrTy.
-  SCALARUINTTYPE = Type::Int64Ty;
-
-  // Create the function prototypes for pointer compress runtime library
-  // functions.
-  InitializePoolLibraryFunctions(M);
-
-  // Handle all pools pointed to by global variables.
-  HandleGlobalPools(M);
-
-  std::set<Function*> TransformedFns;
-
-  // Iterate over all functions in the module, looking for compressible data
-  // structures.
-  bool Changed = false;
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    // If this function is not a pointer-compressed or pool allocated clone,
-    // compress any pools in it now.
-    if (I->hasExternalLinkage()) {
-      Changed |= CompressPoolsInFunction(*I);
-      TransformedFns.insert(I);
-    }
-
-  // If compressing external functions (e.g. main), required other function
-  // bodies to be compressed that do not take pool arguments, handle them now.
-  for (unsigned i = 0; i != NoArgFunctionsCalled.size(); ++i)
-    if (TransformedFns.insert(NoArgFunctionsCalled[i]).second)
-      Changed |= CompressPoolsInFunction(*NoArgFunctionsCalled[i]);
-
-  NoArgFunctionsCalled.clear();
-  ClonedFunctionMap.clear();
-  return Changed;
-}
diff --git a/poolalloc/lib/PoolAllocate/PoolAllocate.cpp b/poolalloc/lib/PoolAllocate/PoolAllocate.cpp
deleted file mode 100644
index 42164b9..0000000
--- a/poolalloc/lib/PoolAllocate/PoolAllocate.cpp
+++ /dev/null
@@ -1,956 +0,0 @@
-//===-- PoolAllocate.cpp - Pool Allocation Pass ---------------------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This transform changes programs so that disjoint data structures are
-// allocated out of different pools of memory, increasing locality.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "poolalloc"
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "dsa/CallTargets.h"
-#include "poolalloc/PoolAllocate.h"
-#include "Heuristic.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/Constants.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Transforms/Utils/BasicBlockUtils.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-#include "llvm/ADT/DepthFirstIterator.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/Timer.h"
-
-#include <iostream>
-
-using namespace llvm;
-using namespace PA;
-#ifdef SAFECODE
-using namespace CUA;
-#endif
-
-const Type *PoolAllocate::PoolDescPtrTy = 0;
-
-#if 0
-#define TIME_REGION(VARNAME, DESC) \
-   NamedRegionTimer VARNAME(DESC)
-#else
-#define TIME_REGION(VARNAME, DESC)
-#endif
-
-namespace {
-  RegisterPass<PoolAllocate>
-  X("poolalloc", "Pool allocate disjoint data structures");
-  RegisterPass<PoolAllocatePassAllPools>
-  Y("poolalloc-passing-all-pools", "Pool allocate disjoint data structures");
-
-  STATISTIC (NumArgsAdded, "Number of function arguments added");
-  STATISTIC (MaxArgsAdded, "Maximum function arguments added to one function");
-  STATISTIC (NumCloned   , "Number of functions cloned");
-  STATISTIC (NumPools    , "Number of pools allocated");
-  STATISTIC (NumTSPools  , "Number of typesafe pools");
-  STATISTIC (NumPoolFree , "Number of poolfree's elided");
-  STATISTIC (NumNonprofit, "Number of DSNodes not profitable");
-  STATISTIC (NumColocated, "Number of DSNodes colocated");
-
-  const Type *VoidPtrTy;
-
-  // The type to allocate for a pool descriptor.
-  const Type *PoolDescType;
-
-  cl::opt<bool>
-  DisableInitDestroyOpt("poolalloc-force-simple-pool-init",
-                        cl::desc("Always insert poolinit/pooldestroy calls at start and exit of functions"));//, cl::init(true));
-  cl::opt<bool>
-  DisablePoolFreeOpt("poolalloc-force-all-poolfrees",
-                     cl::desc("Do not try to elide poolfree's where possible"));
-
-  cl::opt<bool>
-  UseTDResolve("poolalloc-usetd-resolve",
-	       cl::desc("Use Top-Down Graph as a resolve source"));
-}
-
-void PoolAllocate::getAnalysisUsage(AnalysisUsage &AU) const {
-#ifdef SAFECODE
-  AU.addRequired<ConvertUnsafeAllocas>();
-#endif  
-  AU.addRequired<EquivClassGraphs>();
-  AU.addPreserved<EquivClassGraphs>();
-#ifdef SAFECODE  
-  //Dinakar for preserving the pool information across passes
-  AU.setPreservesAll();
-#endif  
-#ifdef BOUNDS_CHECK  
-  //Dinakar hack for preserving the pool information across passes
-  AU.setPreservesAll();
-#endif  
-  AU.addRequired<TargetData>();
-  if (UseTDResolve)
-    AU.addRequired<CallTargetFinder>();
-}
-
-bool PoolAllocate::runOnModule(Module &M) {
-  if (M.begin() == M.end()) return false;
-#ifdef SAFECODE  
-  CUAPass = &getAnalysis<ConvertUnsafeAllocas>();
-#endif  
-  CurModule = &M;
-  ECGraphs = &getAnalysis<EquivClassGraphs>();   // folded inlined CBU graphs
-  if (UseTDResolve)
-    CTF = &getAnalysis<CallTargetFinder>();
-  else
-    CTF = 0;
-
-  CurHeuristic = Heuristic::create();
-  CurHeuristic->Initialize(M, ECGraphs->getGlobalsGraph(), *this);
-
-  // Add the pool* prototypes to the module
-  AddPoolPrototypes();
-
-  // Create the pools for memory objects reachable by global variables.
-  if (SetupGlobalPools(M))
-    return true;
-
-  // Loop over the functions in the original program finding the pool desc.
-  // arguments necessary for each function that is indirectly callable.
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration() && ECGraphs->ContainsDSGraphFor(*I))
-      FindFunctionPoolArgs(*I);
-
-  std::map<Function*, Function*> FuncMap;
-
-  // Now clone a function using the pool arg list obtained in the previous pass
-  // over the modules.  Loop over only the function initially in the program,
-  // don't traverse newly added ones.  If the function needs new arguments, make
-  // its clone.
-  std::set<Function*> ClonedFunctions;
-{TIME_REGION(X, "MakeFunctionClone");
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration() && !ClonedFunctions.count(I) &&
-        ECGraphs->ContainsDSGraphFor(*I))
-      if (Function *Clone = MakeFunctionClone(*I)) {
-        FuncMap[I] = Clone;
-        ClonedFunctions.insert(Clone);
-      }
-}
-  
-  // Now that all call targets are available, rewrite the function bodies of the
-  // clones.
-{TIME_REGION(X, "ProcessFunctionBody");
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
-    if (!I->isDeclaration() && !ClonedFunctions.count(I) &&
-        ECGraphs->ContainsDSGraphFor(*I)) {
-      std::map<Function*, Function*>::iterator FI = FuncMap.find(I);
-      ProcessFunctionBody(*I, FI != FuncMap.end() ? *FI->second : *I);
-    }
-}
-  // Replace all uses of original functions with the transformed function.
-  for (std::map<Function *, Function *>::iterator I = FuncMap.begin(),
-         E = FuncMap.end(); I != E; ++I) {
-    Function *F = I->first;
-    F->replaceAllUsesWith(ConstantExpr::getPointerCast(I->second, F->getType()));
-  }
-
-  if (CurHeuristic->IsRealHeuristic())
-    MicroOptimizePoolCalls();
-
-  delete CurHeuristic;
-  return true;
-}
-
-// AddPoolPrototypes - Add prototypes for the pool functions to the specified
-// module and update the Pool* instance variables to point to them.
-//
-// NOTE: If these are changed, make sure to update PoolOptimize.cpp as well!
-//
-void PoolAllocate::AddPoolPrototypes() {
-  if (VoidPtrTy == 0) {
-    // NOTE: If these are changed, make sure to update PoolOptimize.cpp as well!
-    VoidPtrTy = PointerType::get(Type::Int8Ty);
-#ifdef SAFECODE    
-    PoolDescType = ArrayType::get(VoidPtrTy, 50);
-#else
-    PoolDescType = ArrayType::get(VoidPtrTy, 16);
-#endif    
-    PoolDescPtrTy = PointerType::get(PoolDescType);
-  }
-
-  CurModule->addTypeName("PoolDescriptor", PoolDescType);
-  
-  // Get poolinit function.
-  PoolInit = CurModule->getOrInsertFunction("poolinit", Type::VoidTy,
-                                            PoolDescPtrTy, Type::Int32Ty,
-                                            Type::Int32Ty, NULL);
-
-  // Get pooldestroy function.
-  PoolDestroy = CurModule->getOrInsertFunction("pooldestroy", Type::VoidTy,
-                                               PoolDescPtrTy, NULL);
-  
-  // The poolalloc function.
-  PoolAlloc = CurModule->getOrInsertFunction("poolalloc", 
-                                             VoidPtrTy, PoolDescPtrTy,
-                                             Type::Int32Ty, NULL);
-  
-  // The poolrealloc function.
-  PoolRealloc = CurModule->getOrInsertFunction("poolrealloc",
-                                               VoidPtrTy, PoolDescPtrTy,
-                                               VoidPtrTy, Type::Int32Ty, NULL);
-  // The poolmemalign function.
-  PoolMemAlign = CurModule->getOrInsertFunction("poolmemalign",
-                                                VoidPtrTy, PoolDescPtrTy,
-                                                Type::Int32Ty, Type::Int32Ty, 
-                                                NULL);
-
-  // Get the poolfree function.
-  PoolFree = CurModule->getOrInsertFunction("poolfree", Type::VoidTy,
-                                            PoolDescPtrTy, VoidPtrTy, NULL);
-#ifdef SAFECODE
-  //Get the poolregister function
-  PoolRegister = CurModule->getOrInsertFunction("poolregister", Type::VoidTy,
-                                   PoolDescPtrTy, Type::Int32Ty, VoidPtrTy, NULL);
-#endif
-#ifdef BOUNDS_CHECK
-  PoolRegister = CurModule->getOrInsertFunction("poolregister", Type::VoidTy,
-                                   PoolDescPtrTy, VoidPtrTy, Type::Int32Ty, NULL);
-#endif  
-}
-
-static void getCallsOf(Constant *C, std::vector<CallInst*> &Calls) {
-  // Get the Function out of the constant
-  Function * F;
-  ConstantExpr * CE;
-  if (!(F=dyn_cast<Function>(C)))
-    if ((CE = dyn_cast<ConstantExpr>(C)) && (CE->isCast()))
-      F = dyn_cast<Function>(CE->getOperand(0));
-    else
-      assert (0 && "Constant is not a Function of ConstantExpr!"); 
-  Calls.clear();
-  for (Value::use_iterator UI = F->use_begin(), E = F->use_end(); UI != E; ++UI)
-    Calls.push_back(cast<CallInst>(*UI));
-}
-
-static void OptimizePointerNotNull(Value *V) {
-  for (Value::use_iterator I = V->use_begin(), E = V->use_end(); I != E; ++I) {
-    Instruction *User = cast<Instruction>(*I);
-    if (isa<ICmpInst>(User) && cast<ICmpInst>(User)->isEquality()) {
-      ICmpInst * ICI = cast<ICmpInst>(User);
-      if (isa<Constant>(User->getOperand(1)) && 
-          cast<Constant>(User->getOperand(1))->isNullValue()) {
-        bool CondIsTrue = ICI->getPredicate() == ICmpInst::ICMP_NE;
-        User->replaceAllUsesWith(ConstantInt::get(Type::Int1Ty, CondIsTrue));
-      }
-    } else if ((User->getOpcode() == Instruction::Trunc) ||
-               (User->getOpcode() == Instruction::ZExt) ||
-               (User->getOpcode() == Instruction::SExt) ||
-               (User->getOpcode() == Instruction::FPToUI) ||
-               (User->getOpcode() == Instruction::FPToSI) ||
-               (User->getOpcode() == Instruction::UIToFP) ||
-               (User->getOpcode() == Instruction::SIToFP) ||
-               (User->getOpcode() == Instruction::FPTrunc) ||
-               (User->getOpcode() == Instruction::FPExt) ||
-               (User->getOpcode() == Instruction::PtrToInt) ||
-               (User->getOpcode() == Instruction::IntToPtr) ||
-               (User->getOpcode() == Instruction::BitCast)) {
-      // Casted pointers are also not null.
-      if (isa<PointerType>(User->getType()))
-        OptimizePointerNotNull(User);
-    } else if (User->getOpcode() == Instruction::GetElementPtr) {
-      // GEP'd pointers are also not null.
-      OptimizePointerNotNull(User);
-    }
-  }
-}
-
-/// MicroOptimizePoolCalls - Apply any microoptimizations to calls to pool
-/// allocation function calls that we can.  This runs after the whole program
-/// has been transformed.
-void PoolAllocate::MicroOptimizePoolCalls() {
-  // Optimize poolalloc
-  std::vector<CallInst*> Calls;
-  getCallsOf(PoolAlloc, Calls);
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i) {
-    CallInst *CI = Calls[i];
-    // poolalloc never returns null.  Loop over all uses of the call looking for
-    // set(eq|ne) X, null.
-    OptimizePointerNotNull(CI);
-  }
-
-  // TODO: poolfree accepts a null pointer, so remove any check above it, like
-  // 'if (P) poolfree(P)'
-}
-
-
-
-
-static void GetNodesReachableFromGlobals(DSGraph &G,
-                                  hash_set<const DSNode*> &NodesFromGlobals) {
-  for (DSScalarMap::global_iterator I = G.getScalarMap().global_begin(), 
-         E = G.getScalarMap().global_end(); I != E; ++I)
-    G.getNodeForValue(*I).getNode()->markReachableNodes(NodesFromGlobals);
-}
-
-static void MarkNodesWhichMustBePassedIn(hash_set<const DSNode*> &MarkedNodes,
-                                         Function &F, DSGraph &G,
-                                         bool PassAllArguments) {
-  // Mark globals and incomplete nodes as live... (this handles arguments)
-  if (F.getName() != "main") {
-    // All DSNodes reachable from arguments must be passed in.
-    for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end();
-         I != E; ++I) {
-      DSGraph::ScalarMapTy::iterator AI = G.getScalarMap().find(I);
-      if (AI != G.getScalarMap().end())
-        if (DSNode *N = AI->second.getNode())
-          N->markReachableNodes(MarkedNodes);
-    }
-  }
-
-  // Marked the returned node as needing to be passed in.
-  if (DSNode *RetNode = G.getReturnNodeFor(F).getNode())
-    RetNode->markReachableNodes(MarkedNodes);
-
-  // Calculate which DSNodes are reachable from globals.  If a node is reachable
-  // from a global, we will create a global pool for it, so no argument passage
-  // is required.
-  hash_set<const DSNode*> NodesFromGlobals;
-  GetNodesReachableFromGlobals(G, NodesFromGlobals);
-
-  // Remove any nodes reachable from a global.  These nodes will be put into
-  // global pools, which do not require arguments to be passed in.  Also, erase
-  // any marked node that is not a heap node.  Since no allocations or frees
-  // will be done with it, it needs no argument.
-  for (hash_set<const DSNode*>::iterator I = MarkedNodes.begin(),
-         E = MarkedNodes.end(); I != E; ) {
-    const DSNode *N = *I++;
-    if ((!(1 || N->isHeapNode()) && !PassAllArguments) || NodesFromGlobals.count(N))
-      MarkedNodes.erase(N);
-  }
-}
-
-
-/// FindFunctionPoolArgs - In the first pass over the program, we decide which
-/// arguments will have to be added for each function, build the FunctionInfo
-/// map and recording this info in the ArgNodes set.
-void PoolAllocate::FindFunctionPoolArgs(Function &F) {
-  DSGraph &G = ECGraphs->getDSGraph(F);
-
-  // Create a new entry for F.
-  FuncInfo &FI =
-    FunctionInfo.insert(std::make_pair(&F, FuncInfo(F))).first->second;
-  hash_set<const DSNode*> &MarkedNodes = FI.MarkedNodes;
-
-  if (G.node_begin() == G.node_end())
-    return;  // No memory activity, nothing is required
-
-  // Find DataStructure nodes which are allocated in pools non-local to the
-  // current function.  This set will contain all of the DSNodes which require
-  // pools to be passed in from outside of the function.
-  MarkNodesWhichMustBePassedIn(MarkedNodes, F, G, PassAllArguments);
-  
-  FI.ArgNodes.insert(FI.ArgNodes.end(), MarkedNodes.begin(), MarkedNodes.end());
-}
-
-// MakeFunctionClone - If the specified function needs to be modified for pool
-// allocation support, make a clone of it, adding additional arguments as
-// necessary, and return it.  If not, just return null.
-//
-Function *PoolAllocate::MakeFunctionClone(Function &F) {
-  DSGraph &G = ECGraphs->getDSGraph(F);
-  if (G.node_begin() == G.node_end()) return 0;
-    
-  FuncInfo &FI = *getFuncInfo(F);
-  if (FI.ArgNodes.empty())
-    return 0;           // No need to clone if no pools need to be passed in!
-
-  // Update statistics..
-  NumArgsAdded += FI.ArgNodes.size();
-  if (MaxArgsAdded < FI.ArgNodes.size()) MaxArgsAdded = FI.ArgNodes.size();
-  ++NumCloned;
- 
-      
-  // Figure out what the arguments are to be for the new version of the function
-  const FunctionType *OldFuncTy = F.getFunctionType();
-  std::vector<const Type*> ArgTys(FI.ArgNodes.size(), PoolDescPtrTy);
-  ArgTys.reserve(OldFuncTy->getNumParams() + FI.ArgNodes.size());
-
-  ArgTys.insert(ArgTys.end(), OldFuncTy->param_begin(), OldFuncTy->param_end());
-
-  // Create the new function prototype
-  FunctionType *FuncTy = FunctionType::get(OldFuncTy->getReturnType(), ArgTys,
-                                           OldFuncTy->isVarArg());
-  // Create the new function...
-  Function *New = new Function(FuncTy, Function::InternalLinkage, F.getName());
-  F.getParent()->getFunctionList().insert(&F, New);
-  CloneToOrigMap[New] = &F;   // Remember original function.
-
-  // Set the rest of the new arguments names to be PDa<n> and add entries to the
-  // pool descriptors map
-  std::map<const DSNode*, Value*> &PoolDescriptors = FI.PoolDescriptors;
-  Function::arg_iterator NI = New->arg_begin();
-  
-  for (unsigned i = 0, e = FI.ArgNodes.size(); i != e; ++i, ++NI) {
-    NI->setName("PDa");
-    PoolDescriptors[FI.ArgNodes[i]] = NI;
-  }
-
-  // Map the existing arguments of the old function to the corresponding
-  // arguments of the new function, and copy over the names.
-#ifdef SAFECODE  
-  DenseMap<const Value*, Value*> &ValueMap = FI.ValueMap;
-#else
-  DenseMap<const Value*, Value*> ValueMap;
-#endif  
-  for (Function::arg_iterator I = F.arg_begin();
-       NI != New->arg_end(); ++I, ++NI) {
-    ValueMap[I] = NI;
-    NI->setName(I->getName());
-  }
-
-  // Perform the cloning.
-  std::vector<ReturnInst*> Returns;
-{TIME_REGION(X, "CloneFunctionInto");
-  CloneFunctionInto(New, &F, ValueMap, Returns);
-}
-  // Invert the ValueMap into the NewToOldValueMap
-  std::map<Value*, const Value*> &NewToOldValueMap = FI.NewToOldValueMap;
-
-  for (DenseMap<const Value*, Value*>::iterator I = ValueMap.begin(),
-         E = ValueMap.end(); I != E; ++I)
-    NewToOldValueMap.insert(std::make_pair(I->second, I->first));
-  return FI.Clone = New;
-}
-
-// SetupGlobalPools - Create global pools for all DSNodes in the globals graph
-// which contain heap objects.  If a global variable points to a piece of memory
-// allocated from the heap, this pool gets a global lifetime.  This is
-// implemented by making the pool descriptor be a global variable of it's own,
-// and initializing the pool on entrance to main.  Note that we never destroy
-// the pool, because it has global lifetime.
-//
-// This method returns true if correct pool allocation of the module cannot be
-// performed because there is no main function for the module and there are
-// global pools.
-//
-bool PoolAllocate::SetupGlobalPools(Module &M) {
-  // Get the globals graph for the program.
-  DSGraph &GG = ECGraphs->getGlobalsGraph();
-
-  // Get all of the nodes reachable from globals.
-  hash_set<const DSNode*> GlobalHeapNodes;
-  GetNodesReachableFromGlobals(GG, GlobalHeapNodes);
-
-  // Filter out all nodes which have no heap allocations merged into them.
-  for (hash_set<const DSNode*>::iterator I = GlobalHeapNodes.begin(),
-         E = GlobalHeapNodes.end(); I != E; ) {
-    hash_set<const DSNode*>::iterator Last = I++;
-#ifndef SAFECODE
-#ifndef BOUNDS_CHECK    
-    //    if (!(*Last)->isHeapNode());
-    //       GlobalHeapNodes.erase(Last);
-#endif       
-#endif
-    const DSNode *tmp = *Last;
-    //    std::cerr << "test \n";
-    if (!(tmp->isHeapNode() || tmp->isArray()))
-      GlobalHeapNodes.erase(Last);
-  }
-  
-  // Otherwise get the main function to insert the poolinit calls.
-  Function *MainFunc = M.getFunction("main");
-  if (MainFunc == 0 || MainFunc->isDeclaration()) {
-    std::cerr << "Cannot pool allocate this program: it has global "
-              << "pools but no 'main' function yet!\n";
-    return true;
-  }
-
-  std::cerr << "Pool allocating " << GlobalHeapNodes.size()
-            << " global nodes!\n";
-
-
-  std::vector<const DSNode*> NodesToPA(GlobalHeapNodes.begin(),
-                                       GlobalHeapNodes.end());
-  std::vector<Heuristic::OnePool> ResultPools;
-  CurHeuristic->AssignToPools(NodesToPA, 0, GG, ResultPools);
-
-  BasicBlock::iterator InsertPt = MainFunc->getEntryBlock().begin();
-#ifndef SAFECODE
-#ifndef BOUNDS_CHECK  
-  while (isa<AllocaInst>(InsertPt)) ++InsertPt;
-#endif  
-#endif
-  // Perform all global assignments as specified.
-  for (unsigned i = 0, e = ResultPools.size(); i != e; ++i) {
-    Heuristic::OnePool &Pool = ResultPools[i];
-    Value *PoolDesc = Pool.PoolDesc;
-    if (PoolDesc == 0) {
-      PoolDesc = CreateGlobalPool(Pool.PoolSize, Pool.PoolAlignment, InsertPt);
-
-      if (Pool.NodesInPool.size() == 1 &&
-          !Pool.NodesInPool[0]->isNodeCompletelyFolded())
-        ++NumTSPools;
-    }
-    for (unsigned N = 0, e = Pool.NodesInPool.size(); N != e; ++N) {
-      GlobalNodes[Pool.NodesInPool[N]] = PoolDesc;
-      GlobalHeapNodes.erase(Pool.NodesInPool[N]);  // Handled!
-    }
-  }
-
-  // Any unallocated DSNodes get null pool descriptor pointers.
-  for (hash_set<const DSNode*>::iterator I = GlobalHeapNodes.begin(),
-         E = GlobalHeapNodes.end(); I != E; ++I) {
-    GlobalNodes[*I] = Constant::getNullValue(PointerType::get(PoolDescType));
-    ++NumNonprofit;
-  }
-  
-  return false;
-}
-
-/// CreateGlobalPool - Create a global pool descriptor object, and insert a
-/// poolinit for it into main.  IPHint is an instruction that we should insert
-/// the poolinit before if not null.
-GlobalVariable *PoolAllocate::CreateGlobalPool(unsigned RecSize, unsigned Align,
-                                               Instruction *IPHint) {
-  GlobalVariable *GV =
-    new GlobalVariable(PoolDescType, false, GlobalValue::InternalLinkage, 
-                       Constant::getNullValue(PoolDescType), "GlobalPool",
-                       CurModule);
-
-  // Update the global DSGraph to include this.
-  DSNode *GNode = ECGraphs->getGlobalsGraph().addObjectToGraph(GV);
-  GNode->setModifiedMarker()->setReadMarker();
-
-  Function *MainFunc = CurModule->getFunction("main");
-  assert(MainFunc && "No main in program??");
-
-  BasicBlock::iterator InsertPt;
-  if (IPHint)
-    InsertPt = IPHint;
-  else {
-    InsertPt = MainFunc->getEntryBlock().begin();
-    while (isa<AllocaInst>(InsertPt)) ++InsertPt;
-  }
-
-  Value *ElSize = ConstantInt::get(Type::Int32Ty, RecSize);
-  Value *AlignV = ConstantInt::get(Type::Int32Ty, Align);
-  Value* Opts[3] = {GV, ElSize, AlignV};
-  new CallInst(PoolInit, &Opts[0], 3, "", InsertPt);
-  ++NumPools;
-  return GV;
-}
-
-
-// CreatePools - This creates the pool initialization and destruction code for
-// the DSNodes specified by the NodesToPA list.  This adds an entry to the
-// PoolDescriptors map for each DSNode.
-//
-void PoolAllocate::CreatePools(Function &F, DSGraph &DSG,
-                               const std::vector<const DSNode*> &NodesToPA,
-                               std::map<const DSNode*,
-                                        Value*> &PoolDescriptors) {
-  if (NodesToPA.empty()) return;
-  TIME_REGION(X, "CreatePools");
-
-  std::vector<Heuristic::OnePool> ResultPools;
-  CurHeuristic->AssignToPools(NodesToPA, &F, *NodesToPA[0]->getParentGraph(),
-                              ResultPools);
-
-  std::set<const DSNode*> UnallocatedNodes(NodesToPA.begin(), NodesToPA.end());
-
-  BasicBlock::iterator InsertPoint = F.front().begin();
-#ifndef SAFECODE
-#ifndef BOUNDS_CHECK  
-  while (isa<AllocaInst>(InsertPoint)) ++InsertPoint;
-#endif
-#endif  
-  // Is this main?  If so, make the pool descriptors globals, not automatic
-  // vars.
-  bool IsMain = F.getName() == "main" && F.hasExternalLinkage();
-
-  // Perform all global assignments as specified.
-  for (unsigned i = 0, e = ResultPools.size(); i != e; ++i) {
-    Heuristic::OnePool &Pool = ResultPools[i];
-    Value *PoolDesc = Pool.PoolDesc;
-    if (PoolDesc == 0) {
-      // Create a pool descriptor for the pool.  The poolinit will be inserted
-      // later.
-      if (!IsMain) {
-        PoolDesc = new AllocaInst(PoolDescType, 0, "PD", InsertPoint);
-
-        // Create a node in DSG to represent the new alloca.
-        DSNode *NewNode = DSG.addObjectToGraph(PoolDesc);
-        NewNode->setModifiedMarker()->setReadMarker();  // This is M/R
-      } else {
-        PoolDesc = CreateGlobalPool(Pool.PoolSize, Pool.PoolAlignment,
-                                    InsertPoint);
-
-        // Add the global node to main's graph.
-        DSNode *NewNode = DSG.addObjectToGraph(PoolDesc);
-        NewNode->setModifiedMarker()->setReadMarker();  // This is M/R
-
-        if (Pool.NodesInPool.size() == 1 &&
-            !Pool.NodesInPool[0]->isNodeCompletelyFolded())
-          ++NumTSPools;
-      }
-    }
-    for (unsigned N = 0, e = Pool.NodesInPool.size(); N != e; ++N) {
-      PoolDescriptors[Pool.NodesInPool[N]] = PoolDesc;
-      UnallocatedNodes.erase(Pool.NodesInPool[N]);  // Handled!
-    }
-  }
-
-  // Any unallocated DSNodes get null pool descriptor pointers.
-  for (std::set<const DSNode*>::iterator I = UnallocatedNodes.begin(),
-         E = UnallocatedNodes.end(); I != E; ++I) {
-    PoolDescriptors[*I] =Constant::getNullValue(PointerType::get(PoolDescType));
-    ++NumNonprofit;
-  }
-}
-
-// processFunction - Pool allocate any data structures which are contained in
-// the specified function.
-//
-void PoolAllocate::ProcessFunctionBody(Function &F, Function &NewF) {
-  DSGraph &G = ECGraphs->getDSGraph(F);
-
-  if (G.node_begin() == G.node_end()) return;  // Quick exit if nothing to do.
-  
-  FuncInfo &FI = *getFuncInfo(F);
-  hash_set<const DSNode*> &MarkedNodes = FI.MarkedNodes;
-
-  // Calculate which DSNodes are reachable from globals.  If a node is reachable
-  // from a global, we will create a global pool for it, so no argument passage
-  // is required.
-  ECGraphs->getGlobalsGraph();
-
-  // Map all node reachable from this global to the corresponding nodes in
-  // the globals graph.
-  DSGraph::NodeMapTy GlobalsGraphNodeMapping;
-  G.computeGToGGMapping(GlobalsGraphNodeMapping);
-
-  // Loop over all of the nodes which are non-escaping, adding pool-allocatable
-  // ones to the NodesToPA vector.
-  for (DSGraph::node_iterator I = G.node_begin(), E = G.node_end(); I != E;++I){
-    // We only need to make a pool if there is a heap object in it...
-    DSNode *N = I;
-    if (
-#ifdef BOUNDS_CHECK
-  (N->isArray() ||
-#endif		 
-   (N->isHeapNode()))
-      if (GlobalsGraphNodeMapping.count(N)) {
-        // If it is a global pool, set up the pool descriptor appropriately.
-        DSNode *GGN = GlobalsGraphNodeMapping[N].getNode();
-        assert(GGN && GlobalNodes[GGN] && "No global node found??");
-        FI.PoolDescriptors[N] = GlobalNodes[GGN];
-      } else if (!MarkedNodes.count(N)) {
-        // Otherwise, if it was not passed in from outside the function, it must
-        // be a local pool!
-        assert(!N->isGlobalNode() && "Should be in global mapping!");
-        FI.NodesToPA.push_back(N);
-      }
-  }
-
-  if (!FI.NodesToPA.empty()) {
-    std::cerr << "[" << F.getName() << "] " << FI.NodesToPA.size()
-              << " nodes pool allocatable\n";
-    CreatePools(NewF, G, FI.NodesToPA, FI.PoolDescriptors);
-  } else {
-    DEBUG(std::cerr << "[" << F.getName() << "] transforming body.\n");
-  }
-  
-  // Transform the body of the function now... collecting information about uses
-  // of the pools.
-  std::multimap<AllocaInst*, Instruction*> PoolUses;
-  std::multimap<AllocaInst*, CallInst*> PoolFrees;
-  TransformBody(G, FI, PoolUses, PoolFrees, NewF);
-
-  // Create pool construction/destruction code
-  if (!FI.NodesToPA.empty())
-    InitializeAndDestroyPools(NewF, FI.NodesToPA, FI.PoolDescriptors,
-                              PoolUses, PoolFrees);
-  CurHeuristic->HackFunctionBody(NewF, FI.PoolDescriptors);
-}
-
-template<class IteratorTy>
-static void AllOrNoneInSet(IteratorTy S, IteratorTy E,
-                           std::set<BasicBlock*> &Blocks, bool &AllIn,
-                           bool &NoneIn) {
-  AllIn = true;
-  NoneIn = true;
-  for (; S != E; ++S)
-    if (Blocks.count(*S))
-      NoneIn = false;
-    else
-      AllIn = false;
-}
-
-static void DeleteIfIsPoolFree(Instruction *I, AllocaInst *PD,
-                             std::multimap<AllocaInst*, CallInst*> &PoolFrees) {
-  std::multimap<AllocaInst*, CallInst*>::iterator PFI, PFE;
-  if (dyn_cast<CallInst>(I))
-    for (tie(PFI,PFE) = PoolFrees.equal_range(PD); PFI != PFE; ++PFI)
-      if (PFI->second == I) {
-        PoolFrees.erase(PFI);
-        I->eraseFromParent();
-        ++NumPoolFree;
-        return;
-      }
-}
-
-void PoolAllocate::CalculateLivePoolFreeBlocks(std::set<BasicBlock*>&LiveBlocks,
-                                               Value *PD) {
-  for (Value::use_iterator I = PD->use_begin(), E = PD->use_end(); I != E; ++I){
-    // The only users of the pool should be call & invoke instructions.
-    CallSite U = CallSite::get(*I);
-    if (U.getCalledValue() != PoolFree && U.getCalledValue() != PoolDestroy) {
-      // This block and every block that can reach this block must keep pool
-      // frees.
-      for (idf_ext_iterator<BasicBlock*, std::set<BasicBlock*> >
-             DI = idf_ext_begin(U.getInstruction()->getParent(), LiveBlocks),
-             DE = idf_ext_end(U.getInstruction()->getParent(), LiveBlocks);
-           DI != DE; ++DI)
-        /* empty */;
-    }
-  }
-}
-
-/// InitializeAndDestroyPools- This inserts calls to poolinit and pooldestroy
-/// into the function to initialize and destroy one pool.
-///
-void PoolAllocate::InitializeAndDestroyPool(Function &F, const DSNode *Node,
-                          std::map<const DSNode*, Value*> &PoolDescriptors,
-                          std::multimap<AllocaInst*, Instruction*> &PoolUses,
-                          std::multimap<AllocaInst*, CallInst*> &PoolFrees) {
-  AllocaInst *PD = cast<AllocaInst>(PoolDescriptors[Node]);
-
-  // Convert the PoolUses/PoolFrees sets into something specific to this pool: a
-  // set of which blocks are immediately using the pool.
-  std::set<BasicBlock*> UsingBlocks;
-    
-  std::multimap<AllocaInst*, Instruction*>::iterator PUI, PUE;
-  tie(PUI, PUE) = PoolUses.equal_range(PD);
-  for (; PUI != PUE; ++PUI)
-    UsingBlocks.insert(PUI->second->getParent());
-    
-  // To calculate all of the basic blocks which require the pool to be
-  // initialized before, do a depth first search on the CFG from the using
-  // blocks.
-  std::set<BasicBlock*> InitializedBefore;
-  std::set<BasicBlock*> DestroyedAfter;
-  for (std::set<BasicBlock*>::iterator I = UsingBlocks.begin(),
-         E = UsingBlocks.end(); I != E; ++I) {
-    for (df_ext_iterator<BasicBlock*, std::set<BasicBlock*> >
-           DI = df_ext_begin(*I, InitializedBefore),
-           DE = df_ext_end(*I, InitializedBefore); DI != DE; ++DI)
-      /* empty */;
-      
-    for (idf_ext_iterator<BasicBlock*, std::set<BasicBlock*> >
-           DI = idf_ext_begin(*I, DestroyedAfter),
-           DE = idf_ext_end(*I, DestroyedAfter); DI != DE; ++DI)
-      /* empty */;
-  }
-  // Now that we have created the sets, intersect them.
-  std::set<BasicBlock*> LiveBlocks;
-  std::set_intersection(InitializedBefore.begin(),InitializedBefore.end(),
-                        DestroyedAfter.begin(), DestroyedAfter.end(),
-                        std::inserter(LiveBlocks, LiveBlocks.end()));
-  InitializedBefore.clear();
-  DestroyedAfter.clear();
-    
-  DEBUG(std::cerr << "POOL: " << PD->getName() << " information:\n");
-  DEBUG(std::cerr << "  Live in blocks: ");
-  DEBUG(for (std::set<BasicBlock*>::iterator I = LiveBlocks.begin(),
-               E = LiveBlocks.end(); I != E; ++I)
-          std::cerr << (*I)->getName() << " ");
-  DEBUG(std::cerr << "\n");
-    
- 
-  std::vector<Instruction*> PoolInitPoints;
-  std::vector<Instruction*> PoolDestroyPoints;
-
-  if (DisableInitDestroyOpt) {
-    // Insert poolinit calls after all of the allocas...
-    Instruction *InsertPoint;
-    for (BasicBlock::iterator I = F.front().begin();
-         isa<AllocaInst>(InsertPoint = I); ++I)
-      /*empty*/;
-    PoolInitPoints.push_back(InsertPoint);
-
-    if (F.getName() != "main")
-      for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
-        if (isa<ReturnInst>(BB->getTerminator()) ||
-            isa<UnwindInst>(BB->getTerminator()))
-          PoolDestroyPoints.push_back(BB->getTerminator());
-  } else {
-    // Keep track of the blocks we have inserted poolinit/destroy into.
-    std::set<BasicBlock*> PoolInitInsertedBlocks, PoolDestroyInsertedBlocks;
-    
-    for (std::set<BasicBlock*>::iterator I = LiveBlocks.begin(),
-           E = LiveBlocks.end(); I != E; ++I) {
-      BasicBlock *BB = *I;
-      TerminatorInst *Term = BB->getTerminator();
-      
-      // Check the predecessors of this block.  If any preds are not in the
-      // set, or if there are no preds, insert a pool init.
-      bool AllIn, NoneIn;
-      AllOrNoneInSet(pred_begin(BB), pred_end(BB), LiveBlocks, AllIn,
-                     NoneIn);
-      
-      if (NoneIn) {
-        if (!PoolInitInsertedBlocks.count(BB)) {
-          BasicBlock::iterator It = BB->begin();
-          while (isa<AllocaInst>(It) || isa<PHINode>(It)) ++It;
-#if 0
-          // Move through all of the instructions not in the pool
-          while (!PoolUses.count(std::make_pair(PD, It)))
-            // Advance past non-users deleting any pool frees that we run
-            // across.
-            DeleteIfIsPoolFree(It++, PD, PoolFrees);
-#endif
-          PoolInitPoints.push_back(It);
-          PoolInitInsertedBlocks.insert(BB);
-        }
-      } else if (!AllIn) {
-      TryAgainPred:
-        for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E;
-             ++PI)
-          if (!LiveBlocks.count(*PI) && !PoolInitInsertedBlocks.count(*PI)){
-            if (SplitCriticalEdge(BB, PI))
-              // If the critical edge was split, *PI was invalidated
-              goto TryAgainPred;
-            
-            // Insert at the end of the predecessor, before the terminator.
-            PoolInitPoints.push_back((*PI)->getTerminator());
-            PoolInitInsertedBlocks.insert(*PI);
-          }
-      }
-      // Check the successors of this block.  If some succs are not in the
-      // set, insert destroys on those successor edges.  If all succs are
-      // not in the set, insert a destroy in this block.
-      AllOrNoneInSet(succ_begin(BB), succ_end(BB), LiveBlocks,
-                     AllIn, NoneIn);
-      
-      if (NoneIn) {
-        // Insert before the terminator.
-        if (!PoolDestroyInsertedBlocks.count(BB)) {
-          BasicBlock::iterator It = Term;
-          
-          // Rewind to the first using instruction.
-#if 0
-          while (!PoolUses.count(std::make_pair(PD, It)))
-            DeleteIfIsPoolFree(It--, PD, PoolFrees);
-          ++It;
-#endif
-     
-          // Insert after the first using instruction
-          PoolDestroyPoints.push_back(It);
-          PoolDestroyInsertedBlocks.insert(BB);
-        }
-      } else if (!AllIn) {
-        for (succ_iterator SI = succ_begin(BB), E = succ_end(BB);
-             SI != E; ++SI)
-          if (!LiveBlocks.count(*SI) &&
-              !PoolDestroyInsertedBlocks.count(*SI)) {
-            // If this edge is critical, split it.
-            SplitCriticalEdge(BB, SI);
-            
-            // Insert at entry to the successor, but after any PHI nodes.
-            BasicBlock::iterator It = (*SI)->begin();
-            while (isa<PHINode>(It)) ++It;
-            PoolDestroyPoints.push_back(It);
-            PoolDestroyInsertedBlocks.insert(*SI);
-          }
-      }
-    }
-  }
-
-  DEBUG(std::cerr << "  Init in blocks: ");
-
-  // Insert the calls to initialize the pool.
-  unsigned ElSizeV = Heuristic::getRecommendedSize(Node);
-  Value *ElSize = ConstantInt::get(Type::Int32Ty, ElSizeV);
-  unsigned AlignV = Heuristic::getRecommendedAlignment(Node);
-  Value *Align  = ConstantInt::get(Type::Int32Ty, AlignV);
-
-  for (unsigned i = 0, e = PoolInitPoints.size(); i != e; ++i) {
-    Value* Opts[3] = {PD, ElSize, Align};
-    new CallInst(PoolInit, &Opts[0], 3,  "", PoolInitPoints[i]);
-    DEBUG(std::cerr << PoolInitPoints[i]->getParent()->getName() << " ");
-  }
-
-  DEBUG(std::cerr << "\n  Destroy in blocks: ");
-
-  // Loop over all of the places to insert pooldestroy's...
-  for (unsigned i = 0, e = PoolDestroyPoints.size(); i != e; ++i) {
-    // Insert the pooldestroy call for this pool.
-    new CallInst(PoolDestroy, PD, "", PoolDestroyPoints[i]);
-    DEBUG(std::cerr << PoolDestroyPoints[i]->getParent()->getName()<<" ");
-  }
-  DEBUG(std::cerr << "\n\n");
-
-  // We are allowed to delete any poolfree's which occur between the last
-  // call to poolalloc, and the call to pooldestroy.  Figure out which
-  // basic blocks have this property for this pool.
-  std::set<BasicBlock*> PoolFreeLiveBlocks;
-  if (!DisablePoolFreeOpt)
-    CalculateLivePoolFreeBlocks(PoolFreeLiveBlocks, PD);
-  else
-    PoolFreeLiveBlocks = LiveBlocks;
-
-  // Delete any pool frees which are not in live blocks, for correctness.
-  std::multimap<AllocaInst*, CallInst*>::iterator PFI, PFE;
-  for (tie(PFI,PFE) = PoolFrees.equal_range(PD); PFI != PFE; ) {
-    CallInst *PoolFree = (PFI++)->second;
-    if (!LiveBlocks.count(PoolFree->getParent()) ||
-        !PoolFreeLiveBlocks.count(PoolFree->getParent()))
-      DeleteIfIsPoolFree(PoolFree, PD, PoolFrees);
-  }
-}
-
-
-/// InitializeAndDestroyPools - This inserts calls to poolinit and pooldestroy
-/// into the function to initialize and destroy the pools in the NodesToPA list.
-///
-void PoolAllocate::InitializeAndDestroyPools(Function &F,
-                               const std::vector<const DSNode*> &NodesToPA,
-                          std::map<const DSNode*, Value*> &PoolDescriptors,
-                          std::multimap<AllocaInst*, Instruction*> &PoolUses,
-                          std::multimap<AllocaInst*, CallInst*> &PoolFrees) {
-  std::set<AllocaInst*> AllocasHandled;
-
-  // Insert all of the poolinit/destroy calls into the function.
-  for (unsigned i = 0, e = NodesToPA.size(); i != e; ++i) {
-    const DSNode *Node = NodesToPA[i];
-
-    if (isa<GlobalVariable>(PoolDescriptors[Node]) ||
-        isa<ConstantPointerNull>(PoolDescriptors[Node]))
-      continue;
-
-    assert(isa<AllocaInst>(PoolDescriptors[Node]) && "Why pool allocate this?");
-    AllocaInst *PD = cast<AllocaInst>(PoolDescriptors[Node]);
-    
-    // FIXME: Turn this into an assert and fix the problem!!
-    //assert(PoolUses.count(PD) && "Pool is not used, but is marked heap?!");
-    if (!PoolUses.count(PD) && !PoolFrees.count(PD)) continue;
-    if (!AllocasHandled.insert(PD).second) continue;
-    
-    ++NumPools;
-    if (!Node->isNodeCompletelyFolded())
-      ++NumTSPools;
-    
-    InitializeAndDestroyPool(F, Node, PoolDescriptors, PoolUses, PoolFrees);
-  }
-}
diff --git a/poolalloc/lib/PoolAllocate/PoolOptimize.cpp b/poolalloc/lib/PoolAllocate/PoolOptimize.cpp
deleted file mode 100644
index 9d5f6be..0000000
--- a/poolalloc/lib/PoolAllocate/PoolOptimize.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-//===-- PoolOptimize.cpp - Optimize pool allocated program ----------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This simple pass optimizes a program that has been through pool allocation.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Pass.h"
-#include "llvm/Module.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-#include <set>
-using namespace llvm;
-
-namespace {
-  STATISTIC (NumBumpPtr, "Number of bump pointer pools");
-
-  struct PoolOptimize : public ModulePass {
-    bool runOnModule(Module &M);
-  };
-
-  RegisterPass<PoolOptimize>
-  X("pooloptimize", "Optimize a pool allocated program");
-}
-
-static void getCallsOf(Constant *C, std::vector<CallInst*> &Calls) {
-  // Get the Function out of the constant
-  Function * F;
-  ConstantExpr * CE;
-  if (!(F=dyn_cast<Function>(C)))
-    if ((CE = dyn_cast<ConstantExpr>(C)) && (CE->isCast()))
-      F = dyn_cast<Function>(CE->getOperand(0));
-    else
-      assert (0 && "Constant is not a Function of ConstantExpr!"); 
-  Calls.clear();
-  for (Value::use_iterator UI = F->use_begin(), E = F->use_end(); UI != E; ++UI)
-    Calls.push_back(cast<CallInst>(*UI));
-}
-
-bool PoolOptimize::runOnModule(Module &M) {
-  const Type *VoidPtrTy = PointerType::get(Type::Int8Ty);
-  const Type *PoolDescPtrTy = PointerType::get(ArrayType::get(VoidPtrTy, 16));
-
-
-  // Get poolinit function.
-  Constant *PoolInit = M.getOrInsertFunction("poolinit", Type::VoidTy,
-                                             PoolDescPtrTy, Type::Int32Ty,
-                                             Type::Int32Ty, NULL);
-
-  // Get pooldestroy function.
-  Constant *PoolDestroy = M.getOrInsertFunction("pooldestroy", Type::VoidTy,
-                                                PoolDescPtrTy, NULL);
-  
-  // The poolalloc function.
-  Constant *PoolAlloc = M.getOrInsertFunction("poolalloc", 
-                                              VoidPtrTy, PoolDescPtrTy,
-                                              Type::Int32Ty, NULL);
-  
-  // The poolrealloc function.
-  Constant *PoolRealloc = M.getOrInsertFunction("poolrealloc",
-                                                VoidPtrTy, PoolDescPtrTy,
-                                                VoidPtrTy, Type::Int32Ty, NULL);
-  // The poolmemalign function.
-  Constant *PoolMemAlign = M.getOrInsertFunction("poolmemalign",
-                                                 VoidPtrTy, PoolDescPtrTy,
-                                                 Type::Int32Ty, Type::Int32Ty, 
-                                                 NULL);
-
-  // Get the poolfree function.
-  Constant *PoolFree = M.getOrInsertFunction("poolfree", Type::VoidTy,
-                                             PoolDescPtrTy, VoidPtrTy, NULL);  
-
-
-  // Get poolinit_bp function.
-  Constant *PoolInitBP = M.getOrInsertFunction("poolinit_bp", Type::VoidTy,
-                                               PoolDescPtrTy, Type::Int32Ty, 
-                                               NULL);
-  
-  // Get pooldestroy_bp function.
-  Constant *PoolDestroyBP = M.getOrInsertFunction("pooldestroy_bp",Type::VoidTy,
-                                                 PoolDescPtrTy, NULL);
-  
-  // The poolalloc_bp function.
-  Constant *PoolAllocBP = M.getOrInsertFunction("poolalloc_bp", 
-                                                VoidPtrTy, PoolDescPtrTy,
-                                                Type::Int32Ty, NULL);
-
-  Constant *Realloc = M.getOrInsertFunction("realloc",
-                                            VoidPtrTy, VoidPtrTy, Type::Int32Ty,
-                                            NULL);
-  Constant *MemAlign = M.getOrInsertFunction("memalign",
-                                             VoidPtrTy, Type::Int32Ty,
-                                             Type::Int32Ty, NULL);
-
-
-  // Optimize poolreallocs
-  std::vector<CallInst*> Calls;
-  getCallsOf(PoolRealloc, Calls);
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i) {
-    CallInst *CI = Calls[i];
-    // poolrealloc(PD, null, X) -> poolalloc(PD, X)
-    if (isa<ConstantPointerNull>(CI->getOperand(2))) {
-      Value *New = new CallInst(PoolAlloc, CI->getOperand(1), CI->getOperand(3),
-                                CI->getName(), CI);
-      CI->replaceAllUsesWith(New);
-      CI->eraseFromParent();
-    } else if (isa<Constant>(CI->getOperand(3)) && 
-               cast<Constant>(CI->getOperand(3))->isNullValue()) {
-      // poolrealloc(PD, X, 0) -> poolfree(PD, X)
-      new CallInst(PoolFree, CI->getOperand(1), CI->getOperand(2), "", CI);
-      CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
-      CI->eraseFromParent();
-    } else if (isa<ConstantPointerNull>(CI->getOperand(1))) {
-      // poolrealloc(null, X, Y) -> realloc(X, Y)
-      Value *New = new CallInst(Realloc, CI->getOperand(2), CI->getOperand(3),
-                                CI->getName(), CI);
-      CI->replaceAllUsesWith(New);
-      CI->eraseFromParent();
-    }
-  }
-
-  // Optimize poolallocs
-  getCallsOf(PoolAlloc, Calls);
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i) {
-    CallInst *CI = Calls[i];
-    // poolalloc(null, X) -> malloc(X)
-    if (isa<Constant>(CI->getOperand(1)) && 
-        cast<Constant>(CI->getOperand(1))->isNullValue()) {
-      Value *New = new MallocInst(Type::Int8Ty, CI->getOperand(2),
-                                  CI->getName(), CI);
-      CI->replaceAllUsesWith(New);
-      CI->eraseFromParent();
-    }
-  }
-
-  // Optimize poolmemaligns
-  getCallsOf(PoolMemAlign, Calls);
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i) {
-    CallInst *CI = Calls[i];
-    // poolmemalign(null, X, Y) -> memalign(X, Y)
-    if (isa<ConstantPointerNull>(CI->getOperand(1))) {
-      Value *New = new CallInst(MemAlign, CI->getOperand(2), CI->getOperand(3), CI->getName(), CI);
-      CI->replaceAllUsesWith(New);
-      CI->eraseFromParent();
-    }
-  }
-
-  // Optimize poolfrees
-  getCallsOf(PoolFree, Calls);
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i) {
-    CallInst *CI = Calls[i];
-    // poolfree(PD, null) -> noop
-    if (isa<ConstantPointerNull>(CI->getOperand(2)))
-      CI->eraseFromParent();
-    else if (isa<ConstantPointerNull>(CI->getOperand(1))) {
-      // poolfree(null, Ptr) -> free(Ptr)
-      new FreeInst(CI->getOperand(2), CI);
-      CI->eraseFromParent();
-    }
-  }
-      
-  // Transform pools that only have poolinit/destroy/allocate uses into
-  // bump-pointer pools.  Also, delete pools that are unused.  Find pools by
-  // looking for pool inits in the program.
-  getCallsOf(PoolInit, Calls);
-  std::set<Value*> Pools;
-  for (unsigned i = 0, e = Calls.size(); i != e; ++i)
-    Pools.insert(Calls[i]->getOperand(1));
-
-  // Loop over all of the pools processing each as we find it.
-  for (std::set<Value*>::iterator PI = Pools.begin(), E = Pools.end();
-       PI != E; ++PI) {
-    bool HasPoolAlloc = false, HasOtherUse = false;
-    Value *PoolDesc = *PI;
-    for (Value::use_iterator UI = PoolDesc->use_begin(),
-           E = PoolDesc->use_end(); UI != E; ++UI) {
-      if (CallInst *CI = dyn_cast<CallInst>(*UI)) {
-        if (CI->getCalledFunction() == PoolInit ||
-            CI->getCalledFunction() == PoolDestroy) {
-          // ignore
-        } else if (CI->getCalledFunction() == PoolAlloc) {
-          HasPoolAlloc = true;
-        } else {
-          HasOtherUse = true;
-          break;
-        }
-      } else {
-        HasOtherUse = true;
-        break;
-      }
-    }
-
-    // Can we optimize it?
-    if (!HasOtherUse) {
-      // Yes, if there are uses at all, nuke the pool init, destroy, and the PD.
-      if (!HasPoolAlloc) {
-        while (!PoolDesc->use_empty())
-          cast<Instruction>(PoolDesc->use_back())->eraseFromParent();
-        if (AllocaInst *AI = dyn_cast<AllocaInst>(PoolDesc))
-          AI->eraseFromParent();
-        else
-          cast<GlobalVariable>(PoolDesc)->eraseFromParent();
-      } else {
-        // Convert all of the pool descriptor users to the BumpPtr flavor.
-        std::vector<User*> PDUsers(PoolDesc->use_begin(), PoolDesc->use_end());
-        
-        while (!PDUsers.empty()) {
-          CallInst *CI = cast<CallInst>(PDUsers.back());
-          PDUsers.pop_back();
-          std::vector<Value*> Args;
-          if (CI->getCalledFunction() == PoolAlloc) {
-            Args.assign(CI->op_begin()+1, CI->op_end());
-            Value *New = new CallInst(PoolAllocBP, &Args[0], Args.size(), CI->getName(), CI);
-            CI->replaceAllUsesWith(New);
-            CI->eraseFromParent();
-          } else if (CI->getCalledFunction() == PoolInit) {
-            Args.assign(CI->op_begin()+1, CI->op_end());
-            Args.erase(Args.begin()+1); // Drop the size argument.
-            new CallInst(PoolInitBP, &Args[0], Args.size(), "", CI);
-            CI->eraseFromParent();
-          } else {
-            assert(CI->getCalledFunction() == PoolDestroy);
-            Args.assign(CI->op_begin()+1, CI->op_end());
-            new CallInst(PoolDestroyBP, &Args[0], Args.size(), "", CI);
-            CI->eraseFromParent();
-          }
-        }
-        ++NumBumpPtr;
-      }
-    }
-  }
-  return true;
-}
diff --git a/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp b/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp
deleted file mode 100644
index aa616c3..0000000
--- a/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp
+++ /dev/null
@@ -1,720 +0,0 @@
-//===-- TransformFunctionBody.cpp - Pool Function Transformer -------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the PoolAllocate::TransformBody method.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "PoolAllocator"
-
-#include "dsa/DataStructure.h"
-#include "dsa/DSGraph.h"
-#include "dsa/CallTargets.h"
-#include "poolalloc/PoolAllocate.h"
-#include "llvm/Module.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/InstVisitor.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/ADT/VectorExtras.h"
-#include <iostream>
-using namespace llvm;
-using namespace PA;
-
-namespace {
-  /// FuncTransform - This class implements transformation required of pool
-  /// allocated functions.
-  struct FuncTransform : public InstVisitor<FuncTransform> {
-    PoolAllocate &PAInfo;
-    DSGraph &G;      // The Bottom-up DS Graph
-    FuncInfo &FI;
-    CallTargetFinder* CTF;
-
-    // PoolUses - For each pool (identified by the pool descriptor) keep track
-    // of which blocks require the memory in the pool to not be freed.  This
-    // does not include poolfree's.  Note that this is only tracked for pools
-    // which this is the home of, ie, they are Alloca instructions.
-    std::multimap<AllocaInst*, Instruction*> &PoolUses;
-
-    // PoolDestroys - For each pool, keep track of the actual poolfree calls
-    // inserted into the code.  This is seperated out from PoolUses.
-    std::multimap<AllocaInst*, CallInst*> &PoolFrees;
-
-    FuncTransform(PoolAllocate &P, DSGraph &g, FuncInfo &fi,
-                  std::multimap<AllocaInst*, Instruction*> &poolUses,
-                  std::multimap<AllocaInst*, CallInst*> &poolFrees,
-		  CallTargetFinder* ctf)
-      : PAInfo(P), G(g), FI(fi), CTF(ctf),
-        PoolUses(poolUses), PoolFrees(poolFrees) {
-    }
-
-    template <typename InstType, typename SetType>
-    void AddPoolUse(InstType &I, Value *PoolHandle, SetType &Set) {
-      if (AllocaInst *AI = dyn_cast<AllocaInst>(PoolHandle))
-        Set.insert(std::make_pair(AI, &I));
-    }
-
-    void visitInstruction(Instruction &I);
-    void visitMallocInst(MallocInst &MI);
-    void visitAllocaInst(AllocaInst &MI);
-    void visitCallocCall(CallSite CS);
-    void visitReallocCall(CallSite CS);
-    void visitMemAlignCall(CallSite CS);
-    void visitFreeInst(FreeInst &FI);
-    void visitCallSite(CallSite CS);
-    void visitCallInst(CallInst &CI) { visitCallSite(&CI); }
-    void visitInvokeInst(InvokeInst &II) { visitCallSite(&II); }
-    void visitLoadInst(LoadInst &I);
-    void visitStoreInst (StoreInst &I);
-
-  private:
-    Instruction *TransformAllocationInstr(Instruction *I, Value *Size);
-    Instruction *InsertPoolFreeInstr(Value *V, Instruction *Where);
-
-    void UpdateNewToOldValueMap(Value *OldVal, Value *NewV1, Value *NewV2 = 0) {
-      std::map<Value*, const Value*>::iterator I =
-        FI.NewToOldValueMap.find(OldVal);
-      assert(I != FI.NewToOldValueMap.end() && "OldVal not found in clone?");
-      FI.NewToOldValueMap.insert(std::make_pair(NewV1, I->second));
-      if (NewV2)
-        FI.NewToOldValueMap.insert(std::make_pair(NewV2, I->second));
-      FI.NewToOldValueMap.erase(I);
-    }
-
-    Value* getOldValueIfAvailable(Value* V) {
-      if (!FI.NewToOldValueMap.empty()) {
-        // If the NewToOldValueMap is in effect, use it.
-        std::map<Value*,const Value*>::iterator I = FI.NewToOldValueMap.find(V);
-        if (I != FI.NewToOldValueMap.end())
-          V = (Value*)I->second;
-      }
-      return V;
-    }
-
-    DSNodeHandle& getDSNodeHFor(Value *V) {
-      return G.getScalarMap()[getOldValueIfAvailable(V)];
-    }
-
-    Value *getPoolHandle(Value *V) {
-      DSNode *Node = getDSNodeHFor(V).getNode();
-      // Get the pool handle for this DSNode...
-      std::map<const DSNode*, Value*>::iterator I =
-        FI.PoolDescriptors.find(Node);
-      return I != FI.PoolDescriptors.end() ? I->second : 0;
-    }
-    
-    Function* retCloneIfFunc(Value *V);
-  };
-}
-
-void PoolAllocate::TransformBody(DSGraph &g, PA::FuncInfo &fi,
-                              std::multimap<AllocaInst*,Instruction*> &poolUses,
-                              std::multimap<AllocaInst*, CallInst*> &poolFrees,
-                                 Function &F) {
-  FuncTransform(*this, g, fi, poolUses, poolFrees, CTF).visit(F);
-}
-
-
-// Returns the clone if  V is a static function (not a pointer) and belongs 
-// to an equivalence class i.e. is pool allocated
-Function* FuncTransform::retCloneIfFunc(Value *V) {
-  if (Function *F = dyn_cast<Function>(V))
-    if (FuncInfo *FI = PAInfo.getFuncInfo(*F))
-      return FI->Clone;
-
-  return 0;
-}
-
-void FuncTransform::visitLoadInst(LoadInst &LI) {
-  if (Value *PH = getPoolHandle(LI.getOperand(0)))
-    AddPoolUse(LI, PH, PoolUses);
-  visitInstruction(LI);
-}
-
-void FuncTransform::visitStoreInst(StoreInst &SI) {
-  if (Value *PH = getPoolHandle(SI.getOperand(1)))
-    AddPoolUse(SI, PH, PoolUses);
-  visitInstruction(SI);
-}
-
-Instruction *FuncTransform::TransformAllocationInstr(Instruction *I,
-                                                     Value *Size) {
-  std::string Name = I->getName(); I->setName("");
-
-  if (Size->getType() != Type::Int32Ty)
-    Size = CastInst::createIntegerCast(Size, Type::Int32Ty, false, Size->getName(), I);
-
-  // Insert a call to poolalloc
-  Value *PH = getPoolHandle(I);
-  
-  Instruction *V = new CallInst(PAInfo.PoolAlloc, PH, Size, Name, I);
-
-  AddPoolUse(*V, PH, PoolUses);
-
-  // Cast to the appropriate type if necessary
-  Instruction *Casted = V;
-  if (V->getType() != I->getType())
-    Casted = CastInst::createPointerCast(V, I->getType(), V->getName(), I);
-    
-  // Update def-use info
-  I->replaceAllUsesWith(Casted);
-
-  // If we are modifying the original function, update the DSGraph.
-  if (!FI.Clone) {
-    // V and Casted now point to whatever the original allocation did.
-    G.getScalarMap().replaceScalar(I, V);
-    if (V != Casted)
-      G.getScalarMap()[Casted] = G.getScalarMap()[V];
-  } else {             // Otherwise, update the NewToOldValueMap
-    UpdateNewToOldValueMap(I, V, V != Casted ? Casted : 0);
-  }
-
-  // If this was an invoke, fix up the CFG.
-  if (InvokeInst *II = dyn_cast<InvokeInst>(I)) {
-    new BranchInst(II->getNormalDest(), I);
-    II->getUnwindDest()->removePredecessor(II->getParent(), true);
-  }
-
-  // Remove old allocation instruction.
-  I->eraseFromParent();
-  return Casted;
-}
-
-
-void FuncTransform::visitMallocInst(MallocInst &MI) {
-  // Get the pool handle for the node that this contributes to...
-  Value *PH = getPoolHandle(&MI);
-  
-  if (PH == 0 || isa<ConstantPointerNull>(PH)) return;
-
-  TargetData &TD = PAInfo.getAnalysis<TargetData>();
-  Value *AllocSize =
-    ConstantInt::get(Type::Int32Ty, TD.getTypeSize(MI.getAllocatedType()));
-
-  if (MI.isArrayAllocation())
-    AllocSize = BinaryOperator::create(Instruction::Mul, AllocSize,
-                                       MI.getOperand(0), "sizetmp", &MI);
-#ifdef SAFECODE
-  const MallocInst *originalMalloc = &MI;
-  if (FI.NewToOldValueMap.count(&MI)) {
-    originalMalloc = cast<MallocInst>(FI.NewToOldValueMap[&MI]);
-  }
-  //Dinakar to test stack safety & array safety 
-  if (PAInfo.CUAPass->ArrayMallocs.find(originalMalloc) ==
-      PAInfo.CUAPass->ArrayMallocs.end()) {
-    TransformAllocationInstr(&MI, AllocSize);
-  } else {
-    AllocaInst *AI = new AllocaInst(MI.getType()->getElementType(), MI.getArraySize(), MI.getName(), MI.getNext());
-    MI.replaceAllUsesWith(AI);
-    MI.getParent()->getInstList().erase(&MI);
-    Value *Casted = AI;
-    Instruction *aiNext = AI->getNext();
-    if (AI->getType() != PointerType::get(Type::Int8Ty))
-      Casted = CastInst::createPointerCast(AI, PointerType::get(Type::Int8Ty),
-			      AI->getName()+".casted",aiNext);
-    
-    Instruction *V = new CallInst(PAInfo.PoolRegister,
-				  make_vector(PH, AllocSize, Casted, 0), "", aiNext);
-    AddPoolUse(*V, PH, PoolUses);
-  }
-#else
-  TransformAllocationInstr(&MI, AllocSize);  
-#endif
-}
-
-void FuncTransform::visitAllocaInst(AllocaInst &MI) {
-#ifdef BOUNDS_CHECK
-  // Get the pool handle for the node that this contributes to...
-  DSNode *Node = getDSNodeHFor(&MI).getNode();
-  if (Node->isArray()) {
-    Value *PH = getPoolHandle(&MI);
-    if (PH == 0 || isa<ConstantPointerNull>(PH)) return;
-    TargetData &TD = PAInfo.getAnalysis<TargetData>();
-    Value *AllocSize =
-      ConstantInt::get(Type::Int32Ty, TD.getTypeSize(MI.getAllocatedType()));
-    
-    if (MI.isArrayAllocation())
-      AllocSize = BinaryOperator::create(Instruction::Mul, AllocSize,
-					 MI.getOperand(0), "sizetmp", &MI);
-    
-    //  TransformAllocationInstr(&MI, AllocSize);
-    Instruction *Casted = CastInst::createPointerCast(&MI, PointerType::get(Type::Int8Ty),
-				       MI.getName()+".casted", MI.getNext());
-    Instruction *V = new CallInst(PAInfo.PoolRegister,
-				  make_vector(PH, Casted, AllocSize, 0), "", Casted->getNext());
-    AddPoolUse(*V, PH, PoolUses);
-  }
-#endif  
-}
-
-
-Instruction *FuncTransform::InsertPoolFreeInstr(Value *Arg, Instruction *Where){
-  Value *PH = getPoolHandle(Arg);  // Get the pool handle for this DSNode...
-  if (PH == 0 || isa<ConstantPointerNull>(PH)) return 0;
-
-  // Insert a cast and a call to poolfree...
-  Value *Casted = Arg;
-  if (Arg->getType() != PointerType::get(Type::Int8Ty)) {
-    Casted = CastInst::createPointerCast(Arg, PointerType::get(Type::Int8Ty),
-				 Arg->getName()+".casted", Where);
-    G.getScalarMap()[Casted] = G.getScalarMap()[Arg];
-  }
-
-  CallInst *FreeI = new CallInst(PAInfo.PoolFree, PH, Casted, "", Where);
-  AddPoolUse(*FreeI, PH, PoolFrees);
-  return FreeI;
-}
-
-
-void FuncTransform::visitFreeInst(FreeInst &FrI) {
-  if (Instruction *I = InsertPoolFreeInstr(FrI.getOperand(0), &FrI)) {
-    // Delete the now obsolete free instruction...
-    FrI.getParent()->getInstList().erase(&FrI);
- 
-    // Update the NewToOldValueMap if this is a clone
-    if (!FI.NewToOldValueMap.empty()) {
-      std::map<Value*,const Value*>::iterator II =
-        FI.NewToOldValueMap.find(&FrI);
-      assert(II != FI.NewToOldValueMap.end() && 
-             "FrI not found in clone?");
-      FI.NewToOldValueMap.insert(std::make_pair(I, II->second));
-      FI.NewToOldValueMap.erase(II);
-    }
-  }
-}
-
-
-void FuncTransform::visitCallocCall(CallSite CS) {
-  TargetData& TD = PAInfo.getAnalysis<TargetData>();
-  bool useLong = TD.getTypeSize(PointerType::get(Type::Int8Ty)) != 4;
-  
-  Module *M = CS.getInstruction()->getParent()->getParent()->getParent();
-  assert(CS.arg_end()-CS.arg_begin() == 2 && "calloc takes two arguments!");
-  Value *V1 = CS.getArgument(0);
-  Value *V2 = CS.getArgument(1);
-  if (V1->getType() != V2->getType()) {
-    V1 = CastInst::createZExtOrBitCast(V1, useLong ? Type::Int64Ty : Type::Int32Ty, V1->getName(), CS.getInstruction());
-    V2 = CastInst::createZExtOrBitCast(V2, useLong ? Type::Int64Ty : Type::Int32Ty, V2->getName(), CS.getInstruction());
-  }
-
-  V2 = BinaryOperator::create(Instruction::Mul, V1, V2, "size",
-                              CS.getInstruction());
-  if (V2->getType() != (useLong ? Type::Int64Ty : Type::Int32Ty))
-    V2 = CastInst::createZExtOrBitCast(V2, useLong ? Type::Int64Ty : Type::Int32Ty, V2->getName(), CS.getInstruction());
-
-  BasicBlock::iterator BBI =
-    TransformAllocationInstr(CS.getInstruction(), V2);
-  Value *Ptr = BBI++;
-
-  // We just turned the call of 'calloc' into the equivalent of malloc.  To
-  // finish calloc, we need to zero out the memory.
-  Constant *MemSet =  M->getOrInsertFunction((useLong ? "llvm.memset.i64" : "llvm.memset.i32"),
-                                             Type::VoidTy,
-                                             PointerType::get(Type::Int8Ty),
-                                             Type::Int8Ty, (useLong ? Type::Int64Ty : Type::Int32Ty),
-                                             Type::Int32Ty, NULL);
-
-  if (Ptr->getType() != PointerType::get(Type::Int8Ty))
-    Ptr = CastInst::createPointerCast(Ptr, PointerType::get(Type::Int8Ty), Ptr->getName(),
-                       BBI);
-  
-  // We know that the memory returned by poolalloc is at least 4 byte aligned.
-  Value* Opts[4] = {Ptr, ConstantInt::get(Type::Int8Ty, 0),
-                    V2,  ConstantInt::get(Type::Int32Ty, 4)};
-  new CallInst(MemSet, Opts, 4, "", BBI);
-}
-
-
-void FuncTransform::visitReallocCall(CallSite CS) {
-  assert(CS.arg_end()-CS.arg_begin() == 2 && "realloc takes two arguments!");
-  Instruction *I = CS.getInstruction();
-  Value *PH = getPoolHandle(I);
-  Value *OldPtr = CS.getArgument(0);
-  Value *Size = CS.getArgument(1);
-
-  if (Size->getType() != Type::Int32Ty)
-    Size = CastInst::createIntegerCast(Size, Type::Int32Ty, false, Size->getName(), I);
-
-  static Type *VoidPtrTy = PointerType::get(Type::Int8Ty);
-  if (OldPtr->getType() != VoidPtrTy)
-    OldPtr = CastInst::createPointerCast(OldPtr, VoidPtrTy, OldPtr->getName(), I);
-
-  std::string Name = I->getName(); I->setName("");
-  Value* Opts[3] = {PH, OldPtr, Size};
-  Instruction *V = new CallInst(PAInfo.PoolRealloc, Opts, 3, Name, I);
-  Instruction *Casted = V;
-  if (V->getType() != I->getType())
-    Casted = CastInst::createPointerCast(V, I->getType(), V->getName(), I);
-
-  // Update def-use info
-  I->replaceAllUsesWith(Casted);
-
-  // If we are modifying the original function, update the DSGraph.
-  if (!FI.Clone) {
-    // V and Casted now point to whatever the original allocation did.
-    G.getScalarMap().replaceScalar(I, V);
-    if (V != Casted)
-      G.getScalarMap()[Casted] = G.getScalarMap()[V];
-  } else {             // Otherwise, update the NewToOldValueMap
-    UpdateNewToOldValueMap(I, V, V != Casted ? Casted : 0);
-  }
-
-  // If this was an invoke, fix up the CFG.
-  if (InvokeInst *II = dyn_cast<InvokeInst>(I)) {
-    new BranchInst(II->getNormalDest(), I);
-    II->getUnwindDest()->removePredecessor(II->getParent(), true);
-  }
-
-  // Remove old allocation instruction.
-  I->eraseFromParent();
-}
-
-
-/// visitMemAlignCall - Handle memalign and posix_memalign.
-///
-void FuncTransform::visitMemAlignCall(CallSite CS) {
-  Instruction *I = CS.getInstruction();
-  Value *ResultDest = 0;
-  Value *Align = 0;
-  Value *Size = 0;
-  Value *PH;
-
-  if (CS.getCalledFunction()->getName() == "memalign") {
-    Align = CS.getArgument(0);
-    Size = CS.getArgument(1);
-    PH = getPoolHandle(I);
-  } else {
-    assert(CS.getCalledFunction()->getName() == "posix_memalign");
-    ResultDest = CS.getArgument(0);
-    Align   = CS.getArgument(1);
-    Size    = CS.getArgument(2);
-
-    assert(0 && "posix_memalign not implemented fully!");
-    // We need to get the pool descriptor corresponding to *ResultDest.
-    PH = getPoolHandle(I);
-
-    // Return success always.
-    Value *RetVal = Constant::getNullValue(I->getType());
-    I->replaceAllUsesWith(RetVal);
-
-    static const Type *PtrPtr=PointerType::get(PointerType::get(Type::Int8Ty));
-    if (ResultDest->getType() != PtrPtr)
-      ResultDest = CastInst::createPointerCast(ResultDest, PtrPtr, ResultDest->getName(), I);
-  }
-
-  if (Align->getType() != Type::Int32Ty)
-    Align = CastInst::createIntegerCast(Align, Type::Int32Ty, false, Align->getName(), I);
-  if (Size->getType() != Type::Int32Ty)
-    Size = CastInst::createIntegerCast(Size, Type::Int32Ty, false, Size->getName(), I);
-
-  std::string Name = I->getName(); I->setName("");
-  Value* Opts[3] = {PH, Align, Size};
-  Instruction *V = new CallInst(PAInfo.PoolMemAlign, Opts, 3, Name, I);
-
-  Instruction *Casted = V;
-  if (V->getType() != I->getType())
-    Casted = CastInst::createPointerCast(V, I->getType(), V->getName(), I);
-
-  if (ResultDest)
-    new StoreInst(V, ResultDest, I);
-  else
-    I->replaceAllUsesWith(Casted);
-
-  // If we are modifying the original function, update the DSGraph.
-  if (!FI.Clone) {
-    // V and Casted now point to whatever the original allocation did.
-    G.getScalarMap().replaceScalar(I, V);
-    if (V != Casted)
-      G.getScalarMap()[Casted] = G.getScalarMap()[V];
-  } else {             // Otherwise, update the NewToOldValueMap
-    UpdateNewToOldValueMap(I, V, V != Casted ? Casted : 0);
-  }
-
-  // If this was an invoke, fix up the CFG.
-  if (InvokeInst *II = dyn_cast<InvokeInst>(I)) {
-    new BranchInst(II->getNormalDest(), I);
-    II->getUnwindDest()->removePredecessor(II->getParent(), true);
-  }
-
-  // Remove old allocation instruction.
-  I->eraseFromParent();
-}
-
-
-
-void FuncTransform::visitCallSite(CallSite CS) {
-  Function *CF = CS.getCalledFunction();
-  Instruction *TheCall = CS.getInstruction();
-
-  // If the called function is casted from one function type to another, peer
-  // into the cast instruction and pull out the actual function being called.
-  if (ConstantExpr *CE = dyn_cast<ConstantExpr>(CS.getCalledValue()))
-    if (CE->getOpcode() == Instruction::BitCast &&
-        isa<Function>(CE->getOperand(0)))
-      CF = cast<Function>(CE->getOperand(0));
-
-  if (isa<InlineAsm>(TheCall->getOperand(0))) {
-    std::cerr << "INLINE ASM: ignoring.  Hoping that's safe.\n";
-    return;
-  }
-
-  // If this function is one of the memory manipulating functions built into
-  // libc, emulate it with pool calls as appropriate.
-  if (CF && CF->isDeclaration())
-    if (CF->getName() == "calloc") {
-      visitCallocCall(CS);
-      return;
-    } else if (CF->getName() == "realloc") {
-      visitReallocCall(CS);
-      return;
-    } else if (CF->getName() == "memalign" ||
-               CF->getName() == "posix_memalign") {
-      visitMemAlignCall(CS);
-      return;
-    } else if (CF->getName() == "strdup") {
-      assert(0 && "strdup should have been linked into the program!");
-    } else if (CF->getName() == "valloc") {
-      std::cerr << "VALLOC USED BUT NOT HANDLED!\n";
-      abort();
-    }
-
-  // We need to figure out which local pool descriptors correspond to the pool
-  // descriptor arguments passed into the function call.  Calculate a mapping
-  // from callee DSNodes to caller DSNodes.  We construct a partial isomophism
-  // between the graphs to figure out which pool descriptors need to be passed
-  // in.  The roots of this mapping is found from arguments and return values.
-  //
-  EquivClassGraphs& ECGraphs = PAInfo.getECGraphs();
-  DSGraph::NodeMapTy NodeMapping;
-  Instruction *NewCall;
-  Value *NewCallee;
-  std::vector<const DSNode*> ArgNodes;
-  DSGraph *CalleeGraph;  // The callee graph
-
-  // For indirect callees find any callee since all DS graphs have been merged.
-  if (CF) {   // Direct calls are nice and simple.
-    DEBUG(std::cerr << "  Handling direct call: " << *TheCall);
-    FuncInfo *CFI = PAInfo.getFuncInfo(*CF);
-    if (CFI == 0 || CFI->Clone == 0) {   // Nothing to transform...
-      visitInstruction(*TheCall);
-      return;
-    }
-    NewCallee = CFI->Clone;
-    ArgNodes = CFI->ArgNodes;
-    
-    CalleeGraph = &ECGraphs.getDSGraph(*CF);
-  } else {
-    DEBUG(std::cerr << "  Handling indirect call: " << *TheCall);
-    
-    // Here we fill in CF with one of the possible called functions.  Because we
-    // merged together all of the arguments to all of the functions in the
-    // equivalence set, it doesn't really matter which one we pick.
-    // (If the function was cloned, we have to map the cloned call instruction
-    // in CS back to the original call instruction.)
-    Instruction *OrigInst =
-      cast<Instruction>(getOldValueIfAvailable(CS.getInstruction()));
-    CF = isa<CallInst>(OrigInst)?
-      ECGraphs.getSomeCalleeForCallSite(cast<CallInst>(OrigInst)) :
-      ECGraphs.getSomeCalleeForCallSite(cast<InvokeInst>(OrigInst));
-
-    if (!CF) 
-      for (EquivClassGraphs::callee_iterator I = ECGraphs.callee_begin(OrigInst), 
-	     E = ECGraphs.callee_end(OrigInst); I != E; ++I)
-	if (I->second) {
-	  CF = I->second;
-	  break;
-	}
-
-    // If we didn't find the callee in the constructed call graph, try
-    // checking in the DSNode itself.
-    // This isn't ideal as it means that this call site didn't have inlining
-    // happen.
-    if (!CF) {
-      DSGraph* dg = &ECGraphs.getDSGraph(*OrigInst->getParent()->getParent());
-      DSNode* d = dg->getNodeForValue(OrigInst->getOperand(0)).getNode();
-      const std::vector<GlobalValue*> &g = d->getGlobalsList();
-      for(std::vector<GlobalValue*>::const_iterator ii = g.begin(), ee = g.end();
-	  !CF && ii != ee; ++ii) {
-        EquivalenceClasses< GlobalValue *> & EC = ECGraphs.getGlobalECs();
-        for (EquivalenceClasses<GlobalValue *>::member_iterator MI = EC.findLeader(*ii);
-             MI != EC.member_end(); ++MI)   // Loop over members in this set.
-          if ((CF = dyn_cast<Function>(*MI))) {
-	    std::cerr << "\n***\nPA: *** WARNING (FuncTransform::visitCallSite): "
-		      << "Using DSNode for callees for call-site in function "
-		      << CS.getCaller()->getName() << "\n***\n";
- 	    break;
-	  }
-      }
-    }
-
-    if (!CF && CTF) {
-      std::cerr << "\nPA: Last Resort TD Indirect Resolve in " << CS.getCaller()->getName() << "\n";
-      CF = *CTF->begin(isa<CallInst>(OrigInst)?CallSite(cast<CallInst>(OrigInst))
-		       :CallSite(cast<InvokeInst>(OrigInst)));
-      if (CF) std::cerr << "TD resolved to " << CF->getName() << "\n";
-    }
-
-    if (!CF) {
-      // FIXME: Unknown callees for a call-site. Warn and ignore.
-      std::cerr << "\n***\nPA: *** WARNING (FuncTransform::visitCallSite): "
-                << "Unknown callees for call-site in function "
-                << CS.getCaller()->getName() << "\n***\n";
-      return;
-    }
-
-    // Get the common graph for the set of functions this call may invoke.
-    CalleeGraph = &ECGraphs.getDSGraph(*CF);
-    
-#ifndef NDEBUG
-    // Verify that all potential callees at call site have the same DS graph.
-    EquivClassGraphs::callee_iterator I =
-      ECGraphs.callee_begin(OrigInst), E = ECGraphs.callee_end(OrigInst);
-    for (; I != E; ++I)
-      if (!I->second->isDeclaration())
-        assert(CalleeGraph == &ECGraphs.getDSGraph(*I->second) &&
-               "Callees at call site do not have a common graph!");
-#endif    
-
-    // Find the DS nodes for the arguments that need to be added, if any.
-    FuncInfo *CFI = PAInfo.getFuncInfo(*CF);
-    assert(CFI && "No function info for callee at indirect call?");
-    ArgNodes = CFI->ArgNodes;
-
-    if (ArgNodes.empty())
-      return;           // No arguments to add?  Transformation is a noop!
-
-    // Cast the function pointer to an appropriate type!
-    std::vector<const Type*> ArgTys(ArgNodes.size(),
-                                    PoolAllocate::PoolDescPtrTy);
-    for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end();
-         I != E; ++I)
-      ArgTys.push_back((*I)->getType());
-    
-    FunctionType *FTy = FunctionType::get(TheCall->getType(), ArgTys, false);
-    PointerType *PFTy = PointerType::get(FTy);
-    
-    // If there are any pool arguments cast the func ptr to the right type.
-    NewCallee = CastInst::createPointerCast(CS.getCalledValue(), PFTy, "tmp", TheCall);
-  }
-
-  Function::arg_iterator FAI = CF->arg_begin(), E = CF->arg_end();
-  CallSite::arg_iterator AI = CS.arg_begin(), AE = CS.arg_end();
-  for ( ; FAI != E && AI != AE; ++FAI, ++AI)
-    if (!isa<Constant>(*AI))
-      DSGraph::computeNodeMapping(CalleeGraph->getNodeForValue(FAI),
-                                  getDSNodeHFor(*AI), NodeMapping, false);
-
-  //assert(AI == AE && "Varargs calls not handled yet!");
-
-  // Map the return value as well...
-  if (isa<PointerType>(TheCall->getType()))
-    DSGraph::computeNodeMapping(CalleeGraph->getReturnNodeFor(*CF),
-                                getDSNodeHFor(TheCall), NodeMapping, false);
-
-  // This code seems redundant (and crashes occasionally)
-  // There is no reason to map globals here, since they are not passed as
-  // arguments
-
-//   // Map the nodes that are pointed to by globals.
-//    DSScalarMap &CalleeSM = CalleeGraph->getScalarMap();
-//    for (DSScalarMap::global_iterator GI = G.getScalarMap().global_begin(), 
-//           E = G.getScalarMap().global_end(); GI != E; ++GI)
-//      if (CalleeSM.count(*GI))
-//        DSGraph::computeNodeMapping(CalleeGraph->getNodeForValue(*GI),
-//                                    getDSNodeHFor(*GI),
-//                                    NodeMapping, false);
-
-  // Okay, now that we have established our mapping, we can figure out which
-  // pool descriptors to pass in...
-  std::vector<Value*> Args;
-  for (unsigned i = 0, e = ArgNodes.size(); i != e; ++i) {
-    Value *ArgVal = Constant::getNullValue(PoolAllocate::PoolDescPtrTy);
-    if (NodeMapping.count(ArgNodes[i]))
-      if (DSNode *LocalNode = NodeMapping[ArgNodes[i]].getNode())
-        if (FI.PoolDescriptors.count(LocalNode))
-          ArgVal = FI.PoolDescriptors.find(LocalNode)->second;
-    if (isa<Constant>(ArgVal) && cast<Constant>(ArgVal)->isNullValue()) {
-#ifdef BOUNDS_CHECK
-      if (ArgNodes[i]->isArray()) {
-#endif
-	if (!isa<InvokeInst>(TheCall)) {
-	  //Dinakar we need pooldescriptors for allocas in the callee if it escapes
-	  BasicBlock::iterator InsertPt = TheCall->getParent()->getParent()->front().begin();
-	  Type *VoidPtrTy = PointerType::get(Type::Int8Ty);
-	  ArgVal =  new AllocaInst(ArrayType::get(VoidPtrTy, 16), 0, "PD", InsertPt);
-	  Value *ElSize = ConstantInt::get(Type::Int32Ty,0);
-	  Value *Align  = ConstantInt::get(Type::Int32Ty,0);
-          Value* Opts[3] = {ArgVal, ElSize, Align};
-	  new CallInst(PAInfo.PoolInit, Opts, 3,"", TheCall);
-          BasicBlock::iterator BBI = TheCall;
-          new CallInst(PAInfo.PoolDestroy, ArgVal, "", ++BBI);
-	}
-	//probably need to update DSG
-	//      std::cerr << "WARNING: NULL POOL ARGUMENTS ARE PASSED IN!\n";
-#ifdef BOUNDS_CHECK	
-      }
-#endif
-    }
-    Args.push_back(ArgVal);
-  }
-
-  // Add the rest of the arguments...
-  Args.insert(Args.end(), CS.arg_begin(), CS.arg_end());
-    
-  std::string Name = TheCall->getName(); TheCall->setName("");
-
-  if (InvokeInst *II = dyn_cast<InvokeInst>(TheCall)) {
-    NewCall = new InvokeInst(NewCallee, II->getNormalDest(),
-                             II->getUnwindDest(), &Args[0], Args.size(), Name, TheCall);
-  } else {
-    NewCall = new CallInst(NewCallee, &Args[0], Args.size(), Name, TheCall);
-  }
-
-  // Add all of the uses of the pool descriptor
-  for (unsigned i = 0, e = ArgNodes.size(); i != e; ++i)
-    AddPoolUse(*NewCall, Args[i], PoolUses);
-
-  TheCall->replaceAllUsesWith(NewCall);
-  DEBUG(std::cerr << "  Result Call: " << *NewCall);
-
-  if (TheCall->getType() != Type::VoidTy) {
-    // If we are modifying the original function, update the DSGraph... 
-    DSGraph::ScalarMapTy &SM = G.getScalarMap();
-    DSGraph::ScalarMapTy::iterator CII = SM.find(TheCall);
-    if (CII != SM.end()) {
-      SM[NewCall] = CII->second;
-      SM.erase(CII);                     // Destroy the CallInst
-    } else if (!FI.NewToOldValueMap.empty()) {
-      // Otherwise, if this is a clone, update the NewToOldValueMap with the new
-      // CI return value.
-      UpdateNewToOldValueMap(TheCall, NewCall);
-    }
-  } else if (!FI.NewToOldValueMap.empty()) {
-    UpdateNewToOldValueMap(TheCall, NewCall);
-  }
-
-  TheCall->eraseFromParent();
-  visitInstruction(*NewCall);
-}
-
-
-// visitInstruction - For all instructions in the transformed function bodies,
-// replace any references to the original calls with references to the
-// transformed calls.  Many instructions can "take the address of" a function,
-// and we must make sure to catch each of these uses, and transform it into a
-// reference to the new, transformed, function.
-void FuncTransform::visitInstruction(Instruction &I) {
-  for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i)
-    if (Function *clonedFunc = retCloneIfFunc(I.getOperand(i))) {
-      Constant *CF = clonedFunc;
-      I.setOperand(i, ConstantExpr::getPointerCast(CF, I.getOperand(i)->getType()));
-    }
-}
diff --git a/poolalloc/runtime/FL2Allocator/Makefile b/poolalloc/runtime/FL2Allocator/Makefile
deleted file mode 100755
index eb34bb6..0000000
--- a/poolalloc/runtime/FL2Allocator/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-LEVEL = ../..
-SHARED_LIBRARY=1
-LIBRARYNAME=poolalloc_rt
-
-ifdef ENABLE_OPTIMIZED
-CXXFLAGS += -DNDEBUG=1
-endif
-
-CXXFLAGS += -fno-exceptions
-
-include $(LEVEL)/Makefile.common
-
diff --git a/poolalloc/runtime/FL2Allocator/PoolAllocator.cpp b/poolalloc/runtime/FL2Allocator/PoolAllocator.cpp
deleted file mode 100644
index 4e3e821..0000000
--- a/poolalloc/runtime/FL2Allocator/PoolAllocator.cpp
+++ /dev/null
@@ -1,1068 +0,0 @@
-//===- PoolAllocator.cpp - Simple free-list based pool allocator ----------===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file is one possible implementation of the LLVM pool allocator runtime
-// library.
-//
-// FIXME:
-//  The pointer compression functions are not thread safe.
-//===----------------------------------------------------------------------===//
-
-#include "PoolAllocator.h"
-#include "poolalloc/MMAPSupport.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef long intptr_t;
-typedef unsigned long uintptr_t;
-
-// Performance tweaking macros.
-#define INITIAL_SLAB_SIZE 4096
-#define LARGE_SLAB_SIZE   4096
-
-#ifndef NDEBUG
-// Configuration macros.  Define up to one of these.
-#define PRINT_NUM_POOLS          // Print use dynamic # pools info
-//#define PRINT_POOLDESTROY_STATS  // When pools are destroyed, print stats
-//#define PRINT_POOL_TRACE         // Print a full trace
-#define ENABLE_POOL_IDS            // PID for access/pool traces
-
-
-// ALWAYS_USE_MALLOC_FREE - Make poolalloc/free always call malloc/free.  Note
-// that if the poolfree optimization is in use that this will cause memory
-// leaks!
-//#define ALWAYS_USE_MALLOC_FREE
-#endif
-
-//===----------------------------------------------------------------------===//
-// Pool Debugging stuff.
-//===----------------------------------------------------------------------===//
-
-#if defined(ALWAYS_USE_MALLOC_FREE)
-#define DO_IF_FORCE_MALLOCFREE(x) x
-#else
-#define DO_IF_FORCE_MALLOCFREE(x)
-#endif
-
-
-#if !defined(PRINT_POOL_TRACE)
-#define DO_IF_TRACE(X)
-#else
-#define ENABLE_POOL_IDS
-#define DO_IF_TRACE(X) X
-#define PRINT_POOLDESTROY_STATS
-#endif
-
-#if defined(ENABLE_POOL_IDS)
-struct PoolID {
-  void *PD;
-  unsigned ID;
-};
-
-struct PoolID *PoolIDs = 0;
-static unsigned NumLivePools = 0;
-static unsigned NumPoolIDsAllocated = 0;
-static unsigned CurPoolID = 0;
-
-static unsigned addPoolNumber(void *PD) {
-  if (NumLivePools == NumPoolIDsAllocated) {
-    NumPoolIDsAllocated = (10+NumPoolIDsAllocated)*2;
-    PoolIDs = (PoolID*)realloc(PoolIDs, sizeof(PoolID)*NumPoolIDsAllocated);
-  }
-  
-  PoolIDs[NumLivePools].PD = PD;
-  PoolIDs[NumLivePools].ID = ++CurPoolID;
-  NumLivePools++;
-  return CurPoolID;
-}
-
-static unsigned getPoolNumber(void *PD) {
-  if (PD == 0) return ~0;
-  for (unsigned i = 0; i != NumLivePools; ++i)
-    if (PoolIDs[i].PD == PD)
-      return PoolIDs[i].ID;
-  fprintf(stderr, "INVALID/UNKNOWN POOL DESCRIPTOR: 0x%lX\n",(unsigned long)PD);
-  return 0;
-}
-
-static unsigned removePoolNumber(void *PD) {
-  for (unsigned i = 0; i != NumLivePools; ++i)
-    if (PoolIDs[i].PD == PD) {
-      unsigned PN = PoolIDs[i].ID;
-      memmove(&PoolIDs[i], &PoolIDs[i+1], sizeof(PoolID)*(NumLivePools-i-1));
-      --NumLivePools;
-      return PN;
-    }
-  fprintf(stderr, "INVALID/UNKNOWN POOL DESCRIPTOR: 0x%lX\n",(unsigned long)PD);
-  return 0;
-}
-
-static void PrintPoolStats(void *Pool);
-template<typename PoolTraits>
-static void PrintLivePoolInfo() {
-  for (unsigned i = 0; i != NumLivePools; ++i) {
-    fprintf(stderr, "[%d] pool at exit ", PoolIDs[i].ID);
-    PrintPoolStats((PoolTy<PoolTraits>*)PoolIDs[i].PD);
-  }
-}
-#endif
-
-#ifdef PRINT_POOLDESTROY_STATS
-#define DO_IF_POOLDESTROY_STATS(X) X
-#define PRINT_NUM_POOLS
-
-template<typename PoolTraits>
-static void PrintPoolStats(PoolTy<PoolTraits> *Pool) {
-  fprintf(stderr,
-          "(0x%X) BytesAlloc=%d  NumObjs=%d"
-          " AvgObjSize=%d  NextAllocSize=%d  DeclaredSize=%d\n",
-          Pool, Pool->BytesAllocated, Pool->NumObjects,
-          Pool->NumObjects ? Pool->BytesAllocated/Pool->NumObjects : 0,
-          Pool->AllocSize, Pool->DeclaredSize);
-}
-
-#else
-#define DO_IF_POOLDESTROY_STATS(X)
-#endif
-
-#ifdef PRINT_NUM_POOLS
-static unsigned PoolCounter = 0;
-static unsigned PoolsInited = 0;
-
-// MaxHeapSize - The maximum size of the heap ever.
-static unsigned MaxHeapSize = 0;
-
-// CurHeapSize - The current size of the heap.
-static unsigned CurHeapSize = 0;
-
-template<typename PoolTraits>
-static void PoolCountPrinter() {
-  DO_IF_TRACE(PrintLivePoolInfo<PoolTraits>());
-  fprintf(stderr, "\n\n"
-          "*** %d DYNAMIC POOLS INITIALIZED ***\n\n"
-          "*** %d DYNAMIC POOLS ALLOCATED FROM ***\n\n",
-          PoolsInited, PoolCounter);
-  fprintf(stderr, "MaxHeapSize = %fKB  HeapSizeAtExit = %fKB   "
-          "NOTE: only valid if using Heuristic=AllPools and no "
-          "bumpptr/realloc!\n", MaxHeapSize/1024.0, CurHeapSize/1024.0);
-}
-
-template<typename PoolTraits>
-static void InitPrintNumPools() {
-  static bool Initialized = 0;
-  if (!Initialized) {
-    Initialized = 1;
-    atexit(PoolCountPrinter<PoolTraits>);
-  }
-}
-
-#define DO_IF_PNP(X) X
-#else
-#define DO_IF_PNP(X)
-#endif
-
-//===----------------------------------------------------------------------===//
-//  PoolSlab implementation
-//===----------------------------------------------------------------------===//
-
-
-template<typename PoolTraits>
-static void AddNodeToFreeList(PoolTy<PoolTraits> *Pool,
-                              FreedNodeHeader<PoolTraits> *FreeNode) {
-  typename PoolTraits::FreeNodeHeaderPtrTy *FreeList;
-  if (FreeNode->Header.Size == Pool->DeclaredSize)
-    FreeList = &Pool->ObjFreeList;
-  else
-    FreeList = &Pool->OtherFreeList;
-
-  void *PoolBase = Pool->Slabs;
-
-  typename PoolTraits::FreeNodeHeaderPtrTy FreeNodeIdx = 
-    PoolTraits::FNHPtrToIndex(FreeNode, PoolBase);
-
-  FreeNode->Prev = 0;   // First on the list.
-  FreeNode->Next = *FreeList;
-  *FreeList = FreeNodeIdx;
-  if (FreeNode->Next)
-    PoolTraits::IndexToFNHPtr(FreeNode->Next, PoolBase)->Prev = FreeNodeIdx;
-}
-
-template<typename PoolTraits>
-static void UnlinkFreeNode(PoolTy<PoolTraits> *Pool,
-                           FreedNodeHeader<PoolTraits> *FNH) {
-  void *PoolBase = Pool->Slabs;
-
-  // Make the predecessor point to our next node.
-  if (FNH->Prev)
-    PoolTraits::IndexToFNHPtr(FNH->Prev, PoolBase)->Next = FNH->Next;
-  else {
-    typename PoolTraits::FreeNodeHeaderPtrTy NodeIdx = 
-      PoolTraits::FNHPtrToIndex(FNH, PoolBase);
-
-    if (Pool->ObjFreeList == NodeIdx)
-      Pool->ObjFreeList = FNH->Next;
-    else {
-      assert(Pool->OtherFreeList == NodeIdx &&
-             "Prev Ptr is null but not at head of free list?");
-      Pool->OtherFreeList = FNH->Next;
-    }
-  }
-
-  if (FNH->Next)
-    PoolTraits::IndexToFNHPtr(FNH->Next, PoolBase)->Prev = FNH->Prev;
-}
-
-
-// PoolSlab Structure - Hold multiple objects of the current node type.
-// Invariants: FirstUnused <= UsedEnd
-//
-template<typename PoolTraits>
-struct PoolSlab {
-  // Next - This link is used when we need to traverse the list of slabs in a
-  // pool, for example, to destroy them all.
-  PoolSlab<PoolTraits> *Next;
-
-public:
-  static void create(PoolTy<PoolTraits> *Pool, unsigned SizeHint);
-  static void *create_for_bp(PoolTy<PoolTraits> *Pool);
-  static void create_for_ptrcomp(PoolTy<PoolTraits> *Pool,
-                                 void *Mem, unsigned Size);
-  void destroy();
-
-  PoolSlab<PoolTraits> *getNext() const { return Next; }
-};
-
-// create - Create a new (empty) slab and add it to the end of the Pools list.
-template<typename PoolTraits>
-void PoolSlab<PoolTraits>::create(PoolTy<PoolTraits> *Pool, unsigned SizeHint) {
-  if (Pool->DeclaredSize == 0) {
-    unsigned Align = Pool->Alignment;
-    if (SizeHint < sizeof(FreedNodeHeader<PoolTraits>) - 
-                   sizeof(NodeHeader<PoolTraits>))
-      SizeHint = sizeof(FreedNodeHeader<PoolTraits>) -
-                 sizeof(NodeHeader<PoolTraits>);
-    SizeHint = SizeHint+sizeof(FreedNodeHeader<PoolTraits>)+(Align-1);
-    SizeHint = (SizeHint & ~(Align-1))-sizeof(FreedNodeHeader<PoolTraits>);
-    Pool->DeclaredSize = SizeHint;
-  }
-
-  unsigned Size = Pool->AllocSize;
-  Pool->AllocSize <<= 1;
-  Size = (Size+SizeHint-1) / SizeHint * SizeHint;
-  PoolSlab *PS = (PoolSlab*)malloc(Size+sizeof(PoolSlab<PoolTraits>) +
-                                   sizeof(NodeHeader<PoolTraits>) +
-                                   sizeof(FreedNodeHeader<PoolTraits>));
-  char *PoolBody = (char*)(PS+1);
-
-  // If the Alignment is greater than the size of the FreedNodeHeader, skip over
-  // some space so that the a "free pointer + sizeof(FreedNodeHeader)" is always
-  // aligned.
-  unsigned Alignment = Pool->Alignment;
-  if (Alignment > sizeof(FreedNodeHeader<PoolTraits>)) {
-    PoolBody += Alignment-sizeof(FreedNodeHeader<PoolTraits>);
-    Size -= Alignment-sizeof(FreedNodeHeader<PoolTraits>);
-  }
-
-  // Add the body of the slab to the free list.
-  FreedNodeHeader<PoolTraits> *SlabBody =(FreedNodeHeader<PoolTraits>*)PoolBody;
-  SlabBody->Header.Size = Size;
-  AddNodeToFreeList(Pool, SlabBody);
-
-  // Make sure to add a marker at the end of the slab to prevent the coallescer
-  // from trying to merge off the end of the page.
-  FreedNodeHeader<PoolTraits> *End =
-      (FreedNodeHeader<PoolTraits>*)(PoolBody + sizeof(NodeHeader<PoolTraits>)+
-                                     Size);
-  End->Header.Size = ~0; // Looks like an allocated chunk
-
-  // Add the slab to the list...
-  PS->Next = Pool->Slabs;
-  Pool->Slabs = PS;
-}
-
-/// create_for_bp - This creates a slab for a bump-pointer pool.
-template<typename PoolTraits>
-void *PoolSlab<PoolTraits>::create_for_bp(PoolTy<PoolTraits> *Pool) {
-  unsigned Size = Pool->AllocSize;
-  Pool->AllocSize <<= 1;
-  PoolSlab *PS = (PoolSlab*)malloc(Size+sizeof(PoolSlab));
-  char *PoolBody = (char*)(PS+1);
-  if (sizeof(PoolSlab) == 4)
-    PoolBody += 4;            // No reason to start out unaligned.
-
-  // Update the end pointer.
-  Pool->OtherFreeList = (FreedNodeHeader<PoolTraits>*)((char*)(PS+1)+Size);
-
-  // Add the slab to the list...
-  PS->Next = Pool->Slabs;
-  Pool->Slabs = PS;
-  return PoolBody;
-}
-
-/// create_for_ptrcomp - Initialize a chunk of memory 'Mem' of size 'Size' for
-/// pointer compression.
-template<typename PoolTraits>
-void PoolSlab<PoolTraits>::create_for_ptrcomp(PoolTy<PoolTraits> *Pool, 
-                                              void *SMem, unsigned Size) {
-  if (Pool->DeclaredSize == 0) {
-    unsigned Align = Pool->Alignment;
-    unsigned SizeHint = sizeof(FreedNodeHeader<PoolTraits>) -
-                        sizeof(NodeHeader<PoolTraits>);
-    SizeHint = SizeHint+sizeof(FreedNodeHeader<PoolTraits>)+(Align-1);
-    SizeHint = (SizeHint & ~(Align-1))-sizeof(FreedNodeHeader<PoolTraits>);
-    Pool->DeclaredSize = SizeHint;
-  }
-
-  Size -= sizeof(PoolSlab) + sizeof(NodeHeader<PoolTraits>) +
-          sizeof(FreedNodeHeader<PoolTraits>);
-  PoolSlab *PS = (PoolSlab*)SMem;
-  char *PoolBody = (char*)(PS+1);
-
-  // If the Alignment is greater than the size of the NodeHeader, skip over some
-  // space so that the a "free pointer + sizeof(NodeHeader)" is always aligned
-  // for user data.
-  unsigned Alignment = Pool->Alignment;
-  if (Alignment > sizeof(NodeHeader<PoolTraits>)) {
-    PoolBody += Alignment-sizeof(NodeHeader<PoolTraits>);
-    Size -= Alignment-sizeof(NodeHeader<PoolTraits>);
-  }
-
-  // Add the body of the slab to the free list.
-  FreedNodeHeader<PoolTraits> *SlabBody =(FreedNodeHeader<PoolTraits>*)PoolBody;
-  SlabBody->Header.Size = Size;
-  AddNodeToFreeList(Pool, SlabBody);
-
-  // Make sure to add a marker at the end of the slab to prevent the coallescer
-  // from trying to merge off the end of the page.
-  FreedNodeHeader<PoolTraits> *End =
-    (FreedNodeHeader<PoolTraits>*)(PoolBody + sizeof(NodeHeader<PoolTraits>) +
-                                   Size);
-  End->Header.Size = ~0; // Looks like an allocated chunk
-  PS->Next = 0;
-}
-
-
-template<typename PoolTraits>
-void PoolSlab<PoolTraits>::destroy() {
-  free(this);
-}
-
-//===----------------------------------------------------------------------===//
-//
-//  Bump-pointer pool allocator library implementation
-//
-//===----------------------------------------------------------------------===//
-
-void poolinit_bp(PoolTy<NormalPoolTraits> *Pool, unsigned ObjAlignment) {
-  DO_IF_PNP(memset(Pool, 0, sizeof(PoolTy<NormalPoolTraits>)));
-  Pool->Slabs = 0;
-  if (ObjAlignment < 4) ObjAlignment = __alignof(double);
-  Pool->AllocSize = INITIAL_SLAB_SIZE;
-  Pool->Alignment = ObjAlignment;
-  Pool->LargeArrays = 0;
-  Pool->ObjFreeList = 0;     // This is our bump pointer.
-  Pool->OtherFreeList = 0;   // This is our end pointer.
-
-  unsigned PID;
-#ifdef ENABLE_POOL_IDS
-  PID = addPoolNumber(Pool);
-#endif
-
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolinit_bp(0x%X, %d)\n",
-                      PID, Pool, ObjAlignment));
-  DO_IF_PNP(++PoolsInited);  // Track # pools initialized
-  DO_IF_PNP(InitPrintNumPools<NormalPoolTraits>());
-}
-
-void *poolalloc_bp(PoolTy<NormalPoolTraits> *Pool, unsigned NumBytes) {
-  DO_IF_FORCE_MALLOCFREE(return malloc(NumBytes));
-  assert(Pool && "Bump pointer pool does not support null PD!");
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolalloc_bp(%d) -> ",
-                      getPoolNumber(Pool), NumBytes));
-  DO_IF_PNP(if (Pool->NumObjects == 0) ++PoolCounter);  // Track # pools.
-
-  if (NumBytes >= LARGE_SLAB_SIZE)
-    goto LargeObject;
-
-  DO_IF_PNP(++Pool->NumObjects);
-  DO_IF_PNP(Pool->BytesAllocated += NumBytes);
-
-  if (NumBytes < 1) NumBytes = 1;
-
-  uintptr_t Alignment;
-  char *BumpPtr, *EndPtr;
-  Alignment = Pool->Alignment-1;
-  BumpPtr = (char*)Pool->ObjFreeList; // Get our bump pointer.
-  EndPtr  = (char*)Pool->OtherFreeList; // Get our end pointer.
-
-TryAgain:
-  // Align the bump pointer to the required boundary.
-  BumpPtr = (char*)(intptr_t((BumpPtr+Alignment)) & ~Alignment);
-
-  if (BumpPtr + NumBytes < EndPtr) {
-    void *Result = BumpPtr;
-    // Update bump ptr.
-    Pool->ObjFreeList = (FreedNodeHeader<NormalPoolTraits>*)(BumpPtr+NumBytes);
-    DO_IF_TRACE(fprintf(stderr, "%p\n", Result));
-    return Result;
-  }
-  
-  BumpPtr = (char*)PoolSlab<NormalPoolTraits>::create_for_bp(Pool);
-  EndPtr  = (char*)Pool->OtherFreeList; // Get our updated end pointer.  
-  goto TryAgain;
-
-LargeObject:
-  // Otherwise, the allocation is a large array.  Since we're not going to be
-  // able to help much for this allocation, simply pass it on to malloc.
-  LargeArrayHeader *LAH = (LargeArrayHeader*)malloc(sizeof(LargeArrayHeader) + 
-                                                    NumBytes);
-  LAH->Size = NumBytes;
-  LAH->Marker = ~0U;
-  LAH->LinkIntoList(&Pool->LargeArrays);
-  DO_IF_TRACE(fprintf(stderr, "%p  [large]\n", LAH+1));
-  return LAH+1;
-}
-
-void pooldestroy_bp(PoolTy<NormalPoolTraits> *Pool) {
-  assert(Pool && "Null pool pointer passed in to pooldestroy!\n");
-
-  unsigned PID;
-#ifdef ENABLE_POOL_IDS
-  PID = removePoolNumber(Pool);
-#endif
-  DO_IF_TRACE(fprintf(stderr, "[%d] pooldestroy_bp", PID));
-  DO_IF_POOLDESTROY_STATS(PrintPoolStats(Pool));
-
-  // Free all allocated slabs.
-  PoolSlab<NormalPoolTraits> *PS = Pool->Slabs;
-  while (PS) {
-    PoolSlab<NormalPoolTraits> *Next = PS->getNext();
-    PS->destroy();
-    PS = Next;
-  }
-
-  // Free all of the large arrays.
-  LargeArrayHeader *LAH = Pool->LargeArrays;
-  while (LAH) {
-    LargeArrayHeader *Next = LAH->Next;
-    free(LAH);
-    LAH = Next;
-  }
-}
-
-
-
-//===----------------------------------------------------------------------===//
-//
-//  Pool allocator library implementation
-//
-//===----------------------------------------------------------------------===//
-
-// poolinit - Initialize a pool descriptor to empty
-//
-template<typename PoolTraits>
-static void poolinit_internal(PoolTy<PoolTraits> *Pool,
-                              unsigned DeclaredSize, unsigned ObjAlignment) {
-  assert(Pool && "Null pool pointer passed into poolinit!\n");
-  memset(Pool, 0, sizeof(PoolTy<PoolTraits>));
-  Pool->AllocSize = INITIAL_SLAB_SIZE;
-
-  if (ObjAlignment < 4) ObjAlignment = __alignof(double);
-  Pool->Alignment = ObjAlignment;
-
-  // Round the declared size up to an alignment boundary-header size, just like
-  // we have to do for objects.
-  if (DeclaredSize) {
-    if (DeclaredSize < sizeof(FreedNodeHeader<PoolTraits>) -
-                       sizeof(NodeHeader<PoolTraits>))
-      DeclaredSize = sizeof(FreedNodeHeader<PoolTraits>) -
-                     sizeof(NodeHeader<PoolTraits>);
-    DeclaredSize = DeclaredSize+sizeof(FreedNodeHeader<PoolTraits>) + 
-                   (ObjAlignment-1);
-    DeclaredSize = (DeclaredSize & ~(ObjAlignment-1)) -
-                   sizeof(FreedNodeHeader<PoolTraits>);
-  }
-
-  Pool->DeclaredSize = DeclaredSize;
-
-  unsigned PID;
-#ifdef ENABLE_POOL_IDS
-  PID = addPoolNumber(Pool);
-#endif
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolinit%s(0x%X, %d, %d)\n",
-                      PID, PoolTraits::getSuffix(),
-                      Pool, DeclaredSize, ObjAlignment));
-  DO_IF_PNP(++PoolsInited);  // Track # pools initialized
-  DO_IF_PNP(InitPrintNumPools<PoolTraits>());
-}
-
-void poolinit(PoolTy<NormalPoolTraits> *Pool,
-              unsigned DeclaredSize, unsigned ObjAlignment) {
-  poolinit_internal(Pool, DeclaredSize, ObjAlignment);
-}
-
-// pooldestroy - Release all memory allocated for a pool
-//
-void pooldestroy(PoolTy<NormalPoolTraits> *Pool) {
-  assert(Pool && "Null pool pointer passed in to pooldestroy!\n");
-
-  unsigned PID;
-#ifdef ENABLE_POOL_IDS
-  PID = removePoolNumber(Pool);
-#endif
-  DO_IF_TRACE(fprintf(stderr, "[%d] pooldestroy", PID));
-  DO_IF_POOLDESTROY_STATS(PrintPoolStats(Pool));
-
-  // Free all allocated slabs.
-  PoolSlab<NormalPoolTraits> *PS = Pool->Slabs;
-  while (PS) {
-    PoolSlab<NormalPoolTraits> *Next = PS->getNext();
-    PS->destroy();
-    PS = Next;
-  }
-
-  // Free all of the large arrays.
-  LargeArrayHeader *LAH = Pool->LargeArrays;
-  while (LAH) {
-    LargeArrayHeader *Next = LAH->Next;
-    free(LAH);
-    LAH = Next;
-  }
-}
-
-template<typename PoolTraits>
-static void *poolalloc_internal(PoolTy<PoolTraits> *Pool, unsigned NumBytesA) {
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolalloc%s(%d) -> ",
-                      getPoolNumber(Pool), PoolTraits::getSuffix(), NumBytesA));
-
-  unsigned NumBytes = NumBytesA;
-
-  // If a null pool descriptor is passed in, this is not a pool allocated data
-  // structure.  Hand off to the system malloc.
-  if (Pool == 0) {
-    void *Result = malloc(NumBytes);
-    DO_IF_TRACE(fprintf(stderr, "0x%X [malloc]\n", Result));
-                return Result;
-  }
-  DO_IF_PNP(if (Pool->NumObjects == 0) ++PoolCounter);  // Track # pools.
-
-  // Objects must be at least 8 bytes to hold the FreedNodeHeader object when
-  // they are freed.  This also handles allocations of 0 bytes.
-  if (NumBytes < (sizeof(FreedNodeHeader<PoolTraits>) - 
-                  sizeof(NodeHeader<PoolTraits>)))
-    NumBytes = sizeof(FreedNodeHeader<PoolTraits>) - 
-               sizeof(NodeHeader<PoolTraits>);
-
-  // Adjust the size so that memory allocated from the pool is always on the
-  // proper alignment boundary.
-  unsigned Alignment = Pool->Alignment;
-  NumBytes = NumBytes+sizeof(FreedNodeHeader<PoolTraits>) + 
-             (Alignment-1);      // Round up
-  NumBytes = (NumBytes & ~(Alignment-1)) - 
-             sizeof(FreedNodeHeader<PoolTraits>); // Truncate
-
-  DO_IF_PNP(CurHeapSize += (NumBytes + sizeof(NodeHeader<PoolTraits>)));
-  DO_IF_PNP(if (CurHeapSize > MaxHeapSize) MaxHeapSize = CurHeapSize);
-
-  DO_IF_PNP(++Pool->NumObjects);
-  DO_IF_PNP(Pool->BytesAllocated += NumBytes);
-
-  // Fast path - allocate objects off the object list.
-  if (NumBytes == Pool->DeclaredSize && Pool->ObjFreeList != 0) {
-    typename PoolTraits::FreeNodeHeaderPtrTy NodeIdx = Pool->ObjFreeList;
-    void *PoolBase = Pool->Slabs;
-    FreedNodeHeader<PoolTraits> *Node =
-      PoolTraits::IndexToFNHPtr(NodeIdx, PoolBase);
-    UnlinkFreeNode(Pool, Node);
-    assert(NumBytes == Node->Header.Size);
-
-    Node->Header.Size = NumBytes|1;   // Mark as allocated
-    DO_IF_TRACE(fprintf(stderr, "0x%X\n", &Node->Header+1));
-    return &Node->Header+1;
-  }
-
-  if (PoolTraits::UseLargeArrayObjects &&
-      NumBytes >= LARGE_SLAB_SIZE-sizeof(PoolSlab<PoolTraits>) - 
-      sizeof(NodeHeader<PoolTraits>))
-    goto LargeObject;
-
-  // Fast path.  In the common case, we can allocate a portion of the node at
-  // the front of the free list.
-  do {
-    void *PoolBase = Pool->Slabs;
-    FreedNodeHeader<PoolTraits> *FirstNode =
-      PoolTraits::IndexToFNHPtr(Pool->OtherFreeList, PoolBase);
-    if (FirstNode) {
-      unsigned FirstNodeSize = FirstNode->Header.Size;
-      if (FirstNodeSize >= NumBytes) {
-        if (FirstNodeSize >= 2*NumBytes+sizeof(NodeHeader<PoolTraits>)) {
-          // Put the remainder back on the list...
-          FreedNodeHeader<PoolTraits> *NextNodes =
-            (FreedNodeHeader<PoolTraits>*)((char*)FirstNode +
-                                   sizeof(NodeHeader<PoolTraits>) +NumBytes);
-          
-          // Remove from list
-          UnlinkFreeNode(Pool, FirstNode);
-          
-          NextNodes->Header.Size = FirstNodeSize-NumBytes -
-                                   sizeof(NodeHeader<PoolTraits>);
-          AddNodeToFreeList(Pool, NextNodes);
-          
-        } else {
-          UnlinkFreeNode(Pool, FirstNode);
-          NumBytes = FirstNodeSize;
-        }
-        FirstNode->Header.Size = NumBytes|1;   // Mark as allocated
-        DO_IF_TRACE(fprintf(stderr, "0x%X\n", &FirstNode->Header+1));
-        return &FirstNode->Header+1;
-      }
-
-      // Perform a search of the free list, taking the front of the first free
-      // chunk that is big enough.
-      typename PoolTraits::FreeNodeHeaderPtrTy *FN = &Pool->OtherFreeList;
-      FreedNodeHeader<PoolTraits> *FNN = FirstNode;
-      
-      // Search the list for the first-fit.
-      while (FNN && FNN->Header.Size < NumBytes) {
-        // Advance FN to point to the Next field of FNN.
-        FN = &FNN->Next;
-
-        // Advance FNN to point to whatever the next node points to (null or the
-        // next node in the free list).
-        FNN = PoolTraits::IndexToFNHPtr(*FN, PoolBase);
-      }
-      
-      if (FNN) {
-        // We found a slab big enough.  If it's a perfect fit, just unlink
-        // from the free list, otherwise, slice a little bit off and adjust
-        // the free list.
-        if (FNN->Header.Size > 2*NumBytes+sizeof(NodeHeader<PoolTraits>)) {
-          UnlinkFreeNode(Pool, FNN);
-          
-          // Put the remainder back on the list...
-          FreedNodeHeader<PoolTraits> *NextNodes =
-            (FreedNodeHeader<PoolTraits>*)((char*)FNN +
-                                           sizeof(NodeHeader<PoolTraits>) +
-                                           NumBytes);
-          NextNodes->Header.Size = FNN->Header.Size-NumBytes -
-            sizeof(NodeHeader<PoolTraits>);
-          AddNodeToFreeList(Pool, NextNodes);
-        } else {
-          UnlinkFreeNode(Pool, FNN);
-          NumBytes = FNN->Header.Size;
-        }
-        FNN->Header.Size = NumBytes|1;   // Mark as allocated
-        DO_IF_TRACE(fprintf(stderr, "0x%X\n", &FNN->Header+1));
-        return &FNN->Header+1;
-      }
-    }
-
-    // If we are not allowed to grow this pool, don't.
-    if (!PoolTraits::CanGrowPool) {
-      DO_IF_TRACE(fprintf(stderr, "Pool Overflow, not growable\n"));
-      abort();
-      return 0;
-    }
-
-    // Oops, we didn't find anything on the free list big enough!  Allocate
-    // another slab and try again.
-    PoolSlab<PoolTraits>::create(Pool, NumBytes);
-  } while (1);
-
-LargeObject:
-  // Otherwise, the allocation is a large array.  Since we're not going to be
-  // able to help much for this allocation, simply pass it on to malloc.
-  LargeArrayHeader *LAH = (LargeArrayHeader*)malloc(sizeof(LargeArrayHeader) + 
-                                                    NumBytes);
-  LAH->Size = NumBytes;
-  LAH->Marker = ~0U;
-  LAH->LinkIntoList(&Pool->LargeArrays);
-  DO_IF_TRACE(fprintf(stderr, "0x%X  [large]\n", LAH+1));
-  return LAH+1;
-}
-
-template<typename PoolTraits>
-static void poolfree_internal(PoolTy<PoolTraits> *Pool, void *Node) {
-  if (Node == 0) return;
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolfree%s(%p) ",
-                      getPoolNumber(Pool), PoolTraits::getSuffix(), Node));
-
-  // If a null pool descriptor is passed in, this is not a pool allocated data
-  // structure.  Hand off to the system free.
-  if (Pool == 0) {
-    free(Node);
-    DO_IF_TRACE(fprintf(stderr, "[free]\n"));
-    return;
-  }
-
-  // Check to see how many elements were allocated to this node...
-  FreedNodeHeader<PoolTraits> *FNH =
-    (FreedNodeHeader<PoolTraits>*)((char*)Node-sizeof(NodeHeader<PoolTraits>));
-  assert((FNH->Header.Size & 1) && "Node not allocated!");
-  unsigned Size = FNH->Header.Size & ~1;
-
-  if (Size == ~1U) goto LargeArrayCase;
-  DO_IF_TRACE(fprintf(stderr, "%d bytes\n", Size));
-
-  DO_IF_PNP(CurHeapSize -= (Size + sizeof(NodeHeader<PoolTraits>)));
-  
-  // If the node immediately after this one is also free, merge it into node.
-  FreedNodeHeader<PoolTraits> *NextFNH;
-  NextFNH = (FreedNodeHeader<PoolTraits>*)((char*)Node+Size);
-  while ((NextFNH->Header.Size & 1) == 0) {
-    // Unlink NextFNH from the freelist that it is in.
-    UnlinkFreeNode(Pool, NextFNH);
-    Size += sizeof(NodeHeader<PoolTraits>)+NextFNH->Header.Size;
-    NextFNH = (FreedNodeHeader<PoolTraits>*)((char*)Node+Size);
-  }
-
-  // If there are already nodes on the freelist, see if these blocks can be
-  // coallesced into one of the early blocks on the front of the list.  This is
-  // a simple check that prevents many horrible forms of fragmentation,
-  // particularly when freeing objects in allocation order.
-  //
-  if (Pool->ObjFreeList) {
-    void *PoolBase = Pool->Slabs;
-    FreedNodeHeader<PoolTraits> *ObjFNH = 
-      PoolTraits::IndexToFNHPtr(Pool->ObjFreeList, PoolBase);
-
-    if ((char*)ObjFNH + sizeof(NodeHeader<PoolTraits>) +
-        ObjFNH->Header.Size == (char*)FNH) {
-      // Merge this with a node that is already on the object size free list.
-      // Because the object is growing, we will never be able to find it if we
-      // leave it on the object freelist.
-      UnlinkFreeNode(Pool, ObjFNH);
-      ObjFNH->Header.Size += Size+sizeof(NodeHeader<PoolTraits>);
-      AddNodeToFreeList(Pool, ObjFNH);
-      return;
-    }
-  }
-
-  if (Pool->OtherFreeList) {
-    void *PoolBase = Pool->Slabs;
-    FreedNodeHeader<PoolTraits> *OFNH = 
-      PoolTraits::IndexToFNHPtr(Pool->OtherFreeList, PoolBase);
-
-    if ((char*)OFNH + sizeof(NodeHeader<PoolTraits>) +
-        OFNH->Header.Size == (char*)FNH) {
-      // Merge this with a node that is already on the object size free list.
-      OFNH->Header.Size += Size+sizeof(NodeHeader<PoolTraits>);
-      return;
-    }
-  }
-
-  FNH->Header.Size = Size;
-  AddNodeToFreeList(Pool, FNH);
-  return;
-
-LargeArrayCase:
-  LargeArrayHeader *LAH = ((LargeArrayHeader*)Node)-1;
-  DO_IF_TRACE(fprintf(stderr, "%d bytes [large]\n", LAH->Size));
-  DO_IF_PNP(CurHeapSize -= LAH->Size);
-
-  // Unlink it from the list of large arrays and free it.
-  LAH->UnlinkFromList();
-  free(LAH);
-}
-
-template<typename PoolTraits>
-static void *poolrealloc_internal(PoolTy<PoolTraits> *Pool, void *Node,
-                                  unsigned NumBytes) {
-  DO_IF_TRACE(fprintf(stderr, "[%d] poolrealloc%s(0x%X, %d) -> ",
-                      getPoolNumber(Pool), PoolTraits::getSuffix(),
-                      Node, NumBytes));
-
-  // If a null pool descriptor is passed in, this is not a pool allocated data
-  // structure.  Hand off to the system realloc.
-  if (Pool == 0) {
-    void *Result = realloc(Node, NumBytes);
-    DO_IF_TRACE(fprintf(stderr, "0x%X (system realloc)\n", Result));
-    return Result;
-  }
-  if (Node == 0) return poolalloc_internal(Pool, NumBytes);
-  if (NumBytes == 0) {
-    poolfree_internal(Pool, Node);
-    DO_IF_TRACE(fprintf(stderr, "freed\n"));
-    return 0;
-  }
-
-  FreedNodeHeader<PoolTraits> *FNH =
-    (FreedNodeHeader<PoolTraits>*)((char*)Node-sizeof(NodeHeader<PoolTraits>));
-  assert((FNH->Header.Size & 1) && "Node not allocated!");
-  unsigned Size = FNH->Header.Size & ~1;
-  if (Size != ~1U) {
-    // FIXME: This is obviously much worse than it could be.  In particular, we
-    // never try to expand something in a pool.  This might hurt some programs!
-    void *New = poolalloc_internal(Pool, NumBytes);
-    assert(New != 0 && "Our poolalloc doesn't ever return null for failure!");
-    
-    // Copy the min of the new and old sizes over.
-    memcpy(New, Node, Size < NumBytes ? Size : NumBytes);
-    poolfree_internal(Pool, Node);
-    DO_IF_TRACE(fprintf(stderr, "0x%X (moved)\n", New));
-    return New;
-  }
-
-  // Otherwise, we have a large array.  Perform the realloc using the system
-  // realloc function.  This case is actually quite common as many large blocks
-  // end up being realloc'd it seems.
-  LargeArrayHeader *LAH = ((LargeArrayHeader*)Node)-1;
-  LAH->UnlinkFromList();
-
-  LargeArrayHeader *NewLAH =
-    (LargeArrayHeader*)realloc(LAH, sizeof(LargeArrayHeader)+NumBytes);
-  
-  DO_IF_TRACE(if (LAH == NewLAH)
-                fprintf(stderr, "resized in place (system realloc)\n");
-              else
-                fprintf(stderr, "0x%X (moved by system realloc)\n", NewLAH+1));
-  NewLAH->LinkIntoList(&Pool->LargeArrays);
-  return NewLAH+1;
-}
-
-unsigned poolobjsize(PoolTy<NormalPoolTraits> *Pool, void *Node) {
-  if (Node == 0) return 0;
-
-  // If a null pool descriptor is passed in, this is not a pool allocated data
-  // structure.  We don't really have any way to service this!!
-  if (Pool == 0) {
-    fprintf(stderr, "ERROR: Cannot call poolobjsize on a pool that is getting"
-            " memory from the heap.  Sorry!\n");
-    abort();
-  }
-
-  // Check to see how many bytes were allocated to this node.
-  FreedNodeHeader<NormalPoolTraits> *FNH =
-    (FreedNodeHeader<NormalPoolTraits>*)((char*)Node -
-                                         sizeof(NodeHeader<NormalPoolTraits>));
-  assert((FNH->Header.Size & 1) && "Node not allocated!");
-  unsigned Size = FNH->Header.Size & ~1;
-  if (Size != ~1U) return Size;
-
-  // Otherwise, we have a large array.
-  LargeArrayHeader *LAH = ((LargeArrayHeader*)Node)-1;
-  return LAH->Size;
-}
-
-
-void *poolalloc(PoolTy<NormalPoolTraits> *Pool, unsigned NumBytes) {
-  DO_IF_FORCE_MALLOCFREE(return malloc(NumBytes));
-  return poolalloc_internal(Pool, NumBytes);
-}
-
-void *poolmemalign(PoolTy<NormalPoolTraits> *Pool,
-                   unsigned Alignment, unsigned NumBytes) {
-  //punt and use pool alloc.
-  //I don't know if this is safe or breaks any assumptions in the runtime
-  intptr_t base = (intptr_t)poolalloc_internal(Pool, NumBytes + Alignment - 1);
-  return (void*)((base + (Alignment - 1)) & ~((intptr_t)Alignment -1));
-}
-
-void poolfree(PoolTy<NormalPoolTraits> *Pool, void *Node) {
-  DO_IF_FORCE_MALLOCFREE(free(Node); return);
-  poolfree_internal(Pool, Node);
-}
-
-void *poolrealloc(PoolTy<NormalPoolTraits> *Pool, void *Node,
-                  unsigned NumBytes) {
-  DO_IF_FORCE_MALLOCFREE(return realloc(Node, NumBytes));
-  return poolrealloc_internal(Pool, Node, NumBytes);
-}
-
-
-
-//===----------------------------------------------------------------------===//
-// Pointer Compression runtime library.  Most of these are just wrappers
-// around the normal pool routines.
-//===----------------------------------------------------------------------===//
-
-// For now, use address space reservation of 256MB.
-#define POOLSIZE (256*1024*1024)
-
-// Pools - When we are done with a pool, don't munmap it, keep it around for
-// next time.
-static PoolSlab<CompressedPoolTraits> *Pools[4] = { 0, 0, 0, 0 };
-
-void *poolinit_pc(PoolTy<CompressedPoolTraits> *Pool,
-                  unsigned DeclaredSize, unsigned ObjAlignment) {
-  poolinit_internal(Pool, DeclaredSize, ObjAlignment);
-
-  // The number of nodes to stagger in the mmap'ed pool
-  static unsigned stagger=0;
-
-  // Create the pool.  We have to do this eagerly (instead of on the first
-  // allocation), because code may want to eagerly copy the pool base into a
-  // register.
-
-  // If we already have a pool mapped, reuse it.
-  for (unsigned i = 0; i != 4; ++i)
-    if (Pools[i]) {
-      Pool->Slabs = Pools[i];
-      Pools[i] = 0;
-      break;
-    }
-
-  //
-  // Wrap the stagger value back to zero if we're past the size of the pool.
-  // This way, we always reserve less than 2*POOLSIZE of the virtual address
-  // space.
-  //
-  if ((stagger * DeclaredSize) >= POOLSIZE)
-    stagger = 0;
-
-  if (Pool->Slabs == 0) {
-    //
-    // Didn't find an existing pool, create one.
-    //
-    // To create a pool, we stagger the beginning of the pool so that pools
-    // do not end up starting on the same page boundary (creating extra cache
-    // conflicts).
-    //
-    Pool->Slabs = (PoolSlab<CompressedPoolTraits>*)
-                      AllocateSpaceWithMMAP(POOLSIZE + (DeclaredSize * stagger), true);
-    Pool->Slabs += (DeclaredSize * stagger);
-
-    // Increase the stagger amount by one node.
-    stagger++;
-    DO_IF_TRACE(fprintf(stderr, "RESERVED ADDR SPACE: %p -> %p\n",
-                        Pool->Slabs, (char*)Pool->Slabs+POOLSIZE));
-  }
-  PoolSlab<CompressedPoolTraits>::create_for_ptrcomp(Pool, Pool->Slabs,
-                                                     POOLSIZE);
-  return Pool->Slabs;
-}
-
-void pooldestroy_pc(PoolTy<CompressedPoolTraits> *Pool) {
-  assert(Pool && "Null pool pointer passed in to pooldestroy!\n");
-  if (Pool->Slabs == 0)
-    return;   // no memory allocated from this pool.
-
-  unsigned PID;
-#ifdef ENABLE_POOL_IDS
-  PID = removePoolNumber(Pool);
-#endif
-  DO_IF_TRACE(fprintf(stderr, "[%d] pooldestroy_pc", PID));
-  DO_IF_POOLDESTROY_STATS(PrintPoolStats(Pool));
-
-  // If there is space to remember this pool, do so.
-  for (unsigned i = 0; i != 4; ++i)
-    if (Pools[i] == 0) {
-      Pools[i] = Pool->Slabs;
-      return;
-    }
-
-  // Otherwise, just munmap it.
-  DO_IF_TRACE(fprintf(stderr, "UNMAPPING ADDR SPACE: %p -> %p\n",
-                      Pool->Slabs, (char*)Pool->Slabs+POOLSIZE));
-  munmap(Pool->Slabs, POOLSIZE);
-}
-
-unsigned long long poolalloc_pc(PoolTy<CompressedPoolTraits> *Pool,
-                                unsigned NumBytes) {
-  void *Result = poolalloc_internal(Pool, NumBytes);
-  return (char*)Result-(char*)Pool->Slabs;
-}
-
-void poolfree_pc(PoolTy<CompressedPoolTraits> *Pool, unsigned long long Node) {
-  poolfree_internal(Pool, (char*)Pool->Slabs+Node);
-}
-
-unsigned long long poolrealloc_pc(PoolTy<CompressedPoolTraits> *Pool,
-                                  unsigned long long Node, unsigned NumBytes) {
-  void *Result = poolrealloc_internal(Pool, (char*)Pool->Slabs+Node, NumBytes);
-  return (char*)Result-(char*)Pool->Slabs;
-}
-
-// Alternate Pointer Compression
-void *poolinit_pca(PoolTy<CompressedPoolTraits> *Pool, unsigned NodeSize,
-		   unsigned ObjAlignment)
-{
-  return poolinit_pc(Pool, NodeSize, ObjAlignment);
-}
-
-void pooldestroy_pca(PoolTy<CompressedPoolTraits> *Pool)
-{
-  pooldestroy_pc(Pool);
-}
-
-void* poolalloc_pca(PoolTy<CompressedPoolTraits> *Pool, unsigned NumBytes)
-{
-  return poolalloc_internal(Pool, NumBytes);
-}
-
-void poolfree_pca(PoolTy<CompressedPoolTraits> *Pool, void* Node)
-{
-  poolfree_internal(Pool, Node);
-}
-
-void* poolrealloc_pca(PoolTy<CompressedPoolTraits> *Pool, void* Node, 
-		      unsigned NumBytes)
-{
-  return poolrealloc_internal(Pool, Node, NumBytes);
-}
-
-//===----------------------------------------------------------------------===//
-// Access Tracing Runtime Library Support
-//===----------------------------------------------------------------------===//
-
-static FILE *FD = 0;
-void poolaccesstraceinit() {
-#ifdef ALWAYS_USE_MALLOC_FREE
-  FD = fopen("trace.malloc.csv", "w");
-#else
-  FD = fopen("trace.pa.csv", "w");
-#endif
-}
-
-#define NUMLRU 2
-static void *LRUWindow[NUMLRU];
-
-void poolaccesstrace(void *Ptr, void *PD) {
-  static unsigned Time = ~0U;
-  static void *LastPtr = 0;
-
-  // Not pool memory?
-  if (PD == 0) return;
-  
-  // Filter out stuff that is not to the heap.
-  ++Time;
-  if ((uintptr_t)Ptr > 1000000000UL)
-    return;
-
-  Ptr = (void*)((intptr_t)Ptr & ~31L);
-
-#if 1
-  // Drop duplicate points.
-  for (unsigned i = 0; i != NUMLRU; ++i)
-    if (Ptr == LRUWindow[i]) {
-      memmove(LRUWindow+1, LRUWindow, sizeof(void*)*i);
-      LRUWindow[0] = Ptr;
-      return;
-    }
-
-  // Rotate LRU window.
-  memmove(LRUWindow+1, LRUWindow, sizeof(void*)*(NUMLRU-1));
-  LRUWindow[0] = Ptr;
-#endif
-
-  // Delete many points to reduce data.
-  static unsigned int Ctr;
-  if ((++Ctr & 31)) return;
-
-
-  fprintf(FD, "%d", Time);
-#if defined(ENABLE_POOL_IDS)
-  for (unsigned PID = getPoolNumber(PD)+1; PID; --PID)
-    fprintf(FD,"\t?");
-#else
-  fprintf(FD, "\t%p ", PD);
-#endif
-  fprintf(FD, "\t%lu\n", (intptr_t)Ptr);
-}
diff --git a/poolalloc/runtime/FL2Allocator/PoolAllocator.h b/poolalloc/runtime/FL2Allocator/PoolAllocator.h
deleted file mode 100644
index 402b4f1..0000000
--- a/poolalloc/runtime/FL2Allocator/PoolAllocator.h
+++ /dev/null
@@ -1,235 +0,0 @@
-//===- PoolAllocator.h - Pool allocator runtime interface file --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interface which is implemented by the LLVM pool
-// allocator runtime library.
-//
-// Note: Most of this runtime library is templated based on a PoolTraits
-// instance.  This allows the normal pool allocator to use standard pointers and
-// long's to represent things, but allows the pointer compression runtime
-// library use pool indexes which are smaller.  Using smaller indexes reduces
-// the minimum object size on a 64-bit system from 16 to 8 bytes, and reduces
-// the object header size to 4 bytes (from 8).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POOLALLOCATOR_RUNTIME_H
-#define POOLALLOCATOR_RUNTIME_H
-
-#include <assert.h>
-
-template<typename PoolTraits>
-struct PoolSlab;
-template<typename PoolTraits>
-struct FreedNodeHeader;
-
-// NormalPoolTraits - This describes normal pool allocation pools, which can
-// address the entire heap, and are made out of multiple chunks of memory.  The
-// object header is a full machine word, and pointers into the heap are native
-// pointers.
-struct NormalPoolTraits {
-  typedef unsigned long NodeHeaderType;
-  enum {
-    UseLargeArrayObjects = 1,
-    CanGrowPool = 1
-  };
-
-  // Pointers are just pointers.
-  typedef FreedNodeHeader<NormalPoolTraits>* FreeNodeHeaderPtrTy;
-
-  static const char *getSuffix() { return ""; }
-
-  /// DerefFNHPtr - Given an index into the pool, return a pointer to the
-  /// FreeNodeHeader object.
-  static FreedNodeHeader<NormalPoolTraits>*
-  IndexToFNHPtr(FreeNodeHeaderPtrTy P, void *PoolBase) {
-    return P;
-  }
-
-  static FreeNodeHeaderPtrTy
-  FNHPtrToIndex(FreedNodeHeader<NormalPoolTraits>* FNHP, void *PoolBase) {
-    return FNHP;
-  }
-};
-
-
-// CompressedPoolTraits - This describes a statically pointer compressed pool,
-// which is known to be <= 2^32 bytes in size (even on a 64-bit machine), and is
-// made out of a single contiguous block.  The meta-data to represent the pool
-// uses 32-bit indexes from the start of the pool instead of full pointers to
-// decrease the minimum object size.
-struct CompressedPoolTraits {
-  typedef unsigned NodeHeaderType;
-
-  enum {
-    UseLargeArrayObjects = 0,
-    CanGrowPool = 0
-  };
-
-  // Represent pointers with indexes from the pool base.
-  typedef unsigned FreeNodeHeaderPtrTy;
-
-  static const char *getSuffix() { return "_pc"; }
-
-  /// DerefFNHPtr - Given an index into the pool, return a pointer to the
-  /// FreeNodeHeader object.
-  static FreedNodeHeader<CompressedPoolTraits>*
-  IndexToFNHPtr(FreeNodeHeaderPtrTy P, void *PoolBase) {
-    return (FreedNodeHeader<CompressedPoolTraits>*)((char*)PoolBase + P);
-  }
-
-  static FreeNodeHeaderPtrTy
-  FNHPtrToIndex(FreedNodeHeader<CompressedPoolTraits>* FNHP, void *PoolBase) {
-    assert(FNHP && PoolBase && "Can't handle null FHNP!");
-    return (char*)FNHP - (char*)PoolBase;
-  }
-};
-
-
-// NodeHeader - Each block of memory is preceeded in the the pool by one of
-// these headers.
-template<typename PoolTraits>
-struct NodeHeader {
-  typename PoolTraits::NodeHeaderType Size;
-};
-
-
-// When objects are on the free list, we pretend they have this header.  
-template<typename PoolTraits>
-struct FreedNodeHeader {
-  // NormalHeader - This is the normal node header that is on allocated or free
-  // blocks.
-  NodeHeader<PoolTraits> Header;
-
-  // Next - The next object in the free list.
-  typename PoolTraits::FreeNodeHeaderPtrTy Next;
-
-  // Prev - The node that points to this node on the free list.  This is null
-  // if it is the first node in one of the two free lists.
-  typename PoolTraits::FreeNodeHeaderPtrTy Prev;
-};
-
-
-// Large Arrays are passed on to directly malloc, and are not necessarily page
-// aligned.  These arrays are marked by setting the object size preheader to ~1.
-// LargeArrays are on their own list to allow for efficient deletion.
-struct LargeArrayHeader {
-  LargeArrayHeader **Prev, *Next;
-
-  // Size - This contains the size of the object.
-  unsigned long Size;
-  
-  // Marker: this is the ObjectSize marker which MUST BE THE LAST ELEMENT of
-  // this header!
-  unsigned long Marker;
-
-  void UnlinkFromList() {
-    *Prev = Next;
-    if (Next)
-      Next->Prev = Prev;
-  }
-
-  void LinkIntoList(LargeArrayHeader **List) {
-    Next = *List;
-    if (Next)
-      Next->Prev = &Next;
-    *List = this;
-    Prev = List;
-  }
-};
-
-
-template<typename PoolTraits>
-struct PoolTy {
-  // Slabs - the list of slabs in this pool.  NOTE: This must remain the first
-  // memory of this structure for the pointer compression pass.
-  PoolSlab<PoolTraits> *Slabs;
-
-  // The free node lists for objects of various sizes.  
-  typename PoolTraits::FreeNodeHeaderPtrTy ObjFreeList;
-  typename PoolTraits::FreeNodeHeaderPtrTy OtherFreeList;
-
-  // Alignment - The required alignment of allocations the pool in bytes.
-  unsigned Alignment;
-
-  // The declared size of the pool, just kept for the record.
-  unsigned DeclaredSize;
-
-  // LargeArrays - A doubly linked list of large array chunks, dynamically
-  // allocated with malloc.
-  LargeArrayHeader *LargeArrays;
-
-  // The size to allocate for the next slab.
-  unsigned AllocSize;
-
-  // NumObjects - the number of poolallocs for this pool.
-  unsigned NumObjects;
-
-  // BytesAllocated - The total number of bytes ever allocated from this pool.
-  // Together with NumObjects, allows us to calculate average object size.
-  unsigned BytesAllocated;
-};
-
-extern "C" {
-  void poolinit(PoolTy<NormalPoolTraits> *Pool,
-                unsigned DeclaredSize, unsigned ObjAlignment);
-  void poolmakeunfreeable(PoolTy<NormalPoolTraits> *Pool);
-  void pooldestroy(PoolTy<NormalPoolTraits> *Pool);
-  void *poolalloc(PoolTy<NormalPoolTraits> *Pool, unsigned NumBytes);
-  void *poolrealloc(PoolTy<NormalPoolTraits> *Pool,
-                    void *Node, unsigned NumBytes);
-  void *poolmemalign(PoolTy<NormalPoolTraits> *Pool,
-                     unsigned Alignment, unsigned NumBytes);
-  void poolfree(PoolTy<NormalPoolTraits> *Pool, void *Node);
-
-  /// poolobjsize - Return the size of the object at the specified address, in
-  /// the specified pool.  Note that this cannot be used in normal cases, as it
-  /// is completely broken if things land in the system heap.  Perhaps in the
-  /// future.  :(
-  ///
-  unsigned poolobjsize(PoolTy<NormalPoolTraits> *Pool, void *Node);
-
-  // Bump pointer pool library.  This is a pool implementation that does not
-  // support frees or reallocs to the pool.  As such, it can be much more
-  // efficient and simpler than a general pool implementation.
-  void poolinit_bp(PoolTy<NormalPoolTraits> *Pool, unsigned ObjAlignment);
-  void *poolalloc_bp(PoolTy<NormalPoolTraits> *Pool, unsigned NumBytes);
-  void pooldestroy_bp(PoolTy<NormalPoolTraits> *Pool);
-
-
-  // Pointer Compression runtime library.  Most of these are just wrappers
-  // around the normal pool routines.
-  void *poolinit_pc(PoolTy<CompressedPoolTraits> *Pool, unsigned NodeSize,
-                    unsigned ObjAlignment);
-  void pooldestroy_pc(PoolTy<CompressedPoolTraits> *Pool);
-  unsigned long long poolalloc_pc(PoolTy<CompressedPoolTraits> *Pool,
-                                  unsigned NumBytes);
-  void poolfree_pc(PoolTy<CompressedPoolTraits> *Pool, unsigned long long Node);
-  //void *poolmemalign_pc(PoolTy *Pool, unsigned Alignment, unsigned NumBytes);
-  unsigned long long poolrealloc_pc(PoolTy<CompressedPoolTraits> *Pool,
-                                  unsigned long long Node, unsigned NumBytes);
-
-  // Alternate Pointer Compression runtime library.  Most of these are just 
-  // wrappers around the normal pool routines.
-  void *poolinit_pca(PoolTy<CompressedPoolTraits> *Pool, unsigned NodeSize,
-                    unsigned ObjAlignment);
-  void pooldestroy_pca(PoolTy<CompressedPoolTraits> *Pool);
-  void* poolalloc_pca(PoolTy<CompressedPoolTraits> *Pool,
-                                  unsigned NumBytes);
-  void poolfree_pca(PoolTy<CompressedPoolTraits> *Pool, void* Node);
-  void* poolrealloc_pca(PoolTy<CompressedPoolTraits> *Pool,
-                                  void* Node, unsigned NumBytes);
-
-  // Access tracing runtime library support.
-  void poolaccesstraceinit(void);
-  void poolaccesstrace(void *Ptr, void *PD);
-}
-
-#endif
-
diff --git a/poolalloc/runtime/FreeListAllocator/Makefile b/poolalloc/runtime/FreeListAllocator/Makefile
deleted file mode 100644
index c47e306..0000000
--- a/poolalloc/runtime/FreeListAllocator/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../..
-SHARED_LIBRARY=1
-LIBRARYNAME=poolalloc_fl_rt
-
-include $(LEVEL)/Makefile.common
diff --git a/poolalloc/runtime/FreeListAllocator/PageManager.cpp b/poolalloc/runtime/FreeListAllocator/PageManager.cpp
deleted file mode 100644
index 67d91e2..0000000
--- a/poolalloc/runtime/FreeListAllocator/PageManager.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//===- PageManager.cpp - Implementation of the page allocator -------------===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the PageManager.h interface.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PageManager.h"
-#ifndef _POSIX_MAPPED_FILES
-#define _POSIX_MAPPED_FILES
-#endif
-#include <unistd.h>
-#include "poolalloc/MMAPSupport.h"
-#include "poolalloc/Support/MallocAllocator.h"
-#include <vector>
-#include <iostream>
-
-// Define this if we want to use memalign instead of mmap to get pages.
-// Empirically, this slows down the pool allocator a LOT.
-#define USE_MEMALIGN 0
-
-unsigned PageSize = 4096;
-
-// Explicitly use the malloc allocator here, to avoid depending on the C++
-// runtime library.
-typedef std::vector<void*, llvm::MallocAllocator<void*> > FreePagesListType;
-static FreePagesListType *FreePages = 0;
-
-//
-// Function: InitializePageManager ()
-//
-// Description:
-//  This function initializes the Page Manager code.  It must be called before
-//  any other Page Manager functions are called.
-//
-unsigned int InitializePageManager() {
-  if (!PageSize) {
-    PageSize = sysconf(_SC_PAGESIZE);
-    FreePages = 0;
-  }
-  return PageSize;
-}
-
-///
-/// Function: AllocatePage ()
-///
-/// Description:
-/// This function returns a chunk of memory with size and alignment specified
-/// by PageSize.
-void *AllocatePage() {
-#if USE_MEMALIGN
-  void *Addr;
-  posix_memalign(&Addr, PageSize, PageSize);
-  return Addr;
-#else
-  //
-  // Try to allocate a page that has already been created.
-  //
-  if (FreePages && !FreePages->empty()) {
-    void *Result = FreePages->back();
-    FreePages->pop_back();
-    return Result;
-  }
-
-  // Allocate several pages, and put the extras on the freelist...
-  unsigned NumToAllocate = 8;
-  char *Ptr = (char*)AllocateSpaceWithMMAP(PageSize*NumToAllocate);
-
-  if (!FreePages) {
-    // Avoid using operator new!
-    FreePages = (FreePagesListType*)malloc(sizeof(FreePagesListType));
-    // Use placement new now.
-    new (FreePages) std::vector<void*, llvm::MallocAllocator<void*> >();
-  }
-  for (unsigned i = 1; i != NumToAllocate; ++i)
-    FreePages->push_back(Ptr+i*PageSize);
-  return Ptr;
-#endif
-}
-
-
-/// FreePage - This function returns the specified page to the pagemanager for
-/// future allocation.
-void FreePage(void *Page) {
-#if USE_MEMALIGN
-  free(Page);
-#else
-  assert(FreePages && "No pages allocated!");
-  FreePages->push_back(Page);
-#endif
-}
diff --git a/poolalloc/runtime/FreeListAllocator/PageManager.h b/poolalloc/runtime/FreeListAllocator/PageManager.h
deleted file mode 100644
index a04b3da..0000000
--- a/poolalloc/runtime/FreeListAllocator/PageManager.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===- PageManager.h - Allocates memory on page boundaries ------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interface used by the pool allocator to allocate memory
-// on large alignment boundaries.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PAGEMANAGER_H
-#define PAGEMANAGER_H
-
-/// InitializePageManager - This function must be called before any other page
-/// manager accesses are performed.  It may be called multiple times.
-/// 
-unsigned int InitializePageManager();
-
-/// PageSize - Contains the size of the unit of memory allocated by
-/// AllocatePage.  This is a value that is typically several kilobytes in size,
-/// and is guaranteed to be a power of two.
-///
-extern unsigned PageSize;
-
-/// AllocatePage - This function returns a chunk of memory with size and
-/// alignment specified by getPageSize().
-void *AllocatePage();
-
-/// FreePage - This function returns the specified page to the pagemanager for
-/// future allocation.
-void FreePage(void *Page);
-
-/// GetPages - Just allocate the specified pages on a page boundary.  This is
-///            a hack for large arrays.
-void * GetPages (unsigned NumPages);
-
-#endif
diff --git a/poolalloc/runtime/FreeListAllocator/PoolAllocator.cpp b/poolalloc/runtime/FreeListAllocator/PoolAllocator.cpp
deleted file mode 100644
index fa1dae6..0000000
--- a/poolalloc/runtime/FreeListAllocator/PoolAllocator.cpp
+++ /dev/null
@@ -1,463 +0,0 @@
-//===- PoolAllocatorChained.cpp - Implementation of poolallocator runtime -===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file is yet another implementation of the LLVM pool allocator runtime
-// library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PoolAllocator.h"
-#include "PageManager.h"
-#include "PoolSlab.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "llvm/Support/DataTypes.h"
-
-//===----------------------------------------------------------------------===//
-//
-//  PoolSlab implementation
-//
-//===----------------------------------------------------------------------===//
-
-//
-// Function: createSlab ()
-//
-// Description:
-//  Allocate memory for a new slab and initialize the slab.
-//
-struct SlabHeader *
-createSlab (PoolTy * Pool, unsigned int NodesPerSlab = 0)
-{
-  // Maximum number of nodes per page
-  unsigned int MaxNodesPerPage = Pool->MaxNodesPerPage;
-
-  // Pointer to the new Slab
-  struct SlabHeader * NewSlab;
-
-  // Save locally the node size
-  unsigned int NodeSize = Pool->NodeSize;
-
-  //
-  // If we can't fit a node into a page, give up.
-  //
-  if (NodeSize > PageSize)
-  {
-    fprintf (stderr, "Node size %d is larger than page size %d.\n", NodeSize, PageSize);
-    fflush (stderr);
-    abort();
-  }
-
-  if (MaxNodesPerPage == 0)
-  {
-    fprintf (stderr, "Node size is too large\n");
-    fflush (stderr);
-    abort();
-  }
-
-  //
-  // Allocate the memory for the slab and initialize its contents.
-  //
-  if (NodesPerSlab > MaxNodesPerPage)
-  {
-    unsigned NumBytes = sizeof(SlabHeader) + NodeSize * NodesPerSlab;
-    NumBytes += NodesPerSlab * sizeof (NodePointer);
-    NewSlab = (struct SlabHeader *)GetPages((NumBytes+PageSize-1)/PageSize);
-    if (NewSlab == NULL)
-    {
-      fprintf (stderr, "Failed large allocation\n");
-      fflush (stderr);
-      abort();
-    }
-    NewSlab->IsArray = 1;
-    NewSlab->IsManaged = 0;
-  }
-  else
-  {
-    NewSlab = (struct SlabHeader *) AllocatePage ();
-    if (NewSlab == NULL)
-    {
-      fprintf (stderr, "Failed regular allocation\n");
-      fflush (stderr);
-      abort();
-    }
-    NewSlab->IsArray = 0;
-    NewSlab->IsManaged = 1;
-
-    //
-    // Bump the number of nodes in the slab up to the maximum.
-    //
-    if (NodesPerSlab == 0)
-    {
-      NodesPerSlab = MaxNodesPerPage;
-    }
-  }
-  NewSlab->NodesPerSlab = NodesPerSlab;
-  NewSlab->NextFreeData = NewSlab->LiveNodes = 0;
-  NewSlab->Next = NULL;
-  NewSlab->Data = (unsigned char *)NewSlab + sizeof (struct SlabHeader) + ((NodesPerSlab) * sizeof (NodePointer));
-  return NewSlab;
-}
-
-//
-// Function: BlockOwner ()
-//
-// Description:
-//  Find the slab that owns this block.
-//
-inline struct SlabHeader *
-BlockOwner (unsigned int PageSize, NodePointer p)
-{
-  //
-  // Convert the node pointer into a slab pointer.
-  //
-  return reinterpret_cast<struct SlabHeader *>(reinterpret_cast<intptr_t>(p.Next) & ~(PageSize - 1));
-}
-
-//
-// Function: DataOwner ()
-//
-// Description:
-//  This function finds the slab that owns this data block.
-//
-inline struct SlabHeader *
-DataOwner (unsigned int PageSize, void * p)
-{
-  return reinterpret_cast<struct SlabHeader *>(reinterpret_cast<intptr_t>(p) & ~(PageSize - 1));
-}
-
-//===----------------------------------------------------------------------===//
-//
-//  Pool allocator library implementation
-//
-//===----------------------------------------------------------------------===//
-
-//
-// Function: poolinit ()
-//
-// Description:
-//    Initialize a pool descriptor for a new pool.
-//
-// Inputs:
-//    NodeSize - The typical size allocated for this pool.
-//
-// Outputs:
-//    Pool - An initialized pool.
-//
-void
-poolinit (PoolTy *Pool, unsigned int NodeSize)
-{
-  assert(Pool && "Null pool pointer passed into poolinit!\n");
-
-  // We must alway return unique pointers, even if they asked for 0 bytes
-  Pool->NodeSize = NodeSize ? NodeSize : 1;
-  Pool->Slabs = Pool->ArraySlabs = Pool->FastArray = NULL;
-  Pool->FreeList.Next = NULL;
-#if 0
-  Pool->FreeablePool = 1;
-#endif /* 0 */
-
-  // Calculate once for this pool the maximum number of nodes per page
-  Pool->MaxNodesPerPage = (PageSize - sizeof (struct SlabHeader)) / (sizeof (NodePointer) + NodeSize);
-
-  //
-  // Initialize the page manager.
-  //
-  InitializePageManager ();
-
-  return;
-}
-
-void
-poolmakeunfreeable(PoolTy *Pool)
-{
-  assert(Pool && "Null pool pointer passed in to poolmakeunfreeable!\n");
-#if 0
-  Pool->FreeablePool = 0;
-#endif
-}
-
-// pooldestroy - Release all memory allocated for a pool
-//
-void
-pooldestroy(PoolTy *Pool)
-{
-  // Pointer to scan Slab list
-  struct SlabHeader * Slabp;
-  struct SlabHeader * Nextp;
-
-  assert(Pool && "Null pool pointer passed in to pooldestroy!\n");
-
-  //
-  // Deallocate all of the pages.
-  //
-  Slabp = Pool->Slabs;
-  while (Slabp != NULL)
-  {
-    // Record the next step
-    Nextp = Slabp->Next;
-
-    // Deallocate the memory if it is managed.
-    if (Slabp->IsManaged)
-    {
-      FreePage (Slabp);
-    }
-
-    // Move to the next node.
-    Slabp = Nextp;
-  }
-
-  return;
-}
-
-//
-// Function: poolallocarray ()
-//
-// Description:
-//  Allocate an array of contiguous nodes.
-//
-// Inputs:
-//  Pool - The pool from which to allocate memory.
-//  ArraySize - The size of the array in number of elements (not bytes).
-//
-static void *
-poolallocarray(PoolTy* Pool, unsigned ArraySize)
-{
-  assert(Pool && "Null pool pointer passed into poolallocarray!\n");
-
-  //
-  // Scan the list of array slabs to see if there is one that fits.
-  //
-  struct SlabHeader * Slabp = Pool->FastArray;
-  struct SlabHeader ** Prevp = &(Pool->ArraySlabs);
-
-  //
-  // Check to see if we have an array slab that has extra space that we
-  // can use.
-  //
-  if ((Slabp != NULL) &&
-      ((Pool->MaxNodesPerPage - Slabp->NextFreeData) >= ArraySize))
-  {
-    //
-    // Increase the reference count for this slab.
-    //
-    Slabp->LiveNodes++;
-
-    //
-    // Find the data for the caller.
-    //
-    void * Data = (Slabp->Data + (Pool->NodeSize * Slabp->NextFreeData));
-
-    //
-    // Disconnect the array slab if it is full.
-    //
-    if (((Slabp->NextFreeData) += ArraySize) >= Pool->MaxNodesPerPage)
-    {
-      Pool->FastArray = NULL;
-    }
-
-    return (Data);
-  }
-
-  //
-  // Scan through all the free array slabs to see if they are large
-  // enough.
-  //
-  for (Slabp = Pool->ArraySlabs; Slabp != NULL; Slabp=Slabp->Next)
-  {
-    //
-    // Check to see if this slab has enough room.
-    //
-    if (Slabp->NodesPerSlab >= ArraySize)
-    {
-      //
-      // Make the previous node point to the next node.
-      //
-      (*Prevp)->Next = Slabp->Next;
-
-      //
-      // Increase the reference count of the slab.
-      //
-      ++(Slabp->LiveNodes);
-
-      //
-      // Adjust the slab's index of data blocks.
-      //
-      Slabp->NextFreeData = ArraySize;
-
-      //
-      // Return the slab's data.
-      //
-      return (Slabp->Data);
-    }
-
-    //
-    // Move on to the next node.
-    //
-    Prevp = &(Slabp->Next);
-  }
-
-  //
-  // Create a new slab and mark it as an array.
-  //
-  Slabp = createSlab (Pool, ArraySize);
-  Slabp->IsArray = 1;
-  Slabp->LiveNodes = 1;
-  Slabp->NextFreeData = ArraySize;
-
-  //
-  // If the array has some space, link it into the array "free" list.
-  //
-  if ((Slabp->IsManaged == 1) && (Slabp->NextFreeData != Pool->MaxNodesPerPage))
-  {
-    Pool->FastArray = Slabp;
-  }
-
-  //
-  // Return the list of blocks to the caller.
-  //
-  return (Slabp->Data);
-}
-
-
-//
-// Function: poolalloc ()
-//
-// Description:
-//    Allocates memory from the pool.  Typically, we will allocate memory
-//    in the same size chunks as we usually do, but sometimes, we will have to
-//    allocate more.
-//
-void *
-poolalloc(PoolTy *Pool, unsigned BytesWanted)
-{
-  // Pointer to the data block to return
-  void * Data;
-
-  // Slab Pointer
-  struct SlabHeader * Slabp;
-
-  assert(Pool && "Null pool pointer passed in to poolalloc!\n");
-
-  // Make sure we allocate something
-  BytesWanted = (BytesWanted ? BytesWanted : 1);
-
-  //
-  // Determine if we can satisfy this request normally.  If not, then
-  // we need to use the array allocation instead.
-  //
-  if (Pool->NodeSize < BytesWanted)
-  {
-    return (poolallocarray (Pool, (BytesWanted+Pool->NodeSize-1)/Pool->NodeSize));
-  }
-
-  //
-  // If we don't have a slab, this is our first initialization.  Do some
-  // quick stuff.
-  //
-  Slabp = Pool->Slabs;
-  if (Slabp == NULL)
-  {
-    Pool->Slabs = Slabp = createSlab (Pool);
-    (Slabp->NextFreeData)++;
-    return (Slabp->Data);
-  }
-
-  //
-  // Determine whether we can allocate from the current slab.
-  //
-  if (Slabp->NextFreeData < Slabp->NodesPerSlab)
-  {
-    //
-    // Return the block and increment the index of the next free data block.
-    //
-    Data = (Slabp->Data + (Pool->NodeSize * Slabp->NextFreeData));
-    (Slabp->NextFreeData)++;
-    return (Data);
-  }
-
-  //
-  // We have a slab, but it doesn't have any new blocks.
-  // Check the free list to see if we can use any recycled blocks.
-  //
-  if (Pool->FreeList.Next == NULL)
-  {
-    //
-    // Create a new slab and add it to the list.
-    //
-    Slabp = createSlab (Pool);
-    Slabp->Next = Pool->Slabs;
-    Pool->Slabs = Slabp;
-
-    (Slabp->NextFreeData)++;
-
-    //
-    // Return the block and increment the index of the next free data block.
-    //
-    return (Slabp->Data);
-  }
-
-  //
-  // Determine which slab owns this block.
-  //
-  Slabp = BlockOwner (PageSize, Pool->FreeList);
-
-  //
-  // Find the data block that corresponds with this pointer.
-  //
-  Data = (Slabp->Data + (Pool->NodeSize * (Pool->FreeList.Next - &(BlockList(Slabp)[0]))));
-
-  //
-  // Unlink the first block.
-  //
-  Pool->FreeList.Next = Pool->FreeList.Next->Next;
-
-  return Data;
-}
-
-void
-poolfree (PoolTy * Pool, void * Block)
-{
-  assert(Pool && "Null pool pointer passed in to poolfree!\n");
-  assert(Block && "Null block pointer passed in to poolfree!\n");
-
-  //
-  // Find the header of the memory block.
-  //
-  struct SlabHeader * slabp = DataOwner (PageSize, Block);
-
-  //
-  // If the owning slab is an array, add it back to the free array list.
-  //
-  if (slabp->IsArray)
-  {
-    if ((--slabp->LiveNodes) == 0)
-    {
-      slabp->Next = Pool->ArraySlabs;
-      Pool->ArraySlabs = slabp;
-    }
-    return;
-  }
-
-  //
-  // Find the node pointer that corresponds to this data block.
-  //
-  NodePointer Node;
-  Node.Next = &(BlockList(slabp)[((unsigned char *)Block - slabp->Data)/Pool->NodeSize]);
-
-  //
-  // Add the node back to the free list.
-  //
-  Node.Next->Next = Pool->FreeList.Next;
-  Pool->FreeList.Next = Node.Next;
-
-  return;
-}
-
diff --git a/poolalloc/runtime/FreeListAllocator/PoolAllocator.h b/poolalloc/runtime/FreeListAllocator/PoolAllocator.h
deleted file mode 100644
index 684889f..0000000
--- a/poolalloc/runtime/FreeListAllocator/PoolAllocator.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//===- PoolAllocator.h - Pool allocator runtime interface file --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interface which is implemented by the LLVM pool
-// allocator runtime library.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POOLALLOCATOR_RUNTIME_H
-#define POOLALLOCATOR_RUNTIME_H
-
-#include "PoolSlab.h"
-
-typedef struct PoolTy {
-#if 0
-  // The size of a page on this system
-  unsigned int PageSize;
-#endif
-
-  // NodeSize - Keep track of the object size tracked by this pool
-  unsigned NodeSize;
-
-  // Maximum number of nodes per page
-  unsigned int MaxNodesPerPage;
-
-  // Pointer to the list of slabs allocated for this pool
-  struct SlabHeader * Slabs;
-
-  // Linked list of slabs used to hold arrays
-  struct SlabHeader * ArraySlabs;
-
-  // Pointer to the fast alloc array
-  struct SlabHeader * FastArray;
-
-  // Pointer to the free list of nodes
-  struct NodePointer FreeList;
-
-#if 0
-  // FreeablePool - Set to false if the memory from this pool cannot be freed
-  // before destroy.
-  //
-  unsigned FreeablePool;
-#endif /* 0 */
-} PoolTy;
-
-extern "C" {
-  void poolinit(PoolTy *Pool, unsigned NodeSize);
-  void poolmakeunfreeable(PoolTy *Pool);
-  void pooldestroy(PoolTy *Pool);
-  void *poolalloc(PoolTy *Pool, unsigned NodeSize);
-  void poolfree(PoolTy *Pool, void *Node);
-}
-
-#endif
diff --git a/poolalloc/runtime/FreeListAllocator/PoolSlab.h b/poolalloc/runtime/FreeListAllocator/PoolSlab.h
deleted file mode 100644
index 38be39c..0000000
--- a/poolalloc/runtime/FreeListAllocator/PoolSlab.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//===- Slab.h - Implementation of poolallocator runtime -------------------===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This header file defines structures used internally by the free list pool
-// allocator library.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _POOLSLAB_H
-#define _POOLSLAB_H
-
-#include "PoolAllocator.h"
-#include "PageManager.h"
-#include <assert.h>
-#include <stdlib.h>
-
-//===----------------------------------------------------------------------===//
-//
-//  Defintion of Slab Data Structures
-//
-//===----------------------------------------------------------------------===//
-
-//
-// Provide a pointer type that points to pointers of itself.
-//
-typedef struct NodePointer
-{
-  struct NodePointer * Next;
-} NodePointer;
-
-//
-// Structure: SlabHeader
-//
-// Description:
-//  This structure defines the beginning of a memory slab.  A memory slab
-//  consists of book keeping information, a list of pointers, and a list of
-//  data blocks.
-//
-//  There is a 1 to 1 correspondence between the pointers and the data blocks.
-//  Pointer[x] points to Pointer[y] if Data[y] is linked after Data[x] in a
-//  linked list.  In other words, Pointer[x] is the "next" pointer for Data[x].
-//
-//  The slab is allocated on a page boundary, so it is easy to find match
-//  pointers to blocks if you know the offset of one of them.
-//
-struct SlabHeader
-{
-  // Flags whether this is an array
-  unsigned char IsArray : 1;
-
-  // Flags whether this is managed by the Page Manager
-  unsigned char IsManaged : 1;
-
-  // Number of nodes per slab
-  unsigned int NodesPerSlab;
-
-  // Reference Count
-  unsigned int LiveNodes;
-
-  // Next free data block
-  unsigned int NextFreeData;
-
-  // Pointer to the next slab
-  struct SlabHeader * Next;
-
-  // Pointer to the data area (will be in the same page)
-  unsigned char * Data;
-
-  // Pointer to the list of nodes
-  //NodePointer* BlockList;
-};
-#define BlockList(x) ((NodePointer*)((char*)x + sizeof(SlabHeader)))
-
-#endif /* _POOLSLAB_H */
diff --git a/poolalloc/runtime/FreeListAllocator/README.txt b/poolalloc/runtime/FreeListAllocator/README.txt
deleted file mode 100644
index faa660a..0000000
--- a/poolalloc/runtime/FreeListAllocator/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This implementation of the pool allocator runtime library is not used,
-and is kept for historical reasons.  Please use the FL2 allocator
-instead.
diff --git a/poolalloc/runtime/HeapFrag/HeapFrag.c b/poolalloc/runtime/HeapFrag/HeapFrag.c
deleted file mode 100644
index be55f3d..0000000
--- a/poolalloc/runtime/HeapFrag/HeapFrag.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*===- HeapFrag.c - Routine to fragment the heap --------------------------===//
-//
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines a function 'EnsureHeapFragmentation', which is used to
-// artificially fragment the heap, to show the value of pool allocator even for
-// silly benchmarks that never free memory and thus have no fragmentation at
-// all.
-//
-//===----------------------------------------------------------------------===*/
-
-#include <stdlib.h>
-
-static void **AllocateNodes(unsigned N, unsigned Size) {
-  void **Spine = (void**)malloc(N*sizeof(void*));
-  unsigned i;
-  for (i = 0; i != N; ++i)
-    Spine[i] = malloc(Size);
-  return Spine;
-}
-
-static void DeallocateNodes(void **Spine, unsigned N, unsigned Stride) {
-  unsigned i;
-  for (i = 0; i < N; i += Stride) {
-    free(Spine[i]);
-    Spine[i] = 0;
-  }
-}
-
-
-void EnsureHeapFragmentation() {
-  void **DS1 = AllocateNodes(10000, 16);
-  void **DS2;
-  void *A, *B, *C;
-  DeallocateNodes(DS1+9000, 1000, 1);  /* Free last elements */
-  DS2 = AllocateNodes(40000, 40);
-  DeallocateNodes(DS1, 9000, 2);
-  DeallocateNodes(DS2, 40000, 2);
-  DS1 = AllocateNodes(2000, 8);
-  DeallocateNodes(DS1, 2000, 2);
-  DeallocateNodes(DS1, 2000, 3);
-}
diff --git a/poolalloc/runtime/HeapFrag/Makefile b/poolalloc/runtime/HeapFrag/Makefile
deleted file mode 100755
index 8f7b510..0000000
--- a/poolalloc/runtime/HeapFrag/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-LEVEL = ../..
-#BYTECODE_LIBRARY=1
-#SHARED_LIBRARY=1
-LIBRARYNAME=heapfrag
-
-include $(LEVEL)/Makefile.common
-
-# Always build optimized and debug versions
-all:: $(LIBNAME_OBJO) $(LIBNAME_OBJG)
diff --git a/poolalloc/runtime/Makefile b/poolalloc/runtime/Makefile
deleted file mode 100644
index 299b463..0000000
--- a/poolalloc/runtime/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Relative path to the top of the source tree.
-#
-LEVEL=..
-
-#
-# List all of the subdirectories that we will compile.
-#
-DIRS=FreeListAllocator FL2Allocator
-
-include $(LEVEL)/Makefile.common
diff --git a/poolalloc/runtime/PoolAllocator/Makefile b/poolalloc/runtime/PoolAllocator/Makefile
deleted file mode 100644
index 85cb8fe..0000000
--- a/poolalloc/runtime/PoolAllocator/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-LEVEL = ../..
-SHARED_LIBRARY=1
-LIBRARYNAME=poolalloc_rt_old
-
-include $(LEVEL)/Makefile.common
-
-# Always build optimized and debug versions
-all:: $(LIBNAME_OBJO) $(LIBNAME_OBJG)
diff --git a/poolalloc/runtime/PoolAllocator/PageManager.cpp b/poolalloc/runtime/PoolAllocator/PageManager.cpp
deleted file mode 100644
index 3eb96bc..0000000
--- a/poolalloc/runtime/PoolAllocator/PageManager.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===- PageManager.cpp - Implementation of the page allocator -------------===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the PageManager.h interface.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PageManager.h"
-#ifndef _POSIX_MAPPED_FILES
-#define _POSIX_MAPPED_FILES
-#endif
-#include <unistd.h>
-#include "poolalloc/MMAPSupport.h"
-#include "poolalloc/Support/MallocAllocator.h"
-#include <vector>
-#include <iostream>
-
-// Define this if we want to use memalign instead of mmap to get pages.
-// Empirically, this slows down the pool allocator a LOT.
-#define USE_MEMALIGN 0
-
-unsigned PageSize = 0;
-
-void InitializePageManager() {
-  if (!PageSize) PageSize = sysconf(_SC_PAGESIZE);
-}
-
-// Explicitly use the malloc allocator here, to avoid depending on the C++
-// runtime library.
-typedef std::vector<void*, llvm::MallocAllocator<void*> > FreePagesListType;
-
-static FreePagesListType &getFreePageList() {
-  static FreePagesListType *FreePages = 0;
-
-  if (!FreePages) {
-    // Avoid using operator new!
-    FreePages = (FreePagesListType*)malloc(sizeof(FreePagesListType));
-    // Use placement new now.
-    new (FreePages) std::vector<void*, llvm::MallocAllocator<void*> >();
-  }
-  return *FreePages;
-}
-
-/// AllocatePage - This function returns a chunk of memory with size and
-/// alignment specified by PageSize.
-void *AllocatePage() {
-#if USE_MEMALIGN
-  void *Addr;
-  posix_memalign(&Addr, PageSize, PageSize);
-  return Addr;
-#else
-
-  FreePagesListType &FPL = getFreePageList();
-
-  if (!FPL.empty()) {
-    void *Result = FPL.back();
-    FPL.pop_back();
-    return Result;
-  }
-
-  // Allocate several pages, and put the extras on the freelist...
-  unsigned NumToAllocate = 8;
-  char *Ptr = (char*)AllocateSpaceWithMMAP(NumToAllocate*PageSize);
-  for (unsigned i = 1; i != NumToAllocate; ++i)
-    FPL.push_back(Ptr+i*PageSize);
-  return Ptr;
-#endif
-}
-
-void *AllocateNPages(unsigned Num) {
-  if (Num <= 1) return AllocatePage();
-  return AllocateSpaceWithMMAP(Num*PageSize);
-}
-
-/// FreePage - This function returns the specified page to the pagemanager for
-/// future allocation.
-void FreePage(void *Page) {
-#if USE_MEMALIGN
-  free(Page);
-#else
-  FreePagesListType &FPL = getFreePageList();
-  FPL.push_back(Page);
-#endif
-}
diff --git a/poolalloc/runtime/PoolAllocator/PageManager.h b/poolalloc/runtime/PoolAllocator/PageManager.h
deleted file mode 100644
index ec57652..0000000
--- a/poolalloc/runtime/PoolAllocator/PageManager.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- PageManager.h - Allocates memory on page boundaries ------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interface used by the pool allocator to allocate memory
-// on large alignment boundaries.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PAGEMANAGER_H
-#define PAGEMANAGER_H
-
-/// InitializePageManager - This function must be called before any other page
-/// manager accesses are performed.  It may be called multiple times.
-/// 
-void InitializePageManager();
-
-/// PageSize - Contains the size of the unit of memory allocated by
-/// AllocatePage.  This is a value that is typically several kilobytes in size,
-/// and is guaranteed to be a power of two.
-///
-extern unsigned PageSize;
-
-/// AllocatePage - This function returns a chunk of memory with size and
-/// alignment specified by getPageSize().
-void *AllocatePage();
-
-/// AllocateNPages - 
-void *AllocateNPages(unsigned Num);
-
-/// FreePage - This function returns the specified page to the pagemanager for
-/// future allocation.
-void FreePage(void *Page);
-
-#endif
diff --git a/poolalloc/runtime/PoolAllocator/PoolAllocator.h b/poolalloc/runtime/PoolAllocator/PoolAllocator.h
deleted file mode 100644
index 2973908..0000000
--- a/poolalloc/runtime/PoolAllocator/PoolAllocator.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- PoolAllocator.h - Pool allocator runtime interface file --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interface which is implemented by the LLVM pool
-// allocator runtime library.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef POOLALLOCATOR_RUNTIME_H
-#define POOLALLOCATOR_RUNTIME_H
-
-typedef struct PoolTy {
-  // Ptr1, Ptr2 - Implementation specified data pointers.
-  void *Ptr1, *Ptr2;
-
-  // NodeSize - Keep track of the object size tracked by this pool
-  unsigned NodeSize;
-
-  // FreeablePool - Set to false if the memory from this pool cannot be freed
-  // before destroy.
-  //
-  unsigned FreeablePool;
-} PoolTy;
-
-extern "C" {
-  void poolinit(PoolTy *Pool, unsigned NodeSize);
-  void poolmakeunfreeable(PoolTy *Pool);
-  void pooldestroy(PoolTy *Pool);
-  void *poolalloc(PoolTy *Pool, unsigned NumBytes);
-  void poolfree(PoolTy *Pool, void *Node);
-  void poolcheck(PoolTy *Pool, void *Node);
-}
-
-#endif
diff --git a/poolalloc/runtime/PoolAllocator/PoolAllocatorBitMask.cpp b/poolalloc/runtime/PoolAllocator/PoolAllocatorBitMask.cpp
deleted file mode 100644
index 0ec99b5..0000000
--- a/poolalloc/runtime/PoolAllocator/PoolAllocatorBitMask.cpp
+++ /dev/null
@@ -1,725 +0,0 @@
-//===- PoolAllocatorBitMask.cpp - Implementation of poolallocator runtime -===//
-// 
-//                       The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file is one possible implementation of the LLVM pool allocator runtime
-// library.
-//
-// This uses the 'Ptr1' field to maintain a linked list of slabs that are either
-// empty or are partially allocated from.  The 'Ptr2' field of the PoolTy is
-// used to track a linked list of slabs which are full, ie, all elements have
-// been allocated from them.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PoolAllocator.h"
-#include "PageManager.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-//===----------------------------------------------------------------------===//
-//
-//  PoolSlab implementation
-//
-//===----------------------------------------------------------------------===//
-
-
-// PoolSlab Structure - Hold multiple objects of the current node type.
-// Invariants: FirstUnused <= UsedEnd
-//
-struct PoolSlab {
-  PoolSlab **PrevPtr, *Next;
-  bool isSingleArray;   // If this slab is used for exactly one array
-
-private:
-  // FirstUnused - First empty node in slab
-  unsigned short FirstUnused;
-
-  // UsedBegin - The first node in the slab that is used.
-  unsigned short UsedBegin;
-
-  // UsedEnd - 1 past the last allocated node in slab. 0 if slab is empty
-  unsigned short UsedEnd;
-
-  // NumNodesInSlab - This contains the number of nodes in this slab, which
-  // effects the size of the NodeFlags vector, and indicates the number of nodes
-  // which are in the slab.
-  unsigned short NumNodesInSlab;
-
-  // NodeFlagsVector - This array contains two bits for each node in this pool
-  // slab.  The first (low address) bit indicates whether this node has been
-  // allocated, and the second (next higher) bit indicates whether this is the
-  // start of an allocation.
-  //
-  // This is a variable sized array, which has 2*NumNodesInSlab bits (rounded up
-  // to 4 bytes).
-  unsigned NodeFlagsVector[];
-  
-  bool isNodeAllocated(unsigned NodeNum) {
-    return NodeFlagsVector[NodeNum/16] & (1 << (NodeNum & 15));
-  }
-
-  void markNodeAllocated(unsigned NodeNum) {
-    NodeFlagsVector[NodeNum/16] |= 1 << (NodeNum & 15);
-  }
-
-  void markNodeFree(unsigned NodeNum) {
-    NodeFlagsVector[NodeNum/16] &= ~(1 << (NodeNum & 15));
-  }
-
-  void setStartBit(unsigned NodeNum) {
-    NodeFlagsVector[NodeNum/16] |= 1 << ((NodeNum & 15)+16);
-  }
-
-  bool isStartOfAllocation(unsigned NodeNum) {
-    return NodeFlagsVector[NodeNum/16] & (1 << ((NodeNum & 15)+16));
-  }
-  
-  void clearStartBit(unsigned NodeNum) {
-    NodeFlagsVector[NodeNum/16] &= ~(1 << ((NodeNum & 15)+16));
-  }
-
-public:
-  // create - Create a new (empty) slab and add it to the end of the Pools list.
-  static PoolSlab *create(PoolTy *Pool);
-
-  // createSingleArray - Create a slab for a large singlearray with NumNodes
-  // entries in it, returning the pointer into the pool directly.
-  static void *createSingleArray(PoolTy *Pool, unsigned NumNodes);
-
-  // getSlabSize - Return the number of nodes that each slab should contain.
-  static unsigned getSlabSize(PoolTy *Pool) {
-    // We need space for the header...
-    unsigned NumNodes = PageSize-sizeof(PoolSlab);
-    
-    // We need space for the NodeFlags...
-    unsigned NodeFlagsBytes = NumNodes/Pool->NodeSize * 2 / 8;
-    NumNodes -= (NodeFlagsBytes+3) & ~3;  // Round up to int boundaries.
-
-    // Divide the remainder among the nodes!
-    return NumNodes / Pool->NodeSize;
-  }
-
-  void addToList(PoolSlab **PrevPtrPtr) {
-    PoolSlab *InsertBefore = *PrevPtrPtr;
-    *PrevPtrPtr = this;
-    PrevPtr = PrevPtrPtr;
-    Next = InsertBefore;
-    if (InsertBefore) InsertBefore->PrevPtr = &Next;
-  }
-
-  void unlinkFromList() {
-    *PrevPtr = Next;
-    if (Next) Next->PrevPtr = PrevPtr;
-  }
-
-  unsigned getSlabSize() const {
-    return NumNodesInSlab;
-  }
-
-  // destroy - Release the memory for the current object.
-  void destroy();
-
-  // isEmpty - This is a quick check to see if this slab is completely empty or
-  // not.
-  bool isEmpty() const { return UsedEnd == 0; }
-
-  // isFull - This is a quick check to see if the slab is completely allocated.
-  //
-  bool isFull() const { return isSingleArray || FirstUnused == getSlabSize(); }
-
-  // allocateSingle - Allocate a single element from this pool, returning -1 if
-  // there is no space.
-  int allocateSingle();
-
-  // allocateMultiple - Allocate multiple contiguous elements from this pool,
-  // returning -1 if there is no space.
-  int allocateMultiple(unsigned Num);
-
-  // getElementAddress - Return the address of the specified element.
-  void *getElementAddress(unsigned ElementNum, unsigned ElementSize) {
-    char *Data = (char*)&NodeFlagsVector[((unsigned)NumNodesInSlab+15)/16];
-    return &Data[ElementNum*ElementSize];
-  }
-  const void *getElementAddress(unsigned ElementNum, unsigned ElementSize)const{
-    const char *Data =
-      (const char *)&NodeFlagsVector[(unsigned)(NumNodesInSlab+15)/16];
-    return &Data[ElementNum*ElementSize];
-  }
-
-  // containsElement - Return the element number of the specified address in
-  // this slab.  If the address is not in slab, return -1.
-  int containsElement(void *Ptr, unsigned ElementSize) const;
-
-  // freeElement - Free the single node, small array, or entire array indicated.
-  void freeElement(unsigned short ElementIdx);
-  
-  // lastNodeAllocated - Return one past the last node in the pool which is
-  // before ScanIdx, that is allocated.  If there are no allocated nodes in this
-  // slab before ScanIdx, return 0.
-  unsigned lastNodeAllocated(unsigned ScanIdx);
-};
-
-// create - Create a new (empty) slab and add it to the end of the Pools list.
-PoolSlab *PoolSlab::create(PoolTy *Pool) {
-  unsigned NodesPerSlab = getSlabSize(Pool);
-
-  unsigned Size = sizeof(PoolSlab) + 4*((NodesPerSlab+15)/16) +
-                  Pool->NodeSize*getSlabSize(Pool);
-  assert(Size <= PageSize && "Trying to allocate a slab larger than a page!");
-  PoolSlab *PS = (PoolSlab*)AllocatePage();
-
-  PS->NumNodesInSlab = NodesPerSlab;
-  PS->isSingleArray = 0;  // Not a single array!
-  PS->FirstUnused = 0;    // Nothing allocated.
-  PS->UsedBegin   = 0;    // Nothing allocated.
-  PS->UsedEnd     = 0;    // Nothing allocated.
-
-  // Add the slab to the list...
-  PS->addToList((PoolSlab**)&Pool->Ptr1);
-  return PS;
-}
-
-void *PoolSlab::createSingleArray(PoolTy *Pool, unsigned NumNodes) {
-  // FIXME: This wastes memory by allocating space for the NodeFlagsVector
-  unsigned NodesPerSlab = getSlabSize(Pool);
-  assert(NumNodes > NodesPerSlab && "No need to create a single array!");
-
-  unsigned NumPages = (NumNodes+NodesPerSlab-1)/NodesPerSlab;
-  PoolSlab *PS = (PoolSlab*)AllocateNPages(NumPages);
-  assert(PS && "poolalloc: Could not allocate memory!");
-
-  PS->addToList((PoolSlab**)&Pool->Ptr2);
-
-  PS->isSingleArray = 1;  // Not a single array!
-  *(unsigned*)&PS->FirstUnused = NumPages;
-  return PS->getElementAddress(0, 0);
-}
-
-void PoolSlab::destroy() {
-  if (isSingleArray)
-    for (unsigned NumPages = *(unsigned*)&FirstUnused; NumPages != 1;--NumPages)
-      FreePage((char*)this + (NumPages-1)*PageSize);
-
-  FreePage(this);
-}
-
-// allocateSingle - Allocate a single element from this pool, returning -1 if
-// there is no space.
-int PoolSlab::allocateSingle() {
-  // If the slab is a single array, go on to the next slab.  Don't allocate
-  // single nodes in a SingleArray slab.
-  if (isSingleArray) return -1;
-
-  unsigned SlabSize = getSlabSize();
-
-  // Check to see if there are empty entries at the end of the slab...
-  if (UsedEnd < SlabSize) {
-    // Mark the returned entry used
-    unsigned short UE = UsedEnd;
-    markNodeAllocated(UE);
-    setStartBit(UE);
-    
-    // If we are allocating out the first unused field, bump its index also
-    if (FirstUnused == UE)
-      FirstUnused++;
-    
-    // Return the entry, increment UsedEnd field.
-    return UsedEnd++;
-  }
-  
-  // If not, check to see if this node has a declared "FirstUnused" value that
-  // is less than the number of nodes allocated...
-  //
-  if (FirstUnused < SlabSize) {
-    // Successfully allocate out the first unused node
-    unsigned Idx = FirstUnused;
-    markNodeAllocated(Idx);
-    setStartBit(Idx);
-    
-    // Increment FirstUnused to point to the new first unused value...
-    // FIXME: this should be optimized
-    unsigned short FU = FirstUnused;
-    do {
-      ++FU;
-    } while (FU != SlabSize && isNodeAllocated(FU));
-    FirstUnused = FU;
-    
-    return Idx;
-  }
-  
-  return -1;
-}
-
-// allocateMultiple - Allocate multiple contiguous elements from this pool,
-// returning -1 if there is no space.
-int PoolSlab::allocateMultiple(unsigned Size) {
-  // Do not allocate small arrays in SingleArray slabs
-  if (isSingleArray) return -1;
-
-  // For small array allocation, check to see if there are empty entries at the
-  // end of the slab...
-  if (UsedEnd+Size <= getSlabSize()) {
-    // Mark the returned entry used and set the start bit
-    unsigned UE = UsedEnd;
-    setStartBit(UE);
-    for (unsigned i = UE; i != UE+Size; ++i)
-      markNodeAllocated(i);
-    
-    // If we are allocating out the first unused field, bump its index also
-    if (FirstUnused == UE)
-      FirstUnused += Size;
-
-    // Increment UsedEnd
-    UsedEnd += Size;
-
-    // Return the entry
-    return UE;
-  }
-
-  // If not, check to see if this node has a declared "FirstUnused" value
-  // starting which Size nodes can be allocated
-  //
-  unsigned Idx = FirstUnused;
-  while (Idx+Size <= getSlabSize()) {
-    assert(!isNodeAllocated(Idx) && "FirstUsed is not accurate!");
-
-    // Check if there is a continuous array of Size nodes starting FirstUnused
-    unsigned LastUnused = Idx+1;
-    for (; LastUnused != Idx+Size && !isNodeAllocated(LastUnused); ++LastUnused)
-      /*empty*/;
-
-    // If we found an unused section of this pool which is large enough, USE IT!
-    if (LastUnused == Idx+Size) {
-      setStartBit(Idx);
-      // FIXME: this loop can be made more efficient!
-      for (unsigned i = Idx; i != Idx + Size; ++i)
-        markNodeAllocated(i);
-
-      // This should not be allocating on the end of the pool, so we don't need
-      // to bump the UsedEnd pointer.
-      assert(Idx != UsedEnd && "Shouldn't allocate at end of pool!");
-
-      // If we are allocating out the first unused field, bump its index also.
-      if (Idx == FirstUnused)
-        FirstUnused += Size;
-      
-      // Return the entry
-      return Idx;
-    }
-
-    // Otherwise, try later in the pool.  Find the next unused entry.
-    Idx = LastUnused;
-    while (Idx+Size <= getSlabSize() && isNodeAllocated(Idx))
-      ++Idx;
-  }
-
-  return -1;
-}
-
-
-// containsElement - Return the element number of the specified address in
-// this slab.  If the address is not in slab, return -1.
-int PoolSlab::containsElement(void *Ptr, unsigned ElementSize) const {
-  const void *FirstElement = getElementAddress(0, 0);
-  if (FirstElement <= Ptr) {
-    unsigned Delta = (char*)Ptr-(char*)FirstElement;
-    unsigned Index = Delta/ElementSize;
-    if (Index < getSlabSize()) {
-      assert(Delta % ElementSize == 0 &&
-             "Freeing pointer into the middle of an element!");
-      return Index;
-    }
-  }
-  return -1;
-}
-
-
-// freeElement - Free the single node, small array, or entire array indicated.
-void PoolSlab::freeElement(unsigned short ElementIdx) {
-  assert(isNodeAllocated(ElementIdx) &&
-         "poolfree: Attempt to free node that is already freed\n");
-  assert(!isSingleArray && "Cannot free an element from a single array!");
-
-  // Mark this element as being free!
-  markNodeFree(ElementIdx);
-
-  // If this slab is not a SingleArray
-  assert(isStartOfAllocation(ElementIdx) &&
-         "poolfree: Attempt to free middle of allocated array\n");
-  
-  // Free the first cell
-  clearStartBit(ElementIdx);
-  markNodeFree(ElementIdx);
-  
-  // Free all nodes if this was a small array allocation.
-  unsigned short ElementEndIdx = ElementIdx + 1;
-
-  // FIXME: This should use manual strength reduction to produce decent code.
-  unsigned short UE = UsedEnd;
-  while (ElementEndIdx != UE &&
-         !isStartOfAllocation(ElementEndIdx) && 
-         isNodeAllocated(ElementEndIdx)) {
-    markNodeFree(ElementEndIdx);
-    ++ElementEndIdx;
-  }
-  
-  // Update the first free field if this node is below the free node line
-  if (ElementIdx < FirstUnused) FirstUnused = ElementIdx;
-
-  // Update the first used field if this node was the first used.
-  if (ElementIdx == UsedBegin) UsedBegin = ElementEndIdx;
-  
-  // If we are freeing the last element in a slab, shrink the UsedEnd marker
-  // down to the last used node.
-  if (ElementEndIdx == UE) {
-#if 0
-      printf("FU: %d, UB: %d, UE: %d  FREED: [%d-%d)",
-           FirstUnused, UsedBegin, UsedEnd, ElementIdx, ElementEndIdx);
-#endif
-
-    // If the user is freeing the slab entirely in-order, it's quite possible
-    // that all nodes are free in the slab.  If this is the case, simply reset
-    // our pointers.
-    if (UsedBegin == UE) {
-      //printf(": SLAB EMPTY\n");
-      FirstUnused = 0;
-      UsedBegin = 0;
-      UsedEnd = 0;
-    } else if (FirstUnused == ElementIdx) {
-      // Freed the last node(s) in this slab.
-      FirstUnused = ElementIdx;
-      UsedEnd = ElementIdx;
-    } else {
-      UsedEnd = lastNodeAllocated(ElementIdx);
-      assert(FirstUnused <= UsedEnd &&
-             "FirstUnused field was out of date!");
-    }
-  }
-}
-
-unsigned PoolSlab::lastNodeAllocated(unsigned ScanIdx) {
-  // Check the last few nodes in the current word of flags...
-  unsigned CurWord = ScanIdx/16;
-  unsigned short Flags = NodeFlagsVector[CurWord] & 0xFFFF;
-  if (Flags) {
-    // Mask off nodes above this one
-    Flags &= (1 << ((ScanIdx & 15)+1))-1;
-    if (Flags) {
-      // If there is still something in the flags vector, then there is a node
-      // allocated in this part.  The goto is a hack to get the uncommonly
-      // executed code away from the common code path.
-      //printf("A: ");
-      goto ContainsAllocatedNode;
-    }
-  }
-
-  // Ok, the top word doesn't contain anything, scan the whole flag words now.
-  --CurWord;
-  while (CurWord != ~0U) {
-    Flags = NodeFlagsVector[CurWord] & 0xFFFF;
-    if (Flags) {
-      // There must be a node allocated in this word!
-      //printf("B: ");
-      goto ContainsAllocatedNode;
-    }
-    CurWord--;
-  }
-  return 0;
-
-ContainsAllocatedNode:
-  // Figure out exactly which node is allocated in this word now.  The node
-  // allocated is the one with the highest bit set in 'Flags'.
-  //
-  // This should use __builtin_clz to get the value, but this builtin is only
-  // available with GCC 3.4 and above.  :(
-  assert(Flags && "Should have allocated node!");
-  
-  unsigned short MSB;
-#if GCC3_4_EVENTUALLY
-  MSB = 16 - ::__builtin_clz(Flags);
-#else
-  for (MSB = 15; (Flags & (1U << MSB)) == 0; --MSB)
-    /*empty*/;
-#endif
-
-  assert((1U << MSB) & Flags);   // The bit should be set
-  assert((~(1U << MSB) & Flags) < Flags);// Removing it should make flag smaller
-  ScanIdx = CurWord*16 + MSB;
-  assert(isNodeAllocated(ScanIdx));
-  return ScanIdx;
-}
-
-
-//===----------------------------------------------------------------------===//
-//
-//  Pool allocator library implementation
-//
-//===----------------------------------------------------------------------===//
-
-// poolinit - Initialize a pool descriptor to empty
-//
-void poolinit(PoolTy *Pool, unsigned NodeSize) {
-  assert(Pool && "Null pool pointer passed into poolinit!\n");
-
-  // Ensure the page manager is initialized
-  InitializePageManager();
-
-  // We must alway return unique pointers, even if they asked for 0 bytes
-  Pool->NodeSize = NodeSize ? NodeSize : 1;
-  Pool->Ptr1 = Pool->Ptr2 = 0;
-  Pool->FreeablePool = 1;
-}
-
-void poolmakeunfreeable(PoolTy *Pool) {
-  assert(Pool && "Null pool pointer passed in to poolmakeunfreeable!\n");
-  Pool->FreeablePool = 0;
-}
-
-// pooldestroy - Release all memory allocated for a pool
-//
-void pooldestroy(PoolTy *Pool) {
-  assert(Pool && "Null pool pointer passed in to pooldestroy!\n");
-
-  // Free any partially allocated slabs
-  PoolSlab *PS = (PoolSlab*)Pool->Ptr1;
-  while (PS) {
-    PoolSlab *Next = PS->Next;
-    PS->destroy();
-    PS = Next;
-  }
-
-  // Free the completely allocated slabs
-  PS = (PoolSlab*)Pool->Ptr2;
-  while (PS) {
-    PoolSlab *Next = PS->Next;
-    PS->destroy();
-    PS = Next;
-  }
-}
-
-
-// poolallocarray - a helper function used to implement poolalloc, when the
-// number of nodes to allocate is not 1.
-static void *poolallocarray(PoolTy* Pool, unsigned Size) {
-  assert(Pool && "Null pool pointer passed into poolallocarray!\n");
-  if (Size > PoolSlab::getSlabSize(Pool))
-    return PoolSlab::createSingleArray(Pool, Size);    
-
-  PoolSlab *PS = (PoolSlab*)Pool->Ptr1;
-
-  // Loop through all of the slabs looking for one with an opening
-  for (; PS; PS = PS->Next) {
-    int Element = PS->allocateMultiple(Size);
-    if (Element != -1) {
-      // We allocated an element.  Check to see if this slab has been completely
-      // filled up.  If so, move it to the Ptr2 list.
-      if (PS->isFull()) {
-        PS->unlinkFromList();
-        PS->addToList((PoolSlab**)&Pool->Ptr2);
-      }
-      return PS->getElementAddress(Element, Pool->NodeSize);
-    }
-  }
-  
-  PoolSlab *New = PoolSlab::create(Pool);
-  int Idx = New->allocateMultiple(Size);
-  assert(Idx == 0 && "New allocation didn't return zero'th node?");
-  return New->getElementAddress(0, 0);
-}
-
-void *poolalloc(PoolTy *Pool, unsigned NumBytes) {
-  assert(Pool && "Null pool pointer passed in to poolalloc!\n");
-
-  unsigned NodeSize = Pool->NodeSize;
-  unsigned NodesToAllocate = (NumBytes+NodeSize-1)/NodeSize;
-  if (NodesToAllocate > 1)
-    return poolallocarray(Pool, NodesToAllocate);
-
-  // Special case the most common situation, where a single node is being
-  // allocated.
-  PoolSlab *PS = (PoolSlab*)Pool->Ptr1;
-
-  if (__builtin_expect(PS != 0, 1)) {
-    int Element = PS->allocateSingle();
-    if (__builtin_expect(Element != -1, 1)) {
-      // We allocated an element.  Check to see if this slab has been
-      // completely filled up.  If so, move it to the Ptr2 list.
-      if (__builtin_expect(PS->isFull(), false)) {
-        PS->unlinkFromList();
-        PS->addToList((PoolSlab**)&Pool->Ptr2);
-      }
-      
-      return PS->getElementAddress(Element, NodeSize);
-    }
-
-    // Loop through all of the slabs looking for one with an opening
-    for (PS = PS->Next; PS; PS = PS->Next) {
-      int Element = PS->allocateSingle();
-      if (Element != -1) {
-        // We allocated an element.  Check to see if this slab has been
-        // completely filled up.  If so, move it to the Ptr2 list.
-        if (PS->isFull()) {
-          PS->unlinkFromList();
-          PS->addToList((PoolSlab**)&Pool->Ptr2);
-        }
-        
-        return PS->getElementAddress(Element, NodeSize);
-      }
-    }
-  }
-
-  // Otherwise we must allocate a new slab and add it to the list
-  PoolSlab *New = PoolSlab::create(Pool);
-  int Idx = New->allocateSingle();
-  assert(Idx == 0 && "New allocation didn't return zero'th node?");
-  return New->getElementAddress(0, 0);
-}
-
-
-
-// SearchForContainingSlab - Do a brute force search through the list of
-// allocated slabs for the node in question.
-//
-static PoolSlab *SearchForContainingSlab(PoolTy *Pool, void *Node,
-                                         unsigned &TheIndex) {
-  PoolSlab *PS = (PoolSlab*)Pool->Ptr1;
-  unsigned NodeSize = Pool->NodeSize;
-
-  // Search the partially allocated slab list for the slab that contains this
-  // node.
-  int Idx = -1;
-  if (PS) {               // Pool->Ptr1 could be null if Ptr2 isn't
-    for (; PS; PS = PS->Next) {
-      Idx = PS->containsElement(Node, NodeSize);
-      if (Idx != -1) break;
-    }
-  }
-
-  // If the partially allocated slab list doesn't contain it, maybe the
-  // completely allocated list does.
-  if (PS == 0) {
-    PS = (PoolSlab*)Pool->Ptr2;
-    assert(Idx == -1 && "Found node but don't have PS?");
-    
-    while (1) {
-      assert(PS && "poolfree: node being free'd not found in allocation "
-             " pool specified!\n");
-      Idx = PS->containsElement(Node, NodeSize);
-      if (Idx != -1) break;
-      PS = PS->Next;
-    }
-  }
-  TheIndex = Idx;
-  return PS;
-}
-
-// same as above, but this is the actual run time check called from the
-// code to check if the node belongs to the pool or not, so will be 
-// like crazy, (use a hash table ?)
-// FIXME cannot call this for pointers in the middle of the node yet,
-// asserts out if we do
-void poolcheck(PoolTy *Pool, void *Node) {
-   PoolSlab *PS = (PoolSlab*)Pool->Ptr1;
-  unsigned NodeSize = Pool->NodeSize;
-
-  // Search the partially allocated slab list for the slab that contains this
-  // node.
-  int Idx = -1;
-  if (PS) {               // Pool->Ptr1 could be null if Ptr2 isn't
-    for (; PS; PS = PS->Next) {
-      Idx = PS->containsElement(Node, NodeSize);
-      if (Idx != -1) break;
-    }
-  }
-
-  // If the partially allocated slab list doesn't contain it, maybe the
-  // completely allocated list does.
-  if (PS == 0) {
-    PS = (PoolSlab*)Pool->Ptr2;
-    while (1) {
-      assert(PS && "poolfree: node being free'd not found in allocation "
-             " pool specified!\n");
-      Idx = PS->containsElement(Node, NodeSize);
-      if (Idx != -1) break;
-      PS = PS->Next;
-    }
-  }
-}
-
-void poolfree(PoolTy *Pool, void *Node) {
-  assert(Pool && "Null pool pointer passed in to poolfree!\n");
-  PoolSlab *PS;
-  unsigned Idx;
-  if (0) {                  // THIS SHOULD BE SET FOR SAFECODE!
-    unsigned TheIndex;
-    PS = SearchForContainingSlab(Pool, Node, TheIndex);
-    Idx = TheIndex;
-  } else {
-    // Since it is undefined behavior to free a node which has not been
-    // allocated, we know that the pointer coming in has to be a valid node
-    // pointer in the pool.  Mask off some bits of the address to find the base
-    // of the pool.
-    assert((PageSize & PageSize-1) == 0 && "Page size is not a power of 2??");
-    PS = (PoolSlab*)((long)Node & ~(PageSize-1));
-
-    if (PS->isSingleArray) {
-      PS->unlinkFromList();
-      PS->destroy();
-      return;
-    }
-
-    Idx = PS->containsElement(Node, Pool->NodeSize);
-    assert((int)Idx != -1 && "Node not contained in slab??");
-  }
-
-  // If PS was full, it must have been in list #2.  Unlink it and move it to
-  // list #1.
-  if (PS->isFull()) {
-    // Now that we found the node, we are about to free an element from it.
-    // This will make the slab no longer completely full, so we must move it to
-    // the other list!
-    PS->unlinkFromList(); // Remove it from the Ptr2 list.
-
-    PoolSlab **InsertPosPtr = (PoolSlab**)&Pool->Ptr1;
-
-    // If the partially full list has an empty node sitting at the front of the
-    // list, insert right after it.
-    if ((*InsertPosPtr)->isEmpty())
-      InsertPosPtr = &(*InsertPosPtr)->Next;
-
-    PS->addToList(InsertPosPtr);     // Insert it now in the Ptr1 list.
-  }
-
-  // Free the actual element now!
-  PS->freeElement(Idx);
-
-  // Ok, if this slab is empty, we unlink it from the of slabs and either move
-  // it to the head of the list, or free it, depending on whether or not there
-  // is already an empty slab at the head of the list.
-  //
-  if (PS->isEmpty()) {
-    PS->unlinkFromList();   // Unlink from the list of slabs...
-    
-    // If we can free this pool, check to see if there are any empty slabs at
-    // the start of this list.  If so, delete the FirstSlab!
-    PoolSlab *FirstSlab = (PoolSlab*)Pool->Ptr1;
-    if (Pool->FreeablePool && FirstSlab && FirstSlab->isEmpty()) {
-      // Here we choose to delete FirstSlab instead of the pool we just freed
-      // from because the pool we just freed from is more likely to be in the
-      // processor cache.
-      FirstSlab->unlinkFromList();
-      FirstSlab->destroy();
-    }
-
-    // Link our slab onto the head of the list so that allocations will find it
-    // efficiently.    
-    PS->addToList((PoolSlab**)&Pool->Ptr1);
-  }
-}
diff --git a/poolalloc/runtime/README.txt b/poolalloc/runtime/README.txt
deleted file mode 100644
index 1b1786c..0000000
--- a/poolalloc/runtime/README.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-//===---------------------------------------------------------------------===//
-This directory contains the pool allocator runtime library implementations.
-
-The only fully maintained runtime library implementation is in the FL2Allocator
-directory.  This supports the pool allocator, the bump pointer optimization,
-and the pointer compression runtime.
-
-The implementation in the FreeListAllocator directory is much slower than
-the FL2Allocator and has not been updated.
-
-The implementation in the PoolAllocator directory is also probably out of date,
-and is much slower than FL2, but is used by the SAFECode project, which cannot
-allow pool metadata to be stored intermixed with program data.
-
-
diff --git a/poolalloc/test/Makefile b/poolalloc/test/Makefile
deleted file mode 100644
index d0f9098..0000000
--- a/poolalloc/test/Makefile
+++ /dev/null
@@ -1,264 +0,0 @@
-##===- poolalloc/test/Makefile -----------------------------*- Makefile -*-===##
-#
-# Define the default test rule, which allows people to just type 'make test' in
-# this directory.
-#
-##===----------------------------------------------------------------------===##
-
-# The default target in this directory is the test:: target
-test::
-
-LEVEL = ..
-include $(LEVEL)/Makefile.common
-
-ifndef NO_STABLE_NUMBERS
-STABLERUN := GET_STABLE_NUMBERS=1
-else
-STABLERUN :=
-endif
-
-ifndef NO_LARGE_SIZE
-LARGESIZE := LARGE_PROBLEM_SIZE=1
-else
-LARGESIZE :=
-endif
-
-
-LARGE_PROBLEM_SIZE_DIRS := \
-   MultiSource/Benchmarks/llubenchmark \
-   MultiSource/Benchmarks/FreeBench \
-   MultiSource/Benchmarks/Ptrdist \
-   MultiSource/Benchmarks/MallocBench/cfrac \
-   SingleSource/Benchmarks/McGill
-
-LARGE_PROBLEM_SIZE_DIRS := \
-   $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(LARGE_PROBLEM_SIZE_DIRS))
-
-NORMAL_PROBLEM_SIZE_DIRS := \
-   MultiSource/Benchmarks/SciMark2-C/scimark2 \
-   External/Povray \
-   External/FPGrowth \
-   External/Namd \
-   External/SPEC/CINT2000/164.gzip \
-   External/SPEC/CINT2000/175.vpr \
-   External/SPEC/CINT2000/176.gcc \
-   External/SPEC/CINT2000/252.eon \
-   External/SPEC/CINT2000/253.perlbmk \
-   External/SPEC/CINT2000/254.gap \
-   External/SPEC/CINT2000/300.twolf
-
-NORMAL_PROBLEM_SIZE_DIRS := \
-   $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(NORMAL_PROBLEM_SIZE_DIRS))
-
-#
-# Problems for Pointer Compression
-#
-PCLARGE_PROBLEM_SIZE_DIRS := \
-   MultiSource/Benchmarks/Olden/bh \
-   MultiSource/Benchmarks/Olden/bisort \
-   MultiSource/Benchmarks/Olden/em3d \
-   MultiSource/Benchmarks/Olden/power \
-   MultiSource/Benchmarks/llubenchmark \
-   MultiSource/Benchmarks/Ptrdist \
-   MultiSource/Benchmarks/MallocBench/cfrac
-
-PCLARGE_PROBLEM_SIZE_DIRS := \
-   $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(PCLARGE_PROBLEM_SIZE_DIRS))
-
-PCNORMAL_PROBLEM_SIZE_DIRS := \
-   MultiSource/Benchmarks/Olden/perimeter \
-   MultiSource/Benchmarks/Olden/treeadd \
-   MultiSource/Benchmarks/Olden/tsp \
-   MultiSource/Benchmarks/Olden/voronoi
-
-PCNORMAL_PROBLEM_SIZE_DIRS := \
-   $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(PCNORMAL_PROBLEM_SIZE_DIRS))
-
-##############################################################################
-# Targets for gathering statistics for programs for papers
-##############################################################################
-
-# Program tests for Pool Allocation
-progtest::
-	for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=poolalloc \
-                   LARGE_PROBLEM_SIZE=1 report.html) \
-        done
-	for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=poolalloc \
-                   report.html) \
-        done
-	@for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=poolalloc \
-                   LARGE_PROBLEM_SIZE=1 report) \
-        done
-	@for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=poolalloc \
-                   report) \
-        done
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-# Program tests for Pointer Compression
-progpc::
-	for dir in $(PCLARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \
-                   LARGE_PROBLEM_SIZE=1 report.html) \
-        done
-	for dir in $(PCNORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \
-                   report.html) \
-        done
-	@for dir in $(PCLARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \
-                   LARGE_PROBLEM_SIZE=1 report) \
-        done
-	@for dir in $(PCNORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \
-                   report) \
-        done
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-progperf::
-	for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=perf \
-                   LARGE_PROBLEM_SIZE=1 report.html report.csv) \
-        done
-	for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=perf \
-                   report.html report.csv) \
-        done
-	@for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=perf \
-                   LARGE_PROBLEM_SIZE=1 report report.csv) \
-        done
-	@for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=perf \
-                   report report.csv) \
-        done
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-progp4perf::
-	for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=p4perf \
-                   LARGE_PROBLEM_SIZE=1 report.html report.csv) \
-        done
-	for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=p4perf \
-                   report.html report.csv) \
-        done
-	@for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=p4perf \
-                   LARGE_PROBLEM_SIZE=1 report report.csv) \
-        done
-	@for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=p4perf \
-                   report report.csv) \
-        done
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-progcputrack::
-	for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=cputrack \
-                   LARGE_PROBLEM_SIZE=1 report.html report.csv) \
-        done
-	for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=cputrack \
-                   report.html report.csv) \
-        done
-	@for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \
-            (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=cputrack \
-                   LARGE_PROBLEM_SIZE=1 report report.csv) \
-        done
-	@for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \
-	    (cd $$dir; \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=cputrack \
-                   report report.csv) \
-        done
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-
-##############################################################################
-# Targets for running tests and gathering statistics for arbitrary tests
-##############################################################################
-
-# test target - Descend into projects/llvm-test and run the TEST.poolalloc.Makefile
-# tests...
-test::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=poolalloc \
-                   $(LARGESIZE) $(STABLERUN) report report.html)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-pacompiletime::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=pacompiletime \
-                   report report.html)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-ptrcomp::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \
-                   $(LARGESIZE) $(STABLERUN) report report.html)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-ptrcomptest::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \
-                   $(LARGESIZE) report)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-vtl::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=pavtl \
-                   test report report.csv)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-perf::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=perf \
-                   test report report.csv)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-optzn::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=optzn \
-                   $(LARGESIZE) $(STABLERUN) test report report.csv)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-p4perf::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=p4perf \
-                   test report report.csv)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-strace::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=strace \
-                   test)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
-cputrack::
-	(cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \
-               PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=cputrack \
-                   report report.csv)
-	@printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a"
-
diff --git a/poolalloc/test/TEST.cputrack.Makefile b/poolalloc/test/TEST.cputrack.Makefile
deleted file mode 100755
index a40008c..0000000
--- a/poolalloc/test/TEST.cputrack.Makefile
+++ /dev/null
@@ -1,216 +0,0 @@
-##===- poolalloc/TEST.cputrack.Makefile --------------------*- Makefile -*-===##
-#
-# Makefile for measuring cache miss rates with the Solaris cputrack utility
-#
-##===----------------------------------------------------------------------===##
-
-TESTNAME = $*
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-#
-# The Solaris cputrack command samples the performance counters every x number
-# of ticks (by default, I believe one tick == 1 second).
-#
-# Use the cputrack command and set the interval to the maximum amount of time
-# that the program is allowed to run.
-#
-# Care must be taken to ensure that the counters do not wrap around.  So
-# far, I don't believe this has happened, as that would require over
-# 4 billion events per execution.
-#
-CPUTRACK       := cputrack -T $(RUNTIMELIMIT)
-
-#
-# Events for the Ultrasparc IIIi processor.
-#
-# EVENTS_DC_RD:
-#   Read accesses and misses on the L1 Data Cache.
-#
-# EVENTS_DC_WR:
-#   Write accesses and misses on the L1 Data Cache.  This probably isn't as
-#   valuable as it sounds because the cache is write through, non allocate.
-#   So, as I understand it, the L2 and Write Caches are where the write action
-#   is.
-#
-# EVENTS_EC_MISS:
-#   Read misses and overall misses for the L2 Cache (aka the Embedded Cache).
-#
-EVENTS_DC_RD   := -c pic0=DC_rd,pic1=DC_rd_miss
-EVENTS_DC_WR   := -c pic0=DC_wr,pic1=DC_wr_miss
-EVENTS_EC_MISS := -c pic0=EC_rd_miss,pic1=EC_misses
-EVENTS_TLB     := -c pic0=EC_rd_miss,pic1=DTLB_miss
-EVENTS_WC      := -c pic0=Cycle_cnt,pic1=WC_miss
-
-############################################################################
-# Rules for running the tests
-############################################################################
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-#
-# Generate events for Pool Allocated CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.dcrd): \
-Output/$(TEST).pa.%.dcrd: Output/%.poolalloc.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_DC_RD)   -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.ec): \
-Output/$(TEST).pa.%.ec: Output/%.poolalloc.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_EC_MISS) -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.wc): \
-Output/$(TEST).pa.%.wc: Output/%.poolalloc.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_WC)      -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.tlb): \
-Output/$(TEST).pa.%.tlb: Output/%.poolalloc.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_TLB)      -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-#
-# Generate events for CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.dcrd): \
-Output/$(TEST).%.dcrd: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_DC_RD)   -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.ec): \
-Output/$(TEST).%.ec: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_EC_MISS) -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.wc): \
-Output/$(TEST).%.wc: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_WC)      -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.tlb): \
-Output/$(TEST).%.tlb: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	$(VERB) $(CPUTRACK) $(EVENTS_TLB)      -o $@ $< $(RUN_OPTIONS) < $(STDIN_FILENAME) > /dev/null 2>&1
-
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.dcrd): \
-Output/$(TEST).pa.%.dcrd: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_DC_RD)   -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.ec): \
-Output/$(TEST).pa.%.ec: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_EC_MISS) -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.wc): \
-Output/$(TEST).pa.%.wc: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_WC)      -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.tlb): \
-Output/$(TEST).pa.%.tlb: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_TLB)      -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.dcrd): \
-Output/$(TEST).%.dcrd: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_DC_RD)   -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.ec): \
-Output/$(TEST).%.ec: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_EC_MISS) -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.wc): \
-Output/$(TEST).%.wc: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_WC)      -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).%.tlb): \
-Output/$(TEST).%.tlb: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(CPUTRACK) $(EVENTS_TLB)      -o $(BUILD_OBJ_DIR)/$@ $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-endif
-
-############################################################################
-# Report Targets
-############################################################################
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).%.dcrd)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.dcrd)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).%.wc)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.wc)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).%.ec)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.ec)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).%.tlb)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).pa.%.tlb)     \
-	                   $(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe.time) \
-                     $(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe.time)
-	@echo "Program:" $* > $@
-	@echo "-------------------------------------------------------------" >> $@
-	@printf "CBE-PA-L1-Data-Reads: " >> $@
-	@cat  Output/$(TEST).pa.$*.dcrd | tail -1 | awk '{print $$4}' >> $@
-	@printf "CBE-PA-L1-Data-Misses: " >> $@
-	@cat  Output/$(TEST).pa.$*.dcrd | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-L1-Data-Reads: " >> $@
-	@cat  Output/$(TEST).$*.dcrd | tail -1 | awk '{print $$4}' >> $@
-	@printf "CBE-L1-Data-Misses: " >> $@
-	@cat  Output/$(TEST).$*.dcrd | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-PA-WCache-Misses: " >> $@
-	@cat  Output/$(TEST).pa.$*.wc | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-WCache-Misses: " >> $@
-	@cat  Output/$(TEST).$*.wc | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-PA-L2-Data-Read-Misses: " >> $@
-	@cat  Output/$(TEST).pa.$*.ec | tail -1 | awk '{print $$4}' >> $@
-	@printf "CBE-PA-L2-Data-Misses: " >> $@
-	@cat  Output/$(TEST).pa.$*.ec | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-L2-Data-Read-Misses: " >> $@
-	@cat  Output/$(TEST).$*.ec | tail -1 | awk '{print $$4}' >> $@
-	@printf "CBE-L2-Data-Misses: " >> $@
-	@cat  Output/$(TEST).$*.ec | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-PA-DTLB-Misses: " >> $@
-	@cat  Output/$(TEST).pa.$*.tlb | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-DTLB-Misses: " >> $@
-	@cat  Output/$(TEST).$*.tlb | tail -1 | awk '{print $$5}' >> $@
-	@printf "CBE-RUN-TIME: " >> $@
-	@grep "^program" Output/$*.nonpa.out-cbe.time >> $@
-	@printf "CBE-PA-RUN-TIME: " >> $@
-	@grep "^program" Output/$*.poolalloc.out-cbe.time >> $@
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe.time) \
-                       $(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe.time)
diff --git a/poolalloc/test/TEST.cputrack.report b/poolalloc/test/TEST.cputrack.report
deleted file mode 100644
index 07b0549..0000000
--- a/poolalloc/test/TEST.cputrack.report
+++ /dev/null
@@ -1,96 +0,0 @@
-##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-4] ne "*" and
-      $Cols->[$Col-1] != "0") {
-    return sprintf "%1.3f", $Cols->[$Col-4]/$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-sub Sum {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-2] ne "*") {
-    return sprintf "%1.3f", $Cols->[$Col-2]+$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    $Time = sprintf("%7.3f", $1*60.0+$2);
-  }
-  return $Time;
-}
-
-@LatexColumns = (2, 3, 4, 5, 6, 7);
-
-my $OLDEN     = 'MultiSource/Benchmarks/Olden';
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "$OLDEN/bh/bh"           => 'bh',
-                     "$OLDEN/bisort/bisort"   => 'bisort',
-                     "$OLDEN/em3d/em3d"       => 'em3d',
-                     "$OLDEN/health/health"   => 'health',
-                     "$OLDEN/mst/mst"         => 'mst',
-                     "$OLDEN/perimeter/perimeter" => 'perimeter',
-                     "$OLDEN/power/power"     => 'power',
-                     "$OLDEN/treeadd/treeadd" => 'treeadd',
-                     "$OLDEN/tsp/tsp"         => 'tsp',
-                     "$OLDEN/voronoi/voronoi" => 'voronoi',
-                     '-' => '-',
-                     "$FREEBENCH/analyzer/analyzer"     => 'analyzer',
-#                     "$FREEBENCH/distray/distray"       => 'distray',
-#                     "$FREEBENCH/fourinarow/fourinarow" => 'fourinarow',
-#                     "$FREEBENCH/mason/mason"           => 'mason',
-                     "$FREEBENCH/neural/neural"         => 'neural',
-                     "$FREEBENCH/pcompress2/pcompress2" => 'pcompress2',
-                     "$FREEBENCH/pifft/pifft"           => 'pifft',
-                     '-' => '-',
-                     "$PTRDIST/anagram/anagram"       => 'anagram',
-                     "$PTRDIST/bc/bc"                 => 'bc',
-                     "$PTRDIST/ft/ft"                 => 'ft',
-                     "$PTRDIST/ks/ks"                 => 'ks',
-                     "$PTRDIST/yacr2/yacr2"           => 'yacr2',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- [],
-# Times
- ["NormalL1DataRead",    'CBE-L1-Data-Reads: ([0-9]+)'],
- ["NormalL1DataMiss",    'CBE-L1-Data-Misses: ([0-9]+)'],
- ["NormalL2DataReadMiss",    'CBE-L2-Data-Read-Misses: ([0-9]+)'],
- ["NormalL2DataMiss",    'CBE-L2-Data-Misses: ([0-9]+)'],
- ["NormalWriteCacheMiss",    'CBE-WCache-Misses: ([0-9]+)'],
- ["NormalDTLBMiss",    'CBE-DTLB-Misses: ([0-9]+)'],
-
- ["PoolAllocL1DataRead",    'CBE-PA-L1-Data-Reads: ([0-9]+)'],
- ["PoolAllocL1DataMiss",    'CBE-PA-L1-Data-Misses: ([0-9]+)'],
- ["PoolAllocL2DataReadMiss",    'CBE-PA-L2-Data-Read-Misses: ([0-9]+)'],
- ["PoolAllocL2DataMiss",    'CBE-PA-L2-Data-Misses: ([0-9]+)'],
- ["PoolAllocWriteCacheMiss",    'CBE-PA-WCache-Misses: ([0-9]+)'],
- ["PoolAllocDTLBMiss",    'CBE-PA-DTLB-Misses: ([0-9]+)'],
- []
-);
-
diff --git a/poolalloc/test/TEST.dsgraph.Makefile b/poolalloc/test/TEST.dsgraph.Makefile
deleted file mode 100755
index 0408db4..0000000
--- a/poolalloc/test/TEST.dsgraph.Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-##===- TEST.dsgraph.Makefile -------------------------------*- Makefile -*-===##
-#
-# This recursively traverses the programs, computing DSGraphs for each of the
-# programs in the testsuite.
-#
-##===----------------------------------------------------------------------===##
-
-RELDIR  := $(subst $(PROJ_OBJ_ROOT),,$(PROJ_OBJ_DIR))
-
-# We require the programs to be linked with libdummy
-include $(LEVEL)/Makefile.dummylib
-
-# PASS - The dsgraph pass to run: ds, bu, td
-PASS := td
-
-ANALYZE_OPTS := -stats -time-passes -only-print-main-ds -dsstats
-ANALYZE_OPTS +=  -instcount -disable-verify
-MEM := -track-memory -time-passes
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.lib.bc Output/%.LOC.txt $(LOPT)
-	@# Gather data
-	-($(LOPT) -analyze -$(PASS)datastructure $(ANALYZE_OPTS) $<)> $@.time.1 2>&1
-	-($(LOPT) -analyze $(MEM) -$(PASS)datastructure -disable-verify $<)> $@.mem.1 2>&1
-	-($(LOPT) -steens-aa -time-passes -disable-output $<) > $@.time.2 2>&1
-	-($(LOPT) -steens-aa $(MEM) -disable-output $<) > $@.mem.2 2>&1
-	@# Emit data.
-	@echo -n "LOC: " > $@
-	@cat Output/$*.LOC.txt >> $@
-	@echo -n "MEMINSTS: " >> $@
-	-@grep 'Number of memory instructions' $@.time.1 >> $@
-	@echo -n "FOLDEDNODES: " >> $@
-	-@grep 'Number of folded nodes' $@.time.1 >> $@
-	@echo -n "TOTALNODES: " >> $@
-	-@grep 'Graphs contain.*nodes total' $@.time.1 >> $@
-	@echo -n "MAXGRAPHSIZE: " >> $@
-	-@grep 'Maximum graph size' $@.time.1 >> $@
-	@echo -n "GLOBALSGRAPH: " >> $@
-	-@grep 'td.GlobalsGraph.dot' $@.time.1 >> $@
-	@echo -n "SCCSIZE: " >> $@
-	-@grep 'Maximum SCC Size in Call Graph' $@.time.1 >> $@
-	@echo -n "ACCESSES TYPED: " >> $@
-	-@grep 'Number of loads/stores which are fully typed' $@.time.1 >> $@
-	@echo -n "ACCESSES UNTYPED: " >> $@
-	-@grep 'Number of loads/stores which are untyped' $@.time.1 >> $@
-	@# Emit timing data.
-	@echo -n "TIME: " >> $@
-	-@grep '  Local Data Structure' $@.time.1 >> $@
-	@echo -n "TIME: " >> $@
-	-@grep '  Bottom-up Data Structure' $@.time.1 >> $@
-	@echo -n "TIME: " >> $@
-	-@grep '  Top-down Data Structure' $@.time.1 >> $@
-	@echo -n "TIME: " >> $@
-	-@grep '  Steensgaard.s alias analysis' $@.time.2 >> $@
-	@# Emit space data.
-	@echo -n "MEM: " >> $@
-	-@grep '  Local Data Structure' $@.mem.1 >> $@
-	@echo -n "MEM: " >> $@
-	-@grep '  Bottom-up Data Structure' $@.mem.1 >> $@
-	@echo -n "MEM: " >> $@
-	-@grep '  Top-down Data Structure' $@.mem.1 >> $@
-	@echo -n "MEM: " >> $@
-	-@grep '  Steensgaard.s alias analysis' $@.mem.2 >> $@
-
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-# Define REPORT_DEPENDENCIES so that the report is regenerated if analyze or
-# dummylib is updated.
-#
-REPORT_DEPENDENCIES := $(DUMMYLIB) $(LOPT)
-
diff --git a/poolalloc/test/TEST.dsgraph.gnuplot b/poolalloc/test/TEST.dsgraph.gnuplot
deleted file mode 100755
index e3e230a..0000000
--- a/poolalloc/test/TEST.dsgraph.gnuplot
+++ /dev/null
@@ -1,70 +0,0 @@
-## set size  square 0.5,0.5
-## set key left top
-set nokey
-set pointsize 3
-
-set terminal postscript
-
-
-##------- log(Time) vs. log(MemOps) --------
-set output "runtimes.timeVmem.ps"
-set logscale xy
-#set xrange [5:50000]
-#set yrange [0.0005:5]
-set xlabel "Total Memory Operations" "TimesRoman,24"
-set ylabel "Execution time (sec)" "TimesRoman,24"
-plot 'timeVmem.txt' title "Time vs. Memory Ops"
-#replot 0.000002 * x * log10(x)
-
-##------- log(Time) vs. log(LOC) --------
-set output "runtimes.timeloc.ps"
-set logscale xy
-#set xrange [10:100000]
-#set yrange [0.0005:5]
-set xlabel "Lines of Code" "TimesRoman,24"
-set ylabel "Execution time (sec)" "TimesRoman,24"
-plot 'timeVloc.txt' title "Time vs. LOC"
-replot 0.000002 * x * log10(x)
-
-set terminal png
-
-##------- log(Time) vs. log(MemOps) --------
-set output "runtimes.timeVmem.png"
-set logscale xy
-#set xrange [5:50000]
-#set yrange [0.0005:5]
-set xlabel "Total Memory Operations" "TimesRoman,24"
-set ylabel "Execution time (sec)" "TimesRoman,24"
-plot 'timeVmem.txt' title "Time vs. Memory Ops"
-#replot 0.000002 * x * log10(x)
-
-##------- log(Time) vs. log(LOC) --------
-set output "runtimes.timeloc.png"
-set logscale xy
-#set xrange [10:100000]
-#set yrange [0.0005:5]
-set xlabel "Lines of Code" "TimesRoman,24"
-set ylabel "Execution time (sec)" "TimesRoman,24"
-plot 'timeVloc.txt' title "Time vs. LOC"
-replot 0.000002 * x * log10(x)
-
-
-
-
-##------- log(Time/LOC) vs. log(LOC) --------
-set nologscale y
-set logscale x
-set xrange [100:100000]
-set yrange [2:20]
-set xlabel "Lines of Code" "TimesRoman,24"
-set ylabel "Time/Line (microsec/line)" "TimesRoman,24"
-#set output "runtimes.timelocratio.ps"
-#plot '< ./runtimes.awk -v PlotTimeLOCRatio=1 data.txt' title "Time vs. LOC"
-
-##------- log(Memory) vs. log(LOC) --------
-set logscale xy
-set yrange [10:10000]
-set xlabel "Lines of Code" "TimesRoman,24"
-set ylabel "Total Memory (KB)" "TimesRoman,24"
-#set output "runtimes.memloc.ps"
-#plot '< ./runtimes.awk -v PlotMemLOC=1 data.txt' title "Time vs. LOC"
diff --git a/poolalloc/test/TEST.dsgraph.report b/poolalloc/test/TEST.dsgraph.report
deleted file mode 100755
index 283060b..0000000
--- a/poolalloc/test/TEST.dsgraph.report
+++ /dev/null
@@ -1,164 +0,0 @@
-##=== TEST.dsgraph.report - Report description for dsgraph -----*- perl -*-===##
-#
-# This file defines a report to be generated for the dsgraph test.
-#
-##===----------------------------------------------------------------------===##
-
-$SortNumeric = 1;               # Sort numerically, not textually.
-$TrimAllDirectories = 1;        # Trim off benchmark directories.
-$SortCol = 2;                   # Sort by #MemInstrs
-$SortReverse = 1;               # Sort in descending order
-
-
-# Helper function
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-2] ne "*" and
-      $Cols->[$Col-2] != "0") {
-    return $Cols->[$Col-1]/$Cols->[$Col-2];
-  } else {
-    return "n/a";
-  }
-}
-
-sub TypeSafeRatio {
-  my ($Cols, $Col) = @_;
-  my $TS = $Cols->[$Col-2];
-  my $NTS = $Cols->[$Col-1];
-  $TS = 0 if ($TS eq "*");
-  $NTS = 0 if ($NTS eq "*");
-
-  if ($TS + $NTS != 0) {
-    return sprintf("%4.1f%%", 100*$TS/($TS+$NTS+0.0));
-  } else {
-    return "n/a";
-  }
-}
-
-sub FormatSize {
-  my $Size = shift;
-  if ($Size > 10*1024*1024) {
-    return (int $Size*10 / (1024*1024))/10 . "MB";
-  } elsif ($Size > 10*1024) {
-    return (int $Size / 1024);
-  } else {
-    return $Size . "B";
-  }
-}
-
-sub NoStar {
-  return "0" if ($_[0] eq '*');
-  return $_[0];
-}
-
-sub NoCallNodes {
-  $_[0] =~ m/([0-9]+)\+/;
-  return $1;
-}
-
-# For latex output, limit benchmarks and rename as appropriate
-@LatexRowMapOrder = (
-            '-' => '-',
-
-            '181.mcf'       => '181.mcf',
-            '256.bzip2'     => '256.bzip2',
-            '164.gzip'      => '164.gzip',
-            '175.vpr'       => '175.vpr',
-            '197.parser'    => '197.parser',
-            '186.crafty'    => '186.crafty',
-            '300.twolf'     => '300.twolf',
-            '255.vortex'    => '255.vortex',
-            '254.gap'       => '254.gap',
-            '252.eon'       => '252.eon',
-            '253.perlbmk'   => '253.perlbmk',
-            '176.gcc'       => '176.gcc',
-            '-' => '-',
-            '179.art'       => '179.art',
-            '183.equake'    => '183.equake',
-            '171.swim'      => '171.swim',
-            '172.mgrid'     => '172.mgrid',
-            '168.wupwise'   => '168.wupwise',
-            '173.applu'     => '173.applu',
-            '188.ammp'      => '188.ammp',
-            '177.mesa'      => '177.mesa',
-            '-' => '-',
-            '129.compress'  => '129.compress',
-            '130.li'        => '130.li',
-            '124.m88ksim'   => '124.m88ksim',
-            '132.ijpeg'     => '132.ijpeg',
-            '099.go'        => '099.go',
-            '134.perl'      => '134.perl',
-            '147.vortex'    => '147.vortex',
-            '126.gcc'       => '126.gcc',
-            '-' => '-',
-            '102.swim'      => '102.swim',
-            '101.tomcatv'   => '101.tomcatv',
-            '107.mgrid'     => '107.mgrid',
-            '145.fpppp'     => '145.fpppp',
-            '104.hydro2d'   => '104.hydro2d',
-            '110.applu'     => '110.applu',
-            '103.su2cor'    => '103.su2cor',
-            '146.wave5'     => '146.wave5',
-            '-' => '-',
-            'fpgrowth' => 'fpgrowth',
-            'bsim'     => 'boxed-sim',
-            'namd'     => 'NAMD',
-            'povray'   => 'povray31',
-           );
-
-@LxxatexColumns = (1, 2, 19,    # LOC, #MemInstrs, MaxSCC
-                 15,16,       # Total/Collapsed nodes
-                 17, 18);     # Max Size, GG Size
-
-@LatexColumns = (2, 21, 22, 23);  # Type safety numbers
-
-
-# Specify how to format columns nicely for printing...
-%LatexColumnFormat = (
-#                      11 => \&FormatSize,
-#                      12 => \&FormatSize,
-                      16 => \&NoStar,
-                      15 => \&NoCallNodes,
-                      18 => \&NoCallNodes
-                     );
-
-@Graphs = (["scatter", "timeVmem.txt", 27, 7],
-           ["scatter", "timeVloc.txt", 1, 7]);
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-
-my $USERSYSTTIME = '([0-9.]+)[ 0-9.]+\([^)]+\)[ 0-9.]+\([^)]+\) +';
-(
-# Name
-            ["Name:" , '\'([^\']+)\' Program'],
-            ["LOC:"  , 'LOC: *([0-9]+)'],
-            ["MemInsts", '([0-9]+).*Number of memory instructions'],
-            [],
-# Times
-            ["LocTm:", "${USERSYSTTIME}Local"],
-            ["BUTim:", "${USERSYSTTIME}Bottom"],
-            ["TDTim:", "${USERSYSTTIME}Top"],
-            ["SumTm:", sub { return SumCols(@_, 3); }],
-            ["SteTm:", "${USERSYSTTIME}Steensgaard"],
-            [],
-# Sizes
-            ["LcSize:" , '([0-9]+)  Local'],
-            ["BUSize:" , '([0-9]+)  Bottom-up'],
-            ["TDSize:" , '([0-9]+)  Top-down'],
-            ["BUTDSz:" , sub { return SumCols(@_, 2); }],
-            [],
-# Misc stuff
-            ["NumNodes", 'Graphs contain \\[([0-9+]+)\\] nodes total'],
-            ["NumFold" , '([0-9]+).*Number of folded nodes '],
-            ["MaxSz"   , '([0-9]+).*Maximum graph size'],
-            ["GlobGr"  , '\\.GlobalsGraph\\.dot\'... \\[([0-9+]+)\\]'],
-            ["MaxSCC"  , '([0-9]+).*Maximum SCC Size in Call Graph'],
-            [],
-            ["TypeSafe", "ACCESSES TYPED: *([0-9]+)"],
-            ["NonType",  "ACCESSES UNTYPED: *([0-9]+)"],
-            ["TS %" , sub { return TypeSafeRatio(@_); }],
-            []
-           );
diff --git a/poolalloc/test/TEST.dsprecision.Makefile b/poolalloc/test/TEST.dsprecision.Makefile
deleted file mode 100644
index 1fb1563..0000000
--- a/poolalloc/test/TEST.dsprecision.Makefile
+++ /dev/null
@@ -1,113 +0,0 @@
-##===- TEST.dsprecision.Makefile ---------------------------*- Makefile -*-===##
-#
-# This recursively traverses the programs, running -aa-eval on them with various
-# different aa implementations.
-#
-##===----------------------------------------------------------------------===##
-
-RELDIR  := $(subst $(PROJ_OBJ_ROOT),,$(PROJ_OBJ_DIR))
-
-# We require the programs to be linked with libdummy
-include $(LEVEL)/Makefile.dummylib
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.lib.bc $(LOPT)
-	@echo > $@
-	-($(LOPT) -basicaa -aa-eval -disable-output $<) > Output/$*.basicaa.out 2>&1
-	@echo -n "BASIC MA: " >> $@
-	-@grep 'may alias responses' Output/$*.basicaa.out >> $@
-	@echo >> $@
-	@echo -n "BASIC NOMR: " >> $@
-	-@grep 'no mod/ref responses' Output/$*.basicaa.out >> $@
-	@echo >> $@
-	@echo -n "BASIC JUSTREF: " >> $@
-	-@grep '[0-9] ref responses' Output/$*.basicaa.out >> $@
-	@echo >> $@
-	@echo -n "BASIC JUSTMOD: " >> $@
-	-@grep 'mod responses' Output/$*.basicaa.out >> $@
-	@echo >> $@
-	@echo -n "BASIC MR: " >> $@
-	-@grep 'mod & ref responses' Output/$*.basicaa.out >> $@
-	@echo >> $@
-	@
-	-($(LOPT) -steens-aa -disable-ds-field-sensitivity -aa-eval \
-                           -disable-output $<) > Output/$*.steensfiaa.out 2>&1
-	@echo -n "STEENS-FI MA: " >> $@
-	-@grep 'may alias responses' Output/$*.steensfiaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FI NOMR: " >> $@
-	-@grep 'no mod/ref responses' Output/$*.steensfiaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FI JUSTREF: " >> $@
-	-@grep '[0-9] ref responses' Output/$*.steensfiaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FI JUSTMOD: " >> $@
-	-@grep 'mod responses' Output/$*.steensfiaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FI MR: " >> $@
-	-@grep 'mod & ref responses' Output/$*.steensfiaa.out >> $@
-	@echo >> $@
-	@
-	-($(LOPT) -steens-aa -aa-eval -disable-output $<) > Output/$*.steensfsaa.out 2>&1
-	@echo -n "STEENS-FS MA: " >> $@
-	-@grep 'may alias responses' Output/$*.steensfsaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FS NOMR: " >> $@
-	-@grep 'no mod/ref responses' Output/$*.steensfsaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FS JUSTREF: " >> $@
-	-@grep '[0-9] ref responses' Output/$*.steensfsaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FS JUSTMOD: " >> $@
-	-@grep 'mod responses' Output/$*.steensfsaa.out >> $@
-	@echo >> $@
-	@echo -n "STEENS-FS MR: " >> $@
-	-@grep 'mod & ref responses' Output/$*.steensfsaa.out >> $@
-	@echo >> $@
-	@
-	-($(LOPT) -anders-aa -aa-eval -disable-output $<) > Output/$*.andersaa.out 2>&1
-	@echo -n "ANDERS MA: " >> $@
-	-@grep 'may alias responses' Output/$*.andersaa.out >> $@
-	@echo >> $@
-	@echo -n "ANDERS NOMR: " >> $@
-	-@grep 'no mod/ref responses' Output/$*.andersaa.out >> $@
-	@echo >> $@
-	@echo -n "ANDERS JUSTREF: " >> $@
-	-@grep '[0-9] ref responses' Output/$*.andersaa.out >> $@
-	@echo >> $@
-	@echo -n "ANDERS JUSTMOD: " >> $@
-	-@grep 'mod responses' Output/$*.andersaa.out >> $@
-	@echo >> $@
-	@echo -n "ANDERS MR: " >> $@
-	-@grep 'mod & ref responses' Output/$*.andersaa.out >> $@
-	@echo >> $@
-	@
-	-($(LOPT) -ds-aa -aa-eval -disable-output $<) > Output/$*.dsaa.out 2>&1
-	@echo -n "DS MA: " >> $@
-	-@grep 'may alias responses' Output/$*.dsaa.out >> $@
-	@echo >> $@
-	@echo -n "DS NOMR: " >> $@
-	-@grep 'no mod/ref responses' Output/$*.dsaa.out >> $@
-	@echo >> $@
-	@echo -n "DS JUSTREF: " >> $@
-	-@grep '[0-9] ref responses' Output/$*.dsaa.out >> $@
-	@echo >> $@
-	@echo -n "DS JUSTMOD: " >> $@
-	-@grep 'mod responses' Output/$*.dsaa.out >> $@
-	@echo >> $@
-	@echo -n "DS MR: " >> $@
-	-@grep 'mod & ref responses' Output/$*.dsaa.out >> $@
-	@echo >> $@
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-# Define REPORT_DEPENDENCIES so that the report is regenerated if analyze or
-# dummylib is updated.
-#
-REPORT_DEPENDENCIES := $(DUMMYLIB) $(LOPT)
-
diff --git a/poolalloc/test/TEST.dsprecision.report b/poolalloc/test/TEST.dsprecision.report
deleted file mode 100644
index c51f18d..0000000
--- a/poolalloc/test/TEST.dsprecision.report
+++ /dev/null
@@ -1,120 +0,0 @@
-##=== TEST.dsprecision.report - Report for precision tests -----*- perl -*-===##
-#
-# This file defines a report to be generated for the precision comparison
-# test.
-#
-##===----------------------------------------------------------------------===##
-
-# Helper function
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-2] ne "*" and
-      $Cols->[$Col-2] != "0") {
-    return $Cols->[$Col-1]/$Cols->[$Col-2];
-  } else {
-    return "n/a";
-  }
-}
-
-$SortCol = 0;
-#$SortNumeric = 1;
-$TrimAllDirectories = 1;        # Trim off benchmark directories.
-#$TrimRepeatedPrefix = 1;
-
-# Sort in ascending order
-$SortReverse = 0;
-
-# For latex/csv output, limit benchmarks and rename as appropriate
-@LatexRowMapOrder = (
-            '-' => '-',
-
-            '181.mcf'       => '181.mcf',
-            '256.bzip2'     => '256.bzip2',
-            '164.gzip'      => '164.gzip',
-            '175.vpr'       => '175.vpr',
-            '197.parser'    => '197.parser',
-            '186.crafty'    => '186.crafty',
-            '300.twolf'     => '300.twolf',
-            '255.vortex'    => '255.vortex',
-            '254.gap'       => '254.gap',
-            '252.eon'       => '252.eon',
-            '253.perlbmk'   => '253.perlbmk',
-            '176.gcc'       => '176.gcc',
-            '-' => '-',
-            '179.art'       => '179.art',
-            '183.equake'    => '183.equake',
-            '171.swim'      => '171.swim',
-            '172.mgrid'     => '172.mgrid',
-            '168.wupwise'   => '168.wupwise',
-            '173.applu'     => '173.applu',
-            '188.ammp'      => '188.ammp',
-            '177.mesa'      => '177.mesa',
-            '-' => '-',
-            '129.compress'  => '129.compress',
-            '130.li'        => '130.li',
-            '124.m88ksim'   => '124.m88ksim',
-            '132.ijpeg'     => '132.ijpeg',
-            '099.go'        => '099.go',
-            '134.perl'      => '134.perl',
-            '147.vortex'    => '147.vortex',
-            '126.gcc'       => '126.gcc',
-            '-' => '-',
-            '102.swim'      => '102.swim',
-            '101.tomcatv'   => '101.tomcatv',
-            '107.mgrid'     => '107.mgrid',
-            '145.fpppp'     => '145.fpppp',
-            '104.hydro2d'   => '104.hydro2d',
-            '110.applu'     => '110.applu',
-            '103.su2cor'    => '103.su2cor',
-            '146.wave5'     => '146.wave5',
-            '-' => '-',
-            'fpgrowth' => 'fpgrowth',
-            'bsim'     => 'boxed-sim',
-            'namd'     => 'NAMD',
-            'povray'   => 'povray31',
-           );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
-            ["Name:",     '\'([^\']+)\' Program'],
-            [],
-# AA MayAlias Query Percents
-            ["basic",     'BASIC MA:.* \((.*)\)'],
-            ["steens-fi", 'STEENS-FI MA:.* \((.*)\)'],
-            ["steens-fs", 'STEENS-FS MA:.* \((.*)\)'],
-            ["anders",    'ANDERS MA:.* \((.*)\)'],
-            ["ds-aa",     'DS MA:.* \((.*)\)'],
-            [],
-# Mod&Ref percents
-            ["basic",     'BASIC MR:.* \((.*)\)'],
-            ["steens-fi", 'STEENS-FI MR:.* \((.*)\)'],
-            ["steens-fs", 'STEENS-FS MR:.* \((.*)\)'],
-            ["anders",    'ANDERS MR:.* \((.*)\)'],
-            ["ds-aa",     'DS MR:.* \((.*)\)'],
-            [],
-# Mod Percents
-            ["basic",     'BASIC JUSTMOD:.* \((.*)\)'],
-            ["steens-fi", 'STEENS-FI JUSTMOD:.* \((.*)\)'],
-            ["steens-fs", 'STEENS-FS JUSTMOD:.* \((.*)\)'],
-            ["anders",    'ANDERS JUSTMOD:.* \((.*)\)'],
-            ["ds-aa",     'DS JUSTMOD:.* \((.*)\)'],
-            [],
-# Ref Percents
-            ["basic",     'BASIC JUSTREF:.* \((.*)\)'],
-            ["steens-fi", 'STEENS-FI JUSTREF:.* \((.*)\)'],
-            ["steens-fs", 'STEENS-FS JUSTREF:.* \((.*)\)'],
-            ["anders",    'ANDERS JUSTREF:.* \((.*)\)'],
-            ["ds-aa",     'DS JUSTREF:.* \((.*)\)'],
-            [],
-# No Mod/Ref Percents
-            ["basic",     'BASIC NOMR:.* \((.*)\)'],
-            ["steens-fi", 'STEENS-FI NOMR:.* \((.*)\)'],
-            ["steens-fs", 'STEENS-FS NOMR:.* \((.*)\)'],
-            ["anders",    'ANDERS NOMR:.* \((.*)\)'],
-            ["ds-aa",     'DS NOMR:.* \((.*)\)'],
-            [],
-);
diff --git a/poolalloc/test/TEST.optzn.Makefile b/poolalloc/test/TEST.optzn.Makefile
deleted file mode 100755
index b9eb48b..0000000
--- a/poolalloc/test/TEST.optzn.Makefile
+++ /dev/null
@@ -1,258 +0,0 @@
-##===- poolalloc/test/TEST.optzn.Makefile ------------------*- Makefile -*-===##
-#
-# This test runs the pool allocator on all of the Programs, producing some
-# performance numbers and statistics.
-#
-##===----------------------------------------------------------------------===##
-
-CFLAGS = -O2 -fno-strict-aliasing
-
-EXTRA_PA_FLAGS := 
-
-# HEURISTIC can be set to:
-#   AllNodes
-ifdef HEURISTIC
-EXTRA_PA_FLAGS += -poolalloc-heuristic=$(HEURISTIC)
-endif
-
-
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-# Pool allocator pass shared object
-PA_SO    := $(PROJECT_DIR)/Debug/lib/poolalloc$(SHLIBEXT)
-
-# Pool allocator runtime library
-#PA_RT    := $(PROJECT_DIR)/lib/Bytecode/libpoolalloc_fl_rt.bc
-#PA_RT_O  := $(PROJECT_DIR)/lib/$(CONFIGURATION)/poolalloc_rt.o
-PA_RT_O  := $(PROJECT_DIR)/Release/lib/poolalloc_rt.o
-#PA_RT_O  := $(PROJECT_DIR)/lib/Release/poolalloc_fl_rt.o
-
-# Command to run opt with the pool allocator pass loaded
-OPT_PA := $(LOPT) -load $(PA_SO)
-
-# OPT_PA_STATS - Run opt with the -stats and -time-passes options, capturing the
-# output to a file.
-OPT_PA_STATS = $(OPT_PA) -info-output-file=$(CURDIR)/$@.info -stats -time-passes
-
-OPTZN_PASSES := -globaldce -ipsccp -deadargelim -adce -instcombine -simplifycfg
-
-
-# This rule runs the pool allocator on the .llvm.bc file to produce a new .bc
-# file
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).basepa.bc): \
-Output/%.$(TEST).basepa.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-disable-alignopt  -poolalloc-heuristic=AllNodes $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).selectivepa.bc): \
-Output/%.$(TEST).selectivepa.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-heuristic=AllNodes $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) -pooloptimize $< -o $@ -f 2>&1 > $@.out
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).bumpptr.bc): \
-Output/%.$(TEST).bumpptr.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).align.bc): \
-Output/%.$(TEST).align.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-disable-alignopt $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) -pooloptimize $< -o $@ -f 2>&1 > $@.out
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).freeelim.bc): \
-Output/%.$(TEST).freeelim.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-force-all-poolfrees $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) -pooloptimize $< -o $@ -f 2>&1 > $@.out
-
-
-# This rule compiles the new .bc file into a .c file using CBE
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.cbe.c): \
-Output/%.basepa.cbe.c: Output/%.$(TEST).basepa.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.selectivepa.cbe.c): \
-Output/%.selectivepa.cbe.c: Output/%.$(TEST).selectivepa.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.bumpptr.cbe.c): \
-Output/%.bumpptr.cbe.c: Output/%.$(TEST).bumpptr.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.align.cbe.c): \
-Output/%.align.cbe.c: Output/%.$(TEST).align.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.freeelim.cbe.c): \
-Output/%.freeelim.cbe.c: Output/%.$(TEST).freeelim.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.cbe): \
-Output/%.basepa.cbe: Output/%.basepa.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.selectivepa.cbe): \
-Output/%.selectivepa.cbe: Output/%.selectivepa.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.bumpptr.cbe): \
-Output/%.bumpptr.cbe: Output/%.bumpptr.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.align.cbe): \
-Output/%.align.cbe: Output/%.align.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.freeelim.cbe): \
-Output/%.freeelim.cbe: Output/%.freeelim.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-# This rule runs the generated executable, generating timing information, for
-# normal test programs
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.out-cbe): \
-Output/%.basepa.out-cbe: Output/%.basepa.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.selectivepa.out-cbe): \
-Output/%.selectivepa.out-cbe: Output/%.selectivepa.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.bumpptr.out-cbe): \
-Output/%.bumpptr.out-cbe: Output/%.bumpptr.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.align.out-cbe): \
-Output/%.align.out-cbe: Output/%.align.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.freeelim.out-cbe): \
-Output/%.freeelim.out-cbe: Output/%.freeelim.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.out-cbe): \
-Output/%.basepa.out-cbe: Output/%.basepa.cbe
-	-$(SPEC_SANDBOX) basepacbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/basepacbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/basepacbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.selectivepa.out-cbe): \
-Output/%.selectivepa.out-cbe: Output/%.selectivepa.cbe
-	-$(SPEC_SANDBOX) selectivepacbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/selectivepacbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/selectivepacbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.bumpptr.out-cbe): \
-Output/%.bumpptr.out-cbe: Output/%.bumpptr.cbe
-	-$(SPEC_SANDBOX) bumpptrcbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/bumpptrcbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/bumpptrcbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.align.out-cbe): \
-Output/%.align.out-cbe: Output/%.align.cbe
-	-$(SPEC_SANDBOX) aligncbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/aligncbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/aligncbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.freeelim.out-cbe): \
-Output/%.freeelim.out-cbe: Output/%.freeelim.cbe
-	-$(SPEC_SANDBOX) freeelimcbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/freeelimcbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/freeelimcbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-endif
-
-
-# This rule diffs the post-poolallocated version to make sure we didn't break
-# the program!
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.diff-cbe): \
-Output/%.basepa.diff-cbe: Output/%.out-nat Output/%.basepa.out-cbe
-	@cp Output/$*.out-nat Output/$*.basepa.out-nat
-	-$(DIFFPROG) cbe $*.basepa $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.selectivepa.diff-cbe): \
-Output/%.selectivepa.diff-cbe: Output/%.out-nat Output/%.selectivepa.out-cbe
-	@cp Output/$*.out-nat Output/$*.selectivepa.out-nat
-	-$(DIFFPROG) cbe $*.selectivepa $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.bumpptr.diff-cbe): \
-Output/%.bumpptr.diff-cbe: Output/%.out-nat Output/%.bumpptr.out-cbe
-	@cp Output/$*.out-nat Output/$*.bumpptr.out-nat
-	-$(DIFFPROG) cbe $*.bumpptr $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.align.diff-cbe): \
-Output/%.align.diff-cbe: Output/%.out-nat Output/%.align.out-cbe
-	@cp Output/$*.out-nat Output/$*.align.out-nat
-	-$(DIFFPROG) cbe $*.align $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.freeelim.diff-cbe): \
-Output/%.freeelim.diff-cbe: Output/%.out-nat Output/%.freeelim.out-cbe
-	@cp Output/$*.out-nat Output/$*.freeelim.out-nat
-	-$(DIFFPROG) cbe $*.freeelim $(HIDEDIFF)
-
-
-
-# This rule wraps everything together to build the actual output the report is
-# generated from.
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.out-nat                \
-			     Output/%.basepa.diff-cbe     \
-			     Output/%.selectivepa.diff-cbe     \
-			     Output/%.bumpptr.diff-cbe      \
-			     Output/%.align.diff-cbe    \
-			     Output/%.freeelim.diff-cbe  \
-                             Output/%.LOC.txt
-	@echo > $@
-	@-if test -f Output/$*.basepa.diff-cbe; then \
-	  printf "CBE-RUN-TIME-BASEPA: " >> $@;\
-	  grep "^program" Output/$*.basepa.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.align.diff-cbe; then \
-	  printf "CBE-RUN-TIME-ALIGN: " >> $@;\
-	  grep "^program" Output/$*.align.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.freeelim.diff-cbe; then \
-	  printf "CBE-RUN-TIME-FREEELIM: " >> $@;\
-	  grep "^program" Output/$*.freeelim.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.bumpptr.diff-cbe; then \
-	  printf "CBE-RUN-TIME-BUMPPTR: " >> $@;\
-	  grep "^program" Output/$*.bumpptr.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.selectivepa.diff-cbe; then \
-	  printf "CBE-RUN-TIME-SELECTIVEPA: " >> $@;\
-	  grep "^program" Output/$*.selectivepa.out-cbe.time >> $@;\
-	fi
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PA_RT_O) $(PA_SO) $(PROGRAMS_TO_TEST:%=Output/%.llvm.bc) $(LLC) $(LOPT)
diff --git a/poolalloc/test/TEST.optzn.report b/poolalloc/test/TEST.optzn.report
deleted file mode 100644
index 85aa5e5..0000000
--- a/poolalloc/test/TEST.optzn.report
+++ /dev/null
@@ -1,74 +0,0 @@
-##=== TEST.optzn.report - Report description for optzn ---------*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-# FormatTime - Convert a time from 1m23.45 into 83.45
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    return sprintf("%7.3f", $1*60.0+$2);
-  }
-
-  return sprintf("%6.2f", $Time);
-}
-
-
-sub RuntimePercent {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[4] ne "*" and
-      $Cols->[4] != "0") {
-    return sprintf "%7.2f", 100*$Cols->[$Col-1]/$Cols->[4];
-  } else {
-    return "n/a";
-  }
-}
-
-@LatexColumns = (1, 5, 8, 12, 9, 13, 14, 15, 2, 16);
-
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "anagram/anagram"       => 'anagram',
-                     "bc/bc"                 => 'bc',
-                     "ft/ft"                 => 'ft',
-                     "ks/ks"                 => 'ks',
-                     "yacr2/yacr2"           => 'yacr2',
-                     '-' => '-',
-                     '164.gzip/164.gzip' => '164.gzip',
-                     '175.vpr/175.vpr' => '175.vpr',
-                     '181.mcf/181.mcf' => '181.mcf',
-                     '186.crafty/186.crafty' => '186.crafty',
-                     '197.parser/197.parser' => '197.parser',
-                     '197.parser.hacked/197.parser.hacked' => '197.parser(b)',
-                     '255.vortex/255.vortex' => '255.vortex',
-                     '256.bzip2/256.bzip2' => '256.bzip2',
-                     '300.twolf/300.twolf' => '300.twolf',
-                     '-' => '-',
-                     "analyzer"     => 'analyzer',
-                     "llu"          => 'llu-bench',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- [],
-# Times
- ["BasePA",         'CBE-RUN-TIME-BASEPA: program\s*([.0-9m:]+)', \&FormatTime],
- ["NoSelectivePA",  'CBE-RUN-TIME-SELECTIVEPA: program\s*([.0-9m:]+)', \&FormatTime],
- ["NoFreeElim",     'CBE-RUN-TIME-FREEELIM: program\s*([.0-9m:]+)', \&FormatTime],
- ["NoBumpPtr",      'CBE-RUN-TIME-BUMPPTR: program\s*([.0-9m:]+)', \&FormatTime],
- ["NoAlign",        'CBE-RUN-TIME-ALIGN: program\s*([.0-9m:]+)', \&FormatTime],
- []
-);
-
diff --git a/poolalloc/test/TEST.p4perf.Makefile b/poolalloc/test/TEST.p4perf.Makefile
deleted file mode 100644
index 5957db3..0000000
--- a/poolalloc/test/TEST.p4perf.Makefile
+++ /dev/null
@@ -1,216 +0,0 @@
-##===- poolalloc/TEST.vtl.Makefile -------------------------*- Makefile -*-===##
-#
-# Makefile for getting performance metrics using Intel's VTune.
-#
-##===----------------------------------------------------------------------===##
-
-TESTNAME = $*
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-PERFEX := /home/vadve/criswell/local/Linux/bin/perfex
-
-PERFOUT := /home/vadve/criswell/perf.out
-PERFSCRIPT := $(BUILD_SRC_DIR)/perf.awk
-
-#
-# Events for the AMD K7 (Athlon) processors
-#
-K7_REFILL_SYSTEM  := 0x00411F43
-K7_REFILL_L2      := 0x00411F42
-K7_CACHE_MISSES   := 0x00410041
-K7_CACHE_ACCESSES := 0x00410040
-
-K7_EVENTS := -e $(K7_REFILL_SYSTEM) -e $(K7_REFILL_L2) -e $(K7_CACHE_MISSES) -e $(K7_CACHE_ACCESSES)
-
-#
-# Events for the Pentium 4/Xeon processors
-#
-P4_L1_READ_MISS := -e 0x0003B000/0x12000204@0x8000000C --p4pe=0x01000001 --p4pmv=0x1
-P4_L2_READ_MISS := -e 0x0003B000/0x12002204@0x8000000E --p4pe=0x01000002 --p4pmv=0x1
-#P4_L2_READ_MISS := -e 0x0003B000/0x12000204@0x8000000E --p4pe=0x01000002 --p4pmv=0x1
-
-P4_EVENTS := $(P4_L1_READ_MISS) $(P4_L2_READ_MISS)
-
-EVENTS := $(P4_EVENTS)
-
-############################################################################
-# Once the results are generated, create files containing each individiual
-# piece of performance information.
-############################################################################
-
-# Pentium 4/Xeon Events
-ifeq ($(EVENTS),$(P4_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%): \
-Output/$(TEST).L1Misses.%: Output/test.$(TEST).%
-	$(VERB) grep 0x12000204 $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%): \
-Output/$(TEST).L1Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep 0x12000204 $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.allpa.%): \
-Output/$(TEST).L1Misses.allpa.%: Output/test.$(TEST).allpa.%
-	$(VERB) grep 0x12000204 $< | awk '{print $$(NF)}' > $@
-
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%): \
-Output/$(TEST).L2Misses.%: Output/test.$(TEST).%
-	$(VERB) grep 0x12002204 $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%): \
-Output/$(TEST).L2Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep 0x12002204 $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.allpa.%): \
-Output/$(TEST).L2Misses.allpa.%: Output/test.$(TEST).allpa.%
-	$(VERB) grep 0x12002204 $< | awk '{print $$(NF)}' > $@
-endif
-
-############################################################################
-# Rules for running the tests
-############################################################################
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-#
-# Generate events for Pool Allocated CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe Output/test.$(TEST).%
-	@echo "========================================="
-	@echo "Running '$(TEST)' Default PA test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< > /dev/null
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-endif
-	@cat $@.1 $@.2 > $@
-
-
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).allpa.%): \
-Output/test.$(TEST).allpa.%: Output/%.allnodes.cbe Output/test.$(TEST).%
-	@echo "========================================="
-	@echo "Running '$(TEST)' AllNodes PA test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< > /dev/null
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-endif
-	@cat $@.1 $@.2 > $@
-
-
-#
-# Generate events for CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' No-PA test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< > /dev/null
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.1 $(P4_L1_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-	$(VERB) cat $(STDIN_FILENAME) | $(PERFEX) -o $@.2 $(P4_L2_READ_MISS) $< $(RUN_OPTIONS) > /dev/null
-endif
-	@cat $@.1 $@.2 > $@
-
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.2 $(P4_L2_READ_MISS) ../../$< $(RUN_OPTIONS)
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.1 $(P4_L1_READ_MISS) ../../$< $(RUN_OPTIONS)
-	@cat $@.1 $@.2 > $@
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).allpa.%): \
-Output/test.$(TEST).allpa.%: Output/%.allnodes.cbe
-	-$(SPEC_SANDBOX) allnodescbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.2 $(P4_L2_READ_MISS) ../../$< $(RUN_OPTIONS)
-	-$(SPEC_SANDBOX) allnodescbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.1 $(P4_L1_READ_MISS) ../../$< $(RUN_OPTIONS)
-	@cat $@.1 $@.2 > $@
-
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.2 $(P4_L2_READ_MISS) ../../$< $(RUN_OPTIONS)
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) /dev/null $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o ../../$@.1 $(P4_L1_READ_MISS) ../../$< $(RUN_OPTIONS)
-	@cat $@.1 $@.2 > $@
-endif
-
-############################################################################
-# Report Targets
-############################################################################
-ifeq ($(EVENTS),$(K7_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: $(PROGRAMS_TO_TEST:%=Output/$(TEST).cacheaccesses.%)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).cacheaccesses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).cachemisses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).cachemisses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%)
-	@echo "Program:" $* > $@
-	@echo "-------------------------------------------------------------" >> $@
-	@printf "CBE-PA-Cache-Accesses: %lld\n" `cat Output/$(TEST).cacheaccesses.pa.$*` >> $@
-	@printf "CBE-Cache-Accesses: %lld\n" `cat Output/$(TEST).cacheaccesses.$*` >> $@
-	@printf "CBE-PA-Cache-Misses: %lld\n" `cat Output/$(TEST).cachemisses.pa.$*` >> $@
-	@printf "CBE-Cache-Misses: %lld\n" `cat Output/$(TEST).cachemisses.$*` >> $@
-	@printf "CBE-PA-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.pa.$*` >> $@
-	@printf "CBE-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.$*` >> $@
-	@printf "CBE-PA-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.pa.$*` >> $@
-	@printf "CBE-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.$*` >> $@
-endif
-
-ifeq ($(EVENTS),$(P4_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.allpa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.allpa.%)
-	@echo "Program:" $* > $@
-	@echo "-------------------------------------------------------------" >> $@
-	@printf "CBE-PA-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.pa.$*` >> $@
-	@printf "CBE-ALLPA-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.allpa.$*` >> $@
-	@printf "CBE-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.$*` >> $@
-	@printf "CBE-PA-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.pa.$*` >> $@
-	@printf "CBE-ALLPA-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.allpa.$*` >> $@
-	@printf "CBE-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.$*` >> $@
-
-endif
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PROGRAMS_TO_TEST:%=Output/%.llvm.bc)
diff --git a/poolalloc/test/TEST.p4perf.report b/poolalloc/test/TEST.p4perf.report
deleted file mode 100644
index a1f732b..0000000
--- a/poolalloc/test/TEST.p4perf.report
+++ /dev/null
@@ -1,73 +0,0 @@
-##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-@LatexColumns = (2, 3, 4, 5, 6, 7);
-
-my $OLDEN     = 'MultiSource/Benchmarks/Olden';
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "$OLDEN/bh/bh"           => 'bh',
-                     "$OLDEN/bisort/bisort"   => 'bisort',
-                     "$OLDEN/em3d/em3d"       => 'em3d',
-                     "$OLDEN/health/health"   => 'health',
-                     "$OLDEN/mst/mst"         => 'mst',
-                     "$OLDEN/perimeter/perimeter" => 'perimeter',
-                     "$OLDEN/power/power"     => 'power',
-                     "$OLDEN/treeadd/treeadd" => 'treeadd',
-                     "$OLDEN/tsp/tsp"         => 'tsp',
-                     "$OLDEN/voronoi/voronoi" => 'voronoi',
-                     '-' => '-',
-                     "$FREEBENCH/analyzer/analyzer"     => 'analyzer',
-#                     "$FREEBENCH/distray/distray"       => 'distray',
-#                     "$FREEBENCH/fourinarow/fourinarow" => 'fourinarow',
-#                     "$FREEBENCH/mason/mason"           => 'mason',
-                     "$FREEBENCH/neural/neural"         => 'neural',
-                     "$FREEBENCH/pcompress2/pcompress2" => 'pcompress2',
-                     "$FREEBENCH/pifft/pifft"           => 'pifft',
-                     '-' => '-',
-                     "$PTRDIST/anagram/anagram"       => 'anagram',
-                     "$PTRDIST/bc/bc"                 => 'bc',
-                     "$PTRDIST/ft/ft"                 => 'ft',
-                     "$PTRDIST/ks/ks"                 => 'ks',
-                     "$PTRDIST/yacr2/yacr2"           => 'yacr2',
-                  );
-
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-2] ne "*" and $Cols->[$Col-1] ne "*" and
-      $Cols->[$Col-2] != "0") {
-    return sprintf "%1.3f", $Cols->[$Col-1]/$Cols->[$Col-2];
-  } else {
-    return "n/a";
-  }
-}
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- [],
-# Times
- ["L1Miss",   'CBE-L1-Cache-Misses: ([0-9]+)'],
- ["PAL1Miss",   'CBE-PA-L1-Cache-Misses: ([0-9]+)'],
- ["PAL1Ratio", \&Ratio],
- ["ALLPAL1Miss", 'CBE-ALLPA-L1-Cache-Misses: ([0-9]+)'],
- [],
- ["L2Miss",   'CBE-L2-Cache-Misses: ([.0-9]+)'],
- ["PAL2Miss",   'CBE-PA-L2-Cache-Misses: ([.0-9]+)'],
- ["PAL2Ratio", \&Ratio],
- ["ALLPAL2Miss", 'CBE-ALLPA-L2-Cache-Misses: ([0-9]+)'],
- []
-);
-
diff --git a/poolalloc/test/TEST.pacompiletime.Makefile b/poolalloc/test/TEST.pacompiletime.Makefile
deleted file mode 100755
index 54a8858..0000000
--- a/poolalloc/test/TEST.pacompiletime.Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-##===- poolalloc/test/TEST.pacompiletime.Makefile ----------*- Makefile -*-===##
-#
-# This test figures out how much time we spend in DSA and the pool allocator
-# compiling a program.
-#
-##===----------------------------------------------------------------------===##
-
-CFLAGS = -O2 -fno-strict-aliasing
-
-EXTRA_PA_FLAGS := 
-
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-# Pool allocator pass shared object
-PA_SO    := $(PROJECT_DIR)/Release/lib/libpoolalloc$(SHLIBEXT)
-
-# Command to run opt with the pool allocator pass loaded
-OPT_PA := $(LOPT) -load $(PA_SO)
-
-# OPT_PA_STATS - Run opt with the -stats and -time-passes options, capturing the
-# output to a file.
-OPT_PA_STATS = $(OPT_PA) -info-output-file=$(CURDIR)/$@.info -time-passes
-
-
-# This rule runs the pool allocator on the .llvm.bc file to produce a new .bc
-# file
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).poolalloc.bc): \
-Output/%.$(TEST).poolalloc.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc $(EXTRA_PA_FLAGS) $< -o $@ -f 2>&1 > $@.out
-
-
-# This rule wraps everything together to build the actual output the report is
-# generated from.
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.$(TEST).poolalloc.bc Output/%.LOC.txt
-	@echo > $@
-	printf "LOC: " >> $@
-	cat Output/$*.LOC.txt >> $@
-	@echo >> $@
-	@printf "LOCTIME: " >> $@
-	@-grep "Local Data Structure" Output/$*.$(TEST).poolalloc.bc.info >>$@
-	@printf "BUTIME: " >> $@
-	@-grep "  Bottom-up Data Struc" Output/$*.$(TEST).poolalloc.bc.info >>$@
-	@printf "TDTIME: " >> $@
-	@-grep "Top-down Data Structur" Output/$*.$(TEST).poolalloc.bc.info >>$@
-	@printf "COMTIME: " >> $@
-	@-grep "'Complete' Bottom-up D" Output/$*.$(TEST).poolalloc.bc.info >>$@
-	@printf "EQTIME: " >> $@
-	@-grep "Equivalence-class Bott" Output/$*.$(TEST).poolalloc.bc.info >>$@
-	@printf "PATIME: " >> $@
-	@-grep "Pool allocate disjoint" Output/$*.$(TEST).poolalloc.bc.info >>$@
-
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PA_RT_O) $(PA_SO) $(PROGRAMS_TO_TEST:%=Output/%.llvm.bc) $(LLC) $(LOPT)
diff --git a/poolalloc/test/TEST.pacompiletime.report b/poolalloc/test/TEST.pacompiletime.report
deleted file mode 100644
index 8f19a85..0000000
--- a/poolalloc/test/TEST.pacompiletime.report
+++ /dev/null
@@ -1,61 +0,0 @@
-##=== TEST.pacompiletime.report - Report for PA Compile Time ---*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator compile-time
-# tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-@LatexColumns = (1, 8, 10);
-
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "anagram/anagram"       => 'anagram',
-                     "bc/bc"                 => 'bc',
-                     "ft/ft"                 => 'ft',
-                     "ks/ks"                 => 'ks',
-                     "yacr2/yacr2"           => 'yacr2',
-                     '-' => '-',
-                     '164.gzip/164.gzip' => '164.gzip',
-                     '175.vpr/175.vpr' => '175.vpr',
-                     '181.mcf/181.mcf' => '181.mcf',
-                     '186.crafty/186.crafty' => '186.crafty',
-                     '197.parser/197.parser' => '197.parser',
-                     '197.parser.hacked/197.parser.hacked' => '197.parser(b)',
-                     '255.vortex/255.vortex' => '255.vortex',
-                     '256.bzip2/256.bzip2' => '256.bzip2',
-                     '300.twolf/300.twolf' => '300.twolf',
-                     '-' => '-',
-                     "analyzer"     => 'analyzer',
-                     "llu"          => 'llu-bench',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-my $USERSYSTTIME = '([0-9.]+)[ 0-9.]+\([^)]+\)[ 0-9.]+\([^)]+\) +';
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- ["LOC"   , 'LOC:\s*([0-9]+)'],
- [],
-# DSA Times
- ["LOC",            "${USERSYSTTIME}Local"],
- ["BU",             "${USERSYSTTIME}Bottom-up"],
- ["TD",             "${USERSYSTTIME}Top-down"],
- ["DSASUM",         sub { return SumCols(@_, 3); }],
- [],
- ["COM",            "${USERSYSTTIME}'Complete'"],
- ["EQ",             "${USERSYSTTIME}Equivalence"],
- ["EBUSUM",         sub { return SumCols(@_, 2); }],
- [],
- ["PA Time",        "${USERSYSTTIME}Pool allocate"],
- []
-);
-
diff --git a/poolalloc/test/TEST.pavtl.Makefile b/poolalloc/test/TEST.pavtl.Makefile
deleted file mode 100644
index 37b3cf1..0000000
--- a/poolalloc/test/TEST.pavtl.Makefile
+++ /dev/null
@@ -1,116 +0,0 @@
-##===- poolalloc/TEST.vtl.Makefile -------------------------*- Makefile -*-===##
-#
-# Makefile for getting performance metrics using Intel's VTune.
-#
-##===----------------------------------------------------------------------===##
-
-TESTNAME = $*
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-VTL := /opt/intel/vtune/bin/vtl
-
-#
-# Events: These will need to be modified for every different CPU that is used
-# (i.e. the Pentium 3 on Cypher has a different set of available events than
-# the Pentium 4 on Zion).
-#
-P4_EVENTS := -ec
-P4_EVENTS += en='2nd Level Cache Read Misses':sa=5000
-P4_EVENTS += -ec
-P4_EVENTS += en='2nd-Level Cache Read References'
-#P4_EVENTS += -ec
-#P4_EVENTS += en='3rd-Level Cache Read Misses':sa=5000
-#P4_EVENTS += en='1st Level Cache Load Misses Retired'
-P3_EVENTS := -ec en='L2 Cache Request Misses (highly correlated)'
-
-EVENTS := $(P4_EVENTS)
-
-#
-# Once the results are generated, create files containing each individiual
-# piece of performance information.
-#
-
-# Pentium 4 Events
-ifeq ($(EVENTS),$(P4_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.%): \
-Output/$(TEST).L2cachemisses.%: Output/test.$(TEST).%
-	grep "Output/$*.cbe" $< | grep "Cache Read Misses" | grep "2nd" | awk '{print $$(NF-1)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.pa.%): \
-Output/$(TEST).L2cachemisses.pa.%: Output/test.$(TEST).pa.%
-	grep "Output/$*.poolalloc.cbe" $< | grep "Cache Read Misses" | grep "2nd" | awk '{print $$(NF-1)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cacherefs.%): \
-Output/$(TEST).L2cacherefs.%: Output/test.$(TEST).%
-	grep "Output/$*.cbe" $< | grep "Cache Read References" | grep "2nd" | awk '{print $$(NF-1)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cacherefs.pa.%): \
-Output/$(TEST).L2cacherefs.pa.%: Output/test.$(TEST).pa.%
-	grep "Output/$*.poolalloc.cbe" $< | grep "Cache Read References" | grep "2nd" | awk '{print $$(NF-1)}' > $@
-endif
-
-# Pentium 3 Events
-ifeq ($(EVENTS),$(P3_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.%): \
-Output/$(TEST).L2cachemisses.%: Output/test.$(TEST).%
-	grep "Output/$*.cbe" $< | grep " L2 Cache Request Misses" | awk '{print $$(NF-1)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.pa.%): \
-Output/$(TEST).L2cachemisses.pa.%: Output/test.$(TEST).pa.%
-	grep "Output/$*.poolalloc.cbe" $< | grep " L2 Cache Request Misses" | awk '{print $$(NF-1)}' > $@
-endif
-
-#
-# Generate events for Pool Allocated CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe Output/test.$(TEST).%
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(VTL) activity $* -d 50 -c sampling -o "$(EVENTS)" -app $< -moi $<
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(VTL) activity $* -d 50 -c sampling -o "$(EVENTS)" -app $<,"$(RUN_OPTIONS)" -moi $<
-endif
-	$(VERB) $(VTL) run $*
-	$(VERB) $(VTL) view > $@
-	$(VERB)  $(VTL) delete $* -f
-
-#
-# Generate events for CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(VTL) activity $* -d 50 -c sampling -o "$(EVENTS)" -app $< -moi $<
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(VTL) activity $* -d 50 -c sampling -o "$(EVENTS)" -app $<,"$(RUN_OPTIONS)" -moi $<
-endif
-	$(VERB) $(VTL) run $*
-	$(VERB) $(VTL) view > $@
-	$(VERB)  $(VTL) delete $* -f
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.%)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cachemisses.pa.%)  \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cacherefs.%)       \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2cacherefs.pa.%)
-	@echo > $@
-	@echo "CBE-PA-L2-Misses:" `cat Output/$(TEST).L2cachemisses.pa.$*` >> $@
-	@echo "CBE-PA-L2-Refs:" `cat Output/$(TEST).L2cacherefs.pa.$*` >> $@
-	@echo "CBE-L2-Misses:" `cat Output/$(TEST).L2cachemisses.$*` >> $@
-	@echo "CBE-L2-Refs:" `cat Output/$(TEST).L2cacherefs.$*` >> $@
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
diff --git a/poolalloc/test/TEST.pavtl.report b/poolalloc/test/TEST.pavtl.report
deleted file mode 100644
index efff3bc..0000000
--- a/poolalloc/test/TEST.pavtl.report
+++ /dev/null
@@ -1,88 +0,0 @@
-##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-4] ne "*" and
-      $Cols->[$Col-1] != "0") {
-    return sprintf "%1.3f", $Cols->[$Col-4]/$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-sub Sum {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-2] ne "*") {
-    return sprintf "%1.3f", $Cols->[$Col-2]+$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    $Time = sprintf("%7.3f", $1*60.0+$2);
-  }
-  return $Time;
-}
-
-@LatexColumns = (2, 3, 4, 5, 6, 7);
-
-my $OLDEN     = 'MultiSource/Benchmarks/Olden';
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "$OLDEN/bh/bh"           => 'bh',
-                     "$OLDEN/bisort/bisort"   => 'bisort',
-                     "$OLDEN/em3d/em3d"       => 'em3d',
-                     "$OLDEN/health/health"   => 'health',
-                     "$OLDEN/mst/mst"         => 'mst',
-                     "$OLDEN/perimeter/perimeter" => 'perimeter',
-                     "$OLDEN/power/power"     => 'power',
-                     "$OLDEN/treeadd/treeadd" => 'treeadd',
-                     "$OLDEN/tsp/tsp"         => 'tsp',
-                     "$OLDEN/voronoi/voronoi" => 'voronoi',
-                     '-' => '-',
-                     "$FREEBENCH/analyzer/analyzer"     => 'analyzer',
-#                     "$FREEBENCH/distray/distray"       => 'distray',
-#                     "$FREEBENCH/fourinarow/fourinarow" => 'fourinarow',
-#                     "$FREEBENCH/mason/mason"           => 'mason',
-                     "$FREEBENCH/neural/neural"         => 'neural',
-                     "$FREEBENCH/pcompress2/pcompress2" => 'pcompress2',
-                     "$FREEBENCH/pifft/pifft"           => 'pifft',
-                     '-' => '-',
-                     "$PTRDIST/anagram/anagram"       => 'anagram',
-                     "$PTRDIST/bc/bc"                 => 'bc',
-                     "$PTRDIST/ft/ft"                 => 'ft',
-                     "$PTRDIST/ks/ks"                 => 'ks',
-                     "$PTRDIST/yacr2/yacr2"           => 'yacr2',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- [],
-# Times
- ["NormalL2CacheReadReq",    'CBE-L2-Refs: ([0-9]+)'],
- ["NormalL2CacheReadMiss",   'CBE-L2-Misses: ([.0-9]+)'],
- ["PoolAllocL2CacheReadReq",    'CBE-PA-L2-Refs: ([0-9]+)'],
- ["PoolAllocL2CacheReadMiss",   'CBE-PA-L2-Misses: ([.0-9]+)'],
-
- []
-);
-
diff --git a/poolalloc/test/TEST.perf.Makefile b/poolalloc/test/TEST.perf.Makefile
deleted file mode 100644
index f9c6fc1..0000000
--- a/poolalloc/test/TEST.perf.Makefile
+++ /dev/null
@@ -1,213 +0,0 @@
-##===- poolalloc/TEST.vtl.Makefile -------------------------*- Makefile -*-===##
-#
-# Makefile for getting performance metrics using Intel's VTune.
-#
-##===----------------------------------------------------------------------===##
-
-TESTNAME = $*
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-PERFEX := /home/vadve/criswell/local/Linux/bin/perfex
-
-PERFOUT := /home/vadve/criswell/perf.out
-PERFSCRIPT := $(BUILD_SRC_DIR)/perf.awk
-
-#
-# Events for the AMD K7 (Athlon) processors
-#
-K7_REFILL_SYSTEM   := 0x00411F43
-K7_REFILL_L2       := 0x00411F42
-#K7_CACHE_MISSES   := 0x00410041
-#K7_CACHE_ACCESSES := 0x00410040
-K7_TLB_MISSES      := 0x00410046
-K7_MISALIGNED_DATA := 0x00410047
-
-K7_EVENTS := -e $(K7_REFILL_SYSTEM) -e $(K7_REFILL_L2) \
-             -e $(K7_MISALIGNED_DATA) -e $(K7_TLB_MISSES)
-
-#
-# Events for the Pentium 4/Xeon processors
-#
-P4_L1_READ_MISS := -e 0x0003B000/0x12000204@0x8000000C --p4pe=0x01000001 --p4pmv=0x1
-P4_L2_READ_MISS := -e 0x0003B000/0x12000204@0x8000000D --p4pe=0x01000002 --p4pmv=0x1
-
-P4_EVENTS := $(P4_L1_READ_MISS) $(P4_L2_READ_MISS)
-
-EVENTS := $(K7_EVENTS)
-
-############################################################################
-# Once the results are generated, create files containing each individiual
-# piece of performance information.
-############################################################################
-
-# AMD K7 (Athlon) Events
-ifeq ($(EVENTS),$(K7_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).cacheaccesses.%): \
-Output/$(TEST).cacheaccesses.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_CACHE_ACCESSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).cacheaccesses.pa.%): \
-Output/$(TEST).cacheaccesses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_CACHE_ACCESSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).tlbmisses.%): \
-Output/$(TEST).tlbmisses.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_TLB_MISSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).tlbmisses.pa.%): \
-Output/$(TEST).tlbmisses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_TLB_MISSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).cachemisses.%): \
-Output/$(TEST).cachemisses.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_CACHE_MISSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).cachemisses.pa.%): \
-Output/$(TEST).cachemisses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_CACHE_MISSES) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).misaligned.%): \
-Output/$(TEST).misaligned.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_MISALIGNED_DATA) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).misaligned.pa.%): \
-Output/$(TEST).misaligned.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_MISALIGNED_DATA) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%): \
-Output/$(TEST).L1Misses.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_REFILL_SYSTEM) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%): \
-Output/$(TEST).L1Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_REFILL_SYSTEM) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%): \
-Output/$(TEST).L2Misses.%: Output/test.$(TEST).%
-	$(VERB) grep $(K7_REFILL_L2) $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%): \
-Output/$(TEST).L2Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep $(K7_REFILL_L2) $< | awk '{print $$(NF)}' > $@
-endif
-
-# Pentium 4/Xeon Events
-ifeq ($(EVENTS),$(P4_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%): \
-Output/$(TEST).L1Misses.%: Output/test.$(TEST).%
-	$(VERB) grep "$(P4_L1_READ_MISSES)" $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%): \
-Output/$(TEST).L1Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep "$(P4_L1_READ_MISSES)" $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%): \
-Output/$(TEST).L2Misses.%: Output/test.$(TEST).%
-	$(VERB) grep "$(P4_L2_READ_MISSES)" $< | awk '{print $$(NF)}' > $@
-
-$(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%): \
-Output/$(TEST).L2Misses.pa.%: Output/test.$(TEST).pa.%
-	$(VERB) grep "$(P4_L2_READ_MISSES)" $< | awk '{print $$(NF)}' > $@
-endif
-
-############################################################################
-# Rules for running the tests
-############################################################################
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-#
-# Generate events for Pool Allocated CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe Output/test.$(TEST).%
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	-$(PERFEX) -o $@ $(EVENTS) $< $(RUN_OPTIONS) > /dev/null 2>&1 < $(STDIN_FILENAME)
-
-#
-# Generate events for CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.nonpa.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-	-$(PERFEX) -o $@ $(EVENTS) $< $(RUN_OPTIONS) > /dev/null 2>&1 < $(STDIN_FILENAME)
-
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe  Output/test.$(TEST).%
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o $(BUILD_OBJ_DIR)/$@ $(EVENTS) $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@.out $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  $(PERFEX) -o $(BUILD_OBJ_DIR)/$@ $(EVENTS) $(BUILD_OBJ_DIR)/$< $(RUN_OPTIONS)
-endif
-
-############################################################################
-# Report Targets
-############################################################################
-ifeq ($(EVENTS),$(K7_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: $(PROGRAMS_TO_TEST:%=Output/$(TEST).tlbmisses.%)     \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).tlbmisses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).misaligned.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).misaligned.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%) \
-	             $(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe.time) \
-                     $(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe.time)
-	@echo "Program:" $* > $@
-	@echo "-------------------------------------------------------------" >> $@
-	@printf "CBE-PA-TLB-Misses: %lld\n" `cat Output/$(TEST).tlbmisses.pa.$*` >> $@
-	@printf "CBE-TLB-Misses: %lld\n" `cat Output/$(TEST).tlbmisses.$*` >> $@
-	@printf "CBE-PA-Misaligned: %lld\n" `cat Output/$(TEST).misaligned.pa.$*` >> $@
-	@printf "CBE-Misaligned: %lld\n" `cat Output/$(TEST).misaligned.$*` >> $@
-	@printf "CBE-PA-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.pa.$*` >> $@
-	@printf "CBE-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.$*` >> $@
-	@printf "CBE-PA-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.pa.$*` >> $@
-	@printf "CBE-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.$*` >> $@
-	@printf "CBE-RUN-TIME: " >> $@
-	@grep "^program" Output/$*.nonpa.out-cbe.time >> $@
-	@printf "CBE-PA-RUN-TIME: " >> $@
-	@grep "^program" Output/$*.poolalloc.out-cbe.time >> $@
-endif
-
-ifeq ($(EVENTS),$(P4_EVENTS))
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L1Misses.pa.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.%) \
-                     $(PROGRAMS_TO_TEST:%=Output/$(TEST).L2Misses.pa.%)
-	@echo "Program:" $* > $@
-	@echo "-------------------------------------------------------------" >> $@
-	@printf "CBE-PA-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.pa.$*` >> $@
-	@printf "CBE-L1-Cache-Misses: %lld\n" `cat Output/$(TEST).L1Misses.$*` >> $@
-	@printf "CBE-PA-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.pa.$*` >> $@
-	@printf "CBE-L2-Cache-Misses: %lld\n" `cat Output/$(TEST).L2Misses.$*` >> $@
-
-endif
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe.time) \
-                       $(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe.time)
diff --git a/poolalloc/test/TEST.perf.report b/poolalloc/test/TEST.perf.report
deleted file mode 100644
index 45c90a7..0000000
--- a/poolalloc/test/TEST.perf.report
+++ /dev/null
@@ -1,94 +0,0 @@
-##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-sub Ratio {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-4] ne "*" and
-      $Cols->[$Col-1] != "0") {
-    return sprintf "%1.3f", $Cols->[$Col-4]/$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-sub Sum {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[$Col-2] ne "*") {
-    return sprintf "%1.3f", $Cols->[$Col-2]+$Cols->[$Col-1];
-  } else {
-    return "n/a";
-  }
-}
-
-
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    $Time = sprintf("%7.3f", $1*60.0+$2);
-  }
-  return $Time;
-}
-
-@LatexColumns = (2, 3, 4, 5, 6, 7);
-
-my $OLDEN     = 'MultiSource/Benchmarks/Olden';
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "$OLDEN/bh/bh"           => 'bh',
-                     "$OLDEN/bisort/bisort"   => 'bisort',
-                     "$OLDEN/em3d/em3d"       => 'em3d',
-                     "$OLDEN/health/health"   => 'health',
-                     "$OLDEN/mst/mst"         => 'mst',
-                     "$OLDEN/perimeter/perimeter" => 'perimeter',
-                     "$OLDEN/power/power"     => 'power',
-                     "$OLDEN/treeadd/treeadd" => 'treeadd',
-                     "$OLDEN/tsp/tsp"         => 'tsp',
-                     "$OLDEN/voronoi/voronoi" => 'voronoi',
-                     '-' => '-',
-                     "$FREEBENCH/analyzer/analyzer"     => 'analyzer',
-#                     "$FREEBENCH/distray/distray"       => 'distray',
-#                     "$FREEBENCH/fourinarow/fourinarow" => 'fourinarow',
-#                     "$FREEBENCH/mason/mason"           => 'mason',
-                     "$FREEBENCH/neural/neural"         => 'neural',
-                     "$FREEBENCH/pcompress2/pcompress2" => 'pcompress2',
-                     "$FREEBENCH/pifft/pifft"           => 'pifft',
-                     '-' => '-',
-                     "$PTRDIST/anagram/anagram"       => 'anagram',
-                     "$PTRDIST/bc/bc"                 => 'bc',
-                     "$PTRDIST/ft/ft"                 => 'ft',
-                     "$PTRDIST/ks/ks"                 => 'ks',
-                     "$PTRDIST/yacr2/yacr2"           => 'yacr2',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- [],
-# Times
- ["Time",           'CBE-RUN-TIME: program\s*([0-9.m]+)'],
- ["L1 Misses",      'CBE-L1-Cache-Misses: ([0-9]+)'],
- ["L2 Misses",      'CBE-L2-Cache-Misses: ([.0-9]+)'],
- ["TLBMisses",      'CBE-TLB-Misses: ([0-9]+)'],
- ["Misaligned",     'CBE-Misaligned: ([0-9]+)'],
- [],
- ["PA Time",        'CBE-PA-RUN-TIME: program\s*([0-9.m]+)'],
- ["PA L1 Misses",   'CBE-PA-L1-Cache-Misses: ([0-9]+)'],
- ["PA L2 Misses",   'CBE-PA-L2-Cache-Misses: ([.0-9]+)'],
- ["PA TLB Misses",  'CBE-PA-TLB-Misses: ([0-9]+)'],
- ["PA Misaligned",  'CBE-PA-Misaligned: ([0-9]+)'],
- []
-);
-
diff --git a/poolalloc/test/TEST.poolalloc.Makefile b/poolalloc/test/TEST.poolalloc.Makefile
deleted file mode 100644
index b81104b..0000000
--- a/poolalloc/test/TEST.poolalloc.Makefile
+++ /dev/null
@@ -1,263 +0,0 @@
-##===- poolalloc/test/TEST.poolalloc.Makefile --------------*- Makefile -*-===##
-#
-# This test runs the pool allocator on all of the Programs, producing some
-# performance numbers and statistics.
-#
-##===----------------------------------------------------------------------===##
-
-CFLAGS = -O2 -fno-strict-aliasing
-
-EXTRA_PA_FLAGS := 
-
-# HEURISTIC can be set to:
-#   AllNodes
-ifdef HEURISTIC
-EXTRA_PA_FLAGS += -poolalloc-heuristic=$(HEURISTIC)
-endif
-
-
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-PADIR   := /home/andrewl/Research/llvm.orig/projects/llvm-poolalloc
-
-# Pool allocator pass shared object
-PA_SO    := $(PADIR)/Debug/lib/poolalloc$(SHLIBEXT)
-DSA_SO   := $(PADIR)/Debug/lib/LLVMDataStructure$(SHLIBEXT)
-
-# Pool allocator runtime library
-#PA_RT    := $(PADIR)/Debug/lib/libpoolalloc_fl_rt.bc
-#PA_RT_O  := $(PROJECT_DIR)/lib/$(CONFIGURATION)/poolalloc_rt.o
-PA_RT_O  := $(PADIR)/Release/lib/poolalloc_rt.o
-#PA_RT_O  := $(PROJECT_DIR)/lib/Release/poolalloc_fl_rt.o
-
-# Command to run opt with the pool allocator pass loaded
-OPT_PA := $(LOPT) -load $(DSA_SO) -load $(PA_SO)
-
-# OPT_PA_STATS - Run opt with the -stats and -time-passes options, capturing the
-# output to a file.
-OPT_PA_STATS = $(OPT_PA) -info-output-file=$(CURDIR)/$@.info -stats -time-passes
-
-OPTZN_PASSES := -globaldce -ipsccp -deadargelim -adce -instcombine -simplifycfg
-
-
-# This rule runs the pool allocator on the .llvm.bc file to produce a new .bc
-# file
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).poolalloc.bc): \
-Output/%.$(TEST).poolalloc.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) -pooloptimize $< -o $@ -f 2>&1 > $@.out
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).basepa.bc): \
-Output/%.$(TEST).basepa.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-disable-alignopt -poolalloc-force-all-poolfrees -poolalloc-heuristic=AllNodes $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).mallocrepl.bc): \
-Output/%.$(TEST).mallocrepl.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-heuristic=AllInOneGlobalPool $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).onlyoverhead.bc): \
-Output/%.$(TEST).onlyoverhead.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc -poolalloc-heuristic=OnlyOverhead $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.bc): \
-Output/%.nonpa.bc: Output/%.llvm.bc $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(LOPT) $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-# This rule compiles the new .bc file into a .c file using CBE
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.cbe.c): \
-Output/%.poolalloc.cbe.c: Output/%.$(TEST).poolalloc.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.cbe.c): \
-Output/%.basepa.cbe.c: Output/%.$(TEST).basepa.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.mallocrepl.cbe.c): \
-Output/%.mallocrepl.cbe.c: Output/%.$(TEST).mallocrepl.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.onlyoverhead.cbe.c): \
-Output/%.onlyoverhead.cbe.c: Output/%.$(TEST).onlyoverhead.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.cbe.c): \
-Output/%.nonpa.cbe.c: Output/%.nonpa.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.cbe): \
-Output/%.poolalloc.cbe: Output/%.poolalloc.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.cbe): \
-Output/%.basepa.cbe: Output/%.basepa.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.mallocrepl.cbe): \
-Output/%.mallocrepl.cbe: Output/%.mallocrepl.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.onlyoverhead.cbe): \
-Output/%.onlyoverhead.cbe: Output/%.onlyoverhead.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.cbe): \
-Output/%.nonpa.cbe: Output/%.nonpa.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-# This rule runs the generated executable, generating timing information, for
-# normal test programs
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe): \
-Output/%.poolalloc.out-cbe: Output/%.poolalloc.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.out-cbe): \
-Output/%.basepa.out-cbe: Output/%.basepa.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.mallocrepl.out-cbe): \
-Output/%.mallocrepl.out-cbe: Output/%.mallocrepl.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.onlyoverhead.out-cbe): \
-Output/%.onlyoverhead.out-cbe: Output/%.onlyoverhead.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe): \
-Output/%.nonpa.out-cbe: Output/%.nonpa.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe): \
-Output/%.poolalloc.out-cbe: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/poolalloccbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/poolalloccbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.out-cbe): \
-Output/%.basepa.out-cbe: Output/%.basepa.cbe
-	-$(SPEC_SANDBOX) basepacbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/basepacbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/basepacbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.mallocrepl.out-cbe): \
-Output/%.mallocrepl.out-cbe: Output/%.mallocrepl.cbe
-	-$(SPEC_SANDBOX) mallocreplcbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/mallocreplcbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/mallocreplcbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.onlyoverhead.out-cbe): \
-Output/%.onlyoverhead.out-cbe: Output/%.onlyoverhead.cbe
-	-$(SPEC_SANDBOX) onlyoverheadcbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/onlyoverheadcbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/onlyoverheadcbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.out-cbe): \
-Output/%.nonpa.out-cbe: Output/%.nonpa.cbe
-	-$(SPEC_SANDBOX) nonpacbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/nonpacbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/nonpacbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-endif
-
-
-# This rule diffs the post-poolallocated version to make sure we didn't break
-# the program!
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.diff-cbe): \
-Output/%.poolalloc.diff-cbe: Output/%.out-nat Output/%.poolalloc.out-cbe
-	@cp Output/$*.out-nat Output/$*.poolalloc.out-nat
-	-$(DIFFPROG) cbe $*.poolalloc $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.basepa.diff-cbe): \
-Output/%.basepa.diff-cbe: Output/%.out-nat Output/%.basepa.out-cbe
-	@cp Output/$*.out-nat Output/$*.basepa.out-nat
-	-$(DIFFPROG) cbe $*.basepa $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.mallocrepl.diff-cbe): \
-Output/%.mallocrepl.diff-cbe: Output/%.out-nat Output/%.mallocrepl.out-cbe
-	@cp Output/$*.out-nat Output/$*.mallocrepl.out-nat
-	-$(DIFFPROG) cbe $*.mallocrepl $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.onlyoverhead.diff-cbe): \
-Output/%.onlyoverhead.diff-cbe: Output/%.out-nat Output/%.onlyoverhead.out-cbe
-	@cp Output/$*.out-nat Output/$*.onlyoverhead.out-nat
-	-$(DIFFPROG) cbe $*.onlyoverhead $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.nonpa.diff-cbe): \
-Output/%.nonpa.diff-cbe: Output/%.out-nat Output/%.nonpa.out-cbe
-	@cp Output/$*.out-nat Output/$*.nonpa.out-nat
-	-$(DIFFPROG) cbe $*.nonpa $(HIDEDIFF)
-
-
-# This rule wraps everything together to build the actual output the report is
-# generated from.
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.out-nat                \
-                             Output/%.nonpa.diff-cbe         \
-			     Output/%.poolalloc.diff-cbe     \
-			     Output/%.basepa.diff-cbe      \
-			     Output/%.mallocrepl.diff-cbe    \
-			     Output/%.onlyoverhead.diff-cbe  \
-                             Output/%.LOC.txt
-	@echo > $@
-	@-if test -f Output/$*.nonpa.diff-cbe; then \
-	  printf "GCC-RUN-TIME: " >> $@;\
-	  grep "^program" Output/$*.out-nat.time >> $@;\
-        fi
-	@-if test -f Output/$*.nonpa.diff-cbe; then \
-	  printf "CBE-RUN-TIME-NORMAL: " >> $@;\
-	  grep "^program" Output/$*.nonpa.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.mallocrepl.diff-cbe; then \
-	  printf "CBE-RUN-TIME-MALLOCREPL: " >> $@;\
-	  grep "^program" Output/$*.mallocrepl.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.onlyoverhead.diff-cbe; then \
-	  printf "CBE-RUN-TIME-ONLYOVERHEAD: " >> $@;\
-	  grep "^program" Output/$*.onlyoverhead.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.basepa.diff-cbe; then \
-	  printf "CBE-RUN-TIME-BASEPA: " >> $@;\
-	  grep "^program" Output/$*.basepa.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.poolalloc.diff-cbe; then \
-	  printf "CBE-RUN-TIME-POOLALLOC: " >> $@;\
-	  grep "^program" Output/$*.poolalloc.out-cbe.time >> $@;\
-	fi
-	printf "LOC: " >> $@
-	cat Output/$*.LOC.txt >> $@
-	@cat Output/$*.$(TEST).poolalloc.bc.info >> $@
-	@#cat Output/$*.$(TEST).basepa.bc.out  >> $@
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PA_RT_O) $(PA_SO) $(PROGRAMS_TO_TEST:%=Output/%.llvm.bc) $(LLC) $(LOPT)
diff --git a/poolalloc/test/TEST.poolalloc.report b/poolalloc/test/TEST.poolalloc.report
deleted file mode 100644
index aca9340..0000000
--- a/poolalloc/test/TEST.poolalloc.report
+++ /dev/null
@@ -1,106 +0,0 @@
-##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===##
-#
-# This file defines a report to be generated for the pool allocator tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-# FormatTime - Convert a time from 1m23.45 into 83.45
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    return sprintf("%7.3f", $1*60.0+$2);
-  }
-
-  return sprintf("%6.2f", $Time);
-}
-
-
-sub RuntimePercent {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[4] ne "*" and
-      $Cols->[4] != "0") {
-    return sprintf "%7.2f", 100*$Cols->[$Col-1]/$Cols->[4];
-  } else {
-    return "n/a";
-  }
-}
-
-@LatexColumns = (1, 5, 8, 12, 9, 13, 14, 15, 2, 16);
-
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     '164.gzip/164.gzip' => '164.gzip',
-                     '175.vpr/175.vpr' => '175.vpr',
-                     '181.mcf/181.mcf' => '181.mcf',
-                     '186.crafty/186.crafty' => '186.crafty',
-                     '197.parser/197.parser' => '197.parser',
-                     '197.parser.hacked/197.parser.hacked' => '197.parser(b)',
-                     '255.vortex/255.vortex' => '255.vortex',
-                     '256.bzip2/256.bzip2' => '256.bzip2',
-                     '300.twolf/300.twolf' => '300.twolf',
-                     '-' => '-',
-                     "anagram/anagram"       => 'anagram',
-                     "bc/bc"                 => 'bc',
-                     "ft/ft"                 => 'ft',
-                     "ks/ks"                 => 'ks',
-                     "yacr2/yacr2"           => 'yacr2',
-                     '-' => '-',
-                     "analyzer"     => 'analyzer',
-                     "neural"       => 'neural',
-                     "pcompress2"   => 'pcompress2',
-                     "piff2"        => 'piff2',
-                     '-' => '-',
-                     "bh/bh" => 'bh',
-                     "bisort/bisort" => 'bisort',
-                     "em3d/em3d" => 'em3d',
-                     "health/health" => 'health',
-                     "mst/mst" => 'mst',
-                     "perimeter/perimeter" => 'perimeter',
-                     "power/power" => 'power',
-                     "treeadd/treeadd" => 'treeadd',
-                     "tsp/tsp" => 'tsp',
-                     '-' => '-',
-                     "llu"          => 'llu-bench',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- ["LOC"   , 'LOC:\s*([0-9]+)'],
- [],
-# Times
- ["GCC",            'GCC-RUN-TIME: program\s*([.0-9m:]+)', \&FormatTime],
- ["NonPATime",      'CBE-RUN-TIME-NORMAL: program\s*([.0-9m:]+)', \&FormatTime],
- [],
- ["OnlyOHTime",     'CBE-RUN-TIME-ONLYOVERHEAD: program\s*([.0-9m:]+)', \&FormatTime],
- ["OO run%",        \&RuntimePercent],
- [],
- ["ReplTime",       'CBE-RUN-TIME-MALLOCREPL: program\s*([.0-9m:]+)', \&FormatTime],
- ["MR run%",        \&RuntimePercent],
- [],
- ["PA Time",        'CBE-RUN-TIME-POOLALLOC: program\s*([.0-9m:]+)', \&FormatTime],
- ["PA run%",        \&RuntimePercent],
- [],
- ["Basepa",        'CBE-RUN-TIME-BASEPA: program\s*([.0-9m:]+)', \&FormatTime],
- ["Base run%",      \&RuntimePercent],
- [],
- ["NumPools",       '([0-9]+).*Number of pools allocated'],
- ["Typesafe",       '([0-9]+).*Number of typesafe pools'],
- ["BumpPtr",        '([0-9]+).*Number of bump pointer pools'],
- ["PFE",            '([0-9]+).*Number of poolfree.s elided'],
- ["NumArgs",        '([0-9]+).*Number of function arguments added'],
- ["MaxArgs",        '([0-9]+).*Maximum function arguments added'],
-#["Nonprofit",      '([0-9]+).*Number of DSNodes not profitable'],
- []
-);
-
diff --git a/poolalloc/test/TEST.ptrcomp.Makefile b/poolalloc/test/TEST.ptrcomp.Makefile
deleted file mode 100755
index 409f426..0000000
--- a/poolalloc/test/TEST.ptrcomp.Makefile
+++ /dev/null
@@ -1,144 +0,0 @@
-##===- poolalloc/test/TEST.ptrcomp.Makefile ----------------*- Makefile -*-===##
-#
-# This test runs the pool allocator and pointer compressor on all of the
-# programs, producing some performance numbers and statistics.
-#
-##===----------------------------------------------------------------------===##
-
-CFLAGS = -O2 -fno-strict-aliasing
-
-EXTRA_PA_FLAGS := 
-
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-# Pool allocator pass shared object
-PA_SO    := $(PROJECT_DIR)/Debug/lib/poolalloc$(SHLIBEXT)
-
-# Pool allocator runtime library
-#PA_RT    := $(PROJECT_DIR)/lib/Bytecode/libpoolalloc_fl_rt.bc
-#PA_RT_O  := $(PROJECT_DIR)/lib/$(CONFIGURATION)/poolalloc_rt.o
-PA_RT_O  := $(PROJECT_DIR)/Release/lib/poolalloc_rt.o
-#PA_RT_O  := $(PROJECT_DIR)/lib/Release/poolalloc_fl_rt.o
-
-# Command to run opt with the pool allocator pass loaded
-OPT_PA := $(LOPT) -load $(PA_SO)
-
-# OPT_PA_STATS - Run opt with the -stats and -time-passes options, capturing the
-# output to a file.
-OPT_PA_STATS = $(OPT_PA) -info-output-file=$(CURDIR)/$@.info -stats -time-passes
-
-OPTZN_PASSES := -globaldce -ipsccp -deadargelim -adce -instcombine -simplifycfg
-
-
-# This rule runs the pool allocator on the .llvm.bc file to produce a new .bc
-# file
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).poolalloc.bc): \
-Output/%.$(TEST).poolalloc.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -poolalloc $(EXTRA_PA_FLAGS) $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).ptrcomp64.bc): \
-Output/%.$(TEST).ptrcomp64.bc: Output/%.llvm.bc $(PA_SO) $(LOPT)
-	-@rm -f $(CURDIR)/$@.info
-	-$(OPT_PA_STATS) -pointercompress $(OPTZN_PASSES) $< -o $@ -f 2>&1 > $@.out
-
-# This rule compiles the new .bc file into a .c file using CBE
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.cbe.c): \
-Output/%.poolalloc.cbe.c: Output/%.$(TEST).poolalloc.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.ptrcomp64.cbe.c): \
-Output/%.ptrcomp64.cbe.c: Output/%.$(TEST).ptrcomp64.bc $(LLC)
-	-$(LLC) -march=c -f $< -o $@
-
-
-
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.cbe): \
-Output/%.poolalloc.cbe: Output/%.poolalloc.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-$(PROGRAMS_TO_TEST:%=Output/%.ptrcomp64.cbe): \
-Output/%.ptrcomp64.cbe: Output/%.ptrcomp64.cbe.c $(PA_RT_O)
-	-$(CC) $(CFLAGS) $< $(PA_RT_O) $(LLCLIBS) $(LDFLAGS) -o $@
-
-
-ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES
-
-# This rule runs the generated executable, generating timing information, for
-# normal test programs
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe): \
-Output/%.poolalloc.out-cbe: Output/%.poolalloc.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-$(PROGRAMS_TO_TEST:%=Output/%.ptrcomp64.out-cbe): \
-Output/%.ptrcomp64.out-cbe: Output/%.ptrcomp64.cbe
-	-$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS)
-
-else
-
-# This rule runs the generated executable, generating timing information, for
-# SPEC
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.out-cbe): \
-Output/%.poolalloc.out-cbe: Output/%.poolalloc.cbe
-	-$(SPEC_SANDBOX) poolalloccbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/poolalloccbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/poolalloccbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-$(PROGRAMS_TO_TEST:%=Output/%.ptrcomp64.out-cbe): \
-Output/%.ptrcomp64.out-cbe: Output/%.ptrcomp64.cbe
-	-$(SPEC_SANDBOX) ptrcomp64cbe-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-             $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \
-                  ../../$< $(RUN_OPTIONS)
-	-(cd Output/ptrcomp64cbe-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@
-	-cp Output/ptrcomp64cbe-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time
-
-endif
-
-
-# This rule diffs the post-poolallocated version to make sure we didn't break
-# the program!
-$(PROGRAMS_TO_TEST:%=Output/%.poolalloc.diff-cbe): \
-Output/%.poolalloc.diff-cbe: Output/%.out-nat Output/%.poolalloc.out-cbe
-	@cp Output/$*.out-nat Output/$*.poolalloc.out-nat
-	-$(DIFFPROG) cbe $*.poolalloc $(HIDEDIFF)
-
-$(PROGRAMS_TO_TEST:%=Output/%.ptrcomp64.diff-cbe): \
-Output/%.ptrcomp64.diff-cbe: Output/%.out-nat Output/%.ptrcomp64.out-cbe
-	@cp Output/$*.out-nat Output/$*.ptrcomp64.out-nat
-	-$(DIFFPROG) cbe $*.ptrcomp64 $(HIDEDIFF)
-
-
-# This rule wraps everything together to build the actual output the report is
-# generated from.
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.out-nat                \
-			     Output/%.poolalloc.diff-cbe     \
-			     Output/%.ptrcomp64.diff-cbe      \
-                             Output/%.LOC.txt
-	@echo > $@
-	@-if test -f Output/$*.ptrcomp64.diff-cbe; then \
-	  printf "CBE-RUN-TIME-PTRCOMP64: " >> $@;\
-	  grep "^program" Output/$*.ptrcomp64.out-cbe.time >> $@;\
-        fi
-	@-if test -f Output/$*.poolalloc.diff-cbe; then \
-	  printf "CBE-RUN-TIME-POOLALLOC: " >> $@;\
-	  grep "^program" Output/$*.poolalloc.out-cbe.time >> $@;\
-	fi
-	printf "LOC: " >> $@
-	cat Output/$*.LOC.txt >> $@
-	@cat Output/$*.$(TEST).ptrcomp64.bc.info >> $@
-	@#cat Output/$*.$(TEST).ptrcomp64.bc.out  >> $@
-
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
-REPORT_DEPENDENCIES := $(PA_RT_O) $(PA_SO) $(PROGRAMS_TO_TEST:%=Output/%.llvm.bc) $(LLC) $(LOPT)
diff --git a/poolalloc/test/TEST.ptrcomp.report b/poolalloc/test/TEST.ptrcomp.report
deleted file mode 100644
index 0d61989..0000000
--- a/poolalloc/test/TEST.ptrcomp.report
+++ /dev/null
@@ -1,78 +0,0 @@
-##=== TEST.ptrcomp.report - Report description for ptrcomp -----*- perl -*-===##
-#
-# This file defines a report to be generated for the pointer compression tests.
-#
-##===----------------------------------------------------------------------===##
-
-# Sort by program name
-$SortCol = 0;
-$TrimRepeatedPrefix = 1;
-
-# FormatTime - Convert a time from 1m23.45 into 83.45
-sub FormatTime {
-  my $Time = shift;
-  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
-    return sprintf("%7.3f", $1*60.0+$2);
-  }
-
-  return sprintf("%6.2f", $Time);
-}
-
-
-sub RuntimePercent {
-  my ($Cols, $Col) = @_;
-  if ($Cols->[$Col-1] ne "*" and $Cols->[3] ne "*" and
-      $Cols->[3] != "0") {
-    return sprintf "%7.2f", 100*$Cols->[$Col-1]/$Cols->[3];
-  } else {
-    return "n/a";
-  }
-}
-
-@LatexColumns = (1, 5, 8, 12, 9, 13, 14, 15, 2, 16);
-
-my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
-my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';
-
-@LatexRowMapOrder = (
-                     "anagram/anagram"       => 'anagram',
-                     "bc/bc"                 => 'bc',
-                     "ft/ft"                 => 'ft',
-                     "ks/ks"                 => 'ks',
-                     "yacr2/yacr2"           => 'yacr2',
-                     '-' => '-',
-                     '164.gzip/164.gzip' => '164.gzip',
-                     '175.vpr/175.vpr' => '175.vpr',
-                     '181.mcf/181.mcf' => '181.mcf',
-                     '186.crafty/186.crafty' => '186.crafty',
-                     '197.parser/197.parser' => '197.parser',
-                     '197.parser.hacked/197.parser.hacked' => '197.parser(b)',
-                     '255.vortex/255.vortex' => '255.vortex',
-                     '256.bzip2/256.bzip2' => '256.bzip2',
-                     '300.twolf/300.twolf' => '300.twolf',
-                     '-' => '-',
-                     "analyzer"     => 'analyzer',
-                     "llu"          => 'llu-bench',
-                  );
-
-
-# These are the columns for the report.  The first entry is the header for the
-# column, the second is the regex to use to match the value.  Empty list create
-# seperators, and closures may be put in for custom processing.
-(
-# Name
- ["Name:" , '\'([^\']+)\' Program'],
- ["LOC"   , 'LOC:\s*([0-9]+)'],
- [],
-# Times
- ["PA Time",        'CBE-RUN-TIME-POOLALLOC: program\s*([.0-9m:]+)', \&FormatTime],
- ["PC Time",        'CBE-RUN-TIME-PTRCOMP64: program\s*([.0-9m:]+)', \&FormatTime],
- ["PC run%",        \&RuntimePercent],
- [],
- ["NumPools",       '([0-9]+).*Number of pools allocated'],
- ["Typesafe",       '([0-9]+).*Number of typesafe pools'],
- ["NumArgs",        '([0-9]+).*Number of function arguments added'],
-#["Nonprofit",      '([0-9]+).*Number of DSNodes not profitable'],
- []
-);
-
diff --git a/poolalloc/test/TEST.strace.Makefile b/poolalloc/test/TEST.strace.Makefile
deleted file mode 100644
index fe00af4..0000000
--- a/poolalloc/test/TEST.strace.Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-##===- poolalloc/TEST.strace.Makefile ----------------------*- Makefile -*-===##
-#
-# Makefile for measuring system call activity with strace
-#
-##===----------------------------------------------------------------------===##
-
-TESTNAME = $*
-CURDIR  := $(shell cd .; pwd)
-PROGDIR := $(shell cd $(LLVM_SRC_ROOT)/projects/llvm-test; pwd)/
-RELDIR  := $(subst $(PROGDIR),,$(CURDIR))
-
-STRACE := strace -c -f
-
-#
-# Once the results are generated, create files containing each individiual
-# piece of performance information.
-#
-
-#
-# Generate events for Pool Allocated CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).pa.%): \
-Output/test.$(TEST).pa.%: Output/%.poolalloc.cbe Output/test.$(TEST).%
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(STRACE) -o $@ $<
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(STRACE) -o $@ $< $(RUN_OPTIONS)
-endif
-
-#
-# Generate events for CBE
-#
-$(PROGRAMS_TO_TEST:%=Output/test.$(TEST).%): \
-Output/test.$(TEST).%: Output/%.cbe
-	@echo "========================================="
-	@echo "Running '$(TEST)' test on '$(TESTNAME)' program"
-ifeq ($(RUN_OPTIONS),)
-	$(VERB) cat $(STDIN_FILENAME) | $(STRACE) -o $@ $<
-else
-	$(VERB) cat $(STDIN_FILENAME) | $(STRACE) -o $@ $< $(RUN_OPTIONS)
-endif
-
-$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/test.$(TEST).pa.% Output/test.$(TEST).%
-	touch $@
-
-$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
-test.$(TEST).%: Output/%.$(TEST).report.txt
-	@echo "---------------------------------------------------------------"
-	@echo ">>> ========= '$(RELDIR)/$*' Program"
-	@echo "---------------------------------------------------------------"
-	@cat $<
-
diff --git a/sample/Makefile b/sample/Makefile
deleted file mode 100644
index 5d5815e..0000000
--- a/sample/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- projects/sample/Makefile ----------------------------*- Makefile -*-===##
-#
-# This is a sample Makefile for a project that uses LLVM.
-#
-##===----------------------------------------------------------------------===##
-
-#
-# Indicates our relative path to the top of the project's root directory.
-#
-LEVEL      := .
-DIRS       := lib tools
-EXTRA_DIST := include
-GOAL       := common
-
-#
-# Include the Master Makefile that knows how to build all.
-#
-include $(LEVEL)/Makefile.config
diff --git a/sample/Makefile.config.in b/sample/Makefile.config.in
deleted file mode 100644
index 84bd2f4..0000000
--- a/sample/Makefile.config.in
+++ /dev/null
@@ -1,28 +0,0 @@
-#===-- Makefile.config.in - LLVM Module configureion -------*- Makefile -*--===#
-#
-#                          The LLVM Sample Module          
-#
-# This file was developed by Reid Spencer is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# Get the configuration variables specific to this module
-LLVM_TOP                := @LLVM_TOP@
-LLVM_MODULE_NAME        := @LLVM_MODULE_NAME@
-LLVM_COPYRIGHT          := @LLVM_COPYRIGHT@
-LLVM_MODULE_FULLNAME    := @LLVM_MODULE_FULLNAME@
-LLVM_MODULE_TARNAME     := @LLVM_MODULE_TARNAME@
-LLVM_MODULE_VERSION     := @LLVM_MODULE_VERSION@
-LLVM_MODULE_BUGREPORT   := @LLVM_MODULE_BUGREPORT@
-LLVM_MODULE_DEPENDS_ON  := @LLVM_MODULE_DEPENDS_ON@
- 
-# Get the source and object root directories
-SRC_ROOT := @abs_top_srcdir@
-OBJ_ROOT := @abs_top_builddir@
-
-# Set the root directory of this project's install prefix
-INSTALL_ROOT := @prefix@
-
-# Include the common makefile from the support module
-include $(LLVM_TOP)/support/Makefile.common
diff --git a/sample/ModuleInfo.txt b/sample/ModuleInfo.txt
deleted file mode 100644
index 50c0b04..0000000
--- a/sample/ModuleInfo.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-DepModule: support
-BuildCmd: ./build-for-llvm-top.sh
-CleanCmd: make clean
-InstallCmd: make install
diff --git a/sample/autoconf/Makefile b/sample/autoconf/Makefile
deleted file mode 100644
index 89b4c18..0000000
--- a/sample/autoconf/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include ../../support/autoconf/Makefile.mod
diff --git a/sample/autoconf/configure.ac b/sample/autoconf/configure.ac
deleted file mode 100644
index b2ce569..0000000
--- a/sample/autoconf/configure.ac
+++ /dev/null
@@ -1,184 +0,0 @@
-dnl === configure.ac --------------------------------------------------------===
-dnl                     LLVM Sample Module Configuration
-dnl
-dnl This file was developed by Reid Spencer and is distributed under the 
-dnl University of Illinois Open Source License. See LICENSE.TXT for details.
-dnl 
-dnl===-----------------------------------------------------------------------===
-dnl This is the sample module configuration script. It is processed by the 
-dnl autoconf program to produce a script named configure. This script contains 
-dnl the configuration checks that the sample module needs in order to support 
-dnl multiple platforms.
-dnl
-dnl This file is composed of 10 sections per the recommended organization of
-dnl autoconf input defined in the autoconf documentation. As this file evolves,
-dnl please keep the various types of checks within their sections. The sections
-dnl are as follows:
-dnl
-dnl SECTION  1: Initialization & Setup
-dnl SECTION  2: Architecture, target, and host checks
-dnl SECTION  3: Command line arguments for the configure script.
-dnl SECTION  4: Check for programs we need and that they are the right version
-dnl SECTION  5: Check for libraries
-dnl SECTION  6: Check for header files
-dnl SECTION  7: Check for types and structures
-dnl SECTION  8: Check for specific functions needed
-dnl SECTION  9: Additional checks, variables, etc.
-dnl SECTION 10: Specify the output files and generate it
-dnl
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 1: Initialization & Setup
-dnl===
-dnl===-----------------------------------------------------------------------===
-dnl Initialize autoconf and define the package name, version number and
-dnl email address for reporting bugs.
-AC_INIT([[LLVM Sample Module]],[[1.0]],[bugs@yourdomain.tld],[sample])
-THIS_IS_LLVM_MODULE([sample])
-
-dnl Verify that the source directory is valid. This makes sure that we are
-dnl configuring LLVM and not some other package (it validates --srcdir argument)
-AC_CONFIG_SRCDIR([lib/sample/sample.c])
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 2: Architecture, target, and host checks
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. You don't need AC_CANONICAL_TARGET here, its already been done.
-dnl   2. Most everything you'll need is already in the support/Makefile.config
-dnl      which should be included into your module's Makefile.config
-dnl   3. I.e. probably this section is empty for your module.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 3: Command line arguments for the configure script.
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. This is where you can put LLVM_WITH_FEATURE, LLVM_WITH_LEVEL, 
-dnl      AC_ARG_WITH AC_ARG_ENABLE macros to define the --with-* and --enable-*
-dnl      options.
-dnl      For example:
-dnl        LLVM_WITH_FEATURE(feature-name,"Help text for feature-name",0)
-dnl        AC_ARG_WITH(my_thing, AS_HELP_STRING([--with-my-thing,
-dnl          [Specify where my-thing is]),,withval=default)
-dnl        case "$withval" in
-dnl          default)  MY_THING=/default/path/to/my/thing ;;
-dnl          *) MY_THING=$withval ;;
-dnl        esac
-dnl        AC_SUBST(MY_THING,$MY_THING)
-dnl   2. Also put anything else here that is general or needed below.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 4: Check for programs we need and that they are the right version
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. Most of the typical programs are already checked for by support and
-dnl      made available through the makefile. Its more efficient to use those
-dnl      than re-check them in the module, but this isn't a hard and fast rule.
-dnl   2. This is where you use AC_PROG_* and AC_PATH_PROG macros
-dnl   3. You should also check sanity and version for these programs in this 
-dnl      section.
-dnl   4. Its useful to default the programs to "echo ProgName" so that if they
-dnl      get used in a makefile rule, they simply print out the command line
-dnl      that was supposed to be run.
-dnl   5. If tools have dependencies then check their compatibility here too.
-dnl   6. If you can use a set of alternate tools, pick one here and configure
-dnl      for it.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 5: Check for libraries
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. This section is for AC_CHECK_LIB and AC_SEARCH_LIBS macros.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 6: Check for header files
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. This section is for AC_HEADER_* and AC_CHECK_HEADERS macros.
-dnl   2. Note that support/autoconf checks for many of the standard operating
-dnl      system headers and provides a lib/System to provide a consistent 
-dnl      interface to the operating system. Chances are you don't need any
-dnl      but could instead include support/include/llvm/Config/config.h
-dnl   3. Also, use the C++ variant (e.g. <cstdio>) as this has some platform
-dnl      neutrality benefits as well.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 7: Check for types and structures
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. Most checks for integer type sizes are done by support module.
-dnl   2. See the support/include/llvm/Support/DataTypes.h file
-dnl  
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 8: Check for specific functions needed
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. This section is for AC_CHECK_FUNCS macros and similar ones that
-dnl      check for the availability of specific functions.
-dnl   2. Again, many of the operating system specific functions are already
-dnl      handled by the lib/System library in the support module. Use its
-dnl      interface (support/include/llvm/System/*.h) instead of relying on
-dnl      system-specific behavior. If it lacks something, add an abstraction.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 9: Additional checks, variables, etc.
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES_FOR_MODULES:
-dnl   1. This is for anything else that doesn't fit any of the other sections.
-dnl   2. If you need to compute substitution variables, this is the place to
-dnl      do it.
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 10: Specify the output files and generate it
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl NOTES FOR MODULES:
-dnl   1. This is *only* for AC_CONFIG_FILES, AC_CONFIG_HEADER, AC_CONFIG_LINKS,
-dnl      AC_CONFIG_COMMANDS, CONFIG_LLVM_MAKEFILE, and AC_OUTPUT macros.
-dnl   2. Many of the configured header files you'll need are already in the
-dnl      support/include/llvm/Config/config.h and other support headers. No
-dnl      need to do them again in your module.
-dnl   3. You don't need to do CONFIG_LLVM_MAKEFILE on your Makefile.config or
-dnl      Makefile.common, it was done by THIS_IS_LLVM_MODULE
-dnl   4. The only makefiles that need to be specified are the ones that are in
-dnl      the first level directories below the module's directory (e.g. lib,
-dnl      tools, etc.) The makefile system knows how to propagate makefiles to
-dnl      your build directory at lower levels.
-dnl   5. The AC_OUTPUT macro *must* be last. Its the one that does everything
-
-dnl Do special configuration of Makefiles
-CONFIG_LLVM_MAKEFILE(Makefile)
-CONFIG_LLVM_MAKEFILE(lib/Makefile)
-CONFIG_LLVM_MAKEFILE(lib/sample/Makefile)
-CONFIG_LLVM_MAKEFILE(tools/Makefile)
-CONFIG_LLVM_MAKEFILE(tools/sample/Makefile)
-
-dnl Finally, crank out the output
-AC_OUTPUT
diff --git a/sample/build-for-llvm-top.sh b/sample/build-for-llvm-top.sh
deleted file mode 100755
index 06f7e15..0000000
--- a/sample/build-for-llvm-top.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# This includes the Bourne shell library from llvm-top. Since this file is
-# generally only used when building from llvm-top, it is safe to assume that
-# llvm is checked out into llvm-top in which case .. just works.
-. ../library.sh
-
-# Call the library function to process the arguments
-process_arguments "$@"
-
-# See if we have previously been configured by sensing the presence
-# of the config.status scripts
-if test ! -x "config.status" ; then
-  # We must configure so build a list of configure options
-  config_options="--prefix=$PREFIX --with-llvm-top=$LLVM_TOP "
-  config_options="$config_options $OPTIONS_DASH_DASH"
-  msg 0 Configuring $module with:
-  msg 0 "  ./configure" $config_options
-  ./configure $config_options || (echo "Can't configure llvm" ; exit 1)
-fi
-
-msg 0 Building $MODULE with:
-msg 0 "  make" $build_opts
-make $build_opts
diff --git a/sample/configure b/sample/configure
deleted file mode 100755
index ae51737..0000000
--- a/sample/configure
+++ /dev/null
@@ -1,2808 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for LLVM Sample Module 1.0.
-#
-# Report bugs to <bugs@yourdomain.tld>.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-#
-# Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# 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
-
-
-# PATH needs CR
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-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.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-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
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes && 	 (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-	   done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-	 # Try only shells that exist, to save several forks.
-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-# 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
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-# 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
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  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" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (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
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-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
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    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
-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=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
-# systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  as_executable_p="test -x"
-else
-  as_executable_p=:
-fi
-rm -f conf$$.file
-
-# 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 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, 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=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME='LLVM Sample Module'
-PACKAGE_TARNAME='sample'
-PACKAGE_VERSION='1.0'
-PACKAGE_STRING='LLVM Sample Module 1.0'
-PACKAGE_BUGREPORT='bugs@yourdomain.tld'
-
-ac_unique_file=""
-ac_unique_file="lib/sample/sample.c"
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-LLVM_TOP
-LLVM_COPYRIGHT
-LLVM_MODULE_NAME
-LLVM_MODULE_FULLNAME
-LLVM_MODULE_TARNAME
-LLVM_MODULE_VERSION
-LLVM_MODULE_BUGREPORT
-LLVM_MODULE_DEPENDS_ON
-LLVM_CONFIGTIME
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files=''
-      ac_precious_vars='build_alias
-host_alias
-target_alias'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)	ac_optarg=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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval enable_$ac_feature=\$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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval with_$ac_package=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 ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      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'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-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
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
-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
-    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 .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
-
-
-# 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 -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
-    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 .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
-	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 LLVM Sample Module 1.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/sample]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of LLVM Sample Module 1.0:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvm-top         Specify where the llvm-top directory is
-
-Report bugs to <bugs@yourdomain.tld>.
-_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" || continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`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
-      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
-LLVM Sample Module configure 1.0
-generated by GNU Autoconf 2.60
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-
-Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign.
-_ACEOF
-  exit
-fi
-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 LLVM Sample Module $as_me 1.0, which was
-generated by GNU Autoconf 2.60.  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=.
-  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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$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
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_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
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    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'; { (exit 1); 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
-
-# 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
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  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.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$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,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-
-
-
-  LLVM_TOP=`cd .. ; pwd`
-
-# Check whether --with-llvm-top was given.
-if test "${with_llvm_top+set}" = set; then
-  withval=$with_llvm_top;
-else
-  withval=default
-fi
-
-  case "$withval" in
-    default)  ;;     *) LLVM_TOP=$withval ;;
-  esac
-  if test ! -d "$LLVM_TOP" ; then
-    { { echo "$as_me:$LINENO: error: \"The LLVM_TOP directory ($LLVM_TOP) is not a directory!\"" >&5
-echo "$as_me: error: \"The LLVM_TOP directory ($LLVM_TOP) is not a directory!\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  LLVM_TOP=$LLVM_TOP
-
-
-  if test ! -d "$LLVM_TOP/support/autoconf" ; then
-    { { echo "$as_me:$LINENO: error: \"Your llvm-top directory needs to have the support module checked out\"" >&5
-echo "$as_me: error: \"Your llvm-top directory needs to have the support module checked out\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-
-  ac_aux_dir=
-for ac_dir in $LLVM_TOP/support/autoconf "$srcdir"/$LLVM_TOP/support/autoconf; 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
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $LLVM_TOP/support/autoconf \"$srcdir\"/$LLVM_TOP/support/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $LLVM_TOP/support/autoconf \"$srcdir\"/$LLVM_TOP/support/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-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.
-
-
-
-
-
-  LLVM_COPYRIGHT="Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign."
-
-
-
-
-  LLVM_MODULE_NAME="sample"
-  cwd=`pwd`
-  if test `basename $cwd` != "sample" ; then
-    { { echo "$as_me:$LINENO: error: Module sample is checked out to $cwd which is not allowed" >&5
-echo "$as_me: error: Module sample is checked out to $cwd which is not allowed" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  LLVM_MODULE_NAME="sample"
-
-
-  LLVM_MODULE_FULLNAME="LLVM Sample Module"
-  LLVM_MODULE_TARNAME="sample"
-  LLVM_MODULE_VERSION="1.0"
-  LLVM_MODULE_BUGREPORT="bugs@yourdomain.tld"
-  LLVM_MODULE_FULLNAME="LLVM Sample Module"
-
-  LLVM_MODULE_TARNAME="sample"
-
-  LLVM_MODULE_VERSION="1.0"
-
-  LLVM_MODULE_BUGREPORT="bugs@yourdomain.tld"
-
-
-  LLVM_MODULE_DEPENDS_ON=`grep DepModules: ModuleInfo.txt | \
-    sed 's/DepModules: *//'`
-  for x in $LLVM_MODULE_DEPENDS_ON ; do
-    { echo "$as_me:$LINENO: sample depends on $x" >&5
-echo "$as_me: sample depends on $x" >&6;}
-          done
-  LLVM_MODULE_DEPENDS_ON="$LLVM_MODULE_DEPENDS_ON"
-
-
-
-  has_configured_makefile=0
-  if test -r Makefile.config.in ; then
-    ac_config_files="$ac_config_files Makefile.config"
-
-    has_configured_makefile=1
-  fi
-  if test -r Makefile.common.in ; then
-    ac_config_files="$ac_config_files Makefile.common"
-
-    has_configured_makefile=1
-  fi
-  if test "$has_configured_makefile" -eq 0 ; then
-    { { echo "$as_me:$LINENO: error: \"Your module is lacking a Makefile.common.in or Makefile.config.in file to hold configured variables\"" >&5
-echo "$as_me: error: \"Your module is lacking a Makefile.common.in or Makefile.config.in file to hold configured variables\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-
-  ac_config_commands="$ac_config_commands setup"
-
-
-  LLVM_CONFIGTIME=`date`
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_config_commands="$ac_config_commands Makefile"
-
-
-ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-ac_config_commands="$ac_config_commands lib/sample/Makefile"
-
-
-ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-ac_config_commands="$ac_config_commands tools/sample/Makefile"
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  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='
-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=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $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}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# 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
-
-
-# PATH needs CR
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-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.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-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
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  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" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (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
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-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
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    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
-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=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
-# systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  as_executable_p="test -x"
-else
-  as_executable_p=:
-fi
-rm -f conf$$.file
-
-# 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
-
-# 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 LLVM Sample Module $as_me 1.0, which was
-generated by GNU Autoconf 2.60.  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
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -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
-      --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 <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-LLVM Sample Module config.status 1.0
-configured by $0, generated by GNU Autoconf 2.60,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 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'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-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=$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 )
-    echo "$ac_cs_version"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --he | --h |  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$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
-if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
-  export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS
-#
-LLVM_TOP="${LLVM_TOP}"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "Makefile.config") CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
-    "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-    "setup") CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-    "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-    "lib/Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-    "lib/sample/Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS lib/sample/Makefile" ;;
-    "tools/Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-    "tools/sample/Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS tools/sample/Makefile" ;;
-
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-LLVM_TOP!$LLVM_TOP$ac_delim
-LLVM_COPYRIGHT!$LLVM_COPYRIGHT$ac_delim
-LLVM_MODULE_NAME!$LLVM_MODULE_NAME$ac_delim
-LLVM_MODULE_FULLNAME!$LLVM_MODULE_FULLNAME$ac_delim
-LLVM_MODULE_TARNAME!$LLVM_MODULE_TARNAME$ac_delim
-LLVM_MODULE_VERSION!$LLVM_MODULE_VERSION$ac_delim
-LLVM_MODULE_BUGREPORT!$LLVM_MODULE_BUGREPORT$ac_delim
-LLVM_MODULE_DEPENDS_ON!$LLVM_MODULE_DEPENDS_ON$ac_delim
-LLVM_CONFIGTIME!$LLVM_CONFIGTIME$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 48; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[	 ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in  :F $CONFIG_FILES      :C $CONFIG_COMMANDS
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-   { (exit 1); exit 1; }; };;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
-      esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    fi
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
-    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 ||
-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"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`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 ||
-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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`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
-  #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  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
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;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
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
- ;;
-
-
-  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    "lib/Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname lib/Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    "lib/sample/Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname lib/sample/Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/lib/sample/Makefile lib/sample/Makefile ;;
-    "tools/Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname tools/Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    "tools/sample/Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname tools/sample/Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/tools/sample/Makefile tools/sample/Makefile ;;
-
-  esac
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# 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 || { (exit 1); exit 1; }
-fi
-
diff --git a/sample/include/sample.h b/sample/include/sample.h
deleted file mode 100644
index b3ce9ce..0000000
--- a/sample/include/sample.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: sample.h
- *
- *      This is a sample header file that is global to the entire project.
- *      It is located here so that everyone will find it.
- */
-extern int compute_sample (int a);
-
diff --git a/sample/lib/Makefile b/sample/lib/Makefile
deleted file mode 100644
index e7848d8..0000000
--- a/sample/lib/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- sample/lib/Makefile ---------------------------------*- Makefile -*-===##
-
-# Relative path to the top of the source tree.
-LEVEL := ..
-
-# Goal of this directory is just descend to the DIRS
-GOAL := common
-
-# List all of the subdirectories that we will compile.
-DIRS := sample
-
-# Get all the rules to build things.
-include $(LEVEL)/Makefile.config
diff --git a/sample/lib/sample/Makefile b/sample/lib/sample/Makefile
deleted file mode 100644
index b20648e..0000000
--- a/sample/lib/sample/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- sample/lib/sample/Makefile --------------------------*- Makefile -*-===##
-
-#
-# Indicate where we are relative to the top of the source tree.
-#
-LEVEL=../..
-
-#
-# Give the name of a library.  This will build a dynamic version.
-#
-LIBRARYNAME := sample
-GOAL := archive
-
-#
-# Include Makefile.common so we know what to do.
-#
-include $(LEVEL)/Makefile.config
diff --git a/sample/lib/sample/sample.c b/sample/lib/sample/sample.c
deleted file mode 100644
index a5ae280..0000000
--- a/sample/lib/sample/sample.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * File: sample.c
- *
- * Description:
- *  This is a sample source file for a library.  It helps to demonstrate
- *  how to setup a project that uses the LLVM build system, header files,
- *  and libraries.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* LLVM Header File
-#include "llvm/Support/DataTypes.h"
-*/
-
-/* Header file global to this project */
-#include "sample.h"
-
-int
-compute_sample (int a)
-{
-  return a;
-}
-
diff --git a/sample/tools/Makefile b/sample/tools/Makefile
deleted file mode 100644
index bb552da..0000000
--- a/sample/tools/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- sample/tools/Makefile -------------------------------*- Makefile -*-===##
-
-#
-# Relative path to the top of the source tree.
-#
-LEVEL := ..
-
-#
-# List all of the subdirectories that we will compile.
-DIRS := sample
-GOAL := common
-
-include $(LEVEL)/Makefile.config
diff --git a/sample/tools/sample/Makefile b/sample/tools/sample/Makefile
deleted file mode 100644
index 4f11a5c..0000000
--- a/sample/tools/sample/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- sample/tools/sample/Makefile ------------------------*- Makefile -*-===##
-
-# Indicate where we are relative to the top of the source tree.
-LEVEL   := ../..
-
-# Give the name of the tool.
-TOOLNAME := Sample
-
-# List libraries that we'll need
-# We use LIBS because sample is a dynamic library.
-USEDLIBS := sample.a
-
-# The goal for this directory is to link a tool.
-GOAL     := tool
-
-#
-# Include Makefile.common so we know what to do.
-#
-include $(LEVEL)/Makefile.config
diff --git a/sample/tools/sample/main.c b/sample/tools/sample/main.c
deleted file mode 100644
index 2880265..0000000
--- a/sample/tools/sample/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <unistd.h>
-
-#include "sample.h"
-
-int
-main (int argc, char ** argv)
-{
-  printf ("%d\n", compute_sample (5));
-  exit (0);
-}
-
diff --git a/support/Makefile b/support/Makefile
deleted file mode 100644
index 7ccdc26..0000000
--- a/support/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-#===- ./Makefile -------------------------------------------*- Makefile -*--===#
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# This is the top level Makefile for the LLVM support module.
-LEVEL := .
-DIRS  := lib
-GOAL  := common
-
-include $(LEVEL)/Makefile.config 
-
-#------------------------------------------------------------------------
-# Make sure the generated headers are up-to-date. This must be kept in
-# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac
-#------------------------------------------------------------------------
-FilesToConfig := \
-  include/llvm/Config/config.h \
-  include/llvm/Support/DataTypes.h \
-  include/llvm/ADT/hash_map \
-  include/llvm/ADT/hash_set \
-  include/llvm/ADT/iterator
-FilesToConfigPATH  := $(addprefix $(OBJ_ROOT)/,$(FilesToConfig))
-
-all-local:: $(FilesToConfigPATH)
-$(FilesToConfigPATH) : $(OBJ_ROOT)/% : $(SRC_ROOT)/%.in 
-	$(Echo) Regenerating $*
-	$(Verb) cd $(OBJ_ROOT) && $(ConfigStatusScript) $*
-
-.PRECIOUS: $(FilesToConfigPATH)
diff --git a/support/Makefile.common.in b/support/Makefile.common.in
deleted file mode 100644
index b7726aa..0000000
--- a/support/Makefile.common.in
+++ /dev/null
@@ -1,213 +0,0 @@
-#===-- Makefile.common - Shared configuration for LLVM -----*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file is included by the Makefile.config file of every LLVM module. It
-# provides the definitions that are common to all LLVM modules and are required
-# so that Makefile.rules can work. 
-#
-#===------------------------------------------------------------------------===#
-
-# Get the path to the 'pwd' command.
-PWD := @BINPWD@
-
-# Get the current directory we're going to build, obj and src. The includer
-# must have previously set OBJ_ROOT and SRC_ROOT.
-OBJ_DIR  := $(shell $(PWD))
-SRC_DIR  := $(shell cd $(SRC_ROOT)/$(patsubst $(OBJ_ROOT)%,%,$(OBJ_DIR));$(PWD))
-
-# Determine if we're on a unix or windows type operating system
-LLVM_ON_UNIX:=@LLVM_ON_UNIX@
-LLVM_ON_WIN32:=@LLVM_ON_WIN32@
-
-# Target operating system for which LLVM will be compiled.
-OS=@OS@
-
-# Target hardware architecture
-ARCH=@ARCH@
-
-# Indicates, whether we're cross-compiling LLVM or not
-LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
-
-# Executable file extension for build platform (mainly for
-# tablegen call if we're cross-compiling).
-BUILD_EXEEXT=@BUILD_EXEEXT@
-
-# Shared library extension for host platform.
-SHLIBEXT = @SHLIBEXT@
-
-# Executable file extension for host platform.
-EXEEXT = @EXEEXT@
-
-# Target triple (cpu-vendor-os) for which we should generate code
-TARGET_TRIPLE=@target@
-
-# Targets that we should build
-TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
-
-# Enable JIT for this platform
-TARGET_HAS_JIT = @TARGET_HAS_JIT@
-
-# Extra options to compile LLVM with
-EXTRA_OPTIONS=@EXTRA_OPTIONS@
-
-# Endian-ness of the target
-ENDIAN=@ENDIAN@
-
-# Path to the C++ compiler to use.  This is an optional setting, which defaults
-# to whatever your gmake defaults to.
-CXX = @CXX@
-
-# Path to the CC binary, which use used by testcases for native builds.
-CC := @CC@
-
-# Linker flags.
-LDFLAGS+=@LDFLAGS@
-
-# Path to the library archiver program.
-AR_PATH = @AR@
-
-# Path to the nm program
-NM_PATH = @NM@
-
-# The pathnames of the programs we require to build
-BISON      := @BISON@
-CMP        := @CMP@
-CP         := @CP@
-DATE       := @DATE@
-FIND       := @FIND@
-FLEX       := @LEX@
-GREP       := @GREP@
-INSTALL    := @INSTALL@
-MKDIR      := $(LLVM_TOP)/support/autoconf/mkinstalldirs
-MV         := @MV@
-RANLIB     := @RANLIB@
-RM         := @RM@
-SED        := @SED@
-TAR        := @TAR@
-YACC       := @YACC@
-
-# Paths to miscellaneous programs we hope are present but might not be
-PERL       := @PERL@ 
-BZIP2      := @BZIP2@
-DOT        := @DOT@
-DOXYGEN    := @DOXYGEN@
-ETAGS      := @ETAGS@
-ETAGSFLAGS := @ETAGSFLAGS@
-GROFF      := @GROFF@
-GZIP       := @GZIP@
-POD2HTML   := @POD2HTML@
-POD2MAN    := @POD2MAN@
-RUNTEST    := @RUNTEST@
-TCLSH      := @TCLSH@
-ZIP        := @ZIP@
-
-HAVE_PERL    := @HAVE_PERL@
-HAVE_PTHREAD := @HAVE_PTHREAD@
-
-LIBS       := @LIBS@
-
-##############################################################################
-# INSTALATION PATHS
-#
-# The following variables capture the installation paths set by the user or
-# defaulted by autoconf. This allows fine-grained control over what gets 
-# installed where
-DESTDIR := @DESTDIR@
-PREFIX := @prefix@
-BIN_DIR := @bindir@
-SBIN_DIR := @bindir@
-LIBEXEC_DIR := @libexecdir@
-SYSCONF_DIR := @sysconfdir@
-SHAREDSTATE_DIR := @sharedstatedir@
-LOCALSTATE_DIR := @localstatedir@
-LIB_DIR := @libdir@
-INCLUDE_DIR := @includedir@
-DATAROOT_DIR := @datarootdir@
-DATA_DIR := @datadir@
-INFO_DIR := @infodir@
-LOCALE_DIR := @localedir@
-MAN_DIR := @mandir@
-DOC_DIR := @docdir@
-HTML_DIR := @htmldir@
-DVI_DIR := @dvidir@
-PDF_DIR := @pdfdir@
-PS_DIR := @psdir@
-
-##############################################################################
-# FEATURES
-# 
-# The following macro definitions adjusts various options on build parameters
-# that affect the build output. You can specify them as part of the configure
-# options (--enable-FEATURE or --disable-FEATURE) or on the command line. Each
-# of them requires either a 0 or 1 value.
-
-# When WANT_ASSERTIONS is enabled, builds of all of the LLVM code will 
-# exclude assertion checks, otherwise they are included.
-WANT_ASSERTIONS := @WANT_ASSERTIONS@
-
-# When WANT_CHECkING is enabled, this turns on expensive runtime checking such as
-# GXXLIB_DEBUG, malloc debug, etc.
-WANT_CHECKING := @WANT_CHECKING@
-
-# When WANT_DEBUG is enabled, the compiler generates debug symbols in object code
-# and optional code is enabled.
-WANT_DEBUG := @WANT_DEBUG@
-
-# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
-WANT_DOXYGEN = @WANT_DOXYGEN@
-
-# When WANT_OPTIMIZED is enabled, LLVM code is optimized and output is put
-# into the "Release" directories. Otherwise, LLVM code is not optimized and 
-# output is put in the "Debug" directories.
-WANT_OPTIMIZED := @WANT_OPTIMIZED@
-
-# When WANT_OPT_FOR_SIZE is enabled, the optimizations performed will favor
-# optimizing for code and data size rather than for speed.
-WANT_OPT_FOR_SIZE := @WANT_OPT_FOR_SIZE@
-
-# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
-# information to allow gprof to be used to get execution frequencies.
-WANT_PROFILING = @WANT_PROFILING@
-
-# When WANT_STRIPPED is enabled, executables and libraries will be
-# stripped of debug symbols
-WANT_STRIPPED := @WANT_STRIPPED@
-
-# When WANT_THREADS is enabled, thread libraries will be found and included
-WANT_THREADS := @WANT_THREADS@
-
-# This option tells the Makefiles to produce verbose output.
-# It essentially prints the commands that make is executing
-WANT_VERBOSE := @WANT_VERBOSE@
-
-################################################################################
-
-# Things we just assume are "there"
-ECHO := echo
-
-# Get the options for causing archives to link all their content instead of
-# just missing symbols, and the inverse of that. This is used for certain LLVM
-# tools that permit loadable modules. It ensures that the LLVM symbols will be
-# available to those loadable modules.
-LINKALL := @LINKALL@
-NOLINKALL := @NOLINKALL@
-
-# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
-# on the check.
-HUGE_VAL_SANITY = @HUGE_VAL_SANITY@
-
-# Include all of the build rules that pertain to the GOAL of the original
-# makefile.
-MAKEFILE_GOAL=$(LLVM_TOP)/support/make/Makefile.$(GOAL)
-GOAL_EXISTS=$(shell if test -f $(MAKEFILE_GOAL); then echo 1 ; else echo 0 ; fi)
-ifeq ($(GOAL_EXISTS),1)
-include $(MAKEFILE_GOAL)
-else
-$(error GOAL "$(GOAL)" does not exist in $(LLVM_TOP)/support/make)
-endif
diff --git a/support/Makefile.config.in b/support/Makefile.config.in
deleted file mode 100644
index 7384562..0000000
--- a/support/Makefile.config.in
+++ /dev/null
@@ -1,33 +0,0 @@
-#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file is included by Makefile.common.  It defines paths and other
-# values specific to a particular installation of LLVM.
-#
-#===------------------------------------------------------------------------===#
-
-# Get the configuration variables specific to this module
-LLVM_TOP                := @LLVM_TOP@
-LLVM_MODULE_NAME        := @LLVM_MODULE_NAME@
-LLVM_COPYRIGHT          := @LLVM_COPYRIGHT@
-LLVM_MODULE_FULLNAME    := @LLVM_MODULE_FULLNAME@
-LLVM_MODULE_TARNAME     := @LLVM_MODULE_TARNAME@
-LLVM_MODULE_VERSION     := @LLVM_MODULE_VERSION@
-LLVM_MODULE_BUGREPORT   := @LLVM_MODULE_BUGREPORT@
-LLVM_MODULE_DEPENDS_ON  := @LLVM_MODULE_DEPENDS_ON@
-LLVM_CONFIGTIME         := @LLVM_CONFIGTIME@
- 
-# Get the source and object root directories
-SRC_ROOT := @abs_top_srcdir@
-OBJ_ROOT := @abs_top_builddir@
-
-# Set the root directory of this project's install prefix
-INSTALL_ROOT := @prefix@
-
-include $(LLVM_TOP)/support/Makefile.common
diff --git a/support/ModuleInfo.txt b/support/ModuleInfo.txt
deleted file mode 100644
index 39a10e2..0000000
--- a/support/ModuleInfo.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-DepModule:
-BuildCmd: ./build-for-llvm-top.sh
-CleanCmd: make clean
-InstallCmd: make install
diff --git a/support/autoconf/AutoRegen.sh b/support/autoconf/AutoRegen.sh
deleted file mode 100755
index 58ff052..0000000
--- a/support/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-
-### NOTE: ############################################################"
-### The below two variables specify the auto* versions
-### periods should be escaped with backslash, for use by grep
-want_autoconf_version='2\.61'
-want_autoheader_version=$want_autoconf_version
-### END NOTE #########################################################"
-
-
-outfile=configure
-configfile=configure.ac
-
-want_autoconf_version_clean=`echo $want_autoconf_version | sed -e 's/\\\\//g'`
-want_autoheader_version_clean=`echo $want_autoheader_version | sed -e 's/\\\\//g'`
-
-test -d autoconf && test -f autoconf/$configfile && cd autoconf
-test -f $configfile || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | grep $want_autoconf_version > /dev/null
-test $? -eq 0 || die "Your autoconf was not detected as being $want_autoconf_version_clean"
-aclocal --version | grep '^aclocal.*1\.9\.6' > /dev/null
-test $? -eq 0 || die "Your aclocal was not detected as being 1.9.6"
-autoheader --version | grep '^autoheader.*'$want_autoheader_version > /dev/null
-test $? -eq 0 || die "Your autoheader was not detected as being $want_autoheader_version_clean"
-libtool --version | grep '1\.5\.22' > /dev/null
-test $? -eq 0 || die "Your libtool was not detected as being 1.5.22"
-echo ""
-echo "### NOTE: ############################################################"
-echo "### If you get *any* warnings from autoconf below you MUST fix the"
-echo "### scripts in the m4 directory because there are future forward"
-echo "### compatibility or platform support issues at risk. Please do NOT"
-echo "### commit any configure script that was generated with warnings"
-echo "### present. You should get just three 'Regenerating..' lines."
-echo "######################################################################"
-echo ""
-echo "Regenerating aclocal.m4 with aclocal 1.9.6"
-aclocal_opts="--force -I $LLVM_TOP/support/autoconf/m4"
-cwd=`pwd`
-if test -d $cwd/m4 ; then
-  aclocal_opts="$aclocal_opts -I $cwd/m4"
-fi
-echo "command: aclocal $aclocal_opts"
-aclocal $aclocal_opts || die "aclocal failed"
-echo "Regenerating configure with autoconf $want_autoconf_version_clean"
-autoconf --force --warnings=all -o ../$outfile $configfile || die "autoconf failed"
-NUM_CONFIG_HEADERS=`grep AC_CONFIG_HEADERS $configfile | wc -l`
-if test "$NUM_CONFIG_HEADERS" -gt 0 ; then
-  cd ..
-  echo "Regenerating config.h.in with autoheader $want_autoheader_version_clean"
-  autoheader_opts="--warnings=all -I autoconf -I $LLVM_TOP/support/autoconf/m4"
-  if test -d $cwd/m4 ; then
-    autoheader_opts="$autoheader_opts -I $cwd/m4 autoconf/$configfile"
-  fi
-  autoheader $autoheader_opts || die "autoheader failed"
-fi
-exit 0
diff --git a/support/autoconf/LICENSE.TXT b/support/autoconf/LICENSE.TXT
deleted file mode 100644
index 72fdd39..0000000
--- a/support/autoconf/LICENSE.TXT
+++ /dev/null
@@ -1,24 +0,0 @@
-------------------------------------------------------------------------------
-Autoconf Files
-------------------------------------------------------------------------------
-All autoconf files are licensed under the LLVM license with the following
-additions:
-
-llvm/autoconf/install-sh:
-	This script is licensed under the LLVM license, with the following
-	additional copyrights and restrictions:
-
-	Copyright 1991 by the Massachusetts Institute of Technology
-
-	Permission to use, copy, modify, distribute, and sell this software and its
-	documentation for any purpose is hereby granted without fee, provided that
-	the above copyright notice appear in all copies and that both that
-	copyright notice and this permission notice appear in supporting 
-	documentation, and that the name of M.I.T. not be used in advertising or
-	publicity pertaining to distribution of the software without specific,
-	written prior permission.  M.I.T. makes no representations about the
-	suitability of this software for any purpose.  It is provided "as is"
-	without express or implied warranty.
-
-Please see the source files for additional copyrights.
-
diff --git a/support/autoconf/Makefile b/support/autoconf/Makefile
deleted file mode 100644
index 18689d8..0000000
--- a/support/autoconf/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-#===- autoconf/Makefile ------------------------------------*- Makefile -*--===#
-# 
-#                     The LLVM Support Autoconf Makefile
-#
-# This file was developed by the Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
--include ./Makefile.mod
diff --git a/support/autoconf/Makefile.mod b/support/autoconf/Makefile.mod
deleted file mode 100644
index feafb28..0000000
--- a/support/autoconf/Makefile.mod
+++ /dev/null
@@ -1,41 +0,0 @@
-#=== autoconf/Makefile.module - autoconf makefile for modules-*- Makefile -*===#
-# 
-#                     The LLVM Support Autoconf Makefile
-#
-# This file was developed by the Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-# See if we can't intuit some paths that we need, based on the assumption that
-# this thing is checked out into an llvm-top directory and the things we need
-# are in llvm-top
-# be set if LLVM_TOP.
-ifndef LLVM_TOP
-  LLVM_TOP := $(shell cd ../.. ; /bin/pwd)
-endif
-ifndef MODULE_DIR
-  MODULE_DIR := $(shell cd .. ; /bin/pwd)
-endif
-
-AUTOREGEN=$(LLVM_TOP)/support/autoconf/AutoRegen.sh
-CONFIGURE=$(MODULE_DIR)/configure
-CONFIGURE_AC=$(MODULE_DIR)/autoconf/configure.ac
-M4_FILES := $(wildcard $(LLVM_TOP)/support/autoconf/m4/*.m4)
-M4_FILES += $(wildcard $(MODULE_DIR)/autoconf/m4/*.m4)
-MODULE_INFO=$(MODULE_DIR)/ModuleInfo.txt
-
-all: $(CONFIGURE)
-
-$(CONFIGURE) : $(AUTOREGEN) $(CONFIGURE_AC) $(M4_FILES) $(MODULE_INFO)
-	@LLVM_TOP="$(LLVM_TOP)" $(AUTOREGEN)
-
-$(CONFIGURE_AC):
-	@echo "Your module ($(MODULE_DIR)) needs a configure.ac file"
-
-print:
-	@echo "LLVM_TOP=$(LLVM_TOP)"
-	@echo "MODULE_DIR=$(MODULE_DIR)"
-	@echo "CONFIGURE=$(CONFIGURE)"
-	@echo "CONFIGURE_AC=$(CONFIGURE_AC)"
-	@echo "M4_FILES=$(M4_FILES)"
diff --git a/support/autoconf/README.TXT b/support/autoconf/README.TXT
deleted file mode 100644
index 3dabdf7..0000000
--- a/support/autoconf/README.TXT
+++ /dev/null
@@ -1,49 +0,0 @@
-Upgrading Libtool
-===============================================================================
-
-If you are in the mood to upgrade libtool, you must do the following:
-
- 1. Get the new version of libtool and put it in <SRC>
- 2. configure/build/install libtool with --prefix=<PFX>
- 3. Copy <SRC>/ltdl.m4 to llvm/autoconf/m4
- 4. Copy <PFX>/share/aclocal/libtool.m4 to llvm/autoconf/m4/libtool.m4
- 5. Copy <PFX>/share/libtool/ltmain.sh to llvm/autoconf/ltmain.sh
- 6. Copy <PFX>/share/libtool/libltdl/ltdl.c to llvm/lib/System
- 7. Copy <PFX>/share/libtool/libltdl/ltdl.h to llvm/lib/System
- 8. Edit the ltdl.h file to #include "llvm/Config/config.h" at the very top. You
-    might also need to resolve some compiler warnings (typically about
-    comparison of signed vs. unsigned values). But, you won't find out about 
-    those until you build LLVM (step 13).
- 9. Edit the llvm/autoconf/m4/libtool.m4 file so that:
-    a) in AC_PROB_LIBTOOL macro, the value of LIBTOOL is set to
-       $(top_builddir)/mklib, not $(top_builddir)/libtool
-    b) in AC_LIBTOOL_SETUP macro, the variable default_ofile is set to 
-       "mklib" instead of "libtool"
-    c) s/AC_ENABLE_SHARED_DEFAULT/enable_shared_default/g
-    d) s/AC_ENABLE_STATIC_DEFAULT/enable_static_default/g
-    e) s/AC_ENABLE_FAST_INSTALL_DEFAULT/enable_fast_install_default/g
-10. Run "autoupdate libtool.m4 ltdl.m4" in the llvm/autoconf/m4 directory.
-    This should correctly update the macro definitions in the libtool m4 
-    files to match the version of autoconf that LLVM uses. This converts
-    AC_HELP_STRING to AS_HELP_STRING and AC_TRY_LINK to AC_LINK_IFELSE, amongst
-    other things. You may need to manually adjust the files.
-11. Run AutoRegen.sh to get the new macros into configure script
-12. If there are any warnings from AutoRegen.sh, go to step 9.
-13. Rebuild LLVM, making sure it reconfigures
-14. Test the JIT which uses libltdl
-15. If it all works, only THEN commit the changes.
-
-Upgrading autoconf
-===============================================================================
-
-If you are in the mood to upgrade autoconf, you should:
-
- 1. Consider not upgrading.
- 2. No really, this is a hassle, you don't want to do it.
- 3. Get the new version of autoconf and put it in <SRC>
- 4. configure/build/install autoconf with --prefix=<PFX>
- 5. Run autoupdate on all the m4 macros in llvm/autoconf/m4
- 6. Run autoupdate on llvm/autoconf/configure.ac
- 7. Regenerate configure script with AutoRegen.sh
- 8. If there are any warnings from AutoRegen.sh, fix them and go to step 7.
- 9. Test, test, test.
diff --git a/support/autoconf/config.guess b/support/autoconf/config.guess
deleted file mode 100755
index 7d0185e..0000000
--- a/support/autoconf/config.guess
+++ /dev/null
@@ -1,1447 +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 Free Software Foundation, Inc.
-
-timestamp='2004-09-07'
-
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@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
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 -q "$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 ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amd64:OpenBSD:*:*)
-	echo x86_64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    cats:OpenBSD:*:*)
-	echo arm-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    luna88k:OpenBSD:*:*)
-    	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mips64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	case $UNAME_RELEASE in
-	*4.0)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-		;;
-	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-		;;
-	esac
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Pn.n version is a patched version.
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    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 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    *:OS400:*:*)
-        echo powerpc-ibm-os400
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    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 0 ;;
-    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 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    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 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # 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 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    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 \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    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 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????: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 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    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 0 ;;
-    *: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
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	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 0 ;;
-    *:AIX:*:[45])
-	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 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    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
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    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 && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    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 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    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 0 ;;
-    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 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    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 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    *: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 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    cris:Linux:*:*)
-	echo cris-axis-linux-gnu
-	exit 0 ;;
-    crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
-	exit 0 ;;
-    frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    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 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    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 0 ;;
-    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 0 ;;
-    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 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-	i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    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 0 ;;
-    i*86:*:5:[78]*)
-	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 0 ;;
-    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 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    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 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    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 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *: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 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    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 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-	exit 0 ;;
-    *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
-    *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms && exit 0 ;;
-	    I*) echo ia64-dec-vms && exit 0 ;;
-	    V*) echo vax-dec-vms && exit 0 ;;
-	esac
-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"); 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 && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# 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 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    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
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-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@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/support/autoconf/config.sub b/support/autoconf/config.sub
deleted file mode 100755
index edb6b66..0000000
--- a/support/autoconf/config.sub
+++ /dev/null
@@ -1,1555 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-
-timestamp='2004-08-29'
-
-# 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., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-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/'`
-		;;
-	-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 \
-	| c4x | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# 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-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | craynv-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| msp430-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-    	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16c)
-		basic_machine=cr16c-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
-		;;
-	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
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	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
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	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
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	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
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	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
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	mmix)
-		basic_machine=mmix-knuth
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-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*)
-	# 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* \
-	      | -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
-		;;
-	-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
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	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
-		;;
-	*-ibm)
-		os=-aix
-		;;
-    	*-knuth)
-		os=-mmixware
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-os400*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-tpf*)
-				vendor=ibm
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# 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/support/autoconf/configure.ac b/support/autoconf/configure.ac
deleted file mode 100644
index 0e2f4ad..0000000
--- a/support/autoconf/configure.ac
+++ /dev/null
@@ -1,707 +0,0 @@
-dnl === configure.ac --------------------------------------------------------===
-dnl                     LLVM Support Module Configuration
-dnl
-dnl This file was developed by the LLVM research group and is distributed under
-dnl the University of Illinois Open Source License. See LICENSE.TXT for details.
-dnl 
-dnl===-----------------------------------------------------------------------===
-dnl This is the support module configuration script. It is processed by the 
-dnl autoconf program to produce a script named configure. This script contains 
-dnl the configuration checks that the support module needs in order to support 
-dnl multiple platforms.
-dnl
-dnl This file is composed of 10 sections per the recommended organization of
-dnl autoconf input defined in the autoconf documentation. As this file evolves,
-dnl please keep the various types of checks within their sections. The sections
-dnl are as follows:
-dnl
-dnl SECTION 1: Initialization & Setup
-dnl SECTION 2: Architecture, target, and host checks
-dnl SECTION 3: Command line arguments for the configure script.
-dnl SECTION 4: Check for programs we need and that they are the right version
-dnl SECTION 5: Check for libraries
-dnl SECTION 6: Check for header files
-dnl SECTION 7: Check for types and structures
-dnl SECTION 8: Check for specific functions needed
-dnl SECTION 9: Additional checks, variables, etc.
-dnl SECTION 10: Specify the output files and generate it
-dnl
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 1: Initialization & Setup
-dnl===
-dnl===-----------------------------------------------------------------------===
-dnl Initialize autoconf and define the package name, version number and
-dnl email address for reporting bugs.
-AC_INIT([[LLVM Support Module]],[[2.1svn]],[http://llvm.org/bugs],[llvm-support])
-THIS_IS_LLVM_MODULE([support])
-
-dnl Verify that the source directory is valid. This makes sure that we are
-dnl configuring LLVM and not some other package (it validates --srcdir argument)
-AC_CONFIG_SRCDIR([lib/System/Path.cpp])
-
-dnl Quit if the source directory has already been configured.
-dnl NOTE: This relies upon undocumented autoconf behavior.
-if test ${srcdir} != "." ; then
-  if test -f ${srcdir}/include/llvm/Config/config.h ; then
-    AC_MSG_ERROR([Already configured in ${srcdir}])
-  fi
-fi
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 2: Architecture, target, and host checks
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl Check the target for which we're compiling and the host that will do the
-dnl compilations. This will tell us which LLVM compiler will be used for 
-dnl compiling SSA into object code. This needs to be done early because 
-dnl following tests depend on it.
-AC_CANONICAL_TARGET
-
-dnl Determine the platform type and cache its value. This helps us configure
-dnl the System library to the correct build platform.
-AC_CACHE_CHECK([type of operating system we're going to host on],
-               [llvm_cv_os_type],
-[case $host in
-  *-*-aix*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="AIX" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-irix*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="IRIX" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-cygwin*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Cygwin" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-darwin*) 
-    llvm_cv_link_all_option="-Wl,-all_load"
-    llvm_cv_link_all_option="-Wl,-noall_load"
-    llvm_cv_os_type="Darwin"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-freebsd*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="FreeBSD" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-openbsd*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="OpenBSD" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-netbsd*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="NetBSD" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-hpux*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="HP-UX" 
-    llvm_cv_platform_type="Unix" ;;
-  *-*-interix*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Interix"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-linux*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Linux"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-solaris*) 
-    llvm_cv_link_all_option="-Wl,-z,allextract"
-    llvm_cv_no_link_all_option="-Wl,-z,defaultextract"
-    llvm_cv_os_type="SunOS"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-win32*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Win32"
-    llvm_cv_platform_type="Win32" ;;
-  *-*-mingw*) 
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="MingW" 
-    llvm_cv_platform_type="Win32" ;;
-  *) 
-    llvm_cv_link_all_option="" 
-    llvm_cv_no_link_all_option=""
-    llvm_cv_os_type="Unknown" 
-    llvm_cv_platform_type="Unknown" ;;
-esac])
-
-dnl Make sure we aren't attempting to configure for an unknown system
-if test "$llvm_cv_os_type" = "Unknown" ; then
-  AC_MSG_ERROR([Operating system is unknown, configure can't continue])
-fi
-
-dnl Set the "OS" Makefile variable based on the platform type so the
-dnl makefile can configure itself to specific build hosts
-AC_SUBST(OS,$llvm_cv_os_type)
-
-dnl Set the LINKALL and NOLINKALL Makefile variables based on the platform
-AC_SUBST(LINKALL,$llvm_cv_link_all_option)
-AC_SUBST(NOLINKALL,$llvm_cv_no_link_all_option)
-
-dnl Set the "LLVM_ON_*" variables based on llvm_cvs_platform_type
-dnl This is used by lib/System to determine the basic kind of implementation
-dnl to use.
-case $llvm_cv_platform_type in
-  Unix)  
-    AC_DEFINE([LLVM_ON_UNIX],[1],[Define if this is Unixish platform]) 
-    AC_SUBST(LLVM_ON_UNIX,[1])
-    AC_SUBST(LLVM_ON_WIN32,[0])
-    ;;
-  Win32) 
-    AC_DEFINE([LLVM_ON_WIN32],[1],[Define if this is Win32ish platform]) 
-    AC_SUBST(LLVM_ON_UNIX,[0])
-    AC_SUBST(LLVM_ON_WIN32,[1])
-    ;;
-esac
-
-dnl Determine what our target architecture is and configure accordingly.
-dnl This will allow Makefiles to make a distinction between the hardware and
-dnl the OS.
-AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch],
-[case $target in
-  i?86-*)                 llvm_cv_target_arch="x86" ;;
-  amd64-* | x86_64-*)     llvm_cv_target_arch="x86_64" ;;
-  sparc*-*)               llvm_cv_target_arch="Sparc" ;;
-  powerpc*-*)             llvm_cv_target_arch="PowerPC" ;;
-  alpha*-*)               llvm_cv_target_arch="Alpha" ;;
-  ia64-*)                 llvm_cv_target_arch="IA64" ;;
-  arm-*)                  llvm_cv_target_arch="ARM" ;;
-  *)                      llvm_cv_target_arch="Unknown" ;;
-esac])
-
-if test "$llvm_cv_target_arch" = "Unknown" ; then
-  AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
-fi
-
-dnl Define a substitution, ARCH, for the target architecture
-AC_SUBST(ARCH,$llvm_cv_target_arch)
-
-dnl Check for the endianness of the target
-AC_C_BIGENDIAN(AC_SUBST([ENDIAN],[big]),AC_SUBST([ENDIAN],[little]))
-
-dnl Check for build platform executable suffix if we're crosscompiling
-if test "$cross_compiling" = yes; then
-  AC_SUBST(LLVM_CROSS_COMPILING, [1])  
-  AC_BUILD_EXEEXT
-else
-  AC_SUBST(LLVM_CROSS_COMPILING, [0])
-fi
-
-dnl Check to see if there's a "CVS" (or .svn) directory indicating that this 
-dnl build is being done from a checkout. This sets up several defaults for the
-dnl command line switches. When we build with a CVS directory, we get a 
-dnl debug with assertions turned on. Without, we assume a source release and we
-dnl get an optimized build without assertions. See --enable-optimized and
-dnl --enable-assertions below
-if test -d ".svn" -o -d "${srcdir}/.svn" -o -d "CVS" -o -d "${srcdir}/CVS"; then
-  svnbuild="yes"
-  optimize="no"
-  AC_SUBST(SVNBUILD,[[SVNBUILD=1]])
-else
-  svnbuild="no"
-  optimize="yes"
-fi
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 3: Command line arguments for the configure script.
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl Define the standard LLVM compilation features
-LLVM_WANT_FEATURE(assertions,[Compile with assertion checks enabled],yes)
-LLVM_WANT_FEATURE(debug,[Produce debug symbols in compilation objects],yes)
-LLVM_WANT_FEATURE(doxygen,[Build doxygen documentation],no)
-LLVM_WANT_FEATURE(checking,[Compile with expensive checking enabled],no)
-LLVM_WANT_FEATURE(optimized,[Compile with optimizations enabled],no)
-LLVM_WANT_FEATURE(opt-for-size,[Optimize for executable size not speed],no)
-LLVM_WANT_FEATURE(profiling,[Compile with profiling enabled],yes)
-LLVM_WANT_FEATURE(generate-pic,[Generate position independent code],no)
-LLVM_WANT_FEATURE(stripped,[Strip symbols from libraries and executables],no)
-LLVM_WANT_FEATURE(threads,[Use threads if available],yes)
-LLVM_WANT_LEVEL(verbose,[Show each command executed while building],0,0,3)
-
-dnl Allow configuration of the llvm-top directory from which all llvm software
-dnl can be found. Usually this corresponds to .., but weird things can happen
-dnl in build environments
-AC_ARG_WITH(llvm-top,
-  AS_HELP_STRING([--with-llvm-top],
-                 [Specify where the llvm-top directory is]),,withval=default)
-case "$withval" in
-  default)  LLVM_TOP=`cd .. ; pwd` ;; 
-  *)        LLVM_TOP=$withval ;;
-esac
-AC_SUBST(LLVM_TOP,$LLVM_TOP)
-
-dnl Allow specification of the destination directory which is a meta-prefix for
-dnl the installation. It allows package maintainers for operating systems to
-dnl build an operating system image in a destination directory that uses the
-dnl final paths, without damaging their own installation.
-AC_ARG_WITH([destdir],
-  AS_HELP_STRING([--with-destdir],
-                 [Specify the install destination directory]),,withval=default)
-case "$withval" in
-  default)  DESTDIR="" ;;
-  *)        DESTDIR=$withval ;;
-esac
-AC_SUBST(DESTDIR,$DESTDIR)
-
-dnl Specify extra build options
-AC_ARG_WITH(extra-options,
-  AS_HELP_STRING([--with-extra-options],
-                 [Specify addtional options to compile LLVM with]),,
-                 withval=default)
-case "$withval" in
-  default) EXTRA_OPTIONS="" ;;
-  *) EXTRA_OPTIONS=$withval ;;
-esac
-AC_SUBST(EXTRA_OPTIONS,$EXTRA_OPTIONS)
-
-dnl Allow specific targets to be specified for building (or not)
-TARGETS_TO_BUILD=""
-AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-targets],
-    [Build specific host targets: all,host-only,{target-name} (default=all)]),,
-    enableval=all)
-case "$enableval" in
-  all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha IA64 ARM MIPS" ;;
-  host-only)
-    case "$llvm_cv_target_arch" in
-      x86)     TARGETS_TO_BUILD="X86" ;;
-      x86_64)  TARGETS_TO_BUILD="X86" ;;
-      Sparc)   TARGETS_TO_BUILD="Sparc" ;;
-      PowerPC) TARGETS_TO_BUILD="PowerPC" ;;
-      Alpha)   TARGETS_TO_BUILD="Alpha" ;;
-      IA64)    TARGETS_TO_BUILD="IA64" ;;
-      ARM)     TARGETS_TO_BUILD="ARM" ;;
-      MIPS)    TARGETS_TO_BUILD="MIPS" ;;
-      *)       AC_MSG_ERROR([Can not set target to build]) ;;
-    esac 
-    ;;
-  *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do
-      case "$a_target" in
-        x86)     TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
-        x86_64)  TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
-        sparc)   TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;;
-        powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;;
-        alpha)   TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;;
-        ia64)    TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;;
-        arm)     TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;;
-        mips)    TARGETS_TO_BUILD="MIPS $TARGETS_TO_BUILD" ;;
-        *) AC_MSG_ERROR([Unrecognized target $a_target]) ;;
-      esac
-  done 
-  ;;
-esac
-TARGETS_TO_BUILD="CBackend MSIL $TARGETS_TO_BUILD"
-AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD)
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 4: Check for programs we need and that they are the right version
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl Check for standard compilation tools
-AC_PROG_INSTALL
-AC_PROG_CPP
-AC_PROG_CC(gcc)
-AC_PROG_CXX(g++)
-AC_PROG_FLEX
-AC_PROG_BISON
-AC_PROG_RANLIB
-AC_PROG_NM
-AC_PROG_LN_S
-AC_SUBST(NM)
-
-dnl Check for various build and documentation tools that could be used
-AC_CHECK_GNU_MAKE
-AC_PATH_PROG(BINPWD,[pwd],  [pwd])
-AC_PATH_PROG(BZIP2,[bzip2],[echo "Skipped: bzip2 not found"])
-AC_PATH_PROG(CMP, [cmp], [cmp])
-AC_PATH_PROG(CP, [cp], [cp])
-AC_PATH_PROG(DOXYGEN,[doxygen],[echo "Skipped: doxygen not found"])
-AC_PATH_PROG(DATE, [date], [date])
-AC_PATH_PROG(DOT, [dot], [echo dot])
-AC_PATH_PROG(DOTTY, [dotty], [echo dotty])
-AC_PATH_PROG(FIND, [find], [find])
-AC_PATH_PROG(GREP, [grep], [grep])
-AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz])
-AC_PATH_PROG(GROFF,[groff],[echo "Skipped: groff not found"])
-AC_PATH_PROG(GV, [gv gsview32], [echo gv])
-AC_PATH_PROG(GZIP,[gzip],[echo "Skipped: gzip not found"])
-AC_PATH_PROG(MKDIR,[mkdir],[mkdir])
-AC_PATH_PROG(MV,   [mv],   [mv])
-AC_PATH_PROG(POD2HTML,[pod2html],[echo "Skipped: pod2html not found"])
-AC_PATH_PROG(POD2MAN,[pod2man],[echo "Skipped: pod2man not found"])
-AC_PATH_PROG(RM,   [rm],   [rm])
-AC_PATH_PROG(RUNTEST,[runtest],[echo "Skipped: runtest not found"])
-AC_PATH_PROG(SED,  [sed],  [sed])
-AC_PATH_PROG(TAR,  [tar],  [gtar])
-AC_PATH_PROG(ZIP,[zip],[echo "Skipped: zip not found"])
-DJ_AC_PATH_TCLSH
-
-dnl Adjust program paths for specific platforms so they can be used directly
-dnl inside the program from config.h
-if test "$GRAPHVIZ" != "echo Graphviz" ; then
-  AC_DEFINE([HAVE_GRAPHVIZ],[1],[Define if the Graphviz program is available])
-  dnl If we're targeting for mingw we should emit windows paths, not msys
-  if test "$llvm_cv_os_type" = "MingW" ; then
-    GRAPHVIZ=`echo $GRAPHVIZ | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
-  fi
-  AC_DEFINE_UNQUOTED([LLVM_PATH_GRAPHVIZ],"$GRAPHVIZ${EXEEXT}",
-   [Define path to Graphviz program if found or 'echo Graphviz' otherwise])
-fi
-if test "$DOT" != "echo dot" ; then
-  AC_DEFINE([HAVE_DOT],[1],[Define if the dot program is available])
-  dnl If we're targeting for mingw we should emit windows paths, not msys
-  if test "$llvm_cv_os_type" = "MingW" ; then
-    DOT=`echo $DOT | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
-  fi
-  AC_DEFINE_UNQUOTED([LLVM_PATH_DOT],"$DOT${EXEEXT}",
-   [Define path to dot program if found or 'echo dot' otherwise])
-fi
-if test "$GV" != "echo gv" ; then
-  AC_DEFINE([HAVE_GV],[1],[Define if the gv program is available])
-  dnl If we're targeting for mingw we should emit windows paths, not msys
-  if test "$llvm_cv_os_type" = "MingW" ; then
-    GV=`echo $GV | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
-  fi
-  AC_DEFINE_UNQUOTED([LLVM_PATH_GV],"$GV${EXEEXT}",
-   [Define path to gv program if found or 'echo gv' otherwise])
-fi
-if test "$DOTTY" != "echo dotty" ; then
-  AC_DEFINE([HAVE_DOTTY],[1],[Define if the dotty program is available])
-  dnl If we're targeting for mingw we should emit windows paths, not msys
-  if test "$llvm_cv_os_type" = "MingW" ; then
-    DOTTY=`echo $DOTTY | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
-  fi
-  AC_DEFINE_UNQUOTED([LLVM_PATH_DOTTY],"$DOTTY${EXEEXT}",
-   [Define to path to dotty program if found or 'echo dotty' otherwise])
-fi
-
-dnl Look for a sufficiently recent version of Perl.
-LLVM_PROG_PERL([5.006])
-AC_SUBST(PERL)
-if test x"$PERL" = xnone; then
-   AC_SUBST(HAVE_PERL,0)
-   AC_MSG_ERROR([perl is required but was not found, please install it])
-else
-   AC_SUBST(HAVE_PERL,1)
-fi
-
-dnl Checks for documentation and testing tools that we can do without. If these
-dnl are not found then they are set to "true" which always succeeds but does
-dnl nothing. This just lets the build output show that we could have done 
-dnl something if the tool was available. 
-
-dnl Determine if the linker supports the -R option.
-AC_LINK_USE_R
-
-dnl Check for libtool and the library that has dlopen function (which must come
-dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with
-dnl libtool).
-AC_LIBTOOL_DLOPEN
-AC_LIB_LTDL
-AC_PROG_LIBTOOL
-
-if test "$lt_cv_dlopen_self" = "yes" ; then
-  AC_DEFINE([CAN_DLOPEN_SELF],[1],
-              [Define if dlopen(0) will open the symbols of the program])
-fi
-
-dnl Check if we know how to tell etags we are using C++:
-etags_version=`$ETAGS --version 2>&1`
-case "$etags_version" in
-	*[Ee]xuberant*) ETAGSFLAGS="--language-force=c++" ;;
-	*GNU\ Emacs*) ETAGSFLAGS="-l c++" ;;
-	*) ETAGSFLAGS="" ;;
-esac
-AC_SUBST(ETAGSFLAGS,$ETAGSFLAGS)
-
-if test "$WITH_LLVMGCCDIR" = "default" ; then
-  LLVMGCC="llvm-gcc${EXEEXT}"
-  LLVMGXX="llvm-g++${EXEEXT}"
-  AC_PATH_PROG(LLVMGCC, $LLVMGCC, [])
-  AC_PATH_PROG(LLVMGXX, $LLVMGXX, [])
-else
-  LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}"
-  LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}"
-  AC_SUBST(LLVMGCC,$LLVMGCC)
-  AC_SUBST(LLVMGXX,$LLVMGXX)
-fi
-  
-AC_MSG_CHECKING([tool compatibility])
-
-dnl Ensure that compilation tools are GCC or a GNU compatible compiler such as
-dnl ICC; we use GCC specific options in the makefiles so the compiler needs
-dnl to support those options.
-dnl "icc" emits gcc signatures
-dnl "icc -no-gcc" emits no gcc signature BUT is still compatible
-ICC=no
-IXX=no
-case $CC in
-  icc*|icpc*) 
-    ICC=yes
-    IXX=yes
-    ;;
-   *)
-    ;;
-esac
-
-if test "$GCC" != "yes" && test "$ICC" != "yes"
-then
-  AC_MSG_ERROR([gcc|icc required but not found])
-fi
-
-dnl Ensure that compilation tools are GCC; we use GCC specific extensions
-if test "$GXX" != "yes" && test "$IXX" != "yes"
-then
-  AC_MSG_ERROR([g++|icc required but not found])
-fi
-
-dnl Verify that GCC is version 3.0 or higher
-if test "$GCC" = "yes"
-then
-  gccmajor=`$CC --version | head -n 1 | sed 's/[[^0-9]]*\([[0-9.]]\).*/\1/'` 
-  if test "$gccmajor" -lt "3"
-  then
-    AC_MSG_ERROR([gcc 3.x required, but you have a lower version])
-  fi
-fi
-
-dnl Check for GNU Make.  We use its extensions, so don't build without it
-if test -z "$llvm_cv_gnu_make_command"
-then
-  AC_MSG_ERROR([GNU Make required but not found])
-fi
-
-dnl Tool compatibility is okay if we make it here.
-AC_MSG_RESULT([ok])
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 5: Check for libraries
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl libelf is for sparc only; we can ignore it if we don't have it
-AC_CHECK_LIB(elf, elf_begin)
-AC_CHECK_LIB(m,sin)
-if test "$llvm_cv_os_type" = "MingW" ; then
-  AC_CHECK_LIB(imagehlp, main)
-  AC_CHECK_LIB(psapi, main)
-fi
-
-dnl lt_dlopen may be required for plugin support.
-AC_SEARCH_LIBS(lt_dlopen,ltdl,AC_DEFINE([HAVE_LT_DLOPEN],[1],
-              [Define if lt_dlopen() is available on this platform]),
-              AC_MSG_WARN([lt_dlopen() not found - plugin support might 
-                           not be available]))
-
-dnl dlopen() is required for plugin support.
-AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],
-               [Define if dlopen() is available on this platform.]),
-               AC_MSG_WARN([dlopen() not found - disabling plugin support]))
-
-dnl mallinfo is optional; the code can compile (minus features) without it
-AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],
-               [Define if mallinfo() is available on this platform.]))
-
-dnl pthread locking functions are optional - but llvm will not be thread-safe
-dnl without locks.
-if test "$WANT_THREADS" -eq 1 ; then
-  AC_CHECK_LIB(pthread,pthread_mutex_init)
-  AC_SEARCH_LIBS(pthread_mutex_lock,pthread,
-                 AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1],
-                           [Have pthread_mutex_lock]))
-fi
-
-dnl Allow extra x86-disassembler library
-AC_ARG_WITH(udis86,
-  AS_HELP_STRING([--with-udis86=<path>],
-    [Use udis86 external x86 disassembler library]),
-    [
-      AC_SUBST(USE_UDIS86, [1])
-      case "$withval" in
-        /usr/lib|yes) ;;
-        *) LDFLAGS="$LDFLAGS -L${withval}" ;;
-      esac
-      AC_CHECK_LIB(udis86, ud_init, [], [
-        echo "Error! You need to have libudis86 around."
-        exit -1
-      ])
-    ],
-    AC_SUBST(USE_UDIS86, [0]))
-AC_DEFINE_UNQUOTED([USE_UDIS86],$USE_UDIS86,
-                   [Define if use udis86 library])
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 6: Check for header files
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl First, use autoconf provided macros for specific headers that we need
-dnl We don't check for ancient stuff or things that are guaranteed to be there
-dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers.
-dnl Generally we're looking for POSIX headers.
-AC_HEADER_DIRENT
-AC_HEADER_MMAP_ANONYMOUS
-AC_HEADER_STAT
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_HEADER_TIME
-
-AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h])
-AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h unistd.h utime.h])
-AC_CHECK_HEADERS([windows.h sys/mman.h sys/param.h sys/resource.h sys/time.h])
-AC_CHECK_HEADERS([sys/types.h malloc/malloc.h mach/mach.h])
-if test "$WANT_THREADS" -eq 1 ; then
-  AC_CHECK_HEADERS([pthread.h])
-else
-  AC_SUBST(HAVE_PTHREAD_,0)
-fi
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 7: Check for types and structures
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-AC_HUGE_VAL_CHECK
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_TYPE_SIGNAL
-AC_STRUCT_TM
-AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
-AC_CHECK_TYPES([uint64_t],,
-         AC_CHECK_TYPES([u_int64_t],,
-         AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found])))
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 8: Check for specific functions needed
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-AC_CHECK_FUNCS([backtrace ceilf floorf roundf rintf nearbyintf getcwd ])
-AC_CHECK_FUNCS([powf fmodf strtof round ])
-AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ])
-AC_CHECK_FUNCS([isatty mkdtemp mkstemp ])
-AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup strerror strerror_r ])
-AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ])
-AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp])
-AC_C_PRINTF_A
-AC_FUNC_ALLOCA
-AC_FUNC_RAND48
-
-dnl Check for variations in the Standard C++ library and STL. These macros are
-dnl provided by LLVM in the autoconf/m4 directory.
-AC_CXX_HAVE_HASH_MAP
-AC_CXX_HAVE_HASH_SET
-AC_CXX_HAVE_STD_ITERATOR
-AC_CXX_HAVE_BI_ITERATOR
-AC_CXX_HAVE_FWD_ITERATOR
-AC_FUNC_ISNAN
-AC_FUNC_ISINF
-
-dnl Check for mmap support.We also need to know if /dev/zero is required to 
-dnl be opened for allocating RWX memory.  
-dnl Make sure we aren't attempting to configure for an unknown system
-if test "$llvm_cv_platform_type" = "Unix" ; then
-  AC_FUNC_MMAP 
-  AC_FUNC_MMAP_FILE
-  AC_NEED_DEV_ZERO_FOR_MMAP
-
-  if test "$ac_cv_func_mmap_fixed_mapped" = "no"
-  then
-    AC_MSG_WARN([mmap() of a fixed address required but not supported])
-  fi
-  if test "$ac_cv_func_mmap_file" = "no"
-  then
-    AC_MSG_WARN([mmap() of files required but not found])
-  fi
-fi
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 9: Additional checks, variables, etc.
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl Propagate the shared library extension that the libltdl checks did to 
-dnl the Makefiles so we can use it there too
-AC_SUBST(SHLIBEXT,$libltdl_cv_shlibext)
-
-dnl Get the time at which we were configured.
-LLVM_CONFIGTIME=`date`
-AC_SUBST(LLVM_CONFIGTIME)
-AC_DEFINE_UNQUOTED([LLVM_CONFIGTIME],["$LLVM_CONFIGTIME"],
-                   [Time at which LLVM was configured])
-
-# Make sure we have a prefix and exec_prefix value that makes sense.
-if test "${prefix}" = "NONE" ; then
-  prefix="/usr/local"
-fi
-if test "${exec_prefix}" = "NONE" ; then
-  exec_prefix="$prefix"
-fi
-
-dnl make sure we resolve shell variables for paths because silly autoconf 
-dnl doesn't get this right.
-eval bindir="$bindir"
-eval sbindir="$sbindir"
-eval libexecdir="$libexecdir"
-eval sysconfdir="$sysconfdir"
-eval sharedstatedir="$sharedstatedir"
-eval localstatedir="$localstatedir"
-eval libdir="$libdir"
-eval includedir="$includedir"
-eval oldincludedir="$oldincludedir"
-eval datarootdir="$datarootdir"
-eval datadir="$datadir"
-eval infodir="$infodir"
-eval localedir="$localedir"
-eval mandir="$mandir"
-eval docdir="$docdir"
-eval htmldir="$htmldir"
-eval dvidir="$dvidir"
-eval pdfdir="$pdfdir"
-eval psdir="$psdir"
-
-
-dnl===-----------------------------------------------------------------------===
-dnl===
-dnl=== SECTION 10: Specify the output files and generate it
-dnl===
-dnl===-----------------------------------------------------------------------===
-
-dnl Configure header files
-dnl WARNING: dnl If you add or remove any of the following config headers, then
-dnl you MUST also update Makefile.rules so that the variable FilesToConfig
-dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the
-dnl files can be updated automatically when their *.in sources change.
-AC_CONFIG_HEADERS([include/llvm/Config/config.h])
-AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h])
-AC_CONFIG_HEADERS([include/llvm/ADT/hash_map])
-AC_CONFIG_HEADERS([include/llvm/ADT/hash_set])
-AC_CONFIG_HEADERS([include/llvm/ADT/iterator])
-
-dnl Do special configuration of Makefiles
-CONFIG_LLVM_MAKEFILE(Makefile)
-CONFIG_LLVM_MAKEFILE(lib/Makefile)
-
-dnl Finally, crank out the output
-AC_OUTPUT
diff --git a/support/autoconf/depcomp b/support/autoconf/depcomp
deleted file mode 100755
index 11e2d3b..0000000
--- a/support/autoconf/depcomp
+++ /dev/null
@@ -1,522 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2004-05-31.23
-
-# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
-  '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
-  -h | --h*)
-    cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
-  depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
-  DEPDIR      directory where to store dependencies.
-  depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputing dependencies.
-  libtool     Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
-    exit 0
-    ;;
-  -v | --v*)
-    echo "depcomp $scriptversion"
-    exit 0
-    ;;
-esac
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
-  echo "depcomp: Variables source, object and depmode must be set" 1>&2
-  exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
-  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags.  We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write.  Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
-  # HP compiler uses -M and no extra arg.
-  gccflag=-M
-  depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff.  Hmm.
-  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  mv "$tmpdepfile" "$depfile"
-  ;;
-
-gcc)
-## There are various ways to get dependency output from gcc.  Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-##   up in a subdir.  Having to rename by hand is ugly.
-##   (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-##   than renaming).
-  if test -z "$gccflag"; then
-    gccflag=-MD,
-  fi
-  "$@" -Wp,"$gccflag$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
-  sed -e 's/^[^:]*: / /' \
-      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header).  We avoid this by adding
-## dummy dependencies for each header file.  Too bad gcc doesn't do
-## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-hp)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
-sgi)
-  if test "$libtool" = yes; then
-    "$@" "-Wp,-MDupdate,$tmpdepfile"
-  else
-    "$@" -MDupdate "$tmpdepfile"
-  fi
-  stat=$?
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-
-  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
-    echo "$object : \\" > "$depfile"
-
-    # Clip off the initial element (the dependent).  Don't try to be
-    # clever and replace this with sed code, as IRIX sed won't handle
-    # lines with more than a fixed number of characters (4096 in
-    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
-    # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> $depfile
-    echo >> $depfile
-
-    # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> $depfile
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
-  fi
-  rm -f "$tmpdepfile"
-  ;;
-
-aix)
-  # The C for AIX Compiler uses -M and outputs the dependencies
-  # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
-  # start of each line; $object doesn't have directory information.
-  # Version 6 uses the directory in both cases.
-  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
-  tmpdepfile="$stripped.u"
-  if test "$libtool" = yes; then
-    "$@" -Wc,-M
-  else
-    "$@" -M
-  fi
-  stat=$?
-
-  if test -f "$tmpdepfile"; then :
-  else
-    stripped=`echo "$stripped" | sed 's,^.*/,,'`
-    tmpdepfile="$stripped.u"
-  fi
-
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-
-  if test -f "$tmpdepfile"; then
-    outname="$stripped.o"
-    # Each line is of the form `foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
-    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
-  fi
-  rm -f "$tmpdepfile"
-  ;;
-
-icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want:
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
-  #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
-  #    foo.o: sub/foo.c ... \
-  #     sub/foo.h ... \
-  #     ...
-
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  # Each line is of the form `foo.o: dependent.h',
-  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
-  # Do two passes, one to just change these to
-  # `$object: dependent.h' and one to simply `dependent.h:'.
-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # Dependencies are output in .lo.d with libtool 1.4.
-      # With libtool 1.5 they are output both in $dir.libs/$base.o.d
-      # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
-      # latter, because the former will be cleaned when $dir.libs is
-      # erased.
-      tmpdepfile1="$dir.libs/$base.lo.d"
-      tmpdepfile2="$dir$base.o.d"
-      tmpdepfile3="$dir.libs/$base.d"
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1="$dir$base.o.d"
-      tmpdepfile2="$dir$base.d"
-      tmpdepfile3="$dir$base.d"
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-      exit $stat
-   fi
-
-   if test -f "$tmpdepfile1"; then
-      tmpdepfile="$tmpdepfile1"
-   elif test -f "$tmpdepfile2"; then
-      tmpdepfile="$tmpdepfile2"
-   else
-      tmpdepfile="$tmpdepfile3"
-   fi
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
-
-#nosideeffect)
-  # This comment above is used by automake to tell side-effect
-  # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o.
-  "$@" || exit $?
-
-  # Remove the call to Libtool.
-  if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-
-  # Remove `-o $object'.
-  IFS=" "
-  for arg
-  do
-    case $arg in
-    -o)
-      shift
-      ;;
-    $object)
-      shift
-      ;;
-    *)
-      set fnord "$@" "$arg"
-      shift # fnord
-      shift # $arg
-      ;;
-    esac
-  done
-
-  test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
-  # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
-  "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
-  rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-dashXmstdout)
-  # This case only exists to satisfy depend.m4.  It is never actually
-  # run, as this mode is specially recognized in the preamble.
-  exit 1
-  ;;
-
-makedepend)
-  "$@" || exit $?
-  # Remove any Libtool call
-  if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-  # X makedepend
-  shift
-  cleared=no
-  for arg in "$@"; do
-    case $cleared in
-    no)
-      set ""; shift
-      cleared=yes ;;
-    esac
-    case "$arg" in
-    -D*|-I*)
-      set fnord "$@" "$arg"; shift ;;
-    # Strip any option that makedepend may not understand.  Remove
-    # the object too, otherwise makedepend will parse it as a source file.
-    -*|$object)
-      ;;
-    *)
-      set fnord "$@" "$arg"; shift ;;
-    esac
-  done
-  obj_suffix="`echo $object | sed 's/^.*\././'`"
-  touch "$tmpdepfile"
-  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
-  rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile" "$tmpdepfile".bak
-  ;;
-
-cpp)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout.
-  "$@" || exit $?
-
-  # Remove the call to Libtool.
-  if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-
-  # Remove `-o $object'.
-  IFS=" "
-  for arg
-  do
-    case $arg in
-    -o)
-      shift
-      ;;
-    $object)
-      shift
-      ;;
-    *)
-      set fnord "$@" "$arg"
-      shift # fnord
-      shift # $arg
-      ;;
-    esac
-  done
-
-  "$@" -E |
-    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  cat < "$tmpdepfile" >> "$depfile"
-  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-msvisualcpp)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
-  "$@" || exit $?
-  IFS=" "
-  for arg
-  do
-    case "$arg" in
-    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-	set fnord "$@"
-	shift
-	shift
-	;;
-    *)
-	set fnord "$@" "$arg"
-	shift
-	shift
-	;;
-    esac
-  done
-  "$@" -E |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
-  echo "	" >> "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-none)
-  exec "$@"
-  ;;
-
-*)
-  echo "Unknown depmode $depmode" 1>&2
-  exit 1
-  ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/support/autoconf/install-sh b/support/autoconf/install-sh
deleted file mode 100644
index dd97db7..0000000
--- a/support/autoconf/install-sh
+++ /dev/null
@@ -1,322 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2004-09-10.20
-
-# 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.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-chmodcmd="$chmodprog 0755"
-chowncmd=
-chgrpcmd=
-stripcmd=
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=
-dst=
-dir_arg=
-dstarg=
-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:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
-"
-
-while test -n "$1"; do
-  case $1 in
-    -c) shift
-        continue;;
-
-    -d) dir_arg=true
-        shift
-        continue;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
-
-    --help) echo "$usage"; exit 0;;
-
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
-
-    -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
-
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
-
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
-
-    -T) no_target_directory=true
-	shift
-	continue;;
-
-    --version) echo "$0 $scriptversion"; exit 0;;
-
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
-	break;;
-  esac
-done
-
-if test -z "$1"; 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
-
-for src
-do
-  # Protect names starting with `-'.
-  case $src in
-    -*) src=./$src ;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
-  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 "$dstarg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-
-    dst=$dstarg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst ;;
-    esac
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
-	exit 1
-      fi
-      dst=$dst/`basename "$src"`
-    fi
-  fi
-
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-  # Make sure that the destination directory exists.
-
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
-
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    IFS=$oIFS
-
-    pathcomp=
-
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
-      shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
-      fi
-      pathcomp=$pathcomp/
-    done
-  fi
-
-  if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
-  else
-    dstfile=`basename "$dst"`
-
-    # 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
-    trap '(exit $?); exit' 1 2 13 15
-
-    # Copy the file name to the temp name.
-    $doit $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 "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-	   # The rename failed, perhaps because mv can't rename something else
-	   # to itself, or perhaps because mv is so ancient that it does not
-	   # support -f.
-
-	   # Now remove or move aside any old file at destination location.
-	   # We try this two ways since rm can't unlink itself on some
-	   # systems and the destination file might be busy for other
-	   # reasons.  In this case, the final cleanup might fail but the new
-	   # file should still install successfully.
-	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit
-	       }
-	     else
-	       :
-	     fi
-	   } &&
-
-	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-	 }
-    }
-  fi || { (exit 1); exit; }
-done
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit
-}
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/support/autoconf/ltmain.sh b/support/autoconf/ltmain.sh
deleted file mode 100644
index 06823e0..0000000
--- a/support/autoconf/ltmain.sh
+++ /dev/null
@@ -1,6863 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-basename="s,^.*/,,g"
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-# The name of this program:
-progname=`echo "$progpath" | $SED $basename`
-modename="$progname"
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5.22
-TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
-
-# 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
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# 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'
-# 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
-  SP2NL='tr \040 \012'
-  NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  SP2NL='tr \100 \n'
-  NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" 	$lt_nl"
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit $EXIT_FAILURE
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-duplicate_deps=no
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# 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 "$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" || {
-        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
-	exit $EXIT_FAILURE
-      }
-    fi
-
-    $echo "X$my_tmpdir" | $Xsed
-}
-
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-func_win32_libid ()
-{
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $echo $win32_libid_type
-}
-
-
-# func_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 ()
-{
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	case $arg in
-	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	CC_quoted="$CC_quoted $arg"
-      done
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	    # Double-quote args containing other shell metacharacters.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    CC_quoted="$CC_quoted $arg"
-	  done
-	    case "$@ " in
-	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit $EXIT_FAILURE
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-
-    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
-    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
-      exit $EXIT_FAILURE
-    fi
-}
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-    my_status=""
-
-    $show "${rm}r $my_gentop"
-    $run ${rm}r "$my_gentop"
-    $show "$mkdir $my_gentop"
-    $run $mkdir "$my_gentop"
-    my_status=$?
-    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
-      exit $my_status
-    fi
-
-    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
-      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-      my_xdir="$my_gentop/$my_xlib"
-
-      $show "${rm}r $my_xdir"
-      $run ${rm}r "$my_xdir"
-      $show "$mkdir $my_xdir"
-      $run $mkdir "$my_xdir"
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
-	exit $exit_status
-      fi
-      case $host in
-      *-darwin*)
-	$show "Extracting $my_xabs"
-	# Do not bother doing anything if just a dry run
-	if test -z "$run"; then
-	  darwin_orig_dir=`pwd`
-	  cd $my_xdir || exit $?
-	  darwin_archive=$my_xabs
-	  darwin_curdir=`pwd`
-	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
-	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
-	  if test -n "$darwin_arches"; then 
-	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
-	    darwin_arch=
-	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      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 have a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
-	    darwin_file=
-	    darwin_files=
-	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-	      lipo -create -output "$darwin_file" $darwin_files
-	    done # $darwin_filelist
-	    ${rm}r unfat-$$
-	    cd "$darwin_orig_dir"
-	  else
-	    cd "$darwin_orig_dir"
- 	    func_extract_an_archive "$my_xdir" "$my_xabs"
-	  fi # $darwin_arches
-	fi # $run
-	;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-        ;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-    done
-    func_extract_archives_result="$my_oldobjs"
-}
-# End of Shell function definitions
-#####################################
-
-# Darwin sucks
-eval std_shrext=\"$shrext_cmds\"
-
-disable_libs=no
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-      preserve_args="${preserve_args}=$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit $EXIT_FAILURE
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit $?
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
-    done
-    exit $?
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --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 $?
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --tag)
-    prevopt="--tag"
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-fi
-
-case $disable_libs in
-no) 
-  ;;
-shared)
-  build_libtool_libs=no
-  build_old_libs=yes
-  ;;
-static)
-  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-  ;;
-esac
-
-# 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=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # 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=
-
-    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)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static | -prefer-pic | -prefer-non-pic)
-	  later="$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,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
- 	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$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.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, and some SunOS ksh mistreat backslash-escaping
-      # in scan sets (worked around with variable expansion),
-      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
-      # at all, so we specify them separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit $EXIT_FAILURE
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -static)
-	build_old_libs=yes
-	continue
-	;;
-
-      -prefer-pic)
-	pic_mode=yes
-	continue
-	;;
-
-      -prefer-non-pic)
-	pic_mode=no
-	continue
-	;;
-      esac
-    done
-
-    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
-    case $qlibobj in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qlibobj="\"$qlibobj\"" ;;
-    esac
-    test "X$libobj" != "X$qlibobj" \
-	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
-	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # 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
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-    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 $run ln "$progpath" "$lockfile" 2>/dev/null; do
-	$show "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."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-      $echo "$srcfile" > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
-    case $qsrcfile in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-      qsrcfile="\"$qsrcfile\"" ;;
-    esac
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # 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
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	exit_status=$?
-	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $exit_status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      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."
-
-	$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
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-        suppress_output=' >/dev/null 2>&1'
-      fi
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    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"
-      else
-	command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      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."
-
-	$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
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # 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=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    notinst_path= # paths that contain not-installed libtool libraries
-    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
-
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=built
-	fi
-	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
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$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
-		  non_pic_objects="$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"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit $EXIT_FAILURE
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	shrext)
-  	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	darwin_framework|darwin_framework_skip)
-	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  prev=
-	  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
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit $EXIT_FAILURE
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -framework|-arch|-isysroot)
-	case " $CC " in
-	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
-		prev=darwin_framework_skip ;;
-	  *) compiler_flags="$compiler_flags $arg"
-	     prev=darwin_framework ;;
-	esac
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-	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*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    absdir="$dir"
-	    notinst_path="$notinst_path $dir"
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      -model)
-	compile_command="$compile_command $arg"
-	compiler_flags="$compiler_flags $arg"
-	finalize_command="$finalize_command $arg"
-	prev=xcompiler
-	continue
-	;;
-
-     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-	compiler_flags="$compiler_flags $arg"
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m* pass through architecture-specific compiler args for GCC
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -pg pass through profiling flag for GCC
-      # @file GCC response files
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
-      -t[45]*|-txscale*|@*)
-
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        compiler_flags="$compiler_flags $arg"
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  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*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# 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
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$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
-	    non_pic_objects="$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"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit $EXIT_FAILURE
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $exit_status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplications in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    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 test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  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
-      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 "$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)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    compiler_flags="$compiler_flags $deplib"
-	  fi
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    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 (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  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
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    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
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  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
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    valid_a_lib=no
-	    case $deplibs_check_method in
-	      match_pattern*)
-		set dummy $deplibs_check_method
-	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-		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 used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# 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
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit $EXIT_FAILURE
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  continue
-	fi # $pass = conv
-
-
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-	else
-	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
-	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
-	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
-	  fi
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    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 test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -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
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $absdir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes ; then
-	  use_static_libs=no
-	fi
-	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-
-	  # Warn about portability, can't link against -module's on
-	  # some systems (darwin)
-	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; 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*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$extract_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$old_archive_from_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against
-		    # it, someone is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null |
-                      $EGREP ": [^:]* bundle" >/dev/null ; 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
-		    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; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case $libdir in
-		    [\\/]*)
-		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit $EXIT_FAILURE
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case $libdir in
-		  [\\/]*)
-		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    $echo
-	    $echo "*** Warning: This system can not link to static lib archive $lib."
-	    $echo "*** I have the capability to make that library automatically link in when"
-	    $echo "*** you link to this library.  But I can only do this if you have a"
-	    $echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      $echo "*** But as you try to build a module library, libtool will still create "
-	      $echo "*** a static module, that should work as long as the dlopening application"
-	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		$echo
-		$echo "*** However, this would only work if libtool was able to extract symbol"
-		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$echo "*** not find such a program.  So, this module is probably useless."
-		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit $EXIT_FAILURE
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs,
-		  # but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		    fi
-		    # do not add paths which are already there
-		    case " $newlib_search_path " in
-		    *" $path "*) ;;
-		    *) newlib_search_path="$newlib_search_path $path";;
-		    esac
-		  fi
-		  path=""
-		  ;;
-		*)
-		  path="-L$path"
-		  ;;
-		esac
-		;;
-	      -l*)
-		case $host in
-		*-*-darwin*)
-		  # Again, we only want to link against shared libraries
-		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		  for tmp in $newlib_search_path ; do
-		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		      eval depdepl="$tmp/lib$tmp_libs.dylib"
-		      break
-		    fi
-		  done
-		  path=""
-		  ;;
-		*) continue ;;
-		esac
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$path $deplibs" ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$depdepl $deplibs" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit $EXIT_FAILURE
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      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
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# 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="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	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]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	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]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	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]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	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
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current";
-	  ;;
-
-	irix | nonstopux)
-	  major=`expr $current - $age + 1`
-
-	  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
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  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
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	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
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-	         then
-		   continue
-		 fi
-	       fi
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name=`expr $i : '-l\(.*\)'`
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$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
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    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
-	      name=`expr $i : '-l\(.*\)'`
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC $LTCFLAGS -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$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
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name=`expr $a_deplib : '-l\(.*\)'`
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name=`expr $a_deplib : '-l\(.*\)'`
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	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
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $deplibs " in
-	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
-	  esac
-	  ;;
-	*) new_libs="$new_libs $deplib" ;;
-	esac
-      done
-      deplibs="$new_libs"
-
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	linknames=
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      eval cmd=\"$cmd\"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "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"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*)
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs"
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
-
-	    func_extract_archives $gentop $convenience
-	    libobjs="$libobjs $func_extract_archives_result"
-	  fi
-	fi
-	
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $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:" &&
-	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$output_la-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$output_la-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$output_la-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadable object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
-	  done
-
-	  $echo "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"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  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\"
-	  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
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~\$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || {
-	    lt_exit=$?
-
-	    # Restore the uninstalled library and exit
-	    if test "$mode" = relink; then
-	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-	    fi
-
-	    exit $lt_exit
-	  }
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $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
-	      $show "${rm}r $gentop"
-	      $run ${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
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run 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 "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $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
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  generated="$generated $gentop"
-
-	  func_extract_archives $gentop $convenience
-	  reload_conv_objs="$reload_objs $func_extract_archives_result"
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      cmds=$reload_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${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"
-	# $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"
-	cmds=$reload_cmds
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $compile_deplibs " in
-	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $compile_deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
-	  esac
-	  ;;
-	*) new_libs="$new_libs $deplib" ;;
-	esac
-      done
-      compile_deplibs="$new_libs"
-
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$outputname.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-              case $host in
-              *cygwin* | *mingw* )
-	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-	    else
-	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-              case $host in
-              *cygwin* | *mingw* )
-	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # 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/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-"
-
-	    case $host in
-	    *cygwin* | *mingw* )
-	  $echo >> "$output_objdir/$dlsyms" "\
-/* DATA imports from DLLs on WIN32 can't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs */
-struct {
-"
-	      ;;
-	    * )
-	  $echo >> "$output_objdir/$dlsyms" "\
-const struct {
-"
-	      ;;
-	    esac
-
-
-	  $echo >> "$output_objdir/$dlsyms" "\
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  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*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-          case $host in
-          *cygwin* | *mingw* )
-            if test -f "$output_objdir/${outputname}.def" ; then
-              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-            else
-              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-             fi
-            ;;
-          * )
-            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-            ;;
-          esac
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	exit_status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $exit_status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "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}\" || 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
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
-	case $progpath in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-            output_name=`basename $output`
-            output_path=`dirname $output`
-            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
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   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.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# 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 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-/* -DDEBUG is fairly common in CFLAGS.  */
-#undef DEBUG
-#if defined DEBUGWRAPPER
-# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
-#else
-# define DEBUG(format, ...)
-#endif
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-const char * base_name (const char *name);
-char * find_executable(const char *wrapper);
-int    check_executable(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  DEBUG("(main) argv[0]      : %s\n",argv[0]);
-  DEBUG("(main) program_name : %s\n",program_name);
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-            cat >> $cwrappersource <<EOF
-  newargz[0] = (char *) xstrdup("$SHELL");
-EOF
-
-            cat >> $cwrappersource <<"EOF"
-  newargz[1] = find_executable(argv[0]);
-  if (newargz[1] == NULL)
-    lt_fatal("Couldn't find %s", argv[0]);
-  DEBUG("(main) found exe at : %s\n",newargz[1]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe");
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-
-  for (i=0; i<argc+1; i++)
-  {
-    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
-    ;
-  }
-
-EOF
-
-            case $host_os in
-              mingw*)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",(char const **)newargz);
-EOF
-              ;;
-              *)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-              ;;
-            esac
-
-            cat >> $cwrappersource <<"EOF"
-  return 127;
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-const char *
-base_name (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
-
-int
-check_executable(const char * path)
-{
-  struct stat st;
-
-  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
-  if ((!path) || (!*path))
-    return 0;
-
-  if ((stat (path, &st) >= 0) &&
-      (
-        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
-#if defined (S_IXOTH)
-       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
-#endif
-#if defined (S_IXGRP)
-       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
-#endif
-       ((st.st_mode & S_IXUSR) == S_IXUSR))
-      )
-    return 1;
-  else
-    return 0;
-}
-
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise */
-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;
-
-  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
-
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
-
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
-  {
-    concat_name = xstrdup (wrapper);
-    if (check_executable(concat_name))
-      return concat_name;
-    XFREE(concat_name);
-  }
-  else
-  {
-#endif
-    if (IS_DIR_SEPARATOR (wrapper[0]))
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable(concat_name))
-        return concat_name;
-      XFREE(concat_name);
-    }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  }
-#endif
-
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-    {
-      has_slash = 1;
-      break;
-    }
-  if (!has_slash)
-  {
-    /* no slashes; search PATH */
-    const char* path = getenv ("PATH");
-    if (path != NULL)
-    {
-      for (p = path; *p; p = p_next)
-      {
-        const char* q;
-        size_t p_len;
-        for (q = p; *q; q++)
-          if (IS_PATH_SEPARATOR(*q))
-            break;
-        p_len = q - p;
-        p_next = (*q == '\0' ? q : q + 1);
-        if (p_len == 0)
-        {
-          /* empty path: current directory */
-          if (getcwd (tmp, LT_PATHMAX) == NULL)
-            lt_fatal ("getcwd failed");
-          tmp_len = strlen(tmp);
-          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, tmp, tmp_len);
-          concat_name[tmp_len] = '/';
-          strcpy (concat_name + tmp_len + 1, wrapper);
-        }
-        else
-        {
-          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, p, p_len);
-          concat_name[p_len] = '/';
-          strcpy (concat_name + p_len + 1, wrapper);
-        }
-        if (check_executable(concat_name))
-          return concat_name;
-        XFREE(concat_name);
-      }
-    }
-    /* not found in PATH; assume curdir */
-  }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  tmp_len = strlen(tmp);
-  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
-
-  if (check_executable(concat_name))
-    return concat_name;
-  XFREE(concat_name);
-  return NULL;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-          # we should really use a build-platform specific compiler
-          # here, but OTOH, the wrappers (shell script and this C one)
-          # are only useful if you want to execute the "real" binary.
-          # Since the "real" binary is built for $host, then this
-          # wrapper might as well be built for $host, too.
-          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
-          ;;
-        esac
-        $rm $output
-        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# 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 variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  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 >> $output "\
-
-    # 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 $EXIT_FAILURE
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-	else
-	  $echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit $EXIT_FAILURE
-    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 $EXIT_FAILURE
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      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"
-	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"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	generated="$generated $gentop"
-
-	func_extract_archives $gentop $addlibs
-	oldobjs="$oldobjs $func_extract_archives_result"
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       cmds=$old_archive_from_new_cmds
-      else
-	# 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
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	  :
-	else
-	  $echo "copying selected object files to avoid basename conflicts..."
-
-	  if test -z "$gentop"; then
-	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
-
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    exit_status=$?
-	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
-	      exit $exit_status
-	    fi
-	  fi
-
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  counter=1
-	  for obj in $save_oldobjs
-	  do
-	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-	    case " $oldobjs " in
-	    " ") oldobjs=$obj ;;
-	    *[\ /]"$objbase "*)
-	      while :; do
-		# Make sure we don't pick an alternate name that also
-		# overlaps.
-		newobj=lt$counter-$objbase
-		counter=`expr $counter + 1`
-		case " $oldobjs " in
-		*[\ /]"$newobj "*) ;;
-		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-		esac
-	      done
-	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      $run ln "$obj" "$gentop/$newobj" ||
-	      $run cp "$obj" "$gentop/$newobj"
-	      oldobjs="$oldobjs $gentop/$newobj"
-	      ;;
-	    *) oldobjs="$oldobjs $obj" ;;
-	    esac
-	  done
-	fi
-
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_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
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-	       test "$len" -le "$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=
-	    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
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-        eval cmd=\"$cmd\"
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "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}\" || 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
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
-      fi
-
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	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)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlfiles="$newdlfiles $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlprefiles="$newdlprefiles $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# 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'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_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
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest=$arg
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) 
-      	case " $install_prog " in
-	*[\\\ /]cp\ *) ;;
-	*) prev=$arg ;;
-	esac
-	;;
-      -g | -m | -o) prev=$arg ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*)
-	;;
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest=$arg
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$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 "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.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  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
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run 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
-	      if test "$linkname" != "$realname"; then
-                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  cmds=$postinstall_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || {
-	      lt_exit=$?
-
-	      # Restore the uninstalled library and exit
-	      if test "$mode" = relink; then
-		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-	      fi
-
-	      exit $lt_exit
-	    }
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run 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
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  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
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # Note that it is not necessary on cygwin/mingw to append a dot to
-	  # foo even if both foo 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.
-	  #
-	  # If there is no directory component, then add one.
-	  case $wrapper in
-	  */* | *\\*) . ${wrapper} ;;
-	  *) . ./${wrapper} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # Note that it is not necessary on cygwin/mingw to append a dot to
-	  # foo even if both foo 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.
-	  #
-	  # If there is no directory component, then add one.
-	  case $wrapper in
-	  */* | *\\*) . ${wrapper} ;;
-	  *) . ./${wrapper} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir=`func_mktempdir`
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyway 
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      cmds=$old_postinstall_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  cmds=$finish_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit $EXIT_SUCCESS
-
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    $echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $echo "   $libdir"
-    done
-    $echo
-    $echo "If you ever happen to want to link against installed libraries"
-    $echo "in a given directory, LIBDIR, you must either use libtool, and"
-    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      $echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $echo
-    $echo "See any operating system documentation about shared libraries for"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit $EXIT_FAILURE
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # 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
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-
-	  case "$mode" in
-	  clean)
-	    case "  $library_names " in
-	    # "  " in the beginning catches empty $dlname
-	    *" $dlname "*) ;;
-	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
-	    esac
-	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-	    ;;
-	  uninstall)
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      cmds=$postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      cmds=$old_postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	    ;;
-	  esac
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe)
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit $EXIT_FAILURE
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [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
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit $EXIT_SUCCESS
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [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: $modename [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
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-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: $modename [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."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit $?
-
-# 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
-disable_libs=shared
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-disable_libs=static
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/support/autoconf/m4/bison.m4 b/support/autoconf/m4/bison.m4
deleted file mode 100644
index 48b83cc..0000000
--- a/support/autoconf/m4/bison.m4
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Check for Bison. 
-#
-# This macro verifies that Bison is installed.  If successful, then
-# 1) YACC is set to bison -y (to emulate YACC calls)
-# 2) BISON is set to bison
-#
-AC_DEFUN([AC_PROG_BISON],
-[AC_CACHE_CHECK([],[llvm_cv_has_bison],[AC_PROG_YACC()])
-if test "$YACC" != "bison -y"; then
-  AC_SUBST(BISON,[])
-  AC_MSG_WARN([bison not found, can't rebuild grammars])
-else
-  AC_SUBST(BISON,[bison])
-fi])
diff --git a/support/autoconf/m4/build_exeext.m4 b/support/autoconf/m4/build_exeext.m4
deleted file mode 100644
index 5ea7d2e..0000000
--- a/support/autoconf/m4/build_exeext.m4
+++ /dev/null
@@ -1,42 +0,0 @@
-# Check for the extension used for executables on build platform.
-# This is necessary for cross-compiling where the build platform
-# may differ from the host platform.
-AC_DEFUN([AC_BUILD_EXEEXT],
-[
-AC_MSG_CHECKING([for executable suffix on build platform])
-AC_CACHE_VAL(ac_cv_build_exeext,
-[if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
-  ac_cv_build_exeext=.exe
-else
-  ac_build_prefix=${build_alias}-
-
-  AC_CHECK_PROG(BUILD_CC, ${ac_build_prefix}gcc, ${ac_build_prefix}gcc)
-  if test -z "$BUILD_CC"; then
-     AC_CHECK_PROG(BUILD_CC, gcc, gcc)
-     if test -z "$BUILD_CC"; then
-       AC_CHECK_PROG(BUILD_CC, cc, cc, , , /usr/ucb/cc)
-     fi
-  fi
-  test -z "$BUILD_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
-  ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
-  rm -f conftest*
-  echo 'int main () { return 0; }' > conftest.$ac_ext
-  ac_cv_build_exeext=
-  if AC_TRY_EVAL(ac_build_link); then
-    for file in conftest.*; do
-      case $file in
-      *.c | *.o | *.obj) ;;
-      *) ac_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
-      esac
-    done
-  else
-    AC_MSG_ERROR([installation or configuration problem: compiler cannot create executables.])
-  fi
-  rm -f conftest*
-  test x"${ac_cv_build_exeext}" = x && ac_cv_build_exeext=blank
-fi])
-BUILD_EXEEXT=""
-test x"${ac_cv_build_exeext}" != xblank && BUILD_EXEEXT=${ac_cv_build_exeext}
-AC_MSG_RESULT(${ac_cv_build_exeext})
-ac_build_exeext=$BUILD_EXEEXT
-AC_SUBST(BUILD_EXEEXT)])
diff --git a/support/autoconf/m4/c_printf_a.m4 b/support/autoconf/m4/c_printf_a.m4
deleted file mode 100644
index 61bac8c..0000000
--- a/support/autoconf/m4/c_printf_a.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Determine if the printf() functions have the %a format character.
-# This is modified from:
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-AC_DEFUN([AC_C_PRINTF_A],
-[AC_CACHE_CHECK([if printf has the %a format character],[llvm_cv_c_printf_a],
-[AC_LANG_PUSH([C])
- AC_RUN_IFELSE([
-  AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <stdlib.h>
-]],[[
-volatile double A, B;
-char Buffer[100];
-A = 1;
-A /= 10.0;
-sprintf(Buffer, "%a", A);
-B = atof(Buffer);
-if (A != B)
-  return (1);
-if (A != 0x1.999999999999ap-4)
-  return (1);
-return (0);]])],
-  llvm_cv_c_printf_a=yes,
-  llvmac_cv_c_printf_a=no,
-  llvmac_cv_c_printf_a=no)
- AC_LANG_POP([C])])
- if test "$llvm_cv_c_printf_a" = "yes"; then
-   AC_DEFINE([HAVE_PRINTF_A],[1],[Define to have the %a format string])
- fi
-])
diff --git a/support/autoconf/m4/check_gnu_make.m4 b/support/autoconf/m4/check_gnu_make.m4
deleted file mode 100644
index 7355e1c..0000000
--- a/support/autoconf/m4/check_gnu_make.m4
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Check for GNU Make.  This is originally from
-# http://www.gnu.org/software/ac-archive/htmldoc/check_gnu_make.html
-#
-AC_DEFUN([AC_CHECK_GNU_MAKE],
-[AC_CACHE_CHECK([for GNU make],[llvm_cv_gnu_make_command],
-dnl Search all the common names for GNU make
-[llvm_cv_gnu_make_command=''
- for a in "$MAKE" make gmake gnumake ; do
-  if test -z "$a" ; then continue ; fi ;
-  if  ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) 
-  then
-   llvm_cv_gnu_make_command=$a ;
-   break;
-  fi
- done])
-dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, 
-dnl '#' otherwise
- if test "x$llvm_cv_gnu_make_command" != "x"  ; then
-   ifGNUmake='' ;
- else
-   ifGNUmake='#' ;
-   AC_MSG_RESULT("Not found");
- fi
- AC_SUBST(ifGNUmake)
-])
diff --git a/support/autoconf/m4/cxx_bidi_iterator.m4 b/support/autoconf/m4/cxx_bidi_iterator.m4
deleted file mode 100644
index d7de856..0000000
--- a/support/autoconf/m4/cxx_bidi_iterator.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Check for bidirectional iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_BI_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the bidirectional iterator,
-ac_cv_cxx_have_bi_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif]], [[bidirectional_iterator<int,int> t; return 0;]])],[ac_cv_cxx_have_bi_iterator=yes],[ac_cv_cxx_have_bi_iterator=no])
-  AC_LANG_POP([C++])
-])
-if test "$ac_cv_cxx_have_bi_iterator" = yes
-then
-  AC_DEFINE(HAVE_BI_ITERATOR,1,[Have bi-directional iterator])
-else
-  AC_DEFINE(HAVE_BI_ITERATOR,0,[Does not have bi-directional iterator])
-fi
-])
diff --git a/support/autoconf/m4/cxx_fwd_iterator.m4 b/support/autoconf/m4/cxx_fwd_iterator.m4
deleted file mode 100644
index eb7660c..0000000
--- a/support/autoconf/m4/cxx_fwd_iterator.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-# Check for forward iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-AC_DEFUN([AC_CXX_HAVE_FWD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has forward iterators,
-ac_cv_cxx_have_fwd_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif]], [[forward_iterator<int,int> t; return 0;]])],[ac_cv_cxx_have_fwd_iterator=yes],[ac_cv_cxx_have_fwd_iterator=no])
-  AC_LANG_POP([C++])
-])
-if test "$ac_cv_cxx_have_fwd_iterator" = yes
-then
-   AC_DEFINE(HAVE_FWD_ITERATOR,1,[Have forward iterator])
-else
-   AC_DEFINE(HAVE_FWD_ITERATOR,0,[Does not have forward iterator])
-fi
-])
-
-
diff --git a/support/autoconf/m4/cxx_hash_map.m4 b/support/autoconf/m4/cxx_hash_map.m4
deleted file mode 100644
index 71c74b1..0000000
--- a/support/autoconf/m4/cxx_hash_map.m4
+++ /dev/null
@@ -1,59 +0,0 @@
-# Check for hash_map extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_map.html
-AC_DEFUN([AC_CXX_HAVE_STD_EXT_HASH_MAP],
-[AC_CACHE_CHECK([whether the compiler has <ext/hash_map> defining template class std::hash_map],
- ac_cv_cxx_have_std_ext_hash_map,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif]], [[hash_map<int, int> t;]])],[ac_cv_cxx_have_std_ext_hash_map=yes],[ac_cv_cxx_have_std_ext_hash_map=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_std_ext_hash_map" = yes
- then
-   AC_DEFINE(HAVE_STD_EXT_HASH_MAP,1,[Have ext/hash_map>])
- else
-   AC_DEFINE(HAVE_STD_EXT_HASH_MAP,0,[Does not have ext/hash_map>])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_GNU_EXT_HASH_MAP],
-[AC_CACHE_CHECK([whether the compiler has <ext/hash_map> defining template class __gnu_cxx::hash_map],
- ac_cv_cxx_have_gnu_ext_hash_map,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif]], [[hash_map<int,int> t; ]])],[ac_cv_cxx_have_gnu_ext_hash_map=yes],[ac_cv_cxx_have_gnu_ext_hash_map=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_gnu_ext_hash_map" = yes
- then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_MAP,1,[Have ext/hash_map])
- else
-   AC_DEFINE(HAVE_GNU_EXT_HASH_MAP,0,[Does not have ext/hash_map])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_GLOBAL_HASH_MAP],
-[AC_CACHE_CHECK([whether the compiler has <hash_map> defining template class ::hash_map],
- ac_cv_cxx_have_global_hash_map,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <hash_map>]], [[hash_map<int,int> t; ]])],[ac_cv_cxx_have_global_hash_map=yes],[ac_cv_cxx_have_global_hash_map=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_global_hash_map" = yes
- then
-   AC_DEFINE(HAVE_GLOBAL_HASH_MAP,1,[Have <hash_map>])
- else
-   AC_DEFINE(HAVE_GLOBAL_HASH_MAP,0,[Does not have <hash_map>])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_HASH_MAP],
-[AC_CXX_HAVE_STD_EXT_HASH_MAP
- AC_CXX_HAVE_GNU_EXT_HASH_MAP
- AC_CXX_HAVE_GLOBAL_HASH_MAP])
-
-
diff --git a/support/autoconf/m4/cxx_hash_set.m4 b/support/autoconf/m4/cxx_hash_set.m4
deleted file mode 100644
index e9d28bf..0000000
--- a/support/autoconf/m4/cxx_hash_set.m4
+++ /dev/null
@@ -1,60 +0,0 @@
-# Check for hash_set extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-AC_DEFUN([AC_CXX_HAVE_STD_EXT_HASH_SET],
-[AC_CACHE_CHECK([whether the compiler has <ext/hash_set> defining template class std::hash_set],
- ac_cv_cxx_have_std_ext_hash_set,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif]], [[hash_set<int> t; ]])],[ac_cv_cxx_have_std_ext_hash_set=yes],[ac_cv_cxx_have_std_ext_hash_set=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_std_ext_hash_set" = yes
- then
-   AC_DEFINE(HAVE_STD_EXT_HASH_SET,1,[Have hash_set in std namespace])
- else
-   AC_DEFINE(HAVE_STD_EXT_HASH_SET,0,[Does not have hash_set in std namespace])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_GNU_EXT_HASH_SET],
-[AC_CACHE_CHECK(
- [whether the compiler has <ext/hash_set> defining template class __gnu_cxx::hash_set],
- ac_cv_cxx_have_gnu_ext_hash_set,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif]], [[hash_set<int> t; ]])],[ac_cv_cxx_have_gnu_ext_hash_set=yes],[ac_cv_cxx_have_gnu_ext_hash_set=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_gnu_ext_hash_set" = yes
- then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_SET,1,[Have hash_set in gnu namespace])
- else
-   AC_DEFINE(HAVE_GNU_EXT_HASH_SET,0,[Does not have hash_set in gnu namespace])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_GLOBAL_HASH_SET],
-[AC_CACHE_CHECK([whether the compiler has <hash_set> defining template class ::hash_set],
- ac_cv_cxx_have_global_hash_set,
- [AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <hash_set>]], [[hash_set<int> t; return 0;]])],[ac_cv_cxx_have_global_hash_set=yes],[ac_cv_cxx_have_global_hash_set=no])
-  AC_LANG_POP([C++])])
- if test "$ac_cv_cxx_have_global_hash_set" = yes
- then
-   AC_DEFINE(HAVE_GLOBAL_HASH_SET,1,[Have hash_set in global namespace])
- else
-   AC_DEFINE(HAVE_GLOBAL_HASH_SET,0,[Does not have hash_set in global namespace])
- fi
- ])
-
-AC_DEFUN([AC_CXX_HAVE_HASH_SET],
-[AC_CXX_HAVE_STD_EXT_HASH_SET
- AC_CXX_HAVE_GNU_EXT_HASH_SET
- AC_CXX_HAVE_GLOBAL_HASH_SET])
-
-
diff --git a/support/autoconf/m4/cxx_namespaces.m4 b/support/autoconf/m4/cxx_namespaces.m4
deleted file mode 100644
index d8d650e..0000000
--- a/support/autoconf/m4/cxx_namespaces.m4
+++ /dev/null
@@ -1,19 +0,0 @@
-# Check for C++ namespace support.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_CXX_NAMESPACES],
-[AC_CACHE_CHECK(whether the compiler implements namespaces,
-ac_cv_cxx_namespaces,
-[AC_LANG_PUSH([C++])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-   [[namespace Outer { namespace Inner { int i = 0; }}]],
-   [[using namespace Outer::Inner; return i;]])], 
-   ac_cv_cxx_namespaces=yes, 
-   ac_cv_cxx_namespaces=no)
- AC_LANG_POP([C++])
-])
-if test "$ac_cv_cxx_namespaces" = yes; then
-  AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
-fi
-])
-
diff --git a/support/autoconf/m4/cxx_std_iterator.m4 b/support/autoconf/m4/cxx_std_iterator.m4
deleted file mode 100644
index 38a6117..0000000
--- a/support/autoconf/m4/cxx_std_iterator.m4
+++ /dev/null
@@ -1,26 +0,0 @@
-# Check for standard iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-AC_DEFUN([AC_CXX_HAVE_STD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the standard iterator,
-ac_cv_cxx_have_std_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_PUSH([C++])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [[#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif]],
-  [[iterator<int,int,int> t; return 0;]])],
-  ac_cv_cxx_have_std_iterator=yes, 
-  ac_cv_cxx_have_std_iterator=no)
-  AC_LANG_POP([C++])
-])
-if test "$ac_cv_cxx_have_std_iterator" = yes
-then
-   AC_DEFINE(HAVE_STD_ITERATOR,1,[Have std namespace iterator])
-else
-   AC_DEFINE(HAVE_STD_ITERATOR,0,[Does not have std namespace iterator])
-fi
-])
-
-
diff --git a/support/autoconf/m4/find_std_program.m4 b/support/autoconf/m4/find_std_program.m4
deleted file mode 100644
index 7eac4a3..0000000
--- a/support/autoconf/m4/find_std_program.m4
+++ /dev/null
@@ -1,118 +0,0 @@
-dnl Check for a standard program that has a bin, include and lib directory
-dnl 
-dnl Parameters:
-dnl   $1 - prefix directory to check
-dnl   $2 - program name to check
-dnl   $3 - header file to check 
-dnl   $4 - library file to check 
-AC_DEFUN([CHECK_STD_PROGRAM],
-[m4_define([allcapsname],translit($2,a-z-,A-Z_))
-if test -n "$1" -a -d "$1" -a -n "$2" -a -d "$1/bin" -a -x "$1/bin/$2" ; then
-  AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
-  AC_SUBST(allcapsname(),[$1/bin/$2])
-  AC_SUBST(allcapsname()[_BIN],[$1/bin])
-  AC_SUBST(allcapsname()[_DIR],[$1])
-  if test -n "$3" -a -d "$1/include" -a -f "$1/include/$3" ; then 
-    AC_SUBST(allcapsname()[_INC],[$1/include])
-  fi
-  if test -n "$4" -a -d "$1/lib" -a -f "$1/lib/$4" ; then
-    AC_SUBST(allcapsname()[_LIB],[$1/lib])
-  fi
-fi
-])
-
-dnl Find a program via --with options, in the path, or well known places
-dnl
-dnl Parameters:
-dnl   $1 - program's executable name
-dnl   $2 - header file name to check (optional)
-dnl   $3 - library file name to check (optional)
-dnl   $4 - alternate (long) name for the program
-AC_DEFUN([FIND_STD_PROGRAM],
-[m4_define([allcapsname],translit($1,a-z-,A-Z_))
-m4_define([stdprog_long_name],ifelse($4,,translit($1,[ !@#$%^&*()-+={}[]:;"',./?],[-]),translit($4,[ !@#$%^&*()-+={}[]:;"',./?],[-])))
-AC_MSG_CHECKING([for ]stdprog_long_name()[ bin/lib/include locations])
-AC_ARG_WITH($1,
-  AS_HELP_STRING([--with-]stdprog_long_name()[=DIR],
-  [Specify that the ]stdprog_long_name()[ install prefix is DIR]),
-  $1[pfxdir=$withval],$1[pfxdir=nada])
-AC_ARG_WITH($1[-bin],
-  AS_HELP_STRING([--with-]stdprog_long_name()[-bin=DIR],
-  [Specify that the ]stdprog_long_name()[ binary is in DIR]),
-    $1[bindir=$withval],$1[bindir=nada])
-AC_ARG_WITH($1[-lib],
-  AS_HELP_STRING([--with-]stdprog_long_name()[-lib=DIR],
-  [Specify that ]stdprog_long_name()[ libraries are in DIR]),
-  $1[libdir=$withval],$1[libdir=nada])
-AC_ARG_WITH($1[-inc],
-  AS_HELP_STRING([--with-]stdprog_long_name()[-inc=DIR],
-  [Specify that the ]stdprog_long_name()[ includes are in DIR]),
-  $1[incdir=$withval],$1[incdir=nada])
-eval pfxval=\$\{$1pfxdir\}
-eval binval=\$\{$1bindir\}
-eval incval=\$\{$1incdir\}
-eval libval=\$\{$1libdir\}
-if test "${pfxval}" != "nada" ; then
-  CHECK_STD_PROGRAM(${pfxval},$1,$2,$3)
-elif test "${binval}" != "nada" ; then
-  if test "${libval}" != "nada" ; then
-    if test "${incval}" != "nada" ; then
-      if test -d "${binval}" ; then
-        if test -d "${incval}" ; then
-          if test -d "${libval}" ; then
-            AC_SUBST(allcapsname(),${binval}/$1)
-            AC_SUBST(allcapsname()[_BIN],${binval})
-            AC_SUBST(allcapsname()[_INC],${incval})
-            AC_SUBST(allcapsname()[_LIB],${libval})
-            AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
-            AC_MSG_RESULT([found via --with options])
-          else
-            AC_MSG_RESULT([failed])
-            AC_MSG_ERROR([The --with-]$1[-libdir value must be a directory])
-          fi
-        else
-          AC_MSG_RESULT([failed])
-          AC_MSG_ERROR([The --with-]$1[-incdir value must be a directory])
-        fi
-      else
-        AC_MSG_RESULT([failed])
-        AC_MSG_ERROR([The --with-]$1[-bindir value must be a directory])
-      fi
-    else
-      AC_MSG_RESULT([failed])
-      AC_MSG_ERROR([The --with-]$1[-incdir option must be specified])
-    fi
-  else
-    AC_MSG_RESULT([failed])
-    AC_MSG_ERROR([The --with-]$1[-libdir option must be specified])
-  fi
-else
-  tmppfxdir=`which $1 2>&1`
-  if test -n "$tmppfxdir" -a -d "${tmppfxdir%*$1}" -a \
-          -d "${tmppfxdir%*$1}/.." ; then
-    tmppfxdir=`cd "${tmppfxdir%*$1}/.." ; pwd`
-    CHECK_STD_PROGRAM($tmppfxdir,$1,$2,$3)
-    AC_MSG_RESULT([found in PATH at ]$tmppfxdir)
-  else
-    checkresult="yes"
-    eval checkval=\$\{"USE_"allcapsname()\}
-    CHECK_STD_PROGRAM([/usr],$1,$2,$3)
-    if test -z "${checkval}" ; then
-      CHECK_STD_PROGRAM([/usr/local],$1,$2,$3)
-      if test -z "${checkval}" ; then
-        CHECK_STD_PROGRAM([/sw],$1,$2,$3)
-        if test -z "${checkval}" ; then
-          CHECK_STD_PROGRAM([/opt],$1,$2,$3)
-          if test -z "${checkval}" ; then
-            CHECK_STD_PROGRAM([/],$1,$2,$3)
-            if test -z "${checkval}" ; then
-              checkresult="no"
-            fi
-          fi
-        fi
-      fi
-    fi
-    AC_MSG_RESULT($checkresult)
-  fi
-fi
-])
diff --git a/support/autoconf/m4/flex.m4 b/support/autoconf/m4/flex.m4
deleted file mode 100644
index 5cb3dc4..0000000
--- a/support/autoconf/m4/flex.m4
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Check for FLEX.  
-#
-# This macro verifies that flex is installed.  If successful, then
-# 1) $LEX is set to "flex" (to emulate lex calls)
-# 2) BISON is set to bison
-AC_DEFUN([AC_PROG_FLEX],
-[AC_CACHE_CHECK(,
-ac_cv_has_flex,
-[AC_PROG_LEX()
-])
-if test "$LEX" != "flex"; then
-  AC_MSG_ERROR([flex not found but required])
-else
-  AC_SUBST(FLEX,[flex],[location of flex])
-fi
-])
diff --git a/support/autoconf/m4/func_isinf.m4 b/support/autoconf/m4/func_isinf.m4
deleted file mode 100644
index c936bf9..0000000
--- a/support/autoconf/m4/func_isinf.m4
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# This function determins if the the isinf function isavailable on this
-# platform.
-#
-AC_DEFUN([AC_FUNC_ISINF],[
-AC_SINGLE_CXX_CHECK([ac_cv_func_isinf_in_math_h],   
-                    [isinf], [<math.h>],
-                    [float f; isinf(f);])
-if test "$ac_cv_func_isinf_in_math_h" = "yes" ; then 
-  AC_DEFINE([HAVE_ISINF_IN_MATH_H],1,[Set to 1 if the isinf function is found in <math.h>])
-fi
-
-AC_SINGLE_CXX_CHECK([ac_cv_func_isinf_in_cmath],    
-                    [isinf], [<cmath>],
-                    [float f; isinf(f);])
-if test "$ac_cv_func_isinf_in_cmath" = "yes" ; then
-  AC_DEFINE([HAVE_ISINF_IN_CMATH],1,[Set to 1 if the isinf function is found in <cmath>])
-fi
-
-AC_SINGLE_CXX_CHECK([ac_cv_func_std_isinf_in_cmath],
-                    [std::isinf], [<cmath>],
-                    [float f; std::isinf(f)}])
-if test "$ac_cv_func_std_isinf_in_cmath" = "yes" ; then 
-  AC_DEFINE([HAVE_STD_ISINF_IN_CMATH],1,[Set to 1 if the std::isinf function is found in <cmath>])
-fi
-
-AC_SINGLE_CXX_CHECK([ac_cv_func_finite_in_ieeefp_h],
-                    [finite], [<ieeefp.h>],
-                    [float f; finite(f);])
-if test "$ac_cv_func_finite_in_ieeefp_h" = "yes" ; then
-  AC_DEFINE([HAVE_FINITE_IN_IEEEFP_H],1,[Set to 1 if the finite function is found in <ieeefp.h>])
-fi
-
-])
-
-
diff --git a/support/autoconf/m4/func_isnan.m4 b/support/autoconf/m4/func_isnan.m4
deleted file mode 100644
index eb5ca0d..0000000
--- a/support/autoconf/m4/func_isnan.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# This function determines if the isnan function is available on this
-# platform.
-#
-AC_DEFUN([AC_FUNC_ISNAN],[
-AC_SINGLE_CXX_CHECK([ac_cv_func_isnan_in_math_h],   
-                    [isnan], [<math.h>],
-                    [float f; isnan(f);])
-
-if test "$ac_cv_func_isnan_in_math_h" = "yes" ; then
-  AC_DEFINE([HAVE_ISNAN_IN_MATH_H],1,[Set to 1 if the isnan function is found in <math.h>])
-fi
-
-AC_SINGLE_CXX_CHECK([ac_cv_func_isnan_in_cmath],    
-                    [isnan], [<cmath>],
-                    [float f; isnan(f);])
-if test "$ac_cv_func_isnan_in_cmath" = "yes" ; then
-  AC_DEFINE([HAVE_ISNAN_IN_CMATH],1,[Set to 1 if the isnan function is found in <cmath>])
-fi
-
-AC_SINGLE_CXX_CHECK([ac_cv_func_std_isnan_in_cmath],
-                    [std::isnan], [<cmath>],
-                    [float f; std::isnan(f);])
-if test "$ac_cv_func_std_isnan_in_cmath" = "yes" ; then
-  AC_DEFINE([HAVE_STD_ISNAN_IN_CMATH],1,[Set to 1 if the std::isnan function is found in <cmath>])
-fi
-])
diff --git a/support/autoconf/m4/func_mmap_file.m4 b/support/autoconf/m4/func_mmap_file.m4
deleted file mode 100644
index 372c87f..0000000
--- a/support/autoconf/m4/func_mmap_file.m4
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Check for the ability to mmap a file.  
-#
-AC_DEFUN([AC_FUNC_MMAP_FILE],
-[AC_CACHE_CHECK(for mmap of files,
-ac_cv_func_mmap_file,
-[ AC_LANG_PUSH([C])
-  AC_RUN_IFELSE([
-    AC_LANG_PROGRAM([[
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-]],[[
-  int fd;
-  fd = creat ("foo",0777); 
-  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
-  unlink ("foo"); 
-  return (fd != (int) MAP_FAILED);]])],
-  [ac_cv_func_mmap_file=yes],[ac_cv_func_mmap_file=no],[ac_cv_func_mmap_file=no])
-  AC_LANG_POP([C])
-])
-if test "$ac_cv_func_mmap_file" = yes; then
-   AC_DEFINE([HAVE_MMAP_FILE],[],[Define if mmap() can map files into memory])
-   AC_SUBST(MMAP_FILE,[yes])
-fi
-])
diff --git a/support/autoconf/m4/header_mmap_anonymous.m4 b/support/autoconf/m4/header_mmap_anonymous.m4
deleted file mode 100644
index 2270d29..0000000
--- a/support/autoconf/m4/header_mmap_anonymous.m4
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Check for anonymous mmap macros.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
-[AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
-ac_cv_header_mmap_anon,
-[ AC_LANG_PUSH([C])
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [[#include <sys/mman.h>
-#include <unistd.h>
-#include <fcntl.h>]],
-  [[mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);]])],
-  ac_cv_header_mmap_anon=yes, 
-  ac_cv_header_mmap_anon=no)
-  AC_LANG_POP([C])
-])
-if test "$ac_cv_header_mmap_anon" = yes; then
-   AC_DEFINE([HAVE_MMAP_ANONYMOUS],[1],[Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if it uses MAP_ANON])
-fi
-])
diff --git a/support/autoconf/m4/huge_val.m4 b/support/autoconf/m4/huge_val.m4
deleted file mode 100644
index fd94c11..0000000
--- a/support/autoconf/m4/huge_val.m4
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# This function determins if the the HUGE_VAL macro is compilable with the 
-# -pedantic switch or not. XCode < 2.4.1 doesn't get it right.
-#
-AC_DEFUN([AC_HUGE_VAL_CHECK],[
-  AC_CACHE_CHECK([for HUGE_VAL sanity], [ac_cv_huge_val_sanity],[
-    AC_LANG_PUSH([C++])
-    CXXFLAGS=-pedantic
-    AC_RUN_IFELSE(
-      AC_LANG_PROGRAM(
-        [#include <math.h>],
-        [double x = HUGE_VAL; return x != x; ]),
-      [ac_cv_huge_val_sanity=yes],[ac_cv_huge_val_sanity=no],
-      [ac_cv_huge_val_sanity=yes])
-    AC_LANG_POP([C++])
-    ])
-  AC_SUBST(HUGE_VAL_SANITY,$ac_cv_huge_val_sanity)
-])
diff --git a/support/autoconf/m4/libtool.m4 b/support/autoconf/m4/libtool.m4
deleted file mode 100644
index 5de110b..0000000
--- a/support/autoconf/m4/libtool.m4
+++ /dev/null
@@ -1,6389 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
-
-# serial 48 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-	         [m4_ifdef([AC_PROVIDE_$1],
-		           [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-	[AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-	     [define([LT_AC_PROG_GCJ],
-		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/mklib'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.60)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 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 to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=mklib
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AS_HELP_STRING([--disable-libtool-lock],[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-AC_DEFUN([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-])
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-AC_DEFUN([_LT_COMPILER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$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.
-AC_DEFUN([_LT_LINKER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-])# _LT_LINKER_BOILERPLATE
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
-       echo_test_string=`eval $cmd` &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "[$]0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AS_HELP_STRING([--disable-libtool-lock],[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *32-bit*)
-      case $host in
-        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-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  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*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    # 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.
-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-    while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
-	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    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`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# ------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ---------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-    exit (status);
-}]
-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_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# ----------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    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_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      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_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_AC_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 ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AS_HELP_STRING([--with-tags@<:@=TAGS@:>@],[include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-  if test -z "$LTCFLAGS"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name "$tagname" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-	    (test "X$CXX" != "Xg++"))) ; then
-	  AC_LIBTOOL_LANG_CXX_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-	  AC_LIBTOOL_LANG_F77_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  AC_LIBTOOL_LANG_GCJ_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	AC_LIBTOOL_LANG_RC_CONFIG
-	;;
-
-      *)
-	AC_MSG_ERROR([Unsupported tag name: $tagname])
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 DLLs
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([enable_shared_default], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],[build shared libraries @<:@default=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=]enable_shared_default)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-# set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([enable_static_default], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],[build static libraries @<:@default=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=]enable_static_default)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([enable_Fast_install_default], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],[optimize for fast installation @<:@default=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=]enable_Fast_install_default)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [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])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some 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])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU 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
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r $compiler_flags -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-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'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu | dragonfly*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix3*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  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=unknown
-  ;;
-
-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
-  ;;
-
-solaris*)
-  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
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_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
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that
-# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
-# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
-# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
-# (note the single quotes!).  If your package is not flat and you're not
-# using automake, define top_builddir and top_srcdir appropriately in
-# the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that
-# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
-# and an installed libltdl is not found, it is assumed to be `libltdl'.
-# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and top_srcdir
-# appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-# _LT_AC_PROG_CXXCPP
-# ------------------
-AC_DEFUN([_LT_AC_PROG_CXXCPP],
-[
-AC_REQUIRE([AC_PROG_CXX])
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-fi
-])# _LT_AC_PROG_CXXCPP
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# -------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-# 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...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF
-
-# 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
-  ;;
-
-aix4* | aix5*)
-  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])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  $as_unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  $as_unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      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]].*|aix5*)
-	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_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[[012]]|aix4.[[012]].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	else
-	  # We have old collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	fi
-	;;
-      esac
-      shared_flag='-shared'
-      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
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $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_AC_SYS_LIBPATH_AIX
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	# This is similar to how AIX traditionally builds its shared libraries.
-	_LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-      # support --undefined.  This deserves some investigation.  FIXME
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-    ;;
-
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $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_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-      darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[[012]])
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[[012]])
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
-      output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
-      fi
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          _LT_AC_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'
-        fi
-        _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-          ;;
-      esac
-      fi
-        ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++*)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      ghcx*)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  freebsd[[12]]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd* | kfreebsd*-gnu | dragonfly*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC*)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $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) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-      case $host_cpu in
-      hppa*64*|ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-        ;;
-      *)
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case $host_cpu in
-    hppa*64*|ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC*)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      aCC*)
-	case $host_cpu in
-	hppa*64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case $host_cpu in
-	    hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    ia64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  interix3*)
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-    _LT_AC_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_AC_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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	  else
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-	;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc*)
-	# Intel C++
-	with_gnu_ld=yes
-	# 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-  	  _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	  _LT_AC_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_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      pgCC*)
-        # Portland Group C++ compiler
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-  	_LT_AC_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'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-        ;;
-      cxx*)
-	# Compaq C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx*)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  openbsd2*)
-    # C++ shared libraries are fairly broken
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  openbsd*)
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-    _LT_AC_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_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    fi
-    output_verbose_link_cmd='echo'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC*)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx*)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-	;;
-      RCC*)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx*)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC*)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      lcc*)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC*)
-	# Sun C++ 4.2, 5.x and Centerline C++
-        _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	case $host_os in
-	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker. We must also pass each convience library through
-	    # to the system linker between allextract/defaultextract.
-	    # The C++ compiler will combine linker options so we
-	    # cannot just pass the convience library names through
-	    # without $wl.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-	output_verbose_link_cmd='echo'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx*)
-	# Green Hills C++ Compiler
-	_LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    runpath_var='LD_RUN_PATH'
-
-    case $cc_basename in
-      CC*)
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	;;
-      *)
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_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.
-    # 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.
-    # So that behaviour is only enabled if SCOABSPATH is set to a
-    # non-empty value in the environment.  Most likely only useful for
-    # creating official distributions of packages.
-    # This is a hack until libtool officially supports absolute path
-    # names for shared libraries.
-    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-    runpath_var='LD_RUN_PATH'
-
-    case $cc_basename in
-      CC*)
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	;;
-      *)
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-ifelse([$1],[CXX],
-[case $host_os in
-interix3*)
-  # 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_AC_TAGVAR(predep_objects,$1)=
-  _LT_AC_TAGVAR(postdep_objects,$1)=
-  _LT_AC_TAGVAR(postdeps,$1)=
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # 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.
-    _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# 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"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  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_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_PUSH(C)
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# 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"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_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...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP([])
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# -------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_PUSH(C)
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# 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"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP([])
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e 1s/^X//"
-
-# 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
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDGIRSTW]]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  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
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Try without a prefix undercore, 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.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    interix3*)
-      # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-       darwin*)
-         # PIC is the default on this platform
-         # Common symbols not allowed in MH_DYLIB files
-         case $cc_basename in
-           xlc*)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           ;;
-         esac
-       ;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | kfreebsd*-gnu | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  icpc* | ecpc*)
-	    # Intel C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC*)
-	    # Portland Group C++ compiler.
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    interix3*)
-      # 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_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case $cc_basename in
-         xlc*)
-         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
-         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $cc_basename in
-      icc* | ecc*)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-  # Just being paranoid about ensuring that cc_basename is set.
-  _LT_CC_BASENAME([$compiler])
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>/dev/null` in
-      *\ [[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
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $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_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    interix3*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_AC_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_AC_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_AC_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'
-      ;;
-
-    linux*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	tmp_addflag=
-	case $cc_basename,$host_cpu in
-	pgcc*)				# Portland Group C compiler
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	esac
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-	if test $supports_anon_versioning = yes; then
-	  _LT_AC_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 -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	fi
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_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_AC_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
-	;;
-	*)
-	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
-	  else
-	    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	fi
-	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]].*|aix5*)
-	  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_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  else
-  	  # We have old collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	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
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $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_AC_SYS_LIBPATH_AIX
-	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_AC_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*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi[[45]]*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case $host_os in
-        rhapsody* | darwin1.[[012]])
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[[012]])
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    if test "$GCC" = yes ; then
-    	output_verbose_link_cmd='echo'
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	wlarc=''
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
- 	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-	pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && 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_MSG_RESULT([$SED])
-])
diff --git a/support/autoconf/m4/link_use_r.m4 b/support/autoconf/m4/link_use_r.m4
deleted file mode 100644
index 30c964e..0000000
--- a/support/autoconf/m4/link_use_r.m4
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Determine if the system can handle the -R option being passed to the linker.
-#
-# This macro is specific to LLVM.
-#
-AC_DEFUN([AC_LINK_USE_R],
-[AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
-[ AC_LANG_PUSH([C])
-  oldcflags="$CFLAGS"
-  CFLAGS="$CFLAGS -Wl,-R."
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[int main() { return 0; }]])],
-    [llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
-  CFLAGS="$oldcflags"
-  AC_LANG_POP([C])
-])
-if test "$llvm_cv_link_use_r" = yes ; then
-  AC_DEFINE([HAVE_LINK_R],[1],[Define if you can use -Wl,-R. to pass -R. to the linker, in order to add the current directory to the dynamic linker search path.])
-  fi
-])
diff --git a/support/autoconf/m4/ltdl.m4 b/support/autoconf/m4/ltdl.m4
deleted file mode 100644
index bc9e2ad..0000000
--- a/support/autoconf/m4/ltdl.m4
+++ /dev/null
@@ -1,418 +0,0 @@
-## ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-
-## Copyright (C) 1999-2000 Free Software Foundation, Inc.
-##
-## This file is free software; the Free Software Foundation gives
-## unlimited permission to copy and/or distribute it, with or without
-## modifications, as long as this notice is preserved.
-
-# serial 7 AC_LIB_LTDL
-
-# AC_WITH_LTDL
-# ------------
-# Clients of libltdl can use this macro to allow the installer to
-# choose between a shipped copy of the ltdl sources or a preinstalled
-# version of the library.
-AC_DEFUN([AC_WITH_LTDL],
-[AC_REQUIRE([AC_LIB_LTDL])
-AC_SUBST([LIBLTDL])
-AC_SUBST([INCLTDL])
-
-# Unless the user asks us to check, assume no installed ltdl exists.
-use_installed_libltdl=no
-
-AC_ARG_WITH([included_ltdl],
-    [  --with-included-ltdl    use the GNU ltdl sources included here])
-
-if test "x$with_included_ltdl" != xyes; then
-  # We are not being forced to use the included libltdl sources, so
-  # decide whether there is a useful installed version we can use.
-  AC_CHECK_HEADER([ltdl.h],
-      [AC_CHECK_LIB([ltdl], [lt_dlcaller_register],
-          [with_included_ltdl=no],
-          [with_included_ltdl=yes])
-  ])
-fi
-
-if test "x$enable_ltdl_install" != xyes; then
-  # If the user did not specify an installable libltdl, then default
-  # to a convenience lib.
-  AC_LIBLTDL_CONVENIENCE
-fi
-
-if test "x$with_included_ltdl" = xno; then
-  # If the included ltdl is not to be used. then Use the
-  # preinstalled libltdl we found.
-  AC_DEFINE([HAVE_LTDL], [1],
-    [Define this if a modern libltdl is already installed])
-  LIBLTDL=-lltdl
-fi
-
-# Report our decision...
-AC_MSG_CHECKING([whether to use included libltdl])
-AC_MSG_RESULT([$with_included_ltdl])
-
-AC_CONFIG_SUBDIRS([libltdl])
-])# AC_WITH_LTDL
-
-
-# AC_LIB_LTDL
-# -----------
-# Perform all the checks necessary for compilation of the ltdl objects
-#  -- including compiler checks and header checks.
-AC_DEFUN([AC_LIB_LTDL],
-[AC_PREREQ(2.60)
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AC_C_CONST])
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([AC_HEADER_DIRENT])
-AC_REQUIRE([_LT_AC_CHECK_DLFCN])
-AC_REQUIRE([AC_LTDL_ENABLE_INSTALL])
-AC_REQUIRE([AC_LTDL_SHLIBEXT])
-AC_REQUIRE([AC_LTDL_SHLIBPATH])
-AC_REQUIRE([AC_LTDL_SYSSEARCHPATH])
-AC_REQUIRE([AC_LTDL_OBJDIR])
-AC_REQUIRE([AC_LTDL_DLPREOPEN])
-AC_REQUIRE([AC_LTDL_DLLIB])
-AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])
-AC_REQUIRE([AC_LTDL_DLSYM_USCORE])
-AC_REQUIRE([AC_LTDL_SYS_DLOPEN_DEPLIBS])
-AC_REQUIRE([AC_LTDL_FUNC_ARGZ])
-
-AC_CHECK_HEADERS([assert.h ctype.h errno.h malloc.h memory.h stdlib.h \
-		  stdio.h unistd.h])
-AC_CHECK_HEADERS([dl.h sys/dl.h dld.h mach-o/dyld.h])
-AC_CHECK_HEADERS([string.h strings.h], [break])
-
-AC_CHECK_FUNCS([strchr index], [break])
-AC_CHECK_FUNCS([strrchr rindex], [break])
-AC_CHECK_FUNCS([memcpy bcopy], [break])
-AC_CHECK_FUNCS([memmove strcmp])
-AC_CHECK_FUNCS([closedir opendir readdir])
-])# AC_LIB_LTDL
-
-
-# AC_LTDL_ENABLE_INSTALL
-# ----------------------
-AC_DEFUN([AC_LTDL_ENABLE_INSTALL],
-[AC_ARG_ENABLE([ltdl-install],
-    [AS_HELP_STRING([--enable-ltdl-install],[install libltdl])])
-
-AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
-AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
-])# AC_LTDL_ENABLE_INSTALL
-
-
-# AC_LTDL_SYS_DLOPEN_DEPLIBS
-# --------------------------
-AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
-  [libltdl_cv_sys_dlopen_deplibs],
-  [# PORTME does your system automatically load deplibs for dlopen?
-  # or its logical equivalent (e.g. shl_load for HP-UX < 11)
-  # For now, we just catch OSes we know something about -- in the
-  # future, we'll try test this programmatically.
-  libltdl_cv_sys_dlopen_deplibs=unknown
-  case "$host_os" in
-  aix3*|aix4.1.*|aix4.2.*)
-    # Unknown whether this is true for these versions of AIX, but
-    # we want this `case' here to explicitly catch those versions.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  aix[[45]]*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  darwin*)
-    # Assuming the user has installed a libdl from somewhere, this is true
-    # If you are looking for one http://www.opendarwin.org/projects/dlcompat
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
-    # GNU and its variants, using gnu ld.so (Glibc)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  hpux10*|hpux11*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  interix*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  irix[[12345]]*|irix6.[[01]]*)
-    # Catch all versions of IRIX before 6.2, and indicate that we don't
-    # know how it worked for any of those versions.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  irix*)
-    # The case above catches anything before 6.2, and it's known that
-    # at 6.2 and later dlopen does load deplibs.
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  netbsd*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  openbsd*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  osf[[1234]]*)
-    # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
-    # it did *not* use an RPATH in a shared library to find objects the
-    # library depends on, so we explictly say `no'.
-    libltdl_cv_sys_dlopen_deplibs=no
-    ;;
-  osf5.0|osf5.0a|osf5.1)
-    # dlopen *does* load deplibs and with the right loader patch applied
-    # it even uses RPATH in a shared library to search for shared objects
-    # that the library depends on, but there's no easy way to know if that
-    # patch is installed.  Since this is the case, all we can really
-    # say is unknown -- it depends on the patch being installed.  If
-    # it is, this changes to `yes'.  Without it, it would be `no'.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  osf*)
-    # the two cases above should catch all versions of osf <= 5.1.  Read
-    # the comments above for what we know about them.
-    # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
-    # is used to find them so we can finally say `yes'.
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  solaris*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  esac
-  ])
-if test "$libltdl_cv_sys_dlopen_deplibs" != yes; then
- AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
-    [Define if the OS needs help to load dependent libraries for dlopen().])
-fi
-])# AC_LTDL_SYS_DLOPEN_DEPLIBS
-
-
-# AC_LTDL_SHLIBEXT
-# ----------------
-AC_DEFUN([AC_LTDL_SHLIBEXT],
-[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
-AC_CACHE_CHECK([which extension is used for loadable modules],
-  [libltdl_cv_shlibext],
-[
-module=yes
-eval libltdl_cv_shlibext=$shrext_cmds
-  ])
-if test -n "$libltdl_cv_shlibext"; then
-  AC_DEFINE_UNQUOTED([LTDL_SHLIB_EXT], ["$libltdl_cv_shlibext"],
-    [Define to the extension used for shared libraries, say, ".so".])
-fi
-])# AC_LTDL_SHLIBEXT
-
-
-# AC_LTDL_SHLIBPATH
-# -----------------
-AC_DEFUN([AC_LTDL_SHLIBPATH],
-[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
-AC_CACHE_CHECK([which variable specifies run-time library path],
-  [libltdl_cv_shlibpath_var], [libltdl_cv_shlibpath_var="$shlibpath_var"])
-if test -n "$libltdl_cv_shlibpath_var"; then
-  AC_DEFINE_UNQUOTED([LTDL_SHLIBPATH_VAR], ["$libltdl_cv_shlibpath_var"],
-    [Define to the name of the environment variable that determines the dynamic library search path.])
-fi
-])# AC_LTDL_SHLIBPATH
-
-
-# AC_LTDL_SYSSEARCHPATH
-# ---------------------
-AC_DEFUN([AC_LTDL_SYSSEARCHPATH],
-[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
-AC_CACHE_CHECK([for the default library search path],
-  [libltdl_cv_sys_search_path],
-  [libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"])
-if test -n "$libltdl_cv_sys_search_path"; then
-  sys_search_path=
-  for dir in $libltdl_cv_sys_search_path; do
-    if test -z "$sys_search_path"; then
-      sys_search_path="$dir"
-    else
-      sys_search_path="$sys_search_path$PATH_SEPARATOR$dir"
-    fi
-  done
-  AC_DEFINE_UNQUOTED([LTDL_SYSSEARCHPATH], ["$sys_search_path"],
-    [Define to the system default library search path.])
-fi
-])# AC_LTDL_SYSSEARCHPATH
-
-
-# AC_LTDL_OBJDIR
-# --------------
-AC_DEFUN([AC_LTDL_OBJDIR],
-[AC_CACHE_CHECK([for objdir],
-  [libltdl_cv_objdir],
-  [libltdl_cv_objdir="$objdir"
-  if test -n "$objdir"; then
-    :
-  else
-    rm -f .libs 2>/dev/null
-    mkdir .libs 2>/dev/null
-    if test -d .libs; then
-      libltdl_cv_objdir=.libs
-    else
-      # MS-DOS does not allow filenames that begin with a dot.
-      libltdl_cv_objdir=_libs
-    fi
-  rmdir .libs 2>/dev/null
-  fi
-  ])
-AC_DEFINE_UNQUOTED([LTDL_OBJDIR], ["$libltdl_cv_objdir/"],
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# AC_LTDL_OBJDIR
-
-
-# AC_LTDL_DLPREOPEN
-# -----------------
-AC_DEFUN([AC_LTDL_DLPREOPEN],
-[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
-AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
-  [libltdl_cv_preloaded_symbols],
-  [if test -n "$lt_cv_sys_global_symbol_pipe"; then
-    libltdl_cv_preloaded_symbols=yes
-  else
-    libltdl_cv_preloaded_symbols=no
-  fi
-  ])
-if test x"$libltdl_cv_preloaded_symbols" = xyes; then
-  AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1],
-    [Define if libtool can extract symbol lists from object files.])
-fi
-])# AC_LTDL_DLPREOPEN
-
-
-# AC_LTDL_DLLIB
-# -------------
-AC_DEFUN([AC_LTDL_DLLIB],
-[LIBADD_DL=
-AC_SUBST(LIBADD_DL)
-AC_LANG_PUSH([C])
-
-AC_CHECK_FUNC([shl_load],
-      [AC_DEFINE([HAVE_SHL_LOAD], [1],
-		 [Define if you have the shl_load function.])],
-  [AC_CHECK_LIB([dld], [shl_load],
-	[AC_DEFINE([HAVE_SHL_LOAD], [1],
-		   [Define if you have the shl_load function.])
-	LIBADD_DL="$LIBADD_DL -ldld"],
-    [AC_CHECK_LIB([dl], [dlopen],
-	  [AC_DEFINE([HAVE_LIBDL], [1],
-		     [Define if you have the libdl library or equivalent.])
-	        LIBADD_DL="-ldl" libltdl_cv_lib_dl_dlopen="yes"],
-      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
-#  include <dlfcn.h>
-#endif
-      ]], [[dlopen(0, 0);]])],[AC_DEFINE([HAVE_LIBDL], [1],
-		             [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen="yes"],[AC_CHECK_LIB([svld], [dlopen],
-	      [AC_DEFINE([HAVE_LIBDL], [1],
-			 [Define if you have the libdl library or equivalent.])
-	            LIBADD_DL="-lsvld" libltdl_cv_func_dlopen="yes"],
-	  [AC_CHECK_LIB([dld], [dld_link],
-	        [AC_DEFINE([HAVE_DLD], [1],
-			   [Define if you have the GNU dld library.])
-	 	LIBADD_DL="$LIBADD_DL -ldld"],
-	 	[AC_CHECK_FUNC([_dyld_func_lookup],
-	 	       [AC_DEFINE([HAVE_DYLD], [1],
-	 	          [Define if you have the _dyld_func_lookup function.])])
-          ])
-        ])
-      ])
-    ])
-  ])
-])
-
-if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
-then
-  lt_save_LIBS="$LIBS"
-  LIBS="$LIBS $LIBADD_DL"
-  AC_CHECK_FUNCS([dlerror])
-  LIBS="$lt_save_LIBS"
-fi
-AC_LANG_POP
-])# AC_LTDL_DLLIB
-
-
-# AC_LTDL_SYMBOL_USCORE
-# ---------------------
-# does the compiler prefix global symbols with an underscore?
-AC_DEFUN([AC_LTDL_SYMBOL_USCORE],
-[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
-AC_CACHE_CHECK([for _ prefix in compiled symbols],
-  [ac_cv_sys_symbol_underscore],
-  [ac_cv_sys_symbol_underscore=no
-  cat > conftest.$ac_ext <<EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-EOF
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    ac_nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
-      # See whether the symbols have a leading underscore.
-      if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
-        ac_cv_sys_symbol_underscore=yes
-      else
-        if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
-	  :
-        else
-	  echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
-        fi
-      fi
-    else
-      echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.c >&AS_MESSAGE_LOG_FD
-  fi
-  rm -rf conftest*
-  ])
-])# AC_LTDL_SYMBOL_USCORE
-
-
-# AC_LTDL_DLSYM_USCORE
-# --------------------
-AC_DEFUN([AC_LTDL_DLSYM_USCORE],
-[AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])
-if test x"$ac_cv_sys_symbol_underscore" = xyes; then
-  if test x"$libltdl_cv_func_dlopen" = xyes ||
-     test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
-	AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
-	  [libltdl_cv_need_uscore],
-	  [libltdl_cv_need_uscore=unknown
-          save_LIBS="$LIBS"
-          LIBS="$LIBS $LIBADD_DL"
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes],
-	    [],				 [libltdl_cv_need_uscore=cross])
-	  LIBS="$save_LIBS"
-	])
-  fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
-  AC_DEFINE([NEED_USCORE], [1],
-    [Define if dlsym() requires a leading underscore in symbol names.])
-fi
-])# AC_LTDL_DLSYM_USCORE
-
-# AC_LTDL_FUNC_ARGZ
-# -----------------
-AC_DEFUN([AC_LTDL_FUNC_ARGZ],
-[AC_CHECK_HEADERS([argz.h])
-
-AC_CHECK_TYPES([error_t],
-  [],
-  [AC_DEFINE([error_t], [int],
-    [Define to a type to use for `error_t' if it is not otherwise available.])],
-  [#if HAVE_ARGZ_H
-#  include <argz.h>
-#endif])
-
-AC_CHECK_FUNCS([argz_append argz_create_sep argz_insert argz_next argz_stringify])
-])# AC_LTDL_FUNC_ARGZ
diff --git a/support/autoconf/m4/module_support.m4 b/support/autoconf/m4/module_support.m4
deleted file mode 100644
index eedb51c..0000000
--- a/support/autoconf/m4/module_support.m4
+++ /dev/null
@@ -1,120 +0,0 @@
-#
-# Provide the arguments and other processing needed for an LLVM module
-#
-# This script must be used after AC_INIT. It checks various axioms, sets up 
-# various LLVM_MODULE variables, extracts the module's dependencies, validates 
-# the directory is correct, etc.
-AC_DEFUN([THIS_IS_LLVM_MODULE],[
-
-dnl Get the llvm-top directory which is just any directory that contains all 
-dnl the modules and doesn't have to be an llvm-top checked out thing. This is
-dnl important because its how we find all the modules. To support building a
-dnl module in an obtuse place (other than llvm-top) we provide the 
-dnl with-llvm-top=/path/to/llvm/top option to allow the configure script to
-dnl be told where it is. However, the default ".." usually just works.
-  LLVM_TOP=`cd .. ; pwd`
-  AC_ARG_WITH(llvm-top,
-  AS_HELP_STRING([--with-llvm-top],
-                 [Specify where the llvm-top directory is]),,withval=default)
-  case "$withval" in
-    default)  ;; dnl nothing to do, LLVM_TOP already defaulted
-    *) LLVM_TOP=$withval ;;
-  esac
-  if test ! -d "$LLVM_TOP" ; then
-    AC_MSG_ERROR("The LLVM_TOP directory ($LLVM_TOP) is not a directory!")
-  fi
-  AC_SUBST(LLVM_TOP,[$LLVM_TOP])
-
-dnl Make sure we can find the support/autoconf dir .. everything depends on it!
-  if test ! -d "$LLVM_TOP/support/autoconf" ; then
-    AC_MSG_ERROR("Your llvm-top directory needs to have the support module checked out")
-  fi
-
-dnl We have a standardized auxilliary directory in LLVM so that we only need
-dnl one copy of the various tools found there instead of copying them to all
-dnl the modules as well. The support/autoconf directory is specified here as
-dnl the auxilliary directory which must contain install-sh at least.
-  AC_CONFIG_AUX_DIR($LLVM_TOP/support/autoconf)
-
-dnl This stuff is based on autoconf 2.60, enforce it.
-  AC_PREREQ(2.60)
-
-dnl Get the copyright in a substitution variable
-  AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign."])
-
-dnl Declare the copyright to autoconf
-  AC_COPYRIGHT([Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign.])
-
-dnl Set up the LLVM_MODULE_NAME variables. The NAME comes from the argument to 
-dnl this macro and should be the name of the module's directory. We verify that.
-dnl This is necessary because we expect modules to be in a directory that is
-dnl the official name of the modules. If they are not the construction of paths
-dnl can go wrong.
-  LLVM_MODULE_NAME="$1"
-  cwd=`pwd`
-  if test `basename $cwd` != "$1" ; then
-    AC_MSG_ERROR([Module $1 is checked out to $cwd which is not allowed])
-  fi
-  AC_SUBST(LLVM_MODULE_NAME,"$1")
-
-dnl Set up other LLVM_MODULE_* variables that are copies of the values provided
-dnl to the AC_INIT macro. 
-  LLVM_MODULE_FULLNAME="AC_PACKAGE_NAME"
-  LLVM_MODULE_TARNAME="AC_PACKAGE_TARNAME"
-  LLVM_MODULE_VERSION="AC_PACKAGE_VERSION"
-  LLVM_MODULE_BUGREPORT="AC_PACKAGE_BUGREPORT"
-  AC_SUBST(LLVM_MODULE_FULLNAME,"AC_PACKAGE_NAME")
-  AC_SUBST(LLVM_MODULE_TARNAME,"AC_PACKAGE_TARNAME")
-  AC_SUBST(LLVM_MODULE_VERSION,"AC_PACKAGE_VERSION")
-  AC_SUBST(LLVM_MODULE_BUGREPORT,"AC_PACKAGE_BUGREPORT")
-
-dnl We need to know which modules depend on this one. Fortunately, every module
-dnl is required to document that in the ModuleInfo.txt file so we just extract
-dnl it.
-  LLVM_MODULE_DEPENDS_ON=`grep -i "DepModule:" ModuleInfo.txt | \
-    sed -e 's/DepModule: *//g'`
-  for x in $LLVM_MODULE_DEPENDS_ON ; do
-    AC_MSG_NOTICE([$1 depends on $x])
-    dnl we should probably validate the module names, but that would require
-    dnl several round trips via subversion .. slowness.
-  done
-  AC_SUBST(LLVM_MODULE_DEPENDS_ON,"$LLVM_MODULE_DEPENDS_ON")
-  AC_CONFIG_SRCDIR([$2])
-
-dnl The module can have a Makefile.config.in or a Makefile.common.in. In fact, 
-dnl it must have one of the two. Set these up to be configured and check thatw
-dnl we have at least one.
-  has_configured_makefile=0
-  if test -r Makefile.config.in ; then
-    AC_CONFIG_FILES([Makefile.config])
-    has_configured_makefile=1
-  fi
-  if test -r Makefile.common.in ; then
-    AC_CONFIG_FILES([Makefile.common])
-    has_configured_makefile=1
-  fi
-  if test "$has_configured_makefile" -eq 0 ; then
-    AC_MSG_ERROR("Your module is lacking a Makefile.common.in or Makefile.config.in file to hold configured variables")
-  fi
-
-dnl This is a quirky thing. This is basically getting the LLVM_TOP variable 
-dnl into the start of the config.status script which otherwise contains nothing
-dnl from the configure script except things like srcdir and prefix. We need
-dnl this for the CONFIG_LLVM_MAKEFILE which has to find the mkinstalldirs 
-dnl program in the support module's autoconf directory.
-  AC_CONFIG_COMMANDS([setup],,[LLVM_TOP="${LLVM_TOP}"])
-
-dnl Get the approximate time of configuration so it can be substituted
-  LLVM_CONFIGTIME=`date`
-  AC_SUBST(LLVM_CONFIGTIME)
-])
-
-dnl
-dnl Configure a Makefile without clobbering it if it exists and is not out of
-dnl date.  This macro is unique to LLVM.
-dnl
-AC_DEFUN([CONFIG_LLVM_MAKEFILE],
-  [AC_CONFIG_COMMANDS($1,
-    [${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname $1`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/$1 $1])
-])
diff --git a/support/autoconf/m4/need_dev_zero_for_mmap.m4 b/support/autoconf/m4/need_dev_zero_for_mmap.m4
deleted file mode 100644
index 57b3228..0000000
--- a/support/autoconf/m4/need_dev_zero_for_mmap.m4
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# When allocating RWX memory, check whether we need to use /dev/zero
-# as the file descriptor or not.
-#
-AC_DEFUN([AC_NEED_DEV_ZERO_FOR_MMAP],
-[AC_CACHE_CHECK([if /dev/zero is needed for mmap],
-ac_cv_need_dev_zero_for_mmap,
-[if test "$llvm_cv_os_type" = "Interix" ; then
-   ac_cv_need_dev_zero_for_mmap=yes
- else
-   ac_cv_need_dev_zero_for_mmap=no
- fi
-])
-if test "$ac_cv_need_dev_zero_for_mmap" = yes; then
-  AC_DEFINE([NEED_DEV_ZERO_FOR_MMAP],[1],
-   [Define if /dev/zero should be used when mapping RWX memory, or undefine if its not necessary])
-fi])
diff --git a/support/autoconf/m4/path_perl.m4 b/support/autoconf/m4/path_perl.m4
deleted file mode 100644
index 406656c..0000000
--- a/support/autoconf/m4/path_perl.m4
+++ /dev/null
@@ -1,16 +0,0 @@
-dnl Check for a reasonable version of Perl.
-dnl   $1 - Minimum Perl version.  Typically 5.006.
-dnl 
-AC_DEFUN([LLVM_PROG_PERL], [
-AC_PATH_PROG(PERL, [perl], [none])
-if test "$PERL" != "none"; then
-  AC_MSG_CHECKING(for Perl $1 or newer)
-  if $PERL -e 'use $1;' 2>&1 > /dev/null; then
-    AC_MSG_RESULT(yes)
-  else
-    PERL=none
-    AC_MSG_RESULT(not found)
-  fi
-fi
-])
-
diff --git a/support/autoconf/m4/path_tclsh.m4 b/support/autoconf/m4/path_tclsh.m4
deleted file mode 100644
index e0a9d06..0000000
--- a/support/autoconf/m4/path_tclsh.m4
+++ /dev/null
@@ -1,39 +0,0 @@
-dnl This macro checks for tclsh which is required to run dejagnu. On some 
-dnl platforms (notably FreeBSD), tclsh is named tclshX.Y - this handles
-dnl that for us so we can get the latest installed tclsh version.
-dnl 
-AC_DEFUN([DJ_AC_PATH_TCLSH], [
-no_itcl=true
-AC_MSG_CHECKING(for the tclsh program in tclinclude directory)
-AC_ARG_WITH(tclinclude,
-  AS_HELP_STRING([--with-tclinclude],
-                [directory where tcl headers are]), 
-  [with_tclinclude=${withval}],[with_tclinclude=''])
-AC_CACHE_VAL(ac_cv_path_tclsh,[
-dnl first check to see if --with-itclinclude was specified
-if test x"${with_tclinclude}" != x ; then
-  if test -f ${with_tclinclude}/tclsh ; then
-    ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)`
-  elif test -f ${with_tclinclude}/src/tclsh ; then
-    ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)`
-  else
-    AC_MSG_ERROR([${with_tclinclude} directory doesn't contain tclsh])
-  fi
-fi
-
-dnl see if one is installed
-if test x"${ac_cv_path_tclsh}" = x ; then
-  AC_MSG_RESULT(none)
-  AC_PATH_PROGS([TCLSH],[tclsh8.4 tclsh8.4.8 tclsh8.4.7 tclsh8.4.6 tclsh8.4.5 tclsh8.4.4 tclsh8.4.3 tclsh8.4.2 tclsh8.4.1 tclsh8.4.0 tclsh8.3 tclsh8.3.5 tclsh8.3.4 tclsh8.3.3 tclsh8.3.2 tclsh8.3.1 tclsh8.3.0 tclsh])
-  if test x"${TCLSH}" = x ; then
-    ac_cv_path_tclsh='';
-  else
-    ac_cv_path_tclsh="${TCLSH}";
-  fi
-else
-  AC_MSG_RESULT(${ac_cv_path_tclsh})
-  TCLSH="${ac_cv_path_tclsh}"
-  AC_SUBST(TCLSH)
-fi
-])])
-
diff --git a/support/autoconf/m4/rand48.m4 b/support/autoconf/m4/rand48.m4
deleted file mode 100644
index 56705d8..0000000
--- a/support/autoconf/m4/rand48.m4
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# This function determins if the the srand48,drand48,lrand48 functions are
-# available on this platform.
-#
-AC_DEFUN([AC_FUNC_RAND48],[
-AC_SINGLE_CXX_CHECK([ac_cv_func_rand48],   
-                    [srand48/lrand48/drand48], [<stdlib.h>],
-                    [srand48(0);lrand48();drand48();])
-if test "$ac_cv_func_rand48" = "yes" ; then
-AC_DEFINE([HAVE_RAND48],1,[Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h>])
-fi
-])
diff --git a/support/autoconf/m4/sanity_check.m4 b/support/autoconf/m4/sanity_check.m4
deleted file mode 100644
index 639fccc..0000000
--- a/support/autoconf/m4/sanity_check.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-dnl Check a program for version sanity. The test runs a program, passes it an
-dnl argument to make it print out some identification string, and filters that 
-dnl output with a regular expression. If the output is non-empty, the program
-dnl passes the sanity check.
-dnl   $1 - Name or full path of the program to run
-dnl   $2 - Argument to pass to print out identification string
-dnl   $3 - grep RE to match identification string
-dnl   $4 - set to 1 to make errors only a warning
-AC_DEFUN([CHECK_PROGRAM_SANITY],
-[
-AC_MSG_CHECKING([sanity for program ]$1)
-sanity="0"
-sanity_path=`which $1 2>/dev/null`
-if test "$?" -eq 0 -a -x "$sanity_path" ; then
-  sanity=`$1 $2 2>&1 | grep "$3"`
-  if test -z "$sanity" ; then
-    AC_MSG_RESULT([no])
-    sanity="0"
-    if test "$4" -eq 1 ; then
-      AC_MSG_WARN([Program ]$1[ failed to pass sanity check.])
-    else
-      AC_MSG_ERROR([Program ]$1[ failed to pass sanity check.])
-    fi
-  else
-    AC_MSG_RESULT([yes])
-    sanity="1"
-  fi
-else
-  AC_MSG_RESULT([not found])
-fi
-])
diff --git a/support/autoconf/m4/single_cxx_check.m4 b/support/autoconf/m4/single_cxx_check.m4
deleted file mode 100644
index 21efa4b..0000000
--- a/support/autoconf/m4/single_cxx_check.m4
+++ /dev/null
@@ -1,10 +0,0 @@
-dnl AC_SINGLE_CXX_CHECK(CACHEVAR, FUNCTION, HEADER, PROGRAM)
-dnl                     $1,       $2,       $3,     $4,     
-dnl 
-AC_DEFUN([AC_SINGLE_CXX_CHECK],
- [AC_CACHE_CHECK([for $2 in $3], [$1],
-  [AC_LANG_PUSH([C++])
-   AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include $3],[$4]),[$1=yes],[$1=no])
-  AC_LANG_POP([C++])])
- ])
-
diff --git a/support/autoconf/m4/want_feature.m4 b/support/autoconf/m4/want_feature.m4
deleted file mode 100644
index 63a1cac..0000000
--- a/support/autoconf/m4/want_feature.m4
+++ /dev/null
@@ -1,55 +0,0 @@
-dnl Make it easier to use the AC_ARG_ENABLE macro for certain boolean switches
-dnl that turn features on and off.  The arguments are:
-dnl   1 - feature name
-dnl   2 - feature description
-dnl   3 - default value
-AC_DEFUN([LLVM_WANT_FEATURE],[
-  m4_define([allcapsname],translit($1,a-z-,A-Z_))
-  AC_ARG_ENABLE([$1],
-    AS_HELP_STRING([--enable-$1],[$2 ($3)]),,enableval="$3")
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="$3" ;;
-    *) AC_MSG_ERROR([Invalid setting for --enable-$1. Use "yes" or "no"]) ;;
-  esac
-  AC_SUBST([WANT_]allcapsname(),$enableval)
-  want_var=[WANT_]allcapsname()
-  AC_DEFINE_UNQUOTED($want_var,$enableval,[$2])
-])
-
-dnl Make it easier to use the AC_ARG_ENABLE macro for certain numeric switches
-dnl that turn specify levels of support as integer values. The arguments are:
-dnl   1 - feature name
-dnl   2 - feature description
-dnl   3 - default value
-dnl   4 - min value (default 0)
-dnl   5 - max value (default 100)
-AC_DEFUN([LLVM_WANT_LEVEL],[
-  m4_define([allcapsname],translit($1,a-z-,A-Z_))
-  AC_ARG_ENABLE([$1],
-    AS_HELP_STRING([--enable-$1],[$2 ($3)]),,enableval="$3")
-  digits=`echo "$enableval" | sed 's/[^0-9]//'`
-  if test -z "$digits" ; then
-    AC_MSG_ERROR([Expected numeric value for --enable-$1.])
-  fi
-  min="$4"
-  max="$5"
-  if test -z "$min" ; then min="0" ; fi
-  if test -z "$max" ; then max="100" ; fi
-  if test "$enableval" -lt "$min" ; then
-    AC_MSG_ERROR(
-      [Value for --enable-$1 ($enableval) is less than minimum ($min)])
-  fi
-  if test "$enableval" -gt "$max" ; then
-    AC_MSG_ERROR(
-      [Value for --enable-$1 ($enableval) is greater than maximum ($max)])
-  fi
-  AC_SUBST([WANT_]allcapsname(),$enableval)
-  want_var=[WANT_]allcapsname()
-  AC_DEFINE_UNQUOTED($want_var,$enableval,[$2])
-])
diff --git a/support/autoconf/missing b/support/autoconf/missing
deleted file mode 100755
index 64b5f90..0000000
--- a/support/autoconf/missing
+++ /dev/null
@@ -1,353 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-
-scriptversion=2004-09-07.08
-
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
-#   Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
-  exit 1
-fi
-
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
-
-msg="missing on your system"
-
-case "$1" in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
-
-Send bug reports to <bug-automake@gnu.org>."
-    exit 0
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing $scriptversion (GNU Automake)"
-    exit 0
-    ;;
-
-  -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
-    exit 1
-    ;;
-
-esac
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
-  lex|yacc)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  tar)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case "$f" in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  autom4te)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo "#! /bin/sh"
-	echo "# Created by GNU Automake missing as a replacement of"
-	echo "#  $ $@"
-	echo "exit 0"
-	chmod +x $file
-	exit 1
-    fi
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-	case "$LASTARG" in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if [ ! -f y.tab.h ]; then
-	echo >y.tab.h
-    fi
-    if [ ! -f y.tab.c ]; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex|flex)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-	case "$LASTARG" in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if [ -f "$SRCFILE" ]; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if [ ! -f lex.yy.c ]; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-	 you modified a dependency of a manual page.  You may need the
-	 \`Help2man' package in order for those modifications to take
-	 effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo ".ab help2man is required to generate this page"
-	exit 1
-    fi
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
-    fi
-    touch $file
-    ;;
-
-  tar)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-	case "$firstarg" in
-	*o*)
-	    firstarg=`echo "$firstarg" | sed s/o//`
-	    tar "$firstarg" "$@" && exit 0
-	    ;;
-	esac
-	case "$firstarg" in
-	*h*)
-	    firstarg=`echo "$firstarg" | sed s/h//`
-	    tar "$firstarg" "$@" && exit 0
-	    ;;
-	esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/support/autoconf/mkinstalldirs b/support/autoconf/mkinstalldirs
deleted file mode 100755
index 1ee2d58..0000000
--- a/support/autoconf/mkinstalldirs
+++ /dev/null
@@ -1,150 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2004-02-15.20
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit 0
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit 0
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      # echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the `mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because `.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      # echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
-
-for file
-do
-  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-  shift
-
-  pathcomp=
-  for d
-  do
-    pathcomp="$pathcomp$d"
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      # echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-	errstatus=$lasterr
-      else
-	if test ! -z "$dirmode"; then
-	  # echo "chmod $dirmode $pathcomp"
-	  lasterr=""
-	  chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	  if test ! -z "$lasterr"; then
-	    errstatus=$lasterr
-	  fi
-	fi
-      fi
-    fi
-
-    pathcomp="$pathcomp/"
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/support/build-for-llvm-top.sh b/support/build-for-llvm-top.sh
deleted file mode 100755
index cbf499d..0000000
--- a/support/build-for-llvm-top.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-# This includes the Bourne shell library from llvm-top. Since this file is
-# generally only used when building from llvm-top, it is safe to assume that
-# llvm is checked out into llvm-top in which case .. just works.
-if test -z "$LLVM_TOP" ; then
-  . ../library.sh
-else
-  . "$LLVM_TOP/library.sh"
-fi
-
-# Call the library function to process the arguments
-process_arguments "$@"
-
-function add_config_option() {
-  local name="$1"
-  lc=`echo ${name} | tr 'A-Z_' 'a-z-'`
-  if test -z "${!name}" -o "${!name}" -eq 0 ; then
-    config_options="$config_options --disable-$lc"
-  else
-    config_options="$config_options --enable-$lc"
-  fi
-}
-
-# See if we have previously been configured by sensing the presense
-# of the config.status scripts
-if test ! -x "config.status" ; then
-  # We must configure, so build a list of configure options
-  config_options="--config-cache --prefix=$PREFIX --with-llvm-top=$LLVM_TOP"
-  config_options="$config_options --with-destdir='$DESTDIR'"
-  config_options="$config_options $OPTIONS_DASH_DASH"
-  add_config_option ASSERTIONS 
-  add_config_option CHECKING
-  add_config_option DEBUG 
-  add_config_option DOXYGEN
-  add_config_option OPTIMIZED
-  add_config_option OPT_FOR_SIZE
-  add_config_option PROFILING
-  add_config_option STRIPPED
-  add_config_option THREADS
-  add_config_option VERBOSE
-  msg 0 Configuring $module with:
-  msg 0 "  ./configure" $config_options
-  if test "$VERBOSE" -eq 0 ; then
-    config_options="$config_options --quiet"
-  fi
-  ./configure $config_options || (echo "Can't configure llvm" ; exit 1)
-fi
-
-msg 0 Building $MODULE with:
-msg 0 "  make" $build_opts
-make $build_opts
diff --git a/support/configure b/support/configure
deleted file mode 100755
index e03be7c..0000000
--- a/support/configure
+++ /dev/null
@@ -1,32878 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for LLVM Support Module 2.1svn.
-#
-# Report bugs to <http://llvm.org/bugs>.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-#
-# Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign.
-## --------------------- ##
-## 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=:
-  # 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
-
-
-
-
-# PATH needs CR
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-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.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-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
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes && 	 (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-	   done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-	 # Try only shells that exist, to save several forks.
-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # 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
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # 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_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  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" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (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
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-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
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    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
-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=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-	case $1 in
-        -*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
-       echo_test_string=`eval $cmd` &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "$0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-tagnames=${tagnames+${tagnames},}CXX
-
-tagnames=${tagnames+${tagnames},}F77
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, 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=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME='LLVM Support Module'
-PACKAGE_TARNAME='llvm-support'
-PACKAGE_VERSION='2.1svn'
-PACKAGE_STRING='LLVM Support Module 2.1svn'
-PACKAGE_BUGREPORT='http://llvm.org/bugs'
-
-ac_unique_file=""
-ac_unique_file="lib/System/Path.cpp"
-# 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_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-LLVM_TOP
-LLVM_COPYRIGHT
-LLVM_MODULE_NAME
-LLVM_MODULE_FULLNAME
-LLVM_MODULE_TARNAME
-LLVM_MODULE_VERSION
-LLVM_MODULE_BUGREPORT
-LLVM_MODULE_DEPENDS_ON
-LLVM_CONFIGTIME
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-target
-target_cpu
-target_vendor
-target_os
-OS
-LINKALL
-NOLINKALL
-LLVM_ON_UNIX
-LLVM_ON_WIN32
-ARCH
-ENDIAN
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-CPP
-GREP
-EGREP
-LLVM_CROSS_COMPILING
-BUILD_CC
-BUILD_EXEEXT
-SVNBUILD
-WANT_ASSERTIONS
-WANT_DEBUG
-WANT_DOXYGEN
-WANT_CHECKING
-WANT_OPTIMIZED
-WANT_OPT_FOR_SIZE
-WANT_PROFILING
-WANT_GENERATE_PIC
-WANT_STRIPPED
-WANT_THREADS
-WANT_VERBOSE
-DESTDIR
-EXTRA_OPTIONS
-TARGETS_TO_BUILD
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-CXX
-CXXFLAGS
-ac_ct_CXX
-LEX
-LEX_OUTPUT_ROOT
-LEXLIB
-FLEX
-YACC
-YFLAGS
-BISON
-RANLIB
-LN_S
-NM
-ifGNUmake
-BINPWD
-BZIP2
-CMP
-CP
-DOXYGEN
-DATE
-DOT
-DOTTY
-FIND
-GRAPHVIZ
-GROFF
-GV
-GZIP
-MKDIR
-MV
-POD2HTML
-POD2MAN
-RM
-RUNTEST
-SED
-TAR
-ZIP
-TCLSH
-PERL
-HAVE_PERL
-INSTALL_LTDL_TRUE
-INSTALL_LTDL_FALSE
-CONVENIENCE_LTDL_TRUE
-CONVENIENCE_LTDL_FALSE
-LIBADD_DL
-ECHO
-AR
-STRIP
-CXXCPP
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
-ETAGSFLAGS
-LLVMGCC
-LLVMGXX
-USE_UDIS86
-HAVE_PTHREAD_
-HUGE_VAL_SANITY
-ALLOCA
-MMAP_FILE
-SHLIBEXT
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files=''
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-YACC
-YFLAGS
-CXXCPP
-F77
-FFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)	ac_optarg=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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=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 ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      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'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-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
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
-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
-    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 .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
-
-
-# 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 -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
-    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 .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
-	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 LLVM Support Module 2.1svn 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/llvm-support]
-  --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]
-  --target=TARGET   configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of LLVM Support Module 2.1svn:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-assertions     Compile with assertion checks enabled (yes)
-  --enable-debug          Produce debug symbols in compilation objects (yes)
-  --enable-doxygen        Build doxygen documentation (no)
-  --enable-checking       Compile with expensive checking enabled (no)
-  --enable-optimized      Compile with optimizations enabled (no)
-  --enable-opt-for-size   Optimize for executable size not speed (no)
-  --enable-profiling      Compile with profiling enabled (yes)
-  --enable-generate-pic   Generate position independent code (no)
-  --enable-stripped       Strip symbols from libraries and executables (no)
-  --enable-threads        Use threads if available (yes)
-  --enable-verbose        Show each command executed while building (0)
-  --enable-targets        Build specific host targets:
-                          all,host-only,{target-name} (default=all)
-  --enable-ltdl-install   install libltdl
-  --enable-shared[=PKGS]  build shared libraries
-                          [default=enable_shared_default]
-  --enable-static[=PKGS]  build static libraries
-                          [default=enable_static_default]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation
-                          [default=enable_Fast_install_default]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvm-top         Specify where the llvm-top directory is
-  --with-destdir          Specify the install destination directory
-  --with-extra-options    Specify addtional options to compile LLVM with
-  --with-tclinclude       directory where tcl headers are
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-tags[=TAGS]      include additional configurations [automatic]
-  --with-udis86=<path>    Use udis86 external x86 disassembler library
-
-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    C/C++/Objective 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
-  YACC        The `Yet Another C 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.
-  CXXCPP      C++ preprocessor
-  F77         Fortran 77 compiler command
-  FFLAGS      Fortran 77 compiler flags
-
-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 <http://llvm.org/bugs>.
-_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" || continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`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
-      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
-LLVM Support Module configure 2.1svn
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-
-Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign.
-_ACEOF
-  exit
-fi
-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 LLVM Support Module $as_me 2.1svn, which was
-generated by GNU Autoconf 2.61.  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=.
-  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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$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
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_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
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    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'; { (exit 1); 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
-
-# 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
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  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.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$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,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-
-
-
-  LLVM_TOP=`cd .. ; pwd`
-
-# Check whether --with-llvm-top was given.
-if test "${with_llvm_top+set}" = set; then
-  withval=$with_llvm_top;
-else
-  withval=default
-fi
-
-  case "$withval" in
-    default)  ;;     *) LLVM_TOP=$withval ;;
-  esac
-  if test ! -d "$LLVM_TOP" ; then
-    { { echo "$as_me:$LINENO: error: \"The LLVM_TOP directory ($LLVM_TOP) is not a directory!\"" >&5
-echo "$as_me: error: \"The LLVM_TOP directory ($LLVM_TOP) is not a directory!\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  LLVM_TOP=$LLVM_TOP
-
-
-  if test ! -d "$LLVM_TOP/support/autoconf" ; then
-    { { echo "$as_me:$LINENO: error: \"Your llvm-top directory needs to have the support module checked out\"" >&5
-echo "$as_me: error: \"Your llvm-top directory needs to have the support module checked out\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-
-  ac_aux_dir=
-for ac_dir in $LLVM_TOP/support/autoconf "$srcdir"/$LLVM_TOP/support/autoconf; 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
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $LLVM_TOP/support/autoconf \"$srcdir\"/$LLVM_TOP/support/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $LLVM_TOP/support/autoconf \"$srcdir\"/$LLVM_TOP/support/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-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.
-
-
-
-
-
-  LLVM_COPYRIGHT="Copyright (c) 2003-2007 University of Illinois at Urbana-Champaign."
-
-
-
-
-  LLVM_MODULE_NAME="support"
-  cwd=`pwd`
-  if test `basename $cwd` != "support" ; then
-    { { echo "$as_me:$LINENO: error: Module support is checked out to $cwd which is not allowed" >&5
-echo "$as_me: error: Module support is checked out to $cwd which is not allowed" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  LLVM_MODULE_NAME="support"
-
-
-  LLVM_MODULE_FULLNAME="LLVM Support Module"
-  LLVM_MODULE_TARNAME="llvm-support"
-  LLVM_MODULE_VERSION="2.1svn"
-  LLVM_MODULE_BUGREPORT="http://llvm.org/bugs"
-  LLVM_MODULE_FULLNAME="LLVM Support Module"
-
-  LLVM_MODULE_TARNAME="llvm-support"
-
-  LLVM_MODULE_VERSION="2.1svn"
-
-  LLVM_MODULE_BUGREPORT="http://llvm.org/bugs"
-
-
-  LLVM_MODULE_DEPENDS_ON=`grep -i "DepModule:" ModuleInfo.txt | \
-    sed -e 's/DepModule: *//g'`
-  for x in $LLVM_MODULE_DEPENDS_ON ; do
-    { echo "$as_me:$LINENO: support depends on $x" >&5
-echo "$as_me: support depends on $x" >&6;}
-          done
-  LLVM_MODULE_DEPENDS_ON="$LLVM_MODULE_DEPENDS_ON"
-
-
-
-  has_configured_makefile=0
-  if test -r Makefile.config.in ; then
-    ac_config_files="$ac_config_files Makefile.config"
-
-    has_configured_makefile=1
-  fi
-  if test -r Makefile.common.in ; then
-    ac_config_files="$ac_config_files Makefile.common"
-
-    has_configured_makefile=1
-  fi
-  if test "$has_configured_makefile" -eq 0 ; then
-    { { echo "$as_me:$LINENO: error: \"Your module is lacking a Makefile.common.in or Makefile.config.in file to hold configured variables\"" >&5
-echo "$as_me: error: \"Your module is lacking a Makefile.common.in or Makefile.config.in file to hold configured variables\"" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-
-  ac_config_commands="$ac_config_commands setup"
-
-
-  LLVM_CONFIGTIME=`date`
-
-
-
-
-
-if test ${srcdir} != "." ; then
-  if test -f ${srcdir}/include/llvm/Config/config.h ; then
-    { { echo "$as_me:$LINENO: error: Already configured in ${srcdir}" >&5
-echo "$as_me: error: Already configured in ${srcdir}" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-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
-
-
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-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
-
-
-{ echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
-if test "${ac_cv_target+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
-else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-echo "$as_me: error: invalid value of canonical target" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-
-{ echo "$as_me:$LINENO: checking type of operating system we're going to host on" >&5
-echo $ECHO_N "checking type of operating system we're going to host on... $ECHO_C" >&6; }
-if test "${llvm_cv_os_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $host in
-  *-*-aix*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="AIX"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-irix*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="IRIX"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-cygwin*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Cygwin"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-darwin*)
-    llvm_cv_link_all_option="-Wl,-all_load"
-    llvm_cv_link_all_option="-Wl,-noall_load"
-    llvm_cv_os_type="Darwin"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-freebsd*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="FreeBSD"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-openbsd*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="OpenBSD"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-netbsd*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="NetBSD"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-hpux*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="HP-UX"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-interix*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Interix"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-linux*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Linux"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-solaris*)
-    llvm_cv_link_all_option="-Wl,-z,allextract"
-    llvm_cv_no_link_all_option="-Wl,-z,defaultextract"
-    llvm_cv_os_type="SunOS"
-    llvm_cv_platform_type="Unix" ;;
-  *-*-win32*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="Win32"
-    llvm_cv_platform_type="Win32" ;;
-  *-*-mingw*)
-    llvm_cv_link_all_option="-Wl,--whole-archive"
-    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
-    llvm_cv_os_type="MingW"
-    llvm_cv_platform_type="Win32" ;;
-  *)
-    llvm_cv_link_all_option=""
-    llvm_cv_no_link_all_option=""
-    llvm_cv_os_type="Unknown"
-    llvm_cv_platform_type="Unknown" ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $llvm_cv_os_type" >&5
-echo "${ECHO_T}$llvm_cv_os_type" >&6; }
-
-if test "$llvm_cv_os_type" = "Unknown" ; then
-  { { echo "$as_me:$LINENO: error: Operating system is unknown, configure can't continue" >&5
-echo "$as_me: error: Operating system is unknown, configure can't continue" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-OS=$llvm_cv_os_type
-
-
-LINKALL=$llvm_cv_link_all_option
-
-NOLINKALL=$llvm_cv_no_link_all_option
-
-
-case $llvm_cv_platform_type in
-  Unix)
-
-cat >>confdefs.h <<\_ACEOF
-#define LLVM_ON_UNIX 1
-_ACEOF
-
-    LLVM_ON_UNIX=1
-
-    LLVM_ON_WIN32=0
-
-    ;;
-  Win32)
-
-cat >>confdefs.h <<\_ACEOF
-#define LLVM_ON_WIN32 1
-_ACEOF
-
-    LLVM_ON_UNIX=0
-
-    LLVM_ON_WIN32=1
-
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking target architecture" >&5
-echo $ECHO_N "checking target architecture... $ECHO_C" >&6; }
-if test "${llvm_cv_target_arch+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $target in
-  i?86-*)                 llvm_cv_target_arch="x86" ;;
-  amd64-* | x86_64-*)     llvm_cv_target_arch="x86_64" ;;
-  sparc*-*)               llvm_cv_target_arch="Sparc" ;;
-  powerpc*-*)             llvm_cv_target_arch="PowerPC" ;;
-  alpha*-*)               llvm_cv_target_arch="Alpha" ;;
-  ia64-*)                 llvm_cv_target_arch="IA64" ;;
-  arm-*)                  llvm_cv_target_arch="ARM" ;;
-  *)                      llvm_cv_target_arch="Unknown" ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $llvm_cv_target_arch" >&5
-echo "${ECHO_T}$llvm_cv_target_arch" >&6; }
-
-if test "$llvm_cv_target_arch" = "Unknown" ; then
-  { echo "$as_me:$LINENO: WARNING: Configuring LLVM for an unknown target archicture" >&5
-echo "$as_me: WARNING: Configuring LLVM for an unknown target archicture" >&2;}
-fi
-
-ARCH=$llvm_cv_target_arch
-
-
-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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    * ) ac_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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# 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 | *.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
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# 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 | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	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
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-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
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$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
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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"
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-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)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
-  xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-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
-
-
-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
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f 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
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  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
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    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
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  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
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    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
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-
-   fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-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=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if  ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \
-	&& BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN)
- bogus endian macros
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_c_bigendian=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	# It does not; compile a test program.
-if test "$cross_compiling" = yes; then
-  # try to guess the endianness by grepping values into an object file
-  ac_cv_c_bigendian=unknown
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
-short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
-int
-main ()
-{
- _ascii (); _ebcdic ();
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
-  ac_cv_c_bigendian=yes
-fi
-if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-  if test "$ac_cv_c_bigendian" = unknown; then
-    ac_cv_c_bigendian=no
-  else
-    # finding both strings is unlikely to happen, but who knows?
-    ac_cv_c_bigendian=unknown
-  fi
-fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long int l;
-    char c[sizeof (long int)];
-  } u;
-  u.l = 1;
-  return u.c[sizeof (long int) - 1] == 1;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_bigendian=no
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6; }
-case $ac_cv_c_bigendian in
-  yes)
-    ENDIAN=big
- ;;
-  no)
-    ENDIAN=little
- ;;
-  *)
-    { { echo "$as_me:$LINENO: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-echo "$as_me: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-
-
-if test "$cross_compiling" = yes; then
-  LLVM_CROSS_COMPILING=1
-
-
-{ echo "$as_me:$LINENO: checking for executable suffix on build platform" >&5
-echo $ECHO_N "checking for executable suffix on build platform... $ECHO_C" >&6; }
-if test "${ac_cv_build_exeext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
-  ac_cv_build_exeext=.exe
-else
-  ac_build_prefix=${build_alias}-
-
-  # Extract the first word of "${ac_build_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_build_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$BUILD_CC"; then
-  ac_cv_prog_BUILD_CC="$BUILD_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_BUILD_CC="${ac_build_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-BUILD_CC=$ac_cv_prog_BUILD_CC
-if test -n "$BUILD_CC"; then
-  { echo "$as_me:$LINENO: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  if test -z "$BUILD_CC"; then
-     # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$BUILD_CC"; then
-  ac_cv_prog_BUILD_CC="$BUILD_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_BUILD_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-BUILD_CC=$ac_cv_prog_BUILD_CC
-if test -n "$BUILD_CC"; then
-  { echo "$as_me:$LINENO: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-     if test -z "$BUILD_CC"; then
-       # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$BUILD_CC"; then
-  ac_cv_prog_BUILD_CC="$BUILD_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_BUILD_CC="cc"
-    echo "$as_me:$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_BUILD_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 BUILD_CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_BUILD_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-BUILD_CC=$ac_cv_prog_BUILD_CC
-if test -n "$BUILD_CC"; then
-  { echo "$as_me:$LINENO: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-     fi
-  fi
-  test -z "$BUILD_CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
-echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-  ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-  rm -f conftest*
-  echo 'int main () { return 0; }' > conftest.$ac_ext
-  ac_cv_build_exeext=
-  if { (eval echo "$as_me:$LINENO: \"$ac_build_link\"") >&5
-  (eval $ac_build_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    for file in conftest.*; do
-      case $file in
-      *.c | *.o | *.obj) ;;
-      *) ac_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
-      esac
-    done
-  else
-    { { echo "$as_me:$LINENO: error: installation or configuration problem: compiler cannot create executables." >&5
-echo "$as_me: error: installation or configuration problem: compiler cannot create executables." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  rm -f conftest*
-  test x"${ac_cv_build_exeext}" = x && ac_cv_build_exeext=blank
-fi
-fi
-
-BUILD_EXEEXT=""
-test x"${ac_cv_build_exeext}" != xblank && BUILD_EXEEXT=${ac_cv_build_exeext}
-{ echo "$as_me:$LINENO: result: ${ac_cv_build_exeext}" >&5
-echo "${ECHO_T}${ac_cv_build_exeext}" >&6; }
-ac_build_exeext=$BUILD_EXEEXT
-
-else
-  LLVM_CROSS_COMPILING=0
-
-fi
-
-if test -d ".svn" -o -d "${srcdir}/.svn" -o -d "CVS" -o -d "${srcdir}/CVS"; then
-  svnbuild="yes"
-  optimize="no"
-  SVNBUILD=SVNBUILD=1
-
-else
-  svnbuild="no"
-  optimize="yes"
-fi
-
-
-
-
-  # Check whether --enable-assertions was given.
-if test "${enable_assertions+set}" = set; then
-  enableval=$enable_assertions;
-else
-  enableval="yes"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="yes" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-assertions. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-assertions. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_ASSERTIONS=$enableval
-
-  want_var=WANT_ASSERTIONS
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval=$enable_debug;
-else
-  enableval="yes"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="yes" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-debug. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-debug. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_DEBUG=$enableval
-
-  want_var=WANT_DEBUG
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-doxygen was given.
-if test "${enable_doxygen+set}" = set; then
-  enableval=$enable_doxygen;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-doxygen. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-doxygen. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_DOXYGEN=$enableval
-
-  want_var=WANT_DOXYGEN
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-checking was given.
-if test "${enable_checking+set}" = set; then
-  enableval=$enable_checking;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-checking. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-checking. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_CHECKING=$enableval
-
-  want_var=WANT_CHECKING
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-optimized was given.
-if test "${enable_optimized+set}" = set; then
-  enableval=$enable_optimized;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-optimized. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-optimized. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_OPTIMIZED=$enableval
-
-  want_var=WANT_OPTIMIZED
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-opt-for-size was given.
-if test "${enable_opt_for_size+set}" = set; then
-  enableval=$enable_opt_for_size;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-opt-for-size. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-opt-for-size. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_OPT_FOR_SIZE=$enableval
-
-  want_var=WANT_OPT_FOR_SIZE
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-profiling was given.
-if test "${enable_profiling+set}" = set; then
-  enableval=$enable_profiling;
-else
-  enableval="yes"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="yes" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-profiling. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-profiling. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_PROFILING=$enableval
-
-  want_var=WANT_PROFILING
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-generate-pic was given.
-if test "${enable_generate_pic+set}" = set; then
-  enableval=$enable_generate_pic;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-generate-pic. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-generate-pic. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_GENERATE_PIC=$enableval
-
-  want_var=WANT_GENERATE_PIC
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-stripped was given.
-if test "${enable_stripped+set}" = set; then
-  enableval=$enable_stripped;
-else
-  enableval="no"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="no" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-stripped. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-stripped. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_STRIPPED=$enableval
-
-  want_var=WANT_STRIPPED
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-threads was given.
-if test "${enable_threads+set}" = set; then
-  enableval=$enable_threads;
-else
-  enableval="yes"
-fi
-
-  case "$enableval" in
-    yes)     enableval="1" ;;
-    no)      enableval="0" ;;
-    on)      enableval="1" ;;
-    off)     enableval="0" ;;
-    in)      enableval="1" ;;
-    out)     enableval="0" ;;
-    default) enableval="yes" ;;
-    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-threads. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-threads. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-  esac
-  WANT_THREADS=$enableval
-
-  want_var=WANT_THREADS
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-  # Check whether --enable-verbose was given.
-if test "${enable_verbose+set}" = set; then
-  enableval=$enable_verbose;
-else
-  enableval="0"
-fi
-
-  digits=`echo "$enableval" | sed 's/^0-9//'`
-  if test -z "$digits" ; then
-    { { echo "$as_me:$LINENO: error: Expected numeric value for --enable-verbose." >&5
-echo "$as_me: error: Expected numeric value for --enable-verbose." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  min="0"
-  max="3"
-  if test -z "$min" ; then min="0" ; fi
-  if test -z "$max" ; then max="100" ; fi
-  if test "$enableval" -lt "$min" ; then
-    { { echo "$as_me:$LINENO: error: Value for --enable-verbose ($enableval) is less than minimum ($min)" >&5
-echo "$as_me: error: Value for --enable-verbose ($enableval) is less than minimum ($min)" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  if test "$enableval" -gt "$max" ; then
-    { { echo "$as_me:$LINENO: error: Value for --enable-verbose ($enableval) is greater than maximum ($max)" >&5
-echo "$as_me: error: Value for --enable-verbose ($enableval) is greater than maximum ($max)" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  WANT_VERBOSE=$enableval
-
-  want_var=WANT_VERBOSE
-
-cat >>confdefs.h <<_ACEOF
-#define $want_var $enableval
-_ACEOF
-
-
-
-
-# Check whether --with-llvm-top was given.
-if test "${with_llvm_top+set}" = set; then
-  withval=$with_llvm_top;
-else
-  withval=default
-fi
-
-case "$withval" in
-  default)  LLVM_TOP=`cd .. ; pwd` ;;
-  *)        LLVM_TOP=$withval ;;
-esac
-LLVM_TOP=$LLVM_TOP
-
-
-
-# Check whether --with-destdir was given.
-if test "${with_destdir+set}" = set; then
-  withval=$with_destdir;
-else
-  withval=default
-fi
-
-case "$withval" in
-  default)  DESTDIR="" ;;
-  *)        DESTDIR=$withval ;;
-esac
-DESTDIR=$DESTDIR
-
-
-
-# Check whether --with-extra-options was given.
-if test "${with_extra_options+set}" = set; then
-  withval=$with_extra_options;
-else
-  withval=default
-fi
-
-case "$withval" in
-  default) EXTRA_OPTIONS="" ;;
-  *) EXTRA_OPTIONS=$withval ;;
-esac
-EXTRA_OPTIONS=$EXTRA_OPTIONS
-
-
-TARGETS_TO_BUILD=""
-# Check whether --enable-targets was given.
-if test "${enable_targets+set}" = set; then
-  enableval=$enable_targets;
-else
-  enableval=all
-fi
-
-case "$enableval" in
-  all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha IA64 ARM MIPS" ;;
-  host-only)
-    case "$llvm_cv_target_arch" in
-      x86)     TARGETS_TO_BUILD="X86" ;;
-      x86_64)  TARGETS_TO_BUILD="X86" ;;
-      Sparc)   TARGETS_TO_BUILD="Sparc" ;;
-      PowerPC) TARGETS_TO_BUILD="PowerPC" ;;
-      Alpha)   TARGETS_TO_BUILD="Alpha" ;;
-      IA64)    TARGETS_TO_BUILD="IA64" ;;
-      ARM)     TARGETS_TO_BUILD="ARM" ;;
-      MIPS)    TARGETS_TO_BUILD="MIPS" ;;
-      *)       { { echo "$as_me:$LINENO: error: Can not set target to build" >&5
-echo "$as_me: error: Can not set target to build" >&2;}
-   { (exit 1); exit 1; }; } ;;
-    esac
-    ;;
-  *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do
-      case "$a_target" in
-        x86)     TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
-        x86_64)  TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
-        sparc)   TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;;
-        powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;;
-        alpha)   TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;;
-        ia64)    TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;;
-        arm)     TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;;
-        mips)    TARGETS_TO_BUILD="MIPS $TARGETS_TO_BUILD" ;;
-        *) { { echo "$as_me:$LINENO: error: Unrecognized target $a_target" >&5
-echo "$as_me: error: Unrecognized target $a_target" >&2;}
-   { (exit 1); exit 1; }; } ;;
-      esac
-  done
-  ;;
-esac
-TARGETS_TO_BUILD="CBackend MSIL $TARGETS_TO_BUILD"
-TARGETS_TO_BUILD=$TARGETS_TO_BUILD
-
-
-
-# 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.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	    break 3
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-done
-IFS=$as_save_IFS
-
-
-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
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$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'
-
-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
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f 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
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-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=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
-  for ac_prog in gcc
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in gcc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	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
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-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
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$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
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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"
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-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)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
-  xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-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
-
-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++
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CXXFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-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
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$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
-
-{ echo "$as_me:$LINENO: checking " >&5
-echo $ECHO_N "checking ... $ECHO_C" >&6; }
-if test "${ac_cv_has_flex+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_LEX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$LEX conftest.l") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6; }
-if test "${ac_cv_prog_lex_root+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6; }
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test -z "${LEXLIB+set}"; then
-  { echo "$as_me:$LINENO: checking lex library" >&5
-echo $ECHO_N "checking lex library... $ECHO_C" >&6; }
-if test "${ac_cv_lib_lex+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_lex=$ac_lib
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-      test "$ac_cv_lib_lex" != 'none needed' && break
-    done
-    LIBS=$ac_save_LIBS
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5
-echo "${ECHO_T}$ac_cv_lib_lex" >&6; }
-  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6; }
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-#define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_prog_lex_yytext_pointer=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define YYTEXT_POINTER 1
-_ACEOF
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_has_flex" >&5
-echo "${ECHO_T}$ac_cv_has_flex" >&6; }
-if test "$LEX" != "flex"; then
-  { { echo "$as_me:$LINENO: error: flex not found but required" >&5
-echo "$as_me: error: flex not found but required" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  FLEX=flex
-
-fi
-
-{ echo "$as_me:$LINENO: checking " >&5
-echo $ECHO_N "checking ... $ECHO_C" >&6; }
-if test "${llvm_cv_has_bison+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_YACC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $YACC" >&5
-echo "${ECHO_T}$YACC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-fi
-{ echo "$as_me:$LINENO: result: $llvm_cv_has_bison" >&5
-echo "${ECHO_T}$llvm_cv_has_bison" >&6; }
-if test "$YACC" != "bison -y"; then
-
-  { echo "$as_me:$LINENO: WARNING: bison not found, can't rebuild grammars" >&5
-echo "$as_me: WARNING: bison not found, can't rebuild grammars" >&2;}
-else
-  BISON=bison
-
-fi
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
-NM="$lt_cv_path_NM"
-
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking for GNU make" >&5
-echo $ECHO_N "checking for GNU make... $ECHO_C" >&6; }
-if test "${llvm_cv_gnu_make_command+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  llvm_cv_gnu_make_command=''
- for a in "$MAKE" make gmake gnumake ; do
-  if test -z "$a" ; then continue ; fi ;
-  if  ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )
-  then
-   llvm_cv_gnu_make_command=$a ;
-   break;
-  fi
- done
-fi
-{ echo "$as_me:$LINENO: result: $llvm_cv_gnu_make_command" >&5
-echo "${ECHO_T}$llvm_cv_gnu_make_command" >&6; }
- if test "x$llvm_cv_gnu_make_command" != "x"  ; then
-   ifGNUmake='' ;
- else
-   ifGNUmake='#' ;
-   { echo "$as_me:$LINENO: result: \"Not found\"" >&5
-echo "${ECHO_T}\"Not found\"" >&6; };
- fi
-
-
-# Extract the first word of "pwd", so it can be a program name with args.
-set dummy pwd; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_BINPWD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $BINPWD in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_BINPWD="$BINPWD" # 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_BINPWD="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_BINPWD" && ac_cv_path_BINPWD="pwd"
-  ;;
-esac
-fi
-BINPWD=$ac_cv_path_BINPWD
-if test -n "$BINPWD"; then
-  { echo "$as_me:$LINENO: result: $BINPWD" >&5
-echo "${ECHO_T}$BINPWD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "bzip2", so it can be a program name with args.
-set dummy bzip2; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_BZIP2+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $BZIP2 in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_BZIP2="$BZIP2" # 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_BZIP2="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_BZIP2" && ac_cv_path_BZIP2="echo "Skipped: bzip2 not found""
-  ;;
-esac
-fi
-BZIP2=$ac_cv_path_BZIP2
-if test -n "$BZIP2"; then
-  { echo "$as_me:$LINENO: result: $BZIP2" >&5
-echo "${ECHO_T}$BZIP2" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "cmp", so it can be a program name with args.
-set dummy cmp; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_CMP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $CMP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CMP="$CMP" # 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_CMP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_CMP" && ac_cv_path_CMP="cmp"
-  ;;
-esac
-fi
-CMP=$ac_cv_path_CMP
-if test -n "$CMP"; then
-  { echo "$as_me:$LINENO: result: $CMP" >&5
-echo "${ECHO_T}$CMP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "cp", so it can be a program name with args.
-set dummy cp; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_CP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $CP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CP="$CP" # 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_CP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_CP" && ac_cv_path_CP="cp"
-  ;;
-esac
-fi
-CP=$ac_cv_path_CP
-if test -n "$CP"; then
-  { echo "$as_me:$LINENO: result: $CP" >&5
-echo "${ECHO_T}$CP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "doxygen", so it can be a program name with args.
-set dummy doxygen; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_DOXYGEN+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $DOXYGEN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DOXYGEN="$DOXYGEN" # 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_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="echo "Skipped: doxygen not found""
-  ;;
-esac
-fi
-DOXYGEN=$ac_cv_path_DOXYGEN
-if test -n "$DOXYGEN"; then
-  { echo "$as_me:$LINENO: result: $DOXYGEN" >&5
-echo "${ECHO_T}$DOXYGEN" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "date", so it can be a program name with args.
-set dummy date; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_DATE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $DATE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DATE="$DATE" # 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_DATE="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_DATE" && ac_cv_path_DATE="date"
-  ;;
-esac
-fi
-DATE=$ac_cv_path_DATE
-if test -n "$DATE"; then
-  { echo "$as_me:$LINENO: result: $DATE" >&5
-echo "${ECHO_T}$DATE" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "dot", so it can be a program name with args.
-set dummy dot; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_DOT+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $DOT in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DOT="$DOT" # 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_DOT="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_DOT" && ac_cv_path_DOT="echo dot"
-  ;;
-esac
-fi
-DOT=$ac_cv_path_DOT
-if test -n "$DOT"; then
-  { echo "$as_me:$LINENO: result: $DOT" >&5
-echo "${ECHO_T}$DOT" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "dotty", so it can be a program name with args.
-set dummy dotty; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_DOTTY+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $DOTTY in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DOTTY="$DOTTY" # 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_DOTTY="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_DOTTY" && ac_cv_path_DOTTY="echo dotty"
-  ;;
-esac
-fi
-DOTTY=$ac_cv_path_DOTTY
-if test -n "$DOTTY"; then
-  { echo "$as_me:$LINENO: result: $DOTTY" >&5
-echo "${ECHO_T}$DOTTY" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "find", so it can be a program name with args.
-set dummy find; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_FIND+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $FIND in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_FIND="$FIND" # 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_FIND="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_FIND" && ac_cv_path_FIND="find"
-  ;;
-esac
-fi
-FIND=$ac_cv_path_FIND
-if test -n "$FIND"; then
-  { echo "$as_me:$LINENO: result: $FIND" >&5
-echo "${ECHO_T}$FIND" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "grep", so it can be a program name with args.
-set dummy grep; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GREP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GREP="$GREP" # 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_GREP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GREP" && ac_cv_path_GREP="grep"
-  ;;
-esac
-fi
-GREP=$ac_cv_path_GREP
-if test -n "$GREP"; then
-  { echo "$as_me:$LINENO: result: $GREP" >&5
-echo "${ECHO_T}$GREP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "Graphviz", so it can be a program name with args.
-set dummy Graphviz; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_GRAPHVIZ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GRAPHVIZ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GRAPHVIZ="$GRAPHVIZ" # 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_GRAPHVIZ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GRAPHVIZ" && ac_cv_path_GRAPHVIZ="echo Graphviz"
-  ;;
-esac
-fi
-GRAPHVIZ=$ac_cv_path_GRAPHVIZ
-if test -n "$GRAPHVIZ"; then
-  { echo "$as_me:$LINENO: result: $GRAPHVIZ" >&5
-echo "${ECHO_T}$GRAPHVIZ" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "groff", so it can be a program name with args.
-set dummy groff; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_GROFF+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GROFF in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GROFF="$GROFF" # 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_GROFF="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GROFF" && ac_cv_path_GROFF="echo "Skipped: groff not found""
-  ;;
-esac
-fi
-GROFF=$ac_cv_path_GROFF
-if test -n "$GROFF"; then
-  { echo "$as_me:$LINENO: result: $GROFF" >&5
-echo "${ECHO_T}$GROFF" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "gv gsview32", so it can be a program name with args.
-set dummy gv gsview32; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_GV+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GV in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GV="$GV" # 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_GV="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GV" && ac_cv_path_GV="echo gv"
-  ;;
-esac
-fi
-GV=$ac_cv_path_GV
-if test -n "$GV"; then
-  { echo "$as_me:$LINENO: result: $GV" >&5
-echo "${ECHO_T}$GV" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "gzip", so it can be a program name with args.
-set dummy gzip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_GZIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GZIP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GZIP="$GZIP" # 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_GZIP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GZIP" && ac_cv_path_GZIP="echo "Skipped: gzip not found""
-  ;;
-esac
-fi
-GZIP=$ac_cv_path_GZIP
-if test -n "$GZIP"; then
-  { echo "$as_me:$LINENO: result: $GZIP" >&5
-echo "${ECHO_T}$GZIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "mkdir", so it can be a program name with args.
-set dummy mkdir; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_MKDIR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MKDIR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MKDIR="$MKDIR" # 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_MKDIR="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_MKDIR" && ac_cv_path_MKDIR="mkdir"
-  ;;
-esac
-fi
-MKDIR=$ac_cv_path_MKDIR
-if test -n "$MKDIR"; then
-  { echo "$as_me:$LINENO: result: $MKDIR" >&5
-echo "${ECHO_T}$MKDIR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "mv", so it can be a program name with args.
-set dummy mv; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_MV+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MV in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MV="$MV" # 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_MV="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_MV" && ac_cv_path_MV="mv"
-  ;;
-esac
-fi
-MV=$ac_cv_path_MV
-if test -n "$MV"; then
-  { echo "$as_me:$LINENO: result: $MV" >&5
-echo "${ECHO_T}$MV" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "pod2html", so it can be a program name with args.
-set dummy pod2html; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_POD2HTML+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $POD2HTML in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_POD2HTML="$POD2HTML" # 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_POD2HTML="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_POD2HTML" && ac_cv_path_POD2HTML="echo "Skipped: pod2html not found""
-  ;;
-esac
-fi
-POD2HTML=$ac_cv_path_POD2HTML
-if test -n "$POD2HTML"; then
-  { echo "$as_me:$LINENO: result: $POD2HTML" >&5
-echo "${ECHO_T}$POD2HTML" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "pod2man", so it can be a program name with args.
-set dummy pod2man; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_POD2MAN+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $POD2MAN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_POD2MAN="$POD2MAN" # 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_POD2MAN="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_POD2MAN" && ac_cv_path_POD2MAN="echo "Skipped: pod2man not found""
-  ;;
-esac
-fi
-POD2MAN=$ac_cv_path_POD2MAN
-if test -n "$POD2MAN"; then
-  { echo "$as_me:$LINENO: result: $POD2MAN" >&5
-echo "${ECHO_T}$POD2MAN" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_RM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $RM in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RM="$RM" # 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_RM="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_RM" && ac_cv_path_RM="rm"
-  ;;
-esac
-fi
-RM=$ac_cv_path_RM
-if test -n "$RM"; then
-  { echo "$as_me:$LINENO: result: $RM" >&5
-echo "${ECHO_T}$RM" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "runtest", so it can be a program name with args.
-set dummy runtest; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_RUNTEST+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $RUNTEST in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RUNTEST="$RUNTEST" # 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_RUNTEST="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_RUNTEST" && ac_cv_path_RUNTEST="echo "Skipped: runtest not found""
-  ;;
-esac
-fi
-RUNTEST=$ac_cv_path_RUNTEST
-if test -n "$RUNTEST"; then
-  { echo "$as_me:$LINENO: result: $RUNTEST" >&5
-echo "${ECHO_T}$RUNTEST" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "sed", so it can be a program name with args.
-set dummy sed; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $SED in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_SED="$SED" # 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_SED="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_SED" && ac_cv_path_SED="sed"
-  ;;
-esac
-fi
-SED=$ac_cv_path_SED
-if test -n "$SED"; then
-  { echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "tar", so it can be a program name with args.
-set dummy tar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_TAR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $TAR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_TAR="$TAR" # 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_TAR="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="gtar"
-  ;;
-esac
-fi
-TAR=$ac_cv_path_TAR
-if test -n "$TAR"; then
-  { echo "$as_me:$LINENO: result: $TAR" >&5
-echo "${ECHO_T}$TAR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-# Extract the first word of "zip", so it can be a program name with args.
-set dummy zip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_ZIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ZIP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ZIP="$ZIP" # 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_ZIP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_ZIP" && ac_cv_path_ZIP="echo "Skipped: zip not found""
-  ;;
-esac
-fi
-ZIP=$ac_cv_path_ZIP
-if test -n "$ZIP"; then
-  { echo "$as_me:$LINENO: result: $ZIP" >&5
-echo "${ECHO_T}$ZIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-
-no_itcl=true
-{ echo "$as_me:$LINENO: checking for the tclsh program in tclinclude directory" >&5
-echo $ECHO_N "checking for the tclsh program in tclinclude directory... $ECHO_C" >&6; }
-
-# Check whether --with-tclinclude was given.
-if test "${with_tclinclude+set}" = set; then
-  withval=$with_tclinclude; with_tclinclude=${withval}
-else
-  with_tclinclude=''
-fi
-
-if test "${ac_cv_path_tclsh+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test x"${with_tclinclude}" != x ; then
-  if test -f ${with_tclinclude}/tclsh ; then
-    ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)`
-  elif test -f ${with_tclinclude}/src/tclsh ; then
-    ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)`
-  else
-    { { echo "$as_me:$LINENO: error: ${with_tclinclude} directory doesn't contain tclsh" >&5
-echo "$as_me: error: ${with_tclinclude} directory doesn't contain tclsh" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-if test x"${ac_cv_path_tclsh}" = x ; then
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-  for ac_prog in tclsh8.4 tclsh8.4.8 tclsh8.4.7 tclsh8.4.6 tclsh8.4.5 tclsh8.4.4 tclsh8.4.3 tclsh8.4.2 tclsh8.4.1 tclsh8.4.0 tclsh8.3 tclsh8.3.5 tclsh8.3.4 tclsh8.3.3 tclsh8.3.2 tclsh8.3.1 tclsh8.3.0 tclsh
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_TCLSH+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $TCLSH in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_TCLSH="$TCLSH" # 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_TCLSH="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-TCLSH=$ac_cv_path_TCLSH
-if test -n "$TCLSH"; then
-  { echo "$as_me:$LINENO: result: $TCLSH" >&5
-echo "${ECHO_T}$TCLSH" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$TCLSH" && break
-done
-
-  if test x"${TCLSH}" = x ; then
-    ac_cv_path_tclsh='';
-  else
-    ac_cv_path_tclsh="${TCLSH}";
-  fi
-else
-  { echo "$as_me:$LINENO: result: ${ac_cv_path_tclsh}" >&5
-echo "${ECHO_T}${ac_cv_path_tclsh}" >&6; }
-  TCLSH="${ac_cv_path_tclsh}"
-
-fi
-
-fi
-
-
-if test "$GRAPHVIZ" != "echo Graphviz" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GRAPHVIZ 1
-_ACEOF
-
-    if test "$llvm_cv_os_type" = "MingW" ; then
-    GRAPHVIZ=`echo $GRAPHVIZ | sed 's/^\/\([A-Za-z]\)\//\1:\//' `
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define LLVM_PATH_GRAPHVIZ "$GRAPHVIZ${EXEEXT}"
-_ACEOF
-
-fi
-if test "$DOT" != "echo dot" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DOT 1
-_ACEOF
-
-    if test "$llvm_cv_os_type" = "MingW" ; then
-    DOT=`echo $DOT | sed 's/^\/\([A-Za-z]\)\//\1:\//' `
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define LLVM_PATH_DOT "$DOT${EXEEXT}"
-_ACEOF
-
-fi
-if test "$GV" != "echo gv" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GV 1
-_ACEOF
-
-    if test "$llvm_cv_os_type" = "MingW" ; then
-    GV=`echo $GV | sed 's/^\/\([A-Za-z]\)\//\1:\//' `
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define LLVM_PATH_GV "$GV${EXEEXT}"
-_ACEOF
-
-fi
-if test "$DOTTY" != "echo dotty" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DOTTY 1
-_ACEOF
-
-    if test "$llvm_cv_os_type" = "MingW" ; then
-    DOTTY=`echo $DOTTY | sed 's/^\/\([A-Za-z]\)\//\1:\//' `
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define LLVM_PATH_DOTTY "$DOTTY${EXEEXT}"
-_ACEOF
-
-fi
-
-
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $PERL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="none"
-  ;;
-esac
-fi
-PERL=$ac_cv_path_PERL
-if test -n "$PERL"; then
-  { echo "$as_me:$LINENO: result: $PERL" >&5
-echo "${ECHO_T}$PERL" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-if test "$PERL" != "none"; then
-  { echo "$as_me:$LINENO: checking for Perl 5.006 or newer" >&5
-echo $ECHO_N "checking for Perl 5.006 or newer... $ECHO_C" >&6; }
-  if $PERL -e 'use 5.006;' 2>&1 > /dev/null; then
-    { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-  else
-    PERL=none
-    { echo "$as_me:$LINENO: result: not found" >&5
-echo "${ECHO_T}not found" >&6; }
-  fi
-fi
-
-
-if test x"$PERL" = xnone; then
-   HAVE_PERL=0
-
-   { { echo "$as_me:$LINENO: error: perl is required but was not found, please install it" >&5
-echo "$as_me: error: perl is required but was not found, please install it" >&2;}
-   { (exit 1); exit 1; }; }
-else
-   HAVE_PERL=1
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for compiler -Wl,-R<path> option" >&5
-echo $ECHO_N "checking for compiler -Wl,-R<path> option... $ECHO_C" >&6; }
-if test "${llvm_cv_link_use_r+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-
-  oldcflags="$CFLAGS"
-  CFLAGS="$CFLAGS -Wl,-R."
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-int main() { return 0; }
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  llvm_cv_link_use_r=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	llvm_cv_link_use_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-  CFLAGS="$oldcflags"
-  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
-{ echo "$as_me:$LINENO: result: $llvm_cv_link_use_r" >&5
-echo "${ECHO_T}$llvm_cv_link_use_r" >&6; }
-if test "$llvm_cv_link_use_r" = yes ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LINK_R 1
-_ACEOF
-
-  fi
-
-
-
-
-{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; }
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset cs;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *pcpcc;
-  char **ppc;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  pcpcc = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++pcpcc;
-  ppc = (char**) pcpcc;
-  pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-    if (s) return 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-    if (!foo) return 0;
-  }
-  return !cs[0] && !zero.x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_const=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_c_const=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-
-
-
-
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
-  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
-echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_opendir=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
-  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_opendir=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-# Check whether --enable-ltdl-install was given.
-if test "${enable_ltdl_install+set}" = set; then
-  enableval=$enable_ltdl_install;
-fi
-
-
-
-
-if test x"${enable_ltdl_install-no}" != xno; then
-  INSTALL_LTDL_TRUE=
-  INSTALL_LTDL_FALSE='#'
-else
-  INSTALL_LTDL_TRUE='#'
-  INSTALL_LTDL_FALSE=
-fi
-
-
-
-if test x"${enable_ltdl_convenience-no}" != xno; then
-  CONVENIENCE_LTDL_TRUE=
-  CONVENIENCE_LTDL_FALSE='#'
-else
-  CONVENIENCE_LTDL_TRUE='#'
-  CONVENIENCE_LTDL_FALSE=
-fi
-
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$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
-
-
-{ echo "$as_me:$LINENO: checking which extension is used for loadable modules" >&5
-echo $ECHO_N "checking which extension is used for loadable modules... $ECHO_C" >&6; }
-if test "${libltdl_cv_shlibext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-module=yes
-eval libltdl_cv_shlibext=$shrext_cmds
-
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_shlibext" >&5
-echo "${ECHO_T}$libltdl_cv_shlibext" >&6; }
-if test -n "$libltdl_cv_shlibext"; then
-
-cat >>confdefs.h <<_ACEOF
-#define LTDL_SHLIB_EXT "$libltdl_cv_shlibext"
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking which variable specifies run-time library path" >&5
-echo $ECHO_N "checking which variable specifies run-time library path... $ECHO_C" >&6; }
-if test "${libltdl_cv_shlibpath_var+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  libltdl_cv_shlibpath_var="$shlibpath_var"
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_shlibpath_var" >&5
-echo "${ECHO_T}$libltdl_cv_shlibpath_var" >&6; }
-if test -n "$libltdl_cv_shlibpath_var"; then
-
-cat >>confdefs.h <<_ACEOF
-#define LTDL_SHLIBPATH_VAR "$libltdl_cv_shlibpath_var"
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for the default library search path" >&5
-echo $ECHO_N "checking for the default library search path... $ECHO_C" >&6; }
-if test "${libltdl_cv_sys_search_path+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_sys_search_path" >&5
-echo "${ECHO_T}$libltdl_cv_sys_search_path" >&6; }
-if test -n "$libltdl_cv_sys_search_path"; then
-  sys_search_path=
-  for dir in $libltdl_cv_sys_search_path; do
-    if test -z "$sys_search_path"; then
-      sys_search_path="$dir"
-    else
-      sys_search_path="$sys_search_path$PATH_SEPARATOR$dir"
-    fi
-  done
-
-cat >>confdefs.h <<_ACEOF
-#define LTDL_SYSSEARCHPATH "$sys_search_path"
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
-if test "${libltdl_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  libltdl_cv_objdir="$objdir"
-  if test -n "$objdir"; then
-    :
-  else
-    rm -f .libs 2>/dev/null
-    mkdir .libs 2>/dev/null
-    if test -d .libs; then
-      libltdl_cv_objdir=.libs
-    else
-      # MS-DOS does not allow filenames that begin with a dot.
-      libltdl_cv_objdir=_libs
-    fi
-  rmdir .libs 2>/dev/null
-  fi
-
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_objdir" >&5
-echo "${ECHO_T}$libltdl_cv_objdir" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define LTDL_OBJDIR "$libltdl_cv_objdir/"
-_ACEOF
-
-
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDGIRSTW]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  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
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, 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.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-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
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
-else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether libtool supports -dlopen/-dlpreopen" >&5
-echo $ECHO_N "checking whether libtool supports -dlopen/-dlpreopen... $ECHO_C" >&6; }
-if test "${libltdl_cv_preloaded_symbols+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$lt_cv_sys_global_symbol_pipe"; then
-    libltdl_cv_preloaded_symbols=yes
-  else
-    libltdl_cv_preloaded_symbols=no
-  fi
-
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_preloaded_symbols" >&5
-echo "${ECHO_T}$libltdl_cv_preloaded_symbols" >&6; }
-if test x"$libltdl_cv_preloaded_symbols" = xyes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PRELOADED_SYMBOLS 1
-_ACEOF
-
-fi
-
-LIBADD_DL=
-
-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
-
-
-{ echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); 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 shl_load
-
-/* 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 ();
-/* 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_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SHL_LOAD 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SHL_LOAD 1
-_ACEOF
-
-	LIBADD_DL="$LIBADD_DL -ldld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
-
-	        LIBADD_DL="-ldl" libltdl_cv_lib_dl_dlopen="yes"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_DLFCN_H
-#  include <dlfcn.h>
-#endif
-
-int
-main ()
-{
-dlopen(0, 0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
- libltdl_cv_func_dlopen="yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	{ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
-
-	            LIBADD_DL="-lsvld" libltdl_cv_func_dlopen="yes"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DLD 1
-_ACEOF
-
-	 	LIBADD_DL="$LIBADD_DL -ldld"
-else
-  { echo "$as_me:$LINENO: checking for _dyld_func_lookup" >&5
-echo $ECHO_N "checking for _dyld_func_lookup... $ECHO_C" >&6; }
-if test "${ac_cv_func__dyld_func_lookup+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define _dyld_func_lookup to an innocuous variant, in case <limits.h> declares _dyld_func_lookup.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define _dyld_func_lookup innocuous__dyld_func_lookup
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char _dyld_func_lookup (); 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 _dyld_func_lookup
-
-/* 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 _dyld_func_lookup ();
-/* 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__dyld_func_lookup || defined __stub____dyld_func_lookup
-choke me
-#endif
-
-int
-main ()
-{
-return _dyld_func_lookup ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func__dyld_func_lookup=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func__dyld_func_lookup=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func__dyld_func_lookup" >&5
-echo "${ECHO_T}$ac_cv_func__dyld_func_lookup" >&6; }
-if test $ac_cv_func__dyld_func_lookup = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DYLD 1
-_ACEOF
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-
-fi
-
-
-fi
-
-
-if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
-then
-  lt_save_LIBS="$LIBS"
-  LIBS="$LIBS $LIBADD_DL"
-
-for ac_func in dlerror
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-  LIBS="$lt_save_LIBS"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-{ echo "$as_me:$LINENO: checking for _ prefix in compiled symbols" >&5
-echo $ECHO_N "checking for _ prefix in compiled symbols... $ECHO_C" >&6; }
-if test "${ac_cv_sys_symbol_underscore+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_sys_symbol_underscore=no
-  cat > conftest.$ac_ext <<EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    ac_nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$ac_nlist"; then
-      # See whether the symbols have a leading underscore.
-      if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
-        ac_cv_sys_symbol_underscore=yes
-      else
-        if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
-	  :
-        else
-	  echo "configure: cannot find nm_test_func in $ac_nlist" >&5
-        fi
-      fi
-    else
-      echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "configure: failed program was:" >&5
-    cat conftest.c >&5
-  fi
-  rm -rf conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_sys_symbol_underscore" >&5
-echo "${ECHO_T}$ac_cv_sys_symbol_underscore" >&6; }
-
-
-if test x"$ac_cv_sys_symbol_underscore" = xyes; then
-  if test x"$libltdl_cv_func_dlopen" = xyes ||
-     test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
-	{ echo "$as_me:$LINENO: checking whether we have to add an underscore for dlsym" >&5
-echo $ECHO_N "checking whether we have to add an underscore for dlsym... $ECHO_C" >&6; }
-if test "${libltdl_cv_need_uscore+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  libltdl_cv_need_uscore=unknown
-          save_LIBS="$LIBS"
-          LIBS="$LIBS $LIBADD_DL"
-	  if test "$cross_compiling" = yes; then :
-  libltdl_cv_need_uscore=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 9856 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) libltdl_cv_need_uscore=no ;;
-      x$lt_dlneed_uscore) libltdl_cv_need_uscore=yes ;;
-      x$lt_dlunknown|x*)  ;;
-    esac
-  else :
-    # compilation failed
-
-  fi
-fi
-rm -fr conftest*
-
-	  LIBS="$save_LIBS"
-
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_need_uscore" >&5
-echo "${ECHO_T}$libltdl_cv_need_uscore" >&6; }
-  fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define NEED_USCORE 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether deplibs are loaded by dlopen" >&5
-echo $ECHO_N "checking whether deplibs are loaded by dlopen... $ECHO_C" >&6; }
-if test "${libltdl_cv_sys_dlopen_deplibs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # PORTME does your system automatically load deplibs for dlopen?
-  # or its logical equivalent (e.g. shl_load for HP-UX < 11)
-  # For now, we just catch OSes we know something about -- in the
-  # future, we'll try test this programmatically.
-  libltdl_cv_sys_dlopen_deplibs=unknown
-  case "$host_os" in
-  aix3*|aix4.1.*|aix4.2.*)
-    # Unknown whether this is true for these versions of AIX, but
-    # we want this `case' here to explicitly catch those versions.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  aix[45]*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  darwin*)
-    # Assuming the user has installed a libdl from somewhere, this is true
-    # If you are looking for one http://www.opendarwin.org/projects/dlcompat
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
-    # GNU and its variants, using gnu ld.so (Glibc)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  hpux10*|hpux11*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  interix*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  irix[12345]*|irix6.[01]*)
-    # Catch all versions of IRIX before 6.2, and indicate that we don't
-    # know how it worked for any of those versions.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  irix*)
-    # The case above catches anything before 6.2, and it's known that
-    # at 6.2 and later dlopen does load deplibs.
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  netbsd*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  openbsd*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  osf[1234]*)
-    # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
-    # it did *not* use an RPATH in a shared library to find objects the
-    # library depends on, so we explictly say `no'.
-    libltdl_cv_sys_dlopen_deplibs=no
-    ;;
-  osf5.0|osf5.0a|osf5.1)
-    # dlopen *does* load deplibs and with the right loader patch applied
-    # it even uses RPATH in a shared library to search for shared objects
-    # that the library depends on, but there's no easy way to know if that
-    # patch is installed.  Since this is the case, all we can really
-    # say is unknown -- it depends on the patch being installed.  If
-    # it is, this changes to `yes'.  Without it, it would be `no'.
-    libltdl_cv_sys_dlopen_deplibs=unknown
-    ;;
-  osf*)
-    # the two cases above should catch all versions of osf <= 5.1.  Read
-    # the comments above for what we know about them.
-    # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
-    # is used to find them so we can finally say `yes'.
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  solaris*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  esac
-
-fi
-{ echo "$as_me:$LINENO: result: $libltdl_cv_sys_dlopen_deplibs" >&5
-echo "${ECHO_T}$libltdl_cv_sys_dlopen_deplibs" >&6; }
-if test "$libltdl_cv_sys_dlopen_deplibs" != yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define LTDL_DLOPEN_DEPLIBS 1
-_ACEOF
-
-fi
-
-
-for ac_header in argz.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-{ echo "$as_me:$LINENO: checking for error_t" >&5
-echo $ECHO_N "checking for error_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_error_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_ARGZ_H
-#  include <argz.h>
-#endif
-
-typedef error_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_error_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_error_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_error_t" >&5
-echo "${ECHO_T}$ac_cv_type_error_t" >&6; }
-if test $ac_cv_type_error_t = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_ERROR_T 1
-_ACEOF
-
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define error_t int
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-for ac_func in argz_append argz_create_sep argz_insert argz_next argz_stringify
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in assert.h ctype.h errno.h malloc.h memory.h stdlib.h \
-		  stdio.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-for ac_header in dl.h sys/dl.h dld.h mach-o/dyld.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in string.h strings.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-
-done
-
-
-
-
-for ac_func in strchr index
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-done
-
-
-
-for ac_func in strrchr rindex
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-done
-
-
-
-for ac_func in memcpy bcopy
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-done
-
-
-
-for ac_func in memmove strcmp
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-for ac_func in closedir opendir readdir
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# 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 --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=yes
-fi
-
-
-# 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
-
-
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
-if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && 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
-
-fi
-
-SED=$lt_cv_path_SED
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
-
-
-# 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.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r $compiler_flags -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-aix4* | aix5*)
-  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'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu | dragonfly*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix3*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  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=unknown
-  ;;
-
-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
-  ;;
-
-solaris*)
-  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
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-# If 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 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:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; 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 11791 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case `/usr/bin/file conftest.o` in
-    *32-bit*)
-      case $host in
-        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-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  lt_cv_cc_needs_belf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	lt_cv_cc_needs_belf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      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
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-
-
-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
-{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f 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
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-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
-
-fi
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # 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_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # 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_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_f77_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_prog_f77_g=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo 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
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ 	]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    # 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.
-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
-	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    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`
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDGIRSTW]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  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
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, 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.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-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
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
-else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
-if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 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 to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=mklib
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$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
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}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
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-enable_dlopen=yes
-enable_win32_dll=no
-
-# 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
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-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;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-
-# 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
-printf "$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
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$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:13431: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:13435: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$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=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  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*)
-      # 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'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_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'
-      ;;
-
-    interix3*)
-      # 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
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case $cc_basename in
-         xlc*)
-         lt_prog_compiler_pic='-qnocommon'
-         lt_prog_compiler_wl='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_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'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    linux*)
-      case $cc_basename in
-      icc* | ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works=no
-  ac_outfile=conftest.$ac_objext
-   printf "$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:13699: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:13703: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_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
-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
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works=yes
-       fi
-     else
-       lt_prog_compiler_static_works=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$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:13803: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:13807: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  enable_shared_with_static_runtimes=no
-  archive_cmds=
-  archive_expsym_cmds=
-  old_archive_From_new_cmds=
-  old_archive_from_expsyms_cmds=
-  export_dynamic_flag_spec=
-  whole_archive_flag_spec=
-  thread_safe_flag_spec=
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_direct=no
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  link_all_deplibs=unknown
-  hardcode_automatic=no
-  module_cmds=
-  module_expsym_cmds=
-  always_export_symbols=no
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  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_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-  # Just being paranoid about ensuring that cc_basename is set.
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>/dev/null` in
-      *\ [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
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      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
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@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*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    interix3*)
-      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'
-      ;;
-
-    linux*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	tmp_addflag=
-	case $cc_basename,$host_cpu in
-	pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	esac
-	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-	if test $supports_anon_versioning = yes; 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 -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-	  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_libdir_separator=':'
-      link_all_deplibs=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct=yes
-	  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
-      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
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${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.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      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
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc=no
-      hardcode_direct=no
-      hardcode_automatic=yes
-      hardcode_shlibpath_var=unsupported
-      whole_archive_flag_spec=''
-      link_all_deplibs=yes
-    if test "$GCC" = yes ; then
-    	output_verbose_link_cmd='echo'
-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	hardcode_direct=yes
-	export_dynamic_flag_spec='${wl}-E'
-
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_libdir_flag_spec_ld='+b $libdir'
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      link_all_deplibs=yes
-      ;;
-
-    netbsd*)
-      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
-      ;;
-
-    openbsd*)
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      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
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z text'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	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'
-      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 linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
- 	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
-      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*)
-      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='`test -z "$SCOABSPATH" && echo ${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,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-#
-# 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 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:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$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
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var" || \
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existant 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_AC_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
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-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"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-       else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-       ;;
-   *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    ;;
-  esac
-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*)
-    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
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); 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 shl_load
-
-/* 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 ();
-/* 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_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); 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 dlopen
-
-/* 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 ();
-/* 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_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-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"
-
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 <<EOF
-#line 16111 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    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
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 <<EOF
-#line 16211 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    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
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$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
-
-
-# Report which library types will actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&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
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-    ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler \
-    CC \
-    LD \
-    lt_prog_compiler_wl \
-    lt_prog_compiler_pic \
-    lt_prog_compiler_static \
-    lt_prog_compiler_no_builtin_flag \
-    export_dynamic_flag_spec \
-    thread_safe_flag_spec \
-    whole_archive_flag_spec \
-    enable_shared_with_static_runtimes \
-    old_archive_cmds \
-    old_archive_from_new_cmds \
-    predep_objects \
-    postdep_objects \
-    predeps \
-    postdeps \
-    compiler_lib_search_path \
-    archive_cmds \
-    archive_expsym_cmds \
-    postinstall_cmds \
-    postuninstall_cmds \
-    old_archive_from_expsyms_cmds \
-    allow_undefined_flag \
-    no_undefined_flag \
-    export_symbols_cmds \
-    hardcode_libdir_flag_spec \
-    hardcode_libdir_flag_spec_ld \
-    hardcode_libdir_separator \
-    hardcode_automatic \
-    module_cmds \
-    module_expsym_cmds \
-    lt_cv_prog_compiler_c_o \
-    exclude_expsyms \
-    include_expsyms; do
-
-    case $var in
-    old_archive_cmds | \
-    old_archive_from_new_cmds | \
-    archive_cmds | \
-    archive_expsym_cmds | \
-    module_cmds | \
-    module_expsym_cmds | \
-    old_archive_from_expsyms_cmds | \
-    export_symbols_cmds | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
-
-  cat <<__EOF__ >> "$cfgfile"
-#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e 1s/^X//"
-
-# 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
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$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
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# 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
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_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 and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-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
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using 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
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  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
-
-CC="$lt_save_CC"
-
-
-# Check whether --with-tags was given.
-if test "${with_tags+set}" = set; then
-  withval=$with_tags; tagnames="$withval"
-fi
-
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
-    else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
-    fi
-  fi
-  if test -z "$LTCFLAGS"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
-    "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-	    ( (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
-
-
-
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# 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=
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# 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
-printf "$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
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  $as_unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  $as_unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# We don't want -fno-exception wen 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.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$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 -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    archive_expsym_cmds_CXX='$CC -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 "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-ld_shlibs_CXX=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      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].*|aix5*)
-	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_libdir_separator_CXX=':'
-    link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  hardcode_direct_CXX=yes
-	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
-
-    # 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.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-      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 echo "${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.
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	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'
-	# Exported symbols can be pulled into shared objects from archives
-	whole_archive_flag_spec_CXX='$convenience'
-	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@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*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-    # as there is no search path for DLLs.
-    hardcode_libdir_flag_spec_CXX='-L$libdir'
-    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
-  ;;
-      darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
-      archive_cmds_need_lc_CXX=no
-      hardcode_direct_CXX=no
-      hardcode_automatic_CXX=yes
-      hardcode_shlibpath_var_CXX=unsupported
-      whole_archive_flag_spec_CXX=''
-      link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
-      output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
-      fi
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-        fi
-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_CXX=no
-          ;;
-      esac
-      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
-    ;;
-  freebsd[12]*)
-    # 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* | kfreebsd*-gnu | dragonfly*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    ld_shlibs_CXX=yes
-    ;;
-  gnu*)
-    ;;
-  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) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        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*)
-	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
-        ;;
-      *)
-	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_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; echo $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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    *)
-	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	fi
-	;;
-    esac
-    ;;
-  interix3*)
-    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" && echo -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 -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	  else
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	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; echo $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*)
-	# 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*)
-        # Portland Group C++ compiler
-	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-  	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-
-	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; $echo \"$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=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    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::"'
-    ;;
-  openbsd2*)
-    # C++ shared libraries are fairly broken
-    ld_shlibs_CXX=no
-    ;;
-  openbsd*)
-    hardcode_direct_CXX=yes
-    hardcode_shlibpath_var_CXX=no
-    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='echo'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	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
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC*)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      cxx*)
-	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" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	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.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-	  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 "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC*)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	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.
-	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
-	;;
-      RCC*)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      cxx*)
-	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" && echo -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'
-	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=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-	  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 "\-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*)
-	# 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 C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker. We must also pass each convience library through
-	    # to the system linker between allextract/defaultextract.
-	    # The C++ compiler will combine linker options so we
-	    # cannot just pass the convience library names through
-	    # without $wl.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	link_all_deplibs_CXX=yes
-
-	output_verbose_link_cmd='echo'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	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 -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 -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    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 \"\-L\""
-	  fi
-
-	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	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.
-    # 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.
-    # So that behaviour is only enabled if SCOABSPATH is set to a
-    # non-empty value in the environment.  Most likely only useful for
-    # creating official distributions of packages.
-    # This is a hack until libtool officially supports absolute path
-    # names for shared libraries.
-    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='`test -z "$SCOABSPATH" && echo ${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,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	;;
-      *)
-	archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-GCC_CXX="$GXX"
-LD_CXX="$LD"
-
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$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
-       ;;
-
-    *.$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
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix3*)
-  # 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=
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # 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.
-    postdeps_CXX='-lCstd -lCrun'
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
-
-lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  # 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*)
-      # 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'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_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=
-      ;;
-    interix3*)
-      # 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 IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_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_AC_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
-	;;
-       darwin*)
-         # PIC is the default on this platform
-         # Common symbols not allowed in MH_DYLIB files
-         case $cc_basename in
-           xlc*)
-           lt_prog_compiler_pic_CXX='-qnocommon'
-           lt_prog_compiler_wl_CXX='-Wl,'
-           ;;
-         esac
-       ;;
-      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* | kfreebsd*-gnu | 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*)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  icpc* | ecpc*)
-	    # Intel C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC*)
-	    # 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'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      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*)
-	    # 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
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	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
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_CXX=no
-  ac_outfile=conftest.$ac_objext
-   printf "$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:18547: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:18551: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_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
-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
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$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:18651: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:18655: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_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 ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_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*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-#
-# 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 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:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  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*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$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
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-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-existant 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_AC_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
-{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_CXX \
-    CC_CXX \
-    LD_CXX \
-    lt_prog_compiler_wl_CXX \
-    lt_prog_compiler_pic_CXX \
-    lt_prog_compiler_static_CXX \
-    lt_prog_compiler_no_builtin_flag_CXX \
-    export_dynamic_flag_spec_CXX \
-    thread_safe_flag_spec_CXX \
-    whole_archive_flag_spec_CXX \
-    enable_shared_with_static_runtimes_CXX \
-    old_archive_cmds_CXX \
-    old_archive_from_new_cmds_CXX \
-    predep_objects_CXX \
-    postdep_objects_CXX \
-    predeps_CXX \
-    postdeps_CXX \
-    compiler_lib_search_path_CXX \
-    archive_cmds_CXX \
-    archive_expsym_cmds_CXX \
-    postinstall_cmds_CXX \
-    postuninstall_cmds_CXX \
-    old_archive_from_expsyms_cmds_CXX \
-    allow_undefined_flag_CXX \
-    no_undefined_flag_CXX \
-    export_symbols_cmds_CXX \
-    hardcode_libdir_flag_spec_CXX \
-    hardcode_libdir_flag_spec_ld_CXX \
-    hardcode_libdir_separator_CXX \
-    hardcode_automatic_CXX \
-    module_cmds_CXX \
-    module_expsym_cmds_CXX \
-    lt_cv_prog_compiler_c_o_CXX \
-    exclude_expsyms_CXX \
-    include_expsyms_CXX; do
-
-    case $var in
-    old_archive_cmds_CXX | \
-    old_archive_from_new_cmds_CXX | \
-    archive_cmds_CXX | \
-    archive_expsym_cmds_CXX | \
-    module_cmds_CXX | \
-    module_expsym_cmds_CXX | \
-    old_archive_from_expsyms_cmds_CXX | \
-    export_symbols_cmds_CXX | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$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
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_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
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_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 and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-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
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_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 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
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_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
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  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
-
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
-archive_cmds_need_lc_F77=no
-allow_undefined_flag_F77=
-always_export_symbols_F77=no
-archive_expsym_cmds_F77=
-export_dynamic_flag_spec_F77=
-hardcode_direct_F77=no
-hardcode_libdir_flag_spec_F77=
-hardcode_libdir_flag_spec_ld_F77=
-hardcode_libdir_separator_F77=
-hardcode_minus_L_F77=no
-hardcode_automatic_F77=no
-module_cmds_F77=
-module_expsym_cmds_F77=
-link_all_deplibs_F77=unknown
-old_archive_cmds_F77=$old_archive_cmds
-no_undefined_flag_F77=
-whole_archive_flag_spec_F77=
-enable_shared_with_static_runtimes_F77=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-objext_F77=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# 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
-printf "$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
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&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
-  ;;
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-GCC_F77="$G77"
-LD_F77="$LD"
-
-lt_prog_compiler_wl_F77=
-lt_prog_compiler_pic_F77=
-lt_prog_compiler_static_F77=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_F77='-Wl,'
-    lt_prog_compiler_static_F77='-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_F77='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_F77='-fno-common'
-      ;;
-
-    interix3*)
-      # 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_F77=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_F77=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_F77='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_F77='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_F77='-Bstatic'
-      else
-	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case $cc_basename in
-         xlc*)
-         lt_prog_compiler_pic_F77='-qnocommon'
-         lt_prog_compiler_wl_F77='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_F77='-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_F77='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    linux*)
-      case $cc_basename in
-      icc* | ecc*)
-	lt_prog_compiler_wl_F77='-Wl,'
-	lt_prog_compiler_pic_F77='-KPIC'
-	lt_prog_compiler_static_F77='-static'
-        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl_F77='-Wl,'
-	lt_prog_compiler_pic_F77='-fpic'
-	lt_prog_compiler_static_F77='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_F77='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_F77='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl_F77='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl_F77='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_F77='-Qoption ld '
-      lt_prog_compiler_pic_F77='-PIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic_F77='-Kconform_pic'
-	lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_can_build_shared_F77=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_F77='-pic'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_F77"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_F77=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_F77"
-   # 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:20221: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:20225: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_F77=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
-    case $lt_prog_compiler_pic_F77 in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
-     esac
-else
-    lt_prog_compiler_pic_F77=
-     lt_prog_compiler_can_build_shared_F77=no
-fi
-
-fi
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_F77=
-    ;;
-  *)
-    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
-    ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works_F77=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_F77=yes
-       fi
-     else
-       lt_prog_compiler_static_works_F77=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
-
-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
-    :
-else
-    lt_prog_compiler_static_F77=
-fi
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_F77=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$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:20325: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:20329: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_F77=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 ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_F77=
-  enable_shared_with_static_runtimes_F77=no
-  archive_cmds_F77=
-  archive_expsym_cmds_F77=
-  old_archive_From_new_cmds_F77=
-  old_archive_from_expsyms_cmds_F77=
-  export_dynamic_flag_spec_F77=
-  whole_archive_flag_spec_F77=
-  thread_safe_flag_spec_F77=
-  hardcode_libdir_flag_spec_F77=
-  hardcode_libdir_flag_spec_ld_F77=
-  hardcode_libdir_separator_F77=
-  hardcode_direct_F77=no
-  hardcode_minus_L_F77=no
-  hardcode_shlibpath_var_F77=unsupported
-  link_all_deplibs_F77=unknown
-  hardcode_automatic_F77=no
-  module_cmds_F77=
-  module_expsym_cmds_F77=
-  always_export_symbols_F77=no
-  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_F77=
-  # 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_F77="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-  # Just being paranoid about ensuring that cc_basename is set.
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_F77=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec_F77='${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_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec_F77=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>/dev/null` in
-      *\ [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
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs_F77=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$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_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_F77=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag_F77=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=no
-      enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_F77='$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_F77='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_F77=no
-      fi
-      ;;
-
-    interix3*)
-      hardcode_direct_F77=no
-      hardcode_shlibpath_var_F77=no
-      hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec_F77='${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_F77='$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_F77='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'
-      ;;
-
-    linux*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	tmp_addflag=
-	case $cc_basename,$host_cpu in
-	pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	esac
-	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-	if test $supports_anon_versioning = yes; then
-	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
-  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-  $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	fi
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs_F77=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs_F77=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
-	;;
-	*)
-	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-	    archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
-	    archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
-	  else
-	    ld_shlibs_F77=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_F77" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec_F77=
-      export_dynamic_flag_spec_F77=
-      whole_archive_flag_spec_F77=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=yes
-      archive_expsym_cmds_F77='$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_F77=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_F77=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds_F77='$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].*|aix5*)
-	  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_F77=''
-      hardcode_direct_F77=yes
-      hardcode_libdir_separator_F77=':'
-      link_all_deplibs_F77=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct_F77=yes
-	  else
-  	  # We have old collect2
-  	  hardcode_direct_F77=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_F77=yes
-  	  hardcode_libdir_flag_spec_F77='-L$libdir'
-  	  hardcode_libdir_separator_F77=
-	  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
-
-      # 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_F77=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_F77='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag_F77="-z nodefs"
-	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec_F77='${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_F77=' ${wl}-bernotok'
-	  allow_undefined_flag_F77=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_F77='$convenience'
-	  archive_cmds_need_lc_F77=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds_F77="\$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*)
-      archive_cmds_F77='$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_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_F77=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec_F77=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_F77=' '
-      allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_F77='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_F77=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc_F77=no
-      hardcode_direct_F77=no
-      hardcode_automatic_F77=yes
-      hardcode_shlibpath_var_F77=unsupported
-      whole_archive_flag_spec_F77=''
-      link_all_deplibs_F77=yes
-    if test "$GCC" = yes ; then
-    	output_verbose_link_cmd='echo'
-        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_F77=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
-      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds_F77='$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_F77='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_direct_F77=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_F77=yes
-      export_dynamic_flag_spec_F77='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$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_F77='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_F77=:
-
-	hardcode_direct_F77=yes
-	export_dynamic_flag_spec_F77='${wl}-E'
-
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L_F77=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_F77=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
-	  hardcode_direct_F77=no
-	  hardcode_shlibpath_var_F77=no
-	  ;;
-	*)
-	  hardcode_direct_F77=yes
-	  export_dynamic_flag_spec_F77='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_F77=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      link_all_deplibs_F77=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    newsos6)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_F77='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_F77='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      allow_undefined_flag_F77=unsupported
-      archive_cmds_F77='$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_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    solaris*)
-      no_undefined_flag_F77=' -z text'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	wlarc=''
-	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_shlibpath_var_F77=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
- 	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
-      esac
-      link_all_deplibs_F77=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_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_F77=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds_F77='$CC -r -o $output$reload_objs'
-	  hardcode_direct_F77=no
-        ;;
-	motorola)
-	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var_F77=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs_F77=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
-      no_undefined_flag_F77='${wl}-z,text'
-      archive_cmds_need_lc_F77=no
-      hardcode_shlibpath_var_F77=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$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_F77='${wl}-z,text'
-      allow_undefined_flag_F77='${wl}-z,nodefs'
-      archive_cmds_need_lc_F77=no
-      hardcode_shlibpath_var_F77=no
-      hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-      hardcode_libdir_separator_F77=':'
-      link_all_deplibs_F77=yes
-      export_dynamic_flag_spec_F77='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    *)
-      ld_shlibs_F77=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6; }
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_F77" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_F77=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_F77 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_F77
-	pic_flag=$lt_prog_compiler_pic_F77
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
-        allow_undefined_flag_F77=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_F77=no
-        else
-	  archive_cmds_need_lc_F77=yes
-        fi
-        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$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
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_F77=
-if test -n "$hardcode_libdir_flag_spec_F77" || \
-   test -n "$runpath_var_F77" || \
-   test "X$hardcode_automatic_F77" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_F77" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
-     test "$hardcode_minus_L_F77" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_F77=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_F77=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_F77=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6; }
-
-if test "$hardcode_action_F77" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_F77 \
-    CC_F77 \
-    LD_F77 \
-    lt_prog_compiler_wl_F77 \
-    lt_prog_compiler_pic_F77 \
-    lt_prog_compiler_static_F77 \
-    lt_prog_compiler_no_builtin_flag_F77 \
-    export_dynamic_flag_spec_F77 \
-    thread_safe_flag_spec_F77 \
-    whole_archive_flag_spec_F77 \
-    enable_shared_with_static_runtimes_F77 \
-    old_archive_cmds_F77 \
-    old_archive_from_new_cmds_F77 \
-    predep_objects_F77 \
-    postdep_objects_F77 \
-    predeps_F77 \
-    postdeps_F77 \
-    compiler_lib_search_path_F77 \
-    archive_cmds_F77 \
-    archive_expsym_cmds_F77 \
-    postinstall_cmds_F77 \
-    postuninstall_cmds_F77 \
-    old_archive_from_expsyms_cmds_F77 \
-    allow_undefined_flag_F77 \
-    no_undefined_flag_F77 \
-    export_symbols_cmds_F77 \
-    hardcode_libdir_flag_spec_F77 \
-    hardcode_libdir_flag_spec_ld_F77 \
-    hardcode_libdir_separator_F77 \
-    hardcode_automatic_F77 \
-    module_cmds_F77 \
-    module_expsym_cmds_F77 \
-    lt_cv_prog_compiler_c_o_F77 \
-    exclude_expsyms_F77 \
-    include_expsyms_F77; do
-
-    case $var in
-    old_archive_cmds_F77 | \
-    old_archive_from_new_cmds_F77 | \
-    archive_cmds_F77 | \
-    archive_expsym_cmds_F77 | \
-    module_cmds_F77 | \
-    module_expsym_cmds_F77 | \
-    old_archive_from_expsyms_cmds_F77 | \
-    export_symbols_cmds_F77 | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_F77
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_F77
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_F77
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_F77
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_F77
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_F77
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_F77
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_F77
-archive_expsym_cmds=$lt_archive_expsym_cmds_F77
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_F77
-module_expsym_cmds=$lt_module_expsym_cmds_F77
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_F77
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_F77
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_F77
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_F77
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_F77
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_F77
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_F77
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
-
-# 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_F77
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_F77
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_F77
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_F77
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_F77
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_F77
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  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
-
-CC="$lt_save_CC"
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  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 Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-objext_GCJ=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# 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
-printf "$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
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-old_archive_cmds_GCJ=$old_archive_cmds
-
-
-lt_prog_compiler_no_builtin_flag_GCJ=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$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:22528: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:22532: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl_GCJ=
-lt_prog_compiler_pic_GCJ=
-lt_prog_compiler_static_GCJ=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_GCJ='-Wl,'
-    lt_prog_compiler_static_GCJ='-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_GCJ='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_GCJ='-fno-common'
-      ;;
-
-    interix3*)
-      # 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_GCJ=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_GCJ=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_GCJ='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_GCJ='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_GCJ='-Bstatic'
-      else
-	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case $cc_basename in
-         xlc*)
-         lt_prog_compiler_pic_GCJ='-qnocommon'
-         lt_prog_compiler_wl_GCJ='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_GCJ='-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_GCJ='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    linux*)
-      case $cc_basename in
-      icc* | ecc*)
-	lt_prog_compiler_wl_GCJ='-Wl,'
-	lt_prog_compiler_pic_GCJ='-KPIC'
-	lt_prog_compiler_static_GCJ='-static'
-        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl_GCJ='-Wl,'
-	lt_prog_compiler_pic_GCJ='-fpic'
-	lt_prog_compiler_static_GCJ='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_GCJ='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_GCJ='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl_GCJ='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl_GCJ='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_GCJ='-Qoption ld '
-      lt_prog_compiler_pic_GCJ='-PIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic_GCJ='-Kconform_pic'
-	lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_can_build_shared_GCJ=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_GCJ='-pic'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_GCJ"; then
-
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_GCJ=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
-   # 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:22796: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:22800: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_GCJ=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
-
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
-    case $lt_prog_compiler_pic_GCJ in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
-     esac
-else
-    lt_prog_compiler_pic_GCJ=
-     lt_prog_compiler_can_build_shared_GCJ=no
-fi
-
-fi
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_GCJ=
-    ;;
-  *)
-    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
-    ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works_GCJ=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_GCJ=yes
-       fi
-     else
-       lt_prog_compiler_static_works_GCJ=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
-
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
-    :
-else
-    lt_prog_compiler_static_GCJ=
-fi
-
-
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_GCJ=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$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:22900: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:22904: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_GCJ=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 ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
-  runpath_var=
-  allow_undefined_flag_GCJ=
-  enable_shared_with_static_runtimes_GCJ=no
-  archive_cmds_GCJ=
-  archive_expsym_cmds_GCJ=
-  old_archive_From_new_cmds_GCJ=
-  old_archive_from_expsyms_cmds_GCJ=
-  export_dynamic_flag_spec_GCJ=
-  whole_archive_flag_spec_GCJ=
-  thread_safe_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_ld_GCJ=
-  hardcode_libdir_separator_GCJ=
-  hardcode_direct_GCJ=no
-  hardcode_minus_L_GCJ=no
-  hardcode_shlibpath_var_GCJ=unsupported
-  link_all_deplibs_GCJ=unknown
-  hardcode_automatic_GCJ=no
-  module_cmds_GCJ=
-  module_expsym_cmds_GCJ=
-  always_export_symbols_GCJ=no
-  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_GCJ=
-  # 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_GCJ="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-  # Just being paranoid about ensuring that cc_basename is set.
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_GCJ=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec_GCJ='${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_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec_GCJ=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>/dev/null` in
-      *\ [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
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs_GCJ=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$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_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_GCJ=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag_GCJ=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=no
-      enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_GCJ='$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_GCJ='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_GCJ=no
-      fi
-      ;;
-
-    interix3*)
-      hardcode_direct_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec_GCJ='${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_GCJ='$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_GCJ='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'
-      ;;
-
-    linux*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	tmp_addflag=
-	case $cc_basename,$host_cpu in
-	pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	esac
-	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-	if test $supports_anon_versioning = yes; then
-	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
-  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-  $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	fi
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs_GCJ=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs_GCJ=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
-	;;
-	*)
-	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-	    archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
-	    archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
-	  else
-	    ld_shlibs_GCJ=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_GCJ" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec_GCJ=
-      export_dynamic_flag_spec_GCJ=
-      whole_archive_flag_spec_GCJ=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=yes
-      archive_expsym_cmds_GCJ='$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_GCJ=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_GCJ=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds_GCJ='$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].*|aix5*)
-	  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_GCJ=''
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_separator_GCJ=':'
-      link_all_deplibs_GCJ=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct_GCJ=yes
-	  else
-  	  # We have old collect2
-  	  hardcode_direct_GCJ=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_GCJ=yes
-  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
-  	  hardcode_libdir_separator_GCJ=
-	  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
-
-      # 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_GCJ=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_GCJ='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag_GCJ="-z nodefs"
-	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec_GCJ='${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_GCJ=' ${wl}-bernotok'
-	  allow_undefined_flag_GCJ=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_GCJ='$convenience'
-	  archive_cmds_need_lc_GCJ=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds_GCJ="\$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*)
-      archive_cmds_GCJ='$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_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_GCJ=no
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec_GCJ=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ=' '
-      allow_undefined_flag_GCJ=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_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_GCJ='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_GCJ=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      archive_cmds_need_lc_GCJ=no
-      hardcode_direct_GCJ=no
-      hardcode_automatic_GCJ=yes
-      hardcode_shlibpath_var_GCJ=unsupported
-      whole_archive_flag_spec_GCJ=''
-      link_all_deplibs_GCJ=yes
-    if test "$GCC" = yes ; then
-    	output_verbose_link_cmd='echo'
-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         ld_shlibs_GCJ=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
-      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds_GCJ='$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_GCJ='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_direct_GCJ=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_GCJ=yes
-      export_dynamic_flag_spec_GCJ='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$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_GCJ='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_GCJ=:
-
-	hardcode_direct_GCJ=yes
-	export_dynamic_flag_spec_GCJ='${wl}-E'
-
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L_GCJ=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_GCJ=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
-	  hardcode_direct_GCJ=no
-	  hardcode_shlibpath_var_GCJ=no
-	  ;;
-	*)
-	  hardcode_direct_GCJ=yes
-	  export_dynamic_flag_spec_GCJ='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_GCJ=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    newsos6)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_GCJ='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      allow_undefined_flag_GCJ=unsupported
-      archive_cmds_GCJ='$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_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag_GCJ=' -expect_unresolved \*'
-	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag_GCJ=' -expect_unresolved \*'
-	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    solaris*)
-      no_undefined_flag_GCJ=' -z text'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	wlarc=''
-	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
- 	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
-      esac
-      link_all_deplibs_GCJ=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_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_GCJ=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
-	  hardcode_direct_GCJ=no
-        ;;
-	motorola)
-	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var_GCJ=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs_GCJ=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
-      no_undefined_flag_GCJ='${wl}-z,text'
-      archive_cmds_need_lc_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$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_GCJ='${wl}-z,text'
-      allow_undefined_flag_GCJ='${wl}-z,nodefs'
-      archive_cmds_need_lc_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-      hardcode_libdir_separator_GCJ=':'
-      link_all_deplibs_GCJ=yes
-      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    *)
-      ld_shlibs_GCJ=no
-      ;;
-    esac
-  fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
-test "$ld_shlibs_GCJ" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_GCJ" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_GCJ=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_GCJ 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_GCJ
-	pic_flag=$lt_prog_compiler_pic_GCJ
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
-        allow_undefined_flag_GCJ=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_GCJ=no
-        else
-	  archive_cmds_need_lc_GCJ=yes
-        fi
-        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&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"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='.dylib'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  freebsd*) # from 4.6 on
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix3*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # 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)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  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"
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-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
-  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'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    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'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$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
-
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
-   test -n "$runpath_var_GCJ" || \
-   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_GCJ" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
-     test "$hardcode_minus_L_GCJ" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_GCJ=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_GCJ=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_GCJ=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
-
-if test "$hardcode_action_GCJ" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_GCJ \
-    CC_GCJ \
-    LD_GCJ \
-    lt_prog_compiler_wl_GCJ \
-    lt_prog_compiler_pic_GCJ \
-    lt_prog_compiler_static_GCJ \
-    lt_prog_compiler_no_builtin_flag_GCJ \
-    export_dynamic_flag_spec_GCJ \
-    thread_safe_flag_spec_GCJ \
-    whole_archive_flag_spec_GCJ \
-    enable_shared_with_static_runtimes_GCJ \
-    old_archive_cmds_GCJ \
-    old_archive_from_new_cmds_GCJ \
-    predep_objects_GCJ \
-    postdep_objects_GCJ \
-    predeps_GCJ \
-    postdeps_GCJ \
-    compiler_lib_search_path_GCJ \
-    archive_cmds_GCJ \
-    archive_expsym_cmds_GCJ \
-    postinstall_cmds_GCJ \
-    postuninstall_cmds_GCJ \
-    old_archive_from_expsyms_cmds_GCJ \
-    allow_undefined_flag_GCJ \
-    no_undefined_flag_GCJ \
-    export_symbols_cmds_GCJ \
-    hardcode_libdir_flag_spec_GCJ \
-    hardcode_libdir_flag_spec_ld_GCJ \
-    hardcode_libdir_separator_GCJ \
-    hardcode_automatic_GCJ \
-    module_cmds_GCJ \
-    module_expsym_cmds_GCJ \
-    lt_cv_prog_compiler_c_o_GCJ \
-    exclude_expsyms_GCJ \
-    include_expsyms_GCJ; do
-
-    case $var in
-    old_archive_cmds_GCJ | \
-    old_archive_from_new_cmds_GCJ | \
-    archive_cmds_GCJ | \
-    archive_expsym_cmds_GCJ | \
-    module_cmds_GCJ | \
-    module_expsym_cmds_GCJ | \
-    old_archive_from_expsyms_cmds_GCJ | \
-    export_symbols_cmds_GCJ | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_GCJ
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_GCJ
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_GCJ
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_GCJ
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_GCJ
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_GCJ
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_GCJ
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_GCJ
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_GCJ
-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_GCJ
-module_expsym_cmds=$lt_module_expsym_cmds_GCJ
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_GCJ
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_GCJ
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_GCJ
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_GCJ
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_GCJ
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_GCJ
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
-
-# 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_GCJ
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_GCJ
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_GCJ
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_GCJ
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_GCJ
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_GCJ
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  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
-
-CC="$lt_save_CC"
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	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 RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-objext_RC=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# 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
-printf "$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
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-lt_cv_prog_compiler_c_o_RC=yes
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_RC \
-    CC_RC \
-    LD_RC \
-    lt_prog_compiler_wl_RC \
-    lt_prog_compiler_pic_RC \
-    lt_prog_compiler_static_RC \
-    lt_prog_compiler_no_builtin_flag_RC \
-    export_dynamic_flag_spec_RC \
-    thread_safe_flag_spec_RC \
-    whole_archive_flag_spec_RC \
-    enable_shared_with_static_runtimes_RC \
-    old_archive_cmds_RC \
-    old_archive_from_new_cmds_RC \
-    predep_objects_RC \
-    postdep_objects_RC \
-    predeps_RC \
-    postdeps_RC \
-    compiler_lib_search_path_RC \
-    archive_cmds_RC \
-    archive_expsym_cmds_RC \
-    postinstall_cmds_RC \
-    postuninstall_cmds_RC \
-    old_archive_from_expsyms_cmds_RC \
-    allow_undefined_flag_RC \
-    no_undefined_flag_RC \
-    export_symbols_cmds_RC \
-    hardcode_libdir_flag_spec_RC \
-    hardcode_libdir_flag_spec_ld_RC \
-    hardcode_libdir_separator_RC \
-    hardcode_automatic_RC \
-    module_cmds_RC \
-    module_expsym_cmds_RC \
-    lt_cv_prog_compiler_c_o_RC \
-    exclude_expsyms_RC \
-    include_expsyms_RC; do
-
-    case $var in
-    old_archive_cmds_RC | \
-    old_archive_from_new_cmds_RC | \
-    archive_cmds_RC | \
-    archive_expsym_cmds_RC | \
-    module_cmds_RC | \
-    module_expsym_cmds_RC | \
-    old_archive_from_expsyms_cmds_RC | \
-    export_symbols_cmds_RC | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_RC
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_RC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_RC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_RC
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_RC
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_RC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_RC
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_RC
-archive_expsym_cmds=$lt_archive_expsym_cmds_RC
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_RC
-module_expsym_cmds=$lt_module_expsym_cmds_RC
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_RC
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_RC
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_RC
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_RC
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_RC
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_RC
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_RC
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
-
-# 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_RC
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_RC
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_RC
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_RC
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_RC
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_RC
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  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
-
-CC="$lt_save_CC"
-
-	;;
-
-      *)
-	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/mklib'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test "$lt_cv_dlopen_self" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CAN_DLOPEN_SELF 1
-_ACEOF
-
-fi
-
-etags_version=`$ETAGS --version 2>&1`
-case "$etags_version" in
-	*Eexuberant*) ETAGSFLAGS="--language-force=c++" ;;
-	*GNU\ Emacs*) ETAGSFLAGS="-l c++" ;;
-	*) ETAGSFLAGS="" ;;
-esac
-ETAGSFLAGS=$ETAGSFLAGS
-
-
-if test "$WITH_LLVMGCCDIR" = "default" ; then
-  LLVMGCC="llvm-gcc${EXEEXT}"
-  LLVMGXX="llvm-g++${EXEEXT}"
-  # Extract the first word of "$LLVMGCC", so it can be a program name with args.
-set dummy $LLVMGCC; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_LLVMGCC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $LLVMGCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LLVMGCC="$LLVMGCC" # 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_LLVMGCC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-LLVMGCC=$ac_cv_path_LLVMGCC
-if test -n "$LLVMGCC"; then
-  { echo "$as_me:$LINENO: result: $LLVMGCC" >&5
-echo "${ECHO_T}$LLVMGCC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  # Extract the first word of "$LLVMGXX", so it can be a program name with args.
-set dummy $LLVMGXX; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_LLVMGXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $LLVMGXX in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LLVMGXX="$LLVMGXX" # 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_LLVMGXX="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-LLVMGXX=$ac_cv_path_LLVMGXX
-if test -n "$LLVMGXX"; then
-  { echo "$as_me:$LINENO: result: $LLVMGXX" >&5
-echo "${ECHO_T}$LLVMGXX" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-else
-  LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}"
-  LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}"
-  LLVMGCC=$LLVMGCC
-
-  LLVMGXX=$LLVMGXX
-
-fi
-
-{ echo "$as_me:$LINENO: checking tool compatibility" >&5
-echo $ECHO_N "checking tool compatibility... $ECHO_C" >&6; }
-
-ICC=no
-IXX=no
-case $CC in
-  icc*|icpc*)
-    ICC=yes
-    IXX=yes
-    ;;
-   *)
-    ;;
-esac
-
-if test "$GCC" != "yes" && test "$ICC" != "yes"
-then
-  { { echo "$as_me:$LINENO: error: gcc|icc required but not found" >&5
-echo "$as_me: error: gcc|icc required but not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-if test "$GXX" != "yes" && test "$IXX" != "yes"
-then
-  { { echo "$as_me:$LINENO: error: g++|icc required but not found" >&5
-echo "$as_me: error: g++|icc required but not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-if test "$GCC" = "yes"
-then
-  gccmajor=`$CC --version | head -n 1 | sed 's/[^0-9]*\([0-9.]\).*/\1/'`
-  if test "$gccmajor" -lt "3"
-  then
-    { { echo "$as_me:$LINENO: error: gcc 3.x required, but you have a lower version" >&5
-echo "$as_me: error: gcc 3.x required, but you have a lower version" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-if test -z "$llvm_cv_gnu_make_command"
-then
-  { { echo "$as_me:$LINENO: error: GNU Make required but not found" >&5
-echo "$as_me: error: GNU Make required but not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-{ echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-
-
-
-{ echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5
-echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6; }
-if test "${ac_cv_lib_elf_elf_begin+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lelf  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 elf_begin ();
-int
-main ()
-{
-return elf_begin ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_elf_elf_begin=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_elf_elf_begin=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5
-echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6; }
-if test $ac_cv_lib_elf_elf_begin = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBELF 1
-_ACEOF
-
-  LIBS="-lelf $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for sin in -lm" >&5
-echo $ECHO_N "checking for sin in -lm... $ECHO_C" >&6; }
-if test "${ac_cv_lib_m_sin+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 sin ();
-int
-main ()
-{
-return sin ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_m_sin=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_m_sin=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5
-echo "${ECHO_T}$ac_cv_lib_m_sin" >&6; }
-if test $ac_cv_lib_m_sin = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
-  LIBS="-lm $LIBS"
-
-fi
-
-if test "$llvm_cv_os_type" = "MingW" ; then
-
-{ echo "$as_me:$LINENO: checking for main in -limagehlp" >&5
-echo $ECHO_N "checking for main in -limagehlp... $ECHO_C" >&6; }
-if test "${ac_cv_lib_imagehlp_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-limagehlp  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_imagehlp_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_imagehlp_main=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_imagehlp_main" >&5
-echo "${ECHO_T}$ac_cv_lib_imagehlp_main" >&6; }
-if test $ac_cv_lib_imagehlp_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBIMAGEHLP 1
-_ACEOF
-
-  LIBS="-limagehlp $LIBS"
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for main in -lpsapi" >&5
-echo $ECHO_N "checking for main in -lpsapi... $ECHO_C" >&6; }
-if test "${ac_cv_lib_psapi_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpsapi  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_psapi_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_psapi_main=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_psapi_main" >&5
-echo "${ECHO_T}$ac_cv_lib_psapi_main" >&6; }
-if test $ac_cv_lib_psapi_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPSAPI 1
-_ACEOF
-
-  LIBS="-lpsapi $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for library containing lt_dlopen" >&5
-echo $ECHO_N "checking for library containing lt_dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_search_lt_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 lt_dlopen ();
-int
-main ()
-{
-return lt_dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' ltdl; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_lt_dlopen=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_lt_dlopen+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_lt_dlopen+set}" = set; then
-  :
-else
-  ac_cv_search_lt_dlopen=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_lt_dlopen" >&5
-echo "${ECHO_T}$ac_cv_search_lt_dlopen" >&6; }
-ac_res=$ac_cv_search_lt_dlopen
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LT_DLOPEN 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: WARNING: lt_dlopen() not found - plugin support might
-                           not be available" >&5
-echo "$as_me: WARNING: lt_dlopen() not found - plugin support might
-                           not be available" >&2;}
-fi
-
-
-{ echo "$as_me:$LINENO: checking for library containing dlopen" >&5
-echo $ECHO_N "checking for library containing dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_search_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-for ac_lib in '' dl; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_dlopen=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_dlopen+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_dlopen+set}" = set; then
-  :
-else
-  ac_cv_search_dlopen=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_dlopen" >&5
-echo "${ECHO_T}$ac_cv_search_dlopen" >&6; }
-ac_res=$ac_cv_search_dlopen
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DLOPEN 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: WARNING: dlopen() not found - disabling plugin support" >&5
-echo "$as_me: WARNING: dlopen() not found - disabling plugin support" >&2;}
-fi
-
-
-{ echo "$as_me:$LINENO: checking for library containing mallinfo" >&5
-echo $ECHO_N "checking for library containing mallinfo... $ECHO_C" >&6; }
-if test "${ac_cv_search_mallinfo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 mallinfo ();
-int
-main ()
-{
-return mallinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' malloc; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_mallinfo=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_mallinfo+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_mallinfo+set}" = set; then
-  :
-else
-  ac_cv_search_mallinfo=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_mallinfo" >&5
-echo "${ECHO_T}$ac_cv_search_mallinfo" >&6; }
-ac_res=$ac_cv_search_mallinfo
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLINFO 1
-_ACEOF
-
-fi
-
-
-if test "$WANT_THREADS" -eq 1 ; then
-
-{ echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthread" >&5
-echo $ECHO_N "checking for pthread_mutex_init in -lpthread... $ECHO_C" >&6; }
-if test "${ac_cv_lib_pthread_pthread_mutex_init+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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_mutex_init ();
-int
-main ()
-{
-return pthread_mutex_init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_pthread_pthread_mutex_init=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_pthread_pthread_mutex_init=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_pthread_mutex_init" >&6; }
-if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
-_ACEOF
-
-  LIBS="-lpthread $LIBS"
-
-fi
-
-  { echo "$as_me:$LINENO: checking for library containing pthread_mutex_lock" >&5
-echo $ECHO_N "checking for library containing pthread_mutex_lock... $ECHO_C" >&6; }
-if test "${ac_cv_search_pthread_mutex_lock+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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_mutex_lock ();
-int
-main ()
-{
-return pthread_mutex_lock ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' pthread; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_pthread_mutex_lock=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_pthread_mutex_lock+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_pthread_mutex_lock+set}" = set; then
-  :
-else
-  ac_cv_search_pthread_mutex_lock=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_pthread_mutex_lock" >&5
-echo "${ECHO_T}$ac_cv_search_pthread_mutex_lock" >&6; }
-ac_res=$ac_cv_search_pthread_mutex_lock
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREAD_MUTEX_LOCK 1
-_ACEOF
-
-fi
-
-fi
-
-
-# Check whether --with-udis86 was given.
-if test "${with_udis86+set}" = set; then
-  withval=$with_udis86;
-      USE_UDIS86=1
-
-      case "$withval" in
-        /usr/lib|yes) ;;
-        *) LDFLAGS="$LDFLAGS -L${withval}" ;;
-      esac
-
-{ echo "$as_me:$LINENO: checking for ud_init in -ludis86" >&5
-echo $ECHO_N "checking for ud_init in -ludis86... $ECHO_C" >&6; }
-if test "${ac_cv_lib_udis86_ud_init+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ludis86  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 ud_init ();
-int
-main ()
-{
-return ud_init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_udis86_ud_init=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_udis86_ud_init=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_udis86_ud_init" >&5
-echo "${ECHO_T}$ac_cv_lib_udis86_ud_init" >&6; }
-if test $ac_cv_lib_udis86_ud_init = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBUDIS86 1
-_ACEOF
-
-  LIBS="-ludis86 $LIBS"
-
-else
-
-        echo "Error! You need to have libudis86 around."
-        exit -1
-
-fi
-
-
-else
-  USE_UDIS86=0
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define USE_UDIS86 $USE_UDIS86
-_ACEOF
-
-
-
-
-
-
-
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
-  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
-echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_opendir=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
-  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_search_opendir=$ac_res
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for MAP_ANONYMOUS vs. MAP_ANON" >&5
-echo $ECHO_N "checking for MAP_ANONYMOUS vs. MAP_ANON... $ECHO_C" >&6; }
-if test "${ac_cv_header_mmap_anon+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/mman.h>
-#include <unistd.h>
-#include <fcntl.h>
-int
-main ()
-{
-mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_mmap_anon=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_mmap_anon=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_header_mmap_anon" >&5
-echo "${ECHO_T}$ac_cv_header_mmap_anon" >&6; }
-if test "$ac_cv_header_mmap_anon" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP_ANONYMOUS 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
-echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6; }
-if test "${ac_cv_header_stat_broken+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined S_ISBLK && defined S_IFDIR
-extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
-#endif
-
-#if defined S_ISBLK && defined S_IFCHR
-extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
-#endif
-
-#if defined S_ISLNK && defined S_IFREG
-extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
-#endif
-
-#if defined S_ISSOCK && defined S_IFREG
-extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
-#endif
-
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stat_broken=no
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_stat_broken=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
-echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; }
-if test $ac_cv_header_stat_broken = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STAT_MACROS_BROKEN 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
-if test "${ac_cv_header_sys_wait_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-int
-main ()
-{
-  int s;
-  wait (&s);
-  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_sys_wait_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_sys_wait_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
-if test $ac_cv_header_sys_wait_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
-if test "${ac_cv_header_time+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_time=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_time=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-echo "${ECHO_T}$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-for ac_header in dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-for ac_header in malloc.h setjmp.h signal.h stdint.h unistd.h utime.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-for ac_header in windows.h sys/mman.h sys/param.h sys/resource.h sys/time.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-for ac_header in sys/types.h malloc/malloc.h mach/mach.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-if test "$WANT_THREADS" -eq 1 ; then
-
-for ac_header in pthread.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-else
-  HAVE_PTHREAD_=0
-
-fi
-
-
-
-  { echo "$as_me:$LINENO: checking for HUGE_VAL sanity" >&5
-echo $ECHO_N "checking for HUGE_VAL sanity... $ECHO_C" >&6; }
-if test "${ac_cv_huge_val_sanity+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-
-    CXXFLAGS=-pedantic
-    if test "$cross_compiling" = yes; then
-  ac_cv_huge_val_sanity=yes
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-int
-main ()
-{
-double x = HUGE_VAL; return x != x;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_huge_val_sanity=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_huge_val_sanity=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-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
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_huge_val_sanity" >&5
-echo "${ECHO_T}$ac_cv_huge_val_sanity" >&6; }
-  HUGE_VAL_SANITY=$ac_cv_huge_val_sanity
-
-
-{ echo "$as_me:$LINENO: checking for pid_t" >&5
-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_pid_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef pid_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_pid_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_pid_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
-echo "${ECHO_T}$ac_cv_type_pid_t" >&6; }
-if test $ac_cv_type_pid_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_size_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef size_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_size_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_size_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }
-if test "${ac_cv_type_signal+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <signal.h>
-
-int
-main ()
-{
-return *(signal (0, 0)) (0) == 1;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_signal=int
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_signal=void
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
-echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; }
-if test "${ac_cv_struct_tm+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <time.h>
-
-int
-main ()
-{
-struct tm tm;
-				     int *p = &tm.tm_sec;
- 				     return !p;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_struct_tm=time.h
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_struct_tm=sys/time.h
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
-echo "${ECHO_T}$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TM_IN_SYS_TIME 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for int64_t" >&5
-echo $ECHO_N "checking for int64_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_int64_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef int64_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_int64_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_int64_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_int64_t" >&5
-echo "${ECHO_T}$ac_cv_type_int64_t" >&6; }
-if test $ac_cv_type_int64_t = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INT64_T 1
-_ACEOF
-
-
-else
-  { { echo "$as_me:$LINENO: error: Type int64_t required but not found" >&5
-echo "$as_me: error: Type int64_t required but not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-{ echo "$as_me:$LINENO: checking for uint64_t" >&5
-echo $ECHO_N "checking for uint64_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_uint64_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef uint64_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_uint64_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_uint64_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
-echo "${ECHO_T}$ac_cv_type_uint64_t" >&6; }
-if test $ac_cv_type_uint64_t = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_UINT64_T 1
-_ACEOF
-
-
-else
-  { echo "$as_me:$LINENO: checking for u_int64_t" >&5
-echo $ECHO_N "checking for u_int64_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_u_int64_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-typedef u_int64_t ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_u_int64_t=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_u_int64_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_u_int64_t" >&5
-echo "${ECHO_T}$ac_cv_type_u_int64_t" >&6; }
-if test $ac_cv_type_u_int64_t = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_U_INT64_T 1
-_ACEOF
-
-
-else
-  { { echo "$as_me:$LINENO: error: Type uint64_t or u_int64_t required but not found" >&5
-echo "$as_me: error: Type uint64_t or u_int64_t required but not found" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-for ac_func in backtrace ceilf floorf roundf rintf nearbyintf getcwd
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-for ac_func in powf fmodf strtof round
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-for ac_func in getpagesize getrusage getrlimit setrlimit gettimeofday
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-for ac_func in isatty mkdtemp mkstemp
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-
-for ac_func in mktemp realpath sbrk setrlimit strdup strerror strerror_r
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-for ac_func in strtoll strtoq sysconf malloc_zone_statistics
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-for ac_func in setjmp longjmp sigsetjmp siglongjmp
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-{ echo "$as_me:$LINENO: checking if printf has the %a format character" >&5
-echo $ECHO_N "checking if printf has the %a format character... $ECHO_C" >&6; }
-if test "${llvm_cv_c_printf_a+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-
- if test "$cross_compiling" = yes; then
-  llvmac_cv_c_printf_a=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-
-  /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main ()
-{
-
-volatile double A, B;
-char Buffer[100];
-A = 1;
-A /= 10.0;
-sprintf(Buffer, "%a", A);
-B = atof(Buffer);
-if (A != B)
-  return (1);
-if (A != 0x1.999999999999ap-4)
-  return (1);
-return (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  llvm_cv_c_printf_a=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-llvmac_cv_c_printf_a=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-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
-
-fi
-{ echo "$as_me:$LINENO: result: $llvm_cv_c_printf_a" >&5
-echo "${ECHO_T}$llvm_cv_c_printf_a" >&6; }
- if test "$llvm_cv_c_printf_a" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PRINTF_A 1
-_ACEOF
-
- fi
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments.  Useless!
-{ echo "$as_me:$LINENO: checking for working alloca.h" >&5
-echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
-			  if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_working_alloca_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_working_alloca_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
-echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for alloca" >&5
-echo $ECHO_N "checking for alloca... $ECHO_C" >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  ifdef HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-#    endif
-#   endif
-#  endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
-				    if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_func_alloca_works=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_alloca_works=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
-echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; }
-
-if test $ac_cv_func_alloca_works = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
-
-else
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble.  Some versions do not even contain alloca or
-# contain a buggy version.  If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
-
-
-{ echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; }
-if test "${ac_cv_os_cray+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then
-  ac_cv_os_cray=yes
-else
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
-    break
-fi
-
-  done
-fi
-
-{ echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_c_stack_direction=0
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-
-int
-main ()
-{
-  return find_stack_direction () < 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_stack_direction=1
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for srand48/lrand48/drand48 in <stdlib.h>" >&5
-echo $ECHO_N "checking for srand48/lrand48/drand48 in <stdlib.h>... $ECHO_C" >&6; }
-if test "${ac_cv_func_rand48+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-int
-main ()
-{
-srand48(0);lrand48();drand48();
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_rand48=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_rand48=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_rand48" >&5
-echo "${ECHO_T}$ac_cv_func_rand48" >&6; }
-
-if test "$ac_cv_func_rand48" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_RAND48 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking whether the compiler implements namespaces" >&5
-echo $ECHO_N "checking whether the compiler implements namespaces... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_namespaces+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-namespace Outer { namespace Inner { int i = 0; }}
-int
-main ()
-{
-using namespace Outer::Inner; return i;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_namespaces=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_namespaces=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_namespaces" >&5
-echo "${ECHO_T}$ac_cv_cxx_namespaces" >&6; }
-if test "$ac_cv_cxx_namespaces" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NAMESPACES
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether the compiler has <ext/hash_map> defining template class std::hash_map" >&5
-echo $ECHO_N "checking whether the compiler has <ext/hash_map> defining template class std::hash_map... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_std_ext_hash_map+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif
-int
-main ()
-{
-hash_map<int, int> t;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_std_ext_hash_map=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_std_ext_hash_map=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_std_ext_hash_map" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_std_ext_hash_map" >&6; }
- if test "$ac_cv_cxx_have_std_ext_hash_map" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_EXT_HASH_MAP 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_EXT_HASH_MAP 0
-_ACEOF
-
- fi
-
- { echo "$as_me:$LINENO: checking whether the compiler has <ext/hash_map> defining template class __gnu_cxx::hash_map" >&5
-echo $ECHO_N "checking whether the compiler has <ext/hash_map> defining template class __gnu_cxx::hash_map... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_gnu_ext_hash_map+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif
-int
-main ()
-{
-hash_map<int,int> t;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_gnu_ext_hash_map=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_gnu_ext_hash_map=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_gnu_ext_hash_map" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_gnu_ext_hash_map" >&6; }
- if test "$ac_cv_cxx_have_gnu_ext_hash_map" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_EXT_HASH_MAP 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_EXT_HASH_MAP 0
-_ACEOF
-
- fi
-
- { echo "$as_me:$LINENO: checking whether the compiler has <hash_map> defining template class ::hash_map" >&5
-echo $ECHO_N "checking whether the compiler has <hash_map> defining template class ::hash_map... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_global_hash_map+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <hash_map>
-int
-main ()
-{
-hash_map<int,int> t;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_global_hash_map=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_global_hash_map=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_global_hash_map" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_global_hash_map" >&6; }
- if test "$ac_cv_cxx_have_global_hash_map" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GLOBAL_HASH_MAP 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GLOBAL_HASH_MAP 0
-_ACEOF
-
- fi
-
-{ echo "$as_me:$LINENO: checking whether the compiler has <ext/hash_set> defining template class std::hash_set" >&5
-echo $ECHO_N "checking whether the compiler has <ext/hash_set> defining template class std::hash_set... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_std_ext_hash_set+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif
-int
-main ()
-{
-hash_set<int> t;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_std_ext_hash_set=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_std_ext_hash_set=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_std_ext_hash_set" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_std_ext_hash_set" >&6; }
- if test "$ac_cv_cxx_have_std_ext_hash_set" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_EXT_HASH_SET 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_EXT_HASH_SET 0
-_ACEOF
-
- fi
-
- { echo "$as_me:$LINENO: checking whether the compiler has <ext/hash_set> defining template class __gnu_cxx::hash_set" >&5
-echo $ECHO_N "checking whether the compiler has <ext/hash_set> defining template class __gnu_cxx::hash_set... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_gnu_ext_hash_set+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif
-int
-main ()
-{
-hash_set<int> t;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_gnu_ext_hash_set=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_gnu_ext_hash_set=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_gnu_ext_hash_set" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_gnu_ext_hash_set" >&6; }
- if test "$ac_cv_cxx_have_gnu_ext_hash_set" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_EXT_HASH_SET 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_EXT_HASH_SET 0
-_ACEOF
-
- fi
-
- { echo "$as_me:$LINENO: checking whether the compiler has <hash_set> defining template class ::hash_set" >&5
-echo $ECHO_N "checking whether the compiler has <hash_set> defining template class ::hash_set... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_global_hash_set+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <hash_set>
-int
-main ()
-{
-hash_set<int> t; return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_global_hash_set=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_global_hash_set=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_global_hash_set" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_global_hash_set" >&6; }
- if test "$ac_cv_cxx_have_global_hash_set" = yes
- then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GLOBAL_HASH_SET 1
-_ACEOF
-
- else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GLOBAL_HASH_SET 0
-_ACEOF
-
- fi
-
-{ echo "$as_me:$LINENO: checking whether the compiler has the standard iterator" >&5
-echo $ECHO_N "checking whether the compiler has the standard iterator... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_std_iterator+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif
-int
-main ()
-{
-iterator<int,int,int> t; return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_std_iterator=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_std_iterator=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_std_iterator" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_std_iterator" >&6; }
-if test "$ac_cv_cxx_have_std_iterator" = yes
-then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_ITERATOR 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_ITERATOR 0
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether the compiler has the bidirectional iterator" >&5
-echo $ECHO_N "checking whether the compiler has the bidirectional iterator... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_bi_iterator+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif
-int
-main ()
-{
-bidirectional_iterator<int,int> t; return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_bi_iterator=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_bi_iterator=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_bi_iterator" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_bi_iterator" >&6; }
-if test "$ac_cv_cxx_have_bi_iterator" = yes
-then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BI_ITERATOR 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BI_ITERATOR 0
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether the compiler has forward iterators" >&5
-echo $ECHO_N "checking whether the compiler has forward iterators... $ECHO_C" >&6; }
-if test "${ac_cv_cxx_have_fwd_iterator+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif
-int
-main ()
-{
-forward_iterator<int,int> t; return 0;
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_cxx_have_fwd_iterator=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_cxx_have_fwd_iterator=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_have_fwd_iterator" >&5
-echo "${ECHO_T}$ac_cv_cxx_have_fwd_iterator" >&6; }
-if test "$ac_cv_cxx_have_fwd_iterator" = yes
-then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FWD_ITERATOR 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FWD_ITERATOR 0
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for isnan in <math.h>" >&5
-echo $ECHO_N "checking for isnan in <math.h>... $ECHO_C" >&6; }
-if test "${ac_cv_func_isnan_in_math_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-int
-main ()
-{
-float f; isnan(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_isnan_in_math_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_isnan_in_math_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_isnan_in_math_h" >&5
-echo "${ECHO_T}$ac_cv_func_isnan_in_math_h" >&6; }
-
-
-if test "$ac_cv_func_isnan_in_math_h" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISNAN_IN_MATH_H 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for isnan in <cmath>" >&5
-echo $ECHO_N "checking for isnan in <cmath>... $ECHO_C" >&6; }
-if test "${ac_cv_func_isnan_in_cmath+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cmath>
-int
-main ()
-{
-float f; isnan(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_isnan_in_cmath=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_isnan_in_cmath=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_isnan_in_cmath" >&5
-echo "${ECHO_T}$ac_cv_func_isnan_in_cmath" >&6; }
-
-if test "$ac_cv_func_isnan_in_cmath" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISNAN_IN_CMATH 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for std::isnan in <cmath>" >&5
-echo $ECHO_N "checking for std::isnan in <cmath>... $ECHO_C" >&6; }
-if test "${ac_cv_func_std_isnan_in_cmath+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cmath>
-int
-main ()
-{
-float f; std::isnan(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_std_isnan_in_cmath=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_std_isnan_in_cmath=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_std_isnan_in_cmath" >&5
-echo "${ECHO_T}$ac_cv_func_std_isnan_in_cmath" >&6; }
-
-if test "$ac_cv_func_std_isnan_in_cmath" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_ISNAN_IN_CMATH 1
-_ACEOF
-
-fi
-
-
-{ echo "$as_me:$LINENO: checking for isinf in <math.h>" >&5
-echo $ECHO_N "checking for isinf in <math.h>... $ECHO_C" >&6; }
-if test "${ac_cv_func_isinf_in_math_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-int
-main ()
-{
-float f; isinf(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_isinf_in_math_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_isinf_in_math_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_isinf_in_math_h" >&5
-echo "${ECHO_T}$ac_cv_func_isinf_in_math_h" >&6; }
-
-if test "$ac_cv_func_isinf_in_math_h" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISINF_IN_MATH_H 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for isinf in <cmath>" >&5
-echo $ECHO_N "checking for isinf in <cmath>... $ECHO_C" >&6; }
-if test "${ac_cv_func_isinf_in_cmath+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cmath>
-int
-main ()
-{
-float f; isinf(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_isinf_in_cmath=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_isinf_in_cmath=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_isinf_in_cmath" >&5
-echo "${ECHO_T}$ac_cv_func_isinf_in_cmath" >&6; }
-
-if test "$ac_cv_func_isinf_in_cmath" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISINF_IN_CMATH 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for std::isinf in <cmath>" >&5
-echo $ECHO_N "checking for std::isinf in <cmath>... $ECHO_C" >&6; }
-if test "${ac_cv_func_std_isinf_in_cmath+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cmath>
-int
-main ()
-{
-float f; std::isinf(f)}
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_std_isinf_in_cmath=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_std_isinf_in_cmath=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_std_isinf_in_cmath" >&5
-echo "${ECHO_T}$ac_cv_func_std_isinf_in_cmath" >&6; }
-
-if test "$ac_cv_func_std_isinf_in_cmath" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_ISINF_IN_CMATH 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for finite in <ieeefp.h>" >&5
-echo $ECHO_N "checking for finite in <ieeefp.h>... $ECHO_C" >&6; }
-if test "${ac_cv_func_finite_in_ieeefp_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ieeefp.h>
-int
-main ()
-{
-float f; finite(f);
-  ;
-  return 0;
-}
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_finite_in_ieeefp_h=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_finite_in_ieeefp_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext 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
-{ echo "$as_me:$LINENO: result: $ac_cv_func_finite_in_ieeefp_h" >&5
-echo "${ECHO_T}$ac_cv_func_finite_in_ieeefp_h" >&6; }
-
-if test "$ac_cv_func_finite_in_ieeefp_h" = "yes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FINITE_IN_IEEEFP_H 1
-_ACEOF
-
-fi
-
-
-
-if test "$llvm_cv_platform_type" = "Unix" ; then
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ----------------------------------- ##
-## Report this to http://llvm.org/bugs ##
-## ----------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); 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 $ac_func
-
-/* 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 $ac_func ();
-/* 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_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-{ echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#ifndef HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h.  */
-# ifndef HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  ifdef HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
-  char *data, *data2, *data3;
-  int i, pagesize;
-  int fd;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    return 1;
-  if (write (fd, data, pagesize) != pagesize)
-    return 1;
-  close (fd);
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    return 1;
-  data2 = (char *) malloc (2 * pagesize);
-  if (!data2)
-    return 1;
-  data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      return 1;
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    return 1;
-  if (read (fd, data3, pagesize) != pagesize)
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      return 1;
-  close (fd);
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_fixed_mapped=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6; }
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-  { echo "$as_me:$LINENO: checking for mmap of files" >&5
-echo $ECHO_N "checking for mmap of files... $ECHO_C" >&6; }
-if test "${ac_cv_func_mmap_file+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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
-
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_file=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-
-    /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-
-int
-main ()
-{
-
-  int fd;
-  fd = creat ("foo",0777);
-  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
-  unlink ("foo");
-  return (fd != (int) MAP_FAILED);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_file=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_file=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-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
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_mmap_file" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_file" >&6; }
-if test "$ac_cv_func_mmap_file" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP_FILE
-_ACEOF
-
-   MMAP_FILE=yes
-
-fi
-
-  { echo "$as_me:$LINENO: checking if /dev/zero is needed for mmap" >&5
-echo $ECHO_N "checking if /dev/zero is needed for mmap... $ECHO_C" >&6; }
-if test "${ac_cv_need_dev_zero_for_mmap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$llvm_cv_os_type" = "Interix" ; then
-   ac_cv_need_dev_zero_for_mmap=yes
- else
-   ac_cv_need_dev_zero_for_mmap=no
- fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_need_dev_zero_for_mmap" >&5
-echo "${ECHO_T}$ac_cv_need_dev_zero_for_mmap" >&6; }
-if test "$ac_cv_need_dev_zero_for_mmap" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define NEED_DEV_ZERO_FOR_MMAP 1
-_ACEOF
-
-fi
-
-  if test "$ac_cv_func_mmap_fixed_mapped" = "no"
-  then
-    { echo "$as_me:$LINENO: WARNING: mmap() of a fixed address required but not supported" >&5
-echo "$as_me: WARNING: mmap() of a fixed address required but not supported" >&2;}
-  fi
-  if test "$ac_cv_func_mmap_file" = "no"
-  then
-    { echo "$as_me:$LINENO: WARNING: mmap() of files required but not found" >&5
-echo "$as_me: WARNING: mmap() of files required but not found" >&2;}
-  fi
-fi
-
-
-SHLIBEXT=$libltdl_cv_shlibext
-
-
-LLVM_CONFIGTIME=`date`
-
-
-cat >>confdefs.h <<_ACEOF
-#define LLVM_CONFIGTIME "$LLVM_CONFIGTIME"
-_ACEOF
-
-
-# Make sure we have a prefix and exec_prefix value that makes sense.
-if test "${prefix}" = "NONE" ; then
-  prefix="/usr/local"
-fi
-if test "${exec_prefix}" = "NONE" ; then
-  exec_prefix="$prefix"
-fi
-
-eval bindir="$bindir"
-eval sbindir="$sbindir"
-eval libexecdir="$libexecdir"
-eval sysconfdir="$sysconfdir"
-eval sharedstatedir="$sharedstatedir"
-eval localstatedir="$localstatedir"
-eval libdir="$libdir"
-eval includedir="$includedir"
-eval oldincludedir="$oldincludedir"
-eval datarootdir="$datarootdir"
-eval datadir="$datadir"
-eval infodir="$infodir"
-eval localedir="$localedir"
-eval mandir="$mandir"
-eval docdir="$docdir"
-eval htmldir="$htmldir"
-eval dvidir="$dvidir"
-eval pdfdir="$pdfdir"
-eval psdir="$psdir"
-
-
-
-ac_config_headers="$ac_config_headers include/llvm/Config/config.h"
-
-ac_config_headers="$ac_config_headers include/llvm/Support/DataTypes.h"
-
-ac_config_headers="$ac_config_headers include/llvm/ADT/hash_map"
-
-ac_config_headers="$ac_config_headers include/llvm/ADT/hash_set"
-
-ac_config_headers="$ac_config_headers include/llvm/ADT/iterator"
-
-
-ac_config_commands="$ac_config_commands Makefile"
-
-
-ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  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}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"INSTALL_LTDL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"INSTALL_LTDL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"CONVENIENCE_LTDL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"CONVENIENCE_LTDL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $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}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## 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=:
-  # 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
-
-
-
-
-# PATH needs CR
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-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.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-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
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  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" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (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
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-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
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    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
-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=:
-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
-
-# 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 LLVM Support Module $as_me 2.1svn, which was
-generated by GNU Autoconf 2.61.  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
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-LLVM Support Module config.status 2.1svn
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 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'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-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=$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 )
-    echo "$ac_cs_version"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$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
-if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
-  export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS
-#
-LLVM_TOP="${LLVM_TOP}"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "Makefile.config") CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
-    "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-    "setup") CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-    "include/llvm/Config/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Config/config.h" ;;
-    "include/llvm/Support/DataTypes.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Support/DataTypes.h" ;;
-    "include/llvm/ADT/hash_map") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/ADT/hash_map" ;;
-    "include/llvm/ADT/hash_set") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/ADT/hash_set" ;;
-    "include/llvm/ADT/iterator") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/ADT/iterator" ;;
-    "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-    "lib/Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  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_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-LLVM_TOP!$LLVM_TOP$ac_delim
-LLVM_COPYRIGHT!$LLVM_COPYRIGHT$ac_delim
-LLVM_MODULE_NAME!$LLVM_MODULE_NAME$ac_delim
-LLVM_MODULE_FULLNAME!$LLVM_MODULE_FULLNAME$ac_delim
-LLVM_MODULE_TARNAME!$LLVM_MODULE_TARNAME$ac_delim
-LLVM_MODULE_VERSION!$LLVM_MODULE_VERSION$ac_delim
-LLVM_MODULE_BUGREPORT!$LLVM_MODULE_BUGREPORT$ac_delim
-LLVM_MODULE_DEPENDS_ON!$LLVM_MODULE_DEPENDS_ON$ac_delim
-LLVM_CONFIGTIME!$LLVM_CONFIGTIME$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-target!$target$ac_delim
-target_cpu!$target_cpu$ac_delim
-target_vendor!$target_vendor$ac_delim
-target_os!$target_os$ac_delim
-OS!$OS$ac_delim
-LINKALL!$LINKALL$ac_delim
-NOLINKALL!$NOLINKALL$ac_delim
-LLVM_ON_UNIX!$LLVM_ON_UNIX$ac_delim
-LLVM_ON_WIN32!$LLVM_ON_WIN32$ac_delim
-ARCH!$ARCH$ac_delim
-ENDIAN!$ENDIAN$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-CPP!$CPP$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-LLVM_CROSS_COMPILING!$LLVM_CROSS_COMPILING$ac_delim
-BUILD_CC!$BUILD_CC$ac_delim
-BUILD_EXEEXT!$BUILD_EXEEXT$ac_delim
-SVNBUILD!$SVNBUILD$ac_delim
-WANT_ASSERTIONS!$WANT_ASSERTIONS$ac_delim
-WANT_DEBUG!$WANT_DEBUG$ac_delim
-WANT_DOXYGEN!$WANT_DOXYGEN$ac_delim
-WANT_CHECKING!$WANT_CHECKING$ac_delim
-WANT_OPTIMIZED!$WANT_OPTIMIZED$ac_delim
-WANT_OPT_FOR_SIZE!$WANT_OPT_FOR_SIZE$ac_delim
-WANT_PROFILING!$WANT_PROFILING$ac_delim
-WANT_GENERATE_PIC!$WANT_GENERATE_PIC$ac_delim
-WANT_STRIPPED!$WANT_STRIPPED$ac_delim
-WANT_THREADS!$WANT_THREADS$ac_delim
-WANT_VERBOSE!$WANT_VERBOSE$ac_delim
-DESTDIR!$DESTDIR$ac_delim
-EXTRA_OPTIONS!$EXTRA_OPTIONS$ac_delim
-TARGETS_TO_BUILD!$TARGETS_TO_BUILD$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-CXX!$CXX$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-CXXFLAGS!$CXXFLAGS$ac_delim
-ac_ct_CXX!$ac_ct_CXX$ac_delim
-LEX!$LEX$ac_delim
-LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim
-LEXLIB!$LEXLIB$ac_delim
-FLEX!$FLEX$ac_delim
-YACC!$YACC$ac_delim
-YFLAGS!$YFLAGS$ac_delim
-BISON!$BISON$ac_delim
-RANLIB!$RANLIB$ac_delim
-LN_S!$LN_S$ac_delim
-NM!$NM$ac_delim
-ifGNUmake!$ifGNUmake$ac_delim
-BINPWD!$BINPWD$ac_delim
-BZIP2!$BZIP2$ac_delim
-CMP!$CMP$ac_delim
-CP!$CP$ac_delim
-DOXYGEN!$DOXYGEN$ac_delim
-DATE!$DATE$ac_delim
-DOT!$DOT$ac_delim
-DOTTY!$DOTTY$ac_delim
-FIND!$FIND$ac_delim
-GRAPHVIZ!$GRAPHVIZ$ac_delim
-GROFF!$GROFF$ac_delim
-GV!$GV$ac_delim
-GZIP!$GZIP$ac_delim
-MKDIR!$MKDIR$ac_delim
-MV!$MV$ac_delim
-POD2HTML!$POD2HTML$ac_delim
-POD2MAN!$POD2MAN$ac_delim
-RM!$RM$ac_delim
-RUNTEST!$RUNTEST$ac_delim
-SED!$SED$ac_delim
-TAR!$TAR$ac_delim
-ZIP!$ZIP$ac_delim
-TCLSH!$TCLSH$ac_delim
-PERL!$PERL$ac_delim
-HAVE_PERL!$HAVE_PERL$ac_delim
-INSTALL_LTDL_TRUE!$INSTALL_LTDL_TRUE$ac_delim
-INSTALL_LTDL_FALSE!$INSTALL_LTDL_FALSE$ac_delim
-CONVENIENCE_LTDL_TRUE!$CONVENIENCE_LTDL_TRUE$ac_delim
-CONVENIENCE_LTDL_FALSE!$CONVENIENCE_LTDL_FALSE$ac_delim
-LIBADD_DL!$LIBADD_DL$ac_delim
-ECHO!$ECHO$ac_delim
-AR!$AR$ac_delim
-STRIP!$STRIP$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-ETAGSFLAGS!$ETAGSFLAGS$ac_delim
-LLVMGCC!$LLVMGCC$ac_delim
-LLVMGXX!$LLVMGXX$ac_delim
-USE_UDIS86!$USE_UDIS86$ac_delim
-HAVE_PTHREAD_!$HAVE_PTHREAD_$ac_delim
-HUGE_VAL_SANITY!$HUGE_VAL_SANITY$ac_delim
-ALLOCA!$ALLOCA$ac_delim
-MMAP_FILE!$MMAP_FILE$ac_delim
-SHLIBEXT!$SHLIBEXT$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 62; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[	 ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-   { (exit 1); exit 1; }; };;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
-      esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    fi
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
-    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 ||
-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"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`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 ||
-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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`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
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  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
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;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
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
-ac_dB='\\)[	 (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-	t rset
-	:rset
-	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
-	t ok
-	d
-	:ok
-	s/[\\&,]/\\&/g
-	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[	 #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
-/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
-  if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
-    fi
-  else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
-  fi
-  rm -f "$tmp/out12"
- ;;
-
-  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    "lib/Makefile":C) ${LLVM_TOP}/support/autoconf/mkinstalldirs `dirname lib/Makefile`
-     ${SHELL} ${LLVM_TOP}/support/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-
-  esac
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# 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 || { (exit 1); exit 1; }
-fi
-
diff --git a/support/docs/index.html b/support/docs/index.html
deleted file mode 100644
index 71d6d1c..0000000
--- a/support/docs/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-  <body>
-    <h1>LLVM SUPPORT DOCUMENTATION</h1>
-    <p>This is just a placeholder</p>
-  </body>
-</html>
diff --git a/support/include/llvm/ADT/APInt.h b/support/include/llvm/ADT/APInt.h
deleted file mode 100644
index 9e93598..0000000
--- a/support/include/llvm/ADT/APInt.h
+++ /dev/null
@@ -1,1233 +0,0 @@
-//===-- llvm/Support/APInt.h - For Arbitrary Precision Integer -*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Sheng Zhou and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a class to represent arbitrary precision integral
-// constant values and operations on them.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_APINT_H
-#define LLVM_APINT_H
-
-#include "llvm/Support/DataTypes.h"
-#include <cassert>
-#include <string>
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-//                              APInt Class
-//===----------------------------------------------------------------------===//
-
-/// APInt - This class represents arbitrary precision constant integral values.
-/// It is a functional replacement for common case unsigned integer type like 
-/// "unsigned", "unsigned long" or "uint64_t", but also allows non-byte-width 
-/// integer sizes and large integer value types such as 3-bits, 15-bits, or more
-/// than 64-bits of precision. APInt provides a variety of arithmetic operators 
-/// and methods to manipulate integer values of any bit-width. It supports both
-/// the typical integer arithmetic and comparison operations as well as bitwise
-/// manipulation.
-///
-/// The class has several invariants worth noting:
-///   * All bit, byte, and word positions are zero-based.
-///   * Once the bit width is set, it doesn't change except by the Truncate, 
-///     SignExtend, or ZeroExtend operations.
-///   * All binary operators must be on APInt instances of the same bit width.
-///     Attempting to use these operators on instances with different bit 
-///     widths will yield an assertion.
-///   * The value is stored canonically as an unsigned value. For operations
-///     where it makes a difference, there are both signed and unsigned variants
-///     of the operation. For example, sdiv and udiv. However, because the bit
-///     widths must be the same, operations such as Mul and Add produce the same
-///     results regardless of whether the values are interpreted as signed or
-///     not.
-///   * In general, the class tries to follow the style of computation that LLVM
-///     uses in its IR. This simplifies its use for LLVM.
-///
-/// @brief Class for arbitrary precision integers.
-class APInt {
-  /// This enum is just used to hold constants we need for IntegerType.
-  enum {
-    MIN_INT_BITS = 1,     ///< Minimum number of bits that can be specified
-    MAX_INT_BITS = ~0U    ///< Maximum number of bits that can be specified
-  };
-
-  uint32_t BitWidth;      ///< The number of bits in this APInt.
-
-  /// This union is used to store the integer value. When the
-  /// integer bit-width <= 64, it uses VAL, otherwise it uses pVal.
-  union {
-    uint64_t VAL;    ///< Used to store the <= 64 bits integer value.
-    uint64_t *pVal;  ///< Used to store the >64 bits integer value.
-  };
-
-  /// This enum is used to hold the constants we needed for APInt.
-  enum {
-    APINT_BITS_PER_WORD = sizeof(uint64_t) * 8, ///< Bits in a word
-    APINT_WORD_SIZE = sizeof(uint64_t)          ///< Byte size of a word
-  };
-
-  /// This constructor is used only internally for speed of construction of
-  /// temporaries. It is unsafe for general use so it is not public.
-  /// @brief Fast internal constructor
-  APInt(uint64_t* val, uint32_t bits) : BitWidth(bits), pVal(val) { }
-
-  /// @returns true if the number of bits <= 64, false otherwise.
-  /// @brief Determine if this APInt just has one word to store value.
-  inline bool isSingleWord() const { 
-    return BitWidth <= APINT_BITS_PER_WORD; 
-  }
-
-  /// @returns the word position for the specified bit position.
-  /// @brief Determine which word a bit is in.
-  static inline uint32_t whichWord(uint32_t bitPosition) { 
-    return bitPosition / APINT_BITS_PER_WORD; 
-  }
-
-  /// @returns the bit position in a word for the specified bit position 
-  /// in the APInt.
-  /// @brief Determine which bit in a word a bit is in.
-  static inline uint32_t whichBit(uint32_t bitPosition) { 
-    return bitPosition % APINT_BITS_PER_WORD; 
-  }
-
-  /// This method generates and returns a uint64_t (word) mask for a single 
-  /// bit at a specific bit position. This is used to mask the bit in the 
-  /// corresponding word.
-  /// @returns a uint64_t with only bit at "whichBit(bitPosition)" set
-  /// @brief Get a single bit mask.
-  static inline uint64_t maskBit(uint32_t bitPosition) { 
-    return 1ULL << whichBit(bitPosition); 
-  }
-
-  /// This method is used internally to clear the to "N" bits in the high order
-  /// word that are not used by the APInt. This is needed after the most 
-  /// significant word is assigned a value to ensure that those bits are 
-  /// zero'd out.
-  /// @brief Clear unused high order bits
-  inline APInt& clearUnusedBits() {
-    // Compute how many bits are used in the final word
-    uint32_t wordBits = BitWidth % APINT_BITS_PER_WORD;
-    if (wordBits == 0)
-      // If all bits are used, we want to leave the value alone. This also
-      // avoids the undefined behavior of >> when the shfit is the same size as
-      // the word size (64).
-      return *this;
-
-    // Mask out the hight bits.
-    uint64_t mask = ~uint64_t(0ULL) >> (APINT_BITS_PER_WORD - wordBits);
-    if (isSingleWord())
-      VAL &= mask;
-    else
-      pVal[getNumWords() - 1] &= mask;
-    return *this;
-  }
-
-  /// @returns the corresponding word for the specified bit position.
-  /// @brief Get the word corresponding to a bit position
-  inline uint64_t getWord(uint32_t bitPosition) const { 
-    return isSingleWord() ? VAL : pVal[whichWord(bitPosition)]; 
-  }
-
-  /// This is used by the constructors that take string arguments.
-  /// @brief Convert a char array into an APInt
-  void fromString(uint32_t numBits, const char *strStart, uint32_t slen, 
-                  uint8_t radix);
-
-  /// This is used by the toString method to divide by the radix. It simply
-  /// provides a more convenient form of divide for internal use since KnuthDiv
-  /// has specific constraints on its inputs. If those constraints are not met
-  /// then it provides a simpler form of divide.
-  /// @brief An internal division function for dividing APInts.
-  static void divide(const APInt LHS, uint32_t lhsWords, 
-                     const APInt &RHS, uint32_t rhsWords,
-                     APInt *Quotient, APInt *Remainder);
-
-#ifndef NDEBUG
-  /// @brief debug method
-  void dump() const;
-#endif
-
-public:
-  /// @name Constructors
-  /// @{
-  /// If isSigned is true then val is treated as if it were a signed value
-  /// (i.e. as an int64_t) and the appropriate sign extension to the bit width
-  /// will be done. Otherwise, no sign extension occurs (high order bits beyond
-  /// the range of val are zero filled).
-  /// @param numBits the bit width of the constructed APInt
-  /// @param val the initial value of the APInt
-  /// @param isSigned how to treat signedness of val
-  /// @brief Create a new APInt of numBits width, initialized as val.
-  APInt(uint32_t numBits, uint64_t val, bool isSigned = false);
-
-  /// Note that numWords can be smaller or larger than the corresponding bit
-  /// width but any extraneous bits will be dropped.
-  /// @param numBits the bit width of the constructed APInt
-  /// @param numWords the number of words in bigVal
-  /// @param bigVal a sequence of words to form the initial value of the APInt
-  /// @brief Construct an APInt of numBits width, initialized as bigVal[].
-  APInt(uint32_t numBits, uint32_t numWords, uint64_t bigVal[]);
-
-  /// This constructor interprets Val as a string in the given radix. The 
-  /// interpretation stops when the first charater that is not suitable for the
-  /// radix is encountered. Acceptable radix values are 2, 8, 10 and 16. It is
-  /// an error for the value implied by the string to require more bits than 
-  /// numBits.
-  /// @param numBits the bit width of the constructed APInt
-  /// @param val the string to be interpreted
-  /// @param radix the radix of Val to use for the intepretation
-  /// @brief Construct an APInt from a string representation.
-  APInt(uint32_t numBits, const std::string& val, uint8_t radix);
-
-  /// This constructor interprets the slen characters starting at StrStart as
-  /// a string in the given radix. The interpretation stops when the first 
-  /// character that is not suitable for the radix is encountered. Acceptable
-  /// radix values are 2, 8, 10 and 16. It is an error for the value implied by
-  /// the string to require more bits than numBits.
-  /// @param numBits the bit width of the constructed APInt
-  /// @param strStart the start of the string to be interpreted
-  /// @param slen the maximum number of characters to interpret
-  /// @brief Construct an APInt from a string representation.
-  APInt(uint32_t numBits, const char strStart[], uint32_t slen, uint8_t radix);
-
-  /// Simply makes *this a copy of that.
-  /// @brief Copy Constructor.
-  APInt(const APInt& that);
-
-  /// @brief Destructor.
-  ~APInt();
-
-  /// @}
-  /// @name Value Tests
-  /// @{
-  /// This tests the high bit of this APInt to determine if it is set.
-  /// @returns true if this APInt is negative, false otherwise
-  /// @brief Determine sign of this APInt.
-  bool isNegative() const {
-    return (*this)[BitWidth - 1];
-  }
-
-  /// This tests the high bit of the APInt to determine if it is unset.
-  /// @brief Determine if this APInt Value is positive (not negative).
-  bool isPositive() const {
-    return !isNegative();
-  }
-
-  /// This tests if the value of this APInt is strictly positive (> 0).
-  /// @returns true if this APInt is Positive and not zero.
-  /// @brief Determine if this APInt Value is strictly positive.
-  inline bool isStrictlyPositive() const {
-    return isPositive() && (*this) != 0;
-  }
-
-  /// This checks to see if the value has all bits of the APInt are set or not.
-  /// @brief Determine if all bits are set
-  inline bool isAllOnesValue() const {
-    return countPopulation() == BitWidth;
-  }
-
-  /// This checks to see if the value of this APInt is the maximum unsigned
-  /// value for the APInt's bit width.
-  /// @brief Determine if this is the largest unsigned value.
-  bool isMaxValue() const {
-    return countPopulation() == BitWidth;
-  }
-
-  /// This checks to see if the value of this APInt is the maximum signed
-  /// value for the APInt's bit width.
-  /// @brief Determine if this is the largest signed value.
-  bool isMaxSignedValue() const {
-    return BitWidth == 1 ? VAL == 0 :
-                          !isNegative() && countPopulation() == BitWidth - 1;
-  }
-
-  /// This checks to see if the value of this APInt is the minimum unsigned
-  /// value for the APInt's bit width.
-  /// @brief Determine if this is the smallest unsigned value.
-  bool isMinValue() const {
-    return countPopulation() == 0;
-  }
-
-  /// This checks to see if the value of this APInt is the minimum signed
-  /// value for the APInt's bit width.
-  /// @brief Determine if this is the smallest signed value.
-  bool isMinSignedValue() const {
-    return BitWidth == 1 ? VAL == 1 :
-                           isNegative() && countPopulation() == 1;
-  }
-
-  /// @brief Check if this APInt has an N-bits integer value.
-  inline bool isIntN(uint32_t N) const {
-    assert(N && "N == 0 ???");
-    if (isSingleWord()) {
-      return VAL == (VAL & (~0ULL >> (64 - N)));
-    } else {
-      APInt Tmp(N, getNumWords(), pVal);
-      return Tmp == (*this);
-    }
-  }
-
-  /// @returns true if the argument APInt value is a power of two > 0.
-  bool isPowerOf2() const; 
-
-  /// isSignBit - Return true if this is the value returned by getSignBit.
-  bool isSignBit() const { return isMinSignedValue(); }
-  
-  /// This converts the APInt to a boolean value as a test against zero.
-  /// @brief Boolean conversion function. 
-  inline bool getBoolValue() const {
-    return *this != 0;
-  }
-
-  /// getLimitedValue - If this value is smaller than the specified limit,
-  /// return it, otherwise return the limit value.  This causes the value
-  /// to saturate to the limit.
-  uint64_t getLimitedValue(uint64_t Limit = ~0ULL) const {
-    return (getActiveBits() > 64 || getZExtValue() > Limit) ?
-      Limit :  getZExtValue();
-  }
-
-  /// @}
-  /// @name Value Generators
-  /// @{
-  /// @brief Gets maximum unsigned value of APInt for specific bit width.
-  static APInt getMaxValue(uint32_t numBits) {
-    return APInt(numBits, 0).set();
-  }
-
-  /// @brief Gets maximum signed value of APInt for a specific bit width.
-  static APInt getSignedMaxValue(uint32_t numBits) {
-    return APInt(numBits, 0).set().clear(numBits - 1);
-  }
-
-  /// @brief Gets minimum unsigned value of APInt for a specific bit width.
-  static APInt getMinValue(uint32_t numBits) {
-    return APInt(numBits, 0);
-  }
-
-  /// @brief Gets minimum signed value of APInt for a specific bit width.
-  static APInt getSignedMinValue(uint32_t numBits) {
-    return APInt(numBits, 0).set(numBits - 1);
-  }
-
-  /// getSignBit - This is just a wrapper function of getSignedMinValue(), and
-  /// it helps code readability when we want to get a SignBit.
-  /// @brief Get the SignBit for a specific bit width.
-  inline static APInt getSignBit(uint32_t BitWidth) {
-    return getSignedMinValue(BitWidth);
-  }
-
-  /// @returns the all-ones value for an APInt of the specified bit-width.
-  /// @brief Get the all-ones value.
-  static APInt getAllOnesValue(uint32_t numBits) {
-    return APInt(numBits, 0).set();
-  }
-
-  /// @returns the '0' value for an APInt of the specified bit-width.
-  /// @brief Get the '0' value.
-  static APInt getNullValue(uint32_t numBits) {
-    return APInt(numBits, 0);
-  }
-
-  /// Get an APInt with the same BitWidth as this APInt, just zero mask
-  /// the low bits and right shift to the least significant bit.
-  /// @returns the high "numBits" bits of this APInt.
-  APInt getHiBits(uint32_t numBits) const;
-
-  /// Get an APInt with the same BitWidth as this APInt, just zero mask
-  /// the high bits.
-  /// @returns the low "numBits" bits of this APInt.
-  APInt getLoBits(uint32_t numBits) const;
-
-  /// Constructs an APInt value that has a contiguous range of bits set. The
-  /// bits from loBit to hiBit will be set. All other bits will be zero. For
-  /// example, with parameters(32, 15, 0) you would get 0x0000FFFF. If hiBit is
-  /// less than loBit then the set bits "wrap". For example, with 
-  /// parameters (32, 3, 28), you would get 0xF000000F. 
-  /// @param numBits the intended bit width of the result
-  /// @param loBit the index of the lowest bit set.
-  /// @param hiBit the index of the highest bit set.
-  /// @returns An APInt value with the requested bits set.
-  /// @brief Get a value with a block of bits set.
-  static APInt getBitsSet(uint32_t numBits, uint32_t loBit, uint32_t hiBit) {
-    assert(hiBit < numBits && "hiBit out of range");
-    assert(loBit < numBits && "loBit out of range");
-    if (hiBit < loBit)
-      return getLowBitsSet(numBits, hiBit+1) |
-             getHighBitsSet(numBits, numBits-loBit+1);
-    return getLowBitsSet(numBits, hiBit-loBit+1).shl(loBit);
-  }
-
-  /// Constructs an APInt value that has the top hiBitsSet bits set.
-  /// @param numBits the bitwidth of the result
-  /// @param hiBitsSet the number of high-order bits set in the result.
-  /// @brief Get a value with high bits set
-  static APInt getHighBitsSet(uint32_t numBits, uint32_t hiBitsSet) {
-    assert(hiBitsSet <= numBits && "Too many bits to set!");
-    // Handle a degenerate case, to avoid shifting by word size
-    if (hiBitsSet == 0)
-      return APInt(numBits, 0);
-    uint32_t shiftAmt = numBits - hiBitsSet;
-    // For small values, return quickly
-    if (numBits <= APINT_BITS_PER_WORD)
-      return APInt(numBits, ~0ULL << shiftAmt);
-    return (~APInt(numBits, 0)).shl(shiftAmt);
-  }
-
-  /// Constructs an APInt value that has the bottom loBitsSet bits set.
-  /// @param numBits the bitwidth of the result
-  /// @param loBitsSet the number of low-order bits set in the result.
-  /// @brief Get a value with low bits set
-  static APInt getLowBitsSet(uint32_t numBits, uint32_t loBitsSet) {
-    assert(loBitsSet <= numBits && "Too many bits to set!");
-    // Handle a degenerate case, to avoid shifting by word size
-    if (loBitsSet == 0)
-      return APInt(numBits, 0);
-    if (loBitsSet == APINT_BITS_PER_WORD)
-      return APInt(numBits, -1ULL);
-    // For small values, return quickly
-    if (numBits < APINT_BITS_PER_WORD)
-      return APInt(numBits, (1ULL << loBitsSet) - 1);
-    return (~APInt(numBits, 0)).lshr(numBits - loBitsSet);
-  }
-
-  /// The hash value is computed as the sum of the words and the bit width.
-  /// @returns A hash value computed from the sum of the APInt words.
-  /// @brief Get a hash value based on this APInt
-  uint64_t getHashValue() const;
-
-  /// This function returns a pointer to the internal storage of the APInt. 
-  /// This is useful for writing out the APInt in binary form without any
-  /// conversions.
-  inline const uint64_t* getRawData() const {
-    if (isSingleWord())
-      return &VAL;
-    return &pVal[0];
-  }
-
-  /// @}
-  /// @name Unary Operators
-  /// @{
-  /// @returns a new APInt value representing *this incremented by one
-  /// @brief Postfix increment operator.
-  inline const APInt operator++(int) {
-    APInt API(*this);
-    ++(*this);
-    return API;
-  }
-
-  /// @returns *this incremented by one
-  /// @brief Prefix increment operator.
-  APInt& operator++();
-
-  /// @returns a new APInt representing *this decremented by one.
-  /// @brief Postfix decrement operator. 
-  inline const APInt operator--(int) {
-    APInt API(*this);
-    --(*this);
-    return API;
-  }
-
-  /// @returns *this decremented by one.
-  /// @brief Prefix decrement operator. 
-  APInt& operator--();
-
-  /// Performs a bitwise complement operation on this APInt. 
-  /// @returns an APInt that is the bitwise complement of *this
-  /// @brief Unary bitwise complement operator. 
-  APInt operator~() const;
-
-  /// Negates *this using two's complement logic.
-  /// @returns An APInt value representing the negation of *this.
-  /// @brief Unary negation operator
-  inline APInt operator-() const {
-    return APInt(BitWidth, 0) - (*this);
-  }
-
-  /// Performs logical negation operation on this APInt.
-  /// @returns true if *this is zero, false otherwise.
-  /// @brief Logical negation operator. 
-  bool operator !() const;
-
-  /// @}
-  /// @name Assignment Operators
-  /// @{
-  /// @returns *this after assignment of RHS.
-  /// @brief Copy assignment operator. 
-  APInt& operator=(const APInt& RHS);
-
-  /// The RHS value is assigned to *this. If the significant bits in RHS exceed
-  /// the bit width, the excess bits are truncated. If the bit width is larger
-  /// than 64, the value is zero filled in the unspecified high order bits.
-  /// @returns *this after assignment of RHS value.
-  /// @brief Assignment operator. 
-  APInt& operator=(uint64_t RHS);
-
-  /// Performs a bitwise AND operation on this APInt and RHS. The result is
-  /// assigned to *this. 
-  /// @returns *this after ANDing with RHS.
-  /// @brief Bitwise AND assignment operator. 
-  APInt& operator&=(const APInt& RHS);
-
-  /// Performs a bitwise OR operation on this APInt and RHS. The result is 
-  /// assigned *this;
-  /// @returns *this after ORing with RHS.
-  /// @brief Bitwise OR assignment operator. 
-  APInt& operator|=(const APInt& RHS);
-
-  /// Performs a bitwise XOR operation on this APInt and RHS. The result is
-  /// assigned to *this.
-  /// @returns *this after XORing with RHS.
-  /// @brief Bitwise XOR assignment operator. 
-  APInt& operator^=(const APInt& RHS);
-
-  /// Multiplies this APInt by RHS and assigns the result to *this.
-  /// @returns *this
-  /// @brief Multiplication assignment operator. 
-  APInt& operator*=(const APInt& RHS);
-
-  /// Adds RHS to *this and assigns the result to *this.
-  /// @returns *this
-  /// @brief Addition assignment operator. 
-  APInt& operator+=(const APInt& RHS);
-
-  /// Subtracts RHS from *this and assigns the result to *this.
-  /// @returns *this
-  /// @brief Subtraction assignment operator. 
-  APInt& operator-=(const APInt& RHS);
-
-  /// Shifts *this left by shiftAmt and assigns the result to *this.
-  /// @returns *this after shifting left by shiftAmt
-  /// @brief Left-shift assignment function.
-  inline APInt& operator<<=(uint32_t shiftAmt) {
-    *this = shl(shiftAmt);
-    return *this;
-  }
-
-  /// @}
-  /// @name Binary Operators
-  /// @{
-  /// Performs a bitwise AND operation on *this and RHS.
-  /// @returns An APInt value representing the bitwise AND of *this and RHS.
-  /// @brief Bitwise AND operator. 
-  APInt operator&(const APInt& RHS) const;
-  APInt And(const APInt& RHS) const {
-    return this->operator&(RHS);
-  }
-
-  /// Performs a bitwise OR operation on *this and RHS.
-  /// @returns An APInt value representing the bitwise OR of *this and RHS.
-  /// @brief Bitwise OR operator. 
-  APInt operator|(const APInt& RHS) const;
-  APInt Or(const APInt& RHS) const {
-    return this->operator|(RHS);
-  }
-
-  /// Performs a bitwise XOR operation on *this and RHS.
-  /// @returns An APInt value representing the bitwise XOR of *this and RHS.
-  /// @brief Bitwise XOR operator. 
-  APInt operator^(const APInt& RHS) const;
-  APInt Xor(const APInt& RHS) const {
-    return this->operator^(RHS);
-  }
-
-  /// Multiplies this APInt by RHS and returns the result.
-  /// @brief Multiplication operator. 
-  APInt operator*(const APInt& RHS) const;
-
-  /// Adds RHS to this APInt and returns the result.
-  /// @brief Addition operator. 
-  APInt operator+(const APInt& RHS) const;
-  APInt operator+(uint64_t RHS) const {
-    return (*this) + APInt(BitWidth, RHS);
-  }
-
-  /// Subtracts RHS from this APInt and returns the result.
-  /// @brief Subtraction operator. 
-  APInt operator-(const APInt& RHS) const;
-  APInt operator-(uint64_t RHS) const {
-    return (*this) - APInt(BitWidth, RHS);
-  }
-  
-  APInt operator<<(unsigned Bits) const {
-    return shl(Bits);
-  }
-
-  /// Arithmetic right-shift this APInt by shiftAmt.
-  /// @brief Arithmetic right-shift function.
-  APInt ashr(uint32_t shiftAmt) const;
-
-  /// Logical right-shift this APInt by shiftAmt.
-  /// @brief Logical right-shift function.
-  APInt lshr(uint32_t shiftAmt) const;
-
-  /// Left-shift this APInt by shiftAmt.
-  /// @brief Left-shift function.
-  APInt shl(uint32_t shiftAmt) const;
-
-  /// @brief Rotate left by rotateAmt.
-  APInt rotl(uint32_t rotateAmt) const;
-
-  /// @brief Rotate right by rotateAmt.
-  APInt rotr(uint32_t rotateAmt) const;
-
-  /// Perform an unsigned divide operation on this APInt by RHS. Both this and
-  /// RHS are treated as unsigned quantities for purposes of this division.
-  /// @returns a new APInt value containing the division result
-  /// @brief Unsigned division operation.
-  APInt udiv(const APInt& RHS) const;
-
-  /// Signed divide this APInt by APInt RHS.
-  /// @brief Signed division function for APInt.
-  inline APInt sdiv(const APInt& RHS) const {
-    if (isNegative())
-      if (RHS.isNegative())
-        return (-(*this)).udiv(-RHS);
-      else
-        return -((-(*this)).udiv(RHS));
-    else if (RHS.isNegative())
-      return -(this->udiv(-RHS));
-    return this->udiv(RHS);
-  }
-
-  /// Perform an unsigned remainder operation on this APInt with RHS being the
-  /// divisor. Both this and RHS are treated as unsigned quantities for purposes
-  /// of this operation. Note that this is a true remainder operation and not
-  /// a modulo operation because the sign follows the sign of the dividend
-  /// which is *this.
-  /// @returns a new APInt value containing the remainder result
-  /// @brief Unsigned remainder operation.
-  APInt urem(const APInt& RHS) const;
-
-  /// Signed remainder operation on APInt.
-  /// @brief Function for signed remainder operation.
-  inline APInt srem(const APInt& RHS) const {
-    if (isNegative())
-      if (RHS.isNegative())
-        return -((-(*this)).urem(-RHS));
-      else
-        return -((-(*this)).urem(RHS));
-    else if (RHS.isNegative())
-      return this->urem(-RHS);
-    return this->urem(RHS);
-  }
-
-  /// Sometimes it is convenient to divide two APInt values and obtain both
-  /// the quotient and remainder. This function does both operations in the
-  /// same computation making it a little more efficient.
-  /// @brief Dual division/remainder interface.
-  static void udivrem(const APInt &LHS, const APInt &RHS, 
-                      APInt &Quotient, APInt &Remainder);
-
-  static void sdivrem(const APInt &LHS, const APInt &RHS,
-                      APInt &Quotient, APInt &Remainder)
-  {
-    if (LHS.isNegative()) {
-      if (RHS.isNegative())
-        APInt::udivrem(-LHS, -RHS, Quotient, Remainder);
-      else
-        APInt::udivrem(-LHS, RHS, Quotient, Remainder);
-      Quotient = -Quotient;
-      Remainder = -Remainder;
-    } else if (RHS.isNegative()) {
-      APInt::udivrem(LHS, -RHS, Quotient, Remainder);
-      Quotient = -Quotient;
-    } else {
-      APInt::udivrem(LHS, RHS, Quotient, Remainder);
-    }
-  }
-
-  /// @returns the bit value at bitPosition
-  /// @brief Array-indexing support.
-  bool operator[](uint32_t bitPosition) const;
-
-  /// @}
-  /// @name Comparison Operators
-  /// @{
-  /// Compares this APInt with RHS for the validity of the equality
-  /// relationship.
-  /// @brief Equality operator. 
-  bool operator==(const APInt& RHS) const;
-
-  /// Compares this APInt with a uint64_t for the validity of the equality 
-  /// relationship.
-  /// @returns true if *this == Val
-  /// @brief Equality operator.
-  bool operator==(uint64_t Val) const;
-
-  /// Compares this APInt with RHS for the validity of the equality
-  /// relationship.
-  /// @returns true if *this == Val
-  /// @brief Equality comparison.
-  bool eq(const APInt &RHS) const {
-    return (*this) == RHS; 
-  }
-
-  /// Compares this APInt with RHS for the validity of the inequality
-  /// relationship.
-  /// @returns true if *this != Val
-  /// @brief Inequality operator. 
-  inline bool operator!=(const APInt& RHS) const {
-    return !((*this) == RHS);
-  }
-
-  /// Compares this APInt with a uint64_t for the validity of the inequality 
-  /// relationship.
-  /// @returns true if *this != Val
-  /// @brief Inequality operator. 
-  inline bool operator!=(uint64_t Val) const {
-    return !((*this) == Val);
-  }
-  
-  /// Compares this APInt with RHS for the validity of the inequality
-  /// relationship.
-  /// @returns true if *this != Val
-  /// @brief Inequality comparison
-  bool ne(const APInt &RHS) const {
-    return !((*this) == RHS);
-  }
-
-  /// Regards both *this and RHS as unsigned quantities and compares them for
-  /// the validity of the less-than relationship.
-  /// @returns true if *this < RHS when both are considered unsigned.
-  /// @brief Unsigned less than comparison
-  bool ult(const APInt& RHS) const;
-
-  /// Regards both *this and RHS as signed quantities and compares them for
-  /// validity of the less-than relationship.
-  /// @returns true if *this < RHS when both are considered signed.
-  /// @brief Signed less than comparison
-  bool slt(const APInt& RHS) const;
-
-  /// Regards both *this and RHS as unsigned quantities and compares them for
-  /// validity of the less-or-equal relationship.
-  /// @returns true if *this <= RHS when both are considered unsigned.
-  /// @brief Unsigned less or equal comparison
-  bool ule(const APInt& RHS) const {
-    return ult(RHS) || eq(RHS);
-  }
-
-  /// Regards both *this and RHS as signed quantities and compares them for
-  /// validity of the less-or-equal relationship.
-  /// @returns true if *this <= RHS when both are considered signed.
-  /// @brief Signed less or equal comparison
-  bool sle(const APInt& RHS) const {
-    return slt(RHS) || eq(RHS);
-  }
-
-  /// Regards both *this and RHS as unsigned quantities and compares them for
-  /// the validity of the greater-than relationship.
-  /// @returns true if *this > RHS when both are considered unsigned.
-  /// @brief Unsigned greather than comparison
-  bool ugt(const APInt& RHS) const {
-    return !ult(RHS) && !eq(RHS);
-  }
-
-  /// Regards both *this and RHS as signed quantities and compares them for
-  /// the validity of the greater-than relationship.
-  /// @returns true if *this > RHS when both are considered signed.
-  /// @brief Signed greather than comparison
-  bool sgt(const APInt& RHS) const {
-    return !slt(RHS) && !eq(RHS);
-  }
-
-  /// Regards both *this and RHS as unsigned quantities and compares them for
-  /// validity of the greater-or-equal relationship.
-  /// @returns true if *this >= RHS when both are considered unsigned.
-  /// @brief Unsigned greater or equal comparison
-  bool uge(const APInt& RHS) const {
-    return !ult(RHS);
-  }
-
-  /// Regards both *this and RHS as signed quantities and compares them for
-  /// validity of the greater-or-equal relationship.
-  /// @returns true if *this >= RHS when both are considered signed.
-  /// @brief Signed greather or equal comparison
-  bool sge(const APInt& RHS) const {
-    return !slt(RHS);
-  }
-
-  /// @}
-  /// @name Resizing Operators
-  /// @{
-  /// Truncate the APInt to a specified width. It is an error to specify a width
-  /// that is greater than or equal to the current width. 
-  /// @brief Truncate to new width.
-  APInt &trunc(uint32_t width);
-
-  /// This operation sign extends the APInt to a new width. If the high order
-  /// bit is set, the fill on the left will be done with 1 bits, otherwise zero.
-  /// It is an error to specify a width that is less than or equal to the 
-  /// current width.
-  /// @brief Sign extend to a new width.
-  APInt &sext(uint32_t width);
-
-  /// This operation zero extends the APInt to a new width. The high order bits
-  /// are filled with 0 bits.  It is an error to specify a width that is less 
-  /// than or equal to the current width.
-  /// @brief Zero extend to a new width.
-  APInt &zext(uint32_t width);
-
-  /// Make this APInt have the bit width given by \p width. The value is sign
-  /// extended, truncated, or left alone to make it that width.
-  /// @brief Sign extend or truncate to width
-  APInt &sextOrTrunc(uint32_t width);
-
-  /// Make this APInt have the bit width given by \p width. The value is zero
-  /// extended, truncated, or left alone to make it that width.
-  /// @brief Zero extend or truncate to width
-  APInt &zextOrTrunc(uint32_t width);
-
-  /// @}
-  /// @name Bit Manipulation Operators
-  /// @{
-  /// @brief Set every bit to 1.
-  APInt& set();
-
-  /// Set the given bit to 1 whose position is given as "bitPosition".
-  /// @brief Set a given bit to 1.
-  APInt& set(uint32_t bitPosition);
-
-  /// @brief Set every bit to 0.
-  APInt& clear();
-
-  /// Set the given bit to 0 whose position is given as "bitPosition".
-  /// @brief Set a given bit to 0.
-  APInt& clear(uint32_t bitPosition);
-
-  /// @brief Toggle every bit to its opposite value.
-  APInt& flip();
-
-  /// Toggle a given bit to its opposite value whose position is given 
-  /// as "bitPosition".
-  /// @brief Toggles a given bit to its opposite value.
-  APInt& flip(uint32_t bitPosition);
-
-  /// @}
-  /// @name Value Characterization Functions
-  /// @{
-
-  /// @returns the total number of bits.
-  inline uint32_t getBitWidth() const { 
-    return BitWidth; 
-  }
-
-  /// Here one word's bitwidth equals to that of uint64_t.
-  /// @returns the number of words to hold the integer value of this APInt.
-  /// @brief Get the number of words.
-  inline uint32_t getNumWords() const {
-    return (BitWidth + APINT_BITS_PER_WORD - 1) / APINT_BITS_PER_WORD;
-  }
-
-  /// This function returns the number of active bits which is defined as the
-  /// bit width minus the number of leading zeros. This is used in several
-  /// computations to see how "wide" the value is.
-  /// @brief Compute the number of active bits in the value
-  inline uint32_t getActiveBits() const {
-    return BitWidth - countLeadingZeros();
-  }
-
-  /// This function returns the number of active words in the value of this
-  /// APInt. This is used in conjunction with getActiveData to extract the raw
-  /// value of the APInt.
-  inline uint32_t getActiveWords() const {
-    return whichWord(getActiveBits()-1) + 1;
-  }
-
-  /// Computes the minimum bit width for this APInt while considering it to be
-  /// a signed (and probably negative) value. If the value is not negative, 
-  /// this function returns the same value as getActiveBits(). Otherwise, it
-  /// returns the smallest bit width that will retain the negative value. For
-  /// example, -1 can be written as 0b1 or 0xFFFFFFFFFF. 0b1 is shorter and so
-  /// for -1, this function will always return 1.
-  /// @brief Get the minimum bit size for this signed APInt 
-  inline uint32_t getMinSignedBits() const {
-    if (isNegative())
-      return BitWidth - countLeadingOnes() + 1;
-    return getActiveBits();
-  }
-
-  /// This method attempts to return the value of this APInt as a zero extended
-  /// uint64_t. The bitwidth must be <= 64 or the value must fit within a
-  /// uint64_t. Otherwise an assertion will result.
-  /// @brief Get zero extended value
-  inline uint64_t getZExtValue() const {
-    if (isSingleWord())
-      return VAL;
-    assert(getActiveBits() <= 64 && "Too many bits for uint64_t");
-    return pVal[0];
-  }
-
-  /// This method attempts to return the value of this APInt as a sign extended
-  /// int64_t. The bit width must be <= 64 or the value must fit within an
-  /// int64_t. Otherwise an assertion will result.
-  /// @brief Get sign extended value
-  inline int64_t getSExtValue() const {
-    if (isSingleWord())
-      return int64_t(VAL << (APINT_BITS_PER_WORD - BitWidth)) >> 
-                     (APINT_BITS_PER_WORD - BitWidth);
-    assert(getActiveBits() <= 64 && "Too many bits for int64_t");
-    return int64_t(pVal[0]);
-  }
-
-  /// This method determines how many bits are required to hold the APInt
-  /// equivalent of the string given by \p str of length \p slen.
-  /// @brief Get bits required for string value.
-  static uint32_t getBitsNeeded(const char* str, uint32_t slen, uint8_t radix);
-
-  /// countLeadingZeros - This function is an APInt version of the
-  /// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number
-  /// of zeros from the most significant bit to the first one bit.
-  /// @returns getNumWords() * APINT_BITS_PER_WORD if the value is zero.
-  /// @returns the number of zeros from the most significant bit to the first
-  /// one bits.
-  /// @brief Count the number of leading one bits.
-  uint32_t countLeadingZeros() const;
-
-  /// countLeadingOnes - This function counts the number of contiguous 1 bits
-  /// in the high order bits. The count stops when the first 0 bit is reached.
-  /// @returns 0 if the high order bit is not set
-  /// @returns the number of 1 bits from the most significant to the least
-  /// @brief Count the number of leading one bits.
-  uint32_t countLeadingOnes() const;
-
-  /// countTrailingZeros - This function is an APInt version of the 
-  /// countTrailingZoers_{32,64} functions in MathExtras.h. It counts 
-  /// the number of zeros from the least significant bit to the first one bit.
-  /// @returns getNumWords() * APINT_BITS_PER_WORD if the value is zero.
-  /// @returns the number of zeros from the least significant bit to the first
-  /// one bit.
-  /// @brief Count the number of trailing zero bits.
-  uint32_t countTrailingZeros() const;
-
-  /// countPopulation - This function is an APInt version of the
-  /// countPopulation_{32,64} functions in MathExtras.h. It counts the number
-  /// of 1 bits in the APInt value. 
-  /// @returns 0 if the value is zero.
-  /// @returns the number of set bits.
-  /// @brief Count the number of bits set.
-  uint32_t countPopulation() const; 
-
-  /// @}
-  /// @name Conversion Functions
-  /// @{
-
-  /// This is used internally to convert an APInt to a string.
-  /// @brief Converts an APInt to a std::string
-  std::string toString(uint8_t radix, bool wantSigned) const;
-
-  /// Considers the APInt to be unsigned and converts it into a string in the
-  /// radix given. The radix can be 2, 8, 10 or 16.
-  /// @returns a character interpretation of the APInt
-  /// @brief Convert unsigned APInt to string representation.
-  inline std::string toString(uint8_t radix = 10) const {
-    return toString(radix, false);
-  }
-
-  /// Considers the APInt to be unsigned and converts it into a string in the
-  /// radix given. The radix can be 2, 8, 10 or 16.
-  /// @returns a character interpretation of the APInt
-  /// @brief Convert unsigned APInt to string representation.
-  inline std::string toStringSigned(uint8_t radix = 10) const {
-    return toString(radix, true);
-  }
-
-  /// @returns a byte-swapped representation of this APInt Value.
-  APInt byteSwap() const;
-
-  /// @brief Converts this APInt to a double value.
-  double roundToDouble(bool isSigned) const;
-
-  /// @brief Converts this unsigned APInt to a double value.
-  double roundToDouble() const {
-    return roundToDouble(false);
-  }
-
-  /// @brief Converts this signed APInt to a double value.
-  double signedRoundToDouble() const {
-    return roundToDouble(true);
-  }
-
-  /// The conversion does not do a translation from integer to double, it just
-  /// re-interprets the bits as a double. Note that it is valid to do this on
-  /// any bit width. Exactly 64 bits will be translated.
-  /// @brief Converts APInt bits to a double
-  double bitsToDouble() const {
-    union {
-      uint64_t I;
-      double D;
-    } T;
-    T.I = (isSingleWord() ? VAL : pVal[0]);
-    return T.D;
-  }
-
-  /// The conversion does not do a translation from integer to float, it just
-  /// re-interprets the bits as a float. Note that it is valid to do this on
-  /// any bit width. Exactly 32 bits will be translated.
-  /// @brief Converts APInt bits to a double
-  float bitsToFloat() const {
-    union {
-      uint32_t I;
-      float F;
-    } T;
-    T.I = uint32_t((isSingleWord() ? VAL : pVal[0]));
-    return T.F;
-  }
-
-  /// The conversion does not do a translation from double to integer, it just
-  /// re-interprets the bits of the double. Note that it is valid to do this on
-  /// any bit width but bits from V may get truncated.
-  /// @brief Converts a double to APInt bits.
-  APInt& doubleToBits(double V) {
-    union {
-      uint64_t I;
-      double D;
-    } T;
-    T.D = V;
-    if (isSingleWord())
-      VAL = T.I;
-    else
-      pVal[0] = T.I;
-    return clearUnusedBits();
-  }
-
-  /// The conversion does not do a translation from float to integer, it just
-  /// re-interprets the bits of the float. Note that it is valid to do this on
-  /// any bit width but bits from V may get truncated.
-  /// @brief Converts a float to APInt bits.
-  APInt& floatToBits(float V) {
-    union {
-      uint32_t I;
-      float F;
-    } T;
-    T.F = V;
-    if (isSingleWord())
-      VAL = T.I;
-    else
-      pVal[0] = T.I;
-    return clearUnusedBits();
-  }
-
-  /// @}
-  /// @name Mathematics Operations
-  /// @{
-
-  /// @returns the floor log base 2 of this APInt.
-  inline uint32_t logBase2() const {
-    return BitWidth - 1 - countLeadingZeros();
-  }
-
-  /// @returns the log base 2 of this APInt if its an exact power of two, -1
-  /// otherwise
-  inline int32_t exactLogBase2() const {
-    if (!isPowerOf2())
-      return -1;
-    return logBase2();
-  }
-
-  /// @brief Compute the square root
-  APInt sqrt() const;
-
-  /// If *this is < 0 then return -(*this), otherwise *this;
-  /// @brief Get the absolute value;
-  APInt abs() const {
-    if (isNegative())
-      return -(*this);
-    return *this;
-  }
-  /// @}
-};
-
-inline bool operator==(uint64_t V1, const APInt& V2) {
-  return V2 == V1;
-}
-
-inline bool operator!=(uint64_t V1, const APInt& V2) {
-  return V2 != V1;
-}
-
-namespace APIntOps {
-
-/// @brief Determine the smaller of two APInts considered to be signed.
-inline APInt smin(const APInt &A, const APInt &B) {
-  return A.slt(B) ? A : B;
-}
-
-/// @brief Determine the larger of two APInts considered to be signed.
-inline APInt smax(const APInt &A, const APInt &B) {
-  return A.sgt(B) ? A : B;
-}
-
-/// @brief Determine the smaller of two APInts considered to be signed.
-inline APInt umin(const APInt &A, const APInt &B) {
-  return A.ult(B) ? A : B;
-}
-
-/// @brief Determine the larger of two APInts considered to be unsigned.
-inline APInt umax(const APInt &A, const APInt &B) {
-  return A.ugt(B) ? A : B;
-}
-
-/// @brief Check if the specified APInt has a N-bits integer value.
-inline bool isIntN(uint32_t N, const APInt& APIVal) {
-  return APIVal.isIntN(N);
-}
-
-/// @returns true if the argument APInt value is a sequence of ones
-/// starting at the least significant bit with the remainder zero.
-inline bool isMask(uint32_t numBits, const APInt& APIVal) {
-  return APIVal.getBoolValue() && ((APIVal + APInt(numBits,1)) & APIVal) == 0;
-}
-
-/// @returns true if the argument APInt value contains a sequence of ones
-/// with the remainder zero.
-inline bool isShiftedMask(uint32_t numBits, const APInt& APIVal) {
-  return isMask(numBits, (APIVal - APInt(numBits,1)) | APIVal);
-}
-
-/// @returns a byte-swapped representation of the specified APInt Value.
-inline APInt byteSwap(const APInt& APIVal) {
-  return APIVal.byteSwap();
-}
-
-/// @returns the floor log base 2 of the specified APInt value.
-inline uint32_t logBase2(const APInt& APIVal) {
-  return APIVal.logBase2(); 
-}
-
-/// GreatestCommonDivisor - This function returns the greatest common
-/// divisor of the two APInt values using Enclid's algorithm.
-/// @returns the greatest common divisor of Val1 and Val2
-/// @brief Compute GCD of two APInt values.
-APInt GreatestCommonDivisor(const APInt& Val1, const APInt& Val2);
-
-/// Treats the APInt as an unsigned value for conversion purposes.
-/// @brief Converts the given APInt to a double value.
-inline double RoundAPIntToDouble(const APInt& APIVal) {
-  return APIVal.roundToDouble();
-}
-
-/// Treats the APInt as a signed value for conversion purposes.
-/// @brief Converts the given APInt to a double value.
-inline double RoundSignedAPIntToDouble(const APInt& APIVal) {
-  return APIVal.signedRoundToDouble();
-}
-
-/// @brief Converts the given APInt to a float vlalue.
-inline float RoundAPIntToFloat(const APInt& APIVal) {
-  return float(RoundAPIntToDouble(APIVal));
-}
-
-/// Treast the APInt as a signed value for conversion purposes.
-/// @brief Converts the given APInt to a float value.
-inline float RoundSignedAPIntToFloat(const APInt& APIVal) {
-  return float(APIVal.signedRoundToDouble());
-}
-
-/// RoundDoubleToAPInt - This function convert a double value to an APInt value.
-/// @brief Converts the given double value into a APInt.
-APInt RoundDoubleToAPInt(double Double, uint32_t width);
-
-/// RoundFloatToAPInt - Converts a float value into an APInt value.
-/// @brief Converts a float value into a APInt.
-inline APInt RoundFloatToAPInt(float Float, uint32_t width) {
-  return RoundDoubleToAPInt(double(Float), width);
-}
-
-/// Arithmetic right-shift the APInt by shiftAmt.
-/// @brief Arithmetic right-shift function.
-inline APInt ashr(const APInt& LHS, uint32_t shiftAmt) {
-  return LHS.ashr(shiftAmt);
-}
-
-/// Logical right-shift the APInt by shiftAmt.
-/// @brief Logical right-shift function.
-inline APInt lshr(const APInt& LHS, uint32_t shiftAmt) {
-  return LHS.lshr(shiftAmt);
-}
-
-/// Left-shift the APInt by shiftAmt.
-/// @brief Left-shift function.
-inline APInt shl(const APInt& LHS, uint32_t shiftAmt) {
-  return LHS.shl(shiftAmt);
-}
-
-/// Signed divide APInt LHS by APInt RHS.
-/// @brief Signed division function for APInt.
-inline APInt sdiv(const APInt& LHS, const APInt& RHS) {
-  return LHS.sdiv(RHS);
-}
-
-/// Unsigned divide APInt LHS by APInt RHS.
-/// @brief Unsigned division function for APInt.
-inline APInt udiv(const APInt& LHS, const APInt& RHS) {
-  return LHS.udiv(RHS);
-}
-
-/// Signed remainder operation on APInt.
-/// @brief Function for signed remainder operation.
-inline APInt srem(const APInt& LHS, const APInt& RHS) {
-  return LHS.srem(RHS);
-}
-
-/// Unsigned remainder operation on APInt.
-/// @brief Function for unsigned remainder operation.
-inline APInt urem(const APInt& LHS, const APInt& RHS) {
-  return LHS.urem(RHS);
-}
-
-/// Performs multiplication on APInt values.
-/// @brief Function for multiplication operation.
-inline APInt mul(const APInt& LHS, const APInt& RHS) {
-  return LHS * RHS;
-}
-
-/// Performs addition on APInt values.
-/// @brief Function for addition operation.
-inline APInt add(const APInt& LHS, const APInt& RHS) {
-  return LHS + RHS;
-}
-
-/// Performs subtraction on APInt values.
-/// @brief Function for subtraction operation.
-inline APInt sub(const APInt& LHS, const APInt& RHS) {
-  return LHS - RHS;
-}
-
-/// Performs bitwise AND operation on APInt LHS and 
-/// APInt RHS.
-/// @brief Bitwise AND function for APInt.
-inline APInt And(const APInt& LHS, const APInt& RHS) {
-  return LHS & RHS;
-}
-
-/// Performs bitwise OR operation on APInt LHS and APInt RHS.
-/// @brief Bitwise OR function for APInt. 
-inline APInt Or(const APInt& LHS, const APInt& RHS) {
-  return LHS | RHS;
-}
-
-/// Performs bitwise XOR operation on APInt.
-/// @brief Bitwise XOR function for APInt.
-inline APInt Xor(const APInt& LHS, const APInt& RHS) {
-  return LHS ^ RHS;
-} 
-
-/// Performs a bitwise complement operation on APInt.
-/// @brief Bitwise complement function. 
-inline APInt Not(const APInt& APIVal) {
-  return ~APIVal;
-}
-
-} // End of APIntOps namespace
-
-} // End of llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/APSInt.h b/support/include/llvm/ADT/APSInt.h
deleted file mode 100644
index 4eb4be2..0000000
--- a/support/include/llvm/ADT/APSInt.h
+++ /dev/null
@@ -1,110 +0,0 @@
-//===-- llvm/Support/APSInt.h - Arbitrary Precision Signed Int -*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the APSInt class, which is a simple class that
-// represents an arbitrary sized integer that knows its signedness.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_APSINT_H
-#define LLVM_APSINT_H
-
-#include "llvm/ADT/APInt.h"
-
-namespace llvm {
-  
-  
-class APSInt : public APInt {
-  bool IsUnsigned;
-public:
-  /// APSInt ctor - Create an APSInt with the specified width, default to
-  /// unsigned.
-  explicit APSInt(unsigned BitWidth) : APInt(BitWidth, 0), IsUnsigned(true) {}
-  APSInt(const APInt &I) : APInt(I), IsUnsigned(true) {}
-
-  APSInt &operator=(const APSInt &RHS) {
-    APInt::operator=(RHS); 
-    IsUnsigned = RHS.IsUnsigned;
-    return *this;
-  }
-
-  APSInt &operator=(const APInt &RHS) {
-    // Retain our current sign.
-    APInt::operator=(RHS); 
-    return *this;
-  }
-
-  APSInt &operator=(uint64_t RHS) {
-    // Retain our current sign.
-    APInt::operator=(RHS); 
-    return *this;
-  }
-
-  // Query sign information.
-  bool isSigned() const { return !IsUnsigned; }
-  bool isUnsigned() const { return IsUnsigned; }
-  void setIsUnsigned(bool Val) { IsUnsigned = Val; }
-  void setIsSigned(bool Val) { IsUnsigned = !Val; }
-  
-  
-  const APSInt &operator%=(const APSInt &RHS) {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    if (IsUnsigned)
-      *this = urem(RHS);
-    else
-      *this = srem(RHS);
-    return *this;
-  }
-  const APSInt &operator/=(const APSInt &RHS) {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    if (IsUnsigned)
-      *this = udiv(RHS);
-    else
-      *this = sdiv(RHS);
-    return *this;
-  }
-  APSInt operator%(const APSInt &RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? urem(RHS) : srem(RHS);
-  }
-  APSInt operator/(const APSInt &RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? udiv(RHS) : sdiv(RHS);
-  }
-  
-  const APSInt &operator>>=(unsigned Amt) {
-    *this = *this >> Amt;
-    return *this;
-  }
-  
-  APSInt operator>>(unsigned Amt) const {
-    return IsUnsigned ? lshr(Amt) : ashr(Amt);
-  }
-  
-  inline bool operator<(const APSInt& RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? ult(RHS) : slt(RHS);
-  }
-  inline bool operator>(const APSInt& RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? ugt(RHS) : sgt(RHS);
-  }
-  inline bool operator<=(const APSInt& RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? ule(RHS) : sle(RHS);
-  }
-  inline bool operator>=(const APSInt& RHS) const {
-    assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!");
-    return IsUnsigned ? uge(RHS) : sge(RHS);
-  }
-};
-  
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/ADT/BitVector.h b/support/include/llvm/ADT/BitVector.h
deleted file mode 100644
index 243a810..0000000
--- a/support/include/llvm/ADT/BitVector.h
+++ /dev/null
@@ -1,369 +0,0 @@
-//===- llvm/ADT/BitVector.h - Bit vectors -----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Evan Cheng and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the BitVector class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_BITVECTOR_H
-#define LLVM_ADT_BITVECTOR_H
-
-#include "llvm/Support/MathExtras.h"
-#include <algorithm>
-#include <cstdlib>
-#include <cassert>
-
-namespace llvm {
-
-class BitVector {
-  typedef unsigned long BitWord;
-
-  enum { BITWORD_SIZE = sizeof(BitWord) * 8 };
-
-  BitWord  *Bits;        // Actual bits. 
-  unsigned Size;         // Size of bitvector in bits.
-  unsigned Capacity;     // Size of allocated memory in BitWord.
-
-public:
-  // Encapsulation of a single bit.
-  class reference {
-    friend class BitVector;
-
-    BitWord *WordRef;
-    unsigned BitPos;
-
-    reference();  // Undefined
-
-  public:
-    reference(BitVector &b, unsigned Idx) {
-      WordRef = &b.Bits[Idx / BITWORD_SIZE];
-      BitPos = Idx % BITWORD_SIZE;
-    }
-
-    ~reference() {}
-
-    reference& operator=(bool t) {
-      if (t)
-        *WordRef |= 1L << BitPos;
-      else
-        *WordRef &= ~(1L << BitPos);
-      return *this;
-    }
-
-    operator bool() const {
-      return (*WordRef) & (1L << BitPos);
-    }
-  };
-
-
-  /// BitVector default ctor - Creates an empty bitvector.
-  BitVector() : Size(0), Capacity(0) {
-    Bits = NULL;
-  }
-
-  /// BitVector ctor - Creates a bitvector of specified number of bits. All
-  /// bits are initialized to the specified value.
-  explicit BitVector(unsigned s, bool t = false) : Size(s) {
-    Capacity = NumBitWords(s);
-    Bits = new BitWord[Capacity];
-    init_words(Bits, Capacity, t);
-    if (t)
-      clear_unused_bits();
-  }
-
-  /// BitVector copy ctor.
-  BitVector(const BitVector &RHS) : Size(RHS.size()) {
-    if (Size == 0) {
-      Bits = NULL;
-      Capacity = 0;
-      return;
-    }
-
-    Capacity = NumBitWords(RHS.size());
-    Bits = new BitWord[Capacity];
-    std::copy(RHS.Bits, &RHS.Bits[Capacity], Bits);
-  }
-  
-  ~BitVector() {
-    delete[] Bits;
-  }
-
-  /// size - Returns the number of bits in this bitvector.
-  unsigned size() const { return Size; }
-
-  /// count - Returns the number of bits which are set.
-  unsigned count() const {
-    unsigned NumBits = 0;
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      if (sizeof(BitWord) == 4)
-        NumBits += CountPopulation_32(Bits[i]);
-      else if (sizeof(BitWord) == 8)
-        NumBits += CountPopulation_64(Bits[i]);
-      else
-        assert(0 && "Unsupported!");
-    return NumBits;
-  }
-
-  /// any - Returns true if any bit is set.
-  bool any() const {
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      if (Bits[i] != 0)
-        return true;
-    return false;
-  }
-
-  /// none - Returns true if none of the bits are set.
-  bool none() const {
-    return !any();
-  }
-
-  /// find_first - Returns the index of the first set bit, -1 if none
-  /// of the bits are set.
-  int find_first() const {
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      if (Bits[i] != 0) {
-        if (sizeof(BitWord) == 4)
-          return i * BITWORD_SIZE + CountTrailingZeros_32(Bits[i]);
-        else if (sizeof(BitWord) == 8)
-          return i * BITWORD_SIZE + CountTrailingZeros_64(Bits[i]);
-        else
-          assert(0 && "Unsupported!");
-      }
-    return -1;
-  }
-
-  /// find_next - Returns the index of the next set bit following the
-  /// "Prev" bit. Returns -1 if the next set bit is not found.
-  int find_next(unsigned Prev) const {
-    ++Prev;
-    if (Prev >= Size)
-      return -1;
-
-    unsigned WordPos = Prev / BITWORD_SIZE;
-    unsigned BitPos = Prev % BITWORD_SIZE;
-    BitWord Copy = Bits[WordPos];
-    // Mask off previous bits.
-    Copy &= ~0L << BitPos;
-
-    if (Copy != 0) {
-      if (sizeof(BitWord) == 4)
-        return WordPos * BITWORD_SIZE + CountTrailingZeros_32(Copy);
-      else if (sizeof(BitWord) == 8)
-        return WordPos * BITWORD_SIZE + CountTrailingZeros_64(Copy);
-      else
-        assert(0 && "Unsupported!");
-    }
-
-    // Check subsequent words.
-    for (unsigned i = WordPos+1; i < NumBitWords(size()); ++i)
-      if (Bits[i] != 0) {
-        if (sizeof(BitWord) == 4)
-          return i * BITWORD_SIZE + CountTrailingZeros_32(Bits[i]);
-        else if (sizeof(BitWord) == 8)
-          return i * BITWORD_SIZE + CountTrailingZeros_64(Bits[i]);
-        else
-          assert(0 && "Unsupported!");
-      }
-    return -1;
-  }
-
-  /// clear - Clear all bits.
-  void clear() {
-    Size = 0;
-  }
-
-  /// resize - Grow or shrink the bitvector.
-  void resize(unsigned N, bool t = false) {
-    if (N > Capacity * BITWORD_SIZE) {
-      unsigned OldCapacity = Capacity;
-      grow(N);
-      init_words(&Bits[OldCapacity], (Capacity-OldCapacity), t);
-    }
-    
-    // If we previously had no size, initialize the low word
-    if (Size == 0)
-      for (unsigned i = 0; i < Capacity; ++i)
-        Bits[i] = 0 - (unsigned)t;
-    
-    Size = N;
-    clear_unused_bits();
-  }
-
-  void reserve(unsigned N) {
-    if (N > Capacity * BITWORD_SIZE)
-      grow(N);
-  }
-
-  // Set, reset, flip
-  BitVector &set() {
-    init_words(Bits, Capacity, true);
-    clear_unused_bits();
-    return *this;
-  }
-
-  BitVector &set(unsigned Idx) {
-    Bits[Idx / BITWORD_SIZE] |= 1L << (Idx % BITWORD_SIZE);
-    return *this;
-  }
-
-  BitVector &reset() {
-    init_words(Bits, Capacity, false);
-    return *this;
-  }
-
-  BitVector &reset(unsigned Idx) {
-    Bits[Idx / BITWORD_SIZE] &= ~(1L << (Idx % BITWORD_SIZE));
-    return *this;
-  }
-
-  BitVector &flip() {
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      Bits[i] = ~Bits[i];
-    clear_unused_bits();
-    return *this;
-  }
-
-  BitVector &flip(unsigned Idx) {
-    Bits[Idx / BITWORD_SIZE] ^= 1L << (Idx % BITWORD_SIZE);
-    return *this;
-  }
-
-  // No argument flip.
-  BitVector operator~() const {
-    return BitVector(*this).flip();
-  }
-
-  // Indexing.
-  reference operator[](unsigned Idx) {
-    return reference(*this, Idx);
-  }
-
-  bool operator[](unsigned Idx) const {
-    BitWord Mask = 1L << (Idx % BITWORD_SIZE);
-    return (Bits[Idx / BITWORD_SIZE] & Mask) != 0;
-  }
-
-  bool test(unsigned Idx) const {
-    return (*this)[Idx];
-  }
-
-  // Comparison operators.
-  bool operator==(const BitVector &RHS) const {
-    if (Size != RHS.Size)
-      return false;
-
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      if (Bits[i] != RHS.Bits[i])
-        return false;
-    return true;
-  }
-
-  bool operator!=(const BitVector &RHS) const {
-    return !(*this == RHS);
-  }
-
-  // Intersection, union, disjoint union.
-  BitVector operator&=(const BitVector &RHS) {
-    assert(Size == RHS.Size && "Illegal operation!");
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      Bits[i] &= RHS.Bits[i];
-    return *this;
-  }
-
-  BitVector operator|=(const BitVector &RHS) {
-    assert(Size == RHS.Size && "Illegal operation!");
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      Bits[i] |= RHS.Bits[i];
-    return *this;
-  }
-
-  BitVector operator^=(const BitVector &RHS) {
-    assert(Size == RHS.Size && "Illegal operation!");
-    for (unsigned i = 0; i < NumBitWords(size()); ++i)
-      Bits[i] ^= RHS.Bits[i];
-    return *this;
-  }
-  
-  // Assignment operator.
-  const BitVector &operator=(const BitVector &RHS) {
-    if (this == &RHS) return *this;
-
-    Size = RHS.size();
-    unsigned RHSWords = NumBitWords(Size);
-    if (Size <= Capacity * BITWORD_SIZE) {
-      std::copy(RHS.Bits, &RHS.Bits[RHSWords], Bits);
-      clear_unused_bits();
-      return *this;
-    }
-  
-    // Grow the bitvector to have enough elements.
-    Capacity = NumBitWords(Size);
-    BitWord *NewBits = new BitWord[Capacity];
-    std::copy(RHS.Bits, &RHS.Bits[RHSWords], NewBits);
-
-    // Destroy the old bits.
-    delete[] Bits;
-    Bits = NewBits;
-
-    return *this;
-  }
-
-private:
-  unsigned NumBitWords(unsigned S) const {
-    return (S + BITWORD_SIZE-1) / BITWORD_SIZE;
-  }
-
-  // Clear the unused top bits in the high word.
-  void clear_unused_bits() {
-    unsigned ExtraBits = Size % BITWORD_SIZE;
-    if (ExtraBits) {
-      unsigned index = Size / BITWORD_SIZE;
-      Bits[index] &= ~(~0L << ExtraBits);
-    }
-  }
-
-  void grow(unsigned NewSize) {
-    unsigned OldCapacity = Capacity;
-    Capacity = NumBitWords(NewSize);
-    BitWord *NewBits = new BitWord[Capacity];
-
-    // Copy the old bits over.
-    if (OldCapacity != 0)
-      std::copy(Bits, &Bits[OldCapacity], NewBits);
-
-    // Destroy the old bits.
-    delete[] Bits;
-    Bits = NewBits;
-  }
-
-  void init_words(BitWord *B, unsigned NumWords, bool t) {
-    memset(B, 0 - (int)t, NumWords*sizeof(BitWord));
-  } 
-};
-
-inline BitVector operator&(const BitVector &LHS, const BitVector &RHS) {
-  BitVector Result(LHS);
-  Result &= RHS;
-  return Result;
-}
-
-inline BitVector operator|(const BitVector &LHS, const BitVector &RHS) {
-  BitVector Result(LHS);
-  Result |= RHS;
-  return Result;
-}
-
-inline BitVector operator^(const BitVector &LHS, const BitVector &RHS) {
-  BitVector Result(LHS);
-  Result ^= RHS;
-  return Result;
-}
- 
-} // End llvm namespace
-#endif
diff --git a/support/include/llvm/ADT/DenseMap.h b/support/include/llvm/ADT/DenseMap.h
deleted file mode 100644
index 83edd64..0000000
--- a/support/include/llvm/ADT/DenseMap.h
+++ /dev/null
@@ -1,355 +0,0 @@
-//===- llvm/ADT/DenseMap.h - Dense probed hash table ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the DenseMap class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_DENSEMAP_H
-#define LLVM_ADT_DENSEMAP_H
-
-#include "llvm/Support/DataTypes.h"
-#include <cassert>
-#include <utility>
-
-namespace llvm {
-  
-template<typename T>
-struct DenseMapKeyInfo {
-  //static inline T getEmptyKey();
-  //static inline T getTombstoneKey();
-  //static unsigned getHashValue(const T &Val);
-  //static bool isPod()
-};
-
-// Provide DenseMapKeyInfo for all pointers.
-template<typename T>
-struct DenseMapKeyInfo<T*> {
-  static inline T* getEmptyKey() { return (T*)-1; }
-  static inline T* getTombstoneKey() { return (T*)-2; }
-  static unsigned getHashValue(const T *PtrVal) {
-    return (unsigned)((uintptr_t)PtrVal >> 4) ^
-           (unsigned)((uintptr_t)PtrVal >> 9);
-  }
-  static bool isPod() { return true; }
-};
-
-template<typename KeyT, typename ValueT, 
-         typename KeyInfoT = DenseMapKeyInfo<KeyT> >
-class DenseMapIterator;
-template<typename KeyT, typename ValueT,
-         typename KeyInfoT = DenseMapKeyInfo<KeyT> >
-class DenseMapConstIterator;
-
-template<typename KeyT, typename ValueT,
-         typename KeyInfoT = DenseMapKeyInfo<KeyT> >
-class DenseMap {
-  typedef std::pair<KeyT, ValueT> BucketT;
-  unsigned NumBuckets;
-  BucketT *Buckets;
-  
-  unsigned NumEntries;
-  unsigned NumTombstones;
-  DenseMap(const DenseMap &); // not implemented.
-public:
-  explicit DenseMap(unsigned NumInitBuckets = 64) {
-    init(NumInitBuckets);
-  }
-  ~DenseMap() {
-    const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
-    for (BucketT *P = Buckets, *E = Buckets+NumBuckets; P != E; ++P) {
-      if (P->first != EmptyKey && P->first != TombstoneKey)
-        P->second.~ValueT();
-      P->first.~KeyT();
-    }
-    delete[] (char*)Buckets;
-  }
-  
-  typedef DenseMapIterator<KeyT, ValueT, KeyInfoT> iterator;
-  typedef DenseMapConstIterator<KeyT, ValueT, KeyInfoT> const_iterator;
-  inline iterator begin() {
-     return iterator(Buckets, Buckets+NumBuckets);
-  }
-  inline iterator end() {
-    return iterator(Buckets+NumBuckets, Buckets+NumBuckets);
-  }
-  inline const_iterator begin() const {
-    return const_iterator(Buckets, Buckets+NumBuckets);
-  }
-  inline const_iterator end() const {
-    return const_iterator(Buckets+NumBuckets, Buckets+NumBuckets);
-  }
-  
-  bool empty() const { return NumEntries == 0; }
-  unsigned size() const { return NumEntries; }
-  
-  void clear() {
-    const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
-    for (BucketT *P = Buckets, *E = Buckets+NumBuckets; P != E; ++P) {
-      if (P->first != EmptyKey && P->first != TombstoneKey) {
-        P->first = EmptyKey;
-        P->second.~ValueT();
-        --NumEntries;
-      }
-    }
-    assert(NumEntries == 0 && "Node count imbalance!");
-    NumTombstones = 0;
-  }
-  
-  /// count - Return true if the specified key is in the map.
-  bool count(const KeyT &Val) const {
-    BucketT *TheBucket;
-    return LookupBucketFor(Val, TheBucket);
-  }
-  
-  iterator find(const KeyT &Val) {
-    BucketT *TheBucket;
-    if (LookupBucketFor(Val, TheBucket))
-      return iterator(TheBucket, Buckets+NumBuckets);
-    return end();
-  }
-  const_iterator find(const KeyT &Val) const {
-    BucketT *TheBucket;
-    if (LookupBucketFor(Val, TheBucket))
-      return const_iterator(TheBucket, Buckets+NumBuckets);
-    return end();
-  }
-  
-  bool insert(const std::pair<KeyT, ValueT> &KV) {
-    BucketT *TheBucket;
-    if (LookupBucketFor(KV.first, TheBucket))
-      return false; // Already in map.
-    
-    // Otherwise, insert the new element.
-    InsertIntoBucket(KV.first, KV.second, TheBucket);
-    return true;
-  }
-  
-  bool erase(const KeyT &Val) {
-    BucketT *TheBucket;
-    if (!LookupBucketFor(Val, TheBucket))
-      return false; // not in map.
-
-    TheBucket->second.~ValueT();
-    TheBucket->first = getTombstoneKey();
-    --NumEntries;
-    ++NumTombstones;
-    return true;
-  }
-  bool erase(iterator I) {
-    BucketT *TheBucket = &*I;
-    TheBucket->second.~ValueT();
-    TheBucket->first = getTombstoneKey();
-    --NumEntries;
-    ++NumTombstones;
-    return true;
-  }
-  
-  ValueT &operator[](const KeyT &Key) {
-    BucketT *TheBucket;
-    if (LookupBucketFor(Key, TheBucket))
-      return TheBucket->second;
-
-    return InsertIntoBucket(Key, ValueT(), TheBucket)->second;
-  }
-  
-private:
-  BucketT *InsertIntoBucket(const KeyT &Key, const ValueT &Value,
-                            BucketT *TheBucket) {
-    // If the load of the hash table is more than 3/4, or if fewer than 1/8 of
-    // the buckets are empty (meaning that many are filled with tombstones),
-    // grow the table.
-    //
-    // The later case is tricky.  For example, if we had one empty bucket with
-    // tons of tombstones, failing lookups (e.g. for insertion) would have to
-    // probe almost the entire table until it found the empty bucket.  If the
-    // table completely filled with tombstones, no lookup would ever succeed,
-    // causing infinite loops in lookup.
-    if (NumEntries*4 >= NumBuckets*3 ||
-        NumBuckets-(NumEntries+NumTombstones) < NumBuckets/8) {        
-      this->grow();
-      LookupBucketFor(Key, TheBucket);
-    }
-    ++NumEntries;
-    
-    // If we are writing over a tombstone, remember this.
-    if (TheBucket->first != getEmptyKey())
-      --NumTombstones;
-    
-    TheBucket->first = Key;
-    new (&TheBucket->second) ValueT(Value);
-    return TheBucket;
-  }
-
-  static unsigned getHashValue(const KeyT &Val) {
-    return KeyInfoT::getHashValue(Val);
-  }
-  static const KeyT getEmptyKey() {
-    return KeyInfoT::getEmptyKey();
-  }
-  static const KeyT getTombstoneKey() {
-    return KeyInfoT::getTombstoneKey();
-  }
-  
-  /// LookupBucketFor - Lookup the appropriate bucket for Val, returning it in
-  /// FoundBucket.  If the bucket contains the key and a value, this returns
-  /// true, otherwise it returns a bucket with an empty marker or tombstone and
-  /// returns false.
-  bool LookupBucketFor(const KeyT &Val, BucketT *&FoundBucket) const {
-    unsigned BucketNo = getHashValue(Val);
-    unsigned ProbeAmt = 1;
-    BucketT *BucketsPtr = Buckets;
-    
-    // FoundTombstone - Keep track of whether we find a tombstone while probing.
-    BucketT *FoundTombstone = 0;
-    const KeyT EmptyKey = getEmptyKey();
-    const KeyT TombstoneKey = getTombstoneKey();
-    assert(Val != EmptyKey && Val != TombstoneKey &&
-           "Empty/Tombstone value shouldn't be inserted into map!");
-      
-    while (1) {
-      BucketT *ThisBucket = BucketsPtr + (BucketNo & (NumBuckets-1));
-      // Found Val's bucket?  If so, return it.
-      if (ThisBucket->first == Val) {
-        FoundBucket = ThisBucket;
-        return true;
-      }
-      
-      // If we found an empty bucket, the key doesn't exist in the set.
-      // Insert it and return the default value.
-      if (ThisBucket->first == EmptyKey) {
-        // If we've already seen a tombstone while probing, fill it in instead
-        // of the empty bucket we eventually probed to.
-        if (FoundTombstone) ThisBucket = FoundTombstone;
-        FoundBucket = FoundTombstone ? FoundTombstone : ThisBucket;
-        return false;
-      }
-      
-      // If this is a tombstone, remember it.  If Val ends up not in the map, we
-      // prefer to return it than something that would require more probing.
-      if (ThisBucket->first == TombstoneKey && !FoundTombstone)
-        FoundTombstone = ThisBucket;  // Remember the first tombstone found.
-      
-      // Otherwise, it's a hash collision or a tombstone, continue quadratic
-      // probing.
-      BucketNo += ProbeAmt++;
-    }
-  }
-
-  void init(unsigned InitBuckets) {
-    NumEntries = 0;
-    NumTombstones = 0;
-    NumBuckets = InitBuckets;
-    assert(InitBuckets && (InitBuckets & InitBuckets-1) == 0 &&
-           "# initial buckets must be a power of two!");
-    Buckets = (BucketT*)new char[sizeof(BucketT)*InitBuckets];
-    // Initialize all the keys to EmptyKey.
-    const KeyT EmptyKey = getEmptyKey();
-    for (unsigned i = 0; i != InitBuckets; ++i)
-      new (&Buckets[i].first) KeyT(EmptyKey);
-  }
-  
-  void grow() {
-    unsigned OldNumBuckets = NumBuckets;
-    BucketT *OldBuckets = Buckets;
-    
-    // Double the number of buckets.
-    NumBuckets <<= 1;
-    NumTombstones = 0;
-    Buckets = (BucketT*)new char[sizeof(BucketT)*NumBuckets];
-
-    // Initialize all the keys to EmptyKey.
-    const KeyT EmptyKey = getEmptyKey();
-    for (unsigned i = 0, e = NumBuckets; i != e; ++i)
-      new (&Buckets[i].first) KeyT(EmptyKey);
-
-    // Insert all the old elements.
-    const KeyT TombstoneKey = getTombstoneKey();
-    for (BucketT *B = OldBuckets, *E = OldBuckets+OldNumBuckets; B != E; ++B) {
-      if (B->first != EmptyKey && B->first != TombstoneKey) {
-        // Insert the key/value into the new table.
-        BucketT *DestBucket;
-        bool FoundVal = LookupBucketFor(B->first, DestBucket);
-        FoundVal = FoundVal; // silence warning.
-        assert(!FoundVal && "Key already in new map?");
-        DestBucket->first = B->first;
-        new (&DestBucket->second) ValueT(B->second);
-        
-        // Free the value.
-        B->second.~ValueT();
-      }
-      B->first.~KeyT();
-    }
-    
-    // Free the old table.
-    delete[] (char*)OldBuckets;
-  }
-};
-
-template<typename KeyT, typename ValueT, typename KeyInfoT>
-class DenseMapIterator {
-  typedef std::pair<KeyT, ValueT> BucketT;
-protected:
-  const BucketT *Ptr, *End;
-public:
-  DenseMapIterator(const BucketT *Pos, const BucketT *E) : Ptr(Pos), End(E) {
-    AdvancePastEmptyBuckets();
-  }
-  
-  std::pair<KeyT, ValueT> &operator*() const {
-    return *const_cast<BucketT*>(Ptr);
-  }
-  std::pair<KeyT, ValueT> *operator->() const {
-    return const_cast<BucketT*>(Ptr);
-  }
-  
-  bool operator==(const DenseMapIterator &RHS) const {
-    return Ptr == RHS.Ptr;
-  }
-  bool operator!=(const DenseMapIterator &RHS) const {
-    return Ptr != RHS.Ptr;
-  }
-  
-  inline DenseMapIterator& operator++() {          // Preincrement
-    ++Ptr;
-    AdvancePastEmptyBuckets();
-    return *this;
-  }
-  DenseMapIterator operator++(int) {        // Postincrement
-    DenseMapIterator tmp = *this; ++*this; return tmp;
-  }
-  
-private:
-  void AdvancePastEmptyBuckets() {
-    const KeyT Empty = KeyInfoT::getEmptyKey();
-    const KeyT Tombstone = KeyInfoT::getTombstoneKey();
-
-    while (Ptr != End && (Ptr->first == Empty || Ptr->first == Tombstone))
-      ++Ptr;
-  }
-};
-
-template<typename KeyT, typename ValueT, typename KeyInfoT>
-class DenseMapConstIterator : public DenseMapIterator<KeyT, ValueT, KeyInfoT> {
-public:
-  DenseMapConstIterator(const std::pair<KeyT, ValueT> *Pos,
-                        const std::pair<KeyT, ValueT> *E)
-    : DenseMapIterator<KeyT, ValueT, KeyInfoT>(Pos, E) {
-  }
-  const std::pair<KeyT, ValueT> &operator*() const {
-    return *this->Ptr;
-  }
-  const std::pair<KeyT, ValueT> *operator->() const {
-    return this->Ptr;
-  }
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/ADT/DepthFirstIterator.h b/support/include/llvm/ADT/DepthFirstIterator.h
deleted file mode 100644
index 0cdd79b..0000000
--- a/support/include/llvm/ADT/DepthFirstIterator.h
+++ /dev/null
@@ -1,232 +0,0 @@
-//===- llvm/ADT/DepthFirstIterator.h - Depth First iterator -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file builds on the ADT/GraphTraits.h file to build generic depth
-// first graph iterator.  This file exposes the following functions/types:
-//
-// df_begin/df_end/df_iterator
-//   * Normal depth-first iteration - visit a node and then all of its children.
-//
-// idf_begin/idf_end/idf_iterator
-//   * Depth-first iteration on the 'inverse' graph.
-//
-// df_ext_begin/df_ext_end/df_ext_iterator
-//   * Normal depth-first iteration - visit a node and then all of its children.
-//     This iterator stores the 'visited' set in an external set, which allows
-//     it to be more efficient, and allows external clients to use the set for
-//     other purposes.
-//
-// idf_ext_begin/idf_ext_end/idf_ext_iterator
-//   * Depth-first iteration on the 'inverse' graph.
-//     This iterator stores the 'visited' set in an external set, which allows
-//     it to be more efficient, and allows external clients to use the set for
-//     other purposes.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_DEPTHFIRSTITERATOR_H
-#define LLVM_ADT_DEPTHFIRSTITERATOR_H
-
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/ADT/iterator"
-#include "llvm/ADT/SmallPtrSet.h"
-#include <vector>
-#include <set>
-
-namespace llvm {
-
-// df_iterator_storage - A private class which is used to figure out where to
-// store the visited set.
-template<class SetType, bool External>   // Non-external set
-class df_iterator_storage {
-public:
-  SetType Visited;
-};
-
-template<class SetType>
-class df_iterator_storage<SetType, true> {
-public:
-  df_iterator_storage(SetType &VSet) : Visited(VSet) {}
-  df_iterator_storage(const df_iterator_storage &S) : Visited(S.Visited) {}
-  SetType &Visited;
-};
-
-
-// Generic Depth First Iterator
-template<class GraphT,
-class SetType = llvm::SmallPtrSet<typename GraphTraits<GraphT>::NodeType*, 8>,
-         bool ExtStorage = false, class GT = GraphTraits<GraphT> >
-class df_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t>,
-                    public df_iterator_storage<SetType, ExtStorage> {
-  typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
-
-  typedef typename GT::NodeType          NodeType;
-  typedef typename GT::ChildIteratorType ChildItTy;
-
-  // VisitStack - Used to maintain the ordering.  Top = current block
-  // First element is node pointer, second is the 'next child' to visit
-  std::vector<std::pair<NodeType *, ChildItTy> > VisitStack;
-private:
-  inline df_iterator(NodeType *Node) {
-    this->Visited.insert(Node);
-    VisitStack.push_back(std::make_pair(Node, GT::child_begin(Node)));
-  }
-  inline df_iterator() { /* End is when stack is empty */ }
-
-  inline df_iterator(NodeType *Node, SetType &S)
-    : df_iterator_storage<SetType, ExtStorage>(S) {
-    if (!S.count(Node)) {
-      this->Visited.insert(Node);
-      VisitStack.push_back(std::make_pair(Node, GT::child_begin(Node)));
-    }
-  }
-  inline df_iterator(SetType &S)
-    : df_iterator_storage<SetType, ExtStorage>(S) {
-    // End is when stack is empty
-  }
-
-public:
-  typedef typename super::pointer pointer;
-  typedef df_iterator<GraphT, SetType, ExtStorage, GT> _Self;
-
-  // Provide static begin and end methods as our public "constructors"
-  static inline _Self begin(GraphT G) {
-    return _Self(GT::getEntryNode(G));
-  }
-  static inline _Self end(GraphT G) { return _Self(); }
-
-  // Static begin and end methods as our public ctors for external iterators
-  static inline _Self begin(GraphT G, SetType &S) {
-    return _Self(GT::getEntryNode(G), S);
-  }
-  static inline _Self end(GraphT G, SetType &S) { return _Self(S); }
-
-  inline bool operator==(const _Self& x) const {
-    return VisitStack.size() == x.VisitStack.size() &&
-           VisitStack == x.VisitStack;
-  }
-  inline bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  inline pointer operator*() const {
-    return VisitStack.back().first;
-  }
-
-  // This is a nonstandard operator-> that dereferences the pointer an extra
-  // time... so that you can actually call methods ON the Node, because
-  // the contained type is a pointer.  This allows BBIt->getTerminator() f.e.
-  //
-  inline NodeType *operator->() const { return operator*(); }
-
-  inline _Self& operator++() {   // Preincrement
-    do {
-      std::pair<NodeType *, ChildItTy> &Top = VisitStack.back();
-      NodeType *Node = Top.first;
-      ChildItTy &It  = Top.second;
-
-      while (It != GT::child_end(Node)) {
-        NodeType *Next = *It++;
-        if (!this->Visited.count(Next)) {  // Has our next sibling been visited?
-          // No, do it now.
-          this->Visited.insert(Next);
-          VisitStack.push_back(std::make_pair(Next, GT::child_begin(Next)));
-          return *this;
-        }
-      }
-
-      // Oops, ran out of successors... go up a level on the stack.
-      VisitStack.pop_back();
-    } while (!VisitStack.empty());
-    return *this;
-  }
-
-  inline _Self operator++(int) { // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-
-  // nodeVisited - return true if this iterator has already visited the
-  // specified node.  This is public, and will probably be used to iterate over
-  // nodes that a depth first iteration did not find: ie unreachable nodes.
-  //
-  inline bool nodeVisited(NodeType *Node) const {
-    return this->Visited.count(Node) != 0;
-  }
-};
-
-
-// Provide global constructors that automatically figure out correct types...
-//
-template <class T>
-df_iterator<T> df_begin(T G) {
-  return df_iterator<T>::begin(G);
-}
-
-template <class T>
-df_iterator<T> df_end(T G) {
-  return df_iterator<T>::end(G);
-}
-
-// Provide global definitions of external depth first iterators...
-template <class T, class SetTy = std::set<typename GraphTraits<T>::NodeType*> >
-struct df_ext_iterator : public df_iterator<T, SetTy, true> {
-  df_ext_iterator(const df_iterator<T, SetTy, true> &V)
-    : df_iterator<T, SetTy, true>(V) {}
-};
-
-template <class T, class SetTy>
-df_ext_iterator<T, SetTy> df_ext_begin(T G, SetTy &S) {
-  return df_ext_iterator<T, SetTy>::begin(G, S);
-}
-
-template <class T, class SetTy>
-df_ext_iterator<T, SetTy> df_ext_end(T G, SetTy &S) {
-  return df_ext_iterator<T, SetTy>::end(G, S);
-}
-
-
-// Provide global definitions of inverse depth first iterators...
-template <class T,
-  class SetTy = llvm::SmallPtrSet<typename GraphTraits<T>::NodeType*, 8>,
-          bool External = false>
-struct idf_iterator : public df_iterator<Inverse<T>, SetTy, External> {
-  idf_iterator(const df_iterator<Inverse<T>, SetTy, External> &V)
-    : df_iterator<Inverse<T>, SetTy, External>(V) {}
-};
-
-template <class T>
-idf_iterator<T> idf_begin(T G) {
-  return idf_iterator<T>::begin(G);
-}
-
-template <class T>
-idf_iterator<T> idf_end(T G){
-  return idf_iterator<T>::end(G);
-}
-
-// Provide global definitions of external inverse depth first iterators...
-template <class T, class SetTy = std::set<typename GraphTraits<T>::NodeType*> >
-struct idf_ext_iterator : public idf_iterator<T, SetTy, true> {
-  idf_ext_iterator(const idf_iterator<T, SetTy, true> &V)
-    : idf_iterator<T, SetTy, true>(V) {}
-  idf_ext_iterator(const df_iterator<Inverse<T>, SetTy, true> &V)
-    : idf_iterator<T, SetTy, true>(V) {}
-};
-
-template <class T, class SetTy>
-idf_ext_iterator<T, SetTy> idf_ext_begin(T G, SetTy &S) {
-  return idf_ext_iterator<T, SetTy>::begin(G, S);
-}
-
-template <class T, class SetTy>
-idf_ext_iterator<T, SetTy> idf_ext_end(T G, SetTy &S) {
-  return idf_ext_iterator<T, SetTy>::end(G, S);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/EquivalenceClasses.h b/support/include/llvm/ADT/EquivalenceClasses.h
deleted file mode 100644
index 7d305cb..0000000
--- a/support/include/llvm/ADT/EquivalenceClasses.h
+++ /dev/null
@@ -1,279 +0,0 @@
-//===-- llvm/ADT/EquivalenceClasses.h - Generic Equiv. Classes --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Generic implementation of equivalence classes through the use Tarjan's
-// efficient union-find algorithm.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_EQUIVALENCECLASSES_H
-#define LLVM_ADT_EQUIVALENCECLASSES_H
-
-#include "llvm/ADT/iterator"
-#include "llvm/Support/DataTypes.h"
-#include <set>
-
-namespace llvm {
-
-/// EquivalenceClasses - This represents a collection of equivalence classes and
-/// supports three efficient operations: insert an element into a class of its
-/// own, union two classes, and find the class for a given element.  In
-/// addition to these modification methods, it is possible to iterate over all
-/// of the equivalence classes and all of the elements in a class.
-///
-/// This implementation is an efficient implementation that only stores one copy
-/// of the element being indexed per entry in the set, and allows any arbitrary
-/// type to be indexed (as long as it can be ordered with operator<).
-///
-/// Here is a simple example using integers:
-///
-///  EquivalenceClasses<int> EC;
-///  EC.unionSets(1, 2);                // insert 1, 2 into the same set
-///  EC.insert(4); EC.insert(5);        // insert 4, 5 into own sets
-///  EC.unionSets(5, 1);                // merge the set for 1 with 5's set.
-///
-///  for (EquivalenceClasses<int>::iterator I = EC.begin(), E = EC.end();
-///       I != E; ++I) {           // Iterate over all of the equivalence sets.
-///    if (!I->isLeader()) continue;   // Ignore non-leader sets.
-///    for (EquivalenceClasses<int>::member_iterator MI = EC.member_begin(I);
-///         MI != EC.member_end(); ++MI)   // Loop over members in this set.
-///      cerr << *MI << " ";  // Print member.
-///    cerr << "\n";   // Finish set.
-///  }
-///
-/// This example prints:
-///   4
-///   5 1 2
-///
-template <class ElemTy>
-class EquivalenceClasses {
-  /// ECValue - The EquivalenceClasses data structure is just a set of these.
-  /// Each of these represents a relation for a value.  First it stores the
-  /// value itself, which provides the ordering that the set queries.  Next, it
-  /// provides a "next pointer", which is used to enumerate all of the elements
-  /// in the unioned set.  Finally, it defines either a "end of list pointer" or
-  /// "leader pointer" depending on whether the value itself is a leader.  A
-  /// "leader pointer" points to the node that is the leader for this element,
-  /// if the node is not a leader.  A "end of list pointer" points to the last
-  /// node in the list of members of this list.  Whether or not a node is a
-  /// leader is determined by a bit stolen from one of the pointers.
-  class ECValue {
-    friend class EquivalenceClasses;
-    mutable const ECValue *Leader, *Next;
-    ElemTy Data;
-    // ECValue ctor - Start out with EndOfList pointing to this node, Next is
-    // Null, isLeader = true.
-    ECValue(const ElemTy &Elt)
-      : Leader(this), Next((ECValue*)(intptr_t)1), Data(Elt) {}
-
-    const ECValue *getLeader() const {
-      if (isLeader()) return this;
-      if (Leader->isLeader()) return Leader;
-      // Path compression.
-      return Leader = Leader->getLeader();
-    }
-    const ECValue *getEndOfList() const {
-      assert(isLeader() && "Cannot get the end of a list for a non-leader!");
-      return Leader;
-    }
-
-    void setNext(const ECValue *NewNext) const {
-      assert(getNext() == 0 && "Already has a next pointer!");
-      Next = (const ECValue*)((intptr_t)NewNext | (intptr_t)isLeader());
-    }
-  public:
-    ECValue(const ECValue &RHS) : Leader(this), Next((ECValue*)(intptr_t)1),
-                                  Data(RHS.Data) {
-      // Only support copying of singleton nodes.
-      assert(RHS.isLeader() && RHS.getNext() == 0 && "Not a singleton!");
-    }
-
-    bool operator<(const ECValue &UFN) const { return Data < UFN.Data; }
-
-    bool isLeader() const { return (intptr_t)Next & 1; }
-    const ElemTy &getData() const { return Data; }
-
-    const ECValue *getNext() const {
-      return (ECValue*)((intptr_t)Next & ~(intptr_t)1);
-    }
-
-    template<typename T>
-    bool operator<(const T &Val) const { return Data < Val; }
-  };
-
-  /// TheMapping - This implicitly provides a mapping from ElemTy values to the
-  /// ECValues, it just keeps the key as part of the value.
-  std::set<ECValue> TheMapping;
-
-public:
-  EquivalenceClasses() {}
-  EquivalenceClasses(const EquivalenceClasses &RHS) {
-    operator=(RHS);
-  }
-
-  const EquivalenceClasses &operator=(const EquivalenceClasses &RHS) {
-    TheMapping.clear();
-    for (iterator I = RHS.begin(), E = RHS.end(); I != E; ++I)
-      if (I->isLeader()) {
-        member_iterator MI = RHS.member_begin(I);
-        member_iterator LeaderIt = member_begin(insert(*MI));
-        for (++MI; MI != member_end(); ++MI)
-          unionSets(LeaderIt, member_begin(insert(*MI)));
-      }
-    return *this;
-  }
-
-  //===--------------------------------------------------------------------===//
-  // Inspection methods
-  //
-
-  /// iterator* - Provides a way to iterate over all values in the set.
-  typedef typename std::set<ECValue>::const_iterator iterator;
-  iterator begin() const { return TheMapping.begin(); }
-  iterator end() const { return TheMapping.end(); }
-
-  bool empty() const { return TheMapping.empty(); }
-
-  /// member_* Iterate over the members of an equivalence class.
-  ///
-  class member_iterator;
-  member_iterator member_begin(iterator I) const {
-    // Only leaders provide anything to iterate over.
-    return member_iterator(I->isLeader() ? &*I : 0);
-  }
-  member_iterator member_end() const {
-    return member_iterator(0);
-  }
-
-  /// findValue - Return an iterator to the specified value.  If it does not
-  /// exist, end() is returned.
-  iterator findValue(const ElemTy &V) const {
-    return TheMapping.find(V);
-  }
-
-  /// getLeaderValue - Return the leader for the specified value that is in the
-  /// set.  It is an error to call this method for a value that is not yet in
-  /// the set.  For that, call getOrInsertLeaderValue(V).
-  const ElemTy &getLeaderValue(const ElemTy &V) const {
-    member_iterator MI = findLeader(V);
-    assert(MI != member_end() && "Value is not in the set!");
-    return *MI;
-  }
-
-  /// getOrInsertLeaderValue - Return the leader for the specified value that is
-  /// in the set.  If the member is not in the set, it is inserted, then
-  /// returned.
-  const ElemTy &getOrInsertLeaderValue(const ElemTy &V) const {
-    member_iterator MI = findLeader(insert(V));
-    assert(MI != member_end() && "Value is not in the set!");
-    return *MI;
-  }
-
-  /// getNumClasses - Return the number of equivalence classes in this set.
-  /// Note that this is a linear time operation.
-  unsigned getNumClasses() const {
-    unsigned NC = 0;
-    for (iterator I = begin(), E = end(); I != E; ++I)
-      if (I->isLeader()) ++NC;
-    return NC;
-  }
-
-
-  //===--------------------------------------------------------------------===//
-  // Mutation methods
-
-  /// insert - Insert a new value into the union/find set, ignoring the request
-  /// if the value already exists.
-  iterator insert(const ElemTy &Data) {
-    return TheMapping.insert(Data).first;
-  }
-
-  /// findLeader - Given a value in the set, return a member iterator for the
-  /// equivalence class it is in.  This does the path-compression part that
-  /// makes union-find "union findy".  This returns an end iterator if the value
-  /// is not in the equivalence class.
-  ///
-  member_iterator findLeader(iterator I) const {
-    if (I == TheMapping.end()) return member_end();
-    return member_iterator(I->getLeader());
-  }
-  member_iterator findLeader(const ElemTy &V) const {
-    return findLeader(TheMapping.find(V));
-  }
-
-
-  /// union - Merge the two equivalence sets for the specified values, inserting
-  /// them if they do not already exist in the equivalence set.
-  member_iterator unionSets(const ElemTy &V1, const ElemTy &V2) {
-    iterator V1I = insert(V1), V2I = insert(V2);
-    return unionSets(findLeader(V1I), findLeader(V2I));
-  }
-  member_iterator unionSets(member_iterator L1, member_iterator L2) {
-    assert(L1 != member_end() && L2 != member_end() && "Illegal inputs!");
-    if (L1 == L2) return L1;   // Unifying the same two sets, noop.
-
-    // Otherwise, this is a real union operation.  Set the end of the L1 list to
-    // point to the L2 leader node.
-    const ECValue &L1LV = *L1.Node, &L2LV = *L2.Node;
-    L1LV.getEndOfList()->setNext(&L2LV);
-
-    // Update L1LV's end of list pointer.
-    L1LV.Leader = L2LV.getEndOfList();
-
-    // Clear L2's leader flag:
-    L2LV.Next = L2LV.getNext();
-
-    // L2's leader is now L1.
-    L2LV.Leader = &L1LV;
-    return L1;
-  }
-
-  class member_iterator : public forward_iterator<ElemTy, ptrdiff_t> {
-    typedef forward_iterator<const ElemTy, ptrdiff_t> super;
-    const ECValue *Node;
-    friend class EquivalenceClasses;
-  public:
-    typedef size_t size_type;
-    typedef typename super::pointer pointer;
-    typedef typename super::reference reference;
-
-    explicit member_iterator() {}
-    explicit member_iterator(const ECValue *N) : Node(N) {}
-    member_iterator(const member_iterator &I) : Node(I.Node) {}
-
-    reference operator*() const {
-      assert(Node != 0 && "Dereferencing end()!");
-      return Node->getData();
-    }
-    reference operator->() const { return operator*(); }
-
-    member_iterator &operator++() {
-      assert(Node != 0 && "++'d off the end of the list!");
-      Node = Node->getNext();
-      return *this;
-    }
-
-    member_iterator operator++(int) {    // postincrement operators.
-      member_iterator tmp = *this;
-      ++*this;
-      return tmp;
-    }
-
-    bool operator==(const member_iterator &RHS) const {
-      return Node == RHS.Node;
-    }
-    bool operator!=(const member_iterator &RHS) const {
-      return Node != RHS.Node;
-    }
-  };
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/FoldingSet.h b/support/include/llvm/ADT/FoldingSet.h
deleted file mode 100644
index e6ded76..0000000
--- a/support/include/llvm/ADT/FoldingSet.h
+++ /dev/null
@@ -1,258 +0,0 @@
-//===-- llvm/ADT/FoldingSet.h - Uniquing Hash Set ---------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by James M. Laskey and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a hash set that can be used to remove duplication of nodes
-// in a graph.  This code was originally created by Chris Lattner for use with
-// SelectionDAGCSEMap, but was isolated to provide use across the llvm code set. 
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_FOLDINGSET_H
-#define LLVM_ADT_FOLDINGSET_H
-
-#include "llvm/Support/DataTypes.h"
-#include "llvm/ADT/SmallVector.h"
-#include <string>
-
-namespace llvm {
-
-/// This folding set used for two purposes:
-///   1. Given information about a node we want to create, look up the unique
-///      instance of the node in the set.  If the node already exists, return
-///      it, otherwise return the bucket it should be inserted into.
-///   2. Given a node that has already been created, remove it from the set.
-/// 
-/// This class is implemented as a single-link chained hash table, where the
-/// "buckets" are actually the nodes themselves (the next pointer is in the
-/// node).  The last node points back to the bucket to simplified node removal.
-///
-/// Any node that is to be included in the folding set must be a subclass of
-/// FoldingSetNode.  The node class must also define a Profile method used to
-/// establish the unique bits of data for the node.  The Profile method is
-/// passed a FoldingSetNodeID object which is used to gather the bits.  Just 
-/// call one of the Add* functions defined in the FoldingSetImpl::NodeID class.
-/// NOTE: That the folding set does not own the nodes and it is the
-/// responsibility of the user to dispose of the nodes.
-///
-/// Eg.
-///    class MyNode : public FoldingSetNode {
-///    private:
-///      std::string Name;
-///      unsigned Value;
-///    public:
-///      MyNode(const char *N, unsigned V) : Name(N), Value(V) {}
-///       ...
-///      void Profile(FoldingSetNodeID &ID) {
-///        ID.AddString(Name);
-///        ID.AddInteger(Value);
-///       }
-///       ...
-///     };
-///
-/// To define the folding set itself use the FoldingSet template;
-///
-/// Eg.
-///    FoldingSet<MyNode> MyFoldingSet;
-///
-/// Four public methods are available to manipulate the folding set; 
-///
-/// 1) If you have an existing node that you want add to the set but unsure
-/// that the node might already exist then call;
-///
-///    MyNode *M = MyFoldingSet.GetOrInsertNode(N);
-///
-/// If The result is equal to the input then the node has been inserted.
-/// Otherwise, the result is the node existing in the folding set, and the
-/// input can be discarded (use the result instead.)
-///
-/// 2) If you are ready to construct a node but want to check if it already
-/// exists, then call FindNodeOrInsertPos with a FoldingSetNodeID of the bits to
-/// check;
-///
-///   FoldingSetNodeID ID;
-///   ID.AddString(Name);
-///   ID.AddInteger(Value);
-///   void *InsertPoint;
-///
-///    MyNode *M = MyFoldingSet.FindNodeOrInsertPos(ID, InsertPoint);
-///
-/// If found then M with be non-NULL, else InsertPoint will point to where it
-/// should be inserted using InsertNode.
-///
-/// 3) If you get a NULL result from FindNodeOrInsertPos then you can as a new
-/// node with FindNodeOrInsertPos;
-///
-///    InsertNode(N, InsertPoint);
-///
-/// 4) Finally, if you want to remove a node from the folding set call;
-///
-///    bool WasRemoved = RemoveNode(N);
-///
-/// The result indicates whether the node existed in the folding set.
-
-
-//===----------------------------------------------------------------------===//
-/// FoldingSetImpl - Implements the folding set functionality.  The main
-/// structure is an array of buckets.  Each bucket is indexed by the hash of
-/// the nodes it contains.  The bucket itself points to the nodes contained
-/// in the bucket via a singly linked list.  The last node in the list points
-/// back to the bucket to facilitate node removal.
-/// 
-class FoldingSetImpl {
-private:
-  /// Buckets - Array of bucket chains.
-  ///
-  void **Buckets;
-  
-  /// NumBuckets - Length of the Buckets array.  Always a power of 2.
-  ///
-  unsigned NumBuckets;
-  
-  /// NumNodes - Number of nodes in the folding set. Growth occurs when NumNodes
-  /// is greater than twice the number of buckets.
-  unsigned NumNodes;
-  
-public:
-  FoldingSetImpl(unsigned Log2InitSize = 6);
-  virtual ~FoldingSetImpl();
-  
-  // Forward declaration.
-  class Node;
-
-  //===--------------------------------------------------------------------===//
-  /// NodeID - This class is used to gather all the unique data bits of a
-  /// node.  When all the bits are gathered this class is used to produce a
-  /// hash value for the node.  
-  ///
-  class NodeID {
-    /// Bits - Vector of all the data bits that make the node unique.
-    /// Use a SmallVector to avoid a heap allocation in the common case.
-    SmallVector<unsigned, 32> Bits;
-    
-  public:
-    NodeID() {}
-    
-    /// getRawData - Return the ith entry in the Bits data.
-    ///
-    unsigned getRawData(unsigned i) const {
-      return Bits[i];
-    }
-    
-    /// Add* - Add various data types to Bit data.
-    ///
-    void AddPointer(const void *Ptr);
-    void AddInteger(signed I);
-    void AddInteger(unsigned I);
-    void AddInteger(uint64_t I);
-    void AddFloat(float F);
-    void AddDouble(double D);
-    void AddString(const std::string &String);
-    
-    /// ComputeHash - Compute a strong hash value for this NodeID, used to 
-    /// lookup the node in the FoldingSetImpl.
-    unsigned ComputeHash() const;
-    
-    /// operator== - Used to compare two nodes to each other.
-    ///
-    bool operator==(const NodeID &RHS) const;
-  };
-
-  //===--------------------------------------------------------------------===//
-  /// Node - This class is used to maintain the singly linked bucket list in
-  /// a folding set.
-  ///
-  class Node {
-  private:
-    // NextInFoldingSetBucket - next link in the bucket list.
-    void *NextInFoldingSetBucket;
-    
-  public:
-
-    Node() : NextInFoldingSetBucket(0) {}
-    
-    // Accessors
-    void *getNextInBucket() const { return NextInFoldingSetBucket; }
-    void SetNextInBucket(void *N) { NextInFoldingSetBucket = N; }
-  };
-
-  /// RemoveNode - Remove a node from the folding set, returning true if one
-  /// was removed or false if the node was not in the folding set.
-  bool RemoveNode(Node *N);
-  
-  /// GetOrInsertNode - If there is an existing simple Node exactly
-  /// equal to the specified node, return it.  Otherwise, insert 'N' and return
-  /// it instead.
-  Node *GetOrInsertNode(Node *N);
-  
-  /// FindNodeOrInsertPos - Look up the node specified by ID.  If it exists,
-  /// return it.  If not, return the insertion token that will make insertion
-  /// faster.
-  Node *FindNodeOrInsertPos(const NodeID &ID, void *&InsertPos);
-  
-  /// InsertNode - Insert the specified node into the folding set, knowing that
-  /// it is not already in the folding set.  InsertPos must be obtained from 
-  /// FindNodeOrInsertPos.
-  void InsertNode(Node *N, void *InsertPos);
-    
-private:
-
-  /// GrowHashTable - Double the size of the hash table and rehash everything.
-  ///
-  void GrowHashTable();
-  
-protected:
-
-  /// GetNodeProfile - Instantiations of the FoldingSet template implement
-  /// this function to gather data bits for the given node.
-  virtual void GetNodeProfile(NodeID &ID, Node *N) const = 0;
-};
-
-// Convenience types to hide the implementation of the folding set.
-typedef FoldingSetImpl::Node FoldingSetNode;
-typedef FoldingSetImpl::NodeID FoldingSetNodeID;
-
-//===----------------------------------------------------------------------===//
-/// FoldingSet - This template class is used to instantiate a specialized
-/// implementation of the folding set to the node class T.  T must be a 
-/// subclass of FoldingSetNode and implement a Profile function.
-///
-template<class T> class FoldingSet : public FoldingSetImpl {
-private:
-  /// GetNodeProfile - Each instantiatation of the FoldingSet needs to provide a
-  /// way to convert nodes into a unique specifier.
-  virtual void GetNodeProfile(NodeID &ID, Node *N) const {
-    T *TN = static_cast<T *>(N);
-    TN->Profile(ID);
-  }
-  
-public:
-  FoldingSet(unsigned Log2InitSize = 6)
-  : FoldingSetImpl(Log2InitSize)
-  {}
-
-  /// GetOrInsertNode - If there is an existing simple Node exactly
-  /// equal to the specified node, return it.  Otherwise, insert 'N' and
-  /// return it instead.
-  T *GetOrInsertNode(Node *N) {
-    return static_cast<T *>(FoldingSetImpl::GetOrInsertNode(N));
-  }
-  
-  /// FindNodeOrInsertPos - Look up the node specified by ID.  If it exists,
-  /// return it.  If not, return the insertion token that will make insertion
-  /// faster.
-  T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
-    return static_cast<T *>(FoldingSetImpl::FindNodeOrInsertPos(ID, InsertPos));
-  }
-};
-
-} // End of namespace llvm.
-
-
-#endif
-
diff --git a/support/include/llvm/ADT/GraphTraits.h b/support/include/llvm/ADT/GraphTraits.h
deleted file mode 100644
index 99a69b8..0000000
--- a/support/include/llvm/ADT/GraphTraits.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//===-- llvm/ADT/GraphTraits.h - Graph traits template ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the little GraphTraits<X> template class that should be
-// specialized by classes that want to be iteratable by generic graph iterators.
-//
-// This file also defines the marker class Inverse that is used to iterate over
-// graphs in a graph defined, inverse ordering...
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_GRAPHTRAITS_H
-#define LLVM_ADT_GRAPHTRAITS_H
-
-namespace llvm {
-
-// GraphTraits - This class should be specialized by different graph types...
-// which is why the default version is empty.
-//
-template<class GraphType>
-struct GraphTraits {
-  // Elements to provide:
-
-  // typedef NodeType          - Type of Node in the graph
-  // typedef ChildIteratorType - Type used to iterate over children in graph
-
-  // static NodeType *getEntryNode(GraphType *)
-  //    Return the entry node of the graph
-
-  // static ChildIteratorType child_begin(NodeType *)
-  // static ChildIteratorType child_end  (NodeType *)
-  //    Return iterators that point to the beginning and ending of the child
-  //    node list for the specified node.
-  //
-
-
-  // typedef  ...iterator nodes_iterator;
-  // static nodes_iterator nodes_begin(GraphType *G)
-  // static nodes_iterator nodes_end  (GraphType *G)
-  //
-  //    nodes_iterator/begin/end - Allow iteration over all nodes in the graph
-
-
-  // If anyone tries to use this class without having an appropriate
-  // specialization, make an error.  If you get this error, it's because you
-  // need to include the appropriate specialization of GraphTraits<> for your
-  // graph, or you need to define it for a new graph type. Either that or
-  // your argument to XXX_begin(...) is unknown or needs to have the proper .h
-  // file #include'd.
-  //
-  typedef typename GraphType::UnknownGraphTypeError NodeType;
-};
-
-
-// Inverse - This class is used as a little marker class to tell the graph
-// iterator to iterate over the graph in a graph defined "Inverse" ordering.
-// Not all graphs define an inverse ordering, and if they do, it depends on
-// the graph exactly what that is.  Here's an example of usage with the
-// df_iterator:
-//
-// idf_iterator<Method*> I = idf_begin(M), E = idf_end(M);
-// for (; I != E; ++I) { ... }
-//
-// Which is equivalent to:
-// df_iterator<Inverse<Method*> > I = idf_begin(M), E = idf_end(M);
-// for (; I != E; ++I) { ... }
-//
-template <class GraphType>
-struct Inverse {
-  GraphType &Graph;
-
-  inline Inverse(GraphType &G) : Graph(G) {}
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/HashExtras.h b/support/include/llvm/ADT/HashExtras.h
deleted file mode 100644
index 9993248..0000000
--- a/support/include/llvm/ADT/HashExtras.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- llvm/ADT/HashExtras.h - Useful functions for STL hash ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains some templates that are useful if you are working with the
-// STL Hashed containers.
-//
-// No library is required when using these functinons.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_HASHEXTRAS_H
-#define LLVM_ADT_HASHEXTRAS_H
-
-#include "llvm/ADT/hash_map"
-#include <string>
-
-// Cannot specialize hash template from outside of the std namespace.
-namespace HASH_NAMESPACE {
-
-// Provide a hash function for arbitrary pointers...
-template <class T> struct hash<T *> {
-  inline size_t operator()(const T *Val) const {
-    return reinterpret_cast<size_t>(Val);
-  }
-};
-
-template <> struct hash<std::string> {
-  size_t operator()(std::string const &str) const {
-    return hash<char const *>()(str.c_str());
-  }
-};
-
-}  // End namespace std
-
-#endif
diff --git a/support/include/llvm/ADT/IndexedMap.h b/support/include/llvm/ADT/IndexedMap.h
deleted file mode 100644
index bc38fdd..0000000
--- a/support/include/llvm/ADT/IndexedMap.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//===- llvm/ADT/IndexedMap.h - An index map implementation ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements an indexed map. The index map template takes two
-// types. The first is the mapped type and the second is a functor
-// that maps its argument to a size_t. On instantiation a "null" value
-// can be provided to be used as a "does not exist" indicator in the
-// map. A member function grow() is provided that given the value of
-// the maximally indexed key (the argument of the functor) makes sure
-// the map has enough space for it.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_INDEXEDMAP_H
-#define LLVM_ADT_INDEXEDMAP_H
-
-#include <functional>
-#include <vector>
-#include <cassert>
-
-namespace llvm {
-
-  struct IdentityFunctor : std::unary_function<unsigned, unsigned> {
-    unsigned operator()(unsigned Index) const {
-      return Index;
-    }
-  };
-
-  template <typename T, typename ToIndexT = IdentityFunctor>
-  class IndexedMap {
-    typedef typename ToIndexT::argument_type IndexT;
-    typedef std::vector<T> StorageT;
-    StorageT storage_;
-    T nullVal_;
-    ToIndexT toIndex_;
-
-  public:
-    IndexedMap() : nullVal_(T()) { }
-
-    explicit IndexedMap(const T& val) : nullVal_(val) { }
-
-    typename StorageT::reference operator[](IndexT n) {
-      assert(toIndex_(n) < storage_.size() && "index out of bounds!");
-      return storage_[toIndex_(n)];
-    }
-
-    typename StorageT::const_reference operator[](IndexT n) const {
-      assert(toIndex_(n) < storage_.size() && "index out of bounds!");
-      return storage_[toIndex_(n)];
-    }
-
-    void clear() {
-      storage_.clear();
-    }
-
-    void grow(IndexT n) {
-      unsigned NewSize = toIndex_(n) + 1;
-      if (NewSize > storage_.size())
-        storage_.resize(NewSize, nullVal_);
-    }
-
-    typename StorageT::size_type size() const {
-      return storage_.size();
-    }
-  };
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/PostOrderIterator.h b/support/include/llvm/ADT/PostOrderIterator.h
deleted file mode 100644
index 16f0865..0000000
--- a/support/include/llvm/ADT/PostOrderIterator.h
+++ /dev/null
@@ -1,230 +0,0 @@
-//===- llvm/ADT/PostOrderIterator.h - PostOrder iterator --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file builds on the ADT/GraphTraits.h file to build a generic graph
-// post order iterator.  This should work over any graph type that has a
-// GraphTraits specialization.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_POSTORDERITERATOR_H
-#define LLVM_ADT_POSTORDERITERATOR_H
-
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/ADT/iterator"
-#include <stack>
-#include <set>
-#include <vector>
-
-namespace llvm {
-
-template<class SetType, bool External>   // Non-external set 
-class po_iterator_storage { 
-public: 
-  SetType Visited; 
-}; 
-
-template<class SetType> 
-class po_iterator_storage<SetType, true> { 
-public: 
-  po_iterator_storage(SetType &VSet) : Visited(VSet) {} 
-  po_iterator_storage(const po_iterator_storage &S) : Visited(S.Visited) {} 
-  SetType &Visited; 
-}; 
-
-template<class GraphT, 
-        class SetType = std::set<typename GraphTraits<GraphT>::NodeType*>, 
-        bool ExtStorage = false, 
-        class GT = GraphTraits<GraphT> > 
-class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t>, 
-                    public po_iterator_storage<SetType, ExtStorage> { 
-  typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
-  typedef typename GT::NodeType          NodeType;
-  typedef typename GT::ChildIteratorType ChildItTy;
-  
-  // VisitStack - Used to maintain the ordering.  Top = current block
-  // First element is basic block pointer, second is the 'next child' to visit
-  std::stack<std::pair<NodeType *, ChildItTy> > VisitStack;
-
-  void traverseChild() {
-    while (VisitStack.top().second != GT::child_end(VisitStack.top().first)) {
-      NodeType *BB = *VisitStack.top().second++;
-      if (!this->Visited.count(BB)) {  // If the block is not visited...
-        this->Visited.insert(BB);
-        VisitStack.push(std::make_pair(BB, GT::child_begin(BB)));
-      }
-    }
-  }
-
-  inline po_iterator(NodeType *BB) {
-    this->Visited.insert(BB);
-    VisitStack.push(std::make_pair(BB, GT::child_begin(BB)));
-    traverseChild();
-  }
-  inline po_iterator() {} // End is when stack is empty. 
-     
-  inline po_iterator(NodeType *BB, SetType &S) : 
-    po_iterator_storage<SetType, ExtStorage>(&S) { 
-    if(!S.count(BB)) { 
-      this->Visited.insert(BB); 
-      VisitStack.push(std::make_pair(BB, GT::child_begin(BB))); 
-      traverseChild(); 
-    } 
-  } 
- 
-  inline po_iterator(SetType &S) : 
-      po_iterator_storage<SetType, ExtStorage>(&S) {
-  } // End is when stack is empty. 
-public:
-  typedef typename super::pointer pointer;
-  typedef po_iterator<GraphT, SetType, ExtStorage, GT> _Self; 
-
-  // Provide static "constructors"...
-  static inline _Self begin(GraphT G) { return _Self(GT::getEntryNode(G)); }
-  static inline _Self end  (GraphT G) { return _Self(); }
-
-  static inline _Self begin(GraphT G, SetType &S) { 
-    return _Self(GT::getEntryNode(G), S); 
-  } 
-  static inline _Self end  (GraphT G, SetType &S) { return _Self(S); } 
-  
-  inline bool operator==(const _Self& x) const {
-    return VisitStack == x.VisitStack;
-  }
-  inline bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  inline pointer operator*() const {
-    return VisitStack.top().first;
-  }
-
-  // This is a nonstandard operator-> that dereferences the pointer an extra
-  // time... so that you can actually call methods ON the BasicBlock, because
-  // the contained type is a pointer.  This allows BBIt->getTerminator() f.e.
-  //
-  inline NodeType *operator->() const { return operator*(); }
-
-  inline _Self& operator++() {   // Preincrement
-    VisitStack.pop();
-    if (!VisitStack.empty())
-      traverseChild();
-    return *this;
-  }
-
-  inline _Self operator++(int) { // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-};
-
-// Provide global constructors that automatically figure out correct types...
-//
-template <class T>
-po_iterator<T> po_begin(T G) { return po_iterator<T>::begin(G); }
-template <class T>
-po_iterator<T> po_end  (T G) { return po_iterator<T>::end(G); }
-
-// Provide global definitions of external postorder iterators... 
-template<class T, class SetType=std::set<typename GraphTraits<T>::NodeType*> > 
-struct po_ext_iterator : public po_iterator<T, SetType, true> { 
-  po_ext_iterator(const po_iterator<T, SetType, true> &V) :  
-  po_iterator<T, SetType, true>(V) {} 
-}; 
- 
-template<class T, class SetType> 
-po_ext_iterator<T, SetType> po_ext_begin(T G, SetType &S) { 
-  return po_ext_iterator<T, SetType>::begin(G, S); 
-} 
-
-template<class T, class SetType> 
-po_ext_iterator<T, SetType> po_ext_end(T G, SetType &S) { 
-  return po_ext_iterator<T, SetType>::end(G, S); 
-} 
-
-// Provide global definitions of inverse post order iterators...
-template <class T, 
-          class SetType = std::set<typename GraphTraits<T>::NoddeType*>,  
-          bool External = false> 
-struct ipo_iterator : public po_iterator<Inverse<T>, SetType, External > { 
-  ipo_iterator(const po_iterator<Inverse<T>, SetType, External> &V) : 
-     po_iterator<Inverse<T>, SetType, External> (V) {} 
-};
-
-template <class T>
-ipo_iterator<T> ipo_begin(T G, bool Reverse = false) {
-  return ipo_iterator<T>::begin(G, Reverse);
-}
-
-template <class T>
-ipo_iterator<T> ipo_end(T G){
-  return ipo_iterator<T>::end(G);
-}
-
-//Provide global definitions of external inverse postorder iterators... 
-template <class T, class SetType = std::set<typename GraphTraits<T>::NodeType*> > 
-struct ipo_ext_iterator : public ipo_iterator<T, SetType, true> { 
-  ipo_ext_iterator(const ipo_iterator<T, SetType, true> &V) : 
-    ipo_iterator<T, SetType, true>(&V) {} 
-  ipo_ext_iterator(const po_iterator<Inverse<T>, SetType, true> &V) : 
-    ipo_iterator<T, SetType, true>(&V) {} 
-}; 
-
-template <class T, class SetType> 
-ipo_ext_iterator<T, SetType> ipo_ext_begin(T G, SetType &S) { 
-  return ipo_ext_iterator<T, SetType>::begin(G, S); 
-} 
-
-template <class T, class SetType> 
-ipo_ext_iterator<T, SetType> ipo_ext_end(T G, SetType &S) { 
-  return ipo_ext_iterator<T, SetType>::end(G, S); 
-} 
-
-//===--------------------------------------------------------------------===//
-// Reverse Post Order CFG iterator code
-//===--------------------------------------------------------------------===//
-//
-// This is used to visit basic blocks in a method in reverse post order.  This
-// class is awkward to use because I don't know a good incremental algorithm to
-// computer RPO from a graph.  Because of this, the construction of the
-// ReversePostOrderTraversal object is expensive (it must walk the entire graph
-// with a postorder iterator to build the data structures).  The moral of this
-// story is: Don't create more ReversePostOrderTraversal classes than necessary.
-//
-// This class should be used like this:
-// {
-//   ReversePostOrderTraversal<Function*> RPOT(FuncPtr); // Expensive to create
-//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
-//      ...
-//   }
-//   for (rpo_iterator I = RPOT.begin(); I != RPOT.end(); ++I) {
-//      ...
-//   }
-// }
-//
-
-template<class GraphT, class GT = GraphTraits<GraphT> >
-class ReversePostOrderTraversal {
-  typedef typename GT::NodeType NodeType;
-  std::vector<NodeType*> Blocks;       // Block list in normal PO order
-  inline void Initialize(NodeType *BB) {
-    copy(po_begin(BB), po_end(BB), back_inserter(Blocks));
-  }
-public:
-  typedef typename std::vector<NodeType*>::reverse_iterator rpo_iterator;
-
-  inline ReversePostOrderTraversal(GraphT G) {
-    Initialize(GT::getEntryNode(G));
-  }
-
-  // Because we want a reverse post order, use reverse iterators from the vector
-  inline rpo_iterator begin() { return Blocks.rbegin(); }
-  inline rpo_iterator end()   { return Blocks.rend(); }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/SCCIterator.h b/support/include/llvm/ADT/SCCIterator.h
deleted file mode 100644
index 6b1260d..0000000
--- a/support/include/llvm/ADT/SCCIterator.h
+++ /dev/null
@@ -1,199 +0,0 @@
-//===-- Support/SCCIterator.h - Strongly Connected Comp. Iter. --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This builds on the llvm/ADT/GraphTraits.h file to find the strongly connected
-// components (SCCs) of a graph in O(N+E) time using Tarjan's DFS algorithm.
-//
-// The SCC iterator has the important property that if a node in SCC S1 has an
-// edge to a node in SCC S2, then it visits S1 *after* S2.
-//
-// To visit S1 *before* S2, use the scc_iterator on the Inverse graph.
-// (NOTE: This requires some simple wrappers and is not supported yet.)
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SCCITERATOR_H
-#define LLVM_ADT_SCCITERATOR_H
-
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/ADT/iterator"
-#include <vector>
-#include <map>
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-///
-/// scc_iterator - Enumerate the SCCs of a directed graph, in
-/// reverse topological order of the SCC DAG.
-///
-template<class GraphT, class GT = GraphTraits<GraphT> >
-class scc_iterator
-  : public forward_iterator<std::vector<typename GT::NodeType>, ptrdiff_t> {
-  typedef typename GT::NodeType          NodeType;
-  typedef typename GT::ChildIteratorType ChildItTy;
-  typedef std::vector<NodeType*> SccTy;
-  typedef forward_iterator<SccTy, ptrdiff_t> super;
-  typedef typename super::reference reference;
-  typedef typename super::pointer pointer;
-
-  // The visit counters used to detect when a complete SCC is on the stack.
-  // visitNum is the global counter.
-  // nodeVisitNumbers are per-node visit numbers, also used as DFS flags.
-  unsigned visitNum;
-  std::map<NodeType *, unsigned> nodeVisitNumbers;
-
-  // SCCNodeStack - Stack holding nodes of the SCC.
-  std::vector<NodeType *> SCCNodeStack;
-
-  // CurrentSCC - The current SCC, retrieved using operator*().
-  SccTy CurrentSCC;
-
-  // VisitStack - Used to maintain the ordering.  Top = current block
-  // First element is basic block pointer, second is the 'next child' to visit
-  std::vector<std::pair<NodeType *, ChildItTy> > VisitStack;
-
-  // MinVistNumStack - Stack holding the "min" values for each node in the DFS.
-  // This is used to track the minimum uplink values for all children of
-  // the corresponding node on the VisitStack.
-  std::vector<unsigned> MinVisitNumStack;
-
-  // A single "visit" within the non-recursive DFS traversal.
-  void DFSVisitOne(NodeType* N) {
-    ++visitNum;                         // Global counter for the visit order
-    nodeVisitNumbers[N] = visitNum;
-    SCCNodeStack.push_back(N);
-    MinVisitNumStack.push_back(visitNum);
-    VisitStack.push_back(std::make_pair(N, GT::child_begin(N)));
-    //DOUT << "TarjanSCC: Node " << N <<
-    //      " : visitNum = " << visitNum << "\n";
-  }
-
-  // The stack-based DFS traversal; defined below.
-  void DFSVisitChildren() {
-    assert(!VisitStack.empty());
-    while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
-      // TOS has at least one more child so continue DFS
-      NodeType *childN = *VisitStack.back().second++;
-      if (!nodeVisitNumbers.count(childN)) {
-        // this node has never been seen
-        DFSVisitOne(childN);
-      } else {
-        unsigned childNum = nodeVisitNumbers[childN];
-        if (MinVisitNumStack.back() > childNum)
-          MinVisitNumStack.back() = childNum;
-      }
-    }
-  }
-
-  // Compute the next SCC using the DFS traversal.
-  void GetNextSCC() {
-    assert(VisitStack.size() == MinVisitNumStack.size());
-    CurrentSCC.clear();                 // Prepare to compute the next SCC
-    while (!VisitStack.empty()) {
-      DFSVisitChildren();
-      assert(VisitStack.back().second ==GT::child_end(VisitStack.back().first));
-      NodeType* visitingN = VisitStack.back().first;
-      unsigned minVisitNum = MinVisitNumStack.back();
-      VisitStack.pop_back();
-      MinVisitNumStack.pop_back();
-      if (!MinVisitNumStack.empty() && MinVisitNumStack.back() > minVisitNum)
-        MinVisitNumStack.back() = minVisitNum;
-
-      //DOUT << "TarjanSCC: Popped node " << visitingN <<
-      //      " : minVisitNum = " << minVisitNum << "; Node visit num = " <<
-      //      nodeVisitNumbers[visitingN] << "\n";
-
-      if (minVisitNum == nodeVisitNumbers[visitingN]) {
-        // A full SCC is on the SCCNodeStack!  It includes all nodes below
-          // visitingN on the stack.  Copy those nodes to CurrentSCC,
-          // reset their minVisit values, and return (this suspends
-          // the DFS traversal till the next ++).
-          do {
-            CurrentSCC.push_back(SCCNodeStack.back());
-            SCCNodeStack.pop_back();
-            nodeVisitNumbers[CurrentSCC.back()] = ~0U;
-          } while (CurrentSCC.back() != visitingN);
-          return;
-        }
-    }
-  }
-
-  inline scc_iterator(NodeType *entryN) : visitNum(0) {
-    DFSVisitOne(entryN);
-    GetNextSCC();
-  }
-  inline scc_iterator() { /* End is when DFS stack is empty */ }
-
-public:
-  typedef scc_iterator<GraphT, GT> _Self;
-
-  // Provide static "constructors"...
-  static inline _Self begin(GraphT& G) { return _Self(GT::getEntryNode(G)); }
-  static inline _Self end  (GraphT& G) { return _Self(); }
-
-  // Direct loop termination test (I.fini() is more efficient than I == end())
-  inline bool fini() const {
-    assert(!CurrentSCC.empty() || VisitStack.empty());
-    return CurrentSCC.empty();
-  }
-
-  inline bool operator==(const _Self& x) const {
-    return VisitStack == x.VisitStack && CurrentSCC == x.CurrentSCC;
-  }
-  inline bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  // Iterator traversal: forward iteration only
-  inline _Self& operator++() {          // Preincrement
-    GetNextSCC();
-    return *this;
-  }
-  inline _Self operator++(int) {        // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-
-  // Retrieve a reference to the current SCC
-  inline const SccTy &operator*() const {
-    assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!");
-    return CurrentSCC;
-  }
-  inline SccTy &operator*() {
-    assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!");
-    return CurrentSCC;
-  }
-
-  // hasLoop() -- Test if the current SCC has a loop.  If it has more than one
-  // node, this is trivially true.  If not, it may still contain a loop if the
-  // node has an edge back to itself.
-  bool hasLoop() const {
-    assert(!CurrentSCC.empty() && "Dereferencing END SCC iterator!");
-    if (CurrentSCC.size() > 1) return true;
-    NodeType *N = CurrentSCC.front();
-    for (ChildItTy CI = GT::child_begin(N), CE=GT::child_end(N); CI != CE; ++CI)
-      if (*CI == N)
-        return true;
-    return false;
-  }
-};
-
-
-// Global constructor for the SCC iterator.
-template <class T>
-scc_iterator<T> scc_begin(T G) {
-  return scc_iterator<T>::begin(G);
-}
-
-template <class T>
-scc_iterator<T> scc_end(T G) {
-  return scc_iterator<T>::end(G);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/STLExtras.h b/support/include/llvm/ADT/STLExtras.h
deleted file mode 100644
index 14137e3..0000000
--- a/support/include/llvm/ADT/STLExtras.h
+++ /dev/null
@@ -1,204 +0,0 @@
-//===- llvm/ADT/STLExtras.h - Useful STL related functions ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains some templates that are useful if you are working with the
-// STL at all.
-//
-// No library is required when using these functinons.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_STLEXTRAS_H
-#define LLVM_ADT_STLEXTRAS_H
-
-#include <functional>
-#include <utility> // for std::pair
-#include "llvm/ADT/iterator"
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-//     Extra additions to <functional>
-//===----------------------------------------------------------------------===//
-
-template<class Ty>
-struct greater_ptr : public std::binary_function<Ty, Ty, bool> {
-  bool operator()(const Ty* left, const Ty* right) const {
-    return *right < *left;
-  }
-};
-
-// deleter - Very very very simple method that is used to invoke operator
-// delete on something.  It is used like this:
-//
-//   for_each(V.begin(), B.end(), deleter<Interval>);
-//
-template <class T>
-static inline void deleter(T *Ptr) {
-  delete Ptr;
-}
-
-
-
-//===----------------------------------------------------------------------===//
-//     Extra additions to <iterator>
-//===----------------------------------------------------------------------===//
-
-// mapped_iterator - This is a simple iterator adapter that causes a function to
-// be dereferenced whenever operator* is invoked on the iterator.
-//
-template <class RootIt, class UnaryFunc>
-class mapped_iterator {
-  RootIt current;
-  UnaryFunc Fn;
-public:
-  typedef typename std::iterator_traits<RootIt>::iterator_category
-          iterator_category;
-  typedef typename std::iterator_traits<RootIt>::difference_type
-          difference_type;
-  typedef typename UnaryFunc::result_type value_type;
-
-  typedef void pointer;
-  //typedef typename UnaryFunc::result_type *pointer;
-  typedef void reference;        // Can't modify value returned by fn
-
-  typedef RootIt iterator_type;
-  typedef mapped_iterator<RootIt, UnaryFunc> _Self;
-
-  inline const RootIt &getCurrent() const { return current; }
-
-  inline explicit mapped_iterator(const RootIt &I, UnaryFunc F)
-    : current(I), Fn(F) {}
-  inline mapped_iterator(const mapped_iterator &It)
-    : current(It.current), Fn(It.Fn) {}
-
-  inline value_type operator*() const {   // All this work to do this
-    return Fn(*current);         // little change
-  }
-
-  _Self& operator++() { ++current; return *this; }
-  _Self& operator--() { --current; return *this; }
-  _Self  operator++(int) { _Self __tmp = *this; ++current; return __tmp; }
-  _Self  operator--(int) { _Self __tmp = *this; --current; return __tmp; }
-  _Self  operator+    (difference_type n) const { return _Self(current + n); }
-  _Self& operator+=   (difference_type n) { current += n; return *this; }
-  _Self  operator-    (difference_type n) const { return _Self(current - n); }
-  _Self& operator-=   (difference_type n) { current -= n; return *this; }
-  reference operator[](difference_type n) const { return *(*this + n); }
-
-  inline bool operator!=(const _Self &X) const { return !operator==(X); }
-  inline bool operator==(const _Self &X) const { return current == X.current; }
-  inline bool operator< (const _Self &X) const { return current <  X.current; }
-
-  inline difference_type operator-(const _Self &X) const {
-    return current - X.current;
-  }
-};
-
-template <class _Iterator, class Func>
-inline mapped_iterator<_Iterator, Func>
-operator+(typename mapped_iterator<_Iterator, Func>::difference_type N,
-          const mapped_iterator<_Iterator, Func>& X) {
-  return mapped_iterator<_Iterator, Func>(X.getCurrent() - N);
-}
-
-
-// map_iterator - Provide a convenient way to create mapped_iterators, just like
-// make_pair is useful for creating pairs...
-//
-template <class ItTy, class FuncTy>
-inline mapped_iterator<ItTy, FuncTy> map_iterator(const ItTy &I, FuncTy F) {
-  return mapped_iterator<ItTy, FuncTy>(I, F);
-}
-
-
-// next/prior - These functions unlike std::advance do not modify the
-// passed iterator but return a copy.
-//
-// next(myIt) returns copy of myIt incremented once
-// next(myIt, n) returns copy of myIt incremented n times
-// prior(myIt) returns copy of myIt decremented once
-// prior(myIt, n) returns copy of myIt decremented n times
-
-template <typename ItTy, typename Dist>
-inline ItTy next(ItTy it, Dist n)
-{
-  std::advance(it, n);
-  return it;
-}
-
-template <typename ItTy>
-inline ItTy next(ItTy it)
-{
-  std::advance(it, 1);
-  return it;
-}
-
-template <typename ItTy, typename Dist>
-inline ItTy prior(ItTy it, Dist n)
-{
-  std::advance(it, -n);
-  return it;
-}
-
-template <typename ItTy>
-inline ItTy prior(ItTy it)
-{
-  std::advance(it, -1);
-  return it;
-}
-
-//===----------------------------------------------------------------------===//
-//     Extra additions to <utility>
-//===----------------------------------------------------------------------===//
-
-// tie - this function ties two objects and returns a temporary object
-// that is assignable from a std::pair. This can be used to make code
-// more readable when using values returned from functions bundled in
-// a std::pair. Since an example is worth 1000 words:
-//
-// typedef std::map<int, int> Int2IntMap;
-//
-// Int2IntMap myMap;
-// Int2IntMap::iterator where;
-// bool inserted;
-// tie(where, inserted) = myMap.insert(std::make_pair(123,456));
-//
-// if (inserted)
-//   // do stuff
-// else
-//   // do other stuff
-
-namespace
-{
-  template <typename T1, typename T2>
-  struct tier {
-    typedef T1 &first_type;
-    typedef T2 &second_type;
-
-    first_type first;
-    second_type second;
-
-    tier(first_type f, second_type s) : first(f), second(s) { }
-    tier& operator=(const std::pair<T1, T2>& p) {
-      first = p.first;
-      second = p.second;
-      return *this;
-    }
-  };
-}
-
-template <typename T1, typename T2>
-inline tier<T1, T2> tie(T1& f, T2& s) {
-  return tier<T1, T2>(f, s);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/SetOperations.h b/support/include/llvm/ADT/SetOperations.h
deleted file mode 100644
index c37d1e7..0000000
--- a/support/include/llvm/ADT/SetOperations.h
+++ /dev/null
@@ -1,71 +0,0 @@
-//===-- llvm/ADT/SetOperations.h - Generic Set Operations -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines generic set operations that may be used on set's of
-// different types, and different element types.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SETOPERATIONS_H
-#define LLVM_ADT_SETOPERATIONS_H
-
-namespace llvm {
-
-/// set_union(A, B) - Compute A := A u B, return whether A changed.
-///
-template <class S1Ty, class S2Ty>
-bool set_union(S1Ty &S1, const S2Ty &S2) {
-  bool Changed = false;
-
-  for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
-       SI != SE; ++SI)
-    if (S1.insert(*SI).second)
-      Changed = true;
-
-  return Changed;
-}
-
-/// set_intersect(A, B) - Compute A := A ^ B
-/// Identical to set_intersection, except that it works on set<>'s and
-/// is nicer to use.  Functionally, this iterates through S1, removing
-/// elements that are not contained in S2.
-///
-template <class S1Ty, class S2Ty>
-void set_intersect(S1Ty &S1, const S2Ty &S2) {
-   for (typename S1Ty::iterator I = S1.begin(); I != S1.end();) {
-     const typename S1Ty::key_type &E = *I;
-     ++I;
-     if (!S2.count(E)) S1.erase(E);   // Erase element if not in S2
-   }
-}
-
-/// set_difference(A, B) - Return A - B
-///
-template <class S1Ty, class S2Ty>
-S1Ty set_difference(const S1Ty &S1, const S2Ty &S2) {
-  S1Ty Result;
-  for (typename S1Ty::const_iterator SI = S1.begin(), SE = S1.end();
-       SI != SE; ++SI)
-    if (!S2.count(*SI))       // if the element is not in set2
-      Result.insert(*SI);
-  return Result;
-}
-
-/// set_subtract(A, B) - Compute A := A - B
-///
-template <class S1Ty, class S2Ty>
-void set_subtract(S1Ty &S1, const S2Ty &S2) {
-  for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
-       SI != SE; ++SI)
-    S1.erase(*SI);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/SetVector.h b/support/include/llvm/ADT/SetVector.h
deleted file mode 100644
index 7675534..0000000
--- a/support/include/llvm/ADT/SetVector.h
+++ /dev/null
@@ -1,168 +0,0 @@
-//===- llvm/ADT/SetVector.h - Set with insert order iteration ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a set that has insertion order iteration
-// characteristics. This is useful for keeping a set of things that need to be
-// visited later but in a deterministic order (insertion order). The interface
-// is purposefully minimal.
-//
-// This file defines SetVector and SmallSetVector, which performs no allocations
-// if the SetVector has less than a certain number of elements.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SETVECTOR_H
-#define LLVM_ADT_SETVECTOR_H
-
-#include "llvm/ADT/SmallSet.h"
-#include <vector>
-#include <cassert>
-#include <algorithm>
-
-namespace llvm {
-
-/// This adapter class provides a way to keep a set of things that also has the
-/// property of a deterministic iteration order. The order of iteration is the
-/// order of insertion.
-/// @brief A vector that has set insertion semantics.
-template <typename T, typename Vector = std::vector<T>,
-                      typename Set = SmallSet<T, 16> >
-class SetVector {
-public:
-  typedef T value_type;
-  typedef T key_type;
-  typedef T& reference;
-  typedef const T& const_reference;
-  typedef Set set_type;
-  typedef Vector vector_type;
-  typedef typename vector_type::const_iterator iterator;
-  typedef typename vector_type::const_iterator const_iterator;
-  typedef typename vector_type::size_type size_type;
-
-  /// @brief Construct an empty SetVector
-  SetVector() {}
-
-  /// @brief Initialize a SetVector with a range of elements
-  template<typename It>
-  SetVector(It Start, It End) {
-    insert(Start, End);
-  }
-
-  /// @brief Determine if the SetVector is empty or not.
-  bool empty() const {
-    return vector_.empty();
-  }
-
-  /// @brief Determine the number of elements in the SetVector.
-  size_type size() const {
-    return vector_.size();
-  }
-
-  /// @brief Get an iterator to the beginning of the SetVector.
-  iterator begin() {
-    return vector_.begin();
-  }
-
-  /// @brief Get a const_iterator to the beginning of the SetVector.
-  const_iterator begin() const {
-    return vector_.begin();
-  }
-
-  /// @brief Get an iterator to the end of the SetVector.
-  iterator end() {
-    return vector_.end();
-  }
-
-  /// @brief Get a const_iterator to the end of the SetVector.
-  const_iterator end() const {
-    return vector_.end();
-  }
-
-  /// @brief Return the last element of the SetVector.
-  const T &back() const {
-    assert(!empty() && "Cannot call back() on empty SetVector!");
-    return vector_.back();
-  }
-
-  /// @brief Index into the SetVector.
-  const_reference operator[](size_type n) const {
-    assert(n < vector_.size() && "SetVector access out of range!");
-    return vector_[n];
-  }
-
-  /// @returns true iff the element was inserted into the SetVector.
-  /// @brief Insert a new element into the SetVector.
-  bool insert(const value_type &X) {
-    bool result = set_.insert(X);
-    if (result)
-      vector_.push_back(X);
-    return result;
-  }
-
-  /// @brief Insert a range of elements into the SetVector.
-  template<typename It>
-  void insert(It Start, It End) {
-    for (; Start != End; ++Start)
-      if (set_.insert(*Start))
-        vector_.push_back(*Start);
-  }
-
-  /// @brief Remove an item from the set vector.
-  void remove(const value_type& X) {
-    if (set_.erase(X)) {
-      typename vector_type::iterator I =
-        std::find(vector_.begin(), vector_.end(), X);
-      assert(I != vector_.end() && "Corrupted SetVector instances!");
-      vector_.erase(I);
-    }
-  }
-
-
-  /// @returns 0 if the element is not in the SetVector, 1 if it is.
-  /// @brief Count the number of elements of a given key in the SetVector.
-  size_type count(const key_type &key) const {
-    return set_.count(key);
-  }
-
-  /// @brief Completely clear the SetVector
-  void clear() {
-    set_.clear();
-    vector_.clear();
-  }
-
-  /// @brief Remove the last element of the SetVector.
-  void pop_back() {
-    assert(!empty() && "Cannot remove an element from an empty SetVector!");
-    set_.erase(back());
-    vector_.pop_back();
-  }
-
-private:
-  set_type set_;         ///< The set.
-  vector_type vector_;   ///< The vector.
-};
-
-/// SmallSetVector - A SetVector that performs no allocations if smaller than
-/// a certain size.
-template <typename T, unsigned N>
-class SmallSetVector : public SetVector<T, SmallVector<T, N>, SmallSet<T, N> > {
-public:
-  SmallSetVector() {}
-  
-  /// @brief Initialize a SmallSetVector with a range of elements
-  template<typename It>
-  SmallSetVector(It Start, It End) {
-    this->insert(Start, End);
-  }
-};
-
-} // End llvm namespace
-
-// vim: sw=2 ai
-#endif
diff --git a/support/include/llvm/ADT/SmallPtrSet.h b/support/include/llvm/ADT/SmallPtrSet.h
deleted file mode 100644
index 27c8459..0000000
--- a/support/include/llvm/ADT/SmallPtrSet.h
+++ /dev/null
@@ -1,250 +0,0 @@
-//===- llvm/ADT/SmallPtrSet.h - 'Normally small' pointer set ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SmallPtrSet class.  See the doxygen comment for
-// SmallPtrSetImpl for more details on the algorithm used.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SMALLPTRSET_H
-#define LLVM_ADT_SMALLPTRSET_H
-
-#include <cassert>
-#include <cstring>
-#include "llvm/Support/DataTypes.h"
-
-namespace llvm {
-
-/// SmallPtrSetImpl - This is the common code shared among all the
-/// SmallPtrSet<>'s, which is almost everything.  SmallPtrSet has two modes, one
-/// for small and one for large sets.
-///
-/// Small sets use an array of pointers allocated in the SmallPtrSet object,
-/// which is treated as a simple array of pointers.  When a pointer is added to
-/// the set, the array is scanned to see if the element already exists, if not
-/// the element is 'pushed back' onto the array.  If we run out of space in the
-/// array, we grow into the 'large set' case.  SmallSet should be used when the
-/// sets are often small.  In this case, no memory allocation is used, and only
-/// light-weight and cache-efficient scanning is used.
-///
-/// Large sets use a classic exponentially-probed hash table.  Empty buckets are
-/// represented with an illegal pointer value (-1) to allow null pointers to be
-/// inserted.  Tombstones are represented with another illegal pointer value
-/// (-2), to allow deletion.  The hash table is resized when the table is 3/4 or
-/// more.  When this happens, the table is doubled in size.
-///
-class SmallPtrSetImpl {
-protected:
-  /// CurArray - This is the current set of buckets.  If it points to
-  /// SmallArray, then the set is in 'small mode'.
-  void **CurArray;
-  /// CurArraySize - The allocated size of CurArray, always a power of two.
-  /// Note that CurArray points to an array that has CurArraySize+1 elements in
-  /// it, so that the end iterator actually points to valid memory.
-  unsigned CurArraySize;
-  
-  // If small, this is # elts allocated consequtively
-  unsigned NumElements;
-  unsigned NumTombstones;
-  void *SmallArray[1];  // Must be last ivar.
-
-  // Helper to copy construct a SmallPtrSet.
-  SmallPtrSetImpl(const SmallPtrSetImpl& that);
-public:
-  SmallPtrSetImpl(unsigned SmallSize) {
-    assert(SmallSize && (SmallSize & (SmallSize-1)) == 0 &&
-           "Initial size must be a power of two!");
-    CurArray = &SmallArray[0];
-    CurArraySize = SmallSize;
-    // The end pointer, always valid, is set to a valid element to help the
-    // iterator.
-    CurArray[SmallSize] = 0;
-    clear();
-  }
-  ~SmallPtrSetImpl();
-  
-  bool empty() const { return size() == 0; }
-  unsigned size() const { return NumElements; }
-  
-  static void *getTombstoneMarker() { return reinterpret_cast<void*>(-2); }
-  static void *getEmptyMarker() {
-    // Note that -1 is chosen to make clear() efficiently implementable with
-    // memset and because it's not a valid pointer value.
-    return reinterpret_cast<void*>(-1);
-  }
-  
-  void clear() {
-    // Fill the array with empty markers.
-    memset(CurArray, -1, CurArraySize*sizeof(void*));
-    NumElements = 0;
-    NumTombstones = 0;
-  }
-  
-  /// insert - This returns true if the pointer was new to the set, false if it
-  /// was already in the set.
-  bool insert(void *Ptr);
-  
-  template <typename IterT>
-  void insert(IterT I, IterT E) {
-    for (; I != E; ++I)
-      insert((void*)*I);
-  }
-  
-  /// erase - If the set contains the specified pointer, remove it and return
-  /// true, otherwise return false.
-  bool erase(void *Ptr);
-  
-  bool count(void *Ptr) const {
-    if (isSmall()) {
-      // Linear search for the item.
-      for (void *const *APtr = SmallArray, *const *E = SmallArray+NumElements;
-           APtr != E; ++APtr)
-        if (*APtr == Ptr)
-          return true;
-      return false;
-    }
-    
-    // Big set case.
-    return *FindBucketFor(Ptr) == Ptr;
-  }
-  
-private:
-  bool isSmall() const { return CurArray == &SmallArray[0]; }
-
-  unsigned Hash(void *Ptr) const {
-    return ((uintptr_t)Ptr >> 4) & (CurArraySize-1);
-  }
-  void * const *FindBucketFor(void *Ptr) const;
-  
-  /// Grow - Allocate a larger backing store for the buckets and move it over.
-  void Grow();
-  
-  void operator=(const SmallPtrSetImpl &RHS);  // DO NOT IMPLEMENT.
-protected:
-  void CopyFrom(const SmallPtrSetImpl &RHS);
-};
-
-/// SmallPtrSetIteratorImpl - This is the common base class shared between all
-/// instances of SmallPtrSetIterator.
-class SmallPtrSetIteratorImpl {
-protected:
-  void *const *Bucket;
-public:
-  SmallPtrSetIteratorImpl(void *const *BP) : Bucket(BP) {
-    AdvanceIfNotValid();
-  }
-  
-  bool operator==(const SmallPtrSetIteratorImpl &RHS) const {
-    return Bucket == RHS.Bucket;
-  }
-  bool operator!=(const SmallPtrSetIteratorImpl &RHS) const {
-    return Bucket != RHS.Bucket;
-  }
-  
-protected:
-  /// AdvanceIfNotValid - If the current bucket isn't valid, advance to a bucket
-  /// that is.   This is guaranteed to stop because the end() bucket is marked
-  /// valid.
-  void AdvanceIfNotValid() {
-    while (*Bucket == SmallPtrSetImpl::getEmptyMarker() ||
-           *Bucket == SmallPtrSetImpl::getTombstoneMarker())
-      ++Bucket;
-  }
-};
-
-/// SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet.
-template<typename PtrTy>
-class SmallPtrSetIterator : public SmallPtrSetIteratorImpl {
-public:
-  SmallPtrSetIterator(void *const *BP) : SmallPtrSetIteratorImpl(BP) {}
-
-  // Most methods provided by baseclass.
-  
-  PtrTy operator*() const {
-    return static_cast<PtrTy>(*Bucket);
-  }
-  
-  inline SmallPtrSetIterator& operator++() {          // Preincrement
-    ++Bucket;
-    AdvanceIfNotValid();
-    return *this;
-  }
-  
-  SmallPtrSetIterator operator++(int) {        // Postincrement
-    SmallPtrSetIterator tmp = *this; ++*this; return tmp;
-  }
-};
-
-/// NextPowerOfTwo - This is a helper template that rounds N up to the next
-/// power of two.
-template<unsigned N>
-struct NextPowerOfTwo;
-
-/// NextPowerOfTwoH - If N is not a power of two, increase it.  This is a helper
-/// template used to implement NextPowerOfTwo.
-template<unsigned N, bool isPowerTwo>
-struct NextPowerOfTwoH {
-  enum { Val = N };
-};
-template<unsigned N>
-struct NextPowerOfTwoH<N, false> {
-  enum {
-    // We could just use NextVal = N+1, but this converges faster.  N|(N-1) sets
-    // the right-most zero bits to one all at once, e.g. 0b0011000 -> 0b0011111.
-    Val = NextPowerOfTwo<(N|(N-1)) + 1>::Val
-  };
-};
-
-template<unsigned N>
-struct NextPowerOfTwo {
-  enum { Val = NextPowerOfTwoH<N, (N&(N-1)) == 0>::Val };
-};
-
-
-/// SmallPtrSet - This class implements a set which is optimizer for holding
-/// SmallSize or less elements.  This internally rounds up SmallSize to the next
-/// power of two if it is not already a power of two.  See the comments above
-/// SmallPtrSetImpl for details of the algorithm.
-template<class PtrType, unsigned SmallSize>
-class SmallPtrSet : public SmallPtrSetImpl {
-  // Make sure that SmallSize is a power of two, round up if not.
-  enum { SmallSizePowTwo = NextPowerOfTwo<SmallSize>::Val };
-  void *SmallArray[SmallSizePowTwo];
-public:
-  SmallPtrSet() : SmallPtrSetImpl(NextPowerOfTwo<SmallSizePowTwo>::Val) {}
-  SmallPtrSet(const SmallPtrSet &that) : SmallPtrSetImpl(that) {}
-  
-  template<typename It>
-  SmallPtrSet(It I, It E)
-    : SmallPtrSetImpl(NextPowerOfTwo<SmallSizePowTwo>::Val) {
-    insert(I, E);
-  }
-  
-  typedef SmallPtrSetIterator<PtrType> iterator;
-  typedef SmallPtrSetIterator<PtrType> const_iterator;
-  inline iterator begin() const {
-    return iterator(CurArray);
-  }
-  inline iterator end() const {
-    return iterator(CurArray+CurArraySize);
-  }
-  
-  // Allow assignment from any smallptrset with the same element type even if it
-  // doesn't have the same smallsize.
-  const SmallPtrSet<PtrType, SmallSize>&
-  operator=(const SmallPtrSet<PtrType, SmallSize> &RHS) {
-    CopyFrom(RHS);
-    return *this;
-  }
-
-};
-
-}
-
-#endif
diff --git a/support/include/llvm/ADT/SmallSet.h b/support/include/llvm/ADT/SmallSet.h
deleted file mode 100644
index 30e8ee5..0000000
--- a/support/include/llvm/ADT/SmallSet.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//===- llvm/ADT/SmallSet.h - 'Normally small' sets --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SmallSet class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SMALLSET_H
-#define LLVM_ADT_SMALLSET_H
-
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/SmallPtrSet.h"
-#include <set>
-
-namespace llvm {
-
-/// SmallSet - This maintains a set of unique values, optimizing for the case
-/// when the set is small (less than N).  In this case, the set can be
-/// maintained with no mallocs.  If the set gets large, we expand to using an
-/// std::set to maintain reasonable lookup times.
-///
-/// Note that this set does not provide a way to iterate over members in the
-/// set.
-template <typename T, unsigned N>
-class SmallSet {
-  /// Use a SmallVector to hold the elements here (even though it will never
-  /// reach it's 'large' stage) to avoid calling the default ctors of elements
-  /// we will never use.
-  SmallVector<T, N> Vector;
-  std::set<T> Set;
-  typedef typename SmallVector<T, N>::const_iterator VIterator;
-  typedef typename SmallVector<T, N>::iterator mutable_iterator;
-public:
-  SmallSet() {}
-
-  bool empty() const { return Vector.empty() && Set.empty(); }
-  unsigned size() const {
-    return isSmall() ? Vector.size() : Set.size();
-  }
-  
-  /// count - Return true if the element is in the set.
-  bool count(const T &V) const {
-    if (isSmall()) {
-      // Since the collection is small, just do a linear search.
-      return vfind(V) != Vector.end();
-    } else {
-      return Set.count(V);
-    }
-  }
-  
-  /// insert - Insert an element into the set if it isn't already there.
-  bool insert(const T &V) {
-    if (!isSmall())
-      return Set.insert(V).second;
-    
-    VIterator I = vfind(V);
-    if (I != Vector.end())    // Don't reinsert if it already exists.
-      return false;
-    if (Vector.size() < N) {
-      Vector.push_back(V);
-      return true;
-    }
-
-    // Otherwise, grow from vector to set.
-    while (!Vector.empty()) {
-      Set.insert(Vector.back());
-      Vector.pop_back();
-    }
-    Set.insert(V);
-    return true;
-  }
-  
-  bool erase(const T &V) {
-    if (!isSmall())
-      return Set.erase(V);
-    for (mutable_iterator I = Vector.begin(), E = Vector.end(); I != E; ++I)
-      if (*I == V) {
-        Vector.erase(I);
-        return true;
-      }
-    return false;
-  }
-  
-  void clear() {
-    Vector.clear();
-    Set.clear();
-  }
-private:
-  bool isSmall() const { return Set.empty(); }
-    
-  VIterator vfind(const T &V) const {
-    for (VIterator I = Vector.begin(), E = Vector.end(); I != E; ++I)
-      if (*I == V)
-        return I;
-    return Vector.end();
-  }
-};
-
-/// If this set is of pointer values, transparently switch over to using
-/// SmallPtrSet for performance.
-template <typename PointeeType, unsigned N>
-class SmallSet<PointeeType*, N> : public SmallPtrSet<PointeeType*, N> {};
-
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/ADT/SmallString.h b/support/include/llvm/ADT/SmallString.h
deleted file mode 100644
index 2818ebb..0000000
--- a/support/include/llvm/ADT/SmallString.h
+++ /dev/null
@@ -1,62 +0,0 @@
-//===- llvm/ADT/SmallString.h - 'Normally small' strings --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SmallString class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SMALLSTRING_H
-#define LLVM_ADT_SMALLSTRING_H
-
-#include "llvm/ADT/SmallVector.h"
-#include <cstring>
-
-namespace llvm {
-
-/// SmallString - A SmallString is just a SmallVector with methods and accessors
-/// that make it work better as a string (e.g. operator+ etc).
-template<unsigned InternalLen>
-class SmallString : public SmallVector<char, InternalLen> {
-public:
-  // Default ctor - Initialize to empty.
-  SmallString() {}
-
-  // Initialize with a range.
-  template<typename ItTy>
-  SmallString(ItTy S, ItTy E) : SmallVector<char, InternalLen>(S, E) {}
-  
-  // Copy ctor.
-  SmallString(const SmallString &RHS) : SmallVector<char, InternalLen>(RHS) {}
-
-  
-  // Extra methods.
-  const char *c_str() const {
-    SmallString *This = const_cast<SmallString*>(this);
-    // Ensure that there is a \0 at the end of the string.
-    This->reserve(this->size()+1);
-    This->End[0] = 0;
-    return this->begin();
-  }
-  
-  // Extra operators.
-  SmallString &operator+=(const char *RHS) {
-    this->append(RHS, RHS+strlen(RHS));
-    return *this;
-  }
-  SmallString &operator+=(char C) {
-    this->push_back(C);
-    return *this;
-  }
-  
-};
-  
-  
-}
-
-#endif
diff --git a/support/include/llvm/ADT/SmallVector.h b/support/include/llvm/ADT/SmallVector.h
deleted file mode 100644
index 876ca27..0000000
--- a/support/include/llvm/ADT/SmallVector.h
+++ /dev/null
@@ -1,485 +0,0 @@
-//===- llvm/ADT/SmallVector.h - 'Normally small' vectors --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SmallVector class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_SMALLVECTOR_H
-#define LLVM_ADT_SMALLVECTOR_H
-
-#include <algorithm>
-#include <iterator>
-#include <memory>
-
-#ifdef _MSC_VER
-namespace std {
-#if _MSC_VER <= 1310
-  // Work around flawed VC++ implementation of std::uninitialized_copy.  Define
-  // additional overloads so that elements with pointer types are recognized as
-  // scalars and not objects, causing bizarre type conversion errors.
-  template<class T1, class T2>
-  inline _Scalar_ptr_iterator_tag _Ptr_cat(T1 **, T2 **) {
-    _Scalar_ptr_iterator_tag _Cat;
-    return _Cat;
-  }
-
-  template<class T1, class T2>
-  inline _Scalar_ptr_iterator_tag _Ptr_cat(T1* const *, T2 **) {
-    _Scalar_ptr_iterator_tag _Cat;
-    return _Cat;
-  }
-#else
-// FIXME: It is not clear if the problem is fixed in VS 2005.  What is clear
-// is that the above hack won't work if it wasn't fixed.
-#endif
-}
-#endif
-
-namespace llvm {
-
-/// SmallVectorImpl - This class consists of common code factored out of the
-/// SmallVector class to reduce code duplication based on the SmallVector 'N'
-/// template parameter.
-template <typename T>
-class SmallVectorImpl {
-protected:
-  T *Begin, *End, *Capacity;
-  
-  // Allocate raw space for N elements of type T.  If T has a ctor or dtor, we
-  // don't want it to be automatically run, so we need to represent the space as
-  // something else.  An array of char would work great, but might not be
-  // aligned sufficiently.  Instead, we either use GCC extensions, or some
-  // number of union instances for the space, which guarantee maximal alignment.
-protected:
-#ifdef __GNUC__
-  typedef char U;
-  U FirstEl __attribute__((aligned));
-#else
-  union U {
-    double D;
-    long double LD;
-    long long L;
-    void *P;
-  } FirstEl;
-#endif
-  // Space after 'FirstEl' is clobbered, do not add any instance vars after it.
-public:
-  // Default ctor - Initialize to empty.
-  SmallVectorImpl(unsigned N)
-    : Begin((T*)&FirstEl), End((T*)&FirstEl), Capacity((T*)&FirstEl+N) {
-  }
-  
-  ~SmallVectorImpl() {
-    // Destroy the constructed elements in the vector.
-    destroy_range(Begin, End);
-
-    // If this wasn't grown from the inline copy, deallocate the old space.
-    if (!isSmall())
-      delete[] (char*)Begin;
-  }
-  
-  typedef size_t size_type;
-  typedef T* iterator;
-  typedef const T* const_iterator;
-  typedef T& reference;
-  typedef const T& const_reference;
-
-  bool empty() const { return Begin == End; }
-  size_type size() const { return End-Begin; }
-  
-  iterator begin() { return Begin; }
-  const_iterator begin() const { return Begin; }
-
-  iterator end() { return End; }
-  const_iterator end() const { return End; }
-  
-  reference operator[](unsigned idx) {
-    return Begin[idx];
-  }
-  const_reference operator[](unsigned idx) const {
-    return Begin[idx];
-  }
-  
-  reference front() {
-    return begin()[0];
-  }
-  const_reference front() const {
-    return begin()[0];
-  }
-  
-  reference back() {
-    return end()[-1];
-  }
-  const_reference back() const {
-    return end()[-1];
-  }
-  
-  void push_back(const_reference Elt) {
-    if (End < Capacity) {
-  Retry:
-      new (End) T(Elt);
-      ++End;
-      return;
-    }
-    grow();
-    goto Retry;
-  }
-  
-  void pop_back() {
-    --End;
-    End->~T();
-  }
-  
-  void clear() {
-    destroy_range(Begin, End);
-    End = Begin;
-  }
-  
-  void resize(unsigned N) {
-    if (N < size()) {
-      destroy_range(Begin+N, End);
-      End = Begin+N;
-    } else if (N > size()) {
-      if (unsigned(Capacity-Begin) < N)
-        grow(N);
-      construct_range(End, Begin+N, T());
-      End = Begin+N;
-    }
-  }
-  
-  void resize(unsigned N, const T &NV) {
-    if (N < size()) {
-      destroy_range(Begin+N, End);
-      End = Begin+N;
-    } else if (N > size()) {
-      if (unsigned(Capacity-Begin) < N)
-        grow(N);
-      construct_range(End, Begin+N, NV);
-      End = Begin+N;
-    }
-  }
-  
-  void reserve(unsigned N) {
-    if (unsigned(Capacity-Begin) < N)
-      grow(N);
-  }
-  
-  void swap(SmallVectorImpl &RHS);
-  
-  /// append - Add the specified range to the end of the SmallVector.
-  ///
-  template<typename in_iter>
-  void append(in_iter in_start, in_iter in_end) {
-    unsigned NumInputs = std::distance(in_start, in_end);
-    // Grow allocated space if needed.
-    if (End+NumInputs > Capacity)
-      grow(size()+NumInputs);
-
-    // Copy the new elements over.
-    std::uninitialized_copy(in_start, in_end, End);
-    End += NumInputs;
-  }
-  
-  void assign(unsigned NumElts, const T &Elt) {
-    clear();
-    if (unsigned(Capacity-Begin) < NumElts)
-      grow(NumElts);
-    End = Begin+NumElts;
-    construct_range(Begin, End, Elt);
-  }
-  
-  void erase(iterator I) {
-    // Shift all elts down one.
-    std::copy(I+1, End, I);
-    // Drop the last elt.
-    pop_back();
-  }
-  
-  void erase(iterator S, iterator E) {
-    // Shift all elts down.
-    iterator I = std::copy(E, End, S);
-    // Drop the last elts.
-    destroy_range(I, End);
-    End = I;
-  }
-  
-  iterator insert(iterator I, const T &Elt) {
-    if (I == End) {  // Important special case for empty vector.
-      push_back(Elt);
-      return end()-1;
-    }
-    
-    if (End < Capacity) {
-  Retry:
-      new (End) T(back());
-      ++End;
-      // Push everything else over.
-      std::copy_backward(I, End-1, End);
-      *I = Elt;
-      return I;
-    }
-    unsigned EltNo = I-Begin;
-    grow();
-    I = Begin+EltNo;
-    goto Retry;
-  }
-  
-  template<typename ItTy>
-  iterator insert(iterator I, ItTy From, ItTy To) {
-    if (I == End) {  // Important special case for empty vector.
-      append(From, To);
-      return end()-1;
-    }
-    
-    unsigned NumToInsert = std::distance(From, To);
-    // Convert iterator to elt# to avoid invalidating iterator when we reserve()
-    unsigned InsertElt = I-begin();
-    
-    // Ensure there is enough space.
-    reserve(size() + NumToInsert);
-    
-    // Uninvalidate the iterator.
-    I = begin()+InsertElt;
-    
-    // If we already have this many elements in the collection, append the
-    // dest elements at the end, then copy over the appropriate elements.  Since
-    // we already reserved space, we know that this won't reallocate the vector.
-    if (size() >= NumToInsert) {
-      T *OldEnd = End;
-      append(End-NumToInsert, End);
-      
-      // Copy the existing elements that get replaced.
-      std::copy(I, OldEnd-NumToInsert, I+NumToInsert);
-      
-      std::copy(From, To, I);
-      return I;
-    }
-
-    // Otherwise, we're inserting more elements than exist already, and we're
-    // not inserting at the end.
-    
-    // Copy over the elements that we're about to overwrite.
-    T *OldEnd = End;
-    End += NumToInsert;
-    unsigned NumOverwritten = OldEnd-I;
-    std::uninitialized_copy(I, OldEnd, End-NumOverwritten);
-    
-    // Replace the overwritten part.
-    std::copy(From, From+NumOverwritten, I);
-    
-    // Insert the non-overwritten middle part.
-    std::uninitialized_copy(From+NumOverwritten, To, OldEnd);
-    return I;
-  }
-  
-  const SmallVectorImpl &operator=(const SmallVectorImpl &RHS);
-  
-private:
-  /// isSmall - Return true if this is a smallvector which has not had dynamic
-  /// memory allocated for it.
-  bool isSmall() const {
-    return (void*)Begin == (void*)&FirstEl;
-  }
-
-  /// grow - double the size of the allocated memory, guaranteeing space for at
-  /// least one more element or MinSize if specified.
-  void grow(unsigned MinSize = 0);
-
-  void construct_range(T *S, T *E, const T &Elt) {
-    for (; S != E; ++S)
-      new (S) T(Elt);
-  }
-  
-  void destroy_range(T *S, T *E) {
-    while (S != E) {
-      --E;
-      E->~T();
-    }
-  }
-};
-
-// Define this out-of-line to dissuade the C++ compiler from inlining it.
-template <typename T>
-void SmallVectorImpl<T>::grow(unsigned MinSize) {
-  unsigned CurCapacity = unsigned(Capacity-Begin);
-  unsigned CurSize = unsigned(size());
-  unsigned NewCapacity = 2*CurCapacity;
-  if (NewCapacity < MinSize)
-    NewCapacity = MinSize;
-  T *NewElts = reinterpret_cast<T*>(new char[NewCapacity*sizeof(T)]);
-  
-  // Copy the elements over.
-  std::uninitialized_copy(Begin, End, NewElts);
-  
-  // Destroy the original elements.
-  destroy_range(Begin, End);
-  
-  // If this wasn't grown from the inline copy, deallocate the old space.
-  if (!isSmall())
-    delete[] (char*)Begin;
-  
-  Begin = NewElts;
-  End = NewElts+CurSize;
-  Capacity = Begin+NewCapacity;
-}
-
-template <typename T>
-void SmallVectorImpl<T>::swap(SmallVectorImpl<T> &RHS) {
-  if (this == &RHS) return;
-  
-  // We can only avoid copying elements if neither vector is small.
-  if (!isSmall() && !RHS.isSmall()) {
-    std::swap(Begin, RHS.Begin);
-    std::swap(End, RHS.End);
-    std::swap(Capacity, RHS.Capacity);
-    return;
-  }
-  if (Begin+RHS.size() > Capacity)
-    grow(RHS.size());
-  if (RHS.begin()+size() > RHS.Capacity)
-    RHS.grow(size());
-  
-  // Swap the shared elements.
-  unsigned NumShared = size();
-  if (NumShared > RHS.size()) NumShared = RHS.size();
-  for (unsigned i = 0; i != NumShared; ++i)
-    std::swap(Begin[i], RHS[i]);
-  
-  // Copy over the extra elts.
-  if (size() > RHS.size()) {
-    unsigned EltDiff = size() - RHS.size();
-    std::uninitialized_copy(Begin+NumShared, End, RHS.End);
-    RHS.End += EltDiff;
-    destroy_range(Begin+NumShared, End);
-    End = Begin+NumShared;
-  } else if (RHS.size() > size()) {
-    unsigned EltDiff = RHS.size() - size();
-    std::uninitialized_copy(RHS.Begin+NumShared, RHS.End, End);
-    End += EltDiff;
-    destroy_range(RHS.Begin+NumShared, RHS.End);
-    RHS.End = RHS.Begin+NumShared;
-  }
-}
-  
-template <typename T>
-const SmallVectorImpl<T> &
-SmallVectorImpl<T>::operator=(const SmallVectorImpl<T> &RHS) {
-  // Avoid self-assignment.
-  if (this == &RHS) return *this;
-  
-  // If we already have sufficient space, assign the common elements, then
-  // destroy any excess.
-  unsigned RHSSize = unsigned(RHS.size());
-  unsigned CurSize = unsigned(size());
-  if (CurSize >= RHSSize) {
-    // Assign common elements.
-    iterator NewEnd = std::copy(RHS.Begin, RHS.Begin+RHSSize, Begin);
-    
-    // Destroy excess elements.
-    destroy_range(NewEnd, End);
-    
-    // Trim.
-    End = NewEnd;
-    return *this;
-  }
-  
-  // If we have to grow to have enough elements, destroy the current elements.
-  // This allows us to avoid copying them during the grow.
-  if (unsigned(Capacity-Begin) < RHSSize) {
-    // Destroy current elements.
-    destroy_range(Begin, End);
-    End = Begin;
-    CurSize = 0;
-    grow(RHSSize);
-  } else if (CurSize) {
-    // Otherwise, use assignment for the already-constructed elements.
-    std::copy(RHS.Begin, RHS.Begin+CurSize, Begin);
-  }
-  
-  // Copy construct the new elements in place.
-  std::uninitialized_copy(RHS.Begin+CurSize, RHS.End, Begin+CurSize);
-  
-  // Set end.
-  End = Begin+RHSSize;
-  return *this;
-}
-  
-/// SmallVector - This is a 'vector' (really, a variable-sized array), optimized
-/// for the case when the array is small.  It contains some number of elements
-/// in-place, which allows it to avoid heap allocation when the actual number of
-/// elements is below that threshold.  This allows normal "small" cases to be
-/// fast without losing generality for large inputs.
-///
-/// Note that this does not attempt to be exception safe.
-///
-template <typename T, unsigned N>
-class SmallVector : public SmallVectorImpl<T> {
-  /// InlineElts - These are 'N-1' elements that are stored inline in the body
-  /// of the vector.  The extra '1' element is stored in SmallVectorImpl.
-  typedef typename SmallVectorImpl<T>::U U;
-  enum {
-    // MinUs - The number of U's require to cover N T's.
-    MinUs = (sizeof(T)*N+sizeof(U)-1)/sizeof(U),
-    
-    // NumInlineEltsElts - The number of elements actually in this array.  There
-    // is already one in the parent class, and we have to round up to avoid
-    // having a zero-element array.
-    NumInlineEltsElts = (MinUs - 1) > 0 ? (MinUs - 1) : 1,
-    
-    // NumTsAvailable - The number of T's we actually have space for, which may
-    // be more than N due to rounding.
-    NumTsAvailable = (NumInlineEltsElts+1)*sizeof(U) / sizeof(T)
-  };
-  U InlineElts[NumInlineEltsElts];
-public:  
-  SmallVector() : SmallVectorImpl<T>(NumTsAvailable) {
-  }
-  
-  explicit SmallVector(unsigned Size, const T &Value = T())
-    : SmallVectorImpl<T>(NumTsAvailable) {
-    this->reserve(Size);
-    while (Size--)
-      push_back(Value);
-  }
-  
-  template<typename ItTy>
-  SmallVector(ItTy S, ItTy E) : SmallVectorImpl<T>(NumTsAvailable) {
-    append(S, E);
-  }
-  
-  SmallVector(const SmallVector &RHS) : SmallVectorImpl<T>(NumTsAvailable) {
-    operator=(RHS);
-  }
-  
-  const SmallVector &operator=(const SmallVector &RHS) {
-    SmallVectorImpl<T>::operator=(RHS);
-    return *this;
-  }
-};
-
-} // End llvm namespace
-
-namespace std {
-  /// Implement std::swap in terms of SmallVector swap.
-  template<typename T>
-  inline void
-  swap(llvm::SmallVectorImpl<T> &LHS, llvm::SmallVectorImpl<T> &RHS) {
-    LHS.swap(RHS);
-  }
-  
-  /// Implement std::swap in terms of SmallVector swap.
-  template<typename T, unsigned N>
-  inline void
-  swap(llvm::SmallVector<T, N> &LHS, llvm::SmallVector<T, N> &RHS) {
-    LHS.swap(RHS);
-  }
-}
-
-#endif
diff --git a/support/include/llvm/ADT/Statistic.h b/support/include/llvm/ADT/Statistic.h
deleted file mode 100644
index ec4fdd6..0000000
--- a/support/include/llvm/ADT/Statistic.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//===-- llvm/ADT/Statistic.h - Easy way to expose stats ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the 'Statistic' class, which is designed to be an easy way
-// to expose various metrics from passes.  These statistics are printed at the
-// end of a run (from llvm_shutdown), when the -stats command line option is
-// passed on the command line.
-//
-// This is useful for reporting information like the number of instructions
-// simplified, optimized or removed by various transformations, like this:
-//
-// static Statistic NumInstsKilled("gcse", "Number of instructions killed");
-//
-// Later, in the code: ++NumInstsKilled;
-//
-// NOTE: Statistics *must* be declared as global variables.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_STATISTIC_H
-#define LLVM_ADT_STATISTIC_H
-
-namespace llvm {
-
-class Statistic {
-public:
-  const char *Name;
-  const char *Desc;
-  unsigned Value : 31;
-  bool Initialized : 1;
-
-  unsigned getValue() const { return Value; }
-  const char *getName() const { return Name; }
-  const char *getDesc() const { return Desc; }
-
-  /// construct - This should only be called for non-global statistics.
-  void construct(const char *name, const char *desc) {
-    Name = name; Desc = desc;
-    Value = 0; Initialized = 0;
-  }
-
-  // Allow use of this class as the value itself.
-  operator unsigned() const { return Value; }
-  const Statistic &operator=(unsigned Val) { Value = Val; return init(); }
-  const Statistic &operator++() { ++Value; return init(); }
-  unsigned operator++(int) { init(); return Value++; }
-  const Statistic &operator--() { --Value; return init(); }
-  unsigned operator--(int) { init(); return Value--; }
-  const Statistic &operator+=(const unsigned &V) { Value += V; return init(); }
-  const Statistic &operator-=(const unsigned &V) { Value -= V; return init(); }
-  const Statistic &operator*=(const unsigned &V) { Value *= V; return init(); }
-  const Statistic &operator/=(const unsigned &V) { Value /= V; return init(); }
-  
-protected:
-  Statistic &init() {
-    if (!Initialized) RegisterStatistic();
-    return *this;
-  }
-  void RegisterStatistic();
-};
-  
-// STATISTIC - A macro to make definition of statistics really simple.  This
-// automatically passes the DEBUG_TYPE of the file into the statistic.
-#define STATISTIC(VARNAME, DESC) \
-  static Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 }
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/StringExtras.h b/support/include/llvm/ADT/StringExtras.h
deleted file mode 100644
index f0788a1..0000000
--- a/support/include/llvm/ADT/StringExtras.h
+++ /dev/null
@@ -1,150 +0,0 @@
-//===-- llvm/ADT/StringExtras.h - Useful string functions -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains some functions that are useful when dealing with strings.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_STRINGEXTRAS_H
-#define LLVM_ADT_STRINGEXTRAS_H
-
-#include "llvm/Support/DataTypes.h"
-#include <cctype>
-#include <cstdio>
-#include <string>
-#include <vector>
-
-namespace llvm {
-
-static inline std::string utohexstr(uint64_t X) {
-  char Buffer[40];
-  char *BufPtr = Buffer+39;
-
-  *BufPtr = 0;                  // Null terminate buffer...
-  if (X == 0) *--BufPtr = '0';  // Handle special case...
-
-  while (X) {
-    unsigned char Mod = static_cast<unsigned char>(X) & 15;
-    if (Mod < 10)
-      *--BufPtr = '0' + Mod;
-    else
-      *--BufPtr = 'A' + Mod-10;
-    X >>= 4;
-  }
-  return std::string(BufPtr);
-}
-
-static inline std::string utostr_32(uint32_t X, bool isNeg = false) {
-  char Buffer[20];
-  char *BufPtr = Buffer+19;
-
-  *BufPtr = 0;                  // Null terminate buffer...
-  if (X == 0) *--BufPtr = '0';  // Handle special case...
-
-  while (X) {
-    *--BufPtr = '0' + char(X % 10);
-    X /= 10;
-  }
-
-  if (isNeg) *--BufPtr = '-';   // Add negative sign...
-
-  return std::string(BufPtr);
-}
-
-static inline std::string utostr(uint64_t X, bool isNeg = false) {
-  if (X == uint32_t(X))
-    return utostr_32(uint32_t(X), isNeg);
-  
-  char Buffer[40];
-  char *BufPtr = Buffer+39;
-  
-  *BufPtr = 0;                  // Null terminate buffer...
-  if (X == 0) *--BufPtr = '0';  // Handle special case...
-  
-  while (X) {
-    *--BufPtr = '0' + char(X % 10);
-    X /= 10;
-  }
-  
-  if (isNeg) *--BufPtr = '-';   // Add negative sign...
-  return std::string(BufPtr);
-}
-
-
-static inline std::string itostr(int64_t X) {
-  if (X < 0)
-    return utostr(static_cast<uint64_t>(-X), true);
-  else
-    return utostr(static_cast<uint64_t>(X));
-}
-
-static inline std::string ftostr(double V) {
-  char Buffer[200];
-  sprintf(Buffer, "%20.6e", V);
-  char *B = Buffer;
-  while (*B == ' ') ++B;
-  return B;
-}
-
-static inline std::string LowercaseString(const std::string &S) {
-  std::string result(S);
-  for (unsigned i = 0; i < S.length(); ++i)
-    if (isupper(result[i]))
-      result[i] = char(tolower(result[i]));
-  return result;
-}
-
-/// StringsEqualNoCase - Return true if the two strings are equal, ignoring
-/// case.
-static inline bool StringsEqualNoCase(const std::string &LHS, 
-                                      const std::string &RHS) {
-  if (LHS.size() != RHS.size()) return false;
-  for (unsigned i = 0, e = LHS.size(); i != e; ++i)
-    if (tolower(LHS[i]) != tolower(RHS[i])) return false;
-  return true;
-}
-
-/// StringsEqualNoCase - Return true if the two strings are equal, ignoring
-/// case.
-static inline bool StringsEqualNoCase(const std::string &LHS, 
-                                      const char *RHS) {
-  for (unsigned i = 0, e = LHS.size(); i != e; ++i) {
-    if (RHS[i] == 0) return false;  // RHS too short.
-    if (tolower(LHS[i]) != tolower(RHS[i])) return false;
-  }
-  return RHS[LHS.size()] == 0;  // Not too long?
-}
-
-/// getToken - This function extracts one token from source, ignoring any
-/// leading characters that appear in the Delimiters string, and ending the
-/// token at any of the characters that appear in the Delimiters string.  If
-/// there are no tokens in the source string, an empty string is returned.
-/// The Source source string is updated in place to remove the returned string
-/// and any delimiter prefix from it.
-std::string getToken(std::string &Source,
-                     const char *Delimiters = " \t\n\v\f\r");
-
-/// SplitString - Split up the specified string according to the specified
-/// delimiters, appending the result fragments to the output list.
-void SplitString(const std::string &Source,
-                 std::vector<std::string> &OutFragments,
-                 const char *Delimiters = " \t\n\v\f\r");
-
-/// UnescapeString - Modify the argument string, turning two character sequences
-/// like '\\' 'n' into '\n'.  This handles: \e \a \b \f \n \r \t \v \' \\ and
-/// \num (where num is a 1-3 byte octal value).
-void UnescapeString(std::string &Str);
-
-/// EscapeString - Modify the argument string, turning '\\' and anything that
-/// doesn't satisfy std::isprint into an escape sequence.
-void EscapeString(std::string &Str);
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/StringMap.h b/support/include/llvm/ADT/StringMap.h
deleted file mode 100644
index 72108e9..0000000
--- a/support/include/llvm/ADT/StringMap.h
+++ /dev/null
@@ -1,361 +0,0 @@
-//===--- StringMap.h - String Hash table map interface ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the StringMap class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_STRINGMAP_H
-#define LLVM_ADT_STRINGMAP_H
-
-#include "llvm/Support/Allocator.h"
-#include <cstring>
-
-namespace llvm {
-  template<typename ValueT>
-  class StringMapConstIterator;
-  template<typename ValueT>
-  class StringMapIterator;
-
-  
-/// StringMapEntryBase - Shared base class of StringMapEntry instances.
-class StringMapEntryBase {
-  unsigned StrLen;
-public:
-  StringMapEntryBase(unsigned Len) : StrLen(Len) {}
-  
-  unsigned getKeyLength() const { return StrLen; }
-};
-  
-/// StringMapImpl - This is the base class of StringMap that is shared among
-/// all of its instantiations.
-class StringMapImpl {
-public:
-  /// ItemBucket - The hash table consists of an array of these.  If Item is
-  /// non-null, this is an extant entry, otherwise, it is a hole.
-  struct ItemBucket {
-    /// FullHashValue - This remembers the full hash value of the key for
-    /// easy scanning.
-    unsigned FullHashValue;
-    
-    /// Item - This is a pointer to the actual item object.
-    StringMapEntryBase *Item;
-  };
-  
-protected:
-  ItemBucket *TheTable;
-  unsigned NumBuckets;
-  unsigned NumItems;
-  unsigned NumTombstones;
-  unsigned ItemSize;
-protected:
-  StringMapImpl(unsigned itemSize) : ItemSize(itemSize) {
-    // Initialize the map with zero buckets to allocation.
-    TheTable = 0;
-    NumBuckets = 0;
-    NumItems = 0;
-    NumTombstones = 0;
-  }
-  StringMapImpl(unsigned InitSize, unsigned ItemSize);
-  void RehashTable();
-  
-  /// ShouldRehash - Return true if the table should be rehashed after a new
-  /// element was recently inserted.
-  bool ShouldRehash() const {
-    // If the hash table is now more than 3/4 full, or if fewer than 1/8 of
-    // the buckets are empty (meaning that many are filled with tombstones),
-    // grow the table.
-    return NumItems*4 > NumBuckets*3 ||
-           NumBuckets-(NumItems+NumTombstones) < NumBuckets/8;
-  }
-  
-  /// LookupBucketFor - Look up the bucket that the specified string should end
-  /// up in.  If it already exists as a key in the map, the Item pointer for the
-  /// specified bucket will be non-null.  Otherwise, it will be null.  In either
-  /// case, the FullHashValue field of the bucket will be set to the hash value
-  /// of the string.
-  unsigned LookupBucketFor(const char *KeyStart, const char *KeyEnd);
-  
-  /// FindKey - Look up the bucket that contains the specified key. If it exists
-  /// in the map, return the bucket number of the key.  Otherwise return -1.
-  /// This does not modify the map.
-  int FindKey(const char *KeyStart, const char *KeyEnd) const;
-
-  /// RemoveKey - Remove the specified StringMapEntry from the table, but do not
-  /// delete it.  This aborts if the value isn't in the table.
-  void RemoveKey(StringMapEntryBase *V);
-
-  /// RemoveKey - Remove the StringMapEntry for the specified key from the
-  /// table, returning it.  If the key is not in the table, this returns null.
-  StringMapEntryBase *RemoveKey(const char *KeyStart, const char *KeyEnd);
-private:
-  void init(unsigned Size);
-public:
-  static StringMapEntryBase *getTombstoneVal() {
-    return (StringMapEntryBase*)-1;
-  }
-  
-  unsigned getNumBuckets() const { return NumBuckets; }
-  unsigned getNumItems() const { return NumItems; }
-
-  bool empty() const { return NumItems == 0; }
-  unsigned size() const { return NumItems; }
-};
-
-/// StringMapEntry - This is used to represent one value that is inserted into
-/// a StringMap.  It contains the Value itself and the key: the string length
-/// and data.
-template<typename ValueTy>
-class StringMapEntry : public StringMapEntryBase {
-  ValueTy Val;
-public:
-  StringMapEntry(unsigned StrLen)
-    : StringMapEntryBase(StrLen), Val() {}
-  StringMapEntry(unsigned StrLen, const ValueTy &V)
-    : StringMapEntryBase(StrLen), Val(V) {}
-
-  const ValueTy &getValue() const { return Val; }
-  ValueTy &getValue() { return Val; }
-  
-  void setValue(const ValueTy &V) { Val = V; }
-  
-  /// getKeyData - Return the start of the string data that is the key for this
-  /// value.  The string data is always stored immediately after the
-  /// StringMapEntry object.
-  const char *getKeyData() const {return reinterpret_cast<const char*>(this+1);}
-  
-  /// Create - Create a StringMapEntry for the specified key and default
-  /// construct the value.
-  template<typename AllocatorTy>
-  static StringMapEntry *Create(const char *KeyStart, const char *KeyEnd,
-                                AllocatorTy &Allocator) {
-    unsigned KeyLength = KeyEnd-KeyStart;
-    
-    // Okay, the item doesn't already exist, and 'Bucket' is the bucket to fill
-    // in.  Allocate a new item with space for the string at the end and a null
-    // terminator.
-    unsigned AllocSize = sizeof(StringMapEntry)+KeyLength+1;
-    
-#ifdef __GNUC__
-    unsigned Alignment = __alignof__(StringMapEntry);
-#else
-    // FIXME: ugly.
-    unsigned Alignment = 8;
-#endif
-    StringMapEntry *NewItem = 
-      static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize, Alignment));
-    
-    // Default construct the value.
-    new (NewItem) StringMapEntry(KeyLength);
-    
-    // Copy the string information.
-    char *StrBuffer = const_cast<char*>(NewItem->getKeyData());
-    memcpy(StrBuffer, KeyStart, KeyLength);
-    StrBuffer[KeyLength] = 0;  // Null terminate for convenience of clients.
-    return NewItem;
-  }
-  
-  /// Create - Create a StringMapEntry with normal malloc/free.
-  static StringMapEntry *Create(const char *KeyStart, const char *KeyEnd) {
-    MallocAllocator A;
-    return Create(KeyStart, KeyEnd, A);
-  }
-
-  /// Destroy - Destroy this StringMapEntry, releasing memory back to the
-  /// specified allocator.
-  template<typename AllocatorTy>
-  void Destroy(AllocatorTy &Allocator) {
-    // Free memory referenced by the item.
-    this->~StringMapEntry();
-    Allocator.Deallocate(this);
-  }
-  
-  /// Destroy this object, releasing memory back to the malloc allocator.
-  void Destroy() {
-    MallocAllocator A;
-    Destroy(A);
-  }
-};
-
-
-/// StringMap - This is an unconventional map that is specialized for handling
-/// keys that are "strings", which are basically ranges of bytes. This does some
-/// funky memory allocation and hashing things to make it extremely efficient,
-/// storing the string data *after* the value in the map.
-template<typename ValueTy, typename AllocatorTy = MallocAllocator>
-class StringMap : public StringMapImpl {
-  AllocatorTy Allocator;
-  typedef StringMapEntry<ValueTy> MapEntryTy;
-public:
-  StringMap() : StringMapImpl(sizeof(MapEntryTy)) {}
-  StringMap(unsigned InitialSize)
-    : StringMapImpl(InitialSize, sizeof(MapEntryTy)) {}
-  
-  AllocatorTy &getAllocator() { return Allocator; }
-  const AllocatorTy &getAllocator() const { return Allocator; }
-
-  typedef StringMapConstIterator<ValueTy> const_iterator;
-  typedef StringMapIterator<ValueTy> iterator;
-  
-  iterator begin() {
-    return iterator(TheTable, NumBuckets == 0);
-  }
-  iterator end() {
-    return iterator(TheTable+NumBuckets, true);
-  }
-  const_iterator begin() const {
-    return const_iterator(TheTable, NumBuckets == 0);
-  }
-  const_iterator end() const {
-    return const_iterator(TheTable+NumBuckets, true);
-  }
-  
-  iterator find(const char *KeyStart, const char *KeyEnd) {
-    int Bucket = FindKey(KeyStart, KeyEnd);
-    if (Bucket == -1) return end();
-    return iterator(TheTable+Bucket);
-  }
-
-  const_iterator find(const char *KeyStart, const char *KeyEnd) const {
-    int Bucket = FindKey(KeyStart, KeyEnd);
-    if (Bucket == -1) return end();
-    return const_iterator(TheTable+Bucket);
-  }
-  
-  /// insert - Insert the specified key/value pair into the map.  If the key
-  /// already exists in the map, return false and ignore the request, otherwise
-  /// insert it and return true.
-  bool insert(MapEntryTy *KeyValue) {
-    unsigned BucketNo =
-      LookupBucketFor(KeyValue->getKeyData(),
-                      KeyValue->getKeyData()+KeyValue->getKeyLength());
-    ItemBucket &Bucket = TheTable[BucketNo];
-    if (Bucket.Item && Bucket.Item != getTombstoneVal()) 
-      return false;  // Already exists in map.
-    
-    if (Bucket.Item == getTombstoneVal())
-      --NumTombstones;
-    Bucket.Item = KeyValue;
-    ++NumItems;
-    
-    if (ShouldRehash())
-      RehashTable();
-    return true;
-  }
-  
-  /// GetOrCreateValue - Look up the specified key in the table.  If a value
-  /// exists, return it.  Otherwise, default construct a value, insert it, and
-  /// return.
-  StringMapEntry<ValueTy> &GetOrCreateValue(const char *KeyStart, 
-                                            const char *KeyEnd) {
-    unsigned BucketNo = LookupBucketFor(KeyStart, KeyEnd);
-    ItemBucket &Bucket = TheTable[BucketNo];
-    if (Bucket.Item && Bucket.Item != getTombstoneVal())
-      return *static_cast<MapEntryTy*>(Bucket.Item);
-    
-    MapEntryTy *NewItem = MapEntryTy::Create(KeyStart, KeyEnd, Allocator);
-    
-    if (Bucket.Item == getTombstoneVal())
-      --NumTombstones;
-    ++NumItems;
-    
-    // Fill in the bucket for the hash table.  The FullHashValue was already
-    // filled in by LookupBucketFor.
-    Bucket.Item = NewItem;
-    
-    if (ShouldRehash())
-      RehashTable();
-    return *NewItem;
-  }
-  
-  /// remove - Remove the specified key/value pair from the map, but do not
-  /// erase it.  This aborts if the key is not in the map.
-  void remove(MapEntryTy *KeyValue) {
-    RemoveKey(KeyValue);
-  }
-  
-  void erase(iterator I) {
-    MapEntryTy &V = *I;
-    remove(&V);
-    V.Destroy(Allocator);
-  }
-  
-  ~StringMap() {
-    for (ItemBucket *I = TheTable, *E = TheTable+NumBuckets; I != E; ++I) {
-      if (I->Item && I->Item != getTombstoneVal())
-        static_cast<MapEntryTy*>(I->Item)->Destroy(Allocator);
-    }
-    free(TheTable);
-  }
-private:
-  StringMap(const StringMap &);  // FIXME: Implement.
-  void operator=(const StringMap &);  // FIXME: Implement.
-};
-  
-
-template<typename ValueTy>
-class StringMapConstIterator {
-protected:
-  StringMapImpl::ItemBucket *Ptr;
-public:
-  StringMapConstIterator(StringMapImpl::ItemBucket *Bucket,
-                         bool NoAdvance = false)
-  : Ptr(Bucket) {
-    if (!NoAdvance) AdvancePastEmptyBuckets();
-  }
-  
-  const StringMapEntry<ValueTy> &operator*() const {
-    return *static_cast<StringMapEntry<ValueTy>*>(Ptr->Item);
-  }
-  const StringMapEntry<ValueTy> *operator->() const {
-    return static_cast<StringMapEntry<ValueTy>*>(Ptr->Item);
-  }
-  
-  bool operator==(const StringMapConstIterator &RHS) const {
-    return Ptr == RHS.Ptr;
-  }
-  bool operator!=(const StringMapConstIterator &RHS) const {
-    return Ptr != RHS.Ptr;
-  }
-  
-  inline StringMapConstIterator& operator++() {          // Preincrement
-    ++Ptr;
-    AdvancePastEmptyBuckets();
-    return *this;
-  }
-  StringMapConstIterator operator++(int) {        // Postincrement
-    StringMapConstIterator tmp = *this; ++*this; return tmp;
-  }
-  
-private:
-  void AdvancePastEmptyBuckets() {
-    while (Ptr->Item == 0 || Ptr->Item == StringMapImpl::getTombstoneVal())
-      ++Ptr;
-  }
-};
-
-template<typename ValueTy>
-class StringMapIterator : public StringMapConstIterator<ValueTy> {
-public:  
-  StringMapIterator(StringMapImpl::ItemBucket *Bucket,
-                    bool NoAdvance = false)
-    : StringMapConstIterator<ValueTy>(Bucket, NoAdvance) {
-  }
-  StringMapEntry<ValueTy> &operator*() const {
-    return *static_cast<StringMapEntry<ValueTy>*>(this->Ptr->Item);
-  }
-  StringMapEntry<ValueTy> *operator->() const {
-    return static_cast<StringMapEntry<ValueTy>*>(this->Ptr->Item);
-  }
-};
-
-}
-
-#endif
-
diff --git a/support/include/llvm/ADT/Tree.h b/support/include/llvm/ADT/Tree.h
deleted file mode 100644
index 835a001..0000000
--- a/support/include/llvm/ADT/Tree.h
+++ /dev/null
@@ -1,62 +0,0 @@
-//===- llvm/ADT/Tree.h - Generic n-way tree structure -----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class defines a generic N way tree node structure.  The tree structure
-// is immutable after creation, but the payload contained within it is not.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_TREE_H
-#define LLVM_ADT_TREE_H
-
-#include <vector>
-
-namespace llvm {
-
-template<class ConcreteTreeNode, class Payload>
-class Tree {
-  std::vector<ConcreteTreeNode*> Children;        // This nodes children, if any
-  ConcreteTreeNode              *Parent;          // Parent of this node...
-  Payload                        Data;            // Data held in this node...
-
-protected:
-  void setChildren(const std::vector<ConcreteTreeNode*> &children) {
-    Children = children;
-  }
-public:
-  inline Tree(ConcreteTreeNode *parent) : Parent(parent) {}
-  inline Tree(const std::vector<ConcreteTreeNode*> &children,
-              ConcreteTreeNode *par) : Children(children), Parent(par) {}
-
-  inline Tree(const std::vector<ConcreteTreeNode*> &children,
-              ConcreteTreeNode *par, const Payload &data)
-    : Children(children), Parent(par), Data(data) {}
-
-  // Tree dtor - Free all children
-  inline ~Tree() {
-    for (unsigned i = Children.size(); i > 0; --i)
-      delete Children[i-1];
-  }
-
-  // Tree manipulation/walking routines...
-  inline ConcreteTreeNode *getParent() const { return Parent; }
-  inline unsigned getNumChildren() const { return Children.size(); }
-  inline ConcreteTreeNode *getChild(unsigned i) const {
-    assert(i < Children.size() && "Tree::getChild with index out of range!");
-    return Children[i];
-  }
-
-  // Payload access...
-  inline Payload &getTreeData() { return Data; }
-  inline const Payload &getTreeData() const { return Data; }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/UniqueVector.h b/support/include/llvm/ADT/UniqueVector.h
deleted file mode 100644
index f3fd7b1..0000000
--- a/support/include/llvm/ADT/UniqueVector.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- llvm/ADT/UniqueVector.h ---------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by James M. Laskey and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_UNIQUEVECTOR_H
-#define LLVM_ADT_UNIQUEVECTOR_H
-
-#include <cassert>
-#include <map>
-#include <vector>
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-/// UniqueVector - This class produces a sequential ID number (base 1) for each
-/// unique entry that is added.  T is the type of entries in the vector. This
-/// class should have an implementation of operator== and of operator<.
-/// Entries can be fetched using operator[] with the entry ID. 
-template<class T> class UniqueVector {
-private:
-  // Map - Used to handle the correspondence of entry to ID.
-  std::map<T, unsigned> Map;
-
-  // Vector - ID ordered vector of entries. Entries can be indexed by ID - 1.
-  //
-  std::vector<T> Vector;
-  
-public:
-  /// insert - Append entry to the vector if it doesn't already exist.  Returns
-  /// the entry's index + 1 to be used as a unique ID.
-  unsigned insert(const T &Entry) {
-    // Check if the entry is already in the map.
-    unsigned &Val = Map[Entry];
-    
-    // See if entry exists, if so return prior ID.
-    if (Val) return Val;
-
-    // Compute ID for entry.
-    Val = Vector.size() + 1;
-    
-    // Insert in vector.
-    Vector.push_back(Entry);
-    return Val;
-  }
-  
-  /// idFor - return the ID for an existing entry.  Returns 0 if the entry is
-  /// not found.
-  unsigned idFor(const T &Entry) const {
-    // Search for entry in the map.
-    typename std::map<T, unsigned>::const_iterator MI = Map.find(Entry);
-    
-    // See if entry exists, if so return ID.
-    if (MI != Map.end()) return MI->second;
-    
-    // No luck.
-    return 0;
-  }
-
-  /// operator[] - Returns a reference to the entry with the specified ID.
-  ///
-  const T &operator[](unsigned ID) const {
-    assert(ID-1 < size() && "ID is 0 or out of range!");
-    return Vector[ID - 1];
-  }
-  
-  /// size - Returns the number of entries in the vector.
-  ///
-  size_t size() const { return Vector.size(); }
-  
-  /// empty - Returns true if the vector is empty.
-  ///
-  bool empty() const { return Vector.empty(); }
-  
-  /// reset - Clears all the entries.
-  ///
-  void reset() {
-    Map.clear();
-    Vector.resize(0, 0);
-  }
-};
-
-} // End of namespace llvm
-
-#endif // LLVM_ADT_UNIQUEVECTOR_H
diff --git a/support/include/llvm/ADT/VectorExtras.h b/support/include/llvm/ADT/VectorExtras.h
deleted file mode 100644
index bda2ae6..0000000
--- a/support/include/llvm/ADT/VectorExtras.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- llvm/ADT/VectorExtras.h - Helpers for std::vector -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains helper functions which are useful for working with the
-// std::vector class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_VECTOREXTRAS_H
-#define LLVM_ADT_VECTOREXTRAS_H
-
-#include <cstdarg>
-#include <vector>
-
-namespace llvm {
-
-/// make_vector - Helper function which is useful for building temporary vectors
-/// to pass into type construction of CallInst ctors.  This turns a null
-/// terminated list of pointers (or other value types) into a real live vector.
-///
-template<typename T>
-inline std::vector<T> make_vector(T A, ...) {
-  va_list Args;
-  va_start(Args, A);
-  std::vector<T> Result;
-  Result.push_back(A);
-  while (T Val = va_arg(Args, T))
-    Result.push_back(Val);
-  va_end(Args);
-  return Result;
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/ADT/hash_map.in b/support/include/llvm/ADT/hash_map.in
deleted file mode 100644
index fe5c393..0000000
--- a/support/include/llvm/ADT/hash_map.in
+++ /dev/null
@@ -1,150 +0,0 @@
-//===-- llvm/ADT/hash_map - "Portable" wrapper around hash_map --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-// 
-// This file provides a wrapper around the mysterious <hash_map> header file
-// that seems to move around between GCC releases into and out of namespaces at
-// will.  #including this header will cause hash_map to be available in the
-// global namespace.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_HASH_MAP
-#define LLVM_ADT_HASH_MAP
-
-// Compiler Support Matrix
-//
-// Version   Namespace   Header File
-//  2.95.x       ::        hash_map
-//  3.0.4       std      ext/hash_map
-//  3.1      __gnu_cxx   ext/hash_map
-//  HP aCC6     std      stdex/rw/hashm*ap.h
-//  MS VC++    stdext      hash_map
-
-#undef HAVE_GNU_EXT_HASH_MAP
-#undef HAVE_STD_EXT_HASH_MAP
-#undef HAVE_GLOBAL_HASH_MAP
-#undef HAVE_RW_STDEX_HASH_MAP_H
-
-#if HAVE_GNU_EXT_HASH_MAP
-// This is for GCC-3.1+ which puts hash in ext/hash_map
-# include <ext/hash_map>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE __gnu_cxx
-# endif
-
-// GCC 3.0.x puts hash_map in <ext/hash_map> and in the std namespace.
-#elif HAVE_STD_EXT_HASH_MAP
-# include <ext/hash_map>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// Older compilers such as GCC before version 3.0 do not keep
-// extensions in the `ext' directory, and ignore the `std' namespace.
-#elif HAVE_GLOBAL_HASH_MAP
-# include <hash_map>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// HP aCC doesn't include an SGI-like hash_map. For this platform (or
-// any others using Rogue Wave Software's Tools.h++ library), we wrap
-// around them in std::
-#elif HAVE_RW_STDEX_HASH_MAP_H
-# include <rw/stdex/hashmap.h>
-# include <rw/stdex/hashmmap.h>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// Support Microsoft VC++.
-#elif defined(_MSC_VER)
-# include <hash_map>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE stdext
-   using std::_Distance;
-# endif
-
-// Give a warning if we couldn't find it, instead of (or in addition to)
-// randomly doing something dumb.
-#else
-# warning "Autoconfiguration failed to find the hash_map header file."
-#endif
-
-// we wrap Rogue Wave Tools.h++ rw_hashmap into something SGI-looking, here:
-#ifdef HAVE_RW_STDEX_HASH_MAP_H
-namespace HASH_NAMESPACE {
-
-template <class DataType> struct hash {
-  unsigned int operator()(const unsigned int& x) const {
-      return x;
-  }
-};
-
-template <typename KeyType,
-          typename ValueType,
-          class _HashFcn = hash<KeyType>,
-          class _EqualKey = equal_to<KeyType>,
-          class _A = allocator <ValueType> >
-class hash_map : public rw_hashmap<KeyType, ValueType, class _HashFcn, 
-                                   class _EqualKey, class _A> {
-};
-
-template <typename KeyType,
-          typename ValueType,
-          class _HashFcn = hash<KeyType>,
-          class _EqualKey = equal_to<KeyType>,
-          class _A = allocator <ValueType> >
-class hash_multimap : public rw_hashmultimap<KeyType, ValueType, class _HashFcn,
-                                             class _EqualKey, class _A> {
-};
-
-} // end HASH_NAMESPACE;
-#endif
-
-// Include vector because ext/hash_map includes stl_vector.h and leaves
-// out specializations like stl_bvector.h, causing link conflicts.
-#include <vector>
-
-#ifdef _MSC_VER
-
-// GCC and VC++ have differing ways of implementing hash_maps.  As it's not
-// standardized, that's to be expected.  This adapter class allows VC++
-// hash_map to use GCC's hash classes.
-namespace stdext {
-  template<class Key> struct hash;
-  
-  // Provide a hash function for unsigned ints...
-  template<> struct hash<unsigned int> {
-    inline size_t operator()(unsigned int Val) const {
-      return Val;
-    }
-  };
-
-  template<class Key> class hash_compare<Key, std::less<Key> > {
-    std::less<Key> comp;
-  public:
-    enum { bucket_size = 4 };
-    enum { min_buckets = 8 };
-    hash_compare() {}
-    hash_compare(std::less<Key> pred) : comp(pred) {}
-    size_t operator()(const Key& key) const { return hash<Key>()(key); }
-    bool operator()(const Key& k1, const Key& k2) const { return comp(k1, k2); }
-  };
-}
-
-#endif
-
-using HASH_NAMESPACE::hash_map;
-using HASH_NAMESPACE::hash_multimap;
-using HASH_NAMESPACE::hash;
-
-#include "llvm/ADT/HashExtras.h"
-
-#endif
diff --git a/support/include/llvm/ADT/hash_set.in b/support/include/llvm/ADT/hash_set.in
deleted file mode 100644
index aa27e5f..0000000
--- a/support/include/llvm/ADT/hash_set.in
+++ /dev/null
@@ -1,111 +0,0 @@
-//===-- llvm/ADT/hash_set - "Portable" wrapper around hash_set --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-// vim:ft=cpp
-//
-// This file provides a wrapper around the mysterious <hash_set> header file
-// that seems to move around between GCC releases into and out of namespaces at
-// will.  #including this header will cause hash_set to be available in the
-// global namespace.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_HASH_SET
-#define LLVM_ADT_HASH_SET
-
-// Compiler Support Matrix
-//
-// Version   Namespace   Header File
-//  2.95.x       ::        hash_set
-//  3.0.4       std      ext/hash_set
-//  3.1      __gnu_cxx   ext/hash_set
-//  HP aCC6     std      stdex/rw/hashset.h
-//  MS VC++    stdext      hash_set
-
-#undef HAVE_GNU_EXT_HASH_SET
-#undef HAVE_STD_EXT_HASH_SET
-#undef HAVE_GLOBAL_HASH_SET
-#undef HAVE_RW_STDEX_HASH_SET_H
-
-// GCC versions 3.1 and later put hash_set in <ext/hash_set> and in
-// the __gnu_cxx namespace.
-#if HAVE_GNU_EXT_HASH_SET
-# include <ext/hash_set>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE __gnu_cxx
-# endif
-
-// GCC 3.0.x puts hash_set in <ext/hash_set> and in the std namespace.
-#elif HAVE_STD_EXT_HASH_SET
-# include <ext/hash_set>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// Older compilers such as GCC before version 3.0 do not keep
-// extensions in the `ext' directory, and ignore the `std' namespace.
-#elif HAVE_GLOBAL_HASH_SET
-# include <hash_set>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// HP aCC doesn't include an SGI-like hash_set. For this platform (or
-// any others using Rogue Wave Software's Tools.h++ library), we wrap
-// around them in std::
-#elif HAVE_RW_STDEX_HASH_SET_H
-# include <rw/stdex/hashset.h>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE std
-# endif
-
-// Support Microsoft VC++.
-#elif defined(_MSC_VER)
-# include <hash_set>
-# ifndef HASH_NAMESPACE
-#  define HASH_NAMESPACE stdext
-# endif
-
-// Give a warning if we couldn't find it, instead of (or in addition to)
-// randomly doing something dumb.
-#else
-# warning "Autoconfiguration failed to find the hash_set header file."
-#endif
-
-// we wrap Rogue Wave Tools.h++ rw_hashset into something SGI-looking, here:
-#ifdef HAVE_RW_STDEX_HASH_SET_H
-namespace HASH_NAMESPACE {
-
-/*
-template <class DataType> struct hash {
-    unsigned int operator()(const unsigned int& x) const {
-      return x;
-    }
-};
-*/
-
-template <typename ValueType,
-  class _HashFcn = hash<ValueType>,
-  class _EqualKey = equal_to<ValueType>,
-  class _A = allocator <ValueType> >
-class hash_set : 
-  public rw_hashset<ValueType, class _HashFcn, class _EqualKey, class _A> {
-};
-
-} // end HASH_NAMESPACE;
-#endif
-
-using HASH_NAMESPACE::hash_set;
-
-// Include vector because ext/hash_set includes stl_vector.h and leaves
-// out specializations like stl_bvector.h, causing link conflicts.
-#include <vector>
-
-#include "llvm/ADT/HashExtras.h"
-
-#endif
diff --git a/support/include/llvm/ADT/iterator.in b/support/include/llvm/ADT/iterator.in
deleted file mode 100644
index 47f70d1..0000000
--- a/support/include/llvm/ADT/iterator.in
+++ /dev/null
@@ -1,76 +0,0 @@
-//===-- llvm/ADT/iterator - Portable wrapper around <iterator> --*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides a wrapper around the mysterious <iterator> header file.
-// In GCC 2.95.3, the file defines a bidirectional_iterator class (and other
-// friends), instead of the standard iterator class.  In GCC 3.1, the
-// bidirectional_iterator class got moved out and the new, standards compliant,
-// iterator<> class was added.  Because there is nothing that we can do to get
-// correct behavior on both compilers, we have this header with #ifdef's.  Gross
-// huh?
-//
-// By #includ'ing this file, you get the contents of <iterator> plus the
-// following classes in the global namespace:
-//
-//   1. bidirectional_iterator
-//   2. forward_iterator
-//
-// The #if directives' expressions are filled in by Autoconf.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_ADT_ITERATOR
-#define LLVM_ADT_ITERATOR
-
-#include <iterator>
-
-#undef HAVE_BI_ITERATOR
-#undef HAVE_STD_ITERATOR
-#undef HAVE_FWD_ITERATOR
-
-#ifdef _MSC_VER
-#  define HAVE_BI_ITERATOR 0
-#  define HAVE_STD_ITERATOR 1
-#  define HAVE_FWD_ITERATOR 0
-#endif
-
-#if !HAVE_BI_ITERATOR
-# if HAVE_STD_ITERATOR
-/// If the bidirectional iterator is not defined, we attempt to define it in
-/// terms of the C++ standard iterator. Otherwise, we import it with a "using"
-/// statement.
-///
-template<class Ty, class PtrDiffTy>
-struct bidirectional_iterator
-  : public std::iterator<std::bidirectional_iterator_tag, Ty, PtrDiffTy> {
-};
-# else
-#  error "Need to have standard iterator to define bidirectional iterator!"
-# endif
-#else
-using std::bidirectional_iterator;
-#endif
-
-#if !HAVE_FWD_ITERATOR
-# if HAVE_STD_ITERATOR
-/// If the forward iterator is not defined, attempt to define it in terms of
-/// the C++ standard iterator. Otherwise, we import it with a "using" statement.
-///
-template<class Ty, class PtrDiffTy>
-struct forward_iterator
-  : public std::iterator<std::forward_iterator_tag, Ty, PtrDiffTy> {
-};
-# else
-#  error "Need to have standard iterator to define forward iterator!"
-# endif
-#else
-using std::forward_iterator;
-#endif
-
-#endif
diff --git a/support/include/llvm/Config/alloca.h b/support/include/llvm/Config/alloca.h
deleted file mode 100644
index 10fa74d..0000000
--- a/support/include/llvm/Config/alloca.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *                     The LLVM Compiler Infrastructure
- *
- * This file was developed by the LLVM research group and is distributed under
- * the University of Illinois Open Source License. See LICENSE.TXT for details.
- *
- ******************************************************************************
- *
- * Description:
- *  This header file includes the infamous alloc.h header file if the
- *  autoconf system has found it.  It hides all of the autoconf details
- *  from the rest of the application source code.
- */
-
-#ifndef _CONFIG_ALLOC_H
-#define _CONFIG_ALLOC_H
-
-#include "llvm/Config/config.h"
-
-/*
- * This is a modified version of that suggested by the Autoconf manual.
- *  1) The #pragma is indented so that pre-ANSI C compilers ignore it.
- *  2) If alloca.h cannot be found, then try stdlib.h.  Some platforms
- *     (notably FreeBSD) defined alloca() there.
- */
-#ifdef _MSC_VER
-#include <malloc.h>
-#define alloca _alloca
-#elif defined(HAVE_ALLOCA_H)
-#include <alloca.h>
-#elif defined(__MINGW32__) && defined(HAVE_MALLOC_H)
-#include <malloc.h>
-#elif !defined(__GNUC__)
-# ifdef _AIX
-#   pragma alloca
-# else
-#   ifndef alloca
-      char * alloca ();
-#   endif
-# endif
-#else
-# ifdef HAVE_STDLIB_H
-#   include <stdlib.h>
-# else
-#   error "The function alloca() is required but not found!"
-# endif
-#endif
-
-#endif
-
diff --git a/support/include/llvm/Config/config.h.in b/support/include/llvm/Config/config.h.in
deleted file mode 100644
index fb32c62..0000000
--- a/support/include/llvm/Config/config.h.in
+++ /dev/null
@@ -1,534 +0,0 @@
-/* include/llvm/Config/config.h.in.  Generated from autoconf/configure.ac by autoheader.  */
-
-/* Define if dlopen(0) will open the symbols of the program */
-#undef CAN_DLOPEN_SELF
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the `argz_append' function. */
-#undef HAVE_ARGZ_APPEND
-
-/* Define to 1 if you have the `argz_create_sep' function. */
-#undef HAVE_ARGZ_CREATE_SEP
-
-/* Define to 1 if you have the <argz.h> header file. */
-#undef HAVE_ARGZ_H
-
-/* Define to 1 if you have the `argz_insert' function. */
-#undef HAVE_ARGZ_INSERT
-
-/* Define to 1 if you have the `argz_next' function. */
-#undef HAVE_ARGZ_NEXT
-
-/* Define to 1 if you have the `argz_stringify' function. */
-#undef HAVE_ARGZ_STRINGIFY
-
-/* Define to 1 if you have the <assert.h> header file. */
-#undef HAVE_ASSERT_H
-
-/* Define to 1 if you have the `backtrace' function. */
-#undef HAVE_BACKTRACE
-
-/* Define to 1 if you have the `bcopy' function. */
-#undef HAVE_BCOPY
-
-/* Does not have bi-directional iterator */
-#undef HAVE_BI_ITERATOR
-
-/* Define to 1 if you have the `ceilf' function. */
-#undef HAVE_CEILF
-
-/* Define to 1 if you have the `closedir' function. */
-#undef HAVE_CLOSEDIR
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the GNU dld library. */
-#undef HAVE_DLD
-
-/* Define to 1 if you have the <dld.h> header file. */
-#undef HAVE_DLD_H
-
-/* Define to 1 if you have the `dlerror' function. */
-#undef HAVE_DLERROR
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if dlopen() is available on this platform. */
-#undef HAVE_DLOPEN
-
-/* Define to 1 if you have the <dl.h> header file. */
-#undef HAVE_DL_H
-
-/* Define if the dot program is available */
-#undef HAVE_DOT
-
-/* Define if the dotty program is available */
-#undef HAVE_DOTTY
-
-/* Define if you have the _dyld_func_lookup function. */
-#undef HAVE_DYLD
-
-/* Define to 1 if you have the <errno.h> header file. */
-#undef HAVE_ERRNO_H
-
-/* Define to 1 if the system has the type `error_t'. */
-#undef HAVE_ERROR_T
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Set to 1 if the finite function is found in <ieeefp.h> */
-#undef HAVE_FINITE_IN_IEEEFP_H
-
-/* Define to 1 if you have the `floorf' function. */
-#undef HAVE_FLOORF
-
-/* Define to 1 if you have the `fmodf' function. */
-#undef HAVE_FMODF
-
-/* Does not have forward iterator */
-#undef HAVE_FWD_ITERATOR
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define to 1 if you have the `getrlimit' function. */
-#undef HAVE_GETRLIMIT
-
-/* Define to 1 if you have the `getrusage' function. */
-#undef HAVE_GETRUSAGE
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Does not have <hash_map> */
-#undef HAVE_GLOBAL_HASH_MAP
-
-/* Does not have hash_set in global namespace */
-#undef HAVE_GLOBAL_HASH_SET
-
-/* Does not have ext/hash_map */
-#undef HAVE_GNU_EXT_HASH_MAP
-
-/* Does not have hash_set in gnu namespace */
-#undef HAVE_GNU_EXT_HASH_SET
-
-/* Define if the Graphviz program is available */
-#undef HAVE_GRAPHVIZ
-
-/* Define if the gv program is available */
-#undef HAVE_GV
-
-/* Define to 1 if you have the `index' function. */
-#undef HAVE_INDEX
-
-/* Define to 1 if the system has the type `int64_t'. */
-#undef HAVE_INT64_T
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isatty' function. */
-#undef HAVE_ISATTY
-
-/* Set to 1 if the isinf function is found in <cmath> */
-#undef HAVE_ISINF_IN_CMATH
-
-/* Set to 1 if the isinf function is found in <math.h> */
-#undef HAVE_ISINF_IN_MATH_H
-
-/* Set to 1 if the isnan function is found in <cmath> */
-#undef HAVE_ISNAN_IN_CMATH
-
-/* Set to 1 if the isnan function is found in <math.h> */
-#undef HAVE_ISNAN_IN_MATH_H
-
-/* Define if you have the libdl library or equivalent. */
-#undef HAVE_LIBDL
-
-/* Define to 1 if you have the `elf' library (-lelf). */
-#undef HAVE_LIBELF
-
-/* Define to 1 if you have the `imagehlp' library (-limagehlp). */
-#undef HAVE_LIBIMAGEHLP
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `psapi' library (-lpsapi). */
-#undef HAVE_LIBPSAPI
-
-/* Define to 1 if you have the `pthread' library (-lpthread). */
-#undef HAVE_LIBPTHREAD
-
-/* Define to 1 if you have the `udis86' library (-ludis86). */
-#undef HAVE_LIBUDIS86
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the <link.h> header file. */
-#undef HAVE_LINK_H
-
-/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
-   the current directory to the dynamic linker search path. */
-#undef HAVE_LINK_R
-
-/* Define to 1 if you have the `longjmp' function. */
-#undef HAVE_LONGJMP
-
-/* Define if lt_dlopen() is available on this platform */
-#undef HAVE_LT_DLOPEN
-
-/* Define to 1 if you have the <mach/mach.h> header file. */
-#undef HAVE_MACH_MACH_H
-
-/* Define to 1 if you have the <mach-o/dyld.h> header file. */
-#undef HAVE_MACH_O_DYLD_H
-
-/* Define if mallinfo() is available on this platform. */
-#undef HAVE_MALLINFO
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <malloc/malloc.h> header file. */
-#undef HAVE_MALLOC_MALLOC_H
-
-/* Define to 1 if you have the `malloc_zone_statistics' function. */
-#undef HAVE_MALLOC_ZONE_STATISTICS
-
-/* Define to 1 if you have the `memcpy' function. */
-#undef HAVE_MEMCPY
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkdtemp' function. */
-#undef HAVE_MKDTEMP
-
-/* Define to 1 if you have the `mkstemp' function. */
-#undef HAVE_MKSTEMP
-
-/* Define to 1 if you have the `mktemp' function. */
-#undef HAVE_MKTEMP
-
-/* Define to 1 if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
-   it uses MAP_ANON */
-#undef HAVE_MMAP_ANONYMOUS
-
-/* Define if mmap() can map files into memory */
-#undef HAVE_MMAP_FILE
-
-/* define if the compiler implements namespaces */
-#undef HAVE_NAMESPACES
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the `nearbyintf' function. */
-#undef HAVE_NEARBYINTF
-
-/* Define to 1 if you have the `opendir' function. */
-#undef HAVE_OPENDIR
-
-/* Define to 1 if you have the `powf' function. */
-#undef HAVE_POWF
-
-/* Define if libtool can extract symbol lists from object files. */
-#undef HAVE_PRELOADED_SYMBOLS
-
-/* Define to have the %a format string */
-#undef HAVE_PRINTF_A
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#undef HAVE_PTHREAD_H
-
-/* Have pthread_mutex_lock */
-#undef HAVE_PTHREAD_MUTEX_LOCK
-
-/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */
-#undef HAVE_RAND48
-
-/* Define to 1 if you have the `readdir' function. */
-#undef HAVE_READDIR
-
-/* Define to 1 if you have the `realpath' function. */
-#undef HAVE_REALPATH
-
-/* Define to 1 if you have the `rindex' function. */
-#undef HAVE_RINDEX
-
-/* Define to 1 if you have the `rintf' function. */
-#undef HAVE_RINTF
-
-/* Define to 1 if you have the `round' function. */
-#undef HAVE_ROUND
-
-/* Define to 1 if you have the `roundf' function. */
-#undef HAVE_ROUNDF
-
-/* Define to 1 if you have the `sbrk' function. */
-#undef HAVE_SBRK
-
-/* Define to 1 if you have the `setjmp' function. */
-#undef HAVE_SETJMP
-
-/* Define to 1 if you have the <setjmp.h> header file. */
-#undef HAVE_SETJMP_H
-
-/* Define to 1 if you have the `setrlimit' function. */
-#undef HAVE_SETRLIMIT
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
-/* Define to 1 if you have the `siglongjmp' function. */
-#undef HAVE_SIGLONGJMP
-
-/* Define to 1 if you have the <signal.h> header file. */
-#undef HAVE_SIGNAL_H
-
-/* Define to 1 if you have the `sigsetjmp' function. */
-#undef HAVE_SIGSETJMP
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Does not have ext/hash_map> */
-#undef HAVE_STD_EXT_HASH_MAP
-
-/* Does not have hash_set in std namespace */
-#undef HAVE_STD_EXT_HASH_SET
-
-/* Set to 1 if the std::isinf function is found in <cmath> */
-#undef HAVE_STD_ISINF_IN_CMATH
-
-/* Set to 1 if the std::isnan function is found in <cmath> */
-#undef HAVE_STD_ISNAN_IN_CMATH
-
-/* Does not have std namespace iterator */
-#undef HAVE_STD_ITERATOR
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strcmp' function. */
-#undef HAVE_STRCMP
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the `strerror_r' function. */
-#undef HAVE_STRERROR_R
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strtof' function. */
-#undef HAVE_STRTOF
-
-/* Define to 1 if you have the `strtoll' function. */
-#undef HAVE_STRTOLL
-
-/* Define to 1 if you have the `strtoq' function. */
-#undef HAVE_STRTOQ
-
-/* Define to 1 if you have the `sysconf' function. */
-#undef HAVE_SYSCONF
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/dl.h> header file. */
-#undef HAVE_SYS_DL_H
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#undef HAVE_SYS_RESOURCE_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if the system has the type `uint64_t'. */
-#undef HAVE_UINT64_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the <utime.h> header file. */
-#undef HAVE_UTIME_H
-
-/* Define to 1 if the system has the type `u_int64_t'. */
-#undef HAVE_U_INT64_T
-
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
-/* Time at which LLVM was configured */
-#undef LLVM_CONFIGTIME
-
-/* Define if this is Unixish platform */
-#undef LLVM_ON_UNIX
-
-/* Define if this is Win32ish platform */
-#undef LLVM_ON_WIN32
-
-/* Define path to dot program if found or 'echo dot' otherwise */
-#undef LLVM_PATH_DOT
-
-/* Define to path to dotty program if found or 'echo dotty' otherwise */
-#undef LLVM_PATH_DOTTY
-
-/* Define path to Graphviz program if found or 'echo Graphviz' otherwise */
-#undef LLVM_PATH_GRAPHVIZ
-
-/* Define path to gv program if found or 'echo gv' otherwise */
-#undef LLVM_PATH_GV
-
-/* Define if the OS needs help to load dependent libraries for dlopen(). */
-#undef LTDL_DLOPEN_DEPLIBS
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LTDL_OBJDIR
-
-/* Define to the name of the environment variable that determines the dynamic
-   library search path. */
-#undef LTDL_SHLIBPATH_VAR
-
-/* Define to the extension used for shared libraries, say, ".so". */
-#undef LTDL_SHLIB_EXT
-
-/* Define to the system default library search path. */
-#undef LTDL_SYSSEARCHPATH
-
-/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
-   its not necessary */
-#undef NEED_DEV_ZERO_FOR_MMAP
-
-/* Define if dlsym() requires a leading underscore in symbol names. */
-#undef NEED_USCORE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at runtime.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-#undef STAT_MACROS_BROKEN
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-#undef TM_IN_SYS_TIME
-
-/* Define if use udis86 library */
-#undef USE_UDIS86
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
-   `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to a type to use for `error_t' if it is not otherwise available. */
-#undef error_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/support/include/llvm/Support/AIXDataTypesFix.h b/support/include/llvm/Support/AIXDataTypesFix.h
deleted file mode 100644
index 256e45f..0000000
--- a/support/include/llvm/Support/AIXDataTypesFix.h
+++ /dev/null
@@ -1,25 +0,0 @@
-//===-- llvm/Support/AIXDataTypesFix.h - Fix datatype defs ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file overrides default system-defined types and limits which cannot be
-// done in DataTypes.h.in because it is processed by autoheader first, which
-// comments out any #undef statement
-//
-//===----------------------------------------------------------------------===//
-
-// No include guards desired!
-
-#ifndef SUPPORT_DATATYPES_H
-#error "AIXDataTypesFix.h must only be included via DataTypes.h!"
-#endif
-
-// GCC is strict about defining large constants: they must have LL modifier.
-// These will be defined properly at the end of DataTypes.h
-#undef INT64_MAX
-#undef INT64_MIN
diff --git a/support/include/llvm/Support/Allocator.h b/support/include/llvm/Support/Allocator.h
deleted file mode 100644
index 527d4c6..0000000
--- a/support/include/llvm/Support/Allocator.h
+++ /dev/null
@@ -1,48 +0,0 @@
-//===--- Allocator.h - Simple memory allocation abstraction -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the MallocAllocator and BumpPtrAllocator interfaces.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_ALLOCATOR_H
-#define LLVM_SUPPORT_ALLOCATOR_H
-
-#include <cstdlib>
-
-namespace llvm {
-    
-class MallocAllocator {
-public:
-  MallocAllocator() {}
-  ~MallocAllocator() {}
-  
-  void *Allocate(unsigned Size, unsigned Alignment) { return malloc(Size); }
-  void Deallocate(void *Ptr) { free(Ptr); }
-  void PrintStats() const {}
-};
-
-/// BumpPtrAllocator - This allocator is useful for containers that need very
-/// simple memory allocation strategies.  In particular, this just keeps
-/// allocating memory, and never deletes it until the entire block is dead. This
-/// makes allocation speedy, but must only be used when the trade-off is ok.
-class BumpPtrAllocator {
-  void *TheMemory;
-public:
-  BumpPtrAllocator();
-  ~BumpPtrAllocator();
-  
-  void *Allocate(unsigned Size, unsigned Alignment);
-  void Deallocate(void *Ptr) {}
-  void PrintStats() const;
-};
-
-}  // end namespace clang
-
-#endif
diff --git a/support/include/llvm/Support/Annotation.h b/support/include/llvm/Support/Annotation.h
deleted file mode 100644
index f9d9f60..0000000
--- a/support/include/llvm/Support/Annotation.h
+++ /dev/null
@@ -1,216 +0,0 @@
-//===-- llvm/Support/Annotation.h - Annotation classes ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations for two classes: Annotation & Annotable.
-// Using these two simple classes, anything that derives from Annotable can have
-// Annotation subclasses attached to them, ready for easy retrieval.
-//
-// Annotations are designed to be easily attachable to various classes.
-//
-// The AnnotationManager class is essential for using these classes.  It is
-// responsible for turning Annotation name strings into tokens [unique id #'s]
-// that may be used to search for and create annotations.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_ANNOTATION_H
-#define LLVM_SUPPORT_ANNOTATION_H
-
-#include <string>
-#include <cassert>
-
-namespace llvm {
-
-class AnnotationID;
-class Annotation;
-class Annotable;
-struct AnnotationManager;
-
-//===----------------------------------------------------------------------===//
-//
-// AnnotationID - This class is a thin wrapper around an unsigned integer that
-// is used to hopefully prevent errors using AnnotationID's.  They may be copied
-// freely around and passed byvalue with little or no overhead.
-//
-class AnnotationID {
-  friend struct AnnotationManager;
-  unsigned ID;
-
-  AnnotationID();                             // Default ctor is disabled
-  inline AnnotationID(unsigned i) : ID(i) {}  // Only creatable from AnnMgr
-public:
-  inline AnnotationID(const AnnotationID &A) : ID(A.ID) {}
-
-  inline bool operator==(const AnnotationID &A) const {
-    return A.ID == ID;
-  }
-  inline bool operator<(const AnnotationID &A) const {
-    return ID < A.ID;
-  }
-};
-
-
-//===----------------------------------------------------------------------===//
-//
-// Annotation Class - This class serves as a base class for any specific
-// annotations that you might need.  Simply subclass this to add extra
-// information to the annotations.
-//
-class Annotation {
-  friend class Annotable;  // Annotable manipulates Next list
-  AnnotationID ID;         // ID number, as obtained from AnnotationManager
-  Annotation *Next;        // The next annotation in the linked list
-public:
-  inline Annotation(AnnotationID id) : ID(id), Next(0) {}
-  virtual ~Annotation();  // Designed to be subclassed
-
-  // getID - Return the unique ID# of this annotation
-  inline AnnotationID getID() const { return ID; }
-
-  // getNext - Return the next annotation in the list...
-  inline Annotation *getNext() const { return Next; }
-};
-
-
-//===----------------------------------------------------------------------===//
-//
-// Annotable - This class is used as a base class for all objects that would
-// like to have annotation capability.
-//
-// Annotable objects keep their annotation list sorted as annotations are
-// inserted and deleted.  This is used to ensure that annotations with identical
-// ID#'s are stored sequentially.
-//
-class Annotable {
-  mutable Annotation *AnnotationList;
-
-  Annotable(const Annotable &);        // Do not implement
-  void operator=(const Annotable &);   // Do not implement
-public:
-  Annotable() : AnnotationList(0) {}
-  ~Annotable();
-
-  // getAnnotation - Search the list for annotations of the specified ID.  The
-  // pointer returned is either null (if no annotations of the specified ID
-  // exist), or it points to the first element of a potentially list of elements
-  // with identical ID #'s.
-  //
-  Annotation *getAnnotation(AnnotationID ID) const {
-    for (Annotation *A = AnnotationList; A; A = A->getNext())
-      if (A->getID() == ID) return A;
-    return 0;
-  }
-
-  // getOrCreateAnnotation - Search through the annotation list, if there is
-  // no annotation with the specified ID, then use the AnnotationManager to
-  // create one.
-  //
-  inline Annotation *getOrCreateAnnotation(AnnotationID ID) const;
-
-  // addAnnotation - Insert the annotation into the list in a sorted location.
-  //
-  void addAnnotation(Annotation *A) const {
-    assert(A->Next == 0 && "Annotation already in list?!?");
-
-    Annotation **AL = &AnnotationList;
-    while (*AL && (*AL)->ID < A->getID())  // Find where to insert annotation
-      AL = &((*AL)->Next);
-    A->Next = *AL;                         // Link the annotation in
-    *AL = A;
-  }
-
-  // unlinkAnnotation - Remove the first annotation of the specified ID... and
-  // then return the unlinked annotation.  The annotation object is not deleted.
-  //
-  inline Annotation *unlinkAnnotation(AnnotationID ID) const {
-    for (Annotation **A = &AnnotationList; *A; A = &((*A)->Next))
-      if ((*A)->getID() == ID) {
-        Annotation *Ret = *A;
-        *A = Ret->Next;
-        Ret->Next = 0;
-        return Ret;
-      }
-    return 0;
-  }
-
-  // deleteAnnotation - Delete the first annotation of the specified ID in the
-  // list.  Unlink unlinkAnnotation, this actually deletes the annotation object
-  //
-  bool deleteAnnotation(AnnotationID ID) const {
-    Annotation *A = unlinkAnnotation(ID);
-    delete A;
-    return A != 0;
-  }
-};
-
-
-//===----------------------------------------------------------------------===//
-//
-// AnnotationManager - This class is primarily responsible for maintaining a
-// one-to-one mapping between string Annotation names and Annotation ID numbers.
-//
-// Compared to the rest of the Annotation system, these mapping methods are
-// relatively slow, so they should be avoided by locally caching Annotation
-// ID #'s.  These methods are safe to call at any time, even by static ctors, so
-// they should be used by static ctors most of the time.
-//
-// This class also provides support for annotations that are created on demand
-// by the Annotable::getOrCreateAnnotation method.  To get this to work, simply
-// register an annotation handler
-//
-struct AnnotationManager {
-  typedef Annotation *(*Factory)(AnnotationID, const Annotable *, void*);
-
-  //===--------------------------------------------------------------------===//
-  // Basic ID <-> Name map functionality
-
-  static AnnotationID         getID(const std::string &Name);  // Name -> ID
-  static const std::string &getName(AnnotationID ID);          // ID -> Name
-
-  // getID - Name -> ID + registration of a factory function for demand driven
-  // annotation support.
-  static AnnotationID getID(const std::string &Name, Factory Fact,
-                            void *Data = 0);
-
-  //===--------------------------------------------------------------------===//
-  // Annotation creation on demand support...
-
-  // registerAnnotationFactory - This method is used to register a callback
-  // function used to create an annotation on demand if it is needed by the
-  // Annotable::getOrCreateAnnotation method.
-  //
-  static void registerAnnotationFactory(AnnotationID ID, Factory Func,
-                                        void *ExtraData = 0);
-
-  // createAnnotation - Create an annotation of the specified ID for the
-  // specified object, using a register annotation creation function.
-  //
-  static Annotation *createAnnotation(AnnotationID ID, const Annotable *Obj);
-};
-
-
-
-// getOrCreateAnnotation - Search through the annotation list, if there is
-// no annotation with the specified ID, then use the AnnotationManager to
-// create one.
-//
-inline Annotation *Annotable::getOrCreateAnnotation(AnnotationID ID) const {
-  Annotation *A = getAnnotation(ID);   // Fast path, check for preexisting ann
-  if (A) return A;
-
-  // No annotation found, ask the annotation manager to create an annotation...
-  A = AnnotationManager::createAnnotation(ID, this);
-  assert(A && "AnnotationManager could not create annotation!");
-  addAnnotation(A);
-  return A;
-}
-
-} // End namespace llvm
-
-#endif
diff --git a/support/include/llvm/Support/CFG.h b/support/include/llvm/Support/CFG.h
deleted file mode 100644
index 4efefa7..0000000
--- a/support/include/llvm/Support/CFG.h
+++ /dev/null
@@ -1,266 +0,0 @@
-//===-- llvm/Support/CFG.h - Process LLVM structures as graphs --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines specializations of GraphTraits that allow Function and
-// BasicBlock graphs to be treated as proper graphs for generic algorithms.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_CFG_H
-#define LLVM_SUPPORT_CFG_H
-
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/Function.h"
-#include "llvm/InstrTypes.h"
-#include "llvm/ADT/iterator"
-
-namespace llvm {
-
-//===--------------------------------------------------------------------===//
-// BasicBlock pred_iterator definition
-//===--------------------------------------------------------------------===//
-
-template <class _Ptr,  class _USE_iterator> // Predecessor Iterator
-class PredIterator : public forward_iterator<_Ptr, ptrdiff_t> {
-  typedef forward_iterator<_Ptr, ptrdiff_t> super;
-  _Ptr *BB;
-  _USE_iterator It;
-public:
-  typedef PredIterator<_Ptr,_USE_iterator> _Self;
-  typedef typename super::pointer pointer;
-
-  inline void advancePastNonTerminators() {
-    // Loop to ignore non terminator uses (for example PHI nodes)...
-    while (It != BB->use_end() && !isa<TerminatorInst>(*It))
-      ++It;
-  }
-
-  inline PredIterator(_Ptr *bb) : BB(bb), It(bb->use_begin()) {
-    advancePastNonTerminators();
-  }
-  inline PredIterator(_Ptr *bb, bool) : BB(bb), It(bb->use_end()) {}
-
-  inline bool operator==(const _Self& x) const { return It == x.It; }
-  inline bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  inline pointer operator*() const {
-    assert(It != BB->use_end() && "pred_iterator out of range!");
-    return cast<TerminatorInst>(*It)->getParent();
-  }
-  inline pointer *operator->() const { return &(operator*()); }
-
-  inline _Self& operator++() {   // Preincrement
-    assert(It != BB->use_end() && "pred_iterator out of range!");
-    ++It; advancePastNonTerminators();
-    return *this;
-  }
-
-  inline _Self operator++(int) { // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-};
-
-typedef PredIterator<BasicBlock, Value::use_iterator> pred_iterator;
-typedef PredIterator<const BasicBlock,
-                     Value::use_const_iterator> pred_const_iterator;
-
-inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); }
-inline pred_const_iterator pred_begin(const BasicBlock *BB) {
-  return pred_const_iterator(BB);
-}
-inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);}
-inline pred_const_iterator pred_end(const BasicBlock *BB) {
-  return pred_const_iterator(BB, true);
-}
-
-
-
-//===--------------------------------------------------------------------===//
-// BasicBlock succ_iterator definition
-//===--------------------------------------------------------------------===//
-
-template <class Term_, class BB_>           // Successor Iterator
-class SuccIterator : public bidirectional_iterator<BB_, ptrdiff_t> {
-  const Term_ Term;
-  unsigned idx;
-  typedef bidirectional_iterator<BB_, ptrdiff_t> super;
-public:
-  typedef SuccIterator<Term_, BB_> _Self;
-  typedef typename super::pointer pointer;
-  // TODO: This can be random access iterator, need operator+ and stuff tho
-
-  inline SuccIterator(Term_ T) : Term(T), idx(0) {         // begin iterator
-    assert(T && "getTerminator returned null!");
-  }
-  inline SuccIterator(Term_ T, bool)                       // end iterator
-    : Term(T), idx(Term->getNumSuccessors()) {
-    assert(T && "getTerminator returned null!");
-  }
-
-  inline const _Self &operator=(const _Self &I) {
-    assert(Term == I.Term &&"Cannot assign iterators to two different blocks!");
-    idx = I.idx;
-    return *this;
-  }
-
-  /// getSuccessorIndex - This is used to interface between code that wants to
-  /// operate on terminator instructions directly.
-  unsigned getSuccessorIndex() const { return idx; }
-
-  inline bool operator==(const _Self& x) const { return idx == x.idx; }
-  inline bool operator!=(const _Self& x) const { return !operator==(x); }
-
-  inline pointer operator*() const { return Term->getSuccessor(idx); }
-  inline pointer operator->() const { return operator*(); }
-
-  inline _Self& operator++() { ++idx; return *this; } // Preincrement
-  inline _Self operator++(int) { // Postincrement
-    _Self tmp = *this; ++*this; return tmp;
-  }
-
-  inline _Self& operator--() { --idx; return *this; }  // Predecrement
-  inline _Self operator--(int) { // Postdecrement
-    _Self tmp = *this; --*this; return tmp;
-  }
-};
-
-typedef SuccIterator<TerminatorInst*, BasicBlock> succ_iterator;
-typedef SuccIterator<const TerminatorInst*,
-                     const BasicBlock> succ_const_iterator;
-
-inline succ_iterator succ_begin(BasicBlock *BB) {
-  return succ_iterator(BB->getTerminator());
-}
-inline succ_const_iterator succ_begin(const BasicBlock *BB) {
-  return succ_const_iterator(BB->getTerminator());
-}
-inline succ_iterator succ_end(BasicBlock *BB) {
-  return succ_iterator(BB->getTerminator(), true);
-}
-inline succ_const_iterator succ_end(const BasicBlock *BB) {
-  return succ_const_iterator(BB->getTerminator(), true);
-}
-
-
-
-//===--------------------------------------------------------------------===//
-// GraphTraits specializations for basic block graphs (CFGs)
-//===--------------------------------------------------------------------===//
-
-// Provide specializations of GraphTraits to be able to treat a function as a
-// graph of basic blocks...
-
-template <> struct GraphTraits<BasicBlock*> {
-  typedef BasicBlock NodeType;
-  typedef succ_iterator ChildIteratorType;
-
-  static NodeType *getEntryNode(BasicBlock *BB) { return BB; }
-  static inline ChildIteratorType child_begin(NodeType *N) {
-    return succ_begin(N);
-  }
-  static inline ChildIteratorType child_end(NodeType *N) {
-    return succ_end(N);
-  }
-};
-
-template <> struct GraphTraits<const BasicBlock*> {
-  typedef const BasicBlock NodeType;
-  typedef succ_const_iterator ChildIteratorType;
-
-  static NodeType *getEntryNode(const BasicBlock *BB) { return BB; }
-
-  static inline ChildIteratorType child_begin(NodeType *N) {
-    return succ_begin(N);
-  }
-  static inline ChildIteratorType child_end(NodeType *N) {
-    return succ_end(N);
-  }
-};
-
-// Provide specializations of GraphTraits to be able to treat a function as a
-// graph of basic blocks... and to walk it in inverse order.  Inverse order for
-// a function is considered to be when traversing the predecessor edges of a BB
-// instead of the successor edges.
-//
-template <> struct GraphTraits<Inverse<BasicBlock*> > {
-  typedef BasicBlock NodeType;
-  typedef pred_iterator ChildIteratorType;
-  static NodeType *getEntryNode(Inverse<BasicBlock *> G) { return G.Graph; }
-  static inline ChildIteratorType child_begin(NodeType *N) {
-    return pred_begin(N);
-  }
-  static inline ChildIteratorType child_end(NodeType *N) {
-    return pred_end(N);
-  }
-};
-
-template <> struct GraphTraits<Inverse<const BasicBlock*> > {
-  typedef const BasicBlock NodeType;
-  typedef pred_const_iterator ChildIteratorType;
-  static NodeType *getEntryNode(Inverse<const BasicBlock*> G) {
-    return G.Graph;
-  }
-  static inline ChildIteratorType child_begin(NodeType *N) {
-    return pred_begin(N);
-  }
-  static inline ChildIteratorType child_end(NodeType *N) {
-    return pred_end(N);
-  }
-};
-
-
-
-//===--------------------------------------------------------------------===//
-// GraphTraits specializations for function basic block graphs (CFGs)
-//===--------------------------------------------------------------------===//
-
-// Provide specializations of GraphTraits to be able to treat a function as a
-// graph of basic blocks... these are the same as the basic block iterators,
-// except that the root node is implicitly the first node of the function.
-//
-template <> struct GraphTraits<Function*> : public GraphTraits<BasicBlock*> {
-  static NodeType *getEntryNode(Function *F) { return &F->getEntryBlock(); }
-
-  // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
-  typedef Function::iterator nodes_iterator;
-  static nodes_iterator nodes_begin(Function *F) { return F->begin(); }
-  static nodes_iterator nodes_end  (Function *F) { return F->end(); }
-};
-template <> struct GraphTraits<const Function*> :
-  public GraphTraits<const BasicBlock*> {
-  static NodeType *getEntryNode(const Function *F) {return &F->getEntryBlock();}
-
-  // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
-  typedef Function::const_iterator nodes_iterator;
-  static nodes_iterator nodes_begin(const Function *F) { return F->begin(); }
-  static nodes_iterator nodes_end  (const Function *F) { return F->end(); }
-};
-
-
-// Provide specializations of GraphTraits to be able to treat a function as a
-// graph of basic blocks... and to walk it in inverse order.  Inverse order for
-// a function is considered to be when traversing the predecessor edges of a BB
-// instead of the successor edges.
-//
-template <> struct GraphTraits<Inverse<Function*> > :
-  public GraphTraits<Inverse<BasicBlock*> > {
-  static NodeType *getEntryNode(Inverse<Function*> G) {
-    return &G.Graph->getEntryBlock();
-  }
-};
-template <> struct GraphTraits<Inverse<const Function*> > :
-  public GraphTraits<Inverse<const BasicBlock*> > {
-  static NodeType *getEntryNode(Inverse<const Function *> G) {
-    return &G.Graph->getEntryBlock();
-  }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/CallSite.h b/support/include/llvm/Support/CallSite.h
deleted file mode 100644
index e14caad..0000000
--- a/support/include/llvm/Support/CallSite.h
+++ /dev/null
@@ -1,122 +0,0 @@
-//===-- llvm/Support/CallSite.h - Abstract Call & Invoke instrs -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the CallSite class, which is a handy wrapper for code that
-// wants to treat Call and Invoke instructions in a generic way.
-//
-// NOTE: This class is supposed to have "value semantics". So it should be
-// passed by value, not by reference; it should not be "new"ed or "delete"d. It
-// is efficiently copyable, assignable and constructable, with cost equivalent
-// to copying a pointer (notice that it has only a single data member).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_CALLSITE_H
-#define LLVM_SUPPORT_CALLSITE_H
-
-#include "llvm/Instruction.h"
-#include "llvm/BasicBlock.h"
-
-namespace llvm {
-
-class CallInst;
-class InvokeInst;
-
-class CallSite {
-  Instruction *I;
-public:
-  CallSite() : I(0) {}
-  CallSite(CallInst *CI) : I(reinterpret_cast<Instruction*>(CI)) {}
-  CallSite(InvokeInst *II) : I(reinterpret_cast<Instruction*>(II)) {}
-  CallSite(const CallSite &CS) : I(CS.I) {}
-  CallSite &operator=(const CallSite &CS) { I = CS.I; return *this; }
-
-  /// CallSite::get - This static method is sort of like a constructor.  It will
-  /// create an appropriate call site for a Call or Invoke instruction, but it
-  /// can also create a null initialized CallSite object for something which is
-  /// NOT a call site.
-  ///
-  static CallSite get(Value *V) {
-    if (Instruction *I = dyn_cast<Instruction>(V)) {
-      if (I->getOpcode() == Instruction::Call)
-        return CallSite(reinterpret_cast<CallInst*>(I));
-      else if (I->getOpcode() == Instruction::Invoke)
-        return CallSite(reinterpret_cast<InvokeInst*>(I));
-    }
-    return CallSite();
-  }
-
-  /// getCallingConv/setCallingConv - get or set the calling convention of the
-  /// call.
-  unsigned getCallingConv() const;
-  void setCallingConv(unsigned CC);
-
-  /// getType - Return the type of the instruction that generated this call site
-  ///
-  const Type *getType() const { return I->getType(); }
-
-  /// getInstruction - Return the instruction this call site corresponds to
-  ///
-  Instruction *getInstruction() const { return I; }
-
-  /// getCaller - Return the caller function for this call site
-  ///
-  Function *getCaller() const { return I->getParent()->getParent(); }
-
-  /// getCalledValue - Return the pointer to function that is being called...
-  ///
-  Value *getCalledValue() const {
-    assert(I && "Not a call or invoke instruction!");
-    return I->getOperand(0);
-  }
-
-  /// getCalledFunction - Return the function being called if this is a direct
-  /// call, otherwise return null (if it's an indirect call).
-  ///
-  Function *getCalledFunction() const {
-    return dyn_cast<Function>(getCalledValue());
-  }
-
-  /// setCalledFunction - Set the callee to the specified value...
-  ///
-  void setCalledFunction(Value *V) {
-    assert(I && "Not a call or invoke instruction!");
-    I->setOperand(0, V);
-  }
-
-  Value *getArgument(unsigned ArgNo) const {
-    assert(arg_begin() + ArgNo < arg_end() && "Argument # out of range!");
-    return *(arg_begin()+ArgNo);
-  }
-
-  /// arg_iterator - The type of iterator to use when looping over actual
-  /// arguments at this call site...
-  typedef User::op_iterator arg_iterator;
-
-  /// arg_begin/arg_end - Return iterators corresponding to the actual argument
-  /// list for a call site.
-  ///
-  arg_iterator arg_begin() const {
-    assert(I && "Not a call or invoke instruction!");
-    if (I->getOpcode() == Instruction::Call)
-      return I->op_begin()+1; // Skip Function
-    else
-      return I->op_begin()+3; // Skip Function, BB, BB
-  }
-  arg_iterator arg_end() const { return I->op_end(); }
-  unsigned arg_size() const { return unsigned(arg_end() - arg_begin()); }
-
-  bool operator<(const CallSite &CS) const {
-    return getInstruction() < CS.getInstruction();
-  }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/Casting.h b/support/include/llvm/Support/Casting.h
deleted file mode 100644
index dc31839..0000000
--- a/support/include/llvm/Support/Casting.h
+++ /dev/null
@@ -1,303 +0,0 @@
-//===-- llvm/Support/Casting.h - Allow flexible, checked, casts -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the isa<X>(), cast<X>(), dyn_cast<X>(), cast_or_null<X>(),
-// and dyn_cast_or_null<X>() templates.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_CASTING_H
-#define LLVM_SUPPORT_CASTING_H
-
-#include <cassert>
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-//                          isa<x> Support Templates
-//===----------------------------------------------------------------------===//
-
-template<typename FromCl> struct isa_impl_cl;
-
-// Define a template that can be specialized by smart pointers to reflect the
-// fact that they are automatically dereferenced, and are not involved with the
-// template selection process...  the default implementation is a noop.
-//
-template<typename From> struct simplify_type {
-  typedef       From SimpleType;        // The real type this represents...
-
-  // An accessor to get the real value...
-  static SimpleType &getSimplifiedValue(From &Val) { return Val; }
-};
-
-template<typename From> struct simplify_type<const From> {
-  typedef const From SimpleType;
-  static SimpleType &getSimplifiedValue(const From &Val) {
-    return simplify_type<From>::getSimplifiedValue(static_cast<From&>(Val));
-  }
-};
-
-
-// isa<X> - Return true if the parameter to the template is an instance of the
-// template type argument.  Used like this:
-//
-//  if (isa<Type*>(myVal)) { ... }
-//
-template <typename To, typename From>
-inline bool isa_impl(const From &Val) {
-  return To::classof(&Val);
-}
-
-template<typename To, typename From, typename SimpleType>
-struct isa_impl_wrap {
-  // When From != SimplifiedType, we can simplify the type some more by using
-  // the simplify_type template.
-  static bool doit(const From &Val) {
-    return isa_impl_cl<const SimpleType>::template
-                    isa<To>(simplify_type<const From>::getSimplifiedValue(Val));
-  }
-};
-
-template<typename To, typename FromTy>
-struct isa_impl_wrap<To, const FromTy, const FromTy> {
-  // When From == SimpleType, we are as simple as we are going to get.
-  static bool doit(const FromTy &Val) {
-    return isa_impl<To,FromTy>(Val);
-  }
-};
-
-// isa_impl_cl - Use class partial specialization to transform types to a single
-// canonical form for isa_impl.
-//
-template<typename FromCl>
-struct isa_impl_cl {
-  template<class ToCl>
-  static bool isa(const FromCl &Val) {
-    return isa_impl_wrap<ToCl,const FromCl,
-                   typename simplify_type<const FromCl>::SimpleType>::doit(Val);
-  }
-};
-
-// Specialization used to strip const qualifiers off of the FromCl type...
-template<typename FromCl>
-struct isa_impl_cl<const FromCl> {
-  template<class ToCl>
-  static bool isa(const FromCl &Val) {
-    return isa_impl_cl<FromCl>::template isa<ToCl>(Val);
-  }
-};
-
-// Define pointer traits in terms of base traits...
-template<class FromCl>
-struct isa_impl_cl<FromCl*> {
-  template<class ToCl>
-  static bool isa(FromCl *Val) {
-    return isa_impl_cl<FromCl>::template isa<ToCl>(*Val);
-  }
-};
-
-// Define reference traits in terms of base traits...
-template<class FromCl>
-struct isa_impl_cl<FromCl&> {
-  template<class ToCl>
-  static bool isa(FromCl &Val) {
-    return isa_impl_cl<FromCl>::template isa<ToCl>(&Val);
-  }
-};
-
-template <class X, class Y>
-inline bool isa(const Y &Val) {
-  return isa_impl_cl<Y>::template isa<X>(Val);
-}
-
-//===----------------------------------------------------------------------===//
-//                          cast<x> Support Templates
-//===----------------------------------------------------------------------===//
-
-template<class To, class From> struct cast_retty;
-
-
-// Calculate what type the 'cast' function should return, based on a requested
-// type of To and a source type of From.
-template<class To, class From> struct cast_retty_impl {
-  typedef To& ret_type;         // Normal case, return Ty&
-};
-template<class To, class From> struct cast_retty_impl<To, const From> {
-  typedef const To &ret_type;   // Normal case, return Ty&
-};
-
-template<class To, class From> struct cast_retty_impl<To, From*> {
-  typedef To* ret_type;         // Pointer arg case, return Ty*
-};
-
-template<class To, class From> struct cast_retty_impl<To, const From*> {
-  typedef const To* ret_type;   // Constant pointer arg case, return const Ty*
-};
-
-template<class To, class From> struct cast_retty_impl<To, const From*const> {
-  typedef const To* ret_type;   // Constant pointer arg case, return const Ty*
-};
-
-
-template<class To, class From, class SimpleFrom>
-struct cast_retty_wrap {
-  // When the simplified type and the from type are not the same, use the type
-  // simplifier to reduce the type, then reuse cast_retty_impl to get the
-  // resultant type.
-  typedef typename cast_retty<To, SimpleFrom>::ret_type ret_type;
-};
-
-template<class To, class FromTy>
-struct cast_retty_wrap<To, FromTy, FromTy> {
-  // When the simplified type is equal to the from type, use it directly.
-  typedef typename cast_retty_impl<To,FromTy>::ret_type ret_type;
-};
-
-template<class To, class From>
-struct cast_retty {
-  typedef typename cast_retty_wrap<To, From,
-                   typename simplify_type<From>::SimpleType>::ret_type ret_type;
-};
-
-// Ensure the non-simple values are converted using the simplify_type template
-// that may be specialized by smart pointers...
-//
-template<class To, class From, class SimpleFrom> struct cast_convert_val {
-  // This is not a simple type, use the template to simplify it...
-  static typename cast_retty<To, From>::ret_type doit(const From &Val) {
-    return cast_convert_val<To, SimpleFrom,
-      typename simplify_type<SimpleFrom>::SimpleType>::doit(
-                          simplify_type<From>::getSimplifiedValue(Val));
-  }
-};
-
-template<class To, class FromTy> struct cast_convert_val<To,FromTy,FromTy> {
-  // This _is_ a simple type, just cast it.
-  static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
-    return reinterpret_cast<typename cast_retty<To, FromTy>::ret_type>(
-                         const_cast<FromTy&>(Val));
-  }
-};
-
-
-
-// cast<X> - Return the argument parameter cast to the specified type.  This
-// casting operator asserts that the type is correct, so it does not return null
-// on failure.  But it will correctly return NULL when the input is NULL.
-// Used Like this:
-//
-//  cast<Instruction>(myVal)->getParent()
-//
-template <class X, class Y>
-inline typename cast_retty<X, Y>::ret_type cast(const Y &Val) {
-  assert(isa<X>(Val) && "cast<Ty>() argument of incompatible type!");
-  return cast_convert_val<X, Y,
-                          typename simplify_type<Y>::SimpleType>::doit(Val);
-}
-
-// cast_or_null<X> - Functionally identical to cast, except that a null value is
-// accepted.
-//
-template <class X, class Y>
-inline typename cast_retty<X, Y*>::ret_type cast_or_null(Y *Val) {
-  if (Val == 0) return 0;
-  assert(isa<X>(Val) && "cast_or_null<Ty>() argument of incompatible type!");
-  return cast<X>(Val);
-}
-
-
-// dyn_cast<X> - Return the argument parameter cast to the specified type.  This
-// casting operator returns null if the argument is of the wrong type, so it can
-// be used to test for a type as well as cast if successful.  This should be
-// used in the context of an if statement like this:
-//
-//  if (const Instruction *I = dyn_cast<Instruction>(myVal)) { ... }
-//
-
-template <class X, class Y>
-inline typename cast_retty<X, Y>::ret_type dyn_cast(Y Val) {
-  return isa<X>(Val) ? cast<X, Y>(Val) : 0;
-}
-
-// dyn_cast_or_null<X> - Functionally identical to dyn_cast, except that a null
-// value is accepted.
-//
-template <class X, class Y>
-inline typename cast_retty<X, Y>::ret_type dyn_cast_or_null(Y Val) {
-  return (Val && isa<X>(Val)) ? cast<X, Y>(Val) : 0;
-}
-
-
-#ifdef DEBUG_CAST_OPERATORS
-#include "llvm/Support/Debug.h"
-
-struct bar {
-  bar() {}
-private:
-  bar(const bar &);
-};
-struct foo {
-  void ext() const;
-  /*  static bool classof(const bar *X) {
-    cerr << "Classof: " << X << "\n";
-    return true;
-    }*/
-};
-
-template <> inline bool isa_impl<foo,bar>(const bar &Val) {
-  cerr << "Classof: " << &Val << "\n";
-  return true;
-}
-
-
-bar *fub();
-void test(bar &B1, const bar *B2) {
-  // test various configurations of const
-  const bar &B3 = B1;
-  const bar *const B4 = B2;
-
-  // test isa
-  if (!isa<foo>(B1)) return;
-  if (!isa<foo>(B2)) return;
-  if (!isa<foo>(B3)) return;
-  if (!isa<foo>(B4)) return;
-
-  // test cast
-  foo &F1 = cast<foo>(B1);
-  const foo *F3 = cast<foo>(B2);
-  const foo *F4 = cast<foo>(B2);
-  const foo &F8 = cast<foo>(B3);
-  const foo *F9 = cast<foo>(B4);
-  foo *F10 = cast<foo>(fub());
-
-  // test cast_or_null
-  const foo *F11 = cast_or_null<foo>(B2);
-  const foo *F12 = cast_or_null<foo>(B2);
-  const foo *F13 = cast_or_null<foo>(B4);
-  const foo *F14 = cast_or_null<foo>(fub());  // Shouldn't print.
-
-  // These lines are errors...
-  //foo *F20 = cast<foo>(B2);  // Yields const foo*
-  //foo &F21 = cast<foo>(B3);  // Yields const foo&
-  //foo *F22 = cast<foo>(B4);  // Yields const foo*
-  //foo &F23 = cast_or_null<foo>(B1);
-  //const foo &F24 = cast_or_null<foo>(B3);
-}
-
-bar *fub() { return 0; }
-void main() {
-  bar B;
-  test(B, &B);
-}
-
-#endif
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/CommandLine.h b/support/include/llvm/Support/CommandLine.h
deleted file mode 100644
index 23b7cf3..0000000
--- a/support/include/llvm/Support/CommandLine.h
+++ /dev/null
@@ -1,1332 +0,0 @@
-//===- llvm/Support/CommandLine.h - Command line handler --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class implements a command line argument processor that is useful when
-// creating a tool.  It provides a simple, minimalistic interface that is easily
-// extensible and supports nonlocal (library) command line options.
-//
-// Note that rather than trying to figure out what this code does, you should
-// read the library documentation located in docs/CommandLine.html or looks at
-// the many example usages in tools/*/*.cpp
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_COMMANDLINE_H
-#define LLVM_SUPPORT_COMMANDLINE_H
-
-#include "llvm/Support/type_traits.h"
-#include "llvm/Support/DataTypes.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/ADT/SmallVector.h"
-#include <string>
-#include <vector>
-#include <utility>
-#include <cstdarg>
-#include <cassert>
-
-namespace llvm {
-
-/// cl Namespace - This namespace contains all of the command line option
-/// processing machinery.  It is intentionally a short name to make qualified
-/// usage concise.
-namespace cl {
-
-//===----------------------------------------------------------------------===//
-// ParseCommandLineOptions - Command line option processing entry point.
-//
-void ParseCommandLineOptions(int &argc, char **argv,
-                             const char *Overview = 0);
-
-//===----------------------------------------------------------------------===//
-// ParseEnvironmentOptions - Environment variable option processing alternate
-//                           entry point.
-//
-void ParseEnvironmentOptions(const char *progName, const char *envvar,
-                             const char *Overview = 0);
-
-///===---------------------------------------------------------------------===//
-/// SetVersionPrinter - Override the default (LLVM specific) version printer
-///                     used to print out the version when --version is given
-///                     on the command line. This gives other systems using the
-///                     CommandLine utilities to print their own version string.
-void SetVersionPrinter(void (*func)());
-
-
-// MarkOptionsChanged - Internal helper function.
-void MarkOptionsChanged();
-
-//===----------------------------------------------------------------------===//
-// Flags permitted to be passed to command line arguments
-//
-
-enum NumOccurrences {          // Flags for the number of occurrences allowed
-  Optional        = 0x01,      // Zero or One occurrence
-  ZeroOrMore      = 0x02,      // Zero or more occurrences allowed
-  Required        = 0x03,      // One occurrence required
-  OneOrMore       = 0x04,      // One or more occurrences required
-
-  // ConsumeAfter - Indicates that this option is fed anything that follows the
-  // last positional argument required by the application (it is an error if
-  // there are zero positional arguments, and a ConsumeAfter option is used).
-  // Thus, for example, all arguments to LLI are processed until a filename is
-  // found.  Once a filename is found, all of the succeeding arguments are
-  // passed, unprocessed, to the ConsumeAfter option.
-  //
-  ConsumeAfter    = 0x05,
-
-  OccurrencesMask  = 0x07
-};
-
-enum ValueExpected {           // Is a value required for the option?
-  ValueOptional   = 0x08,      // The value can appear... or not
-  ValueRequired   = 0x10,      // The value is required to appear!
-  ValueDisallowed = 0x18,      // A value may not be specified (for flags)
-  ValueMask       = 0x18
-};
-
-enum OptionHidden {            // Control whether -help shows this option
-  NotHidden       = 0x20,      // Option included in --help & --help-hidden
-  Hidden          = 0x40,      // -help doesn't, but --help-hidden does
-  ReallyHidden    = 0x60,      // Neither --help nor --help-hidden show this arg
-  HiddenMask      = 0x60
-};
-
-// Formatting flags - This controls special features that the option might have
-// that cause it to be parsed differently...
-//
-// Prefix - This option allows arguments that are otherwise unrecognized to be
-// matched by options that are a prefix of the actual value.  This is useful for
-// cases like a linker, where options are typically of the form '-lfoo' or
-// '-L../../include' where -l or -L are the actual flags.  When prefix is
-// enabled, and used, the value for the flag comes from the suffix of the
-// argument.
-//
-// Grouping - With this option enabled, multiple letter options are allowed to
-// bunch together with only a single hyphen for the whole group.  This allows
-// emulation of the behavior that ls uses for example: ls -la === ls -l -a
-//
-
-enum FormattingFlags {
-  NormalFormatting = 0x000,     // Nothing special
-  Positional       = 0x080,     // Is a positional argument, no '-' required
-  Prefix           = 0x100,     // Can this option directly prefix its value?
-  Grouping         = 0x180,     // Can this option group with other options?
-  FormattingMask   = 0x180      // Union of the above flags.
-};
-
-enum MiscFlags {               // Miscellaneous flags to adjust argument
-  CommaSeparated     = 0x200,  // Should this cl::list split between commas?
-  PositionalEatsArgs = 0x400,  // Should this positional cl::list eat -args?
-  MiscMask           = 0x600   // Union of the above flags.
-};
-
-
-
-//===----------------------------------------------------------------------===//
-// Option Base class
-//
-class alias;
-class Option {
-  friend void cl::ParseCommandLineOptions(int &, char **, const char *);
-  friend class alias;
-
-  // handleOccurrences - Overriden by subclasses to handle the value passed into
-  // an argument.  Should return true if there was an error processing the
-  // argument and the program should exit.
-  //
-  virtual bool handleOccurrence(unsigned pos, const char *ArgName,
-                                const std::string &Arg) = 0;
-
-  virtual enum ValueExpected getValueExpectedFlagDefault() const {
-    return ValueOptional;
-  }
-  
-  // Out of line virtual function to provide home for the class.
-  virtual void anchor();
-  
-  int NumOccurrences;     // The number of times specified
-  int Flags;              // Flags for the argument
-  unsigned Position;      // Position of last occurrence of the option
-  Option *NextRegistered; // Singly linked list of registered options.
-public:
-  const char *ArgStr;     // The argument string itself (ex: "help", "o")
-  const char *HelpStr;    // The descriptive text message for --help
-  const char *ValueStr;   // String describing what the value of this option is
-
-  inline enum NumOccurrences getNumOccurrencesFlag() const {
-    return static_cast<enum NumOccurrences>(Flags & OccurrencesMask);
-  }
-  inline enum ValueExpected getValueExpectedFlag() const {
-    int VE = Flags & ValueMask;
-    return VE ? static_cast<enum ValueExpected>(VE)
-              : getValueExpectedFlagDefault();
-  }
-  inline enum OptionHidden getOptionHiddenFlag() const {
-    return static_cast<enum OptionHidden>(Flags & HiddenMask);
-  }
-  inline enum FormattingFlags getFormattingFlag() const {
-    return static_cast<enum FormattingFlags>(Flags & FormattingMask);
-  }
-  inline unsigned getMiscFlags() const {
-    return Flags & MiscMask;
-  }
-  inline unsigned getPosition() const { return Position; }
-
-  // hasArgStr - Return true if the argstr != ""
-  bool hasArgStr() const { return ArgStr[0] != 0; }
-
-  //-------------------------------------------------------------------------===
-  // Accessor functions set by OptionModifiers
-  //
-  void setArgStr(const char *S) { ArgStr = S; }
-  void setDescription(const char *S) { HelpStr = S; }
-  void setValueStr(const char *S) { ValueStr = S; }
-
-  void setFlag(unsigned Flag, unsigned FlagMask) {
-    Flags &= ~FlagMask;
-    Flags |= Flag;
-  }
-
-  void setNumOccurrencesFlag(enum NumOccurrences Val) {
-    setFlag(Val, OccurrencesMask);
-  }
-  void setValueExpectedFlag(enum ValueExpected Val) { setFlag(Val, ValueMask); }
-  void setHiddenFlag(enum OptionHidden Val) { setFlag(Val, HiddenMask); }
-  void setFormattingFlag(enum FormattingFlags V) { setFlag(V, FormattingMask); }
-  void setMiscFlag(enum MiscFlags M) { setFlag(M, M); }
-  void setPosition(unsigned pos) { Position = pos; }
-protected:
-  explicit Option(unsigned DefaultFlags)
-    : NumOccurrences(0), Flags(DefaultFlags | NormalFormatting), Position(0),
-      NextRegistered(0), ArgStr(""), HelpStr(""), ValueStr("") {
-    assert(getNumOccurrencesFlag() != 0 &&
-           getOptionHiddenFlag() != 0 && "Not all default flags specified!");
-  }
-
-public:
-  // addArgument - Register this argument with the commandline system.
-  //
-  void addArgument();
-  
-  Option *getNextRegisteredOption() const { return NextRegistered; }
-
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth() const = 0;
-
-  // printOptionInfo - Print out information about this option.  The
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(unsigned GlobalWidth) const = 0;
-
-  virtual void getExtraOptionNames(std::vector<const char*> &OptionNames) {}
-  
-  // addOccurrence - Wrapper around handleOccurrence that enforces Flags
-  //
-  bool addOccurrence(unsigned pos, const char *ArgName,
-                     const std::string &Value);
-
-  // Prints option name followed by message.  Always returns true.
-  bool error(std::string Message, const char *ArgName = 0);
-
-public:
-  inline int getNumOccurrences() const { return NumOccurrences; }
-  virtual ~Option() {}
-};
-
-
-//===----------------------------------------------------------------------===//
-// Command line option modifiers that can be used to modify the behavior of
-// command line option parsers...
-//
-
-// desc - Modifier to set the description shown in the --help output...
-struct desc {
-  const char *Desc;
-  desc(const char *Str) : Desc(Str) {}
-  void apply(Option &O) const { O.setDescription(Desc); }
-};
-
-// value_desc - Modifier to set the value description shown in the --help
-// output...
-struct value_desc {
-  const char *Desc;
-  value_desc(const char *Str) : Desc(Str) {}
-  void apply(Option &O) const { O.setValueStr(Desc); }
-};
-
-// init - Specify a default (initial) value for the command line argument, if
-// the default constructor for the argument type does not give you what you
-// want.  This is only valid on "opt" arguments, not on "list" arguments.
-//
-template<class Ty>
-struct initializer {
-  const Ty &Init;
-  initializer(const Ty &Val) : Init(Val) {}
-
-  template<class Opt>
-  void apply(Opt &O) const { O.setInitialValue(Init); }
-};
-
-template<class Ty>
-initializer<Ty> init(const Ty &Val) {
-  return initializer<Ty>(Val);
-}
-
-
-// location - Allow the user to specify which external variable they want to
-// store the results of the command line argument processing into, if they don't
-// want to store it in the option itself.
-//
-template<class Ty>
-struct LocationClass {
-  Ty &Loc;
-  LocationClass(Ty &L) : Loc(L) {}
-
-  template<class Opt>
-  void apply(Opt &O) const { O.setLocation(O, Loc); }
-};
-
-template<class Ty>
-LocationClass<Ty> location(Ty &L) { return LocationClass<Ty>(L); }
-
-
-//===----------------------------------------------------------------------===//
-// Enum valued command line option
-//
-#define clEnumVal(ENUMVAL, DESC) #ENUMVAL, int(ENUMVAL), DESC
-#define clEnumValN(ENUMVAL, FLAGNAME, DESC) FLAGNAME, int(ENUMVAL), DESC
-#define clEnumValEnd (reinterpret_cast<void*>(0))
-
-// values - For custom data types, allow specifying a group of values together
-// as the values that go into the mapping that the option handler uses.  Note
-// that the values list must always have a 0 at the end of the list to indicate
-// that the list has ended.
-//
-template<class DataType>
-class ValuesClass {
-  // Use a vector instead of a map, because the lists should be short,
-  // the overhead is less, and most importantly, it keeps them in the order
-  // inserted so we can print our option out nicely.
-  SmallVector<std::pair<const char *, std::pair<int, const char *> >,4> Values;
-  void processValues(va_list Vals);
-public:
-  ValuesClass(const char *EnumName, DataType Val, const char *Desc,
-              va_list ValueArgs) {
-    // Insert the first value, which is required.
-    Values.push_back(std::make_pair(EnumName, std::make_pair(Val, Desc)));
-
-    // Process the varargs portion of the values...
-    while (const char *EnumName = va_arg(ValueArgs, const char *)) {
-      DataType EnumVal = static_cast<DataType>(va_arg(ValueArgs, int));
-      const char *EnumDesc = va_arg(ValueArgs, const char *);
-      Values.push_back(std::make_pair(EnumName,      // Add value to value map
-                                      std::make_pair(EnumVal, EnumDesc)));
-    }
-  }
-
-  template<class Opt>
-  void apply(Opt &O) const {
-    for (unsigned i = 0, e = Values.size(); i != e; ++i)
-      O.getParser().addLiteralOption(Values[i].first, Values[i].second.first,
-                                     Values[i].second.second);
-  }
-};
-
-template<class DataType>
-ValuesClass<DataType> END_WITH_NULL values(const char *Arg, DataType Val, 
-                                           const char *Desc, ...) {
-    va_list ValueArgs;
-    va_start(ValueArgs, Desc);
-    ValuesClass<DataType> Vals(Arg, Val, Desc, ValueArgs);
-    va_end(ValueArgs);
-    return Vals;
-}
-
-
-//===----------------------------------------------------------------------===//
-// parser class - Parameterizable parser for different data types.  By default,
-// known data types (string, int, bool) have specialized parsers, that do what
-// you would expect.  The default parser, used for data types that are not
-// built-in, uses a mapping table to map specific options to values, which is
-// used, among other things, to handle enum types.
-
-//--------------------------------------------------
-// generic_parser_base - This class holds all the non-generic code that we do
-// not need replicated for every instance of the generic parser.  This also
-// allows us to put stuff into CommandLine.cpp
-//
-struct generic_parser_base {
-  virtual ~generic_parser_base() {}  // Base class should have virtual-dtor
-
-  // getNumOptions - Virtual function implemented by generic subclass to
-  // indicate how many entries are in Values.
-  //
-  virtual unsigned getNumOptions() const = 0;
-
-  // getOption - Return option name N.
-  virtual const char *getOption(unsigned N) const = 0;
-
-  // getDescription - Return description N
-  virtual const char *getDescription(unsigned N) const = 0;
-
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth(const Option &O) const;
-
-  // printOptionInfo - Print out information about this option.  The
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(const Option &O, unsigned GlobalWidth) const;
-
-  void initialize(Option &O) {
-    // All of the modifiers for the option have been processed by now, so the
-    // argstr field should be stable, copy it down now.
-    //
-    hasArgStr = O.hasArgStr();
-  }
-  
-  void getExtraOptionNames(std::vector<const char*> &OptionNames) {
-    // If there has been no argstr specified, that means that we need to add an
-    // argument for every possible option.  This ensures that our options are
-    // vectored to us.
-    if (!hasArgStr)
-      for (unsigned i = 0, e = getNumOptions(); i != e; ++i)
-        OptionNames.push_back(getOption(i));
-  }
-
-
-  enum ValueExpected getValueExpectedFlagDefault() const {
-    // If there is an ArgStr specified, then we are of the form:
-    //
-    //    -opt=O2   or   -opt O2  or  -optO2
-    //
-    // In which case, the value is required.  Otherwise if an arg str has not
-    // been specified, we are of the form:
-    //
-    //    -O2 or O2 or -la (where -l and -a are separate options)
-    //
-    // If this is the case, we cannot allow a value.
-    //
-    if (hasArgStr)
-      return ValueRequired;
-    else
-      return ValueDisallowed;
-  }
-
-  // findOption - Return the option number corresponding to the specified
-  // argument string.  If the option is not found, getNumOptions() is returned.
-  //
-  unsigned findOption(const char *Name);
-
-protected:
-  bool hasArgStr;
-};
-
-// Default parser implementation - This implementation depends on having a
-// mapping of recognized options to values of some sort.  In addition to this,
-// each entry in the mapping also tracks a help message that is printed with the
-// command line option for --help.  Because this is a simple mapping parser, the
-// data type can be any unsupported type.
-//
-template <class DataType>
-class parser : public generic_parser_base {
-protected:
-  SmallVector<std::pair<const char *,
-                        std::pair<DataType, const char *> >, 8> Values;
-public:
-  typedef DataType parser_data_type;
-
-  // Implement virtual functions needed by generic_parser_base
-  unsigned getNumOptions() const { return unsigned(Values.size()); }
-  const char *getOption(unsigned N) const { return Values[N].first; }
-  const char *getDescription(unsigned N) const {
-    return Values[N].second.second;
-  }
-
-  // parse - Return true on error.
-  bool parse(Option &O, const char *ArgName, const std::string &Arg,
-             DataType &V) {
-    std::string ArgVal;
-    if (hasArgStr)
-      ArgVal = Arg;
-    else
-      ArgVal = ArgName;
-
-    for (unsigned i = 0, e = Values.size(); i != e; ++i)
-      if (ArgVal == Values[i].first) {
-        V = Values[i].second.first;
-        return false;
-      }
-
-    return O.error(": Cannot find option named '" + ArgVal + "'!");
-  }
-
-  /// addLiteralOption - Add an entry to the mapping table.
-  ///
-  template <class DT>
-  void addLiteralOption(const char *Name, const DT &V, const char *HelpStr) {
-    assert(findOption(Name) == Values.size() && "Option already exists!");
-    Values.push_back(std::make_pair(Name,
-                             std::make_pair(static_cast<DataType>(V),HelpStr)));
-    MarkOptionsChanged();
-  }
-
-  /// removeLiteralOption - Remove the specified option.
-  ///
-  void removeLiteralOption(const char *Name) {
-    unsigned N = findOption(Name);
-    assert(N != Values.size() && "Option not found!");
-    Values.erase(Values.begin()+N);
-  }
-};
-
-//--------------------------------------------------
-// basic_parser - Super class of parsers to provide boilerplate code
-//
-struct basic_parser_impl {  // non-template implementation of basic_parser<t>
-  virtual ~basic_parser_impl() {}
-
-  enum ValueExpected getValueExpectedFlagDefault() const {
-    return ValueRequired;
-  }
-
-  void getExtraOptionNames(std::vector<const char*> &OptionNames) {}
-
-  void initialize(Option &O) {}
-
-  // Return the width of the option tag for printing...
-  unsigned getOptionWidth(const Option &O) const;
-
-  // printOptionInfo - Print out information about this option.  The
-  // to-be-maintained width is specified.
-  //
-  void printOptionInfo(const Option &O, unsigned GlobalWidth) const;
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "value"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-// basic_parser - The real basic parser is just a template wrapper that provides
-// a typedef for the provided data type.
-//
-template<class DataType>
-struct basic_parser : public basic_parser_impl {
-  typedef DataType parser_data_type;
-};
-
-//--------------------------------------------------
-// parser<bool>
-//
-template<>
-class parser<bool> : public basic_parser<bool> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *ArgName, const std::string &Arg, bool &Val);
-
-  enum ValueExpected getValueExpectedFlagDefault() const {
-    return ValueOptional;
-  }
-
-  // getValueName - Do not print =<value> at all.
-  virtual const char *getValueName() const { return 0; }
-  
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<bool>);
-
-//--------------------------------------------------
-// parser<boolOrDefault>
-enum boolOrDefault { BOU_UNSET, BOU_TRUE, BOU_FALSE };
-template<>
-class parser<boolOrDefault> : public basic_parser<boolOrDefault> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *ArgName, const std::string &Arg, 
-             boolOrDefault &Val);
-
-  enum ValueExpected getValueExpectedFlagDefault() const {
-    return ValueOptional;
-  }
-
-  // getValueName - Do not print =<value> at all.
-  virtual const char *getValueName() const { return 0; }
-  
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>);
-
-//--------------------------------------------------
-// parser<int>
-//
-template<>
-class parser<int> : public basic_parser<int> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *ArgName, const std::string &Arg, int &Val);
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "int"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<int>);
-
-
-//--------------------------------------------------
-// parser<unsigned>
-//
-template<>
-class parser<unsigned> : public basic_parser<unsigned> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *AN, const std::string &Arg, unsigned &Val);
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "uint"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
-
-//--------------------------------------------------
-// parser<double>
-//
-template<>
-class parser<double> : public basic_parser<double> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *AN, const std::string &Arg, double &Val);
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "number"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<double>);
-
-//--------------------------------------------------
-// parser<float>
-//
-template<>
-class parser<float> : public basic_parser<float> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *AN, const std::string &Arg, float &Val);
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "number"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<float>);
-
-//--------------------------------------------------
-// parser<std::string>
-//
-template<>
-class parser<std::string> : public basic_parser<std::string> {
-public:
-  // parse - Return true on error.
-  bool parse(Option &O, const char *AN, const std::string &Arg,
-             std::string &Value) {
-    Value = Arg;
-    return false;
-  }
-
-  // getValueName - Overload in subclass to provide a better default value.
-  virtual const char *getValueName() const { return "string"; }
-
-  // An out-of-line virtual method to provide a 'home' for this class.
-  virtual void anchor();
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<std::string>);
-
-//===----------------------------------------------------------------------===//
-// applicator class - This class is used because we must use partial
-// specialization to handle literal string arguments specially (const char* does
-// not correctly respond to the apply method).  Because the syntax to use this
-// is a pain, we have the 'apply' method below to handle the nastiness...
-//
-template<class Mod> struct applicator {
-  template<class Opt>
-  static void opt(const Mod &M, Opt &O) { M.apply(O); }
-};
-
-// Handle const char* as a special case...
-template<unsigned n> struct applicator<char[n]> {
-  template<class Opt>
-  static void opt(const char *Str, Opt &O) { O.setArgStr(Str); }
-};
-template<unsigned n> struct applicator<const char[n]> {
-  template<class Opt>
-  static void opt(const char *Str, Opt &O) { O.setArgStr(Str); }
-};
-template<> struct applicator<const char*> {
-  template<class Opt>
-  static void opt(const char *Str, Opt &O) { O.setArgStr(Str); }
-};
-
-template<> struct applicator<NumOccurrences> {
-  static void opt(NumOccurrences NO, Option &O) { O.setNumOccurrencesFlag(NO); }
-};
-template<> struct applicator<ValueExpected> {
-  static void opt(ValueExpected VE, Option &O) { O.setValueExpectedFlag(VE); }
-};
-template<> struct applicator<OptionHidden> {
-  static void opt(OptionHidden OH, Option &O) { O.setHiddenFlag(OH); }
-};
-template<> struct applicator<FormattingFlags> {
-  static void opt(FormattingFlags FF, Option &O) { O.setFormattingFlag(FF); }
-};
-template<> struct applicator<MiscFlags> {
-  static void opt(MiscFlags MF, Option &O) { O.setMiscFlag(MF); }
-};
-
-// apply method - Apply a modifier to an option in a type safe way.
-template<class Mod, class Opt>
-void apply(const Mod &M, Opt *O) {
-  applicator<Mod>::opt(M, *O);
-}
-
-
-//===----------------------------------------------------------------------===//
-// opt_storage class
-
-// Default storage class definition: external storage.  This implementation
-// assumes the user will specify a variable to store the data into with the
-// cl::location(x) modifier.
-//
-template<class DataType, bool ExternalStorage, bool isClass>
-class opt_storage {
-  DataType *Location;   // Where to store the object...
-
-  void check() {
-    assert(Location != 0 && "cl::location(...) not specified for a command "
-           "line option with external storage, "
-           "or cl::init specified before cl::location()!!");
-  }
-public:
-  opt_storage() : Location(0) {}
-
-  bool setLocation(Option &O, DataType &L) {
-    if (Location)
-      return O.error(": cl::location(x) specified more than once!");
-    Location = &L;
-    return false;
-  }
-
-  template<class T>
-  void setValue(const T &V) {
-    check();
-    *Location = V;
-  }
-
-  DataType &getValue() { check(); return *Location; }
-  const DataType &getValue() const { check(); return *Location; }
-};
-
-
-// Define how to hold a class type object, such as a string.  Since we can
-// inherit from a class, we do so.  This makes us exactly compatible with the
-// object in all cases that it is used.
-//
-template<class DataType>
-class opt_storage<DataType,false,true> : public DataType {
-public:
-  template<class T>
-  void setValue(const T &V) { DataType::operator=(V); }
-
-  DataType &getValue() { return *this; }
-  const DataType &getValue() const { return *this; }
-};
-
-// Define a partial specialization to handle things we cannot inherit from.  In
-// this case, we store an instance through containment, and overload operators
-// to get at the value.
-//
-template<class DataType>
-class opt_storage<DataType, false, false> {
-public:
-  DataType Value;
-
-  // Make sure we initialize the value with the default constructor for the
-  // type.
-  opt_storage() : Value(DataType()) {}
-
-  template<class T>
-  void setValue(const T &V) { Value = V; }
-  DataType &getValue() { return Value; }
-  DataType getValue() const { return Value; }
-
-  // If the datatype is a pointer, support -> on it.
-  DataType operator->() const { return Value; }
-};
-
-
-//===----------------------------------------------------------------------===//
-// opt - A scalar command line option.
-//
-template <class DataType, bool ExternalStorage = false,
-          class ParserClass = parser<DataType> >
-class opt : public Option,
-            public opt_storage<DataType, ExternalStorage,
-                               is_class<DataType>::value> {
-  ParserClass Parser;
-
-  virtual bool handleOccurrence(unsigned pos, const char *ArgName,
-                                const std::string &Arg) {
-    typename ParserClass::parser_data_type Val =
-       typename ParserClass::parser_data_type();
-    if (Parser.parse(*this, ArgName, Arg, Val))
-      return true;                            // Parse error!
-    setValue(Val);
-    setPosition(pos);
-    return false;
-  }
-
-  virtual enum ValueExpected getValueExpectedFlagDefault() const {
-    return Parser.getValueExpectedFlagDefault();
-  }
-  virtual void getExtraOptionNames(std::vector<const char*> &OptionNames) {
-    return Parser.getExtraOptionNames(OptionNames);
-  }
-
-  // Forward printing stuff to the parser...
-  virtual unsigned getOptionWidth() const {return Parser.getOptionWidth(*this);}
-  virtual void printOptionInfo(unsigned GlobalWidth) const {
-    Parser.printOptionInfo(*this, GlobalWidth);
-  }
-
-  void done() {
-    addArgument();
-    Parser.initialize(*this);
-  }
-public:
-  // setInitialValue - Used by the cl::init modifier...
-  void setInitialValue(const DataType &V) { this->setValue(V); }
-
-  ParserClass &getParser() { return Parser; }
-
-  operator DataType() const { return this->getValue(); }
-
-  template<class T>
-  DataType &operator=(const T &Val) {
-    this->setValue(Val);
-    return this->getValue();
-  }
-
-  // One option...
-  template<class M0t>
-  opt(const M0t &M0) : Option(Optional | NotHidden) {
-    apply(M0, this);
-    done();
-  }
-
-  // Two options...
-  template<class M0t, class M1t>
-  opt(const M0t &M0, const M1t &M1) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this);
-    done();
-  }
-
-  // Three options...
-  template<class M0t, class M1t, class M2t>
-  opt(const M0t &M0, const M1t &M1,
-      const M2t &M2) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this);
-    done();
-  }
-  // Four options...
-  template<class M0t, class M1t, class M2t, class M3t>
-  opt(const M0t &M0, const M1t &M1, const M2t &M2,
-      const M3t &M3) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    done();
-  }
-  // Five options...
-  template<class M0t, class M1t, class M2t, class M3t, class M4t>
-  opt(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-      const M4t &M4) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this);
-    done();
-  }
-  // Six options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t>
-  opt(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-      const M4t &M4, const M5t &M5) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this);
-    done();
-  }
-  // Seven options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t>
-  opt(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-      const M4t &M4, const M5t &M5,
-      const M6t &M6) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this);
-    done();
-  }
-  // Eight options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t, class M7t>
-  opt(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-      const M4t &M4, const M5t &M5, const M6t &M6,
-      const M7t &M7) : Option(Optional | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this); apply(M7, this);
-    done();
-  }
-};
-
-EXTERN_TEMPLATE_INSTANTIATION(class opt<unsigned>);
-EXTERN_TEMPLATE_INSTANTIATION(class opt<int>);
-EXTERN_TEMPLATE_INSTANTIATION(class opt<std::string>);
-EXTERN_TEMPLATE_INSTANTIATION(class opt<bool>);
-
-//===----------------------------------------------------------------------===//
-// list_storage class
-
-// Default storage class definition: external storage.  This implementation
-// assumes the user will specify a variable to store the data into with the
-// cl::location(x) modifier.
-//
-template<class DataType, class StorageClass>
-class list_storage {
-  StorageClass *Location;   // Where to store the object...
-
-public:
-  list_storage() : Location(0) {}
-
-  bool setLocation(Option &O, StorageClass &L) {
-    if (Location)
-      return O.error(": cl::location(x) specified more than once!");
-    Location = &L;
-    return false;
-  }
-
-  template<class T>
-  void addValue(const T &V) {
-    assert(Location != 0 && "cl::location(...) not specified for a command "
-           "line option with external storage!");
-    Location->push_back(V);
-  }
-};
-
-
-// Define how to hold a class type object, such as a string.  Since we can
-// inherit from a class, we do so.  This makes us exactly compatible with the
-// object in all cases that it is used.
-//
-template<class DataType>
-class list_storage<DataType, bool> : public std::vector<DataType> {
-public:
-  template<class T>
-  void addValue(const T &V) { push_back(V); }
-};
-
-
-//===----------------------------------------------------------------------===//
-// list - A list of command line options.
-//
-template <class DataType, class Storage = bool,
-          class ParserClass = parser<DataType> >
-class list : public Option, public list_storage<DataType, Storage> {
-  std::vector<unsigned> Positions;
-  ParserClass Parser;
-
-  virtual enum ValueExpected getValueExpectedFlagDefault() const {
-    return Parser.getValueExpectedFlagDefault();
-  }
-  virtual void getExtraOptionNames(std::vector<const char*> &OptionNames) {
-    return Parser.getExtraOptionNames(OptionNames);
-  }
-  
-  virtual bool handleOccurrence(unsigned pos, const char *ArgName,
-                                const std::string &Arg) {
-    typename ParserClass::parser_data_type Val =
-      typename ParserClass::parser_data_type();
-    if (Parser.parse(*this, ArgName, Arg, Val))
-      return true;  // Parse Error!
-    addValue(Val);
-    setPosition(pos);
-    Positions.push_back(pos);
-    return false;
-  }
-
-  // Forward printing stuff to the parser...
-  virtual unsigned getOptionWidth() const {return Parser.getOptionWidth(*this);}
-  virtual void printOptionInfo(unsigned GlobalWidth) const {
-    Parser.printOptionInfo(*this, GlobalWidth);
-  }
-
-  void done() {
-    addArgument();
-    Parser.initialize(*this);
-  }
-public:
-  ParserClass &getParser() { return Parser; }
-
-  unsigned getPosition(unsigned optnum) const {
-    assert(optnum < this->size() && "Invalid option index");
-    return Positions[optnum];
-  }
-
-  // One option...
-  template<class M0t>
-  list(const M0t &M0) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this);
-    done();
-  }
-  // Two options...
-  template<class M0t, class M1t>
-  list(const M0t &M0, const M1t &M1) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this);
-    done();
-  }
-  // Three options...
-  template<class M0t, class M1t, class M2t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this);
-    done();
-  }
-  // Four options...
-  template<class M0t, class M1t, class M2t, class M3t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    done();
-  }
-  // Five options...
-  template<class M0t, class M1t, class M2t, class M3t, class M4t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this);
-    done();
-  }
-  // Six options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this);
-    done();
-  }
-  // Seven options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5, const M6t &M6)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this);
-    done();
-  }
-  // Eight options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t, class M7t>
-  list(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5, const M6t &M6,
-       const M7t &M7) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this); apply(M7, this);
-    done();
-  }
-};
-
-//===----------------------------------------------------------------------===//
-// bits_storage class
-
-// Default storage class definition: external storage.  This implementation
-// assumes the user will specify a variable to store the data into with the
-// cl::location(x) modifier.
-//
-template<class DataType, class StorageClass>
-class bits_storage {
-  unsigned *Location;   // Where to store the bits...
-  
-  template<class T>
-  static unsigned Bit(const T &V) {
-    unsigned BitPos = reinterpret_cast<unsigned>(V);
-    assert(BitPos < sizeof(unsigned) * 8 &&
-          "enum exceeds width of bit vector!");
-    return 1 << BitPos;
-  }
-
-public:
-  bits_storage() : Location(0) {}
-
-  bool setLocation(Option &O, unsigned &L) {
-    if (Location)
-      return O.error(": cl::location(x) specified more than once!");
-    Location = &L;
-    return false;
-  }
-
-  template<class T>
-  void addValue(const T &V) {
-    assert(Location != 0 && "cl::location(...) not specified for a command "
-           "line option with external storage!");
-    *Location |= Bit(V);
-  }
-  
-  unsigned getBits() { return *Location; }
-  
-  template<class T>
-  bool isSet(const T &V) {
-    return (*Location & Bit(V)) != 0;
-  }
-};
-
-
-// Define how to hold bits.  Since we can inherit from a class, we do so. 
-// This makes us exactly compatible with the bits in all cases that it is used.
-//
-template<class DataType>
-class bits_storage<DataType, bool> {
-  unsigned Bits;   // Where to store the bits...
-  
-  template<class T>
-  static unsigned Bit(const T &V) {
-    unsigned BitPos = reinterpret_cast<unsigned>(V);
-    assert(BitPos < sizeof(unsigned) * 8 &&
-          "enum exceeds width of bit vector!");
-    return 1 << BitPos;
-  }
-  
-public:
-  template<class T>
-  void addValue(const T &V) {
-    Bits |=  Bit(V);
-  }
-  
-  unsigned getBits() { return Bits; }
-  
-  template<class T>
-  bool isSet(const T &V) {
-    return (Bits & Bit(V)) != 0;
-  }
-};
-
-
-//===----------------------------------------------------------------------===//
-// bits - A bit vector of command options.
-//
-template <class DataType, class Storage = bool,
-          class ParserClass = parser<DataType> >
-class bits : public Option, public bits_storage<DataType, Storage> {
-  std::vector<unsigned> Positions;
-  ParserClass Parser;
-
-  virtual enum ValueExpected getValueExpectedFlagDefault() const {
-    return Parser.getValueExpectedFlagDefault();
-  }
-  virtual void getExtraOptionNames(std::vector<const char*> &OptionNames) {
-    return Parser.getExtraOptionNames(OptionNames);
-  }
-  
-  virtual bool handleOccurrence(unsigned pos, const char *ArgName,
-                                const std::string &Arg) {
-    typename ParserClass::parser_data_type Val =
-      typename ParserClass::parser_data_type();
-    if (Parser.parse(*this, ArgName, Arg, Val))
-      return true;  // Parse Error!
-    addValue(Val);
-    setPosition(pos);
-    Positions.push_back(pos);
-    return false;
-  }
-
-  // Forward printing stuff to the parser...
-  virtual unsigned getOptionWidth() const {return Parser.getOptionWidth(*this);}
-  virtual void printOptionInfo(unsigned GlobalWidth) const {
-    Parser.printOptionInfo(*this, GlobalWidth);
-  }
-
-  void done() {
-    addArgument();
-    Parser.initialize(*this);
-  }
-public:
-  ParserClass &getParser() { return Parser; }
-
-  unsigned getPosition(unsigned optnum) const {
-    assert(optnum < this->size() && "Invalid option index");
-    return Positions[optnum];
-  }
-
-  // One option...
-  template<class M0t>
-  bits(const M0t &M0) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this);
-    done();
-  }
-  // Two options...
-  template<class M0t, class M1t>
-  bits(const M0t &M0, const M1t &M1) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this);
-    done();
-  }
-  // Three options...
-  template<class M0t, class M1t, class M2t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this);
-    done();
-  }
-  // Four options...
-  template<class M0t, class M1t, class M2t, class M3t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    done();
-  }
-  // Five options...
-  template<class M0t, class M1t, class M2t, class M3t, class M4t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this);
-    done();
-  }
-  // Six options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this);
-    done();
-  }
-  // Seven options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5, const M6t &M6)
-    : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this);
-    done();
-  }
-  // Eight options...
-  template<class M0t, class M1t, class M2t, class M3t,
-           class M4t, class M5t, class M6t, class M7t>
-  bits(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3,
-       const M4t &M4, const M5t &M5, const M6t &M6,
-       const M7t &M7) : Option(ZeroOrMore | NotHidden) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    apply(M4, this); apply(M5, this); apply(M6, this); apply(M7, this);
-    done();
-  }
-};
-
-//===----------------------------------------------------------------------===//
-// Aliased command line option (alias this name to a preexisting name)
-//
-
-class alias : public Option {
-  Option *AliasFor;
-  virtual bool handleOccurrence(unsigned pos, const char *ArgName,
-                                const std::string &Arg) {
-    return AliasFor->handleOccurrence(pos, AliasFor->ArgStr, Arg);
-  }
-  // Handle printing stuff...
-  virtual unsigned getOptionWidth() const;
-  virtual void printOptionInfo(unsigned GlobalWidth) const;
-
-  void done() {
-    if (!hasArgStr())
-      error(": cl::alias must have argument name specified!");
-    if (AliasFor == 0)
-      error(": cl::alias must have an cl::aliasopt(option) specified!");
-      addArgument();
-  }
-public:
-  void setAliasFor(Option &O) {
-    if (AliasFor)
-      error(": cl::alias must only have one cl::aliasopt(...) specified!");
-    AliasFor = &O;
-  }
-
-  // One option...
-  template<class M0t>
-  alias(const M0t &M0) : Option(Optional | Hidden), AliasFor(0) {
-    apply(M0, this);
-    done();
-  }
-  // Two options...
-  template<class M0t, class M1t>
-  alias(const M0t &M0, const M1t &M1) : Option(Optional | Hidden), AliasFor(0) {
-    apply(M0, this); apply(M1, this);
-    done();
-  }
-  // Three options...
-  template<class M0t, class M1t, class M2t>
-  alias(const M0t &M0, const M1t &M1, const M2t &M2)
-    : Option(Optional | Hidden), AliasFor(0) {
-    apply(M0, this); apply(M1, this); apply(M2, this);
-    done();
-  }
-  // Four options...
-  template<class M0t, class M1t, class M2t, class M3t>
-  alias(const M0t &M0, const M1t &M1, const M2t &M2, const M3t &M3)
-    : Option(Optional | Hidden), AliasFor(0) {
-    apply(M0, this); apply(M1, this); apply(M2, this); apply(M3, this);
-    done();
-  }
-};
-
-// aliasfor - Modifier to set the option an alias aliases.
-struct aliasopt {
-  Option &Opt;
-  aliasopt(Option &O) : Opt(O) {}
-  void apply(alias &A) const { A.setAliasFor(Opt); }
-};
-
-// extrahelp - provide additional help at the end of the normal help
-// output. All occurrences of cl::extrahelp will be accumulated and
-// printed to std::cerr at the end of the regular help, just before
-// exit is called.
-struct extrahelp {
-  const char * morehelp;
-  extrahelp(const char* help);
-};
-
-void PrintVersionMessage();
-// This function just prints the help message, exactly the same way as if the
-// --help option had been given on the command line.
-// NOTE: THIS FUNCTION TERMINATES THE PROGRAM!
-void PrintHelpMessage();
-
-} // End namespace cl
-
-} // End namespace llvm
-
-#endif
diff --git a/support/include/llvm/Support/Compiler.h b/support/include/llvm/Support/Compiler.h
deleted file mode 100644
index 06be685..0000000
--- a/support/include/llvm/Support/Compiler.h
+++ /dev/null
@@ -1,48 +0,0 @@
-//===-- llvm/Support/Compiler.h - Compiler abstraction support --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines several macros, based on the current compiler.  This allows
-// use of compiler-specific features in a way that remains portable.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_COMPILER_H
-#define LLVM_SUPPORT_COMPILER_H
-
-// The VISIBILITY_HIDDEN macro, used for marking classes with the GCC-specific
-// visibility("hidden") attribute.
-#if __GNUC__ >= 4
-#define VISIBILITY_HIDDEN __attribute__ ((visibility("hidden")))
-#else
-#define VISIBILITY_HIDDEN
-#endif
-
-
-// C++ doesn't support 'extern template' of template specializations.  GCC does,
-// but requires __extension__ before it.  In the header, use this:
-//   EXTERN_TEMPLATE_INSTANTIATION(class foo<bar>);
-// in the .cpp file, use this:
-//   TEMPLATE_INSTANTIATION(class foo<bar>);
-#ifdef __GNUC__
-#define EXTERN_TEMPLATE_INSTANTIATION(X) __extension__ extern template X
-#define TEMPLATE_INSTANTIATION(X) template X
-#else
-#define EXTERN_TEMPLATE_INSTANTIATION(X)
-#define TEMPLATE_INSTANTIATION(X)
-#endif
-
-// DISABLE_INLINE - On compilers where we have a directive to do so, mark a
-// method "not for inlining".
-#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#define DISABLE_INLINE __attribute__((noinline))
-#else
-#define DISABLE_INLINE
-#endif
-
-#endif
diff --git a/support/include/llvm/Support/ConstantRange.h b/support/include/llvm/Support/ConstantRange.h
deleted file mode 100644
index 778827c..0000000
--- a/support/include/llvm/Support/ConstantRange.h
+++ /dev/null
@@ -1,198 +0,0 @@
-//===-- llvm/Support/ConstantRange.h - Represent a range --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Represent a range of possible values that may occur when the program is run
-// for an integral value.  This keeps track of a lower and upper bound for the
-// constant, which MAY wrap around the end of the numeric range.  To do this, it
-// keeps track of a [lower, upper) bound, which specifies an interval just like
-// STL iterators.  When used with boolean values, the following are important
-// ranges: :
-//
-//  [F, F) = {}     = Empty set
-//  [T, F) = {T}
-//  [F, T) = {F}
-//  [T, T) = {F, T} = Full set
-//
-// The other integral ranges use min/max values for special range values. For
-// example, for 8-bit types, it uses:
-// [0, 0)     = {}       = Empty set
-// [255, 255) = {0..255} = Full Set
-//
-// Note that ConstantRange always keeps unsigned values.
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_CONSTANT_RANGE_H
-#define LLVM_SUPPORT_CONSTANT_RANGE_H
-
-#include "llvm/ADT/APInt.h"
-#include "llvm/Support/DataTypes.h"
-#include "llvm/Support/Streams.h"
-#include <iosfwd>
-
-namespace llvm {
-
-class ConstantRange {
-  APInt Lower, Upper;
-  static ConstantRange intersect1Wrapped(const ConstantRange &LHS,
-                                         const ConstantRange &RHS);
- public:
-  /// Initialize a full (the default) or empty set for the specified bit width.
-  ///
-  ConstantRange(uint32_t BitWidth, bool isFullSet = true);
-
-  /// Initialize a range to hold the single specified value.
-  ///
-  ConstantRange(const APInt &Value);
-
-  /// @brief Initialize a range of values explicitly. This will assert out if
-  /// Lower==Upper and Lower != Min or Max value for its type. It will also
-  /// assert out if the two APInt's are not the same bit width.
-  ConstantRange(const APInt& Lower, const APInt& Upper);
-
-  /// getLower - Return the lower value for this range...
-  ///
-  const APInt &getLower() const { return Lower; }
-
-  /// getUpper - Return the upper value for this range...
-  ///
-  const APInt &getUpper() const { return Upper; } 
-
-  /// getBitWidth - get the bit width of this ConstantRange
-  ///
-  uint32_t getBitWidth() const { return Lower.getBitWidth(); }
-
-  /// isFullSet - Return true if this set contains all of the elements possible
-  /// for this data-type
-  ///
-  bool isFullSet() const;
-
-  /// isEmptySet - Return true if this set contains no members.
-  ///
-  bool isEmptySet() const;
-
-  /// isWrappedSet - Return true if this set wraps around the top of the range,
-  /// for example: [100, 8)
-  ///
-  bool isWrappedSet() const;
-
-  /// contains - Return true if the specified value is in the set.
-  ///
-  bool contains(const APInt &Val) const;
-
-  /// getSingleElement - If this set contains a single element, return it,
-  /// otherwise return null.
-  ///
-  const APInt *getSingleElement() const {
-    if (Upper == Lower + 1)
-      return &Lower;
-    return 0;
-  }
-
-  /// isSingleElement - Return true if this set contains exactly one member.
-  ///
-  bool isSingleElement() const { return getSingleElement() != 0; }
-
-  /// getSetSize - Return the number of elements in this set.
-  ///
-  APInt getSetSize() const;
-
-  /// getUnsignedMax - Return the largest unsigned value contained in the
-  /// ConstantRange.
-  ///
-  APInt getUnsignedMax() const;
-
-  /// getUnsignedMin - Return the smallest unsigned value contained in the
-  /// ConstantRange.
-  ///
-  APInt getUnsignedMin() const;
-
-  /// getSignedMax - Return the largest signed value contained in the
-  /// ConstantRange.
-  ///
-  APInt getSignedMax() const;
-
-  /// getSignedMin - Return the smallest signed value contained in the
-  /// ConstantRange.
-  ///
-  APInt getSignedMin() const;
-
-  /// operator== - Return true if this range is equal to another range.
-  ///
-  bool operator==(const ConstantRange &CR) const {
-    return Lower == CR.Lower && Upper == CR.Upper;
-  }
-  bool operator!=(const ConstantRange &CR) const {
-    return !operator==(CR);
-  }
-
-  /// subtract - Subtract the specified constant from the endpoints of this
-  /// constant range.
-  ConstantRange subtract(const APInt &CI) const;
-
-  /// intersectWith - Return the range that results from the intersection of
-  /// this range with another range.  The resultant range is pruned as much as
-  /// possible, but there may be cases where elements are included that are in
-  /// one of the sets but not the other.  For example: [100, 8) intersect [3,
-  /// 120) yields [3, 120)
-  ///
-  ConstantRange intersectWith(const ConstantRange &CR) const;
-
-  /// maximalIntersectWith - Return the range that results from the intersection
-  /// of this range with another range.  The resultant range is guaranteed to
-  /// include all elements contained in both input ranges, and to have the
-  /// smallest possible set size that does so.  Because there may be two
-  /// intersections with the same set size, A.maximalIntersectWith(B) might not
-  /// be equal to B.maximalIntersectWith(A).
-  ///
-  ConstantRange maximalIntersectWith(const ConstantRange &CR) const;
-
-  /// unionWith - Return the range that results from the union of this range
-  /// with another range.  The resultant range is guaranteed to include the
-  /// elements of both sets, but may contain more.  For example, [3, 9) union
-  /// [12,15) is [3, 15), which includes 9, 10, and 11, which were not included
-  /// in either set before.
-  ///
-  ConstantRange unionWith(const ConstantRange &CR) const;
-
-  /// zeroExtend - Return a new range in the specified integer type, which must
-  /// be strictly larger than the current type.  The returned range will
-  /// correspond to the possible range of values if the source range had been
-  /// zero extended to BitWidth.
-  ConstantRange zeroExtend(uint32_t BitWidth) const;
-
-  /// signExtend - Return a new range in the specified integer type, which must
-  /// be strictly larger than the current type.  The returned range will
-  /// correspond to the possible range of values if the source range had been
-  /// sign extended to BitWidth.
-  ConstantRange signExtend(uint32_t BitWidth) const;
-
-  /// truncate - Return a new range in the specified integer type, which must be
-  /// strictly smaller than the current type.  The returned range will
-  /// correspond to the possible range of values if the source range had been
-  /// truncated to the specified type.
-  ConstantRange truncate(uint32_t BitWidth) const;
-
-  /// print - Print out the bounds to a stream...
-  ///
-  void print(std::ostream &OS) const;
-  void print(std::ostream *OS) const { if (OS) print(*OS); }
-
-  /// dump - Allow printing from a debugger easily...
-  ///
-  void dump() const;
-};
-
-inline std::ostream &operator<<(std::ostream &OS, const ConstantRange &CR) {
-  CR.print(OS);
-  return OS;
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/DOTGraphTraits.h b/support/include/llvm/Support/DOTGraphTraits.h
deleted file mode 100644
index ed59303..0000000
--- a/support/include/llvm/Support/DOTGraphTraits.h
+++ /dev/null
@@ -1,122 +0,0 @@
-//===-- llvm/Support/DotGraphTraits.h - Customize .dot output ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a template class that can be used to customize dot output
-// graphs generated by the GraphWriter.h file.  The default implementation of
-// this file will produce a simple, but not very polished graph.  By
-// specializing this template, lots of customization opportunities are possible.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_DOTGRAPHTRAITS_H
-#define LLVM_SUPPORT_DOTGRAPHTRAITS_H
-
-#include <string>
-
-namespace llvm {
-
-/// DefaultDOTGraphTraits - This class provides the default implementations of
-/// all of the DOTGraphTraits methods.  If a specialization does not need to
-/// override all methods here it should inherit so that it can get the default
-/// implementations.
-///
-struct DefaultDOTGraphTraits {
-  /// getGraphName - Return the label for the graph as a whole.  Printed at the
-  /// top of the graph.
-  ///
-  template<typename GraphType>
-  static std::string getGraphName(GraphType Graph) { return ""; }
-
-  /// getGraphProperties - Return any custom properties that should be included
-  /// in the top level graph structure for dot.
-  ///
-  template<typename GraphType>
-  static std::string getGraphProperties(GraphType Graph) {
-    return "";
-  }
-
-  /// renderGraphFromBottomUp - If this function returns true, the graph is
-  /// emitted bottom-up instead of top-down.  This requires graphviz 2.0 to work
-  /// though.
-  static bool renderGraphFromBottomUp() {
-    return false;
-  }
-
-  /// getNodeLabel - Given a node and a pointer to the top level graph, return
-  /// the label to print in the node.
-  template<typename GraphType>
-  static std::string getNodeLabel(const void *Node, GraphType Graph) {
-    return "";
-  }
-  
-  /// hasNodeAddressLabel - If this method returns true, the address of the node
-  /// is added to the label of the node.
-  template<typename GraphType>
-  static bool hasNodeAddressLabel(const void *Node, GraphType Graph) {
-    return false;
-  }
-
-  /// If you want to specify custom node attributes, this is the place to do so
-  ///
-  template<typename GraphType>
-  static std::string getNodeAttributes(const void *Node, GraphType Graph) {
-    return "";
-  }
-
-  /// If you want to override the dot attributes printed for a particular edge,
-  /// override this method.
-  template<typename EdgeIter>
-  static std::string getEdgeAttributes(const void *Node, EdgeIter EI) {
-    return "";
-  }
-
-  /// getEdgeSourceLabel - If you want to label the edge source itself,
-  /// implement this method.
-  template<typename EdgeIter>
-  static std::string getEdgeSourceLabel(const void *Node, EdgeIter I) {
-    return "";
-  }
-
-  /// edgeTargetsEdgeSource - This method returns true if this outgoing edge
-  /// should actually target another edge source, not a node.  If this method is
-  /// implemented, getEdgeTarget should be implemented.
-  template<typename EdgeIter>
-  static bool edgeTargetsEdgeSource(const void *Node, EdgeIter I) {
-    return false;
-  }
-
-  /// getEdgeTarget - If edgeTargetsEdgeSource returns true, this method is
-  /// called to determine which outgoing edge of Node is the target of this
-  /// edge.
-  template<typename EdgeIter>
-  static EdgeIter getEdgeTarget(const void *Node, EdgeIter I) {
-    return I;
-  }
-
-  /// addCustomGraphFeatures - If a graph is made up of more than just
-  /// straight-forward nodes and edges, this is the place to put all of the
-  /// custom stuff necessary.  The GraphWriter object, instantiated with your
-  /// GraphType is passed in as an argument.  You may call arbitrary methods on
-  /// it to add things to the output graph.
-  ///
-  template<typename GraphType, typename GraphWriter>
-  static void addCustomGraphFeatures(GraphType Graph, GraphWriter &GW) {}
-};
-
-
-/// DOTGraphTraits - Template class that can be specialized to customize how
-/// graphs are converted to 'dot' graphs.  When specializing, you may inherit
-/// from DefaultDOTGraphTraits if you don't need to override everything.
-///
-template <typename Ty>
-struct DOTGraphTraits : public DefaultDOTGraphTraits {};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/DataTypes.h.in b/support/include/llvm/Support/DataTypes.h.in
deleted file mode 100644
index dcf7bfc..0000000
--- a/support/include/llvm/Support/DataTypes.h.in
+++ /dev/null
@@ -1,131 +0,0 @@
-//===-- include/Support/DataTypes.h - Define fixed size types ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains definitions to figure out the size of _HOST_ data types.
-// This file is important because different host OS's define different macros,
-// which makes portability tough.  This file exports the following definitions:
-//
-//   [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types
-//   [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values.
-//
-// No library is required when using these functinons.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SUPPORT_DATATYPES_H
-#define SUPPORT_DATATYPES_H
-
-#undef HAVE_SYS_TYPES_H
-#undef HAVE_INTTYPES_H
-#undef HAVE_STDINT_H
-#undef HAVE_UINT64_T
-#undef HAVE_U_INT64_T
-
-#ifndef _MSC_VER
-
-// Note that this header's correct operation depends on __STDC_LIMIT_MACROS
-// being defined.  We would define it here, but in order to prevent Bad Things
-// happening when system headers or C++ STL headers include stdint.h before
-// we define it here, we define it on the g++ command line (in Makefile.rules).
-#if !defined(__STDC_LIMIT_MACROS)
-# error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
-#endif
-
-// Note that <inttypes.h> includes <stdint.h>, if this is a C99 system.
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef __cplusplus
-#include <cmath>
-#else
-#include <math.h>
-#endif
-
-#ifdef _AIX
-#include "llvm/Support/AIXDataTypesFix.h"
-#endif
-
-// Handle incorrect definition of uint64_t as u_int64_t
-#ifndef HAVE_UINT64_T
-#ifdef HAVE_U_INT64_T
-typedef u_int64_t uint64_t;
-#else
-# error "Don't have a definition for uint64_t on this platform"
-#endif
-#endif
-
-#ifdef _OpenBSD_
-#define INT8_MAX 127
-#define INT8_MIN -128
-#define UINT8_MAX 255
-#define INT16_MAX 32767
-#define INT16_MIN -32768
-#define UINT16_MAX 65535
-#define INT32_MAX 2147483647
-#define INT32_MIN -2147483648
-#define UINT32_MAX 4294967295U
-#endif
-
-#else /* _MSC_VER */
-// Visual C++ doesn't provide standard integer headers, but it does provide
-// built-in data types.
-#include <stdlib.h>
-#include <stddef.h>
-#include <sys/types.h>
-typedef __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-typedef signed int int32_t;
-typedef unsigned int uint32_t;
-typedef short int16_t;
-typedef unsigned short uint16_t;
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef signed int ssize_t;
-#define INT8_MAX 127
-#define INT8_MIN -128
-#define UINT8_MAX 255
-#define INT16_MAX 32767
-#define INT16_MIN -32768
-#define UINT16_MAX 65535
-#define INT32_MAX 2147483647
-#define INT32_MIN -2147483648
-#define UINT32_MAX 4294967295U
-#endif /* _MSC_VER */
-
-/* Set defaults for constants which we cannot find. */
-#if !defined(INT64_MAX)
-# define INT64_MAX 9223372036854775807LL
-#endif
-#if !defined(INT64_MIN)
-# define INT64_MIN ((-INT64_MAX)-1)
-#endif
-#if !defined(UINT64_MAX)
-# define UINT64_MAX 0xffffffffffffffffULL
-#endif
-
-#if __GNUC__ > 3
-#define END_WITH_NULL __attribute__((sentinel))
-#else
-#define END_WITH_NULL
-#endif
-
-#ifndef HUGE_VALF
-#define HUGE_VALF (float)HUGE_VAL
-#endif
-
-#endif  /* SUPPORT_DATATYPES_H */
diff --git a/support/include/llvm/Support/Debug.h b/support/include/llvm/Support/Debug.h
deleted file mode 100644
index cbfaf15..0000000
--- a/support/include/llvm/Support/Debug.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//===- llvm/Support/Debug.h - Easy way to add debug output ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a handy way of adding debugging information to your
-// code, without it being enabled all of the time, and without having to add
-// command line options to enable it.
-//
-// In particular, just wrap your code with the DEBUG() macro, and it will be
-// enabled automatically if you specify '-debug' on the command-line.
-// Alternatively, you can also use the SET_DEBUG_TYPE("foo") macro to specify
-// that your debug code belongs to class "foo".  Then, on the command line, you
-// can specify '-debug-only=foo' to enable JUST the debug information for the
-// foo class.
-//
-// When compiling in release mode, the -debug-* options and all code in DEBUG()
-// statements disappears, so it does not effect the runtime of the code.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_DEBUG_H
-#define LLVM_SUPPORT_DEBUG_H
-
-#include "llvm/Support/Streams.h"
-
-namespace llvm {
-
-// DebugFlag - This boolean is set to true if the '-debug' command line option
-// is specified.  This should probably not be referenced directly, instead, use
-// the DEBUG macro below.
-//
-extern bool DebugFlag;
-
-// isCurrentDebugType - Return true if the specified string is the debug type
-// specified on the command line, or if none was specified on the command line
-// with the -debug-only=X option.
-//
-bool isCurrentDebugType(const char *Type);
-
-// DEBUG macro - This macro should be used by passes to emit debug information.
-// In the '-debug' option is specified on the commandline, and if this is a
-// debug build, then the code specified as the option to the macro will be
-// executed.  Otherwise it will not be.  Example:
-//
-// DEBUG(cerr << "Bitset contains: " << Bitset << "\n");
-//
-
-#ifndef DEBUG_TYPE
-#define DEBUG_TYPE ""
-#endif
-
-#ifdef NDEBUG
-#define DEBUG(X)
-#else
-#define DEBUG(X) \
-  do { if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) { X; } } while (0)
-#endif
-
-/// getErrorOutputStream - Returns the error output stream (std::cerr). This
-/// places the std::c* I/O streams into one .cpp file and relieves the whole
-/// program from having to have hundreds of static c'tor/d'tors for them.
-/// 
-OStream &getErrorOutputStream(const char *DebugType);
-
-#ifdef NDEBUG
-#define DOUT llvm::OStream(0)
-#else
-#define DOUT llvm::getErrorOutputStream(DEBUG_TYPE)
-#endif
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/Dwarf.h b/support/include/llvm/Support/Dwarf.h
deleted file mode 100644
index 21f49f6..0000000
--- a/support/include/llvm/Support/Dwarf.h
+++ /dev/null
@@ -1,572 +0,0 @@
-//===-- llvm/Support/Dwarf.h ---Dwarf Constants------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by James M. Laskey and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains constants used for implementing Dwarf debug support.  For
-// Details on the Dwarf 3 specfication see DWARF Debugging Information Format
-// V.3 reference manual http://dwarf.freestandards.org ,
-// 
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_DWARF_H
-#define LLVM_SUPPORT_DWARF_H
-
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-
-namespace dwarf {
-
-//===----------------------------------------------------------------------===//
-// Dwarf constants as gleaned from the DWARF Debugging Information Format V.3
-// reference manual http://dwarf.freestandards.org .
-//
-
-// Do not mix the following two enumerations sets.  DW_TAG_invalid changes the
-// enumeration base type.
-
-enum llvm_dwarf_constants {
-  // llvm mock tags
-  DW_TAG_invalid = ~0U,                 // Tag for invalid results.
-  
-  DW_TAG_anchor = 0,                    // Tag for descriptor anchors.
-  DW_TAG_auto_variable = 0x100,         // Tag for local (auto) variables.
-  DW_TAG_arg_variable = 0x101,          // Tag for argument variables.
-  DW_TAG_return_variable = 0x102,       // Tag for return variables.
-  
-  DW_TAG_vector_type = 0x103,           // Tag for vector types.
-  
-  DW_TAG_user_base = 0x1000,            // Recommended base for user tags.
-  
-  DW_CIE_VERSION = 1,                   // Common frame information version.
-  DW_CIE_ID       = 0xffffffff          // Common frame information mark.
-};
-
-enum dwarf_constants {
-  DWARF_VERSION = 2,
-  
-  // Tags
-  DW_TAG_array_type = 0x01,
-  DW_TAG_class_type = 0x02,
-  DW_TAG_entry_point = 0x03,
-  DW_TAG_enumeration_type = 0x04,
-  DW_TAG_formal_parameter = 0x05,
-  DW_TAG_imported_declaration = 0x08,
-  DW_TAG_label = 0x0a,
-  DW_TAG_lexical_block = 0x0b,
-  DW_TAG_member = 0x0d,
-  DW_TAG_pointer_type = 0x0f,
-  DW_TAG_reference_type = 0x10,
-  DW_TAG_compile_unit = 0x11,
-  DW_TAG_string_type = 0x12,
-  DW_TAG_structure_type = 0x13,
-  DW_TAG_subroutine_type = 0x15,
-  DW_TAG_typedef = 0x16,
-  DW_TAG_union_type = 0x17,
-  DW_TAG_unspecified_parameters = 0x18,
-  DW_TAG_variant = 0x19,
-  DW_TAG_common_block = 0x1a,
-  DW_TAG_common_inclusion = 0x1b,
-  DW_TAG_inheritance = 0x1c,
-  DW_TAG_inlined_subroutine = 0x1d,
-  DW_TAG_module = 0x1e,
-  DW_TAG_ptr_to_member_type = 0x1f,
-  DW_TAG_set_type = 0x20,
-  DW_TAG_subrange_type = 0x21,
-  DW_TAG_with_stmt = 0x22,
-  DW_TAG_access_declaration = 0x23,
-  DW_TAG_base_type = 0x24,
-  DW_TAG_catch_block = 0x25,
-  DW_TAG_const_type = 0x26,
-  DW_TAG_constant = 0x27,
-  DW_TAG_enumerator = 0x28,
-  DW_TAG_file_type = 0x29,
-  DW_TAG_friend = 0x2a,
-  DW_TAG_namelist = 0x2b,
-  DW_TAG_namelist_item = 0x2c,
-  DW_TAG_packed_type = 0x2d,
-  DW_TAG_subprogram = 0x2e,
-  DW_TAG_template_type_parameter = 0x2f,
-  DW_TAG_template_value_parameter = 0x30,
-  DW_TAG_thrown_type = 0x31,
-  DW_TAG_try_block = 0x32,
-  DW_TAG_variant_part = 0x33,
-  DW_TAG_variable = 0x34,
-  DW_TAG_volatile_type = 0x35,
-  DW_TAG_dwarf_procedure = 0x36,
-  DW_TAG_restrict_type = 0x37,
-  DW_TAG_interface_type = 0x38,
-  DW_TAG_namespace = 0x39,
-  DW_TAG_imported_module = 0x3a,
-  DW_TAG_unspecified_type = 0x3b,
-  DW_TAG_partial_unit = 0x3c,
-  DW_TAG_imported_unit = 0x3d,
-  DW_TAG_condition = 0x3f,
-  DW_TAG_shared_type = 0x40,
-  DW_TAG_lo_user = 0x4080,
-  DW_TAG_hi_user = 0xffff,
-
-  // Children flag
-  DW_CHILDREN_no = 0x00,
-  DW_CHILDREN_yes = 0x01,
-
-  // Attributes
-  DW_AT_sibling = 0x01,
-  DW_AT_location = 0x02,
-  DW_AT_name = 0x03,
-  DW_AT_ordering = 0x09,
-  DW_AT_byte_size = 0x0b,
-  DW_AT_bit_offset = 0x0c,
-  DW_AT_bit_size = 0x0d,
-  DW_AT_stmt_list = 0x10,
-  DW_AT_low_pc = 0x11,
-  DW_AT_high_pc = 0x12,
-  DW_AT_language = 0x13,
-  DW_AT_discr = 0x15,
-  DW_AT_discr_value = 0x16,
-  DW_AT_visibility = 0x17,
-  DW_AT_import = 0x18,
-  DW_AT_string_length = 0x19,
-  DW_AT_common_reference = 0x1a,
-  DW_AT_comp_dir = 0x1b,
-  DW_AT_const_value = 0x1c,
-  DW_AT_containing_type = 0x1d,
-  DW_AT_default_value = 0x1e,
-  DW_AT_inline = 0x20,
-  DW_AT_is_optional = 0x21,
-  DW_AT_lower_bound = 0x22,
-  DW_AT_producer = 0x25,
-  DW_AT_prototyped = 0x27,
-  DW_AT_return_addr = 0x2a,
-  DW_AT_start_scope = 0x2c,
-  DW_AT_bit_stride = 0x2e,
-  DW_AT_upper_bound = 0x2f,
-  DW_AT_abstract_origin = 0x31,
-  DW_AT_accessibility = 0x32,
-  DW_AT_address_class = 0x33,
-  DW_AT_artificial = 0x34,
-  DW_AT_base_types = 0x35,
-  DW_AT_calling_convention = 0x36,
-  DW_AT_count = 0x37,
-  DW_AT_data_member_location = 0x38,
-  DW_AT_decl_column = 0x39,
-  DW_AT_decl_file = 0x3a,
-  DW_AT_decl_line = 0x3b,
-  DW_AT_declaration = 0x3c,
-  DW_AT_discr_list = 0x3d,
-  DW_AT_encoding = 0x3e,
-  DW_AT_external = 0x3f,
-  DW_AT_frame_base = 0x40,
-  DW_AT_friend = 0x41,
-  DW_AT_identifier_case = 0x42,
-  DW_AT_macro_info = 0x43,
-  DW_AT_namelist_item = 0x44,
-  DW_AT_priority = 0x45,
-  DW_AT_segment = 0x46,
-  DW_AT_specification = 0x47,
-  DW_AT_static_link = 0x48,
-  DW_AT_type = 0x49,
-  DW_AT_use_location = 0x4a,
-  DW_AT_variable_parameter = 0x4b,
-  DW_AT_virtuality = 0x4c,
-  DW_AT_vtable_elem_location = 0x4d,
-  DW_AT_allocated = 0x4e,
-  DW_AT_associated = 0x4f,
-  DW_AT_data_location = 0x50,
-  DW_AT_byte_stride = 0x51,
-  DW_AT_entry_pc = 0x52,
-  DW_AT_use_UTF8 = 0x53,
-  DW_AT_extension = 0x54,
-  DW_AT_ranges = 0x55,
-  DW_AT_trampoline = 0x56,
-  DW_AT_call_column = 0x57,
-  DW_AT_call_file = 0x58,
-  DW_AT_call_line = 0x59,
-  DW_AT_description = 0x5a,
-  DW_AT_binary_scale = 0x5b,
-  DW_AT_decimal_scale = 0x5c,
-  DW_AT_small = 0x5d,
-  DW_AT_decimal_sign = 0x5e,
-  DW_AT_digit_count = 0x5f,
-  DW_AT_picture_string = 0x60,
-  DW_AT_mutable = 0x61,
-  DW_AT_threads_scaled = 0x62,
-  DW_AT_explicit = 0x63,
-  DW_AT_object_pointer = 0x64,
-  DW_AT_endianity = 0x65,
-  DW_AT_elemental = 0x66,
-  DW_AT_pure = 0x67,
-  DW_AT_recursive = 0x68,
-  DW_AT_MIPS_linkage_name = 0x2007,
-  DW_AT_sf_names   = 0x2101,
-  DW_AT_src_info = 0x2102,
-  DW_AT_mac_info = 0x2103,
-  DW_AT_src_coords = 0x2104,
-  DW_AT_body_begin = 0x2105,
-  DW_AT_body_end = 0x2106,
-  DW_AT_GNU_vector = 0x2107,
-  DW_AT_lo_user = 0x2000,
-  DW_AT_hi_user = 0x3fff,
- 
-  // Attribute form encodings
-  DW_FORM_addr = 0x01,
-  DW_FORM_block2 = 0x03,
-  DW_FORM_block4 = 0x04,
-  DW_FORM_data2 = 0x05,
-  DW_FORM_data4 = 0x06,
-  DW_FORM_data8 = 0x07,
-  DW_FORM_string = 0x08,
-  DW_FORM_block = 0x09,
-  DW_FORM_block1 = 0x0a,
-  DW_FORM_data1 = 0x0b,
-  DW_FORM_flag = 0x0c,
-  DW_FORM_sdata = 0x0d,
-  DW_FORM_strp = 0x0e,
-  DW_FORM_udata = 0x0f,
-  DW_FORM_ref_addr = 0x10,
-  DW_FORM_ref1 = 0x11,
-  DW_FORM_ref2 = 0x12,
-  DW_FORM_ref4 = 0x13,
-  DW_FORM_ref8 = 0x14,
-  DW_FORM_ref_udata = 0x15,
-  DW_FORM_indirect = 0x16,
-
-  // Operation encodings
-  DW_OP_addr = 0x03,
-  DW_OP_deref = 0x06,
-  DW_OP_const1u = 0x08,
-  DW_OP_const1s = 0x09,
-  DW_OP_const2u = 0x0a,
-  DW_OP_const2s = 0x0b,
-  DW_OP_const4u = 0x0c,
-  DW_OP_const4s = 0x0d,
-  DW_OP_const8u = 0x0e,
-  DW_OP_const8s = 0x0f,
-  DW_OP_constu = 0x10,
-  DW_OP_consts = 0x11,
-  DW_OP_dup = 0x12,
-  DW_OP_drop = 0x13,
-  DW_OP_over = 0x14,
-  DW_OP_pick = 0x15,
-  DW_OP_swap = 0x16,
-  DW_OP_rot = 0x17,
-  DW_OP_xderef = 0x18,
-  DW_OP_abs = 0x19,
-  DW_OP_and = 0x1a,
-  DW_OP_div = 0x1b,
-  DW_OP_minus = 0x1c,
-  DW_OP_mod = 0x1d,
-  DW_OP_mul = 0x1e,
-  DW_OP_neg = 0x1f,
-  DW_OP_not = 0x20,
-  DW_OP_or = 0x21,
-  DW_OP_plus = 0x22,
-  DW_OP_plus_uconst = 0x23,
-  DW_OP_shl = 0x24,
-  DW_OP_shr = 0x25,
-  DW_OP_shra = 0x26,
-  DW_OP_xor = 0x27,
-  DW_OP_skip = 0x2f,
-  DW_OP_bra = 0x28,
-  DW_OP_eq = 0x29,
-  DW_OP_ge = 0x2a,
-  DW_OP_gt = 0x2b,
-  DW_OP_le = 0x2c,
-  DW_OP_lt = 0x2d,
-  DW_OP_ne = 0x2e,
-  DW_OP_lit0 = 0x30,
-  DW_OP_lit1 = 0x31,
-  DW_OP_lit31 = 0x4f,
-  DW_OP_reg0 = 0x50,
-  DW_OP_reg1 = 0x51,
-  DW_OP_reg31 = 0x6f,
-  DW_OP_breg0 = 0x70,
-  DW_OP_breg1 = 0x71,
-  DW_OP_breg31 = 0x8f,
-  DW_OP_regx = 0x90,
-  DW_OP_fbreg = 0x91,
-  DW_OP_bregx = 0x92,
-  DW_OP_piece = 0x93,
-  DW_OP_deref_size = 0x94,
-  DW_OP_xderef_size = 0x95,
-  DW_OP_nop = 0x96,
-  DW_OP_push_object_address = 0x97,
-  DW_OP_call2 = 0x98,
-  DW_OP_call4 = 0x99,
-  DW_OP_call_ref = 0x9a,
-  DW_OP_form_tls_address = 0x9b,
-  DW_OP_call_frame_cfa = 0x9c,
-  DW_OP_lo_user = 0xe0,
-  DW_OP_hi_user = 0xff,
-
-  // Encoding attribute values
-  DW_ATE_address = 0x01,
-  DW_ATE_boolean = 0x02,
-  DW_ATE_complex_float = 0x03,
-  DW_ATE_float = 0x04,
-  DW_ATE_signed = 0x05,
-  DW_ATE_signed_char = 0x06,
-  DW_ATE_unsigned = 0x07,
-  DW_ATE_unsigned_char = 0x08,
-  DW_ATE_imaginary_float = 0x09,
-  DW_ATE_packed_decimal = 0x0a,
-  DW_ATE_numeric_string = 0x0b,
-  DW_ATE_edited = 0x0c,
-  DW_ATE_signed_fixed = 0x0d,
-  DW_ATE_unsigned_fixed = 0x0e,
-  DW_ATE_decimal_float = 0x0f,
-  DW_ATE_lo_user = 0x80,
-  DW_ATE_hi_user = 0xff,
-
-  // Decimal sign attribute values
-  DW_DS_unsigned = 0x01,
-  DW_DS_leading_overpunch = 0x02,
-  DW_DS_trailing_overpunch = 0x03,
-  DW_DS_leading_separate = 0x04,
-  DW_DS_trailing_separate = 0x05,
-
-  // Endianity attribute values
-  DW_END_default = 0x00,
-  DW_END_big = 0x01,
-  DW_END_little = 0x02,
-  DW_END_lo_user = 0x40,
-  DW_END_hi_user = 0xff,
-
-  // Accessibility codes
-  DW_ACCESS_public = 0x01,
-  DW_ACCESS_protected = 0x02,
-  DW_ACCESS_private = 0x03,
-
-  // Visibility codes 
-  DW_VIS_local = 0x01,
-  DW_VIS_exported = 0x02,
-  DW_VIS_qualified = 0x03,
-
-  // Virtuality codes
-  DW_VIRTUALITY_none = 0x00,
-  DW_VIRTUALITY_virtual = 0x01,
-  DW_VIRTUALITY_pure_virtual = 0x02,
-  
-  // Language names
-  DW_LANG_C89 = 0x0001,
-  DW_LANG_C = 0x0002,
-  DW_LANG_Ada83 = 0x0003,
-  DW_LANG_C_plus_plus = 0x0004,
-  DW_LANG_Cobol74 = 0x0005,
-  DW_LANG_Cobol85 = 0x0006,
-  DW_LANG_Fortran77 = 0x0007,
-  DW_LANG_Fortran90 = 0x0008,
-  DW_LANG_Pascal83 = 0x0009,
-  DW_LANG_Modula2 = 0x000a,
-  DW_LANG_Java = 0x000b,
-  DW_LANG_C99 = 0x000c,
-  DW_LANG_Ada95 = 0x000d,
-  DW_LANG_Fortran95 = 0x000e,
-  DW_LANG_PLI = 0x000f,
-  DW_LANG_ObjC = 0x0010,
-  DW_LANG_ObjC_plus_plus = 0x0011,
-  DW_LANG_UPC = 0x0012,
-  DW_LANG_D = 0x0013,
-  DW_LANG_lo_user = 0x8000,
-  DW_LANG_hi_user = 0xffff,
-  
-  // Identifier case codes
-  DW_ID_case_sensitive = 0x00,
-  DW_ID_up_case = 0x01,
-  DW_ID_down_case = 0x02,
-  DW_ID_case_insensitive = 0x03,
-
-  // Calling convention codes
-  DW_CC_normal = 0x01,
-  DW_CC_program = 0x02,
-  DW_CC_nocall = 0x03,
-  DW_CC_lo_user = 0x40,
-  DW_CC_hi_user = 0xff,
-
-  // Inline codes
-  DW_INL_not_inlined = 0x00,
-  DW_INL_inlined = 0x01,
-  DW_INL_declared_not_inlined = 0x02,
-  DW_INL_declared_inlined = 0x03,
-
-  // Array ordering 
-  DW_ORD_row_major = 0x00,
-  DW_ORD_col_major = 0x01,
-
-  // Discriminant descriptor values
-  DW_DSC_label = 0x00,
-  DW_DSC_range = 0x01,
-
-  // Line Number Standard Opcode Encodings
-  DW_LNS_copy = 0x01,
-  DW_LNS_advance_pc = 0x02,
-  DW_LNS_advance_line = 0x03,
-  DW_LNS_set_file = 0x04,
-  DW_LNS_set_column = 0x05,
-  DW_LNS_negate_stmt = 0x06,
-  DW_LNS_set_basic_block = 0x07,
-  DW_LNS_const_add_pc = 0x08,
-  DW_LNS_fixed_advance_pc = 0x09,
-  DW_LNS_set_prologue_end = 0x0a,
-  DW_LNS_set_epilogue_begin = 0x0b,
-  DW_LNS_set_isa = 0x0c,
-
-  // Line Number Extended Opcode Encodings
-  DW_LNE_end_sequence = 0x01,
-  DW_LNE_set_address = 0x02,
-  DW_LNE_define_file = 0x03,
-  DW_LNE_lo_user = 0x80,
-  DW_LNE_hi_user = 0xff,
-
-  // Macinfo Type Encodings
-  DW_MACINFO_define = 0x01,
-  DW_MACINFO_undef = 0x02,
-  DW_MACINFO_start_file = 0x03,
-  DW_MACINFO_end_file = 0x04,
-  DW_MACINFO_vendor_ext = 0xff,
-
-  // Call frame instruction encodings
-  DW_CFA_extended = 0x00,
-  DW_CFA_advance_loc = 0x40,
-  DW_CFA_offset = 0x80,
-  DW_CFA_restore = 0xc0,
-  DW_CFA_set_loc = 0x01,
-  DW_CFA_advance_loc1 = 0x02,
-  DW_CFA_advance_loc2 = 0x03,
-  DW_CFA_advance_loc4 = 0x04,
-  DW_CFA_offset_extended = 0x05,
-  DW_CFA_restore_extended = 0x06,
-  DW_CFA_undefined = 0x07,
-  DW_CFA_same_value = 0x08,
-  DW_CFA_register = 0x09,
-  DW_CFA_remember_state = 0x0a,
-  DW_CFA_restore_state = 0x0b,
-  DW_CFA_def_cfa = 0x0c,
-  DW_CFA_def_cfa_register = 0x0d,
-  DW_CFA_def_cfa_offset = 0x0e,
-  DW_CFA_def_cfa_expression = 0x0f,
-  DW_CFA_expression = 0x10,
-  DW_CFA_offset_extended_sf = 0x11,
-  DW_CFA_def_cfa_sf = 0x12,
-  DW_CFA_def_cfa_offset_sf = 0x13,
-  DW_CFA_val_offset = 0x14,
-  DW_CFA_val_offset_sf = 0x15,
-  DW_CFA_val_expression = 0x16,
-  DW_CFA_lo_user = 0x1c,
-  DW_CFA_hi_user = 0x3f,
-
-  DW_EH_PE_absptr = 0x00,
-  DW_EH_PE_omit = 0xff,
-  DW_EH_PE_uleb128 = 0x01,
-  DW_EH_PE_udata2 = 0x02,
-  DW_EH_PE_udata4 = 0x03,
-  DW_EH_PE_udata8 = 0x04,
-  DW_EH_PE_sleb128 = 0x09,
-  DW_EH_PE_sdata2 = 0x0A,
-  DW_EH_PE_sdata4 = 0x0B,
-  DW_EH_PE_sdata8 = 0x0C,
-  DW_EH_PE_signed = 0x08,
-  DW_EH_PE_pcrel = 0x10,
-  DW_EH_PE_textrel = 0x20,
-  DW_EH_PE_datarel = 0x30,
-  DW_EH_PE_funcrel = 0x40,
-  DW_EH_PE_aligned = 0x50,
-  DW_EH_PE_indirect = 0x80
-};
-
-/// TagString - Return the string for the specified tag.
-///
-const char *TagString(unsigned Tag);
-
-/// ChildrenString - Return the string for the specified children flag.
-///
-const char *ChildrenString(unsigned Children);
-
-/// AttributeString - Return the string for the specified attribute.
-///
-const char *AttributeString(unsigned Attribute);
-
-/// FormEncodingString - Return the string for the specified form encoding.
-///
-const char *FormEncodingString(unsigned Encoding);
-
-/// OperationEncodingString - Return the string for the specified operation
-/// encoding.
-const char *OperationEncodingString(unsigned Encoding);
-
-/// AttributeEncodingString - Return the string for the specified attribute
-/// encoding.
-const char *AttributeEncodingString(unsigned Encoding);
-
-/// DecimalSignString - Return the string for the specified decimal sign
-/// attribute.
-const char *DecimalSignString(unsigned Sign);
-
-/// EndianityString - Return the string for the specified endianity.
-///
-const char *EndianityString(unsigned Endian);
-
-/// AccessibilityString - Return the string for the specified accessibility.
-///
-const char *AccessibilityString(unsigned Access);
-
-/// VisibilityString - Return the string for the specified visibility.
-///
-const char *VisibilityString(unsigned Visibility);
-
-/// VirtualityString - Return the string for the specified virtuality.
-///
-const char *VirtualityString(unsigned Virtuality);
-
-/// LanguageString - Return the string for the specified language.
-///
-const char *LanguageString(unsigned Language);
-
-/// CaseString - Return the string for the specified identifier case.
-///
-const char *CaseString(unsigned Case);
-
-/// ConventionString - Return the string for the specified calling convention.
-///
-const char *ConventionString(unsigned Convention);
-
-/// InlineCodeString - Return the string for the specified inline code.
-///
-const char *InlineCodeString(unsigned Code);
-
-/// ArrayOrderString - Return the string for the specified array order.
-///
-const char *ArrayOrderString(unsigned Order);
-
-/// DiscriminantString - Return the string for the specified discriminant
-/// descriptor.
-const char *DiscriminantString(unsigned Discriminant);
-
-/// LNStandardString - Return the string for the specified line number standard.
-///
-const char *LNStandardString(unsigned Standard);
- 
-/// LNExtendedString - Return the string for the specified line number extended
-/// opcode encodings.
-const char *LNExtendedString(unsigned Encoding);
-
-/// MacinfoString - Return the string for the specified macinfo type encodings.
-///
-const char *MacinfoString(unsigned Encoding);
-
-/// CallFrameString - Return the string for the specified call frame instruction
-/// encodings.
-const char *CallFrameString(unsigned Encoding);
-
-} // End of namespace dwarf
-
-} // End of namespace llvm
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SupportDwarf)
-
-#endif
diff --git a/support/include/llvm/Support/DynamicLinker.h b/support/include/llvm/Support/DynamicLinker.h
deleted file mode 100644
index e996b0f..0000000
--- a/support/include/llvm/Support/DynamicLinker.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- llvm/Support/DynamicLinker.h - Portable Dynamic Linker --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Lightweight interface to dynamic library linking and loading, and dynamic
-// symbol lookup functionality, in whatever form the operating system
-// provides it.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_DYNAMICLINKER_H
-#define LLVM_SUPPORT_DYNAMICLINKER_H
-
-#include <string>
-
-namespace llvm {
-
-/// LinkDynamicObject - Load the named file as a dynamic library
-/// and link it with the currently running process. Returns false
-/// on success, true if there is an error (and sets ErrorMessage
-/// if it is not NULL). Analogous to dlopen().
-///
-bool LinkDynamicObject (const char *filename, std::string *ErrorMessage);
-
-/// GetAddressOfSymbol - Returns the address of the named symbol in
-/// the currently running process, as reported by the dynamic linker,
-/// or NULL if the symbol does not exist or some other error has
-/// occurred.
-///
-void *GetAddressOfSymbol (const char *symbolName);
-void *GetAddressOfSymbol (const std::string &symbolName);
-
-} // End llvm namespace
-
-#endif // SUPPORT_DYNAMICLINKER_H
diff --git a/support/include/llvm/Support/ELF.h b/support/include/llvm/Support/ELF.h
deleted file mode 100644
index cd811f2..0000000
--- a/support/include/llvm/Support/ELF.h
+++ /dev/null
@@ -1,300 +0,0 @@
-//===-- llvm/Support/ELF.h - ELF constants and data structures --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This header contains common, non-processor-specific data structures and
-// constants for the ELF file format.
-//
-// The details of the ELF32 bits in this file are largely based on
-// the Tool Interface Standard (TIS) Executable and Linking Format
-// (ELF) Specification Version 1.2, May 1995. The ELF64 stuff is not
-// standardized, as far as I can tell. It was largely based on information
-// I found in OpenBSD header files.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_ELF_H
-#define LLVM_SUPPORT_ELF_H
-
-#include "llvm/Support/DataTypes.h"
-#include <cstring>
-#include <cstdlib>
-
-namespace llvm {
-
-namespace ELF {
-
-typedef uint32_t Elf32_Addr; // Program address
-typedef uint16_t Elf32_Half;
-typedef uint32_t Elf32_Off;  // File offset
-typedef int32_t  Elf32_Sword;
-typedef uint32_t Elf32_Word;
-
-typedef uint64_t Elf64_Addr;
-typedef uint64_t Elf64_Off;
-typedef int32_t  Elf64_Shalf;
-typedef int32_t  Elf64_Sword;
-typedef uint32_t Elf64_Word;
-typedef int64_t  Elf64_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef uint32_t Elf64_Half;
-typedef uint16_t Elf64_Quarter;
-
-// Object file magic string.
-static const char ElfMagic[] = { 0x7f, 'E', 'L', 'F', '\0' };
-
-struct Elf32_Ehdr {
-  unsigned char e_ident[16]; // ELF Identification bytes
-  Elf32_Half    e_type;      // Type of file (see ET_* below)
-  Elf32_Half    e_machine;   // Required architecture for this file (see EM_*)
-  Elf32_Word    e_version;   // Must be equal to 1
-  Elf32_Addr    e_entry;     // Address to jump to in order to start program
-  Elf32_Off     e_phoff;     // Program header table's file offset, in bytes
-  Elf32_Off     e_shoff;     // Section header table's file offset, in bytes
-  Elf32_Word    e_flags;     // Processor-specific flags
-  Elf32_Half    e_ehsize;    // Size of ELF header, in bytes
-  Elf32_Half    e_phentsize; // Size of an entry in the program header table
-  Elf32_Half    e_phnum;     // Number of entries in the program header table
-  Elf32_Half    e_shentsize; // Size of an entry in the section header table
-  Elf32_Half    e_shnum;     // Number of entries in the section header table
-  Elf32_Half    e_shstrndx;  // Sect hdr table index of sect name string table
-  bool checkMagic () const {
-    return (memcmp (e_ident, ElfMagic, strlen (ElfMagic))) == 0;
-  }
-  unsigned char getFileClass () const { return e_ident[4]; }
-  unsigned char getDataEncoding () { return e_ident[5]; }
-};
-
-// 64-bit ELF header. Fields are the same as for ELF32, but with different
-// types (see above).
-struct Elf64_Ehdr {
-  unsigned char e_ident[16];
-  Elf64_Quarter e_type;
-  Elf64_Quarter e_machine;
-  Elf64_Half    e_version;
-  Elf64_Addr    e_entry;
-  Elf64_Off     e_phoff;
-  Elf64_Off     e_shoff;
-  Elf64_Half    e_flags;
-  Elf64_Quarter e_ehsize;
-  Elf64_Quarter e_phentsize;
-  Elf64_Quarter e_phnum;
-  Elf64_Quarter e_shentsize;
-  Elf64_Quarter e_shnum;
-  Elf64_Quarter e_shstrndx;
-};
-
-// File types
-enum {
-  ET_NONE   = 0,      // No file type
-  ET_REL    = 1,      // Relocatable file
-  ET_EXEC   = 2,      // Executable file
-  ET_DYN    = 3,      // Shared object file
-  ET_CORE   = 4,      // Core file
-  ET_LOPROC = 0xff00, // Beginning of processor-specific codes
-  ET_HIPROC = 0xffff  // Processor-specific
-};
-
-// Machine architectures
-enum {
-  EM_NONE = 0,  // No machine
-  EM_M32 = 1,   // AT&T WE 32100
-  EM_SPARC = 2, // SPARC
-  EM_386 = 3,   // Intel 386
-  EM_68K = 4,   // Motorola 68000
-  EM_88K = 5,   // Motorola 88000
-  EM_486 = 6,   // Intel 486 (deprecated)
-  EM_860 = 7,   // Intel 80860
-  EM_MIPS = 8,     // MIPS R3000
-  EM_PPC = 20,     // PowerPC
-  EM_ARM = 40,     // ARM
-  EM_ALPHA = 41,   // DEC Alpha
-  EM_SPARCV9 = 43  // SPARC V9
-};
-
-// Object file classes.
-enum {
-  ELFCLASS32 = 1, // 32-bit object file
-  ELFCLASS64 = 2  // 64-bit object file
-};
-
-// Object file byte orderings.
-enum {
-  ELFDATA2LSB = 1, // Little-endian object file
-  ELFDATA2MSB = 2  // Big-endian object file
-};
-
-// Section header.
-struct Elf32_Shdr {
-  Elf32_Word sh_name;      // Section name (index into string table)
-  Elf32_Word sh_type;      // Section type (SHT_*)
-  Elf32_Word sh_flags;     // Section flags (SHF_*)
-  Elf32_Addr sh_addr;      // Address where section is to be loaded
-  Elf32_Off  sh_offset;    // File offset of section data, in bytes
-  Elf32_Word sh_size;      // Size of section, in bytes
-  Elf32_Word sh_link;      // Section type-specific header table index link
-  Elf32_Word sh_info;      // Section type-specific extra information
-  Elf32_Word sh_addralign; // Section address alignment
-  Elf32_Word sh_entsize;   // Size of records contained within the section
-};
-
-// Section header for ELF64 - same fields as ELF32, different types.
-struct Elf64_Shdr {
-  Elf64_Half  sh_name;
-  Elf64_Half  sh_type;
-  Elf64_Xword sh_flags;
-  Elf64_Addr  sh_addr;
-  Elf64_Off   sh_offset;
-  Elf64_Xword sh_size;
-  Elf64_Half  sh_link;
-  Elf64_Half  sh_info;
-  Elf64_Xword sh_addralign;
-  Elf64_Xword sh_entsize;
-};
-
-// Special section indices.
-enum {
-  SHN_UNDEF     = 0,      // Undefined, missing, irrelevant, or meaningless
-  SHN_LORESERVE = 0xff00, // Lowest reserved index
-  SHN_LOPROC    = 0xff00, // Lowest processor-specific index
-  SHN_HIPROC    = 0xff1f, // Highest processor-specific index
-  SHN_ABS       = 0xfff1, // Symbol has absolute value; does not need relocation
-  SHN_COMMON    = 0xfff2, // FORTRAN COMMON or C external global variables
-  SHN_HIRESERVE = 0xffff  // Highest reserved index
-};
-
-// Section types.
-enum {
-  SHT_NULL     = 0,  // No associated section (inactive entry).
-  SHT_PROGBITS = 1,  // Program-defined contents.
-  SHT_SYMTAB   = 2,  // Symbol table.
-  SHT_STRTAB   = 3,  // String table.
-  SHT_RELA     = 4,  // Relocation entries; explicit addends.
-  SHT_HASH     = 5,  // Symbol hash table.
-  SHT_DYNAMIC  = 6,  // Information for dynamic linking.
-  SHT_NOTE     = 7,  // Information about the file.
-  SHT_NOBITS   = 8,  // Data occupies no space in the file.
-  SHT_REL      = 9,  // Relocation entries; no explicit addends.
-  SHT_SHLIB    = 10, // Reserved.
-  SHT_DYNSYM   = 11, // Symbol table.
-  SHT_LOPROC   = 0x70000000, // Lowest processor architecture-specific type.
-  SHT_HIPROC   = 0x7fffffff, // Highest processor architecture-specific type.
-  SHT_LOUSER   = 0x80000000, // Lowest type reserved for applications.
-  SHT_HIUSER   = 0xffffffff  // Highest type reserved for applications.
-};
-
-// Section flags.
-enum {
-  SHF_WRITE     = 0x1, // Section data should be writable during execution.
-  SHF_ALLOC     = 0x2, // Section occupies memory during program execution.
-  SHF_EXECINSTR = 0x4, // Section contains executable machine instructions.
-  SHF_MASKPROC  = 0xf0000000 // Bits indicating processor-specific flags.
-};
-
-// Symbol table entries.
-struct Elf32_Sym {
-  Elf32_Word    st_name;  // Symbol name (index into string table)
-  Elf32_Addr    st_value; // Value or address associated with the symbol
-  Elf32_Word    st_size;  // Size of the symbol
-  unsigned char st_info;  // Symbol's type and binding attributes
-  unsigned char st_other; // Must be zero; reserved
-  Elf32_Half    st_shndx; // Which section (header table index) it's defined in
-
-  // These accessors and mutators correspond to the ELF32_ST_BIND,
-  // ELF32_ST_TYPE, and ELF32_ST_INFO macros defined in the ELF specification:
-  unsigned char getBinding () const { return st_info >> 4; }
-  unsigned char getType () const { return st_info & 0x0f; }
-  void setBinding (unsigned char b) { setBindingAndType (b, getType ()); }
-  void setType (unsigned char t) { setBindingAndType (getBinding (), t); }
-  void setBindingAndType (unsigned char b, unsigned char t) {
-    st_info = (b << 4) + (t & 0x0f);
-  }
-};
-
-// Symbol bindings.
-enum {
-  STB_LOCAL = 0,   // Local symbol, not visible outside obj file containing def
-  STB_GLOBAL = 1,  // Global symbol, visible to all object files being combined
-  STB_WEAK = 2,    // Weak symbol, like global but lower-precedence
-  STB_LOPROC = 13, // Lowest processor-specific binding type
-  STB_HIPROC = 15  // Highest processor-specific binding type
-};
-
-// Symbol types.
-enum {
-  STT_NOTYPE  = 0,   // Symbol's type is not specified
-  STT_OBJECT  = 1,   // Symbol is a data object (variable, array, etc.)
-  STT_FUNC    = 2,   // Symbol is executable code (function, etc.)
-  STT_SECTION = 3,   // Symbol refers to a section
-  STT_FILE    = 4,   // Local, absolute symbol that refers to a file
-  STT_LOPROC  = 13,  // Lowest processor-specific symbol type
-  STT_HIPROC  = 15   // Highest processor-specific symbol type
-};
-
-// Relocation entry, without explicit addend.
-struct Elf32_Rel {
-  Elf32_Addr r_offset; // Location (file byte offset, or program virtual addr)
-  Elf32_Word r_info;   // Symbol table index and type of relocation to apply
-
-  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
-  // and ELF32_R_INFO macros defined in the ELF specification:
-  Elf32_Word getSymbol () const { return (r_info >> 8); }
-  unsigned char getType () const { return (unsigned char) (r_info & 0x0ff); }
-  void setSymbol (Elf32_Word s) { setSymbolAndType (s, getType ()); }
-  void setType (unsigned char t) { setSymbolAndType (getSymbol(), t); }
-  void setSymbolAndType (Elf32_Word s, unsigned char t) {
-    r_info = (s << 8) + t;
-  };
-};
-
-// Relocation entry with explicit addend.
-struct Elf32_Rela {
-  Elf32_Addr  r_offset; // Location (file byte offset, or program virtual addr)
-  Elf32_Word  r_info;   // Symbol table index and type of relocation to apply
-  Elf32_Sword r_addend; // Compute value for relocatable field by adding this
-
-  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
-  // and ELF32_R_INFO macros defined in the ELF specification:
-  Elf32_Word getSymbol () const { return (r_info >> 8); }
-  unsigned char getType () const { return (unsigned char) (r_info & 0x0ff); }
-  void setSymbol (Elf32_Word s) { setSymbolAndType (s, getType ()); }
-  void setType (unsigned char t) { setSymbolAndType (getSymbol(), t); }
-  void setSymbolAndType (Elf32_Word s, unsigned char t) {
-    r_info = (s << 8) + t;
-  };
-};
-
-// Program header.
-struct Elf32_Phdr {
-  Elf32_Word p_type;   // Type of segment
-  Elf32_Off  p_offset; // File offset where segment is located, in bytes
-  Elf32_Addr p_vaddr;  // Virtual address of beginning of segment
-  Elf32_Addr p_paddr;  // Physical address of beginning of segment (OS-specific)
-  Elf32_Word p_filesz; // Num. of bytes in file image of segment (may be zero)
-  Elf32_Word p_memsz;  // Num. of bytes in mem image of segment (may be zero)
-  Elf32_Word p_flags;  // Segment flags
-  Elf32_Word p_align;  // Segment alignment constraint
-};
-
-enum {
-  PT_NULL    = 0, // Unused segment.
-  PT_LOAD    = 1, // Loadable segment.
-  PT_DYNAMIC = 2, // Dynamic linking information.
-  PT_INTERP  = 3, // Interpreter pathname.
-  PT_NOTE    = 4, // Auxiliary information.
-  PT_SHLIB   = 5, // Reserved.
-  PT_PHDR    = 6, // The program header table itself.
-  PT_LOPROC  = 0x70000000, // Lowest processor-specific program hdr entry type.
-  PT_HIPROC  = 0x7fffffff  // Highest processor-specific program hdr entry type.
-};
-
-} // end namespace ELF
-
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/Support/FileUtilities.h b/support/include/llvm/Support/FileUtilities.h
deleted file mode 100644
index 9cebe23..0000000
--- a/support/include/llvm/Support/FileUtilities.h
+++ /dev/null
@@ -1,59 +0,0 @@
-//===- llvm/Support/FileUtilities.h - File System Utilities -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a family of utility functions which are useful for doing
-// various things with files.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_FILEUTILITIES_H
-#define LLVM_SUPPORT_FILEUTILITIES_H
-
-#include "llvm/System/Path.h"
-
-namespace llvm {
-
-  /// DiffFilesWithTolerance - Compare the two files specified, returning 0 if
-  /// the files match, 1 if they are different, and 2 if there is a file error.
-  /// This function allows you to specify an absolete and relative FP error that
-  /// is allowed to exist.  If you specify a string to fill in for the error
-  /// option, it will set the string to an error message if an error occurs, or
-  /// if the files are different.
-  ///
-  int DiffFilesWithTolerance(const sys::PathWithStatus &FileA, 
-                             const sys::PathWithStatus &FileB,
-                             double AbsTol, double RelTol,
-                             std::string *Error = 0);
-
-
-  /// FileRemover - This class is a simple object meant to be stack allocated.
-  /// If an exception is thrown from a region, the object removes the filename
-  /// specified (if deleteIt is true).
-  ///
-  class FileRemover {
-    sys::Path Filename;
-    bool DeleteIt;
-  public:
-    FileRemover(const sys::Path &filename, bool deleteIt = true)
-      : Filename(filename), DeleteIt(deleteIt) {}
-
-    ~FileRemover() {
-      if (DeleteIt) {
-        // Ignore problems deleting the file.
-        Filename.eraseFromDisk();
-      }
-    }
-
-    /// releaseFile - Take ownership of the file away from the FileRemover so it
-    /// will not be removed when the object is destroyed.
-    void releaseFile() { DeleteIt = false; }
-  };
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/GetElementPtrTypeIterator.h b/support/include/llvm/Support/GetElementPtrTypeIterator.h
deleted file mode 100644
index 846332e..0000000
--- a/support/include/llvm/Support/GetElementPtrTypeIterator.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//===- llvm/Support/GetElementPtrTypeIterator.h -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements an iterator for walking through the types indexed by
-// getelementptr instructions.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_GETELEMENTPTRTYPE_H
-#define LLVM_SUPPORT_GETELEMENTPTRTYPE_H
-
-#include "llvm/User.h"
-#include "llvm/DerivedTypes.h"
-
-namespace llvm {
-  template<typename ItTy = User::const_op_iterator>
-  class generic_gep_type_iterator
-    : public forward_iterator<const Type *, ptrdiff_t> {
-    typedef forward_iterator<const Type*, ptrdiff_t> super;
-
-    ItTy OpIt;
-    const Type *CurTy;
-    generic_gep_type_iterator() {}
-  public:
-
-    static generic_gep_type_iterator begin(const Type *Ty, ItTy It) {
-      generic_gep_type_iterator I;
-      I.CurTy = Ty;
-      I.OpIt = It;
-      return I;
-    }
-    static generic_gep_type_iterator end(ItTy It) {
-      generic_gep_type_iterator I;
-      I.CurTy = 0;
-      I.OpIt = It;
-      return I;
-    }
-
-    bool operator==(const generic_gep_type_iterator& x) const {
-      return OpIt == x.OpIt;
-    }
-    bool operator!=(const generic_gep_type_iterator& x) const {
-      return !operator==(x);
-    }
-
-    const Type *operator*() const {
-      return CurTy;
-    }
-
-    const Type *getIndexedType() const {
-      const CompositeType *CT = cast<CompositeType>(CurTy);
-      return CT->getTypeAtIndex(getOperand());
-    }
-
-    // This is a non-standard operator->.  It allows you to call methods on the
-    // current type directly.
-    const Type *operator->() const { return operator*(); }
-
-    Value *getOperand() const { return *OpIt; }
-
-    generic_gep_type_iterator& operator++() {   // Preincrement
-      if (const CompositeType *CT = dyn_cast<CompositeType>(CurTy)) {
-        CurTy = CT->getTypeAtIndex(getOperand());
-      } else {
-        CurTy = 0;
-      }
-      ++OpIt;
-      return *this;
-    }
-
-    generic_gep_type_iterator operator++(int) { // Postincrement
-      generic_gep_type_iterator tmp = *this; ++*this; return tmp;
-    }
-  };
-
-  typedef generic_gep_type_iterator<> gep_type_iterator;
-
-  inline gep_type_iterator gep_type_begin(const User *GEP) {
-    return gep_type_iterator::begin(GEP->getOperand(0)->getType(),
-                                      GEP->op_begin()+1);
-  }
-  inline gep_type_iterator gep_type_end(const User *GEP) {
-    return gep_type_iterator::end(GEP->op_end());
-  }
-  inline gep_type_iterator gep_type_begin(const User &GEP) {
-    return gep_type_iterator::begin(GEP.getOperand(0)->getType(),
-                                    GEP.op_begin()+1);
-  }
-  inline gep_type_iterator gep_type_end(const User &GEP) {
-    return gep_type_iterator::end(GEP.op_end());
-  }
-
-  template<typename ItTy>
-  inline generic_gep_type_iterator<ItTy>
-  gep_type_begin(const Type *Op0, ItTy I, ItTy E) {
-    return generic_gep_type_iterator<ItTy>::begin(Op0, I);
-  }
-
-  template<typename ItTy>
-  inline generic_gep_type_iterator<ItTy>
-  gep_type_end(const Type *Op0, ItTy I, ItTy E) {
-    return generic_gep_type_iterator<ItTy>::end(E);
-  }
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/Support/GraphWriter.h b/support/include/llvm/Support/GraphWriter.h
deleted file mode 100644
index b9566b8..0000000
--- a/support/include/llvm/Support/GraphWriter.h
+++ /dev/null
@@ -1,308 +0,0 @@
-//===-- llvm/Support/GraphWriter.h - Write graph to a .dot file -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a simple interface that can be used to print out generic
-// LLVM graphs to ".dot" files.  "dot" is a tool that is part of the AT&T
-// graphviz package (http://www.research.att.com/sw/tools/graphviz/) which can
-// be used to turn the files output by this interface into a variety of
-// different graphics formats.
-//
-// Graphs do not need to implement any interface past what is already required
-// by the GraphTraits template, but they can choose to implement specializations
-// of the DOTGraphTraits template if they want to customize the graphs output in
-// any way.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_GRAPHWRITER_H
-#define LLVM_SUPPORT_GRAPHWRITER_H
-
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/DOTGraphTraits.h"
-#include "llvm/ADT/GraphTraits.h"
-#include "llvm/System/Path.h"
-#include <fstream>
-#include <vector>
-
-namespace llvm {
-
-namespace DOT {  // Private functions...
-  inline std::string EscapeString(const std::string &Label) {
-    std::string Str(Label);
-    for (unsigned i = 0; i != Str.length(); ++i)
-      switch (Str[i]) {
-      case '\n':
-        Str.insert(Str.begin()+i, '\\');  // Escape character...
-        ++i;
-        Str[i] = 'n';
-        break;
-      case '\t':
-        Str.insert(Str.begin()+i, ' ');  // Convert to two spaces
-        ++i;
-        Str[i] = ' ';
-        break;
-      case '\\':
-        if (i+1 != Str.length() && Str[i+1] == 'l')
-          break;  // don't disturb \l
-      case '{': case '}':
-      case '<': case '>':
-      case '"':
-        Str.insert(Str.begin()+i, '\\');  // Escape character...
-        ++i;  // don't infinite loop
-        break;
-      }
-    return Str;
-  }
-}
-
-void DisplayGraph(const sys::Path& Filename);
-  
-template<typename GraphType>
-class GraphWriter {
-  std::ostream &O;
-  const GraphType &G;
-
-  typedef DOTGraphTraits<GraphType>           DOTTraits;
-  typedef GraphTraits<GraphType>              GTraits;
-  typedef typename GTraits::NodeType          NodeType;
-  typedef typename GTraits::nodes_iterator    node_iterator;
-  typedef typename GTraits::ChildIteratorType child_iterator;
-public:
-  GraphWriter(std::ostream &o, const GraphType &g) : O(o), G(g) {}
-
-  void writeHeader(const std::string &Name) {
-    if (Name.empty())
-      O << "digraph foo {\n";        // Graph name doesn't matter
-    else
-      O << "digraph " << Name << " {\n";
-
-    if (DOTTraits::renderGraphFromBottomUp())
-      O << "\trankdir=\"BT\";\n";
-
-    std::string GraphName = DOTTraits::getGraphName(G);
-    if (!GraphName.empty())
-      O << "\tlabel=\"" << DOT::EscapeString(GraphName) << "\";\n";
-    O << DOTTraits::getGraphProperties(G);
-    O << "\n";
-  }
-
-  void writeFooter() {
-    // Finish off the graph
-    O << "}\n";
-  }
-
-  void writeNodes() {
-    // Loop over the graph, printing it out...
-    for (node_iterator I = GTraits::nodes_begin(G), E = GTraits::nodes_end(G);
-         I != E; ++I)
-      writeNode(&*I);
-  }
-
-  void writeNode(NodeType *const *Node) {
-    writeNode(*Node);
-  }
-
-  void writeNode(NodeType *Node) {
-    std::string NodeAttributes = DOTTraits::getNodeAttributes(Node, G);
-
-    O << "\tNode" << reinterpret_cast<const void*>(Node) << " [shape=record,";
-    if (!NodeAttributes.empty()) O << NodeAttributes << ",";
-    O << "label=\"{";
-
-    if (!DOTTraits::renderGraphFromBottomUp()) {
-      O << DOT::EscapeString(DOTTraits::getNodeLabel(Node, G));
-
-      // If we should include the address of the node in the label, do so now.
-      if (DOTTraits::hasNodeAddressLabel(Node, G))
-        O << "|" << (void*)Node;
-    }
-
-    // Print out the fields of the current node...
-    child_iterator EI = GTraits::child_begin(Node);
-    child_iterator EE = GTraits::child_end(Node);
-    if (EI != EE) {
-      if (!DOTTraits::renderGraphFromBottomUp()) O << "|";
-      O << "{";
-
-      for (unsigned i = 0; EI != EE && i != 64; ++EI, ++i) {
-        if (i) O << "|";
-        O << "<g" << i << ">" << DOTTraits::getEdgeSourceLabel(Node, EI);
-      }
-
-      if (EI != EE)
-        O << "|<g64>truncated...";
-      O << "}";
-      if (DOTTraits::renderGraphFromBottomUp()) O << "|";
-    }
-
-    if (DOTTraits::renderGraphFromBottomUp()) {
-      O << DOT::EscapeString(DOTTraits::getNodeLabel(Node, G));
-
-      // If we should include the address of the node in the label, do so now.
-      if (DOTTraits::hasNodeAddressLabel(Node, G))
-        O << "|" << (void*)Node;
-    }
-
-    O << "}\"];\n";   // Finish printing the "node" line
-
-    // Output all of the edges now
-    EI = GTraits::child_begin(Node);
-    for (unsigned i = 0; EI != EE && i != 64; ++EI, ++i)
-      writeEdge(Node, i, EI);
-    for (; EI != EE; ++EI)
-      writeEdge(Node, 64, EI);
-  }
-
-  void writeEdge(NodeType *Node, unsigned edgeidx, child_iterator EI) {
-    if (NodeType *TargetNode = *EI) {
-      int DestPort = -1;
-      if (DOTTraits::edgeTargetsEdgeSource(Node, EI)) {
-        child_iterator TargetIt = DOTTraits::getEdgeTarget(Node, EI);
-
-        // Figure out which edge this targets...
-        unsigned Offset = std::distance(GTraits::child_begin(TargetNode),
-                                        TargetIt);
-        DestPort = static_cast<int>(Offset);
-      }
-
-      emitEdge(reinterpret_cast<const void*>(Node), edgeidx,
-               reinterpret_cast<const void*>(TargetNode), DestPort,
-               DOTTraits::getEdgeAttributes(Node, EI));
-    }
-  }
-
-  /// emitSimpleNode - Outputs a simple (non-record) node
-  void emitSimpleNode(const void *ID, const std::string &Attr,
-                      const std::string &Label, unsigned NumEdgeSources = 0,
-                      const std::vector<std::string> *EdgeSourceLabels = 0) {
-    O << "\tNode" << ID << "[ ";
-    if (!Attr.empty())
-      O << Attr << ",";
-    O << " label =\"";
-    if (NumEdgeSources) O << "{";
-    O << DOT::EscapeString(Label);
-    if (NumEdgeSources) {
-      O << "|{";
-
-      for (unsigned i = 0; i != NumEdgeSources; ++i) {
-        if (i) O << "|";
-        O << "<g" << i << ">";
-        if (EdgeSourceLabels) O << (*EdgeSourceLabels)[i];
-      }
-      O << "}}";
-    }
-    O << "\"];\n";
-  }
-
-  /// emitEdge - Output an edge from a simple node into the graph...
-  void emitEdge(const void *SrcNodeID, int SrcNodePort,
-                const void *DestNodeID, int DestNodePort,
-                const std::string &Attrs) {
-    if (SrcNodePort  > 64) return;             // Eminating from truncated part?
-    if (DestNodePort > 64) DestNodePort = 64;  // Targetting the truncated part?
-
-    O << "\tNode" << SrcNodeID;
-    if (SrcNodePort >= 0)
-      O << ":g" << SrcNodePort;
-    O << " -> Node" << reinterpret_cast<const void*>(DestNodeID);
-    if (DestNodePort >= 0)
-      O << ":g" << DestNodePort;
-
-    if (!Attrs.empty())
-      O << "[" << Attrs << "]";
-    O << ";\n";
-  }
-};
-
-template<typename GraphType>
-std::ostream &WriteGraph(std::ostream &O, const GraphType &G,
-                         const std::string &Name = "") {
-  // Start the graph emission process...
-  GraphWriter<GraphType> W(O, G);
-
-  // Output the header for the graph...
-  W.writeHeader(Name);
-
-  // Emit all of the nodes in the graph...
-  W.writeNodes();
-
-  // Output any customizations on the graph
-  DOTGraphTraits<GraphType>::addCustomGraphFeatures(G, W);
-
-  // Output the end of the graph
-  W.writeFooter();
-  return O;
-}
-
-template<typename GraphType>
-sys::Path WriteGraph(const GraphType &G,
-                     const std::string& Name, 
-                     const std::string& Title = "") {
-  std::string ErrMsg;
-  sys::Path Filename = sys::Path::GetTemporaryDirectory(&ErrMsg);
-  if (Filename.isEmpty()) {
-    cerr << "Error: " << ErrMsg << "\n";
-    return Filename;
-  }
-  Filename.appendComponent(Name + ".dot");
-  if (Filename.makeUnique(true,&ErrMsg)) {
-    cerr << "Error: " << ErrMsg << "\n";
-    return sys::Path();
-  }
-
-  cerr << "Writing '" << Filename << "'... ";
-  
-  std::ofstream O(Filename.c_str());
-
-  if (O.good()) {
-    // Start the graph emission process...
-    GraphWriter<GraphType> W(O, G);
-
-    // Output the header for the graph...
-    W.writeHeader(Title);
-
-    // Emit all of the nodes in the graph...
-    W.writeNodes();
-
-    // Output any customizations on the graph
-    DOTGraphTraits<GraphType>::addCustomGraphFeatures(G, W);
-
-    // Output the end of the graph
-    W.writeFooter();
-    cerr << " done. \n";
-
-    O.close();
-    
-  } else {
-    cerr << "error opening file for writing!\n";
-    Filename.clear();
-  }
-  
-  return Filename;
-}
-  
-/// ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file,
-/// then cleanup.  For use from the debugger.
-///
-template<typename GraphType>
-void ViewGraph(const GraphType& G, 
-               const std::string& Name, 
-               const std::string& Title = "") {
-  sys::Path Filename =  WriteGraph(G, Name, Title);
-
-  if (Filename.isEmpty()) {
-    return;
-  }
-  
-  DisplayGraph(Filename);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/InstIterator.h b/support/include/llvm/Support/InstIterator.h
deleted file mode 100644
index 6f3a45e..0000000
--- a/support/include/llvm/Support/InstIterator.h
+++ /dev/null
@@ -1,147 +0,0 @@
-//===- llvm/Support/InstIterator.h - Classes for inst iteration -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains definitions of two iterators for iterating over the
-// instructions in a function.  This is effectively a wrapper around a two level
-// iterator that can probably be genericized later.
-//
-// Note that this iterator gets invalidated any time that basic blocks or
-// instructions are moved around.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_INSTITERATOR_H
-#define LLVM_SUPPORT_INSTITERATOR_H
-
-#include "llvm/BasicBlock.h"
-#include "llvm/Function.h"
-
-namespace llvm {
-
-// This class implements inst_begin() & inst_end() for
-// inst_iterator and const_inst_iterator's.
-//
-template <class _BB_t, class _BB_i_t, class _BI_t, class _II_t>
-class InstIterator {
-  typedef _BB_t   BBty;
-  typedef _BB_i_t BBIty;
-  typedef _BI_t   BIty;
-  typedef _II_t   IIty;
-  _BB_t  *BBs;      // BasicBlocksType
-  _BB_i_t BB;       // BasicBlocksType::iterator
-  _BI_t   BI;       // BasicBlock::iterator
-public:
-  typedef std::bidirectional_iterator_tag iterator_category;
-  typedef IIty                            value_type;
-  typedef signed                        difference_type;
-  typedef IIty*                           pointer;
-  typedef IIty&                           reference;
-
-  // Default constructor
-  InstIterator() {}
-
-  // Copy constructor...
-  template<typename A, typename B, typename C, typename D>
-  InstIterator(const InstIterator<A,B,C,D> &II)
-    : BBs(II.BBs), BB(II.BB), BI(II.BI) {}
-
-  template<typename A, typename B, typename C, typename D>
-  InstIterator(InstIterator<A,B,C,D> &II)
-    : BBs(II.BBs), BB(II.BB), BI(II.BI) {}
-
-  template<class M> InstIterator(M &m)
-    : BBs(&m.getBasicBlockList()), BB(BBs->begin()) {    // begin ctor
-    if (BB != BBs->end()) {
-      BI = BB->begin();
-      advanceToNextBB();
-    }
-  }
-
-  template<class M> InstIterator(M &m, bool)
-    : BBs(&m.getBasicBlockList()), BB(BBs->end()) {    // end ctor
-  }
-
-  // Accessors to get at the underlying iterators...
-  inline BBIty &getBasicBlockIterator()  { return BB; }
-  inline BIty  &getInstructionIterator() { return BI; }
-
-  inline reference operator*()  const { return *BI; }
-  inline pointer operator->() const { return &operator*(); }
-
-  inline bool operator==(const InstIterator &y) const {
-    return BB == y.BB && (BB == BBs->end() || BI == y.BI);
-  }
-  inline bool operator!=(const InstIterator& y) const {
-    return !operator==(y);
-  }
-
-  InstIterator& operator++() {
-    ++BI;
-    advanceToNextBB();
-    return *this;
-  }
-  inline InstIterator operator++(int) {
-    InstIterator tmp = *this; ++*this; return tmp;
-  }
-
-  InstIterator& operator--() {
-    while (BB == BBs->end() || BI == BB->begin()) {
-      --BB;
-      BI = BB->end();
-    }
-    --BI;
-    return *this;
-  }
-  inline InstIterator  operator--(int) {
-    InstIterator tmp = *this; --*this; return tmp;
-  }
-
-  inline bool atEnd() const { return BB == BBs->end(); }
-
-private:
-  inline void advanceToNextBB() {
-    // The only way that the II could be broken is if it is now pointing to
-    // the end() of the current BasicBlock and there are successor BBs.
-    while (BI == BB->end()) {
-      ++BB;
-      if (BB == BBs->end()) break;
-      BI = BB->begin();
-    }
-  }
-};
-
-
-typedef InstIterator<iplist<BasicBlock>,
-                     Function::iterator, BasicBlock::iterator,
-                     Instruction> inst_iterator;
-typedef InstIterator<const iplist<BasicBlock>,
-                     Function::const_iterator,
-                     BasicBlock::const_iterator,
-                     const Instruction> const_inst_iterator;
-
-inline inst_iterator inst_begin(Function *F) { return inst_iterator(*F); }
-inline inst_iterator inst_end(Function *F)   { return inst_iterator(*F, true); }
-inline const_inst_iterator inst_begin(const Function *F) {
-  return const_inst_iterator(*F);
-}
-inline const_inst_iterator inst_end(const Function *F) {
-  return const_inst_iterator(*F, true);
-}
-inline inst_iterator inst_begin(Function &F) { return inst_iterator(F); }
-inline inst_iterator inst_end(Function &F)   { return inst_iterator(F, true); }
-inline const_inst_iterator inst_begin(const Function &F) {
-  return const_inst_iterator(F);
-}
-inline const_inst_iterator inst_end(const Function &F) {
-  return const_inst_iterator(F, true);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/InstVisitor.h b/support/include/llvm/Support/InstVisitor.h
deleted file mode 100644
index e848c9b..0000000
--- a/support/include/llvm/Support/InstVisitor.h
+++ /dev/null
@@ -1,221 +0,0 @@
-//===- llvm/Support/InstVisitor.h - Define instruction visitors -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-#ifndef LLVM_SUPPORT_INSTVISITOR_H
-#define LLVM_SUPPORT_INSTVISITOR_H
-
-#include "llvm/Function.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-
-namespace llvm {
-
-// We operate on opaque instruction classes, so forward declare all instruction
-// types now...
-//
-#define HANDLE_INST(NUM, OPCODE, CLASS)   class CLASS;
-#include "llvm/Instruction.def"
-
-// Forward declare the intermediate types...
-class TerminatorInst; class BinaryOperator;
-class AllocationInst;
-
-#define DELEGATE(CLASS_TO_VISIT) \
-  return static_cast<SubClass*>(this)-> \
-               visit##CLASS_TO_VISIT(static_cast<CLASS_TO_VISIT&>(I))
-
-
-/// @brief Base class for instruction visitors
-///
-/// Instruction visitors are used when you want to perform different action for
-/// different kinds of instruction without without having to use lots of casts 
-/// and a big switch statement (in your code that is). 
-///
-/// To define your own visitor, inherit from this class, specifying your
-/// new type for the 'SubClass' template parameter, and "override" visitXXX
-/// functions in your class. I say "overriding" because this class is defined 
-/// in terms of statically resolved overloading, not virtual functions.  
-/// 
-/// For example, here is a visitor that counts the number of malloc 
-/// instructions processed:
-///
-///  /// Declare the class.  Note that we derive from InstVisitor instantiated
-///  /// with _our new subclasses_ type.
-///  ///
-///  struct CountMallocVisitor : public InstVisitor<CountMallocVisitor> {
-///    unsigned Count;
-///    CountMallocVisitor() : Count(0) {}
-///
-///    void visitMallocInst(MallocInst &MI) { ++Count; }
-///  };
-///
-///  And this class would be used like this:
-///    CountMallocVistor CMV;
-///    CMV.visit(function);
-///    NumMallocs = CMV.Count;
-///
-/// The defined has 'visit' methods for Instruction, and also for BasicBlock,
-/// Function, and Module, which recursively process all conained instructions.
-///
-/// Note that if you don't implement visitXXX for some instruction type,
-/// the visitXXX method for instruction superclass will be invoked. So
-/// if instructions are added in the future, they will be automatically
-/// supported, if you handle on of their superclasses.
-///
-/// The optional second template argument specifies the type that instruction 
-/// visitation functions should return. If you specify this, you *MUST* provide 
-/// an implementation of visitInstruction though!.
-///
-/// Note that this class is specifically designed as a template to avoid
-/// virtual function call overhead.  Defining and using an InstVisitor is just
-/// as efficient as having your own switch statement over the instruction
-/// opcode.
-template<typename SubClass, typename RetTy=void>
-class InstVisitor {
-  //===--------------------------------------------------------------------===//
-  // Interface code - This is the public interface of the InstVisitor that you
-  // use to visit instructions...
-  //
-
-public:
-  // Generic visit method - Allow visitation to all instructions in a range
-  template<class Iterator>
-  void visit(Iterator Start, Iterator End) {
-    while (Start != End)
-      static_cast<SubClass*>(this)->visit(*Start++);
-  }
-
-  // Define visitors for functions and basic blocks...
-  //
-  void visit(Module &M) {
-    static_cast<SubClass*>(this)->visitModule(M);
-    visit(M.begin(), M.end());
-  }
-  void visit(Function &F) {
-    static_cast<SubClass*>(this)->visitFunction(F);
-    visit(F.begin(), F.end());
-  }
-  void visit(BasicBlock &BB) {
-    static_cast<SubClass*>(this)->visitBasicBlock(BB);
-    visit(BB.begin(), BB.end());
-  }
-
-  // Forwarding functions so that the user can visit with pointers AND refs.
-  void visit(Module       *M)  { visit(*M); }
-  void visit(Function     *F)  { visit(*F); }
-  void visit(BasicBlock   *BB) { visit(*BB); }
-  RetTy visit(Instruction *I)  { return visit(*I); }
-
-  // visit - Finally, code to visit an instruction...
-  //
-  RetTy visit(Instruction &I) {
-    switch (I.getOpcode()) {
-    default: assert(0 && "Unknown instruction type encountered!");
-             abort();
-      // Build the switch statement using the Instruction.def file...
-#define HANDLE_INST(NUM, OPCODE, CLASS) \
-    case Instruction::OPCODE: return \
-           static_cast<SubClass*>(this)-> \
-                      visit##OPCODE(static_cast<CLASS&>(I));
-#include "llvm/Instruction.def"
-    }
-  }
-
-  //===--------------------------------------------------------------------===//
-  // Visitation functions... these functions provide default fallbacks in case
-  // the user does not specify what to do for a particular instruction type.
-  // The default behavior is to generalize the instruction type to its subtype
-  // and try visiting the subtype.  All of this should be inlined perfectly,
-  // because there are no virtual functions to get in the way.
-  //
-
-  // When visiting a module, function or basic block directly, these methods get
-  // called to indicate when transitioning into a new unit.
-  //
-  void visitModule    (Module &M) {}
-  void visitFunction  (Function &F) {}
-  void visitBasicBlock(BasicBlock &BB) {}
-
-  // Define instruction specific visitor functions that can be overridden to
-  // handle SPECIFIC instructions.  These functions automatically define
-  // visitMul to proxy to visitBinaryOperator for instance in case the user does
-  // not need this generality.
-  //
-  // The one problem case we have to handle here though is that the PHINode
-  // class and opcode name are the exact same.  Because of this, we cannot
-  // define visitPHINode (the inst version) to forward to visitPHINode (the
-  // generic version) without multiply defined symbols and recursion.  To handle
-  // this, we do not autoexpand "Other" instructions, we do it manually.
-  //
-#define HANDLE_INST(NUM, OPCODE, CLASS) \
-    RetTy visit##OPCODE(CLASS &I) { DELEGATE(CLASS); }
-#include "llvm/Instruction.def"
-
-  // Specific Instruction type classes... note that all of the casts are
-  // necessary because we use the instruction classes as opaque types...
-  //
-  RetTy visitReturnInst(ReturnInst &I)              { DELEGATE(TerminatorInst);}
-  RetTy visitBranchInst(BranchInst &I)              { DELEGATE(TerminatorInst);}
-  RetTy visitSwitchInst(SwitchInst &I)              { DELEGATE(TerminatorInst);}
-  RetTy visitInvokeInst(InvokeInst &I)              { DELEGATE(TerminatorInst);}
-  RetTy visitUnwindInst(UnwindInst &I)              { DELEGATE(TerminatorInst);}
-  RetTy visitUnreachableInst(UnreachableInst &I)    { DELEGATE(TerminatorInst);}
-  RetTy visitICmpInst(ICmpInst &I)                  { DELEGATE(CmpInst);}
-  RetTy visitFCmpInst(FCmpInst &I)                  { DELEGATE(CmpInst);}
-  RetTy visitMallocInst(MallocInst &I)              { DELEGATE(AllocationInst);}
-  RetTy visitAllocaInst(AllocaInst &I)              { DELEGATE(AllocationInst);}
-  RetTy visitFreeInst(FreeInst     &I)              { DELEGATE(Instruction); }
-  RetTy visitLoadInst(LoadInst     &I)              { DELEGATE(Instruction); }
-  RetTy visitStoreInst(StoreInst   &I)              { DELEGATE(Instruction); }
-  RetTy visitGetElementPtrInst(GetElementPtrInst &I){ DELEGATE(Instruction); }
-  RetTy visitPHINode(PHINode       &I)              { DELEGATE(Instruction); }
-  RetTy visitTruncInst(TruncInst &I)                { DELEGATE(CastInst); }
-  RetTy visitZExtInst(ZExtInst &I)                  { DELEGATE(CastInst); }
-  RetTy visitSExtInst(SExtInst &I)                  { DELEGATE(CastInst); }
-  RetTy visitFPTruncInst(FPTruncInst &I)            { DELEGATE(CastInst); }
-  RetTy visitFPExtInst(FPExtInst &I)                { DELEGATE(CastInst); }
-  RetTy visitFPToUIInst(FPToUIInst &I)              { DELEGATE(CastInst); }
-  RetTy visitFPToSIInst(FPToSIInst &I)              { DELEGATE(CastInst); }
-  RetTy visitUIToFPInst(UIToFPInst &I)              { DELEGATE(CastInst); }
-  RetTy visitSIToFPInst(SIToFPInst &I)              { DELEGATE(CastInst); }
-  RetTy visitPtrToIntInst(PtrToIntInst &I)          { DELEGATE(CastInst); }
-  RetTy visitIntToPtrInst(IntToPtrInst &I)          { DELEGATE(CastInst); }
-  RetTy visitBitCastInst(BitCastInst &I)            { DELEGATE(CastInst); }
-  RetTy visitSelectInst(SelectInst &I)              { DELEGATE(Instruction); }
-  RetTy visitCallInst(CallInst     &I)              { DELEGATE(Instruction); }
-  RetTy visitVAArgInst(VAArgInst   &I)              { DELEGATE(Instruction); }
-  RetTy visitExtractElementInst(ExtractElementInst &I) { DELEGATE(Instruction);}
-  RetTy visitInsertElementInst(InsertElementInst &I) { DELEGATE(Instruction); }
-  RetTy visitShuffleVectorInst(ShuffleVectorInst &I) { DELEGATE(Instruction); }
-
-  // Next level propagators... if the user does not overload a specific
-  // instruction type, they can overload one of these to get the whole class
-  // of instructions...
-  //
-  RetTy visitTerminatorInst(TerminatorInst &I) { DELEGATE(Instruction); }
-  RetTy visitBinaryOperator(BinaryOperator &I) { DELEGATE(Instruction); }
-  RetTy visitAllocationInst(AllocationInst &I) { DELEGATE(Instruction); }
-  RetTy visitCmpInst(CmpInst &I)               { DELEGATE(Instruction); }
-  RetTy visitCastInst(CastInst &I)             { DELEGATE(Instruction); }
-
-  // If the user wants a 'default' case, they can choose to override this
-  // function.  If this function is not overloaded in the users subclass, then
-  // this instruction just gets ignored.
-  //
-  // Note that you MUST override this function if your return type is not void.
-  //
-  void visitInstruction(Instruction &I) {}  // Ignore unhandled instructions
-};
-
-#undef DELEGATE
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/LLVMBuilder.h b/support/include/llvm/Support/LLVMBuilder.h
deleted file mode 100644
index 5a80e41..0000000
--- a/support/include/llvm/Support/LLVMBuilder.h
+++ /dev/null
@@ -1,431 +0,0 @@
-//===-- llvm/Support/LLVMBuilder.h - Builder for LLVM Instrs ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the LLVMBuilder class, which is used as a convenient way
-// to create LLVM instructions with a consistent and simplified interface.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_LLVMBUILDER_H
-#define LLVM_SUPPORT_LLVMBUILDER_H
-
-#include "llvm/BasicBlock.h"
-#include "llvm/Instructions.h"
-
-namespace llvm {
-
-/// LLVMBuilder - This provides a uniform API for creating instructions and
-/// inserting them into a basic block: either at the end of a BasicBlock, or 
-/// at a specific iterator location in a block.
-///
-/// Note that the builder does not expose the full generality of LLVM
-/// instructions.  For example, it cannot be used to create instructions with
-/// arbitrary names (specifically, names with nul characters in them) - It only
-/// supports nul-terminated C strings.  For fully generic names, use
-/// I->setName().  For access to extra instruction properties, use the mutators
-/// (e.g. setVolatile) on the instructions after they have been created.
-class LLVMBuilder {
-  BasicBlock *BB;
-  BasicBlock::iterator InsertPt;
-public:
-  LLVMBuilder() { ClearInsertionPoint(); }
-  explicit LLVMBuilder(BasicBlock *TheBB) { SetInsertPoint(TheBB); }
-  LLVMBuilder(BasicBlock *TheBB, BasicBlock::iterator IP) {
-    SetInsertPoint(TheBB, IP);
-  }
-
-  //===--------------------------------------------------------------------===//
-  // Builder configuration methods
-  //===--------------------------------------------------------------------===//
-
-  /// ClearInsertionPoint - Clear the insertion point: created instructions will
-  /// not be inserted into a block.
-  void ClearInsertionPoint() {
-    BB = 0;
-  }
-  
-  BasicBlock *GetInsertBlock() const { return BB; }
-  
-  /// SetInsertPoint - This specifies that created instructions should be
-  /// appended to the end of the specified block.
-  void SetInsertPoint(BasicBlock *TheBB) {
-    BB = TheBB;
-    InsertPt = BB->end();
-  }
-  
-  /// SetInsertPoint - This specifies that created instructions should be
-  /// inserted at the specified point.
-  void SetInsertPoint(BasicBlock *TheBB, BasicBlock::iterator IP) {
-    BB = TheBB;
-    InsertPt = IP;
-  }
-  
-  /// Insert - Insert and return the specified instruction.
-  template<typename InstTy>
-  InstTy *Insert(InstTy *I) const {
-    InsertHelper(I);
-    return I;
-  }
-  
-  /// InsertHelper - Insert the specified instruction at the specified insertion
-  /// point.  This is split out of Insert so that it isn't duplicated for every
-  /// template instantiation.
-  void InsertHelper(Instruction *I) const {
-    if (BB) BB->getInstList().insert(InsertPt, I);
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Terminators
-  //===--------------------------------------------------------------------===//
-
-  /// CreateRetVoid - Create a 'ret void' instruction.
-  ReturnInst *CreateRetVoid() {
-    return Insert(new ReturnInst());
-  }
-
-  /// CreateRet - Create a 'ret <val>' instruction.
-  ReturnInst *CreateRet(Value *V) {
-    return Insert(new ReturnInst(V));
-  }
-  
-  /// CreateBr - Create an unconditional 'br label X' instruction.
-  BranchInst *CreateBr(BasicBlock *Dest) {
-    return Insert(new BranchInst(Dest));
-  }
-
-  /// CreateCondBr - Create a conditional 'br Cond, TrueDest, FalseDest'
-  /// instruction.
-  BranchInst *CreateCondBr(Value *Cond, BasicBlock *True, BasicBlock *False) {
-    return Insert(new BranchInst(True, False, Cond));
-  }
-  
-  /// CreateSwitch - Create a switch instruction with the specified value,
-  /// default dest, and with a hint for the number of cases that will be added
-  /// (for efficient allocation).
-  SwitchInst *CreateSwitch(Value *V, BasicBlock *Dest, unsigned NumCases = 10) {
-    return Insert(new SwitchInst(V, Dest, NumCases));
-  }
-  
-  /// CreateInvoke - Create an invoke instruction.
-  InvokeInst *CreateInvoke(Value *Callee, BasicBlock *NormalDest, 
-                           BasicBlock *UnwindDest,
-                           Value *const* Args, unsigned NumArgs,
-                           const char *Name = "") {
-    return Insert(new InvokeInst(Callee, NormalDest, UnwindDest, Args, NumArgs,
-                                 Name));
-  }
-  
-  UnwindInst *CreateUnwind() {
-    return Insert(new UnwindInst());
-  }
-
-  UnreachableInst *CreateUnreachable() {
-    return Insert(new UnreachableInst());
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Binary Operators
-  //===--------------------------------------------------------------------===//
-
-  BinaryOperator *CreateAdd(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createAdd(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateSub(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createSub(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateMul(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createMul(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateUDiv(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createUDiv(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateSDiv(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createSDiv(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateFDiv(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createFDiv(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateURem(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createURem(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateSRem(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createSRem(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateFRem(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createFRem(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateShl(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createShl(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateLShr(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createLShr(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateAShr(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createAShr(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateAnd(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createAnd(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateOr(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createOr(LHS, RHS, Name));
-  }
-  BinaryOperator *CreateXor(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::createXor(LHS, RHS, Name));
-  }
-
-  BinaryOperator *CreateBinOp(Instruction::BinaryOps Opc,
-                              Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(BinaryOperator::create(Opc, LHS, RHS, Name));
-  }
-  
-  BinaryOperator *CreateNeg(Value *V, const char *Name = "") {
-    return Insert(BinaryOperator::createNeg(V, Name));
-  }
-  BinaryOperator *CreateNot(Value *V, const char *Name = "") {
-    return Insert(BinaryOperator::createNot(V, Name));
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Memory Instructions
-  //===--------------------------------------------------------------------===//
-  
-  MallocInst *CreateMalloc(const Type *Ty, Value *ArraySize = 0,
-                           const char *Name = "") {
-    return Insert(new MallocInst(Ty, ArraySize, Name));
-  }
-  AllocaInst *CreateAlloca(const Type *Ty, Value *ArraySize = 0,
-                           const char *Name = "") {
-    return Insert(new AllocaInst(Ty, ArraySize, Name));
-  }
-  FreeInst *CreateFree(Value *Ptr) {
-    return Insert(new FreeInst(Ptr));
-  }
-  LoadInst *CreateLoad(Value *Ptr, const char *Name = 0) {
-    return Insert(new LoadInst(Ptr, Name));
-  }
-  LoadInst *CreateLoad(Value *Ptr, bool isVolatile, const char *Name = 0) {
-    return Insert(new LoadInst(Ptr, Name, isVolatile));
-  }
-  StoreInst *CreateStore(Value *Val, Value *Ptr, bool isVolatile = false) {
-    return Insert(new StoreInst(Val, Ptr, isVolatile));
-  }
-  GetElementPtrInst *CreateGEP(Value *Ptr, Value* const *Idx, unsigned NumIdx,
-                               const char *Name = "") {
-    return Insert(new GetElementPtrInst(Ptr, Idx, NumIdx, Name));
-  }
-  GetElementPtrInst *CreateGEP(Value *Ptr, Value *Idx, const char *Name = "") {
-    return Insert(new GetElementPtrInst(Ptr, &Idx, 1, Name));
-  }
-  GetElementPtrInst *CreateGEP(Value *Ptr, Value *Idx0, Value *Idx1,
-                               const char *Name = "") {
-    return Insert(new GetElementPtrInst(Ptr, Idx0, Idx1, Name));
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Cast/Conversion Operators
-  //===--------------------------------------------------------------------===//
-  
-  TruncInst *CreateTrunc(Value *V, const Type *DestTy, const char *Name = "") {
-    return Insert(new TruncInst(V, DestTy, Name));
-  }
-  ZExtInst *CreateZExt(Value *V, const Type *DestTy, const char *Name = "") {
-    return Insert(new ZExtInst(V, DestTy, Name));
-  }
-  SExtInst *CreateSExt(Value *V, const Type *DestTy, const char *Name = "") {
-    return Insert(new SExtInst(V, DestTy, Name));
-  }
-  FPToUIInst *CreateFPToUI(Value *V, const Type *DestTy, const char *Name = ""){
-    return Insert(new FPToUIInst(V, DestTy, Name));
-  }
-  FPToSIInst *CreateFPToSI(Value *V, const Type *DestTy, const char *Name = ""){
-    return Insert(new FPToSIInst(V, DestTy, Name));
-  }
-  UIToFPInst *CreateUIToFP(Value *V, const Type *DestTy, const char *Name = ""){
-    return Insert(new UIToFPInst(V, DestTy, Name));
-  }
-  SIToFPInst *CreateSIToFP(Value *V, const Type *DestTy, const char *Name = ""){
-    return Insert(new SIToFPInst(V, DestTy, Name));
-  }
-  FPTruncInst *CreateFPTrunc(Value *V, const Type *DestTy,
-                             const char *Name = "") {
-    return Insert(new FPTruncInst(V, DestTy, Name));
-  }
-  FPExtInst *CreateFPExt(Value *V, const Type *DestTy, const char *Name = "") {
-    return Insert(new FPExtInst(V, DestTy, Name));
-  }
-  PtrToIntInst *CreatePtrToInt(Value *V, const Type *DestTy,
-                               const char *Name = "") {
-    return Insert(new PtrToIntInst(V, DestTy, Name));
-  }
-  IntToPtrInst *CreateIntToPtr(Value *V, const Type *DestTy,
-                               const char *Name = "") {
-    return Insert(new IntToPtrInst(V, DestTy, Name));
-  }
-  BitCastInst *CreateBitCast(Value *V, const Type *DestTy,
-                             const char *Name = "") {
-    return Insert(new BitCastInst(V, DestTy, Name));
-  }
-  
-  CastInst *CreateCast(Instruction::CastOps Op, Value *V, const Type *DestTy,
-                       const char *Name = "") {
-    return Insert(CastInst::create(Op, V, DestTy, Name));
-  }
-  CastInst *CreateIntCast(Value *V, const Type *DestTy, bool isSigned,
-                          const char *Name = "") {
-    return Insert(CastInst::createIntegerCast(V, DestTy, isSigned, Name));
-  }
-  
-  
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Compare Instructions
-  //===--------------------------------------------------------------------===//
-  
-  ICmpInst *CreateICmpEQ(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_EQ, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpNE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_NE, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpUGT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_UGT, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpUGE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_UGE, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpULT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_ULT, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpULE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_ULE, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpSGT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_SGT, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpSGE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_SGE, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpSLT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_SLT, LHS, RHS, Name));
-  }
-  ICmpInst *CreateICmpSLE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new ICmpInst(ICmpInst::ICMP_SLE, LHS, RHS, Name));
-  }
-  
-  FCmpInst *CreateFCmpOEQ(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_OEQ, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpOGT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_OGT, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpOGE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_OGE, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpOLT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_OLT, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpOLE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_OLE, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpONE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_ONE, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpORD(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_ORD, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpUNO(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_UNO, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpUEQ(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_UEQ, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpUGT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_UGT, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpUGE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_UGE, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpULT(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_ULT, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpULE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_ULE, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmpUNE(Value *LHS, Value *RHS, const char *Name = "") {
-    return Insert(new FCmpInst(FCmpInst::FCMP_UNE, LHS, RHS, Name));
-  }
-  
-  
-  ICmpInst *CreateICmp(ICmpInst::Predicate P, Value *LHS, Value *RHS, 
-                       const char *Name = "") {
-    return Insert(new ICmpInst(P, LHS, RHS, Name));
-  }
-  FCmpInst *CreateFCmp(FCmpInst::Predicate P, Value *LHS, Value *RHS, 
-                       const char *Name = "") {
-    return Insert(new FCmpInst(P, LHS, RHS, Name));
-  }
-  
-  //===--------------------------------------------------------------------===//
-  // Instruction creation methods: Other Instructions
-  //===--------------------------------------------------------------------===//
-  
-  PHINode *CreatePHI(const Type *Ty, const char *Name = "") {
-    return Insert(new PHINode(Ty, Name));
-  }
-
-  CallInst *CreateCall(Value *Callee, const char *Name = "") {
-    return Insert(new CallInst(Callee, (Value**)0, 0, Name));
-  }
-  CallInst *CreateCall(Value *Callee, Value *Arg, const char *Name = "") {
-    return Insert(new CallInst(Callee, &Arg, 1, Name));
-  }
-  CallInst *CreateCall(Value *Callee, Value *Arg0, Value *Arg1,
-                       const char *Name = "") {
-    Value *Args[] = { Arg0, Arg1 };
-    return Insert(new CallInst(Callee, Args, 2, Name));
-  }
-  
-  
-  CallInst *CreateCall(Value *Callee, Value* const *Args, unsigned NumArgs,
-                       const char *Name = "") {
-    return Insert(new CallInst(Callee, Args, NumArgs, Name));
-  }
-  
-  SelectInst *CreateSelect(Value *C, Value *True, Value *False,
-                           const char *Name = "") {
-    return Insert(new SelectInst(C, True, False, Name));
-  }
-  
-  VAArgInst *CreateVAArg(Value *List, const Type *Ty, const char *Name = "") {
-    return Insert(new VAArgInst(List, Ty, Name));
-  }
-  
-  ExtractElementInst *CreateExtractElement(Value *Vec, Value *Idx,
-                                           const char *Name = "") {
-    return Insert(new ExtractElementInst(Vec, Idx, Name));
-  }
-  
-  InsertElementInst *CreateInsertElement(Value *Vec, Value *NewElt, Value *Idx,
-                                         const char *Name = "") {
-    return Insert(new InsertElementInst(Vec, NewElt, Idx, Name));
-  }
-  
-  ShuffleVectorInst *CreateShuffleVector(Value *V1, Value *V2, Value *Mask,
-                                         const char *Name = "") {
-    return Insert(new ShuffleVectorInst(V1, V2, Mask, Name));
-  }
-};
-
-// TODO: A version of LLVMBuilder that constant folds operands as they come in.
-//class LLVMFoldingBuilder {
-//};
-  
-}
-
-#endif
diff --git a/support/include/llvm/Support/LeakDetector.h b/support/include/llvm/Support/LeakDetector.h
deleted file mode 100644
index 92784ee..0000000
--- a/support/include/llvm/Support/LeakDetector.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//===-- llvm/Support/LeakDetector.h - Provide leak detection ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a class that can be used to provide very simple memory leak
-// checks for an API.  Basically LLVM uses this to make sure that Instructions,
-// for example, are deleted when they are supposed to be, and not leaked away.
-//
-// When compiling with NDEBUG (Release build), this class does nothing, thus
-// adding no checking overhead to release builds.  Note that this class is
-// implemented in a very simple way, requiring completely manual manipulation
-// and checking for garbage, but this is intentional: users should not be using
-// this API, only other APIs should.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_LEAKDETECTOR_H
-#define LLVM_SUPPORT_LEAKDETECTOR_H
-
-#include <string>
-
-namespace llvm {
-
-class Value;
-
-struct LeakDetector {
-  /// addGarbageObject - Add a pointer to the internal set of "garbage" object
-  /// pointers.  This should be called when objects are created, or if they are
-  /// taken out of an owning collection.
-  ///
-  static void addGarbageObject(void *Object) {
-#ifndef NDEBUG
-    addGarbageObjectImpl(Object);
-#endif
-  }
-
-  /// removeGarbageObject - Remove a pointer from our internal representation of
-  /// our "garbage" objects.  This should be called when an object is added to
-  /// an "owning" collection.
-  ///
-  static void removeGarbageObject(void *Object) {
-#ifndef NDEBUG
-    removeGarbageObjectImpl(Object);
-#endif
-  }
-
-  /// checkForGarbage - Traverse the internal representation of garbage
-  /// pointers.  If there are any pointers that have been add'ed, but not
-  /// remove'd, big obnoxious warnings about memory leaks are issued.
-  ///
-  /// The specified message will be printed indicating when the check was
-  /// performed.
-  ///
-  static void checkForGarbage(const std::string &Message) {
-#ifndef NDEBUG
-    checkForGarbageImpl(Message);
-#endif
-  }
-
-  /// Overload the normal methods to work better with Value*'s because they are
-  /// by far the most common in LLVM.  This does not affect the actual
-  /// functioning of this class, it just makes the warning messages nicer.
-  ///
-  static void addGarbageObject(const Value *Object) {
-#ifndef NDEBUG
-    addGarbageObjectImpl(Object);
-#endif
-  }
-  static void removeGarbageObject(const Value *Object) {
-#ifndef NDEBUG
-    removeGarbageObjectImpl(Object);
-#endif
-  }
-
-private:
-  // If we are debugging, the actual implementations will be called...
-  static void addGarbageObjectImpl(const Value *Object);
-  static void removeGarbageObjectImpl(const Value *Object);
-  static void addGarbageObjectImpl(void *Object);
-  static void removeGarbageObjectImpl(void *Object);
-  static void checkForGarbageImpl(const std::string &Message);
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/ManagedStatic.h b/support/include/llvm/Support/ManagedStatic.h
deleted file mode 100644
index e65fb1b..0000000
--- a/support/include/llvm/Support/ManagedStatic.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//===-- llvm/Support/ManagedStatic.h - Static Global wrapper ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the ManagedStatic class and the llvm_shutdown() function.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MANAGED_STATIC_H
-#define LLVM_SUPPORT_MANAGED_STATIC_H
-
-namespace llvm {
-
-/// object_deleter - Helper method for ManagedStatic.
-///
-template<class C>
-void object_deleter(void *Ptr) {
-  delete (C*)Ptr;
-}
-
-/// ManagedStaticBase - Common base class for ManagedStatic instances.
-class ManagedStaticBase {
-protected:
-  // This should only be used as a static variable, which guarantees that this
-  // will be zero initialized.
-  mutable void *Ptr;
-  mutable void (*DeleterFn)(void*);
-  mutable const ManagedStaticBase *Next;
-  
-  void RegisterManagedStatic(void *ObjPtr, void (*deleter)(void*)) const;
-public:
-  /// isConstructed - Return true if this object has not been created yet.  
-  bool isConstructed() const { return Ptr != 0; }
-  
-  void destroy() const;
-};
-
-/// ManagedStatic - This transparently changes the behavior of global statics to
-/// be lazily constructed on demand (good for reducing startup times of dynamic
-/// libraries that link in LLVM components) and for making destruction be
-/// explicit through the llvm_shutdown() function call.
-///
-template<class C>
-class ManagedStatic : public ManagedStaticBase {
-public:
-  
-  // Accessors.
-  C &operator*() {
-    if (!Ptr) LazyInit();
-    return *static_cast<C*>(Ptr);
-  }
-  C *operator->() {
-    if (!Ptr) LazyInit();
-    return static_cast<C*>(Ptr);
-  }
-  const C &operator*() const {
-    if (!Ptr) LazyInit();
-    return *static_cast<C*>(Ptr);
-  }
-  const C *operator->() const {
-    if (!Ptr) LazyInit();
-    return static_cast<C*>(Ptr);
-  }
-  
-public:
-  void LazyInit() const {
-    RegisterManagedStatic(new C(), object_deleter<C>);
-  }
-};
-
-template<void (*CleanupFn)(void*)>
-class ManagedCleanup : public ManagedStaticBase {
-public:
-  void Register() { RegisterManagedStatic(0, CleanupFn); }
-};
-
-
-/// llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
-void llvm_shutdown();
-
-  
-/// llvm_shutdown_obj - This is a simple helper class that calls
-/// llvm_shutdown() when it is destroyed.
-struct llvm_shutdown_obj {
-  llvm_shutdown_obj() {}
-  ~llvm_shutdown_obj() { llvm_shutdown(); }
-};
-  
-}
-
-#endif
diff --git a/support/include/llvm/Support/Mangler.h b/support/include/llvm/Support/Mangler.h
deleted file mode 100644
index b6f9839..0000000
--- a/support/include/llvm/Support/Mangler.h
+++ /dev/null
@@ -1,118 +0,0 @@
-//===-- llvm/Support/Mangler.h - Self-contained name mangler ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Unified name mangler for various backends.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MANGLER_H
-#define LLVM_SUPPORT_MANGLER_H
-
-#include "llvm/System/IncludeFile.h"
-#include <map>
-#include <set>
-#include <string>
-
-namespace llvm {
-class Type;
-class Module;
-class Value;
-class GlobalValue;
-
-class Mangler {
-  /// Prefix - This string is added to each symbol that is emitted, unless the
-  /// symbol is marked as not needing this prefix.
-  const char *Prefix;
-  
-  /// UseQuotes - If this is set, the target accepts global names in quotes, 
-  /// e.g. "foo bar" is a legal name.  This syntax is used instead of escaping
-  /// the space character.  By default, this is false.
-  bool UseQuotes;
-  
-  /// PreserveAsmNames - If this is set, the asm escape character is not removed
-  /// from names with 'asm' specifiers. 
-  bool PreserveAsmNames;
-  
-  /// Memo - This is used to remember the name that we assign a value.
-  ///
-  std::map<const Value*, std::string> Memo;
-
-  /// Count - This simple counter is used to unique value names.
-  ///
-  unsigned Count;
-  
-  /// TypeMap - If the client wants us to unique types, this keeps track of the
-  /// current assignments and TypeCounter keeps track of the next id to assign.
-  std::map<const Type*, unsigned> TypeMap;
-  unsigned TypeCounter;
-
-  /// This keeps track of which global values have had their names
-  /// mangled in the current module.
-  ///
-  std::set<const GlobalValue*> MangledGlobals;
-  
-  /// AcceptableChars - This bitfield contains a one for each character that is
-  /// allowed to be part of an unmangled name.
-  unsigned AcceptableChars[256/32];
-public:
-
-  // Mangler ctor - if a prefix is specified, it will be prepended onto all
-  // symbols.
-  Mangler(Module &M, const char *Prefix = "");
-
-  /// setUseQuotes - If UseQuotes is set to true, this target accepts quoted
-  /// strings for assembler labels.
-  void setUseQuotes(bool Val) { UseQuotes = Val; }
-  
-  /// setPreserveAsmNames - If the mangler should not strip off the asm name
-  /// identifier (\001), this should be set.
-  void setPreserveAsmNames(bool Val) { PreserveAsmNames = Val; }
-  
-  /// Acceptable Characters - This allows the target to specify which characters
-  /// are acceptable to the assembler without being mangled.  By default we
-  /// allow letters, numbers, '_', '$', and '.', which is what GAS accepts.
-  void markCharAcceptable(unsigned char X) {
-    AcceptableChars[X/32] |= 1 << (X&31);
-  }
-  void markCharUnacceptable(unsigned char X) {
-    AcceptableChars[X/32] &= ~(1 << (X&31));
-  }
-  bool isCharAcceptable(unsigned char X) const {
-    return (AcceptableChars[X/32] & (1 << (X&31))) != 0;
-  }
-  
-  /// getTypeID - Return a unique ID for the specified LLVM type.
-  ///
-  unsigned getTypeID(const Type *Ty);
-
-  /// getValueName - Returns the mangled name of V, an LLVM Value,
-  /// in the current module.
-  ///
-  std::string getValueName(const GlobalValue *V);
-  std::string getValueName(const Value *V);
-
-  /// makeNameProper - We don't want identifier names with ., space, or
-  /// - in them, so we mangle these characters into the strings "d_",
-  /// "s_", and "D_", respectively. This is a very simple mangling that
-  /// doesn't guarantee unique names for values. getValueName already
-  /// does this for you, so there's no point calling it on the result
-  /// from getValueName.
-  ///
-  std::string makeNameProper(const std::string &x, const char *Prefix = "");
-  
-private:
-  void InsertName(GlobalValue *GV, std::map<std::string, GlobalValue*> &Names);
-};
-
-} // End llvm namespace
-
-// Force the Mangler.cpp file to be linked when this header is #included
-FORCE_DEFINING_FILE_TO_BE_LINKED(Mangler)
-
-#endif // LLVM_SUPPORT_MANGLER_H
diff --git a/support/include/llvm/Support/MathExtras.h b/support/include/llvm/Support/MathExtras.h
deleted file mode 100644
index 88a1103..0000000
--- a/support/include/llvm/Support/MathExtras.h
+++ /dev/null
@@ -1,363 +0,0 @@
-//===-- llvm/Support/MathExtras.h - Useful math functions -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains some functions that are useful for math stuff.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MATHEXTRAS_H
-#define LLVM_SUPPORT_MATHEXTRAS_H
-
-#include "llvm/Support/DataTypes.h"
-
-namespace llvm {
-
-// NOTE: The following support functions use the _32/_64 extensions instead of  
-// type overloading so that signed and unsigned integers can be used without
-// ambiguity.
-
-/// Hi_32 - This function returns the high 32 bits of a 64 bit value.
-inline uint32_t Hi_32(uint64_t Value) {
-  return static_cast<uint32_t>(Value >> 32);
-}
-
-/// Lo_32 - This function returns the low 32 bits of a 64 bit value.
-inline uint32_t Lo_32(uint64_t Value) {
-  return static_cast<uint32_t>(Value);
-}
-
-/// is?Type - these functions produce optimal testing for integer data types.
-inline bool isInt8  (int64_t Value) { 
-  return static_cast<int8_t>(Value) == Value; 
-}
-inline bool isUInt8 (int64_t Value) { 
-  return static_cast<uint8_t>(Value) == Value; 
-}
-inline bool isInt16 (int64_t Value) { 
-  return static_cast<int16_t>(Value) == Value; 
-}
-inline bool isUInt16(int64_t Value) { 
-  return static_cast<uint16_t>(Value) == Value; 
-}
-inline bool isInt32 (int64_t Value) { 
-  return static_cast<int32_t>(Value) == Value; 
-}
-inline bool isUInt32(int64_t Value) { 
-  return static_cast<uint32_t>(Value) == Value; 
-}
-
-/// isMask_32 - This function returns true if the argument is a sequence of ones
-/// starting at the least significant bit with the remainder zero (32 bit
-/// version).   Ex. isMask_32(0x0000FFFFU) == true.
-inline bool isMask_32(uint32_t Value) {
-  return Value && ((Value + 1) & Value) == 0;
-}
-
-/// isMask_64 - This function returns true if the argument is a sequence of ones
-/// starting at the least significant bit with the remainder zero (64 bit
-/// version).
-inline bool isMask_64(uint64_t Value) {
-  return Value && ((Value + 1) & Value) == 0;
-}
-
-/// isShiftedMask_32 - This function returns true if the argument contains a  
-/// sequence of ones with the remainder zero (32 bit version.)
-/// Ex. isShiftedMask_32(0x0000FF00U) == true.
-inline bool isShiftedMask_32(uint32_t Value) {
-  return isMask_32((Value - 1) | Value);
-}
-
-/// isShiftedMask_64 - This function returns true if the argument contains a  
-/// sequence of ones with the remainder zero (64 bit version.)
-inline bool isShiftedMask_64(uint64_t Value) {
-  return isMask_64((Value - 1) | Value);
-}
-
-/// isPowerOf2_32 - This function returns true if the argument is a power of 
-/// two > 0. Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)
-inline bool isPowerOf2_32(uint32_t Value) {
-  return Value && !(Value & (Value - 1));
-}
-
-/// isPowerOf2_64 - This function returns true if the argument is a power of two
-/// > 0 (64 bit edition.)
-inline bool isPowerOf2_64(uint64_t Value) {
-  return Value && !(Value & (Value - int64_t(1L)));
-}
-
-/// ByteSwap_16 - This function returns a byte-swapped representation of the
-/// 16-bit argument, Value.
-inline uint16_t ByteSwap_16(uint16_t Value) {
-#if defined(_MSC_VER) && !defined(_DEBUG)
-  // The DLL version of the runtime lacks these functions (bug!?), but in a
-  // release build they're replaced with BSWAP instructions anyway.
-  return _byteswap_ushort(Value);
-#else
-  uint16_t Hi = Value << 8;
-  uint16_t Lo = Value >> 8;
-  return Hi | Lo;
-#endif
-}
-
-/// ByteSwap_32 - This function returns a byte-swapped representation of the
-/// 32-bit argument, Value.
-inline uint32_t ByteSwap_32(uint32_t Value) {
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
-  return __builtin_bswap32(Value);
-#elif defined(_MSC_VER) && !defined(_DEBUG)
-  return _byteswap_ulong(Value);
-#else
-  uint32_t Byte0 = Value & 0x000000FF;
-  uint32_t Byte1 = Value & 0x0000FF00;
-  uint32_t Byte2 = Value & 0x00FF0000;
-  uint32_t Byte3 = Value & 0xFF000000;
-  return (Byte0 << 24) | (Byte1 << 8) | (Byte2 >> 8) | (Byte3 >> 24);
-#endif
-}
-
-/// ByteSwap_64 - This function returns a byte-swapped representation of the
-/// 64-bit argument, Value.
-inline uint64_t ByteSwap_64(uint64_t Value) {
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
-  return __builtin_bswap64(Value);
-#elif defined(_MSC_VER) && !defined(_DEBUG)
-  return _byteswap_uint64(Value);
-#else
-  uint64_t Hi = ByteSwap_32(uint32_t(Value));
-  uint32_t Lo = ByteSwap_32(uint32_t(Value >> 32));
-  return (Hi << 32) | Lo;
-#endif
-}
-
-/// CountLeadingZeros_32 - this function performs the platform optimal form of
-/// counting the number of zeros from the most significant bit to the first one
-/// bit.  Ex. CountLeadingZeros_32(0x00F000FF) == 8.
-/// Returns 32 if the word is zero.
-inline unsigned CountLeadingZeros_32(uint32_t Value) {
-  unsigned Count; // result
-#if __GNUC__ >= 4
-  // PowerPC is defined for __builtin_clz(0)
-#if !defined(__ppc__) && !defined(__ppc64__)
-  if (!Value) return 32;
-#endif
-  Count = __builtin_clz(Value);
-#else
-  if (!Value) return 32;
-  Count = 0;
-  // bisecton method for count leading zeros
-  for (unsigned Shift = 32 >> 1; Shift; Shift >>= 1) {
-    uint32_t Tmp = Value >> Shift;
-    if (Tmp) {
-      Value = Tmp;
-    } else {
-      Count |= Shift;
-    }
-  }
-#endif
-  return Count;
-}
-
-/// CountLeadingZeros_64 - This function performs the platform optimal form
-/// of counting the number of zeros from the most significant bit to the first 
-/// one bit (64 bit edition.)
-/// Returns 64 if the word is zero.
-inline unsigned CountLeadingZeros_64(uint64_t Value) {
-  unsigned Count; // result
-#if __GNUC__ >= 4
-  // PowerPC is defined for __builtin_clzll(0)
-#if !defined(__ppc__) && !defined(__ppc64__)
-  if (!Value) return 64;
-#endif
-  Count = __builtin_clzll(Value);
-#else
-  if (sizeof(long) == sizeof(int64_t)) {
-    if (!Value) return 64;
-    Count = 0;
-    // bisecton method for count leading zeros
-    for (unsigned Shift = 64 >> 1; Shift; Shift >>= 1) {
-      uint64_t Tmp = Value >> Shift;
-      if (Tmp) {
-        Value = Tmp;
-      } else {
-        Count |= Shift;
-      }
-    }
-  } else {
-    // get hi portion
-    uint32_t Hi = Hi_32(Value);
-
-    // if some bits in hi portion
-    if (Hi) {
-        // leading zeros in hi portion plus all bits in lo portion
-        Count = CountLeadingZeros_32(Hi);
-    } else {
-        // get lo portion
-        uint32_t Lo = Lo_32(Value);
-        // same as 32 bit value
-        Count = CountLeadingZeros_32(Lo)+32;
-    }
-  }
-#endif
-  return Count;
-}
-
-/// CountTrailingZeros_32 - this function performs the platform optimal form of
-/// counting the number of zeros from the least significant bit to the first one
-/// bit.  Ex. CountTrailingZeros_32(0xFF00FF00) == 8.
-/// Returns 32 if the word is zero.
-inline unsigned CountTrailingZeros_32(uint32_t Value) {
-#if __GNUC__ >= 4
-  return Value ? __builtin_ctz(Value) : 32;
-#else
-  static const unsigned Mod37BitPosition[] = {
-    32, 0, 1, 26, 2, 23, 27, 0, 3, 16, 24, 30, 28, 11, 0, 13,
-    4, 7, 17, 0, 25, 22, 31, 15, 29, 10, 12, 6, 0, 21, 14, 9,
-    5, 20, 8, 19, 18
-  };
-  return Mod37BitPosition[(-Value & Value) % 37];
-#endif
-}
-
-/// CountTrailingZeros_64 - This function performs the platform optimal form
-/// of counting the number of zeros from the least significant bit to the first 
-/// one bit (64 bit edition.)
-/// Returns 64 if the word is zero.
-inline unsigned CountTrailingZeros_64(uint64_t Value) {
-#if __GNUC__ >= 4
-  return Value ? __builtin_ctzll(Value) : 64;
-#else
-  static const unsigned Mod67Position[] = {
-    64, 0, 1, 39, 2, 15, 40, 23, 3, 12, 16, 59, 41, 19, 24, 54,
-    4, 64, 13, 10, 17, 62, 60, 28, 42, 30, 20, 51, 25, 44, 55,
-    47, 5, 32, 65, 38, 14, 22, 11, 58, 18, 53, 63, 9, 61, 27,
-    29, 50, 43, 46, 31, 37, 21, 57, 52, 8, 26, 49, 45, 36, 56,
-    7, 48, 35, 6, 34, 33, 0
-  };
-  return Mod67Position[(-Value & Value) % 67];
-#endif
-}
-
-/// CountPopulation_32 - this function counts the number of set bits in a value.
-/// Ex. CountPopulation(0xF000F000) = 8
-/// Returns 0 if the word is zero.
-inline unsigned CountPopulation_32(uint32_t Value) {
-#if __GNUC__ >= 4
-  return __builtin_popcount(Value);
-#else
-  uint32_t v = Value - ((Value >> 1) & 0x55555555);
-  v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
-  return ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;
-#endif
-}
-
-/// CountPopulation_64 - this function counts the number of set bits in a value,
-/// (64 bit edition.)
-inline unsigned CountPopulation_64(uint64_t Value) {
-#if __GNUC__ >= 4
-  return __builtin_popcountll(Value);
-#else
-  uint64_t v = Value - ((Value >> 1) & 0x5555555555555555ULL);
-  v = (v & 0x3333333333333333ULL) + ((v >> 2) & 0x3333333333333333ULL);
-  v = (v + (v >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
-  return unsigned((uint64_t)(v * 0x0101010101010101ULL) >> 56);
-#endif
-}
-
-/// Log2_32 - This function returns the floor log base 2 of the specified value, 
-/// -1 if the value is zero. (32 bit edition.)
-/// Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2
-inline unsigned Log2_32(uint32_t Value) {
-  return 31 - CountLeadingZeros_32(Value);
-}
-
-/// Log2_64 - This function returns the floor log base 2 of the specified value, 
-/// -1 if the value is zero. (64 bit edition.)
-inline unsigned Log2_64(uint64_t Value) {
-  return 63 - CountLeadingZeros_64(Value);
-}
-
-/// Log2_32_Ceil - This function returns the ceil log base 2 of the specified
-/// value, 32 if the value is zero. (32 bit edition).
-/// Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3
-inline unsigned Log2_32_Ceil(uint32_t Value) {
-  return 32-CountLeadingZeros_32(Value-1);
-}
-
-/// Log2_64 - This function returns the ceil log base 2 of the specified value, 
-/// 64 if the value is zero. (64 bit edition.)
-inline unsigned Log2_64_Ceil(uint64_t Value) {
-  return 64-CountLeadingZeros_64(Value-1);
-}
-
-/// GreatestCommonDivisor64 - Return the greatest common divisor of the two
-/// values using Euclid's algorithm.
-inline uint64_t GreatestCommonDivisor64(uint64_t A, uint64_t B) {
-  while (B) {
-    uint64_t T = B;
-    B = A % B;
-    A = T;
-  }
-  return A;
-}
-  
-/// BitsToDouble - This function takes a 64-bit integer and returns the bit
-/// equivalent double.
-inline double BitsToDouble(uint64_t Bits) {
-  union {
-    uint64_t L;
-    double D;
-  } T;
-  T.L = Bits;
-  return T.D;
-}
-
-/// BitsToFloat - This function takes a 32-bit integer and returns the bit
-/// equivalent float.
-inline float BitsToFloat(uint32_t Bits) {
-  union {
-    uint32_t I;
-    float F;
-  } T;
-  T.I = Bits;
-  return T.F;
-}
-
-/// DoubleToBits - This function takes a double and returns the bit
-/// equivalent 64-bit integer.
-inline uint64_t DoubleToBits(double Double) {
-  union {
-    uint64_t L;
-    double D;
-  } T;
-  T.D = Double;
-  return T.L;
-}
-
-/// FloatToBits - This function takes a float and returns the bit
-/// equivalent 32-bit integer.
-inline uint32_t FloatToBits(float Float) {
-  union {
-    uint32_t I;
-    float F;
-  } T;
-  T.F = Float;
-  return T.I;
-}
-
-/// Platform-independent wrappers for the C99 isnan() function.
-int IsNAN(float f);
-int IsNAN(double d);
-
-/// Platform-independent wrappers for the C99 isinf() function.
-int IsInf(float f);
-int IsInf(double d);
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/MemoryBuffer.h b/support/include/llvm/Support/MemoryBuffer.h
deleted file mode 100644
index d7e0317..0000000
--- a/support/include/llvm/Support/MemoryBuffer.h
+++ /dev/null
@@ -1,106 +0,0 @@
-//===--- MemoryBuffer.h - Memory Buffer Interface ---------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This file defines the MemoryBuffer interface.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MEMORYBUFFER_H
-#define LLVM_SUPPORT_MEMORYBUFFER_H
-
-#include "llvm/Support/DataTypes.h"
-#include <string>
-
-namespace llvm {
-
-/// MemoryBuffer - This interface provides simple read-only access to a block
-/// of memory, and provides simple methods for reading files and standard input
-/// into a memory buffer.  In addition to basic access to the characters in the
-/// file, this interface guarantees you can read one character past the end of
-/// the file, and that this character will read as '\0'.
-class MemoryBuffer {
-  const char *BufferStart; // Start of the buffer.
-  const char *BufferEnd;   // End of the buffer.
-
-  /// MustDeleteBuffer - True if we allocated this buffer.  If so, the
-  /// destructor must know the delete[] it.
-  bool MustDeleteBuffer;
-protected:
-  MemoryBuffer() : MustDeleteBuffer(false) {}
-  void init(const char *BufStart, const char *BufEnd);
-  void initCopyOf(const char *BufStart, const char *BufEnd);
-public:
-  virtual ~MemoryBuffer();
-  
-  const char *getBufferStart() const { return BufferStart; }
-  const char *getBufferEnd() const   { return BufferEnd; }
-  unsigned getBufferSize() const { return BufferEnd-BufferStart; }
-  
-  /// getBufferIdentifier - Return an identifier for this buffer, typically the
-  /// filename it was read from.
-  virtual const char *getBufferIdentifier() const {
-    return "Unknown buffer";
-  }
-
-  /// getFile - Open the specified file as a MemoryBuffer, returning a new
-  /// MemoryBuffer if successful, otherwise returning null.  If FileSize is
-  /// specified, this means that the client knows that the file exists and that
-  /// it has the specified size.
-  static MemoryBuffer *getFile(const char *FilenameStart, unsigned FnSize,
-                               std::string *ErrStr = 0,
-                               int64_t FileSize = -1);
-
-  /// getMemBuffer - Open the specified memory range as a MemoryBuffer.  Note
-  /// that EndPtr[0] must be a null byte and be accessible!
-  static MemoryBuffer *getMemBuffer(const char *StartPtr, const char *EndPtr,
-                                    const char *BufferName = "");
-  
-  /// getNewMemBuffer - Allocate a new MemoryBuffer of the specified size that
-  /// is completely initialized to zeros.  Note that the caller should
-  /// initialize the memory allocated by this method.  The memory is owned by
-  /// the MemoryBuffer object.
-  static MemoryBuffer *getNewMemBuffer(unsigned Size,
-                                       const char *BufferName = "");
-  
-  /// getNewUninitMemBuffer - Allocate a new MemoryBuffer of the specified size
-  /// that is not initialized.  Note that the caller should initialize the
-  /// memory allocated by this method.  The memory is owned by the MemoryBuffer
-  /// object.
-  static MemoryBuffer *getNewUninitMemBuffer(unsigned Size,
-                                             const char *BufferName = "");
-  
-  /// getSTDIN - Read all of stdin into a file buffer, and return it.  This
-  /// fails if stdin is empty.
-  static MemoryBuffer *getSTDIN();
-  
-  
-  /// getFileOrSTDIN - Open the specified file as a MemoryBuffer, or open stdin
-  /// if the Filename is "-".  If an error occurs, this returns null and fills
-  /// in *ErrStr with a reason.
-  static MemoryBuffer *getFileOrSTDIN(const char *FilenameStart,unsigned FnSize,
-                                      std::string *ErrStr = 0,
-                                      int64_t FileSize = -1) {
-    if (FnSize == 1 && FilenameStart[0] == '-')
-      return getSTDIN();
-    return getFile(FilenameStart, FnSize, ErrStr, FileSize);
-  }
-  
-  /// getFileOrSTDIN - Open the specified file as a MemoryBuffer, or open stdin
-  /// if the Filename is "-".  If an error occurs, this returns null and fills
-  /// in *ErrStr with a reason.
-  static MemoryBuffer *getFileOrSTDIN(const std::string &FN,
-                                      std::string *ErrStr = 0,
-                                      int64_t FileSize = -1) {
-    return getFileOrSTDIN(&FN[0], FN.size(), ErrStr, FileSize);
-  }
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/support/include/llvm/Support/MutexGuard.h b/support/include/llvm/Support/MutexGuard.h
deleted file mode 100644
index 21c756d..0000000
--- a/support/include/llvm/Support/MutexGuard.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- Support/MutexGuard.h - Acquire/Release Mutex In Scope ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a guard for a block of code that ensures a Mutex is locked
-// upon construction and released upon destruction.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_MUTEXGUARD_H
-#define LLVM_SUPPORT_MUTEXGUARD_H
-
-#include <llvm/System/Mutex.h>
-
-namespace llvm {
-  /// Instances of this class acquire a given Mutex Lock when constructed and
-  /// hold that lock until destruction. The intention is to instantiate one of
-  /// these on the stack at the top of some scope to be assured that C++
-  /// destruction of the object will always release the Mutex and thus avoid
-  /// a host of nasty multi-threading problems in the face of exceptions, etc.
-  /// @brief Guard a section of code with a Mutex.
-  class MutexGuard {
-    sys::Mutex &M;
-    MutexGuard(const MutexGuard &);    // DO NOT IMPLEMENT
-    void operator=(const MutexGuard &); // DO NOT IMPLEMENT
-  public:
-    MutexGuard(sys::Mutex &m) : M(m) { M.acquire(); }
-    ~MutexGuard() { M.release(); }
-    /// holds - Returns true if this locker instance holds the specified lock.
-    /// This is mostly used in assertions to validate that the correct mutex
-    /// is held.
-    bool holds(const sys::Mutex& lock) const { return &M == &lock; }
-  };
-}
-
-#endif // LLVM_SUPPORT_MUTEXGUARD_H
diff --git a/support/include/llvm/Support/OutputBuffer.h b/support/include/llvm/Support/OutputBuffer.h
deleted file mode 100644
index 9c6456a..0000000
--- a/support/include/llvm/Support/OutputBuffer.h
+++ /dev/null
@@ -1,152 +0,0 @@
-//=== OutputBuffer.h - Output Buffer ----------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Bill Wendling and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Methods to output values to a data buffer.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_OUTPUTBUFFER_H
-#define LLVM_SUPPORT_OUTPUTBUFFER_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
-  
-  class OutputBuffer {
-    /// Output buffer.
-    std::vector<unsigned char> &Output;
-
-    /// is64Bit/isLittleEndian - This information is inferred from the target
-    /// machine directly, indicating what header values and flags to set.
-    bool is64Bit, isLittleEndian;
-  public:
-    OutputBuffer(std::vector<unsigned char> &Out,
-                 bool is64bit, bool le)
-      : Output(Out), is64Bit(is64bit), isLittleEndian(le) {}
-
-    // align - Emit padding into the file until the current output position is
-    // aligned to the specified power of two boundary.
-    void align(unsigned Boundary) {
-      assert(Boundary && (Boundary & (Boundary - 1)) == 0 &&
-             "Must align to 2^k boundary");
-      size_t Size = Output.size();
-      
-      if (Size & (Boundary - 1)) {
-        // Add padding to get alignment to the correct place.
-        size_t Pad = Boundary - (Size & (Boundary - 1));
-        Output.resize(Size + Pad);
-      }
-    }
-
-    //===------------------------------------------------------------------===//
-    // Out Functions - Output the specified value to the data buffer.
-
-    void outbyte(unsigned char X) {
-      Output.push_back(X);
-    }
-    void outhalf(unsigned short X) {
-      if (isLittleEndian) {
-        Output.push_back(X & 255);
-        Output.push_back(X >> 8);
-      } else {
-        Output.push_back(X >> 8);
-        Output.push_back(X & 255);
-      }
-    }
-    void outword(unsigned X) {
-      if (isLittleEndian) {
-        Output.push_back((X >>  0) & 255);
-        Output.push_back((X >>  8) & 255);
-        Output.push_back((X >> 16) & 255);
-        Output.push_back((X >> 24) & 255);
-      } else {
-        Output.push_back((X >> 24) & 255);
-        Output.push_back((X >> 16) & 255);
-        Output.push_back((X >>  8) & 255);
-        Output.push_back((X >>  0) & 255);
-      }
-    }
-    void outxword(uint64_t X) {
-      if (isLittleEndian) {
-        Output.push_back(unsigned(X >>  0) & 255);
-        Output.push_back(unsigned(X >>  8) & 255);
-        Output.push_back(unsigned(X >> 16) & 255);
-        Output.push_back(unsigned(X >> 24) & 255);
-        Output.push_back(unsigned(X >> 32) & 255);
-        Output.push_back(unsigned(X >> 40) & 255);
-        Output.push_back(unsigned(X >> 48) & 255);
-        Output.push_back(unsigned(X >> 56) & 255);
-      } else {
-        Output.push_back(unsigned(X >> 56) & 255);
-        Output.push_back(unsigned(X >> 48) & 255);
-        Output.push_back(unsigned(X >> 40) & 255);
-        Output.push_back(unsigned(X >> 32) & 255);
-        Output.push_back(unsigned(X >> 24) & 255);
-        Output.push_back(unsigned(X >> 16) & 255);
-        Output.push_back(unsigned(X >>  8) & 255);
-        Output.push_back(unsigned(X >>  0) & 255);
-      }
-    }
-    void outaddr32(unsigned X) {
-      outword(X);
-    }
-    void outaddr64(uint64_t X) {
-      outxword(X);
-    }
-    void outaddr(uint64_t X) {
-      if (!is64Bit)
-        outword((unsigned)X);
-      else
-        outxword(X);
-    }
-    void outstring(const std::string &S, unsigned Length) {
-      unsigned len_to_copy = S.length() < Length ? S.length() : Length;
-      unsigned len_to_fill = S.length() < Length ? Length - S.length() : 0;
-      
-      for (unsigned i = 0; i < len_to_copy; ++i)
-        outbyte(S[i]);
-      
-      for (unsigned i = 0; i < len_to_fill; ++i)
-        outbyte(0);
-    }
-
-    //===------------------------------------------------------------------===//
-    // Fix Functions - Replace an existing entry at an offset.
-
-    void fixhalf(unsigned short X, unsigned Offset) {
-      unsigned char *P = &Output[Offset];
-      P[0] = (X >> (isLittleEndian ?  0 : 8)) & 255;
-      P[1] = (X >> (isLittleEndian ?  8 : 0)) & 255;
-    }
-    void fixword(unsigned X, unsigned Offset) {
-      unsigned char *P = &Output[Offset];
-      P[0] = (X >> (isLittleEndian ?  0 : 24)) & 255;
-      P[1] = (X >> (isLittleEndian ?  8 : 16)) & 255;
-      P[2] = (X >> (isLittleEndian ? 16 :  8)) & 255;
-      P[3] = (X >> (isLittleEndian ? 24 :  0)) & 255;
-    }
-    void fixaddr(uint64_t X, unsigned Offset) {
-      if (!is64Bit)
-        fixword((unsigned)X, Offset);
-      else
-        assert(0 && "Emission of 64-bit data not implemented yet!");
-    }
-
-    unsigned char &operator[](unsigned Index) {
-      return Output[Index];
-    }
-    const unsigned char &operator[](unsigned Index) const {
-      return Output[Index];
-    }
-  };
-  
-} // end llvm namespace
-
-#endif // LLVM_SUPPORT_OUTPUTBUFFER_H
diff --git a/support/include/llvm/Support/PassNameParser.h b/support/include/llvm/Support/PassNameParser.h
deleted file mode 100644
index e87e16a..0000000
--- a/support/include/llvm/Support/PassNameParser.h
+++ /dev/null
@@ -1,94 +0,0 @@
-//===- llvm/Support/PassNameParser.h ----------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file the PassNameParser and FilteredPassNameParser<> classes, which are
-// used to add command line arguments to a utility for all of the passes that
-// have been registered into the system.
-//
-// The PassNameParser class adds ALL passes linked into the system (that are
-// creatable) as command line arguments to the tool (when instantiated with the
-// appropriate command line option template).  The FilteredPassNameParser<>
-// template is used for the same purposes as PassNameParser, except that it only
-// includes passes that have a PassType that are compatible with the filter
-// (which is the template argument).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_PASS_NAME_PARSER_H
-#define LLVM_SUPPORT_PASS_NAME_PARSER_H
-
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Pass.h"
-#include <algorithm>
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-// PassNameParser class - Make use of the pass registration mechanism to
-// automatically add a command line argument to opt for each pass.
-//
-class PassNameParser : public PassRegistrationListener,
-                       public cl::parser<const PassInfo*> {
-  cl::Option *Opt;
-public:
-  PassNameParser() : Opt(0) {}
-
-  void initialize(cl::Option &O) {
-    Opt = &O;
-    cl::parser<const PassInfo*>::initialize(O);
-
-    // Add all of the passes to the map that got initialized before 'this' did.
-    enumeratePasses();
-  }
-
-  // ignorablePassImpl - Can be overriden in subclasses to refine the list of
-  // which passes we want to include.
-  //
-  virtual bool ignorablePassImpl(const PassInfo *P) const { return false; }
-
-  inline bool ignorablePass(const PassInfo *P) const {
-    // Ignore non-selectable and non-constructible passes!  Ignore
-    // non-optimizations.
-    return P->getPassArgument() == 0 || *P->getPassArgument() == 0 ||
-           P->getNormalCtor() == 0 || ignorablePassImpl(P);
-  }
-
-  // Implement the PassRegistrationListener callbacks used to populate our map
-  //
-  virtual void passRegistered(const PassInfo *P) {
-    if (ignorablePass(P) || !Opt) return;
-    if (findOption(P->getPassArgument()) != getNumOptions()) {
-      cerr << "Two passes with the same argument (-"
-           << P->getPassArgument() << ") attempted to be registered!\n";
-      abort();
-    }
-    addLiteralOption(P->getPassArgument(), P, P->getPassName());
-  }
-  virtual void passEnumerate(const PassInfo *P) { passRegistered(P); }
-
-  // ValLessThan - Provide a sorting comparator for Values elements...
-  typedef std::pair<const char*,
-                    std::pair<const PassInfo*, const char*> > ValType;
-  static bool ValLessThan(const ValType &VT1, const ValType &VT2) {
-    return std::string(VT1.first) < std::string(VT2.first);
-  }
-
-  // printOptionInfo - Print out information about this option.  Override the
-  // default implementation to sort the table before we print...
-  virtual void printOptionInfo(const cl::Option &O, unsigned GlobalWidth) const{
-    PassNameParser *PNP = const_cast<PassNameParser*>(this);
-    std::sort(PNP->Values.begin(), PNP->Values.end(), ValLessThan);
-    cl::parser<const PassInfo*>::printOptionInfo(O, GlobalWidth);
-  }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/PatternMatch.h b/support/include/llvm/Support/PatternMatch.h
deleted file mode 100644
index 6b295d6..0000000
--- a/support/include/llvm/Support/PatternMatch.h
+++ /dev/null
@@ -1,382 +0,0 @@
-//===-- llvm/Support/PatternMatch.h - Match on the LLVM IR ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides a simple and efficient mechanism for performing general
-// tree-based pattern matches on the LLVM IR.  The power of these routines is
-// that it allows you to write concise patterns that are expressive and easy to
-// understand.  The other major advantage of this is that it allows you to
-// trivially capture/bind elements in the pattern to variables.  For example,
-// you can do something like this:
-//
-//  Value *Exp = ...
-//  Value *X, *Y;  ConstantInt *C1, *C2;      // (X & C1) | (Y & C2)
-//  if (match(Exp, m_Or(m_And(m_Value(X), m_ConstantInt(C1)),
-//                      m_And(m_Value(Y), m_ConstantInt(C2))))) {
-//    ... Pattern is matched and variables are bound ...
-//  }
-//
-// This is primarily useful to things like the instruction combiner, but can
-// also be useful for static analysis tools or code generators.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_PATTERNMATCH_H
-#define LLVM_SUPPORT_PATTERNMATCH_H
-
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-
-namespace llvm {
-namespace PatternMatch {
-
-template<typename Val, typename Pattern>
-bool match(Val *V, const Pattern &P) {
-  return const_cast<Pattern&>(P).match(V);
-}
-
-template<typename Class>
-struct leaf_ty {
-  template<typename ITy>
-  bool match(ITy *V) { return isa<Class>(V); }
-};
-
-inline leaf_ty<Value> m_Value() { return leaf_ty<Value>(); }
-inline leaf_ty<ConstantInt> m_ConstantInt() { return leaf_ty<ConstantInt>(); }
-
-template<typename Class>
-struct bind_ty {
-  Class *&VR;
-  bind_ty(Class *&V) : VR(V) {}
-
-  template<typename ITy>
-  bool match(ITy *V) {
-    if (Class *CV = dyn_cast<Class>(V)) {
-      VR = CV;
-      return true;
-    }
-    return false;
-  }
-};
-
-inline bind_ty<Value> m_Value(Value *&V) { return V; }
-inline bind_ty<ConstantInt> m_ConstantInt(ConstantInt *&CI) { return CI; }
-
-//===----------------------------------------------------------------------===//
-// Matchers for specific binary operators.
-//
-
-template<typename LHS_t, typename RHS_t, 
-         unsigned Opcode, typename ConcreteTy = BinaryOperator>
-struct BinaryOp_match {
-  LHS_t L;
-  RHS_t R;
-
-  BinaryOp_match(const LHS_t &LHS, const RHS_t &RHS) : L(LHS), R(RHS) {}
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (V->getValueID() == Value::InstructionVal + Opcode) {
-      ConcreteTy *I = cast<ConcreteTy>(V);
-      return I->getOpcode() == Opcode && L.match(I->getOperand(0)) &&
-             R.match(I->getOperand(1));
-    }
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V))
-      return CE->getOpcode() == Opcode && L.match(CE->getOperand(0)) &&
-             R.match(CE->getOperand(1));
-    return false;
-  }
-};
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Add> m_Add(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Add>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Sub> m_Sub(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Sub>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Mul> m_Mul(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Mul>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::UDiv> m_UDiv(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::UDiv>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::SDiv> m_SDiv(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::SDiv>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::FDiv> m_FDiv(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::FDiv>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::URem> m_URem(const LHS &L,
-                                                          const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::URem>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::SRem> m_SRem(const LHS &L,
-                                                          const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::SRem>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::FRem> m_FRem(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::FRem>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::And> m_And(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::And>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Or> m_Or(const LHS &L,
-                                                      const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Or>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Xor> m_Xor(const LHS &L,
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Xor>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::Shl> m_Shl(const LHS &L, 
-                                                        const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::Shl>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::LShr> m_LShr(const LHS &L, 
-                                                          const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::LShr>(L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOp_match<LHS, RHS, Instruction::AShr> m_AShr(const LHS &L, 
-                                                          const RHS &R) {
-  return BinaryOp_match<LHS, RHS, Instruction::AShr>(L, R);
-}
-
-//===----------------------------------------------------------------------===//
-// Matchers for either AShr or LShr .. for convenience
-//
-template<typename LHS_t, typename RHS_t, typename ConcreteTy = BinaryOperator>
-struct Shr_match {
-  LHS_t L;
-  RHS_t R;
-
-  Shr_match(const LHS_t &LHS, const RHS_t &RHS) : L(LHS), R(RHS) {}
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (V->getValueID() == Value::InstructionVal + Instruction::LShr ||
-        V->getValueID() == Value::InstructionVal + Instruction::AShr) {
-      ConcreteTy *I = cast<ConcreteTy>(V);
-      return (I->getOpcode() == Instruction::AShr ||
-              I->getOpcode() == Instruction::LShr) &&
-             L.match(I->getOperand(0)) &&
-             R.match(I->getOperand(1));
-    }
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V))
-      return (CE->getOpcode() == Instruction::LShr ||
-              CE->getOpcode() == Instruction::AShr) &&
-             L.match(CE->getOperand(0)) &&
-             R.match(CE->getOperand(1));
-    return false;
-  }
-};
-
-template<typename LHS, typename RHS>
-inline Shr_match<LHS, RHS> m_Shr(const LHS &L, const RHS &R) {
-  return Shr_match<LHS, RHS>(L, R);
-}
-
-//===----------------------------------------------------------------------===//
-// Matchers for binary classes
-//
-
-template<typename LHS_t, typename RHS_t, typename Class, typename OpcType>
-struct BinaryOpClass_match {
-  OpcType *Opcode;
-  LHS_t L;
-  RHS_t R;
-
-  BinaryOpClass_match(OpcType &Op, const LHS_t &LHS,
-                      const RHS_t &RHS)
-    : Opcode(&Op), L(LHS), R(RHS) {}
-  BinaryOpClass_match(const LHS_t &LHS, const RHS_t &RHS)
-    : Opcode(0), L(LHS), R(RHS) {}
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (Class *I = dyn_cast<Class>(V))
-      if (L.match(I->getOperand(0)) && R.match(I->getOperand(1))) {
-        if (Opcode)
-          *Opcode = I->getOpcode();
-        return true;
-      }
-#if 0  // Doesn't handle constantexprs yet!
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V))
-      return CE->getOpcode() == Opcode && L.match(CE->getOperand(0)) &&
-             R.match(CE->getOperand(1));
-#endif
-    return false;
-  }
-};
-
-template<typename LHS, typename RHS>
-inline BinaryOpClass_match<LHS, RHS, BinaryOperator, Instruction::BinaryOps>
-m_Shift(Instruction::BinaryOps &Op, const LHS &L, const RHS &R) {
-  return BinaryOpClass_match<LHS, RHS, 
-                             BinaryOperator, Instruction::BinaryOps>(Op, L, R);
-}
-
-template<typename LHS, typename RHS>
-inline BinaryOpClass_match<LHS, RHS, BinaryOperator, Instruction::BinaryOps>
-m_Shift(const LHS &L, const RHS &R) {
-  return BinaryOpClass_match<LHS, RHS, 
-                             BinaryOperator, Instruction::BinaryOps>(L, R);
-}
-
-//===----------------------------------------------------------------------===//
-// Matchers for CmpInst classes
-//
-
-template<typename LHS_t, typename RHS_t, typename Class, typename PredicateTy>
-struct CmpClass_match {
-  PredicateTy &Predicate;
-  LHS_t L;
-  RHS_t R;
-
-  CmpClass_match(PredicateTy &Pred, const LHS_t &LHS,
-                 const RHS_t &RHS)
-    : Predicate(Pred), L(LHS), R(RHS) {}
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (Class *I = dyn_cast<Class>(V))
-      if (L.match(I->getOperand(0)) && R.match(I->getOperand(1))) {
-        Predicate = I->getPredicate();
-        return true;
-      }
-    return false;
-  }
-};
-
-template<typename LHS, typename RHS>
-inline CmpClass_match<LHS, RHS, ICmpInst, ICmpInst::Predicate>
-m_ICmp(ICmpInst::Predicate &Pred, const LHS &L, const RHS &R) {
-  return CmpClass_match<LHS, RHS,
-                        ICmpInst, ICmpInst::Predicate>(Pred, L, R);
-}
-
-template<typename LHS, typename RHS>
-inline CmpClass_match<LHS, RHS, FCmpInst, FCmpInst::Predicate>
-m_FCmp(FCmpInst::Predicate &Pred, const LHS &L, const RHS &R) {
-  return CmpClass_match<LHS, RHS,
-                        FCmpInst, FCmpInst::Predicate>(Pred, L, R);
-}
-
-//===----------------------------------------------------------------------===//
-// Matchers for unary operators
-//
-
-template<typename LHS_t>
-struct not_match {
-  LHS_t L;
-
-  not_match(const LHS_t &LHS) : L(LHS) {}
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (Instruction *I = dyn_cast<Instruction>(V))
-      if (I->getOpcode() == Instruction::Xor)
-        return matchIfNot(I->getOperand(0), I->getOperand(1));
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V))
-      if (CE->getOpcode() == Instruction::Xor)
-        return matchIfNot(CE->getOperand(0), CE->getOperand(1));
-    if (ConstantInt *CI = dyn_cast<ConstantInt>(V))
-      return L.match(ConstantExpr::getNot(CI));
-    return false;
-  }
-private:
-  bool matchIfNot(Value *LHS, Value *RHS) {
-    if (ConstantInt *CI = dyn_cast<ConstantInt>(RHS))
-      return CI->isAllOnesValue() && L.match(LHS);
-    if (ConstantInt *CI = dyn_cast<ConstantInt>(LHS))
-      return CI->isAllOnesValue() && L.match(RHS);
-    if (ConstantVector *CV = dyn_cast<ConstantVector>(RHS))
-      return CV->isAllOnesValue() && L.match(LHS);
-    if (ConstantVector *CV = dyn_cast<ConstantVector>(LHS))
-      return CV->isAllOnesValue() && L.match(RHS);
-    return false;
-  }
-};
-
-template<typename LHS>
-inline not_match<LHS> m_Not(const LHS &L) { return L; }
-
-
-//===----------------------------------------------------------------------===//
-// Matchers for control flow
-//
-
-template<typename Cond_t>
-struct brc_match {
-  Cond_t Cond;
-  BasicBlock *&T, *&F;
-  brc_match(const Cond_t &C, BasicBlock *&t, BasicBlock *&f)
-    : Cond(C), T(t), F(f) {
-  }
-
-  template<typename OpTy>
-  bool match(OpTy *V) {
-    if (BranchInst *BI = dyn_cast<BranchInst>(V))
-      if (BI->isConditional()) {
-        if (Cond.match(BI->getCondition())) {
-          T = BI->getSuccessor(0);
-          F = BI->getSuccessor(1);
-          return true;
-        }
-      }
-    return false;
-  }
-};
-
-template<typename Cond_t>
-inline brc_match<Cond_t> m_Br(const Cond_t &C, BasicBlock *&T, BasicBlock *&F){
-  return brc_match<Cond_t>(C, T, F);
-}
-
-
-}} // end llvm::match
-
-
-#endif
-
diff --git a/support/include/llvm/Support/PluginLoader.h b/support/include/llvm/Support/PluginLoader.h
deleted file mode 100644
index 7789ae8..0000000
--- a/support/include/llvm/Support/PluginLoader.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//===-- llvm/Support/PluginLoader.h - Plugin Loader for Tools ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// A tool can #include this file to get a -load option that allows the user to
-// load arbitrary shared objects into the tool's address space.  Note that this
-// header can only be included by a program ONCE, so it should never to used by
-// library authors.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_PLUGINLOADER_H
-#define LLVM_SUPPORT_PLUGINLOADER_H
-
-#include "llvm/Support/CommandLine.h"
-
-namespace llvm {
-  struct PluginLoader {
-    void operator=(const std::string &Filename);
-    static unsigned getNumPlugins();
-    static std::string& getPlugin(unsigned num);
-  };
-
-#ifndef DONT_GET_PLUGIN_LOADER_OPTION
-  // This causes operator= above to be invoked for every -load option.
-  static cl::opt<PluginLoader, false, cl::parser<std::string> >
-    LoadOpt("load", cl::ZeroOrMore, cl::value_desc("pluginfilename"),
-            cl::desc("Load the specified plugin"));
-#endif
-}
-
-#endif
diff --git a/support/include/llvm/Support/SlowOperationInformer.h b/support/include/llvm/Support/SlowOperationInformer.h
deleted file mode 100644
index d057926..0000000
--- a/support/include/llvm/Support/SlowOperationInformer.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//===- llvm/Support/SlowOperationInformer.h - Keep user informed *- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a simple object which can be used to let the user know what
-// is going on when a slow operation is happening, and gives them the ability to
-// cancel it.  Potentially slow operations can stack allocate one of these
-// objects, and periodically call the "progress" method to update the progress
-// bar.  If the operation takes more than 1 second to complete, the progress bar
-// is automatically shown and updated.  As such, the slow operation should not
-// print stuff to the screen, and should not be confused if an extra line
-// appears on the screen (ie, the cursor should be at the start of the line).
-//
-// If the user presses CTRL-C during the operation, the next invocation of the
-// progress method return true indicating that the operation was cancelled.
-//
-// Because SlowOperationInformers fiddle around with signals, they cannot be
-// nested, and interact poorly with threads.  The SIGALRM handler is set back to
-// SIGDFL, but the SIGINT signal handler is restored when the
-// SlowOperationInformer is destroyed.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_SLOW_OPERATION_INFORMER_H
-#define LLVM_SUPPORT_SLOW_OPERATION_INFORMER_H
-
-#include <string>
-#include <cassert>
-#include "llvm/Support/DataTypes.h"
-
-namespace llvm {
-  class SlowOperationInformer {
-    std::string OperationName;
-    unsigned LastPrintAmount;
-
-    SlowOperationInformer(const SlowOperationInformer&);   // DO NOT IMPLEMENT
-    void operator=(const SlowOperationInformer&);          // DO NOT IMPLEMENT
-  public:
-    SlowOperationInformer(const std::string &Name);
-    ~SlowOperationInformer();
-
-    /// progress - Clients should periodically call this method when they can
-    /// handle cancellation.  The Amount variable should indicate how far
-    /// along the operation is, given in 1/10ths of a percent (in other words,
-    /// Amount should range from 0 to 1000).  If the user cancels the operation,
-    /// this returns true, false otherwise.
-    bool progress(unsigned Amount);
-
-    /// progress - Same as the method above, but this performs the division for
-    /// you, and helps you avoid overflow if you are dealing with largish
-    /// numbers.
-    bool progress(unsigned Current, unsigned Maximum) {
-      assert(Maximum != 0 &&
-             "Shouldn't be doing work if there is nothing to do!");
-      return progress(Current*uint64_t(1000UL)/Maximum);
-    }
-  };
-} // end namespace llvm
-
-#endif /* SLOW_OPERATION_INFORMER_H */
diff --git a/support/include/llvm/Support/StableBasicBlockNumbering.h b/support/include/llvm/Support/StableBasicBlockNumbering.h
deleted file mode 100644
index 3ba72ea..0000000
--- a/support/include/llvm/Support/StableBasicBlockNumbering.h
+++ /dev/null
@@ -1,59 +0,0 @@
-//===- StableBasicBlockNumbering.h - Provide BB identifiers -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class provides a *stable* numbering of basic blocks that does not depend
-// on their address in memory (which is nondeterministic).  When requested, this
-// class simply provides a unique ID for each basic block in the function
-// specified and the inverse mapping.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_STABLEBASICBLOCKNUMBERING_H
-#define LLVM_SUPPORT_STABLEBASICBLOCKNUMBERING_H
-
-#include "llvm/Function.h"
-#include "llvm/ADT/UniqueVector.h"
-
-namespace llvm {
-  class StableBasicBlockNumbering {
-    // BBNumbering - Holds the numbering.
-    UniqueVector<BasicBlock*> BBNumbering;
-  public:
-    StableBasicBlockNumbering(Function *F = 0) {
-      if (F) compute(*F);
-    }
-
-    /// compute - If we have not computed a numbering for the function yet, do
-    /// so.
-    void compute(Function &F) {
-      if (BBNumbering.empty()) {
-        for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I)
-          BBNumbering.insert(I);
-      }
-    }
-
-    /// getNumber - Return the ID number for the specified BasicBlock.
-    ///
-    unsigned getNumber(BasicBlock *BB) const {
-      unsigned Idx = BBNumbering.idFor(BB);
-      assert(Idx && "Invalid basic block or numbering not computed!");
-      return Idx-1;
-    }
-
-    /// getBlock - Return the BasicBlock corresponding to a particular ID.
-    ///
-    BasicBlock *getBlock(unsigned N) const {
-      assert(N < BBNumbering.size() &&
-             "Block ID out of range or numbering not computed!");
-      return BBNumbering[N+1];
-    }
-  };
-}
-
-#endif
diff --git a/support/include/llvm/Support/Streams.h b/support/include/llvm/Support/Streams.h
deleted file mode 100644
index 4e1e4f3..0000000
--- a/support/include/llvm/Support/Streams.h
+++ /dev/null
@@ -1,72 +0,0 @@
-//===- llvm/Support/Streams.h - Wrappers for iostreams ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Bill Wendling and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a wrapper for the STL I/O streams.  It prevents the need
-// to include <iostream> in a file just to get I/O.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_STREAMS_H
-#define LLVM_SUPPORT_STREAMS_H
-
-#include <iosfwd>
-
-namespace llvm {
-
-  /// BaseStream - Acts like the STL streams. It's a wrapper for the std::cerr,
-  /// std::cout, std::cin, etc. streams. However, it doesn't require #including
-  /// <iostream> in every file (doing so increases static c'tors & d'tors in the
-  /// object code).
-  /// 
-  template <typename StreamTy>
-  class BaseStream {
-    StreamTy *Stream;
-  public:
-    BaseStream() : Stream(0) {}
-    BaseStream(StreamTy &S) : Stream(&S) {}
-    BaseStream(StreamTy *S) : Stream(S) {}
-
-    StreamTy *stream() const { return Stream; }
-
-    inline BaseStream &operator << (StreamTy &(*Func)(StreamTy&)) {
-      if (Stream) *Stream << Func;
-      return *this;
-    }
-
-    template <typename Ty>
-    BaseStream &operator << (const Ty &Thing) {
-      if (Stream) *Stream << Thing;
-      return *this;
-    }
-
-    template <typename Ty>
-    BaseStream &operator >> (const Ty &Thing) {
-      if (Stream) *Stream >> Thing;
-      return *this;
-    }
-
-    operator StreamTy* () { return Stream; }
-
-    bool operator == (const StreamTy &S) { return &S == Stream; }
-    bool operator != (const StreamTy &S) { return !(*this == S); }
-    bool operator == (const BaseStream &S) { return S.Stream == Stream; }
-    bool operator != (const BaseStream &S) { return !(*this == S); }
-  };
-
-  typedef BaseStream<std::ostream> OStream;
-  typedef BaseStream<std::istream> IStream;
-  typedef BaseStream<std::stringstream> StringStream;
-
-  extern OStream cout;
-  extern OStream cerr;
-  extern IStream cin;
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/SystemUtils.h b/support/include/llvm/Support/SystemUtils.h
deleted file mode 100644
index 6dc5c27..0000000
--- a/support/include/llvm/Support/SystemUtils.h
+++ /dev/null
@@ -1,42 +0,0 @@
-//===- SystemUtils.h - Utilities to do low-level system stuff ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains functions used to do a variety of low-level, often
-// system-specific, tasks.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_SYSTEMUTILS_H
-#define LLVM_SUPPORT_SYSTEMUTILS_H
-
-#include "llvm/System/Program.h"
-
-namespace llvm {
-
-/// Determine if the ostream provided is connected to the std::cout and
-/// displayed or not (to a console window). If so, generate a warning message
-/// advising against display of bitcode and return true. Otherwise just return
-/// false
-/// @brief Check for output written to a console
-bool CheckBitcodeOutputToConsole(
-  std::ostream* stream_to_check, ///< The stream to be checked
-  bool print_warning = true ///< Control whether warnings are printed
-);
-
-/// FindExecutable - Find a named executable, giving the argv[0] of program
-/// being executed. This allows us to find another LLVM tool if it is built into
-/// the same directory, but that directory is neither the current directory, nor
-/// in the PATH.  If the executable cannot be found, return an empty string.
-/// @brief Find a named executable.
-sys::Path FindExecutable(const std::string &ExeName,
-                         const std::string &ProgramPath);
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/Timer.h b/support/include/llvm/Support/Timer.h
deleted file mode 100644
index 5a97f49..0000000
--- a/support/include/llvm/Support/Timer.h
+++ /dev/null
@@ -1,165 +0,0 @@
-//===-- llvm/Support/Timer.h - Interval Timing Support ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines three classes: Timer, TimeRegion, and TimerGroup,
-// documented below.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_TIMER_H
-#define LLVM_SUPPORT_TIMER_H
-
-#include "llvm/Support/DataTypes.h"
-#include <string>
-#include <vector>
-#include <iosfwd>
-#include <cassert>
-
-namespace llvm {
-
-class TimerGroup;
-
-/// Timer - This class is used to track the amount of time spent between
-/// invocations of it's startTimer()/stopTimer() methods.  Given appropriate OS
-/// support it can also keep track of the RSS of the program at various points.
-/// By default, the Timer will print the amount of time it has captured to
-/// standard error when the laster timer is destroyed, otherwise it is printed
-/// when it's TimerGroup is destroyed.  Timer's do not print their information
-/// if they are never started.
-///
-class Timer {
-  double Elapsed;        // Wall clock time elapsed in seconds
-  double UserTime;       // User time elapsed
-  double SystemTime;     // System time elapsed
-  ssize_t MemUsed;       // Memory allocated (in bytes)
-  size_t PeakMem;        // Peak memory used
-  size_t PeakMemBase;    // Temporary for peak calculation...
-  std::string Name;      // The name of this time variable
-  bool Started;          // Has this time variable ever been started?
-  TimerGroup *TG;        // The TimerGroup this Timer is in.
-public:
-  Timer(const std::string &N);
-  Timer(const std::string &N, TimerGroup &tg);
-  Timer(const Timer &T);
-  ~Timer();
-
-  double getProcessTime() const { return UserTime+SystemTime; }
-  double getWallTime() const { return Elapsed; }
-  ssize_t getMemUsed() const { return MemUsed; }
-  size_t getPeakMem() const { return PeakMem; }
-  std::string getName() const { return Name; }
-
-  const Timer &operator=(const Timer &T) {
-    Elapsed = T.Elapsed;
-    UserTime = T.UserTime;
-    SystemTime = T.SystemTime;
-    MemUsed = T.MemUsed;
-    PeakMem = T.PeakMem;
-    PeakMemBase = T.PeakMemBase;
-    Name = T.Name;
-    Started = T.Started;
-    assert(TG == T.TG && "Can only assign timers in the same TimerGroup!");
-    return *this;
-  }
-
-  // operator< - Allow sorting...
-  bool operator<(const Timer &T) const {
-    // Sort by Wall Time elapsed, as it is the only thing really accurate
-    return Elapsed < T.Elapsed;
-  }
-  bool operator>(const Timer &T) const { return T.operator<(*this); }
-
-  /// startTimer - Start the timer running.  Time between calls to
-  /// startTimer/stopTimer is counted by the Timer class.  Note that these calls
-  /// must be correctly paired.
-  ///
-  void startTimer();
-
-  /// stopTimer - Stop the timer.
-  ///
-  void stopTimer();
-
-  /// addPeakMemoryMeasurement - This method should be called whenever memory
-  /// usage needs to be checked.  It adds a peak memory measurement to the
-  /// currently active timers, which will be printed when the timer group prints
-  ///
-  static void addPeakMemoryMeasurement();
-
-  /// print - Print the current timer to standard error, and reset the "Started"
-  /// flag.
-  void print(const Timer &Total, std::ostream &OS);
-
-private:
-  friend class TimerGroup;
-
-  // Copy ctor, initialize with no TG member.
-  Timer(bool, const Timer &T);
-
-  /// sum - Add the time accumulated in the specified timer into this timer.
-  ///
-  void sum(const Timer &T);
-};
-
-
-/// The TimeRegion class is used as a helper class to call the startTimer() and
-/// stopTimer() methods of the Timer class.  When the object is constructed, it
-/// starts the timer specified as it's argument.  When it is destroyed, it stops
-/// the relevant timer.  This makes it easy to time a region of code.
-///
-class TimeRegion {
-  Timer &T;
-  TimeRegion(const TimeRegion &); // DO NOT IMPLEMENT
-public:
-  TimeRegion(Timer &t) : T(t) {
-    T.startTimer();
-  }
-  ~TimeRegion() {
-    T.stopTimer();
-  }
-};
-
-
-/// NamedRegionTimer - This class is basically a combination of TimeRegion and
-/// Timer.  It allows you to declare a new timer, AND specify the region to
-/// time, all in one statement.  All timers with the same name are merged.  This
-/// is primarily used for debugging and for hunting performance problems.
-///
-struct NamedRegionTimer : public TimeRegion {
-  NamedRegionTimer(const std::string &Name);
-};
-
-
-/// The TimerGroup class is used to group together related timers into a single
-/// report that is printed when the TimerGroup is destroyed.  It is illegal to
-/// destroy a TimerGroup object before all of the Timers in it are gone.  A
-/// TimerGroup can be specified for a newly created timer in its constructor.
-///
-class TimerGroup {
-  std::string Name;
-  unsigned NumTimers;
-  std::vector<Timer> TimersToPrint;
-public:
-  TimerGroup(const std::string &name) : Name(name), NumTimers(0) {}
-  ~TimerGroup() {
-    assert(NumTimers == 0 &&
-           "TimerGroup destroyed before all contained timers!");
-  }
-
-private:
-  friend class Timer;
-  void addTimer() { ++NumTimers; }
-  void removeTimer();
-  void addTimerToPrint(const Timer &T) {
-    TimersToPrint.push_back(Timer(true, T));
-  }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/TypeInfo.h b/support/include/llvm/Support/TypeInfo.h
deleted file mode 100644
index 0dfa583..0000000
--- a/support/include/llvm/Support/TypeInfo.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//===- llvm/Support/TypeInfo.h - Support for type_info objects -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class makes std::type_info objects behave like first class objects that
-// can be put in maps and hashtables.  This code is based off of code in the
-// Loki C++ library from the Modern C++ Design book.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_TYPEINFO_H
-#define LLVM_SUPPORT_TYPEINFO_H
-
-#include <typeinfo>
-
-namespace llvm {
-
-struct TypeInfo {
-  TypeInfo() {                     // needed for containers
-    struct Nil {};  // Anonymous class distinct from all others...
-    Info = &typeid(Nil);
-  }
-
-  TypeInfo(const std::type_info &ti) : Info(&ti) { // non-explicit
-  }
-
-  // Access for the wrapped std::type_info
-  const std::type_info &get() const {
-    return *Info;
-  }
-
-  // Compatibility functions
-  bool before(const TypeInfo &rhs) const {
-    return Info->before(*rhs.Info) != 0;
-  }
-  const char *getClassName() const {
-    return Info->name();
-  }
-
-private:
-  const std::type_info *Info;
-};
-
-// Comparison operators
-inline bool operator==(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return lhs.get() == rhs.get();
-}
-
-inline bool operator<(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return lhs.before(rhs);
-}
-
-inline bool operator!=(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return !(lhs == rhs);
-}
-
-inline bool operator>(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return rhs < lhs;
-}
-
-inline bool operator<=(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return !(lhs > rhs);
-}
-
-inline bool operator>=(const TypeInfo &lhs, const TypeInfo &rhs) {
-  return !(lhs < rhs);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/support/include/llvm/Support/type_traits.h b/support/include/llvm/Support/type_traits.h
deleted file mode 100644
index 8befb25..0000000
--- a/support/include/llvm/Support/type_traits.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//===- llvm/Support/type_traits.h - Simplfied type traits -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides a template class that determines if a type is a class or
-// not. The basic mechanism, based on using the pointer to member function of
-// a zero argument to a function was "boosted" from the boost type_traits
-// library. See http://www.boost.org/ for all the gory details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SUPPORT_TYPE_TRAITS_H
-#define LLVM_SUPPORT_TYPE_TRAITS_H
-
-// This is actually the conforming implementation which works with abstract
-// classes.  However, enough compilers have trouble with it that most will use
-// the one in boost/type_traits/object_traits.hpp. This implementation actually
-// works with VC7.0, but other interactions seem to fail when we use it.
-
-namespace llvm {
-
-namespace dont_use
-{
-    // These two functions should never be used. They are helpers to
-    // the is_class template below. They cannot be located inside
-    // is_class because doing so causes at least GCC to think that
-    // the value of the "value" enumerator is not constant. Placing
-    // them out here (for some strange reason) allows the sizeof
-    // operator against them to magically be constant. This is
-    // important to make the is_class<T>::value idiom zero cost. it
-    // evaluates to a constant 1 or 0 depending on whether the
-    // parameter T is a class or not (respectively).
-    template<typename T> char is_class_helper(void(T::*)(void));
-    template<typename T> double is_class_helper(...);
-}
-
-template <typename T>
-struct is_class
-{
-  // is_class<> metafunction due to Paul Mensonides (leavings@attbi.com). For
-  // more details:
-  // http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1
- public:
-    enum { value = sizeof(char) == sizeof(dont_use::is_class_helper<T>(0)) };
-};
-
-}
-
-#endif
diff --git a/support/include/llvm/System/Alarm.h b/support/include/llvm/System/Alarm.h
deleted file mode 100644
index 2b78da6..0000000
--- a/support/include/llvm/System/Alarm.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//===- llvm/System/Alarm.h - Alarm Generation support  ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides an operating system independent interface to alarm(2) 
-// type functionality. The Alarm class allows a one-shot alarm to be set up 
-// at some number of seconds in the future. When the alarm triggers, a method
-// is called to process the event
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_ALARM_H
-#define LLVM_SYSTEM_ALARM_H
-
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-namespace sys {
-
-  /// This function registers an alarm to trigger some number of \p seconds in 
-  /// the future. When that time arrives, the AlarmStatus function will begin
-  /// to return 1 instead of 0. The user must poll the status of the alarm by
-  /// making occasional calls to AlarmStatus. If the user sends an interrupt
-  /// signal, AlarmStatus will begin returning -1, even if the alarm event
-  /// occurred.
-  /// @returns nothing
-  void SetupAlarm(
-    unsigned seconds ///< Number of seconds in future when alarm arrives
-  );
-
-  /// This function terminates the alarm previously set up 
-  /// @returns nothing
-  void TerminateAlarm();
-
-  /// This function acquires the status of the alarm. 
-  /// @returns -1=cancelled, 0=untriggered, 1=triggered
-  int AlarmStatus();
-
-} // End sys namespace
-} // End llvm namespace
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemAlarm)
-
-#endif
diff --git a/support/include/llvm/System/Disassembler.h b/support/include/llvm/System/Disassembler.h
deleted file mode 100644
index fd08f2d..0000000
--- a/support/include/llvm/System/Disassembler.h
+++ /dev/null
@@ -1,35 +0,0 @@
-//===- llvm/Support/Disassembler.h ------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Anton Korobeynikov and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the necessary glue to call external disassembler
-// libraries.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_DISASSEMBLER_H
-#define LLVM_SYSTEM_DISASSEMBLER_H
-
-#include "llvm/Support/DataTypes.h"
-#include <string>
-
-namespace llvm {
-namespace sys {
-
-/// This function returns true, if there is possible to use some external
-/// disassembler library. False otherwise.
-bool hasDisassembler(void); 
-
-/// This function provides some "glue" code to call external disassembler
-/// libraries.
-std::string disassembleBuffer(uint8_t* start, size_t length, uint64_t pc = 0);
-
-}
-}
-
-#endif // LLVM_SYSTEM_DISASSEMBLER_H
diff --git a/support/include/llvm/System/DynamicLibrary.h b/support/include/llvm/System/DynamicLibrary.h
deleted file mode 100644
index 5499f9d..0000000
--- a/support/include/llvm/System/DynamicLibrary.h
+++ /dev/null
@@ -1,125 +0,0 @@
-//===-- llvm/System/DynamicLibrary.h - Portable Dynamic Library -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the sys::DynamicLibrary class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_DYNAMIC_LIBRARY_H
-#define LLVM_SYSTEM_DYNAMIC_LIBRARY_H
-
-#include "llvm/System/Path.h"
-#include "llvm/System/IncludeFile.h"
-#include <string>
-
-namespace llvm {
-namespace sys {
-
-  /// This class provides a portable interface to dynamic libraries which also
-  /// might be known as shared libraries, shared objects, dynamic shared
-  /// objects, or dynamic link libraries. Regardless of the terminology or the
-  /// operating system interface, this class provides a portable interface that
-  /// allows dynamic libraries to be loaded and and searched for externally
-  /// defined symbols. This is typically used to provide "plug-in" support.
-  /// It also allows for symbols to be defined which don't live in any library,
-  /// but rather the main program itself, useful on Windows where the main
-  /// executable cannot be searched.
-  /// @since 1.4
-  /// @brief Portable dynamic library abstraction.
-  class DynamicLibrary {
-    /// @name Constructors
-    /// @{
-    public:
-      /// Construct a DynamicLibrary that represents the currently executing
-      /// program. The program must have been linked with -export-dynamic or
-      /// -dlopen self for this to work. Any symbols retrieved with the
-      /// GetAddressOfSymbol function will refer to the program not to any
-      /// library.
-      /// @throws std::string indicating why the program couldn't be opened.
-      /// @brief Open program as dynamic library.
-      DynamicLibrary();
-
-      /// After destruction, the symbols of the library will no longer be
-      /// available to the program. It is important to make sure the lifespan
-      /// of a DynamicLibrary exceeds the lifetime of the pointers returned
-      /// by the GetAddressOfSymbol otherwise the program may walk off into
-      /// uncharted territory.
-      /// @see GetAddressOfSymbol.
-      /// @brief Closes the DynamicLibrary
-      ~DynamicLibrary();
-
-    /// @}
-    /// @name Functions
-    /// @{
-    public:
-      /// This function allows a library to be loaded without instantiating a
-      /// DynamicLibrary object. Consequently, it is marked as being permanent
-      /// and will only be unloaded when the program terminates.  This returns
-      /// false on success or returns true and fills in *ErrMsg on failure.
-      /// @brief Open a dynamic library permanently.
-      static bool LoadLibraryPermanently(const char* filename,
-                                         std::string *ErrMsg = 0);
-
-      /// This function will search through all previously loaded dynamic
-      /// libraries for the symbol \p symbolName. If it is found, the addressof
-      /// that symbol is returned. If not, null is returned. Note that this will
-      /// search permanently loaded libraries (LoadLibraryPermanently) as well
-      /// as ephemerally loaded libraries (constructors).
-      /// @throws std::string on error.
-      /// @brief Search through libraries for address of a symbol
-      static void* SearchForAddressOfSymbol(const char* symbolName);
-
-      /// @brief Convenience function for C++ophiles.
-      static void* SearchForAddressOfSymbol(const std::string& symbolName) {
-        return SearchForAddressOfSymbol(symbolName.c_str());
-      }
-
-      /// This functions permanently adds the symbol \p symbolName with the
-      /// value \p symbolValue.  These symbols are searched before any
-      /// libraries.
-      /// @brief Add searchable symbol/value pair.
-      static void AddSymbol(const char* symbolName, void *symbolValue);
-
-      /// @brief Convenience function for C++ophiles.
-      static void AddSymbol(const std::string& symbolName, void *symbolValue) {
-        AddSymbol(symbolName.c_str(), symbolValue);
-      }
-
-    /// @}
-    /// @name Accessors
-    /// @{
-    public:
-      /// Looks up a \p symbolName in the DynamicLibrary and returns its address
-      /// if it exists. If the symbol does not exist, returns (void*)0.
-      /// @returns the address of the symbol or 0.
-      /// @brief Get the address of a symbol in the DynamicLibrary.
-      void* GetAddressOfSymbol(const char* symbolName);
-
-      /// @brief Convenience function for C++ophiles.
-      void* GetAddressOfSymbol(const std::string& symbolName) {
-        return GetAddressOfSymbol(symbolName.c_str());
-      }
-
-    /// @}
-    /// @name Implementation
-    /// @{
-    protected:
-      void* handle;  // Opaque handle for information about the library
-
-      DynamicLibrary(const DynamicLibrary&); ///< Do not implement
-      DynamicLibrary& operator=(const DynamicLibrary&); ///< Do not implement
-    /// @}
-  };
-
-} // End sys namespace
-} // End llvm namespace
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemDynamicLibrary)
-
-#endif // LLVM_SYSTEM_DYNAMIC_LIBRARY_H
diff --git a/support/include/llvm/System/IncludeFile.h b/support/include/llvm/System/IncludeFile.h
deleted file mode 100644
index c9f3882..0000000
--- a/support/include/llvm/System/IncludeFile.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//===- llvm/System/IncludeFile.h - Ensure Linking Of Library ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the FORCE_DEFINING_FILE_TO_BE_LINKED and DEFINE_FILE_FOR
-// macros.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_INCLUDEFILE_H
-#define LLVM_SYSTEM_INCLUDEFILE_H
-
-/// This macro is the public interface that IncludeFile.h exports. This gives
-/// us the option to implement the "link the definition" capability in any 
-/// manner that we choose. All header files that depend on a specific .cpp
-/// file being linked at run time should use this macro instead of the
-/// IncludeFile class directly. 
-/// 
-/// For example, foo.h would use:<br/>
-/// <tt>FORCE_DEFINING_FILE_TO_BE_LINKED(foo)</tt><br/>
-/// 
-/// And, foo.cp would use:<br/>
-/// <tt>DEFINING_FILE_FOR(foo)</tt><br/>
-#define FORCE_DEFINING_FILE_TO_BE_LINKED(name) \
-  namespace llvm { \
-    extern char name ## LinkVar; \
-    static IncludeFile name ## LinkObj ( &name ## LinkVar ); \
-  } 
-
-/// This macro is the counterpart to FORCE_DEFINING_FILE_TO_BE_LINKED. It should
-/// be used in a .cpp file to define the name referenced in a header file that
-/// will cause linkage of the .cpp file. It should only be used at extern level.
-#define DEFINING_FILE_FOR(name) namespace llvm { char name ## LinkVar; }
-
-namespace llvm {
-
-/// This class is used in the implementation of FORCE_DEFINING_FILE_TO_BE_LINKED
-/// macro to make sure that the implementation of a header file is included 
-/// into a tool that uses the header.  This is solely 
-/// to overcome problems linking .a files and not getting the implementation 
-/// of compilation units we need. This is commonly an issue with the various
-/// Passes but also occurs elsewhere in LLVM. We like to use .a files because
-/// they link faster and provide the smallest executables. However, sometimes
-/// those executables are too small, if the program doesn't reference something
-/// that might be needed, especially by a loaded share object. This little class
-/// helps to resolve that problem. The basic strategy is to use this class in
-/// a header file and pass the address of a variable to the constructor. If the
-/// variable is defined in the header file's corresponding .cpp file then all
-/// tools/libraries that #include the header file will require the .cpp as well.
-/// For example:<br/>
-/// <tt>extern int LinkMyCodeStub;</tt><br/>
-/// <tt>static IncludeFile LinkMyModule(&LinkMyCodeStub);</tt><br/>
-/// @brief Class to ensure linking of corresponding object file.
-struct IncludeFile {
-  IncludeFile(void *);
-};
-
-}
-
-#endif
diff --git a/support/include/llvm/System/LICENSE.TXT b/support/include/llvm/System/LICENSE.TXT
deleted file mode 100644
index f569da2..0000000
--- a/support/include/llvm/System/LICENSE.TXT
+++ /dev/null
@@ -1,6 +0,0 @@
-LLVM System Interface Library
--------------------------------------------------------------------------------
-The LLVM System Interface Library is licensed under the Illinois Open Source 
-License and has the following additional copyright:
-
-Copyright (C) 2004 eXtensible Systems, Inc.
diff --git a/support/include/llvm/System/MappedFile.h b/support/include/llvm/System/MappedFile.h
deleted file mode 100644
index 6276bc3..0000000
--- a/support/include/llvm/System/MappedFile.h
+++ /dev/null
@@ -1,175 +0,0 @@
-//===- llvm/System/MappedFile.h - MappedFile OS Concept ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::MappedFile class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_MAPPEDFILE_H
-#define LLVM_SYSTEM_MAPPEDFILE_H
-
-#include "llvm/System/Path.h"
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-namespace sys {
-
-  /// Forward declare a class used for holding platform specific information
-  /// that needs to be
-  struct MappedFileInfo;
-
-  /// This class provides an abstraction for a memory mapped file in the
-  /// operating system's filesystem. It provides platform independent operations
-  /// for mapping a file into memory for both read and write access. This class
-  /// does not provide facilities for finding the file or operating on paths to
-  /// files. The sys::Path class is used for that.
-  /// @since 1.4
-  /// @brief An abstraction for memory mapped files.
-  class MappedFile {
-  /// @name Types
-  /// @{
-  public:
-    enum MappingOptions {
-      READ_ACCESS = 0x0001,     ///< Map the file for reading
-      WRITE_ACCESS = 0x0002,    ///< Map the file for write access
-      EXEC_ACCESS = 0x0004,     ///< Map the file for execution access
-      SHARED_MAPPING = 0x0008   ///< Map the file shared with other processes
-    };
-  /// @}
-  /// @name Constructors
-  /// @{
-  public:
-    /// Construct a MappedFile to the \p path in the operating system's file
-    /// system with the mapping \p options provided.
-    /// @throws std::string if an error occurs
-    MappedFile() : path_(), options_(READ_ACCESS), base_(0), info_(0) {}
-
-    /// Destruct a MappedFile and release all memory associated with it.
-    /// @throws std::string if an error occurs
-    ~MappedFile() { if (info_) terminate(); }
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-    /// This function determines if the file is currently mapped or not.
-    /// @returns true iff the file is mapped into memory, false otherwise
-    /// @brief Determine if a MappedFile is currently mapped
-    /// @throws nothing
-    bool isMapped() const { return base_ != 0; }
-
-    /// This function returns a void* pointer to the base address of the file
-    /// mapping. This is the memory address of the first byte in the file.
-    /// Note that although a non-const pointer is returned, the memory might
-    /// not actually be writable, depending on the MappingOptions used when
-    /// the MappedFile was opened.
-    /// @returns The base pointer to the memory mapped file.
-    /// @brief Obtain the base pointer to the memory mapped file.
-    /// @throws nothing
-    void* base() const { return base_; }
-
-    /// This function returns a char* pointer to the base address of the file
-    /// mapping. This is the memory address of the first byte in the file.
-    /// Note that although a non-const pointer is returned, the memory might
-    /// not actually be writable, depending on the MappingOptions used when
-    /// the MappedFile was opened.
-    /// @returns The base pointer to the memory mapped file as a char pointer.
-    /// @brief Obtain the base pointer to the memory mapped file.
-    /// @throws nothing
-    char* charBase() const { return reinterpret_cast<char*>(base_); }
-
-    /// This function returns a reference to the sys::Path object kept by the
-    /// MappedFile object. This contains the path to the file that is or
-    /// will be mapped.
-    /// @returns sys::Path containing the path name.
-    /// @brief Returns the mapped file's path as a sys::Path
-    /// @throws nothing
-    const sys::Path& path() const { return path_; }
-
-    /// This function returns the number of bytes in the file.
-    /// @throws std::string if an error occurs
-    size_t size() const;
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// Open a file to be mapped and get its size but don't map it yet.
-    /// @returns true if an error occurred
-    bool open(
-      const sys::Path& p, ///< Path to file to be mapped
-      int options = READ_ACCESS, ///< Access mode for the mapping
-      std::string* ErrMsg = 0 ///< Optional error string pointer
-    ) {
-      path_ = p;
-      options_ = options;
-      return initialize(ErrMsg);
-    }
-
-    /// The mapped file is removed from memory. If the file was mapped for
-    /// write access, the memory contents will be automatically synchronized
-    /// with the file's disk contents.
-    /// @brief Remove the file mapping from memory.
-    void unmap();
-
-    /// The mapped file is put into memory.
-    /// @returns The base memory address of the mapped file or 0 if an error
-    /// occurred.
-    /// @brief Map the file into memory.
-    void* map(
-      std::string* ErrMsg = 0///< Optional error string pointer
-    );
-
-    /// This method causes the size of the file, and consequently the size
-    /// of the mapping to be set. This is logically the same as unmap(),
-    /// adjust size of the file, map(). Consequently, when calling this
-    /// function, the caller should not rely on previous results of the
-    /// map(), base(), or baseChar() members as they may point to invalid
-    /// areas of memory after this call.
-    /// @throws std::string if an error occurs
-    /// @brief Set the size of the file and memory mapping.
-    bool size(size_t new_size, std::string* ErrMsg = 0);
-
-    void close() { if (info_) terminate(); }
-
-  /// @}
-  /// @name Implementation
-  /// @{
-  private:
-    /// @brief Initialize platform-specific portion
-    bool initialize(std::string* ErrMsg); 
-
-    /// @brief Terminate platform-specific portion
-    void terminate();  
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    sys::PathWithStatus path_;       ///< Path to the file.
-    int options_;          ///< Options used to create the mapping
-    void* base_;           ///< Pointer to the base memory address
-    mutable MappedFileInfo* info_; ///< Platform specific info for the mapping
-
-  /// @}
-  /// @name Disabled
-  /// @{
-  private:
-    ///< Disallow assignment
-    MappedFile& operator = ( const MappedFile & that );
-    ///< Disallow copying
-    MappedFile(const MappedFile& that);
-  /// @}
-  };
-}
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemMappedFile)
-
-#endif
diff --git a/support/include/llvm/System/Memory.h b/support/include/llvm/System/Memory.h
deleted file mode 100644
index c343177..0000000
--- a/support/include/llvm/System/Memory.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//===- llvm/System/Memory.h - Memory Support --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::Memory class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_MEMORY_H
-#define LLVM_SYSTEM_MEMORY_H
-
-#include <string>
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-namespace sys {
-
-  /// This class encapsulates the notion of a memory block which has an address
-  /// and a size. It is used by the Memory class (a friend) as the result of
-  /// various memory allocation operations.
-  /// @see Memory
-  /// @brief Memory block abstraction.
-  class MemoryBlock {
-  public:
-    void *base() const { return Address; }
-    unsigned size() const { return Size; }
-  private:
-    void *Address;    ///< Address of first byte of memory area
-    unsigned Size;    ///< Size, in bytes of the memory area
-    friend class Memory;
-  };
-
-  /// This class provides various memory handling functions that manipulate
-  /// MemoryBlock instances.
-  /// @since 1.4
-  /// @brief An abstraction for memory operations.
-  class Memory {
-    /// @name Functions
-    /// @{
-    public:
-      /// This method allocates a block of Read/Write/Execute memory that is
-      /// suitable for executing dynamically generated code (e.g. JIT). An
-      /// attempt to allocate \p NumBytes bytes of virtual memory is made.
-      /// \p NearBlock may point to an existing allocation in which case
-      /// an attempt is made to allocate more memory near the existing block.
-      ///
-      /// On success, this returns a non-null memory block, otherwise it returns
-      /// a null memory block and fills in *ErrMsg.
-      /// 
-      /// @brief Allocate Read/Write/Execute memory.
-      static MemoryBlock AllocateRWX(unsigned NumBytes,
-                                     const MemoryBlock *NearBlock,
-                                     std::string *ErrMsg = 0);
-
-      /// This method releases a block of Read/Write/Execute memory that was
-      /// allocated with the AllocateRWX method. It should not be used to
-      /// release any memory block allocated any other way.
-      ///
-      /// On success, this returns false, otherwise it returns true and fills
-      /// in *ErrMsg.
-      /// @throws std::string if an error occurred.
-      /// @brief Release Read/Write/Execute memory.
-      static bool ReleaseRWX(MemoryBlock &block, std::string *ErrMsg = 0);
-    /// @}
-  };
-}
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemMemory)
-
-#endif
diff --git a/support/include/llvm/System/Mutex.h b/support/include/llvm/System/Mutex.h
deleted file mode 100644
index 27bcea1..0000000
--- a/support/include/llvm/System/Mutex.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//===- llvm/System/Mutex.h - Mutex Operating System Concept -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::Mutex class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_MUTEX_H
-#define LLVM_SYSTEM_MUTEX_H
-
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm
-{
-  namespace sys
-  {
-    /// @brief Platform agnostic Mutex class.
-    class Mutex
-    {
-    /// @name Constructors
-    /// @{
-    public:
-
-      /// Initializes the lock but doesn't acquire it. if \p recursive is set
-      /// to false, the lock will not be recursive which makes it cheaper but
-      /// also more likely to deadlock (same thread can't acquire more than
-      /// once).
-      /// @brief Default Constructor.
-      Mutex ( bool recursive = true );
-
-      /// Releases and removes the lock
-      /// @brief Destructor
-      ~Mutex ( void );
-
-    /// @}
-    /// @name Methods
-    /// @{
-    public:
-
-      /// Attempts to unconditionally acquire the lock. If the lock is held by
-      /// another thread, this method will wait until it can acquire the lock.
-      /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally acquire the lock.
-      bool acquire();
-
-      /// Attempts to release the lock. If the lock is held by the current
-      /// thread, the lock is released allowing other threads to acquire the
-      /// lock.
-      /// @returns false if any kind of error occurs, true otherwise.
-      /// @brief Unconditionally release the lock.
-      bool release(void);
-
-      /// Attempts to acquire the lock without blocking. If the lock is not
-      /// available, this function returns false quickly (without blocking). If
-      /// the lock is available, it is acquired.
-      /// @returns false if any kind of error occurs or the lock is not
-      /// available, true otherwise.
-      /// @brief Try to acquire the lock.
-      bool tryacquire();
-
-    //@}
-    /// @name Platform Dependent Data
-    /// @{
-    private:
-#ifdef ENABLE_THREADS
-      void* data_; ///< We don't know what the data will be
-#endif
-
-    /// @}
-    /// @name Do Not Implement
-    /// @{
-    private:
-      Mutex(const Mutex & original);
-      void operator=(const Mutex &);
-    /// @}
-    };
-  }
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemMutex)
-
-#endif
diff --git a/support/include/llvm/System/Path.h b/support/include/llvm/System/Path.h
deleted file mode 100644
index e7aa45b..0000000
--- a/support/include/llvm/System/Path.h
+++ /dev/null
@@ -1,656 +0,0 @@
-//===- llvm/System/Path.h - Path Operating System Concept -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::Path class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_PATH_H
-#define LLVM_SYSTEM_PATH_H
-
-#include "llvm/System/TimeValue.h"
-#include "llvm/System/IncludeFile.h"
-#include <set>
-#include <string>
-#include <vector>
-#include <iosfwd>
-
-namespace llvm {
-namespace sys {
-
-  /// This structure provides basic file system information about a file. It
-  /// is patterned after the stat(2) Unix operating system call but made
-  /// platform independent and eliminates many of the unix-specific fields.
-  /// However, to support llvm-ar, the mode, user, and group fields are
-  /// retained. These pertain to unix security and may not have a meaningful
-  /// value on non-Unix platforms. However, the other fields fields should 
-  /// always be applicable on all platforms.  The structure is filled in by 
-  /// the PathWithStatus class.
-  /// @brief File status structure
-  class FileStatus {
-  public:
-    uint64_t    fileSize;   ///< Size of the file in bytes
-    TimeValue   modTime;    ///< Time of file's modification
-    uint32_t    mode;       ///< Mode of the file, if applicable
-    uint32_t    user;       ///< User ID of owner, if applicable
-    uint32_t    group;      ///< Group ID of owner, if applicable
-    uint64_t    uniqueID;   ///< A number to uniquely ID this file
-    bool        isDir  : 1; ///< True if this is a directory.
-    bool        isFile : 1; ///< True if this is a file.
-
-    FileStatus() : fileSize(0), modTime(0,0), mode(0777), user(999),
-                   group(999), uniqueID(0), isDir(false), isFile(false) { }
-    
-    TimeValue getTimestamp() const { return modTime; }
-    uint64_t getSize() const { return fileSize; }
-    uint32_t getMode() const { return mode; }
-    uint32_t getUser() const { return user; }
-    uint32_t getGroup() const { return group; }
-    uint64_t getUniqueID() const { return uniqueID; }
-  };
-
-  /// This class provides an abstraction for the path to a file or directory
-  /// in the operating system's filesystem and provides various basic operations
-  /// on it.  Note that this class only represents the name of a path to a file
-  /// or directory which may or may not be valid for a given machine's file
-  /// system. The class is patterned after the java.io.File class with various
-  /// extensions and several omissions (not relevant to LLVM).  A Path object
-  /// ensures that the path it encapsulates is syntactically valid for the
-  /// operating system it is running on but does not ensure correctness for
-  /// any particular file system. That is, a syntactically valid path might
-  /// specify path components that do not exist in the file system and using
-  /// such a Path to act on the file system could produce errors. There is one
-  /// invalid Path value which is permitted: the empty path.  The class should
-  /// never allow a syntactically invalid non-empty path name to be assigned.
-  /// Empty paths are required in order to indicate an error result in some
-  /// situations. If the path is empty, the isValid operation will return
-  /// false. All operations will fail if isValid is false. Operations that
-  /// change the path will either return false if it would cause a syntactically
-  /// invalid path name (in which case the Path object is left unchanged) or
-  /// throw an std::string exception indicating the error. The methods are
-  /// grouped into four basic categories: Path Accessors (provide information
-  /// about the path without accessing disk), Disk Accessors (provide
-  /// information about the underlying file or directory), Path Mutators
-  /// (change the path information, not the disk), and Disk Mutators (change
-  /// the disk file/directory referenced by the path). The Disk Mutator methods
-  /// all have the word "disk" embedded in their method name to reinforce the
-  /// notion that the operation modifies the file system.
-  /// @since 1.4
-  /// @brief An abstraction for operating system paths.
-  class Path {
-    /// @name Constructors
-    /// @{
-    public:
-      /// Construct a path to the root directory of the file system. The root
-      /// directory is a top level directory above which there are no more
-      /// directories. For example, on UNIX, the root directory is /. On Windows
-      /// it is C:\. Other operating systems may have different notions of
-      /// what the root directory is or none at all. In that case, a consistent
-      /// default root directory will be used.
-      static Path GetRootDirectory();
-
-      /// Construct a path to a unique temporary directory that is created in
-      /// a "standard" place for the operating system. The directory is
-      /// guaranteed to be created on exit from this function. If the directory
-      /// cannot be created, the function will throw an exception.
-      /// @returns an invalid path (empty) on error
-      /// @param ErrMsg Optional place for an error message if an error occurs
-      /// @brief Constrct a path to an new, unique, existing temporary
-      /// directory.
-      static Path GetTemporaryDirectory(std::string* ErrMsg = 0);
-
-      /// Construct a vector of sys::Path that contains the "standard" system
-      /// library paths suitable for linking into programs. This function *must*
-      /// return the value of LLVM_LIB_SEARCH_PATH as the first item in \p Paths
-      /// if that environment variable is set and it references a directory.
-      /// @brief Construct a path to the system library directory
-      static void GetSystemLibraryPaths(std::vector<sys::Path>& Paths);
-
-      /// Construct a vector of sys::Path that contains the "standard" bitcode
-      /// library paths suitable for linking into an llvm program. This function
-      /// *must* return the value of LLVM_LIB_SEARCH_PATH as well as the value
-      /// of LLVM_LIBDIR. It also must provide the System library paths as
-      /// returned by GetSystemLibraryPaths.
-      /// @see GetSystemLibraryPaths
-      /// @brief Construct a list of directories in which bitcode could be
-      /// found.
-      static void GetBitcodeLibraryPaths(std::vector<sys::Path>& Paths);
-
-      /// Find the path to a library using its short name. Use the system
-      /// dependent library paths to locate the library.
-      /// @brief Find a library.
-      static Path FindLibrary(std::string& short_name);
-
-      /// Construct a path to the default LLVM configuration directory. The
-      /// implementation must ensure that this is a well-known (same on many
-      /// systems) directory in which llvm configuration files exist. For
-      /// example, on Unix, the /etc/llvm directory has been selected.
-      /// @brief Construct a path to the default LLVM configuration directory
-      static Path GetLLVMDefaultConfigDir();
-
-      /// Construct a path to the LLVM installed configuration directory. The
-      /// implementation must ensure that this refers to the "etc" directory of
-      /// the LLVM installation. This is the location where configuration files
-      /// will be located for a particular installation of LLVM on a machine.
-      /// @brief Construct a path to the LLVM installed configuration directory
-      static Path GetLLVMConfigDir();
-
-      /// Construct a path to the current user's home directory. The
-      /// implementation must use an operating system specific mechanism for
-      /// determining the user's home directory. For example, the environment
-      /// variable "HOME" could be used on Unix. If a given operating system
-      /// does not have the concept of a user's home directory, this static
-      /// constructor must provide the same result as GetRootDirectory.
-      /// @brief Construct a path to the current user's "home" directory
-      static Path GetUserHomeDirectory();
-
-      /// Return the suffix commonly used on file names that contain a shared
-      /// object, shared archive, or dynamic link library. Such files are
-      /// linked at runtime into a process and their code images are shared
-      /// between processes.
-      /// @returns The dynamic link library suffix for the current platform.
-      /// @brief Return the dynamic link library suffix.
-      static std::string GetDLLSuffix();
-
-      /// This is one of the very few ways in which a path can be constructed
-      /// with a syntactically invalid name. The only *legal* invalid name is an
-      /// empty one. Other invalid names are not permitted. Empty paths are
-      /// provided so that they can be used to indicate null or error results in
-      /// other lib/System functionality.
-      /// @brief Construct an empty (and invalid) path.
-      Path() : path() {}
-      Path(const Path &that) : path(that.path) {}
-
-      /// This constructor will accept a std::string as a path. No checking is
-      /// done on this path to determine if it is valid. To determine validity
-      /// of the path, use the isValid method. 
-      /// @param p The path to assign.
-      /// @brief Construct a Path from a string.
-      explicit Path(const std::string& p) : path(p) {}
-
-      /// This constructor will accept a character range as a path.  No checking
-      /// is done on this path to determine if it is valid.  To determine
-      /// validity of the path, use the isValid method. 
-      /// @param p The path to assign.
-      /// @brief Construct a Path from a string.
-      explicit Path(const char *StrStart, unsigned StrLen)
-        : path(StrStart, StrStart+StrLen) {}
-      
-    /// @}
-    /// @name Operators
-    /// @{
-    public:
-      /// Makes a copy of \p that to \p this.
-      /// @returns \p this
-      /// @brief Assignment Operator
-      Path &operator=(const Path &that) {
-        path = that.path;
-        return *this;
-      }
-
-      /// Compares \p this Path with \p that Path for equality.
-      /// @returns true if \p this and \p that refer to the same thing.
-      /// @brief Equality Operator
-      bool operator==(const Path &that) const {
-        return 0 == path.compare(that.path);
-      }
-
-      /// Compares \p this Path with \p that Path for inequality.
-      /// @returns true if \p this and \p that refer to different things.
-      /// @brief Inequality Operator
-      bool operator!=(const Path &that) const {
-        return 0 != path.compare(that.path);
-      }
-
-      /// Determines if \p this Path is less than \p that Path. This is required
-      /// so that Path objects can be placed into ordered collections (e.g.
-      /// std::map). The comparison is done lexicographically as defined by
-      /// the std::string::compare method.
-      /// @returns true if \p this path is lexicographically less than \p that.
-      /// @brief Less Than Operator
-      bool operator<(const Path& that) const {
-        return 0 > path.compare(that.path);
-      }
-
-    /// @}
-    /// @name Path Accessors
-    /// @{
-    public:
-      /// This function will use an operating system specific algorithm to
-      /// determine if the current value of \p this is a syntactically valid
-      /// path name for the operating system. The path name does not need to
-      /// exist, validity is simply syntactical. Empty paths are always invalid.
-      /// @returns true iff the path name is syntactically legal for the
-      /// host operating system.
-      /// @brief Determine if a path is syntactically valid or not.
-      bool isValid() const;
-
-      /// This function determines if the contents of the path name are empty. 
-      /// That is, the path name has a zero length. This does NOT determine if
-      /// if the file is empty. To get the length of the file itself, Use the 
-      /// PathWithStatus::getFileStatus() method and then the getSize() method 
-      /// on the returned FileStatus object.
-      /// @returns true iff the path is empty.
-      /// @brief Determines if the path name is empty (invalid).
-      bool isEmpty() const { return path.empty(); }
-
-      /// This function returns the current contents of the path as a
-      /// std::string. This allows the underlying path string to be manipulated.
-      /// @returns std::string containing the path name.
-      /// @brief Returns the path as a std::string.
-      const std::string &toString() const { return path; }
-
-      /// This function returns the last component of the path name. The last
-      /// component is the file or directory name occuring after the last
-      /// directory separator. If no directory separator is present, the entire
-      /// path name is returned (i.e. same as toString).
-      /// @returns std::string containing the last component of the path name.
-      /// @brief Returns the last component of the path name.
-      std::string getLast() const;
-
-      /// This function strips off the path and suffix of the file or directory
-      /// name and returns just the basename. For example /a/foo.bar would cause
-      /// this function to return "foo".
-      /// @returns std::string containing the basename of the path
-      /// @brief Get the base name of the path
-      std::string getBasename() const;
-
-      /// Obtain a 'C' string for the path name.
-      /// @returns a 'C' string containing the path name.
-      /// @brief Returns the path as a C string.
-      const char *c_str() const { return path.c_str(); }
-
-    /// @}
-    /// @name Disk Accessors
-    /// @{
-    public:
-      /// This function determines if the path name in this object references
-      /// the root (top level directory) of the file system. The details of what
-      /// is considered the "root" may vary from system to system so this method
-      /// will do the necessary checking.
-      /// @returns true iff the path name references the root directory.
-      /// @brief Determines if the path references the root directory.
-      bool isRootDirectory() const;
-
-      /// This function determines if the path name is absolute, as opposed to
-      /// relative. 
-      /// @breif Determine if the path is absolute.
-      bool isAbsolute() const;
-
-      /// This function opens the file associated with the path name provided by
-      /// the Path object and reads its magic number. If the magic number at the
-      /// start of the file matches \p magic, true is returned. In all other
-      /// cases (file not found, file not accessible, etc.) it returns false.
-      /// @returns true if the magic number of the file matches \p magic.
-      /// @brief Determine if file has a specific magic number
-      bool hasMagicNumber(const std::string& magic) const;
-
-      /// This function retrieves the first \p len bytes of the file associated
-      /// with \p this. These bytes are returned as the "magic number" in the
-      /// \p Magic parameter.
-      /// @returns true if the Path is a file and the magic number is retrieved,
-      /// false otherwise.
-      /// @brief Get the file's magic number.
-      bool getMagicNumber(std::string& Magic, unsigned len) const;
-
-      /// This function determines if the path name in the object references an
-      /// archive file by looking at its magic number.
-      /// @returns true if the file starts with the magic number for an archive
-      /// file.
-      /// @brief Determine if the path references an archive file.
-      bool isArchive() const;
-
-      /// This function determines if the path name in the object references an
-      /// LLVM Bitcode file by looking at its magic number.
-      /// @returns true if the file starts with the magic number for LLVM
-      /// bitcode files.
-      /// @brief Determine if the path references a bitcode file.
-      bool isBitcodeFile() const;
-      
-      /// This function determines if the path name in the object references a
-      /// native Dynamic Library (shared library, shared object) by looking at
-      /// the file's magic number. The Path object must reference a file, not a
-      /// directory.
-      /// @return strue if the file starts with the magid number for a native
-      /// shared library.
-      /// @brief Determine if the path reference a dynamic library.
-      bool isDynamicLibrary() const;
-
-      /// This function determines if the path name references an existing file
-      /// or directory in the file system.
-      /// @returns true if the pathname references an existing file or
-      /// directory.
-      /// @brief Determines if the path is a file or directory in
-      /// the file system.
-      bool exists() const;
-
-      /// This function determines if the path name references a readable file
-      /// or directory in the file system. This function checks for
-      /// the existence and readability (by the current program) of the file
-      /// or directory.
-      /// @returns true if the pathname references a readable file.
-      /// @brief Determines if the path is a readable file or directory
-      /// in the file system.
-      bool canRead() const;
-
-      /// This function determines if the path name references a writable file
-      /// or directory in the file system. This function checks for the
-      /// existence and writability (by the current program) of the file or
-      /// directory.
-      /// @returns true if the pathname references a writable file.
-      /// @brief Determines if the path is a writable file or directory
-      /// in the file system.
-      bool canWrite() const;
-
-      /// This function determines if the path name references an executable
-      /// file in the file system. This function checks for the existence and
-      /// executability (by the current program) of the file.
-      /// @returns true if the pathname references an executable file.
-      /// @brief Determines if the path is an executable file in the file
-      /// system.
-      bool canExecute() const;
-
-      /// This function builds a list of paths that are the names of the
-      /// files and directories in a directory.
-      /// @returns true if an error occurs, true otherwise
-      /// @brief Build a list of directory's contents.
-      bool getDirectoryContents(
-        std::set<Path> &paths, ///< The resulting list of file & directory names
-        std::string* ErrMsg    ///< Optional place to return an error message.
-      ) const;
-
-    /// @}
-    /// @name Path Mutators
-    /// @{
-    public:
-      /// The path name is cleared and becomes empty. This is an invalid
-      /// path name but is the *only* invalid path name. This is provided
-      /// so that path objects can be used to indicate the lack of a
-      /// valid path being found.
-      /// @brief Make the path empty.
-      void clear() { path.clear(); }
-
-      /// This method sets the Path object to \p unverified_path. This can fail
-      /// if the \p unverified_path does not pass the syntactic checks of the
-      /// isValid() method. If verification fails, the Path object remains
-      /// unchanged and false is returned. Otherwise true is returned and the
-      /// Path object takes on the path value of \p unverified_path
-      /// @returns true if the path was set, false otherwise.
-      /// @param unverified_path The path to be set in Path object.
-      /// @brief Set a full path from a std::string
-      bool set(const std::string& unverified_path);
-
-      /// One path component is removed from the Path. If only one component is
-      /// present in the path, the Path object becomes empty. If the Path object
-      /// is empty, no change is made.
-      /// @returns false if the path component could not be removed.
-      /// @brief Removes the last directory component of the Path.
-      bool eraseComponent();
-
-      /// The \p component is added to the end of the Path if it is a legal
-      /// name for the operating system. A directory separator will be added if
-      /// needed.
-      /// @returns false if the path component could not be added.
-      /// @brief Appends one path component to the Path.
-      bool appendComponent( const std::string& component );
-
-      /// A period and the \p suffix are appended to the end of the pathname.
-      /// The precondition for this function is that the Path reference a file
-      /// name (i.e. isFile() returns true). If the Path is not a file, no
-      /// action is taken and the function returns false. If the path would
-      /// become invalid for the host operating system, false is returned.
-      /// @returns false if the suffix could not be added, true if it was.
-      /// @brief Adds a period and the \p suffix to the end of the pathname.
-      bool appendSuffix(const std::string& suffix);
-
-      /// The suffix of the filename is erased. The suffix begins with and
-      /// includes the last . character in the filename after the last directory
-      /// separator and extends until the end of the name. If no . character is
-      /// after the last directory separator, then the file name is left
-      /// unchanged (i.e. it was already without a suffix) but the function
-      /// returns false.
-      /// @returns false if there was no suffix to remove, true otherwise.
-      /// @brief Remove the suffix from a path name.
-      bool eraseSuffix();
-
-      /// The current Path name is made unique in the file system. Upon return,
-      /// the Path will have been changed to make a unique file in the file
-      /// system or it will not have been changed if the current path name is
-      /// already unique.
-      /// @throws std::string if an unrecoverable error occurs.
-      /// @brief Make the current path name unique in the file system.
-      bool makeUnique( bool reuse_current /*= true*/, std::string* ErrMsg );
-
-    /// @}
-    /// @name Disk Mutators
-    /// @{
-    public:
-      /// This method attempts to make the file referenced by the Path object
-      /// available for reading so that the canRead() method will return true.
-      /// @brief Make the file readable;
-      bool makeReadableOnDisk(std::string* ErrMsg = 0);
-
-      /// This method attempts to make the file referenced by the Path object
-      /// available for writing so that the canWrite() method will return true.
-      /// @brief Make the file writable;
-      bool makeWriteableOnDisk(std::string* ErrMsg = 0);
-
-      /// This method attempts to make the file referenced by the Path object
-      /// available for execution so that the canExecute() method will return
-      /// true.
-      /// @brief Make the file readable;
-      bool makeExecutableOnDisk(std::string* ErrMsg = 0);
-
-      /// This method allows the last modified time stamp and permission bits
-      /// to be set on the disk object referenced by the Path.
-      /// @throws std::string if an error occurs.
-      /// @returns true on error.
-      /// @brief Set the status information.
-      bool setStatusInfoOnDisk(const FileStatus &SI,
-                               std::string *ErrStr = 0) const;
-
-      /// This method attempts to create a directory in the file system with the
-      /// same name as the Path object. The \p create_parents parameter controls
-      /// whether intermediate directories are created or not. if \p
-      /// create_parents is true, then an attempt will be made to create all
-      /// intermediate directories, as needed. If \p create_parents is false,
-      /// then only the final directory component of the Path name will be
-      /// created. The created directory will have no entries.
-      /// @returns true if the directory could not be created, false otherwise
-      /// @brief Create the directory this Path refers to.
-      bool createDirectoryOnDisk( 
-        bool create_parents = false, ///<  Determines whether non-existent 
-           ///< directory components other than the last one (the "parents") 
-           ///< are created or not.
-        std::string* ErrMsg = 0 ///< Optional place to put error messages.
-      );
-
-      /// This method attempts to create a file in the file system with the same
-      /// name as the Path object. The intermediate directories must all exist
-      /// at the time this method is called. Use createDirectoriesOnDisk to
-      /// accomplish that. The created file will be empty upon return from this
-      /// function.
-      /// @returns true if the file could not be created, false otherwise.
-      /// @brief Create the file this Path refers to.
-      bool createFileOnDisk(
-        std::string* ErrMsg = 0 ///< Optional place to put error messages.
-      );
-
-      /// This is like createFile except that it creates a temporary file. A
-      /// unique temporary file name is generated based on the contents of
-      /// \p this before the call. The new name is assigned to \p this and the
-      /// file is created.  Note that this will both change the Path object
-      /// *and* create the corresponding file. This function will ensure that
-      /// the newly generated temporary file name is unique in the file system.
-      /// @returns true if the file couldn't be created, false otherwise. 
-      /// @brief Create a unique temporary file
-      bool createTemporaryFileOnDisk(
-        bool reuse_current = false, ///< When set to true, this parameter 
-          ///< indicates that if the current file name does not exist then 
-          ///< it will be used without modification.
-        std::string* ErrMsg = 0 ///< Optional place to put error messages
-      );
-
-      /// This method renames the file referenced by \p this as \p newName. The
-      /// file referenced by \p this must exist. The file referenced by
-      /// \p newName does not need to exist.
-      /// @returns true on error, false otherwise
-      /// @brief Rename one file as another.
-      bool renamePathOnDisk(const Path& newName, std::string* ErrMsg);
-
-      /// This method attempts to destroy the file or directory named by the
-      /// last component of the Path. If the Path refers to a directory and the
-      /// \p destroy_contents is false, an attempt will be made to remove just
-      /// the directory (the final Path component). If \p destroy_contents is
-      /// true, an attempt will be made to remove the entire contents of the
-      /// directory, recursively. If the Path refers to a file, the
-      /// \p destroy_contents parameter is ignored.
-      /// @param destroy_contents Indicates whether the contents of a destroyed
-      /// directory should also be destroyed (recursively).
-      /// @returns false if the file/directory was destroyed, true on error.
-      /// @brief Removes the file or directory from the filesystem.
-      bool eraseFromDisk(bool destroy_contents = false,
-                         std::string *Err = 0) const;
-    /// @}
-    /// @name Data
-    /// @{
-    protected:
-      mutable std::string path;   ///< Storage for the path name.
-
-    /// @}
-  };
-
-  /// This class is identical to Path class except it allows you to obtain the
-  /// file status of the Path as well. The reason for the distinction is one of
-  /// efficiency. First, the file status requires additional space and the space
-  /// is incorporated directly into PathWithStatus without an additional malloc.
-  /// Second, obtaining status information is an expensive operation on most
-  /// operating systems so we want to be careful and explicity about where we
-  /// allow this operation in LLVM.
-  /// @brief Path with file status class.
-  class PathWithStatus : public Path {
-    /// @name Constructors
-    /// @{
-    public: 
-      /// @brief Default constructor
-      PathWithStatus() : Path(), status(), fsIsValid(false) {}
-
-      /// @brief Copy constructor
-      PathWithStatus(const PathWithStatus &that) 
-        : Path(static_cast<const Path&>(that)), status(that.status), 
-           fsIsValid(that.fsIsValid) {}
-
-      /// This constructor allows construction from a Path object
-      /// @brief Path constructor
-      PathWithStatus(const Path &other) 
-        : Path(other), status(), fsIsValid(false) {}
-
-      /// This constructor will accept a std::string as a path. No checking is
-      /// done on this path to determine if it is valid. To determine validity
-      /// of the path, use the isValid method. 
-      /// @param p The path to assign.
-      /// @brief Construct a Path from a string.
-      explicit PathWithStatus(const std::string& p) 
-        : Path(p), status(), fsIsValid(false) {}
-
-      /// This constructor will accept a character range as a path.  No checking
-      /// is done on this path to determine if it is valid.  To determine
-      /// validity of the path, use the isValid method. 
-      /// @param p The path to assign.
-      /// @brief Construct a Path from a string.
-      explicit PathWithStatus(const char *StrStart, unsigned StrLen)
-        : Path(StrStart, StrLen), status(), fsIsValid(false) {}
-
-      /// Makes a copy of \p that to \p this.
-      /// @returns \p this
-      /// @brief Assignment Operator
-      PathWithStatus &operator=(const PathWithStatus &that) {
-        static_cast<Path&>(*this) = static_cast<const Path&>(that);
-        status = that.status;
-        fsIsValid = that.fsIsValid;
-        return *this;
-      }
-
-      /// Makes a copy of \p that to \p this.
-      /// @returns \p this
-      /// @brief Assignment Operator
-      PathWithStatus &operator=(const Path &that) {
-        static_cast<Path&>(*this) = static_cast<const Path&>(that);
-        fsIsValid = false;
-        return *this;
-      }
-
-    /// @}
-    /// @name Methods
-    /// @{
-    public:
-      /// This function returns status information about the file. The type of
-      /// path (file or directory) is updated to reflect the actual contents
-      /// of the file system.
-      /// @returns 0 on failure, with Error explaining why (if non-zero)
-      /// @returns a pointer to a FileStatus structure on success.
-      /// @brief Get file status.
-      const FileStatus *getFileStatus(
-        bool forceUpdate = false, ///< Force an update from the file system
-        std::string *Error = 0    ///< Optional place to return an error msg.
-      ) const;
-
-    /// @}
-    /// @name Data
-    /// @{
-    private:
-      mutable FileStatus status; ///< Status information.
-      mutable bool fsIsValid;    ///< Whether we've obtained it or not
-
-    /// @}
-  };
-
-  /// This enumeration delineates the kinds of files that LLVM knows about.
-  enum LLVMFileType {
-    Unknown_FileType = 0,              ///< Unrecognized file
-    Bitcode_FileType,                  ///< Bitcode file
-    Archive_FileType,                  ///< ar style archive file
-    ELF_Relocatable_FileType,          ///< ELF Relocatable object file
-    ELF_Executable_FileType,           ///< ELF Executable image
-    ELF_SharedObject_FileType,         ///< ELF dynamically linked shared lib
-    ELF_Core_FileType,                 ///< ELF core image
-    Mach_O_Object_FileType,            ///< Mach-O Object file
-    Mach_O_Executable_FileType,        ///< Mach-O Executable
-    Mach_O_FixedVirtualMemorySharedLib_FileType, ///< Mach-O Shared Lib, FVM
-    Mach_O_Core_FileType,              ///< Mach-O Core File
-    Mach_O_PreloadExectuable_FileType, ///< Mach-O Preloaded Executable
-    Mach_O_DynamicallyLinkedSharedLib_FileType, ///< Mach-O dynlinked shared lib
-    Mach_O_DynamicLinker_FileType,     ///< The Mach-O dynamic linker
-    Mach_O_Bundle_FileType,            ///< Mach-O Bundle file
-    Mach_O_DynamicallyLinkedSharedLibStub_FileType, ///< Mach-O Shared lib stub
-    COFF_FileType                      ///< COFF object file or lib
-  };
-
-  /// This utility function allows any memory block to be examined in order
-  /// to determine its file type.
-  LLVMFileType IdentifyFileType(const char*magic, unsigned length);
-
-  /// This function can be used to copy the file specified by Src to the
-  /// file specified by Dest. If an error occurs, Dest is removed.
-  /// @returns true if an error occurs, false otherwise
-  /// @brief Copy one file to another.
-  bool CopyFile(const Path& Dest, const Path& Src, std::string* ErrMsg);
-}
-
-std::ostream& operator<<(std::ostream& strm, const sys::Path& aPath);
-inline std::ostream& operator<<(std::ostream& strm, 
-                                const sys::PathWithStatus& aPath) {
-  strm << static_cast<const sys::Path&>(aPath);
-  return strm;
-}
-
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemPath)
-#endif
diff --git a/support/include/llvm/System/Process.h b/support/include/llvm/System/Process.h
deleted file mode 100644
index f843af3..0000000
--- a/support/include/llvm/System/Process.h
+++ /dev/null
@@ -1,105 +0,0 @@
-//===- llvm/System/Process.h ------------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::Process class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_PROCESS_H
-#define LLVM_SYSTEM_PROCESS_H
-
-#include "llvm/System/TimeValue.h"
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-namespace sys {
-
-  /// This class provides an abstraction for getting information about the
-  /// currently executing process.
-  /// @since 1.4
-  /// @brief An abstraction for operating system processes.
-  class Process {
-    /// @name Accessors
-    /// @{
-    public:
-      /// This static function will return the operating system's virtual memory
-      /// page size.
-      /// @returns The number of bytes in a virtual memory page.
-      /// @throws nothing
-      /// @brief Get the virtual memory page size
-      static unsigned GetPageSize();
-
-      /// This static function will return the total amount of memory allocated
-      /// by the process. This only counts the memory allocated via the malloc,
-      /// calloc and realloc functions and includes any "free" holes in the
-      /// allocated space.
-      /// @throws nothing
-      /// @brief Return process memory usage.
-      static size_t GetMallocUsage();
-
-      /// This static function will return the total memory usage of the
-      /// process. This includes code, data, stack and mapped pages usage. Notei
-      /// that the value returned here is not necessarily the Running Set Size,
-      /// it is the total virtual memory usage, regardless of mapped state of
-      /// that memory.
-      static size_t GetTotalMemoryUsage();
-
-      /// This static function will set \p user_time to the amount of CPU time
-      /// spent in user (non-kernel) mode and \p sys_time to the amount of CPU
-      /// time spent in system (kernel) mode.  If the operating system does not
-      /// support collection of these metrics, a zero TimeValue will be for both
-      /// values.
-      static void GetTimeUsage(
-        TimeValue& elapsed,
-          ///< Returns the TimeValue::now() giving current time
-        TimeValue& user_time,
-          ///< Returns the current amount of user time for the process
-        TimeValue& sys_time
-          ///< Returns the current amount of system time for the process
-      );
-
-      /// This static function will return the process' current user id number.
-      /// Not all operating systems support this feature. Where it is not
-      /// supported, the function should return 65536 as the value.
-      static int GetCurrentUserId();
-
-      /// This static function will return the process' current group id number.
-      /// Not all operating systems support this feature. Where it is not
-      /// supported, the function should return 65536 as the value.
-      static int GetCurrentGroupId();
-
-      /// This function makes the necessary calls to the operating system to
-      /// prevent core files or any other kind of large memory dumps that can
-      /// occur when a program fails.
-      /// @brief Prevent core file generation.
-      static void PreventCoreFiles();
-
-      /// This function determines if the standard input is connected directly
-      /// to a user's input (keyboard probably), rather than coming from a file
-      /// or pipe.
-      static bool StandardInIsUserInput();
-
-      /// This function determines if the standard output is connected to a
-      /// "tty" or "console" window. That is, the output would be displayed to
-      /// the user rather than being put on a pipe or stored in a file.
-      static bool StandardOutIsDisplayed();
-
-      /// This function determines if the standard error is connected to a
-      /// "tty" or "console" window. That is, the output would be displayed to
-      /// the user rather than being put on a pipe or stored in a file.
-      static bool StandardErrIsDisplayed();
-
-    /// @}
-  };
-}
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemProcess)
-
-#endif
diff --git a/support/include/llvm/System/Program.h b/support/include/llvm/System/Program.h
deleted file mode 100644
index cef3805..0000000
--- a/support/include/llvm/System/Program.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//===- llvm/System/Program.h ------------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the llvm::sys::Program class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_PROGRAM_H
-#define LLVM_SYSTEM_PROGRAM_H
-
-#include "llvm/System/Path.h"
-#include "llvm/System/IncludeFile.h"
-#include <vector>
-
-namespace llvm {
-namespace sys {
-
-  /// This class provides an abstraction for programs that are executable by the
-  /// operating system. It provides a platform generic way to find executable
-  /// programs from the path and to execute them in various ways. The sys::Path
-  /// class is used to specify the location of the Program.
-  /// @since 1.4
-  /// @brief An abstraction for finding and executing programs.
-  class Program {
-    /// @name Methods
-    /// @{
-    public:
-      /// This static constructor (factory) will attempt to locate a program in
-      /// the operating system's file system using some pre-determined set of
-      /// locations to search (e.g. the PATH on Unix).
-      /// @returns A Path object initialized to the path of the program or a
-      /// Path object that is empty (invalid) if the program could not be found.
-      /// @throws nothing
-      /// @brief Construct a Program by finding it by name.
-      static Path FindProgramByName(const std::string& name);
-
-      /// This function executes the program using the \p arguments provided and
-      /// waits for the program to exit. This function will block the current
-      /// program until the invoked program exits. The invoked program will
-      /// inherit the stdin, stdout, and stderr file descriptors, the
-      /// environment and other configuration settings of the invoking program.
-      /// If Path::executable() does not return true when this function is
-      /// called then a std::string is thrown.
-      /// @returns an integer result code indicating the status of the program.
-      /// A zero or positive value indicates the result code of the program. A
-      /// negative value is the signal number on which it terminated. 
-      /// @see FindProgrambyName
-      /// @brief Executes the program with the given set of \p args.
-      static int ExecuteAndWait(
-        const Path& path,  ///< sys::Path object providing the path of the 
-          ///< program to be executed. It is presumed this is the result of 
-          ///< the FindProgramByName method.
-        const char** args, ///< A vector of strings that are passed to the
-          ///< program.  The first element should be the name of the program.
-          ///< The list *must* be terminated by a null char* entry.
-        const char ** env = 0, ///< An optional vector of strings to use for
-          ///< the program's environment. If not provided, the current program's
-          ///< environment will be used.
-        const sys::Path** redirects = 0, ///< An optional array of pointers to
-          ///< Paths. If the array is null, no redirection is done. The array
-          ///< should have a size of at least three. If the pointer in the array
-          ///< are not null, then the inferior process's stdin(0), stdout(1),
-          ///< and stderr(2) will be redirected to the corresponding Paths.
-        unsigned secondsToWait = 0, ///< If non-zero, this specifies the amount
-          ///< of time to wait for the child process to exit. If the time
-          ///< expires, the child is killed and this call returns. If zero,
-          ///< this function will wait until the child finishes or forever if
-          ///< it doesn't.
-        unsigned memoryLimit = 0, ///< If non-zero, this specifies max. amount
-          ///< of memory can be allocated by process. If memory usage will be
-          ///< higher limit, the child is killed and this call returns. If zero -
-          ///< no memory limit.
-        std::string* ErrMsg = 0 ///< If non-zero, provides a pointer to a string
-          ///< instance in which error messages will be returned. If the string 
-          ///< is non-empty upon return an error occurred while invoking the
-          ///< program.
-      );
-      // These methods change the specified standard stream (stdin or stdout) to
-      // binary mode. They return true if an error occurred
-      static bool ChangeStdinToBinary();
-      static bool ChangeStdoutToBinary();
-    /// @}
-  };
-}
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemProgram)
-
-#endif
diff --git a/support/include/llvm/System/Signals.h b/support/include/llvm/System/Signals.h
deleted file mode 100644
index f4b8b14..0000000
--- a/support/include/llvm/System/Signals.h
+++ /dev/null
@@ -1,55 +0,0 @@
-//===- llvm/System/Signals.h - Signal Handling support ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines some helpful functions for dealing with the possibility of
-// unix signals occuring while your program is running.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_SIGNALS_H
-#define LLVM_SYSTEM_SIGNALS_H
-
-#include "llvm/System/Path.h"
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-namespace sys {
-
-  /// This function registers signal handlers to ensure that if a signal gets
-  /// delivered that the named file is removed.
-  /// @brief Remove a file if a fatal signal occurs.
-  bool RemoveFileOnSignal(const Path &Filename, std::string* ErrMsg = 0);
-
-  /// This function registers a signal handler to ensure that if a fatal signal
-  /// gets delivered to the process that the named directory and all its
-  /// contents are removed.
-  /// @brief Remove a directory if a fatal signal occurs.
-  bool RemoveDirectoryOnSignal(const Path& path, std::string* ErrMsg = 0);
-
-  /// When an error signal (such as SIBABRT or SIGSEGV) is delivered to the
-  /// process, print a stack trace and then exit.
-  /// @brief Print a stack trace if a fatal signal occurs.
-  void PrintStackTraceOnErrorSignal();
-
-  /// This function registers a function to be called when the user "interrupts"
-  /// the program (typically by pressing ctrl-c).  When the user interrupts the
-  /// program, the specified interrupt function is called instead of the program
-  /// being killed, and the interrupt function automatically disabled.  Note
-  /// that interrupt functions are not allowed to call any non-reentrant
-  /// functions.  An null interrupt function pointer disables the current
-  /// installed function.  Note also that the handler may be executed on a
-  /// different thread on some platforms.
-  /// @brief Register a function to be called when ctrl-c is pressed.
-  void SetInterruptFunction(void (*IF)());
-} // End sys namespace
-} // End llvm namespace
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemSignals)
-
-#endif
diff --git a/support/include/llvm/System/TimeValue.h b/support/include/llvm/System/TimeValue.h
deleted file mode 100644
index 93610b8..0000000
--- a/support/include/llvm/System/TimeValue.h
+++ /dev/null
@@ -1,385 +0,0 @@
-//===-- TimeValue.h - Declare OS TimeValue Concept --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This header file declares the operating system TimeValue concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/DataTypes.h"
-#include "llvm/System/IncludeFile.h"
-#include <string>
-
-#ifndef LLVM_SYSTEM_TIMEVALUE_H
-#define LLVM_SYSTEM_TIMEVALUE_H
-
-namespace llvm {
-namespace sys {
-  /// This class is used where a precise fixed point in time is required. The
-  /// range of TimeValue spans many hundreds of billions of years both past and
-  /// present.  The precision of TimeValue is to the nanosecond. However, the
-  /// actual precision of its values will be determined by the resolution of
-  /// the system clock. The TimeValue class is used in conjunction with several
-  /// other lib/System interfaces to specify the time at which a call should
-  /// timeout, etc.
-  /// @since 1.4
-  /// @brief Provides an abstraction for a fixed point in time.
-  class TimeValue {
-
-  /// @name Constants
-  /// @{
-  public:
-
-    /// A constant TimeValue representing the smallest time
-    /// value permissable by the class. MinTime is some point
-    /// in the distant past, about 300 billion years BCE.
-    /// @brief The smallest possible time value.
-    static const TimeValue MinTime;
-
-    /// A constant TimeValue representing the largest time
-    /// value permissable by the class. MaxTime is some point
-    /// in the distant future, about 300 billion years AD.
-    /// @brief The largest possible time value.
-    static const TimeValue MaxTime;
-
-    /// A constant TimeValue representing the base time,
-    /// or zero time of 00:00:00 (midnight) January 1st, 2000.
-    /// @brief 00:00:00 Jan 1, 2000 UTC.
-    static const TimeValue ZeroTime;
-
-    /// A constant TimeValue for the Posix base time which is
-    /// 00:00:00 (midnight) January 1st, 1970.
-    /// @brief 00:00:00 Jan 1, 1970 UTC.
-    static const TimeValue PosixZeroTime;
-
-    /// A constant TimeValue for the Win32 base time which is
-    /// 00:00:00 (midnight) January 1st, 1601.
-    /// @brief 00:00:00 Jan 1, 1601 UTC.
-    static const TimeValue Win32ZeroTime;
-
-  /// @}
-  /// @name Types
-  /// @{
-  public:
-    typedef int64_t SecondsType;        ///< Type used for representing seconds.
-    typedef int32_t NanoSecondsType;    ///< Type used for representing nanoseconds.
-
-    enum TimeConversions {
-      NANOSECONDS_PER_SECOND = 1000000000,  ///< One Billion
-      MICROSECONDS_PER_SECOND = 1000000,    ///< One Million
-      MILLISECONDS_PER_SECOND = 1000,       ///< One Thousand
-      NANOSECONDS_PER_MICROSECOND = 1000,   ///< One Thousand
-      NANOSECONDS_PER_MILLISECOND = 1000000,///< One Million
-      NANOSECONDS_PER_POSIX_TICK = 100,     ///< Posix tick is 100 Hz (10ms)
-      NANOSECONDS_PER_WIN32_TICK = 100      ///< Win32 tick is 100 Hz (10ms)
-    };
-
-  /// @}
-  /// @name Constructors
-  /// @{
-  public:
-    /// Caller provides the exact value in seconds and nanoseconds. The
-    /// \p nanos argument defaults to zero for convenience.
-    /// @brief Explicit constructor
-    explicit TimeValue (SecondsType seconds, NanoSecondsType nanos = 0)
-      : seconds_( seconds ), nanos_( nanos ) { this->normalize(); }
-
-    /// Caller provides the exact value as a double in seconds with the
-    /// fractional part representing nanoseconds.
-    /// @brief Double Constructor.
-    explicit TimeValue( double new_time )
-      : seconds_( 0 ) , nanos_ ( 0 ) {
-      SecondsType integer_part = static_cast<SecondsType>( new_time );
-      seconds_ = integer_part;
-      nanos_ = static_cast<NanoSecondsType>( (new_time -
-               static_cast<double>(integer_part)) * NANOSECONDS_PER_SECOND );
-      this->normalize();
-    }
-
-    /// This is a static constructor that returns a TimeValue that represents
-    /// the current time.
-    /// @brief Creates a TimeValue with the current time (UTC).
-    static TimeValue now();
-
-  /// @}
-  /// @name Operators
-  /// @{
-  public:
-    /// Add \p that to \p this.
-    /// @returns this
-    /// @brief Incrementing assignment operator.
-    TimeValue& operator += (const TimeValue& that ) {
-      this->seconds_ += that.seconds_  ;
-      this->nanos_ += that.nanos_ ;
-      this->normalize();
-      return *this;
-    }
-
-    /// Subtract \p that from \p this.
-    /// @returns this
-    /// @brief Decrementing assignment operator.
-    TimeValue& operator -= (const TimeValue &that ) {
-      this->seconds_ -= that.seconds_ ;
-      this->nanos_ -= that.nanos_ ;
-      this->normalize();
-      return *this;
-    }
-
-    /// Determine if \p this is less than \p that.
-    /// @returns True iff *this < that.
-    /// @brief True if this < that.
-    int operator < (const TimeValue &that) const { return that > *this; }
-
-    /// Determine if \p this is greather than \p that.
-    /// @returns True iff *this > that.
-    /// @brief True if this > that.
-    int operator > (const TimeValue &that) const {
-      if ( this->seconds_ > that.seconds_ ) {
-          return 1;
-      } else if ( this->seconds_ == that.seconds_ ) {
-          if ( this->nanos_ > that.nanos_ ) return 1;
-      }
-      return 0;
-    }
-
-    /// Determine if \p this is less than or equal to \p that.
-    /// @returns True iff *this <= that.
-    /// @brief True if this <= that.
-    int operator <= (const TimeValue &that) const { return that >= *this; }
-
-    /// Determine if \p this is greater than or equal to \p that.
-    /// @returns True iff *this >= that.
-    /// @brief True if this >= that.
-    int operator >= (const TimeValue &that) const {
-      if ( this->seconds_ > that.seconds_ ) {
-          return 1;
-      } else if ( this->seconds_ == that.seconds_ ) {
-          if ( this->nanos_ >= that.nanos_ ) return 1;
-      }
-      return 0;
-    }
-
-    /// Determines if two TimeValue objects represent the same moment in time.
-    /// @brief True iff *this == that.
-    /// @brief True if this == that.
-    int operator == (const TimeValue &that) const {
-      return (this->seconds_ == that.seconds_) &&
-             (this->nanos_ == that.nanos_);
-    }
-
-    /// Determines if two TimeValue objects represent times that are not the
-    /// same.
-    /// @return True iff *this != that.
-    /// @brief True if this != that.
-    int operator != (const TimeValue &that) const { return !(*this == that); }
-
-    /// Adds two TimeValue objects together.
-    /// @returns The sum of the two operands as a new TimeValue
-    /// @brief Addition operator.
-    friend TimeValue operator + (const TimeValue &tv1, const TimeValue &tv2);
-
-    /// Subtracts two TimeValue objects.
-    /// @returns The difference of the two operands as a new TimeValue
-    /// @brief Subtraction operator.
-    friend TimeValue operator - (const TimeValue &tv1, const TimeValue &tv2);
-
-  /// @}
-  /// @name Accessors
-  /// @{
-  public:
-
-    /// Returns only the seconds component of the TimeValue. The nanoseconds
-    /// portion is ignored. No rounding is performed.
-    /// @brief Retrieve the seconds component
-    SecondsType seconds() const { return seconds_; }
-
-    /// Returns only the nanoseconds component of the TimeValue. The seconds
-    /// portion is ignored.
-    /// @brief Retrieve the nanoseconds component.
-    NanoSecondsType nanoseconds() const { return nanos_; }
-
-    /// Returns only the fractional portion of the TimeValue rounded down to the
-    /// nearest microsecond (divide by one thousand).
-    /// @brief Retrieve the fractional part as microseconds;
-    uint32_t microseconds() const {
-      return nanos_ / NANOSECONDS_PER_MICROSECOND;
-    }
-
-    /// Returns only the fractional portion of the TimeValue rounded down to the
-    /// nearest millisecond (divide by one million).
-    /// @brief Retrieve the fractional part as milliseconds;
-    uint32_t milliseconds() const {
-      return nanos_ / NANOSECONDS_PER_MILLISECOND;
-    }
-
-    /// Returns the TimeValue as a number of microseconds. Note that the value
-    /// returned can overflow because the range of a uint64_t is smaller than
-    /// the range of a TimeValue. Nevertheless, this is useful on some operating
-    /// systems and is therefore provided.
-    /// @brief Convert to a number of microseconds (can overflow)
-    uint64_t usec() const {
-      return seconds_ * MICROSECONDS_PER_SECOND +
-             ( nanos_ / NANOSECONDS_PER_MICROSECOND );
-    }
-
-    /// Returns the TimeValue as a number of milliseconds. Note that the value
-    /// returned can overflow because the range of a uint64_t is smaller than
-    /// the range of a TimeValue. Nevertheless, this is useful on some operating
-    /// systems and is therefore provided.
-    /// @brief Convert to a number of milliseconds (can overflow)
-    uint64_t msec() const {
-      return seconds_ * MILLISECONDS_PER_SECOND +
-             ( nanos_ / NANOSECONDS_PER_MILLISECOND );
-    }
-
-    /// Converts the TimeValue into the corresponding number of "ticks" for
-    /// Posix, correcting for the difference in Posix zero time.
-    /// @brief Convert to unix time (100 nanoseconds since 12:00:00a Jan 1,1970)
-    uint64_t toPosixTime() const {
-      uint64_t result = seconds_ - PosixZeroTime.seconds_;
-      result += nanos_ / NANOSECONDS_PER_POSIX_TICK;
-      return result;
-    }
-
-    /// Converts the TimeValue into the corresponding number of seconds
-    /// since the epoch (00:00:00 Jan 1,1970).
-    uint64_t toEpochTime() const {
-      return seconds_ - PosixZeroTime.seconds_;
-    }
-
-    /// Converts the TiemValue into the correspodning number of "ticks" for
-    /// Win32 platforms, correcting for the difference in Win32 zero time.
-    /// @brief Convert to windows time (seconds since 12:00:00a Jan 1, 1601)
-    uint64_t toWin32Time() const {
-      uint64_t result = seconds_ - Win32ZeroTime.seconds_;
-      result += nanos_ / NANOSECONDS_PER_WIN32_TICK;
-      return result;
-    }
-
-    /// Provides the seconds and nanoseconds as results in its arguments after
-    /// correction for the Posix zero time.
-    /// @brief Convert to timespec time (ala POSIX.1b)
-    void getTimespecTime( uint64_t& seconds, uint32_t& nanos ) const {
-      seconds = seconds_ - PosixZeroTime.seconds_;
-      nanos = nanos_;
-    }
-
-    /// Provides conversion of the TimeValue into a readable time & date.
-    /// @returns std::string containing the readable time value
-    /// @brief Convert time to a string.
-    std::string toString() const;
-
-  /// @}
-  /// @name Mutators
-  /// @{
-  public:
-    /// The seconds component of the TimeValue is set to \p sec without
-    /// modifying the nanoseconds part.  This is useful for whole second
-    /// arithmetic.
-    /// @brief Set the seconds component.
-    void seconds (SecondsType sec ) {
-      this->seconds_ = sec;
-      this->normalize();
-    }
-
-    /// The nanoseconds component of the TimeValue is set to \p nanos without
-    /// modifying the seconds part. This is useful for basic computations
-    /// involving just the nanoseconds portion. Note that the TimeValue will be
-    /// normalized after this call so that the fractional (nanoseconds) portion
-    /// will have the smallest equivalent value.
-    /// @brief Set the nanoseconds component using a number of nanoseconds.
-    void nanoseconds ( NanoSecondsType nanos ) {
-      this->nanos_ = nanos;
-      this->normalize();
-    }
-
-    /// The seconds component remains unchanged.
-    /// @brief Set the nanoseconds component using a number of microseconds.
-    void microseconds ( int32_t micros ) {
-      this->nanos_ = micros * NANOSECONDS_PER_MICROSECOND;
-      this->normalize();
-    }
-
-    /// The seconds component remains unchanged.
-    /// @brief Set the nanoseconds component using a number of milliseconds.
-    void milliseconds ( int32_t millis ) {
-      this->nanos_ = millis * NANOSECONDS_PER_MILLISECOND;
-      this->normalize();
-    }
-
-    /// @brief Converts from microsecond format to TimeValue format
-    void usec( int64_t microseconds ) {
-      this->seconds_ = microseconds / MICROSECONDS_PER_SECOND;
-      this->nanos_ = NanoSecondsType(microseconds % MICROSECONDS_PER_SECOND) *
-        NANOSECONDS_PER_MICROSECOND;
-      this->normalize();
-    }
-
-    /// @brief Converts from millisecond format to TimeValue format
-    void msec( int64_t milliseconds ) {
-      this->seconds_ = milliseconds / MILLISECONDS_PER_SECOND;
-      this->nanos_ = NanoSecondsType(milliseconds % MILLISECONDS_PER_SECOND) *
-        NANOSECONDS_PER_MILLISECOND;
-      this->normalize();
-    }
-
-    /// Converts the \p seconds argument from PosixTime to the corresponding
-    /// TimeValue and assigns that value to \p this.
-    /// @brief Convert seconds form PosixTime to TimeValue
-    void fromEpochTime( SecondsType seconds ) {
-      seconds_ = seconds + PosixZeroTime.seconds_;
-      nanos_ = 0;
-      this->normalize();
-    }
-
-    /// Converts the \p win32Time argument from Windows FILETIME to the
-    /// corresponding TimeValue and assigns that value to \p this.
-    /// @brief Convert seconds form Windows FILETIME to TimeValue
-    void fromWin32Time( uint64_t win32Time ) {
-      this->seconds_ = win32Time / 10000000 + Win32ZeroTime.seconds_;
-      this->nanos_ = NanoSecondsType(win32Time  % 10000000) * 100;
-    }
-
-  /// @}
-  /// @name Implementation
-  /// @{
-  private:
-    /// This causes the values to be represented so that the fractional
-    /// part is minimized, possibly incrementing the seconds part.
-    /// @brief Normalize to canonical form.
-    void normalize();
-
-  /// @}
-  /// @name Data
-  /// @{
-  private:
-    /// Store the values as a <timeval>.
-    SecondsType      seconds_;///< Stores the seconds part of the TimeVal
-    NanoSecondsType  nanos_;  ///< Stores the nanoseconds part of the TimeVal
-  /// @}
-
-  };
-
-inline TimeValue operator + (const TimeValue &tv1, const TimeValue &tv2) {
-  TimeValue sum (tv1.seconds_ + tv2.seconds_, tv1.nanos_ + tv2.nanos_);
-  sum.normalize ();
-  return sum;
-}
-
-inline TimeValue operator - (const TimeValue &tv1, const TimeValue &tv2) {
-  TimeValue difference (tv1.seconds_ - tv2.seconds_, tv1.nanos_ - tv2.nanos_ );
-  difference.normalize ();
-  return difference;
-}
-
-}
-}
-
-FORCE_DEFINING_FILE_TO_BE_LINKED(SystemTimeValue)
-
-#endif
diff --git a/support/lib/Makefile b/support/lib/Makefile
deleted file mode 100644
index 885a0ed..0000000
--- a/support/lib/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- lib/Makefile ----------------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-GOAL  := common
-PARALLEL_DIRS := System Support
-
-include $(LEVEL)/Makefile.config
-
diff --git a/support/lib/Support/APInt.cpp b/support/lib/Support/APInt.cpp
deleted file mode 100644
index d50eb5f..0000000
--- a/support/lib/Support/APInt.cpp
+++ /dev/null
@@ -1,2013 +0,0 @@
-//===-- APInt.cpp - Implement APInt class ---------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Sheng Zhou and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a class to represent arbitrary precision integer
-// constant values and provide a variety of arithmetic operations on them.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "apint"
-#include "llvm/ADT/APInt.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/MathExtras.h"
-#include <math.h>
-#include <limits>
-#include <cstring>
-#include <cstdlib>
-#ifndef NDEBUG
-#include <iomanip>
-#endif
-
-using namespace llvm;
-
-/// A utility function for allocating memory, checking for allocation failures,
-/// and ensuring the contents are zeroed.
-inline static uint64_t* getClearedMemory(uint32_t numWords) {
-  uint64_t * result = new uint64_t[numWords];
-  assert(result && "APInt memory allocation fails!");
-  memset(result, 0, numWords * sizeof(uint64_t));
-  return result;
-}
-
-/// A utility function for allocating memory and checking for allocation 
-/// failure.  The content is not zeroed.
-inline static uint64_t* getMemory(uint32_t numWords) {
-  uint64_t * result = new uint64_t[numWords];
-  assert(result && "APInt memory allocation fails!");
-  return result;
-}
-
-APInt::APInt(uint32_t numBits, uint64_t val, bool isSigned) 
-  : BitWidth(numBits), VAL(0) {
-  assert(BitWidth >= MIN_INT_BITS && "bitwidth too small");
-  assert(BitWidth <= MAX_INT_BITS && "bitwidth too large");
-  if (isSingleWord())
-    VAL = val;
-  else {
-    pVal = getClearedMemory(getNumWords());
-    pVal[0] = val;
-    if (isSigned && int64_t(val) < 0) 
-      for (unsigned i = 1; i < getNumWords(); ++i)
-        pVal[i] = -1ULL;
-  }
-  clearUnusedBits();
-}
-
-APInt::APInt(uint32_t numBits, uint32_t numWords, uint64_t bigVal[])
-  : BitWidth(numBits), VAL(0)  {
-  assert(BitWidth >= MIN_INT_BITS && "bitwidth too small");
-  assert(BitWidth <= MAX_INT_BITS && "bitwidth too large");
-  assert(bigVal && "Null pointer detected!");
-  if (isSingleWord())
-    VAL = bigVal[0];
-  else {
-    // Get memory, cleared to 0
-    pVal = getClearedMemory(getNumWords());
-    // Calculate the number of words to copy
-    uint32_t words = std::min<uint32_t>(numWords, getNumWords());
-    // Copy the words from bigVal to pVal
-    memcpy(pVal, bigVal, words * APINT_WORD_SIZE);
-  }
-  // Make sure unused high bits are cleared
-  clearUnusedBits();
-}
-
-APInt::APInt(uint32_t numbits, const char StrStart[], uint32_t slen, 
-             uint8_t radix) 
-  : BitWidth(numbits), VAL(0) {
-  assert(BitWidth >= MIN_INT_BITS && "bitwidth too small");
-  assert(BitWidth <= MAX_INT_BITS && "bitwidth too large");
-  fromString(numbits, StrStart, slen, radix);
-}
-
-APInt::APInt(uint32_t numbits, const std::string& Val, uint8_t radix)
-  : BitWidth(numbits), VAL(0) {
-  assert(BitWidth >= MIN_INT_BITS && "bitwidth too small");
-  assert(BitWidth <= MAX_INT_BITS && "bitwidth too large");
-  assert(!Val.empty() && "String empty?");
-  fromString(numbits, Val.c_str(), Val.size(), radix);
-}
-
-APInt::APInt(const APInt& that)
-  : BitWidth(that.BitWidth), VAL(0) {
-  assert(BitWidth >= MIN_INT_BITS && "bitwidth too small");
-  assert(BitWidth <= MAX_INT_BITS && "bitwidth too large");
-  if (isSingleWord()) 
-    VAL = that.VAL;
-  else {
-    pVal = getMemory(getNumWords());
-    memcpy(pVal, that.pVal, getNumWords() * APINT_WORD_SIZE);
-  }
-}
-
-APInt::~APInt() {
-  if (!isSingleWord() && pVal) 
-    delete [] pVal;
-}
-
-APInt& APInt::operator=(const APInt& RHS) {
-  // Don't do anything for X = X
-  if (this == &RHS)
-    return *this;
-
-  // If the bitwidths are the same, we can avoid mucking with memory
-  if (BitWidth == RHS.getBitWidth()) {
-    if (isSingleWord()) 
-      VAL = RHS.VAL;
-    else
-      memcpy(pVal, RHS.pVal, getNumWords() * APINT_WORD_SIZE);
-    return *this;
-  }
-
-  if (isSingleWord())
-    if (RHS.isSingleWord())
-      VAL = RHS.VAL;
-    else {
-      VAL = 0;
-      pVal = getMemory(RHS.getNumWords());
-      memcpy(pVal, RHS.pVal, RHS.getNumWords() * APINT_WORD_SIZE);
-    }
-  else if (getNumWords() == RHS.getNumWords()) 
-    memcpy(pVal, RHS.pVal, RHS.getNumWords() * APINT_WORD_SIZE);
-  else if (RHS.isSingleWord()) {
-    delete [] pVal;
-    VAL = RHS.VAL;
-  } else {
-    delete [] pVal;
-    pVal = getMemory(RHS.getNumWords());
-    memcpy(pVal, RHS.pVal, RHS.getNumWords() * APINT_WORD_SIZE);
-  }
-  BitWidth = RHS.BitWidth;
-  return clearUnusedBits();
-}
-
-APInt& APInt::operator=(uint64_t RHS) {
-  if (isSingleWord()) 
-    VAL = RHS;
-  else {
-    pVal[0] = RHS;
-    memset(pVal+1, 0, (getNumWords() - 1) * APINT_WORD_SIZE);
-  }
-  return clearUnusedBits();
-}
-
-/// add_1 - This function adds a single "digit" integer, y, to the multiple 
-/// "digit" integer array,  x[]. x[] is modified to reflect the addition and
-/// 1 is returned if there is a carry out, otherwise 0 is returned.
-/// @returns the carry of the addition.
-static bool add_1(uint64_t dest[], uint64_t x[], uint32_t len, uint64_t y) {
-  for (uint32_t i = 0; i < len; ++i) {
-    dest[i] = y + x[i];
-    if (dest[i] < y)
-      y = 1; // Carry one to next digit.
-    else {
-      y = 0; // No need to carry so exit early
-      break;
-    }
-  }
-  return y;
-}
-
-/// @brief Prefix increment operator. Increments the APInt by one.
-APInt& APInt::operator++() {
-  if (isSingleWord()) 
-    ++VAL;
-  else
-    add_1(pVal, pVal, getNumWords(), 1);
-  return clearUnusedBits();
-}
-
-/// sub_1 - This function subtracts a single "digit" (64-bit word), y, from 
-/// the multi-digit integer array, x[], propagating the borrowed 1 value until 
-/// no further borrowing is neeeded or it runs out of "digits" in x.  The result
-/// is 1 if "borrowing" exhausted the digits in x, or 0 if x was not exhausted.
-/// In other words, if y > x then this function returns 1, otherwise 0.
-/// @returns the borrow out of the subtraction
-static bool sub_1(uint64_t x[], uint32_t len, uint64_t y) {
-  for (uint32_t i = 0; i < len; ++i) {
-    uint64_t X = x[i];
-    x[i] -= y;
-    if (y > X) 
-      y = 1;  // We have to "borrow 1" from next "digit"
-    else {
-      y = 0;  // No need to borrow
-      break;  // Remaining digits are unchanged so exit early
-    }
-  }
-  return bool(y);
-}
-
-/// @brief Prefix decrement operator. Decrements the APInt by one.
-APInt& APInt::operator--() {
-  if (isSingleWord()) 
-    --VAL;
-  else
-    sub_1(pVal, getNumWords(), 1);
-  return clearUnusedBits();
-}
-
-/// add - This function adds the integer array x to the integer array Y and
-/// places the result in dest. 
-/// @returns the carry out from the addition
-/// @brief General addition of 64-bit integer arrays
-static bool add(uint64_t *dest, const uint64_t *x, const uint64_t *y, 
-                uint32_t len) {
-  bool carry = false;
-  for (uint32_t i = 0; i< len; ++i) {
-    uint64_t limit = std::min(x[i],y[i]); // must come first in case dest == x
-    dest[i] = x[i] + y[i] + carry;
-    carry = dest[i] < limit || (carry && dest[i] == limit);
-  }
-  return carry;
-}
-
-/// Adds the RHS APint to this APInt.
-/// @returns this, after addition of RHS.
-/// @brief Addition assignment operator. 
-APInt& APInt::operator+=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) 
-    VAL += RHS.VAL;
-  else {
-    add(pVal, pVal, RHS.pVal, getNumWords());
-  }
-  return clearUnusedBits();
-}
-
-/// Subtracts the integer array y from the integer array x 
-/// @returns returns the borrow out.
-/// @brief Generalized subtraction of 64-bit integer arrays.
-static bool sub(uint64_t *dest, const uint64_t *x, const uint64_t *y, 
-                uint32_t len) {
-  bool borrow = false;
-  for (uint32_t i = 0; i < len; ++i) {
-    uint64_t x_tmp = borrow ? x[i] - 1 : x[i];
-    borrow = y[i] > x_tmp || (borrow && x[i] == 0);
-    dest[i] = x_tmp - y[i];
-  }
-  return borrow;
-}
-
-/// Subtracts the RHS APInt from this APInt
-/// @returns this, after subtraction
-/// @brief Subtraction assignment operator. 
-APInt& APInt::operator-=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) 
-    VAL -= RHS.VAL;
-  else
-    sub(pVal, pVal, RHS.pVal, getNumWords());
-  return clearUnusedBits();
-}
-
-/// Multiplies an integer array, x by a a uint64_t integer and places the result
-/// into dest. 
-/// @returns the carry out of the multiplication.
-/// @brief Multiply a multi-digit APInt by a single digit (64-bit) integer.
-static uint64_t mul_1(uint64_t dest[], uint64_t x[], uint32_t len, uint64_t y) {
-  // Split y into high 32-bit part (hy)  and low 32-bit part (ly)
-  uint64_t ly = y & 0xffffffffULL, hy = y >> 32;
-  uint64_t carry = 0;
-
-  // For each digit of x.
-  for (uint32_t i = 0; i < len; ++i) {
-    // Split x into high and low words
-    uint64_t lx = x[i] & 0xffffffffULL;
-    uint64_t hx = x[i] >> 32;
-    // hasCarry - A flag to indicate if there is a carry to the next digit.
-    // hasCarry == 0, no carry
-    // hasCarry == 1, has carry
-    // hasCarry == 2, no carry and the calculation result == 0.
-    uint8_t hasCarry = 0;
-    dest[i] = carry + lx * ly;
-    // Determine if the add above introduces carry.
-    hasCarry = (dest[i] < carry) ? 1 : 0;
-    carry = hx * ly + (dest[i] >> 32) + (hasCarry ? (1ULL << 32) : 0);
-    // The upper limit of carry can be (2^32 - 1)(2^32 - 1) + 
-    // (2^32 - 1) + 2^32 = 2^64.
-    hasCarry = (!carry && hasCarry) ? 1 : (!carry ? 2 : 0);
-
-    carry += (lx * hy) & 0xffffffffULL;
-    dest[i] = (carry << 32) | (dest[i] & 0xffffffffULL);
-    carry = (((!carry && hasCarry != 2) || hasCarry == 1) ? (1ULL << 32) : 0) + 
-            (carry >> 32) + ((lx * hy) >> 32) + hx * hy;
-  }
-  return carry;
-}
-
-/// Multiplies integer array x by integer array y and stores the result into 
-/// the integer array dest. Note that dest's size must be >= xlen + ylen.
-/// @brief Generalized multiplicate of integer arrays.
-static void mul(uint64_t dest[], uint64_t x[], uint32_t xlen, uint64_t y[], 
-                uint32_t ylen) {
-  dest[xlen] = mul_1(dest, x, xlen, y[0]);
-  for (uint32_t i = 1; i < ylen; ++i) {
-    uint64_t ly = y[i] & 0xffffffffULL, hy = y[i] >> 32;
-    uint64_t carry = 0, lx = 0, hx = 0;
-    for (uint32_t j = 0; j < xlen; ++j) {
-      lx = x[j] & 0xffffffffULL;
-      hx = x[j] >> 32;
-      // hasCarry - A flag to indicate if has carry.
-      // hasCarry == 0, no carry
-      // hasCarry == 1, has carry
-      // hasCarry == 2, no carry and the calculation result == 0.
-      uint8_t hasCarry = 0;
-      uint64_t resul = carry + lx * ly;
-      hasCarry = (resul < carry) ? 1 : 0;
-      carry = (hasCarry ? (1ULL << 32) : 0) + hx * ly + (resul >> 32);
-      hasCarry = (!carry && hasCarry) ? 1 : (!carry ? 2 : 0);
-
-      carry += (lx * hy) & 0xffffffffULL;
-      resul = (carry << 32) | (resul & 0xffffffffULL);
-      dest[i+j] += resul;
-      carry = (((!carry && hasCarry != 2) || hasCarry == 1) ? (1ULL << 32) : 0)+
-              (carry >> 32) + (dest[i+j] < resul ? 1 : 0) + 
-              ((lx * hy) >> 32) + hx * hy;
-    }
-    dest[i+xlen] = carry;
-  }
-}
-
-APInt& APInt::operator*=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) {
-    VAL *= RHS.VAL;
-    clearUnusedBits();
-    return *this;
-  }
-
-  // Get some bit facts about LHS and check for zero
-  uint32_t lhsBits = getActiveBits();
-  uint32_t lhsWords = !lhsBits ? 0 : whichWord(lhsBits - 1) + 1;
-  if (!lhsWords) 
-    // 0 * X ===> 0
-    return *this;
-
-  // Get some bit facts about RHS and check for zero
-  uint32_t rhsBits = RHS.getActiveBits();
-  uint32_t rhsWords = !rhsBits ? 0 : whichWord(rhsBits - 1) + 1;
-  if (!rhsWords) {
-    // X * 0 ===> 0
-    clear();
-    return *this;
-  }
-
-  // Allocate space for the result
-  uint32_t destWords = rhsWords + lhsWords;
-  uint64_t *dest = getMemory(destWords);
-
-  // Perform the long multiply
-  mul(dest, pVal, lhsWords, RHS.pVal, rhsWords);
-
-  // Copy result back into *this
-  clear();
-  uint32_t wordsToCopy = destWords >= getNumWords() ? getNumWords() : destWords;
-  memcpy(pVal, dest, wordsToCopy * APINT_WORD_SIZE);
-
-  // delete dest array and return
-  delete[] dest;
-  return *this;
-}
-
-APInt& APInt::operator&=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) {
-    VAL &= RHS.VAL;
-    return *this;
-  }
-  uint32_t numWords = getNumWords();
-  for (uint32_t i = 0; i < numWords; ++i)
-    pVal[i] &= RHS.pVal[i];
-  return *this;
-}
-
-APInt& APInt::operator|=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) {
-    VAL |= RHS.VAL;
-    return *this;
-  }
-  uint32_t numWords = getNumWords();
-  for (uint32_t i = 0; i < numWords; ++i)
-    pVal[i] |= RHS.pVal[i];
-  return *this;
-}
-
-APInt& APInt::operator^=(const APInt& RHS) {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) {
-    VAL ^= RHS.VAL;
-    this->clearUnusedBits();
-    return *this;
-  } 
-  uint32_t numWords = getNumWords();
-  for (uint32_t i = 0; i < numWords; ++i)
-    pVal[i] ^= RHS.pVal[i];
-  return clearUnusedBits();
-}
-
-APInt APInt::operator&(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(getBitWidth(), VAL & RHS.VAL);
-
-  uint32_t numWords = getNumWords();
-  uint64_t* val = getMemory(numWords);
-  for (uint32_t i = 0; i < numWords; ++i)
-    val[i] = pVal[i] & RHS.pVal[i];
-  return APInt(val, getBitWidth());
-}
-
-APInt APInt::operator|(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(getBitWidth(), VAL | RHS.VAL);
-
-  uint32_t numWords = getNumWords();
-  uint64_t *val = getMemory(numWords);
-  for (uint32_t i = 0; i < numWords; ++i)
-    val[i] = pVal[i] | RHS.pVal[i];
-  return APInt(val, getBitWidth());
-}
-
-APInt APInt::operator^(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(BitWidth, VAL ^ RHS.VAL);
-
-  uint32_t numWords = getNumWords();
-  uint64_t *val = getMemory(numWords);
-  for (uint32_t i = 0; i < numWords; ++i)
-    val[i] = pVal[i] ^ RHS.pVal[i];
-
-  // 0^0==1 so clear the high bits in case they got set.
-  return APInt(val, getBitWidth()).clearUnusedBits();
-}
-
-bool APInt::operator !() const {
-  if (isSingleWord())
-    return !VAL;
-
-  for (uint32_t i = 0; i < getNumWords(); ++i)
-    if (pVal[i]) 
-      return false;
-  return true;
-}
-
-APInt APInt::operator*(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(BitWidth, VAL * RHS.VAL);
-  APInt Result(*this);
-  Result *= RHS;
-  return Result.clearUnusedBits();
-}
-
-APInt APInt::operator+(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(BitWidth, VAL + RHS.VAL);
-  APInt Result(BitWidth, 0);
-  add(Result.pVal, this->pVal, RHS.pVal, getNumWords());
-  return Result.clearUnusedBits();
-}
-
-APInt APInt::operator-(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord())
-    return APInt(BitWidth, VAL - RHS.VAL);
-  APInt Result(BitWidth, 0);
-  sub(Result.pVal, this->pVal, RHS.pVal, getNumWords());
-  return Result.clearUnusedBits();
-}
-
-bool APInt::operator[](uint32_t bitPosition) const {
-  return (maskBit(bitPosition) & 
-          (isSingleWord() ?  VAL : pVal[whichWord(bitPosition)])) != 0;
-}
-
-bool APInt::operator==(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Comparison requires equal bit widths");
-  if (isSingleWord())
-    return VAL == RHS.VAL;
-
-  // Get some facts about the number of bits used in the two operands.
-  uint32_t n1 = getActiveBits();
-  uint32_t n2 = RHS.getActiveBits();
-
-  // If the number of bits isn't the same, they aren't equal
-  if (n1 != n2) 
-    return false;
-
-  // If the number of bits fits in a word, we only need to compare the low word.
-  if (n1 <= APINT_BITS_PER_WORD)
-    return pVal[0] == RHS.pVal[0];
-
-  // Otherwise, compare everything
-  for (int i = whichWord(n1 - 1); i >= 0; --i)
-    if (pVal[i] != RHS.pVal[i]) 
-      return false;
-  return true;
-}
-
-bool APInt::operator==(uint64_t Val) const {
-  if (isSingleWord())
-    return VAL == Val;
-
-  uint32_t n = getActiveBits(); 
-  if (n <= APINT_BITS_PER_WORD)
-    return pVal[0] == Val;
-  else
-    return false;
-}
-
-bool APInt::ult(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be same for comparison");
-  if (isSingleWord())
-    return VAL < RHS.VAL;
-
-  // Get active bit length of both operands
-  uint32_t n1 = getActiveBits();
-  uint32_t n2 = RHS.getActiveBits();
-
-  // If magnitude of LHS is less than RHS, return true.
-  if (n1 < n2)
-    return true;
-
-  // If magnitude of RHS is greather than LHS, return false.
-  if (n2 < n1)
-    return false;
-
-  // If they bot fit in a word, just compare the low order word
-  if (n1 <= APINT_BITS_PER_WORD && n2 <= APINT_BITS_PER_WORD)
-    return pVal[0] < RHS.pVal[0];
-
-  // Otherwise, compare all words
-  uint32_t topWord = whichWord(std::max(n1,n2)-1);
-  for (int i = topWord; i >= 0; --i) {
-    if (pVal[i] > RHS.pVal[i]) 
-      return false;
-    if (pVal[i] < RHS.pVal[i]) 
-      return true;
-  }
-  return false;
-}
-
-bool APInt::slt(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be same for comparison");
-  if (isSingleWord()) {
-    int64_t lhsSext = (int64_t(VAL) << (64-BitWidth)) >> (64-BitWidth);
-    int64_t rhsSext = (int64_t(RHS.VAL) << (64-BitWidth)) >> (64-BitWidth);
-    return lhsSext < rhsSext;
-  }
-
-  APInt lhs(*this);
-  APInt rhs(RHS);
-  bool lhsNeg = isNegative();
-  bool rhsNeg = rhs.isNegative();
-  if (lhsNeg) {
-    // Sign bit is set so perform two's complement to make it positive
-    lhs.flip();
-    lhs++;
-  }
-  if (rhsNeg) {
-    // Sign bit is set so perform two's complement to make it positive
-    rhs.flip();
-    rhs++;
-  }
-
-  // Now we have unsigned values to compare so do the comparison if necessary
-  // based on the negativeness of the values.
-  if (lhsNeg)
-    if (rhsNeg)
-      return lhs.ugt(rhs);
-    else
-      return true;
-  else if (rhsNeg)
-    return false;
-  else 
-    return lhs.ult(rhs);
-}
-
-APInt& APInt::set(uint32_t bitPosition) {
-  if (isSingleWord()) 
-    VAL |= maskBit(bitPosition);
-  else 
-    pVal[whichWord(bitPosition)] |= maskBit(bitPosition);
-  return *this;
-}
-
-APInt& APInt::set() {
-  if (isSingleWord()) {
-    VAL = -1ULL;
-    return clearUnusedBits();
-  }
-
-  // Set all the bits in all the words.
-  for (uint32_t i = 0; i < getNumWords(); ++i)
-    pVal[i] = -1ULL;
-  // Clear the unused ones
-  return clearUnusedBits();
-}
-
-/// Set the given bit to 0 whose position is given as "bitPosition".
-/// @brief Set a given bit to 0.
-APInt& APInt::clear(uint32_t bitPosition) {
-  if (isSingleWord()) 
-    VAL &= ~maskBit(bitPosition);
-  else 
-    pVal[whichWord(bitPosition)] &= ~maskBit(bitPosition);
-  return *this;
-}
-
-/// @brief Set every bit to 0.
-APInt& APInt::clear() {
-  if (isSingleWord()) 
-    VAL = 0;
-  else 
-    memset(pVal, 0, getNumWords() * APINT_WORD_SIZE);
-  return *this;
-}
-
-/// @brief Bitwise NOT operator. Performs a bitwise logical NOT operation on
-/// this APInt.
-APInt APInt::operator~() const {
-  APInt Result(*this);
-  Result.flip();
-  return Result;
-}
-
-/// @brief Toggle every bit to its opposite value.
-APInt& APInt::flip() {
-  if (isSingleWord()) {
-    VAL ^= -1ULL;
-    return clearUnusedBits();
-  }
-  for (uint32_t i = 0; i < getNumWords(); ++i)
-    pVal[i] ^= -1ULL;
-  return clearUnusedBits();
-}
-
-/// Toggle a given bit to its opposite value whose position is given 
-/// as "bitPosition".
-/// @brief Toggles a given bit to its opposite value.
-APInt& APInt::flip(uint32_t bitPosition) {
-  assert(bitPosition < BitWidth && "Out of the bit-width range!");
-  if ((*this)[bitPosition]) clear(bitPosition);
-  else set(bitPosition);
-  return *this;
-}
-
-uint32_t APInt::getBitsNeeded(const char* str, uint32_t slen, uint8_t radix) {
-  assert(str != 0 && "Invalid value string");
-  assert(slen > 0 && "Invalid string length");
-
-  // Each computation below needs to know if its negative
-  uint32_t isNegative = str[0] == '-';
-  if (isNegative) {
-    slen--;
-    str++;
-  }
-  // For radixes of power-of-two values, the bits required is accurately and
-  // easily computed
-  if (radix == 2)
-    return slen + isNegative;
-  if (radix == 8)
-    return slen * 3 + isNegative;
-  if (radix == 16)
-    return slen * 4 + isNegative;
-
-  // Otherwise it must be radix == 10, the hard case
-  assert(radix == 10 && "Invalid radix");
-
-  // This is grossly inefficient but accurate. We could probably do something
-  // with a computation of roughly slen*64/20 and then adjust by the value of
-  // the first few digits. But, I'm not sure how accurate that could be.
-
-  // Compute a sufficient number of bits that is always large enough but might
-  // be too large. This avoids the assertion in the constructor.
-  uint32_t sufficient = slen*64/18;
-
-  // Convert to the actual binary value.
-  APInt tmp(sufficient, str, slen, radix);
-
-  // Compute how many bits are required.
-  return isNegative + tmp.logBase2() + 1;
-}
-
-uint64_t APInt::getHashValue() const {
-  // Put the bit width into the low order bits.
-  uint64_t hash = BitWidth;
-
-  // Add the sum of the words to the hash.
-  if (isSingleWord())
-    hash += VAL << 6; // clear separation of up to 64 bits
-  else
-    for (uint32_t i = 0; i < getNumWords(); ++i)
-      hash += pVal[i] << 6; // clear sepration of up to 64 bits
-  return hash;
-}
-
-/// HiBits - This function returns the high "numBits" bits of this APInt.
-APInt APInt::getHiBits(uint32_t numBits) const {
-  return APIntOps::lshr(*this, BitWidth - numBits);
-}
-
-/// LoBits - This function returns the low "numBits" bits of this APInt.
-APInt APInt::getLoBits(uint32_t numBits) const {
-  return APIntOps::lshr(APIntOps::shl(*this, BitWidth - numBits), 
-                        BitWidth - numBits);
-}
-
-bool APInt::isPowerOf2() const {
-  return (!!*this) && !(*this & (*this - APInt(BitWidth,1)));
-}
-
-uint32_t APInt::countLeadingZeros() const {
-  uint32_t Count = 0;
-  if (isSingleWord())
-    Count = CountLeadingZeros_64(VAL);
-  else {
-    for (uint32_t i = getNumWords(); i > 0u; --i) {
-      if (pVal[i-1] == 0)
-        Count += APINT_BITS_PER_WORD;
-      else {
-        Count += CountLeadingZeros_64(pVal[i-1]);
-        break;
-      }
-    }
-  }
-  uint32_t remainder = BitWidth % APINT_BITS_PER_WORD;
-  if (remainder)
-    Count -= APINT_BITS_PER_WORD - remainder;
-  return Count;
-}
-
-static uint32_t countLeadingOnes_64(uint64_t V, uint32_t skip) {
-  uint32_t Count = 0;
-  if (skip)
-    V <<= skip;
-  while (V && (V & (1ULL << 63))) {
-    Count++;
-    V <<= 1;
-  }
-  return Count;
-}
-
-uint32_t APInt::countLeadingOnes() const {
-  if (isSingleWord())
-    return countLeadingOnes_64(VAL, APINT_BITS_PER_WORD - BitWidth);
-
-  uint32_t highWordBits = BitWidth % APINT_BITS_PER_WORD;
-  uint32_t shift = (highWordBits == 0 ? 0 : APINT_BITS_PER_WORD - highWordBits);
-  int i = getNumWords() - 1;
-  uint32_t Count = countLeadingOnes_64(pVal[i], shift);
-  if (Count == highWordBits) {
-    for (i--; i >= 0; --i) {
-      if (pVal[i] == -1ULL)
-        Count += APINT_BITS_PER_WORD;
-      else {
-        Count += countLeadingOnes_64(pVal[i], 0);
-        break;
-      }
-    }
-  }
-  return Count;
-}
-
-uint32_t APInt::countTrailingZeros() const {
-  if (isSingleWord())
-    return CountTrailingZeros_64(VAL);
-  uint32_t Count = 0;
-  uint32_t i = 0;
-  for (; i < getNumWords() && pVal[i] == 0; ++i)
-    Count += APINT_BITS_PER_WORD;
-  if (i < getNumWords())
-    Count += CountTrailingZeros_64(pVal[i]);
-  return Count;
-}
-
-uint32_t APInt::countPopulation() const {
-  if (isSingleWord())
-    return CountPopulation_64(VAL);
-  uint32_t Count = 0;
-  for (uint32_t i = 0; i < getNumWords(); ++i)
-    Count += CountPopulation_64(pVal[i]);
-  return Count;
-}
-
-APInt APInt::byteSwap() const {
-  assert(BitWidth >= 16 && BitWidth % 16 == 0 && "Cannot byteswap!");
-  if (BitWidth == 16)
-    return APInt(BitWidth, ByteSwap_16(uint16_t(VAL)));
-  else if (BitWidth == 32)
-    return APInt(BitWidth, ByteSwap_32(uint32_t(VAL)));
-  else if (BitWidth == 48) {
-    uint32_t Tmp1 = uint32_t(VAL >> 16);
-    Tmp1 = ByteSwap_32(Tmp1);
-    uint16_t Tmp2 = uint16_t(VAL);
-    Tmp2 = ByteSwap_16(Tmp2);
-    return APInt(BitWidth, (uint64_t(Tmp2) << 32) | Tmp1);
-  } else if (BitWidth == 64)
-    return APInt(BitWidth, ByteSwap_64(VAL));
-  else {
-    APInt Result(BitWidth, 0);
-    char *pByte = (char*)Result.pVal;
-    for (uint32_t i = 0; i < BitWidth / APINT_WORD_SIZE / 2; ++i) {
-      char Tmp = pByte[i];
-      pByte[i] = pByte[BitWidth / APINT_WORD_SIZE - 1 - i];
-      pByte[BitWidth / APINT_WORD_SIZE - i - 1] = Tmp;
-    }
-    return Result;
-  }
-}
-
-APInt llvm::APIntOps::GreatestCommonDivisor(const APInt& API1, 
-                                            const APInt& API2) {
-  APInt A = API1, B = API2;
-  while (!!B) {
-    APInt T = B;
-    B = APIntOps::urem(A, B);
-    A = T;
-  }
-  return A;
-}
-
-APInt llvm::APIntOps::RoundDoubleToAPInt(double Double, uint32_t width) {
-  union {
-    double D;
-    uint64_t I;
-  } T;
-  T.D = Double;
-
-  // Get the sign bit from the highest order bit
-  bool isNeg = T.I >> 63;
-
-  // Get the 11-bit exponent and adjust for the 1023 bit bias
-  int64_t exp = ((T.I >> 52) & 0x7ff) - 1023;
-
-  // If the exponent is negative, the value is < 0 so just return 0.
-  if (exp < 0)
-    return APInt(width, 0u);
-
-  // Extract the mantissa by clearing the top 12 bits (sign + exponent).
-  uint64_t mantissa = (T.I & (~0ULL >> 12)) | 1ULL << 52;
-
-  // If the exponent doesn't shift all bits out of the mantissa
-  if (exp < 52)
-    return isNeg ? -APInt(width, mantissa >> (52 - exp)) : 
-                    APInt(width, mantissa >> (52 - exp));
-
-  // If the client didn't provide enough bits for us to shift the mantissa into
-  // then the result is undefined, just return 0
-  if (width <= exp - 52)
-    return APInt(width, 0);
-
-  // Otherwise, we have to shift the mantissa bits up to the right location
-  APInt Tmp(width, mantissa);
-  Tmp = Tmp.shl(exp - 52);
-  return isNeg ? -Tmp : Tmp;
-}
-
-/// RoundToDouble - This function convert this APInt to a double.
-/// The layout for double is as following (IEEE Standard 754):
-///  --------------------------------------
-/// |  Sign    Exponent    Fraction    Bias |
-/// |-------------------------------------- |
-/// |  1[63]   11[62-52]   52[51-00]   1023 |
-///  -------------------------------------- 
-double APInt::roundToDouble(bool isSigned) const {
-
-  // Handle the simple case where the value is contained in one uint64_t.
-  if (isSingleWord() || getActiveBits() <= APINT_BITS_PER_WORD) {
-    if (isSigned) {
-      int64_t sext = (int64_t(VAL) << (64-BitWidth)) >> (64-BitWidth);
-      return double(sext);
-    } else
-      return double(VAL);
-  }
-
-  // Determine if the value is negative.
-  bool isNeg = isSigned ? (*this)[BitWidth-1] : false;
-
-  // Construct the absolute value if we're negative.
-  APInt Tmp(isNeg ? -(*this) : (*this));
-
-  // Figure out how many bits we're using.
-  uint32_t n = Tmp.getActiveBits();
-
-  // The exponent (without bias normalization) is just the number of bits
-  // we are using. Note that the sign bit is gone since we constructed the
-  // absolute value.
-  uint64_t exp = n;
-
-  // Return infinity for exponent overflow
-  if (exp > 1023) {
-    if (!isSigned || !isNeg)
-      return std::numeric_limits<double>::infinity();
-    else 
-      return -std::numeric_limits<double>::infinity();
-  }
-  exp += 1023; // Increment for 1023 bias
-
-  // Number of bits in mantissa is 52. To obtain the mantissa value, we must
-  // extract the high 52 bits from the correct words in pVal.
-  uint64_t mantissa;
-  unsigned hiWord = whichWord(n-1);
-  if (hiWord == 0) {
-    mantissa = Tmp.pVal[0];
-    if (n > 52)
-      mantissa >>= n - 52; // shift down, we want the top 52 bits.
-  } else {
-    assert(hiWord > 0 && "huh?");
-    uint64_t hibits = Tmp.pVal[hiWord] << (52 - n % APINT_BITS_PER_WORD);
-    uint64_t lobits = Tmp.pVal[hiWord-1] >> (11 + n % APINT_BITS_PER_WORD);
-    mantissa = hibits | lobits;
-  }
-
-  // The leading bit of mantissa is implicit, so get rid of it.
-  uint64_t sign = isNeg ? (1ULL << (APINT_BITS_PER_WORD - 1)) : 0;
-  union {
-    double D;
-    uint64_t I;
-  } T;
-  T.I = sign | (exp << 52) | mantissa;
-  return T.D;
-}
-
-// Truncate to new width.
-APInt &APInt::trunc(uint32_t width) {
-  assert(width < BitWidth && "Invalid APInt Truncate request");
-  assert(width >= MIN_INT_BITS && "Can't truncate to 0 bits");
-  uint32_t wordsBefore = getNumWords();
-  BitWidth = width;
-  uint32_t wordsAfter = getNumWords();
-  if (wordsBefore != wordsAfter) {
-    if (wordsAfter == 1) {
-      uint64_t *tmp = pVal;
-      VAL = pVal[0];
-      delete [] tmp;
-    } else {
-      uint64_t *newVal = getClearedMemory(wordsAfter);
-      for (uint32_t i = 0; i < wordsAfter; ++i)
-        newVal[i] = pVal[i];
-      delete [] pVal;
-      pVal = newVal;
-    }
-  }
-  return clearUnusedBits();
-}
-
-// Sign extend to a new width.
-APInt &APInt::sext(uint32_t width) {
-  assert(width > BitWidth && "Invalid APInt SignExtend request");
-  assert(width <= MAX_INT_BITS && "Too many bits");
-  // If the sign bit isn't set, this is the same as zext.
-  if (!isNegative()) {
-    zext(width);
-    return *this;
-  }
-
-  // The sign bit is set. First, get some facts
-  uint32_t wordsBefore = getNumWords();
-  uint32_t wordBits = BitWidth % APINT_BITS_PER_WORD;
-  BitWidth = width;
-  uint32_t wordsAfter = getNumWords();
-
-  // Mask the high order word appropriately
-  if (wordsBefore == wordsAfter) {
-    uint32_t newWordBits = width % APINT_BITS_PER_WORD;
-    // The extension is contained to the wordsBefore-1th word.
-    uint64_t mask = ~0ULL;
-    if (newWordBits)
-      mask >>= APINT_BITS_PER_WORD - newWordBits;
-    mask <<= wordBits;
-    if (wordsBefore == 1)
-      VAL |= mask;
-    else
-      pVal[wordsBefore-1] |= mask;
-    return clearUnusedBits();
-  }
-
-  uint64_t mask = wordBits == 0 ? 0 : ~0ULL << wordBits;
-  uint64_t *newVal = getMemory(wordsAfter);
-  if (wordsBefore == 1)
-    newVal[0] = VAL | mask;
-  else {
-    for (uint32_t i = 0; i < wordsBefore; ++i)
-      newVal[i] = pVal[i];
-    newVal[wordsBefore-1] |= mask;
-  }
-  for (uint32_t i = wordsBefore; i < wordsAfter; i++)
-    newVal[i] = -1ULL;
-  if (wordsBefore != 1)
-    delete [] pVal;
-  pVal = newVal;
-  return clearUnusedBits();
-}
-
-//  Zero extend to a new width.
-APInt &APInt::zext(uint32_t width) {
-  assert(width > BitWidth && "Invalid APInt ZeroExtend request");
-  assert(width <= MAX_INT_BITS && "Too many bits");
-  uint32_t wordsBefore = getNumWords();
-  BitWidth = width;
-  uint32_t wordsAfter = getNumWords();
-  if (wordsBefore != wordsAfter) {
-    uint64_t *newVal = getClearedMemory(wordsAfter);
-    if (wordsBefore == 1)
-      newVal[0] = VAL;
-    else 
-      for (uint32_t i = 0; i < wordsBefore; ++i)
-        newVal[i] = pVal[i];
-    if (wordsBefore != 1)
-      delete [] pVal;
-    pVal = newVal;
-  }
-  return *this;
-}
-
-APInt &APInt::zextOrTrunc(uint32_t width) {
-  if (BitWidth < width)
-    return zext(width);
-  if (BitWidth > width)
-    return trunc(width);
-  return *this;
-}
-
-APInt &APInt::sextOrTrunc(uint32_t width) {
-  if (BitWidth < width)
-    return sext(width);
-  if (BitWidth > width)
-    return trunc(width);
-  return *this;
-}
-
-/// Arithmetic right-shift this APInt by shiftAmt.
-/// @brief Arithmetic right-shift function.
-APInt APInt::ashr(uint32_t shiftAmt) const {
-  assert(shiftAmt <= BitWidth && "Invalid shift amount");
-  // Handle a degenerate case
-  if (shiftAmt == 0)
-    return *this;
-
-  // Handle single word shifts with built-in ashr
-  if (isSingleWord()) {
-    if (shiftAmt == BitWidth)
-      return APInt(BitWidth, 0); // undefined
-    else {
-      uint32_t SignBit = APINT_BITS_PER_WORD - BitWidth;
-      return APInt(BitWidth, 
-        (((int64_t(VAL) << SignBit) >> SignBit) >> shiftAmt));
-    }
-  }
-
-  // If all the bits were shifted out, the result is, technically, undefined.
-  // We return -1 if it was negative, 0 otherwise. We check this early to avoid
-  // issues in the algorithm below.
-  if (shiftAmt == BitWidth) {
-    if (isNegative())
-      return APInt(BitWidth, -1ULL);
-    else
-      return APInt(BitWidth, 0);
-  }
-
-  // Create some space for the result.
-  uint64_t * val = new uint64_t[getNumWords()];
-
-  // Compute some values needed by the following shift algorithms
-  uint32_t wordShift = shiftAmt % APINT_BITS_PER_WORD; // bits to shift per word
-  uint32_t offset = shiftAmt / APINT_BITS_PER_WORD; // word offset for shift
-  uint32_t breakWord = getNumWords() - 1 - offset; // last word affected
-  uint32_t bitsInWord = whichBit(BitWidth); // how many bits in last word?
-  if (bitsInWord == 0)
-    bitsInWord = APINT_BITS_PER_WORD;
-
-  // If we are shifting whole words, just move whole words
-  if (wordShift == 0) {
-    // Move the words containing significant bits
-    for (uint32_t i = 0; i <= breakWord; ++i) 
-      val[i] = pVal[i+offset]; // move whole word
-
-    // Adjust the top significant word for sign bit fill, if negative
-    if (isNegative())
-      if (bitsInWord < APINT_BITS_PER_WORD)
-        val[breakWord] |= ~0ULL << bitsInWord; // set high bits
-  } else {
-    // Shift the low order words 
-    for (uint32_t i = 0; i < breakWord; ++i) {
-      // This combines the shifted corresponding word with the low bits from
-      // the next word (shifted into this word's high bits).
-      val[i] = (pVal[i+offset] >> wordShift) | 
-               (pVal[i+offset+1] << (APINT_BITS_PER_WORD - wordShift));
-    }
-
-    // Shift the break word. In this case there are no bits from the next word
-    // to include in this word.
-    val[breakWord] = pVal[breakWord+offset] >> wordShift;
-
-    // Deal with sign extenstion in the break word, and possibly the word before
-    // it.
-    if (isNegative()) {
-      if (wordShift > bitsInWord) {
-        if (breakWord > 0)
-          val[breakWord-1] |= 
-            ~0ULL << (APINT_BITS_PER_WORD - (wordShift - bitsInWord));
-        val[breakWord] |= ~0ULL;
-      } else 
-        val[breakWord] |= (~0ULL << (bitsInWord - wordShift));
-    }
-  }
-
-  // Remaining words are 0 or -1, just assign them.
-  uint64_t fillValue = (isNegative() ? -1ULL : 0);
-  for (uint32_t i = breakWord+1; i < getNumWords(); ++i)
-    val[i] = fillValue;
-  return APInt(val, BitWidth).clearUnusedBits();
-}
-
-/// Logical right-shift this APInt by shiftAmt.
-/// @brief Logical right-shift function.
-APInt APInt::lshr(uint32_t shiftAmt) const {
-  if (isSingleWord()) {
-    if (shiftAmt == BitWidth)
-      return APInt(BitWidth, 0);
-    else 
-      return APInt(BitWidth, this->VAL >> shiftAmt);
-  }
-
-  // If all the bits were shifted out, the result is 0. This avoids issues
-  // with shifting by the size of the integer type, which produces undefined
-  // results. We define these "undefined results" to always be 0.
-  if (shiftAmt == BitWidth)
-    return APInt(BitWidth, 0);
-
-  // If none of the bits are shifted out, the result is *this. This avoids
-  // issues with shifting byt he size of the integer type, which produces 
-  // undefined results in the code below. This is also an optimization.
-  if (shiftAmt == 0)
-    return *this;
-
-  // Create some space for the result.
-  uint64_t * val = new uint64_t[getNumWords()];
-
-  // If we are shifting less than a word, compute the shift with a simple carry
-  if (shiftAmt < APINT_BITS_PER_WORD) {
-    uint64_t carry = 0;
-    for (int i = getNumWords()-1; i >= 0; --i) {
-      val[i] = (pVal[i] >> shiftAmt) | carry;
-      carry = pVal[i] << (APINT_BITS_PER_WORD - shiftAmt);
-    }
-    return APInt(val, BitWidth).clearUnusedBits();
-  }
-
-  // Compute some values needed by the remaining shift algorithms
-  uint32_t wordShift = shiftAmt % APINT_BITS_PER_WORD;
-  uint32_t offset = shiftAmt / APINT_BITS_PER_WORD;
-
-  // If we are shifting whole words, just move whole words
-  if (wordShift == 0) {
-    for (uint32_t i = 0; i < getNumWords() - offset; ++i) 
-      val[i] = pVal[i+offset];
-    for (uint32_t i = getNumWords()-offset; i < getNumWords(); i++)
-      val[i] = 0;
-    return APInt(val,BitWidth).clearUnusedBits();
-  }
-
-  // Shift the low order words 
-  uint32_t breakWord = getNumWords() - offset -1;
-  for (uint32_t i = 0; i < breakWord; ++i)
-    val[i] = (pVal[i+offset] >> wordShift) |
-             (pVal[i+offset+1] << (APINT_BITS_PER_WORD - wordShift));
-  // Shift the break word.
-  val[breakWord] = pVal[breakWord+offset] >> wordShift;
-
-  // Remaining words are 0
-  for (uint32_t i = breakWord+1; i < getNumWords(); ++i)
-    val[i] = 0;
-  return APInt(val, BitWidth).clearUnusedBits();
-}
-
-/// Left-shift this APInt by shiftAmt.
-/// @brief Left-shift function.
-APInt APInt::shl(uint32_t shiftAmt) const {
-  assert(shiftAmt <= BitWidth && "Invalid shift amount");
-  if (isSingleWord()) {
-    if (shiftAmt == BitWidth)
-      return APInt(BitWidth, 0); // avoid undefined shift results
-    return APInt(BitWidth, VAL << shiftAmt);
-  }
-
-  // If all the bits were shifted out, the result is 0. This avoids issues
-  // with shifting by the size of the integer type, which produces undefined
-  // results. We define these "undefined results" to always be 0.
-  if (shiftAmt == BitWidth)
-    return APInt(BitWidth, 0);
-
-  // If none of the bits are shifted out, the result is *this. This avoids a
-  // lshr by the words size in the loop below which can produce incorrect
-  // results. It also avoids the expensive computation below for a common case.
-  if (shiftAmt == 0)
-    return *this;
-
-  // Create some space for the result.
-  uint64_t * val = new uint64_t[getNumWords()];
-
-  // If we are shifting less than a word, do it the easy way
-  if (shiftAmt < APINT_BITS_PER_WORD) {
-    uint64_t carry = 0;
-    for (uint32_t i = 0; i < getNumWords(); i++) {
-      val[i] = pVal[i] << shiftAmt | carry;
-      carry = pVal[i] >> (APINT_BITS_PER_WORD - shiftAmt);
-    }
-    return APInt(val, BitWidth).clearUnusedBits();
-  }
-
-  // Compute some values needed by the remaining shift algorithms
-  uint32_t wordShift = shiftAmt % APINT_BITS_PER_WORD;
-  uint32_t offset = shiftAmt / APINT_BITS_PER_WORD;
-
-  // If we are shifting whole words, just move whole words
-  if (wordShift == 0) {
-    for (uint32_t i = 0; i < offset; i++) 
-      val[i] = 0;
-    for (uint32_t i = offset; i < getNumWords(); i++)
-      val[i] = pVal[i-offset];
-    return APInt(val,BitWidth).clearUnusedBits();
-  }
-
-  // Copy whole words from this to Result.
-  uint32_t i = getNumWords() - 1;
-  for (; i > offset; --i)
-    val[i] = pVal[i-offset] << wordShift |
-             pVal[i-offset-1] >> (APINT_BITS_PER_WORD - wordShift);
-  val[offset] = pVal[0] << wordShift;
-  for (i = 0; i < offset; ++i)
-    val[i] = 0;
-  return APInt(val, BitWidth).clearUnusedBits();
-}
-
-APInt APInt::rotl(uint32_t rotateAmt) const {
-  if (rotateAmt == 0)
-    return *this;
-  // Don't get too fancy, just use existing shift/or facilities
-  APInt hi(*this);
-  APInt lo(*this);
-  hi.shl(rotateAmt);
-  lo.lshr(BitWidth - rotateAmt);
-  return hi | lo;
-}
-
-APInt APInt::rotr(uint32_t rotateAmt) const {
-  if (rotateAmt == 0)
-    return *this;
-  // Don't get too fancy, just use existing shift/or facilities
-  APInt hi(*this);
-  APInt lo(*this);
-  lo.lshr(rotateAmt);
-  hi.shl(BitWidth - rotateAmt);
-  return hi | lo;
-}
-
-// Square Root - this method computes and returns the square root of "this".
-// Three mechanisms are used for computation. For small values (<= 5 bits),
-// a table lookup is done. This gets some performance for common cases. For
-// values using less than 52 bits, the value is converted to double and then
-// the libc sqrt function is called. The result is rounded and then converted
-// back to a uint64_t which is then used to construct the result. Finally,
-// the Babylonian method for computing square roots is used. 
-APInt APInt::sqrt() const {
-
-  // Determine the magnitude of the value.
-  uint32_t magnitude = getActiveBits();
-
-  // Use a fast table for some small values. This also gets rid of some
-  // rounding errors in libc sqrt for small values.
-  if (magnitude <= 5) {
-    static const uint8_t results[32] = {
-      /*     0 */ 0,
-      /*  1- 2 */ 1, 1,
-      /*  3- 6 */ 2, 2, 2, 2, 
-      /*  7-12 */ 3, 3, 3, 3, 3, 3,
-      /* 13-20 */ 4, 4, 4, 4, 4, 4, 4, 4,
-      /* 21-30 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-      /*    31 */ 6
-    };
-    return APInt(BitWidth, results[ (isSingleWord() ? VAL : pVal[0]) ]);
-  }
-
-  // If the magnitude of the value fits in less than 52 bits (the precision of
-  // an IEEE double precision floating point value), then we can use the
-  // libc sqrt function which will probably use a hardware sqrt computation.
-  // This should be faster than the algorithm below.
-  if (magnitude < 52) {
-#ifdef _MSC_VER
-    // Amazingly, VC++ doesn't have round().
-    return APInt(BitWidth, 
-                 uint64_t(::sqrt(double(isSingleWord()?VAL:pVal[0]))) + 0.5);
-#else
-    return APInt(BitWidth, 
-                 uint64_t(::round(::sqrt(double(isSingleWord()?VAL:pVal[0])))));
-#endif
-  }
-
-  // Okay, all the short cuts are exhausted. We must compute it. The following
-  // is a classical Babylonian method for computing the square root. This code
-  // was adapted to APINt from a wikipedia article on such computations.
-  // See http://www.wikipedia.org/ and go to the page named
-  // Calculate_an_integer_square_root. 
-  uint32_t nbits = BitWidth, i = 4;
-  APInt testy(BitWidth, 16);
-  APInt x_old(BitWidth, 1);
-  APInt x_new(BitWidth, 0);
-  APInt two(BitWidth, 2);
-
-  // Select a good starting value using binary logarithms.
-  for (;; i += 2, testy = testy.shl(2)) 
-    if (i >= nbits || this->ule(testy)) {
-      x_old = x_old.shl(i / 2);
-      break;
-    }
-
-  // Use the Babylonian method to arrive at the integer square root: 
-  for (;;) {
-    x_new = (this->udiv(x_old) + x_old).udiv(two);
-    if (x_old.ule(x_new))
-      break;
-    x_old = x_new;
-  }
-
-  // Make sure we return the closest approximation
-  // NOTE: The rounding calculation below is correct. It will produce an 
-  // off-by-one discrepancy with results from pari/gp. That discrepancy has been
-  // determined to be a rounding issue with pari/gp as it begins to use a 
-  // floating point representation after 192 bits. There are no discrepancies
-  // between this algorithm and pari/gp for bit widths < 192 bits.
-  APInt square(x_old * x_old);
-  APInt nextSquare((x_old + 1) * (x_old +1));
-  if (this->ult(square))
-    return x_old;
-  else if (this->ule(nextSquare)) {
-    APInt midpoint((nextSquare - square).udiv(two));
-    APInt offset(*this - square);
-    if (offset.ult(midpoint))
-      return x_old;
-    else
-      return x_old + 1;
-  } else
-    assert(0 && "Error in APInt::sqrt computation");
-  return x_old + 1;
-}
-
-/// Implementation of Knuth's Algorithm D (Division of nonnegative integers)
-/// from "Art of Computer Programming, Volume 2", section 4.3.1, p. 272. The
-/// variables here have the same names as in the algorithm. Comments explain
-/// the algorithm and any deviation from it.
-static void KnuthDiv(uint32_t *u, uint32_t *v, uint32_t *q, uint32_t* r, 
-                     uint32_t m, uint32_t n) {
-  assert(u && "Must provide dividend");
-  assert(v && "Must provide divisor");
-  assert(q && "Must provide quotient");
-  assert(u != v && u != q && v != q && "Must us different memory");
-  assert(n>1 && "n must be > 1");
-
-  // Knuth uses the value b as the base of the number system. In our case b
-  // is 2^31 so we just set it to -1u.
-  uint64_t b = uint64_t(1) << 32;
-
-  DEBUG(cerr << "KnuthDiv: m=" << m << " n=" << n << '\n');
-  DEBUG(cerr << "KnuthDiv: original:");
-  DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << std::setbase(16) << u[i]);
-  DEBUG(cerr << " by");
-  DEBUG(for (int i = n; i >0; i--) cerr << " " << std::setbase(16) << v[i-1]);
-  DEBUG(cerr << '\n');
-  // D1. [Normalize.] Set d = b / (v[n-1] + 1) and multiply all the digits of 
-  // u and v by d. Note that we have taken Knuth's advice here to use a power 
-  // of 2 value for d such that d * v[n-1] >= b/2 (b is the base). A power of 
-  // 2 allows us to shift instead of multiply and it is easy to determine the 
-  // shift amount from the leading zeros.  We are basically normalizing the u
-  // and v so that its high bits are shifted to the top of v's range without
-  // overflow. Note that this can require an extra word in u so that u must
-  // be of length m+n+1.
-  uint32_t shift = CountLeadingZeros_32(v[n-1]);
-  uint32_t v_carry = 0;
-  uint32_t u_carry = 0;
-  if (shift) {
-    for (uint32_t i = 0; i < m+n; ++i) {
-      uint32_t u_tmp = u[i] >> (32 - shift);
-      u[i] = (u[i] << shift) | u_carry;
-      u_carry = u_tmp;
-    }
-    for (uint32_t i = 0; i < n; ++i) {
-      uint32_t v_tmp = v[i] >> (32 - shift);
-      v[i] = (v[i] << shift) | v_carry;
-      v_carry = v_tmp;
-    }
-  }
-  u[m+n] = u_carry;
-  DEBUG(cerr << "KnuthDiv:   normal:");
-  DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << std::setbase(16) << u[i]);
-  DEBUG(cerr << " by");
-  DEBUG(for (int i = n; i >0; i--) cerr << " " << std::setbase(16) << v[i-1]);
-  DEBUG(cerr << '\n');
-
-  // D2. [Initialize j.]  Set j to m. This is the loop counter over the places.
-  int j = m;
-  do {
-    DEBUG(cerr << "KnuthDiv: quotient digit #" << j << '\n');
-    // D3. [Calculate q'.]. 
-    //     Set qp = (u[j+n]*b + u[j+n-1]) / v[n-1]. (qp=qprime=q')
-    //     Set rp = (u[j+n]*b + u[j+n-1]) % v[n-1]. (rp=rprime=r')
-    // Now test if qp == b or qp*v[n-2] > b*rp + u[j+n-2]; if so, decrease
-    // qp by 1, inrease rp by v[n-1], and repeat this test if rp < b. The test
-    // on v[n-2] determines at high speed most of the cases in which the trial
-    // value qp is one too large, and it eliminates all cases where qp is two 
-    // too large. 
-    uint64_t dividend = ((uint64_t(u[j+n]) << 32) + u[j+n-1]);
-    DEBUG(cerr << "KnuthDiv: dividend == " << dividend << '\n');
-    uint64_t qp = dividend / v[n-1];
-    uint64_t rp = dividend % v[n-1];
-    if (qp == b || qp*v[n-2] > b*rp + u[j+n-2]) {
-      qp--;
-      rp += v[n-1];
-      if (rp < b && (qp == b || qp*v[n-2] > b*rp + u[j+n-2]))
-        qp--;
-    }
-    DEBUG(cerr << "KnuthDiv: qp == " << qp << ", rp == " << rp << '\n');
-
-    // D4. [Multiply and subtract.] Replace (u[j+n]u[j+n-1]...u[j]) with
-    // (u[j+n]u[j+n-1]..u[j]) - qp * (v[n-1]...v[1]v[0]). This computation
-    // consists of a simple multiplication by a one-place number, combined with
-    // a subtraction. 
-    bool isNeg = false;
-    for (uint32_t i = 0; i < n; ++i) {
-      uint64_t u_tmp = uint64_t(u[j+i]) | (uint64_t(u[j+i+1]) << 32);
-      uint64_t subtrahend = uint64_t(qp) * uint64_t(v[i]);
-      bool borrow = subtrahend > u_tmp;
-      DEBUG(cerr << "KnuthDiv: u_tmp == " << u_tmp 
-                 << ", subtrahend == " << subtrahend
-                 << ", borrow = " << borrow << '\n');
-
-      uint64_t result = u_tmp - subtrahend;
-      uint32_t k = j + i;
-      u[k++] = result & (b-1); // subtract low word
-      u[k++] = result >> 32;   // subtract high word
-      while (borrow && k <= m+n) { // deal with borrow to the left
-        borrow = u[k] == 0;
-        u[k]--;
-        k++;
-      }
-      isNeg |= borrow;
-      DEBUG(cerr << "KnuthDiv: u[j+i] == " << u[j+i] << ",  u[j+i+1] == " << 
-                    u[j+i+1] << '\n'); 
-    }
-    DEBUG(cerr << "KnuthDiv: after subtraction:");
-    DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << u[i]);
-    DEBUG(cerr << '\n');
-    // The digits (u[j+n]...u[j]) should be kept positive; if the result of 
-    // this step is actually negative, (u[j+n]...u[j]) should be left as the 
-    // true value plus b**(n+1), namely as the b's complement of
-    // the true value, and a "borrow" to the left should be remembered.
-    //
-    if (isNeg) {
-      bool carry = true;  // true because b's complement is "complement + 1"
-      for (uint32_t i = 0; i <= m+n; ++i) {
-        u[i] = ~u[i] + carry; // b's complement
-        carry = carry && u[i] == 0;
-      }
-    }
-    DEBUG(cerr << "KnuthDiv: after complement:");
-    DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << u[i]);
-    DEBUG(cerr << '\n');
-
-    // D5. [Test remainder.] Set q[j] = qp. If the result of step D4 was 
-    // negative, go to step D6; otherwise go on to step D7.
-    q[j] = qp;
-    if (isNeg) {
-      // D6. [Add back]. The probability that this step is necessary is very 
-      // small, on the order of only 2/b. Make sure that test data accounts for
-      // this possibility. Decrease q[j] by 1 
-      q[j]--;
-      // and add (0v[n-1]...v[1]v[0]) to (u[j+n]u[j+n-1]...u[j+1]u[j]). 
-      // A carry will occur to the left of u[j+n], and it should be ignored 
-      // since it cancels with the borrow that occurred in D4.
-      bool carry = false;
-      for (uint32_t i = 0; i < n; i++) {
-        uint32_t limit = std::min(u[j+i],v[i]);
-        u[j+i] += v[i] + carry;
-        carry = u[j+i] < limit || (carry && u[j+i] == limit);
-      }
-      u[j+n] += carry;
-    }
-    DEBUG(cerr << "KnuthDiv: after correction:");
-    DEBUG(for (int i = m+n; i >=0; i--) cerr <<" " << u[i]);
-    DEBUG(cerr << "\nKnuthDiv: digit result = " << q[j] << '\n');
-
-  // D7. [Loop on j.]  Decrease j by one. Now if j >= 0, go back to D3.
-  } while (--j >= 0);
-
-  DEBUG(cerr << "KnuthDiv: quotient:");
-  DEBUG(for (int i = m; i >=0; i--) cerr <<" " << q[i]);
-  DEBUG(cerr << '\n');
-
-  // D8. [Unnormalize]. Now q[...] is the desired quotient, and the desired
-  // remainder may be obtained by dividing u[...] by d. If r is non-null we
-  // compute the remainder (urem uses this).
-  if (r) {
-    // The value d is expressed by the "shift" value above since we avoided
-    // multiplication by d by using a shift left. So, all we have to do is
-    // shift right here. In order to mak
-    if (shift) {
-      uint32_t carry = 0;
-      DEBUG(cerr << "KnuthDiv: remainder:");
-      for (int i = n-1; i >= 0; i--) {
-        r[i] = (u[i] >> shift) | carry;
-        carry = u[i] << (32 - shift);
-        DEBUG(cerr << " " << r[i]);
-      }
-    } else {
-      for (int i = n-1; i >= 0; i--) {
-        r[i] = u[i];
-        DEBUG(cerr << " " << r[i]);
-      }
-    }
-    DEBUG(cerr << '\n');
-  }
-  DEBUG(cerr << std::setbase(10) << '\n');
-}
-
-void APInt::divide(const APInt LHS, uint32_t lhsWords, 
-                   const APInt &RHS, uint32_t rhsWords,
-                   APInt *Quotient, APInt *Remainder)
-{
-  assert(lhsWords >= rhsWords && "Fractional result");
-
-  // First, compose the values into an array of 32-bit words instead of 
-  // 64-bit words. This is a necessity of both the "short division" algorithm
-  // and the the Knuth "classical algorithm" which requires there to be native 
-  // operations for +, -, and * on an m bit value with an m*2 bit result. We 
-  // can't use 64-bit operands here because we don't have native results of 
-  // 128-bits. Furthremore, casting the 64-bit values to 32-bit values won't 
-  // work on large-endian machines.
-  uint64_t mask = ~0ull >> (sizeof(uint32_t)*8);
-  uint32_t n = rhsWords * 2;
-  uint32_t m = (lhsWords * 2) - n;
-
-  // Allocate space for the temporary values we need either on the stack, if
-  // it will fit, or on the heap if it won't.
-  uint32_t SPACE[128];
-  uint32_t *U = 0;
-  uint32_t *V = 0;
-  uint32_t *Q = 0;
-  uint32_t *R = 0;
-  if ((Remainder?4:3)*n+2*m+1 <= 128) {
-    U = &SPACE[0];
-    V = &SPACE[m+n+1];
-    Q = &SPACE[(m+n+1) + n];
-    if (Remainder)
-      R = &SPACE[(m+n+1) + n + (m+n)];
-  } else {
-    U = new uint32_t[m + n + 1];
-    V = new uint32_t[n];
-    Q = new uint32_t[m+n];
-    if (Remainder)
-      R = new uint32_t[n];
-  }
-
-  // Initialize the dividend
-  memset(U, 0, (m+n+1)*sizeof(uint32_t));
-  for (unsigned i = 0; i < lhsWords; ++i) {
-    uint64_t tmp = (LHS.getNumWords() == 1 ? LHS.VAL : LHS.pVal[i]);
-    U[i * 2] = tmp & mask;
-    U[i * 2 + 1] = tmp >> (sizeof(uint32_t)*8);
-  }
-  U[m+n] = 0; // this extra word is for "spill" in the Knuth algorithm.
-
-  // Initialize the divisor
-  memset(V, 0, (n)*sizeof(uint32_t));
-  for (unsigned i = 0; i < rhsWords; ++i) {
-    uint64_t tmp = (RHS.getNumWords() == 1 ? RHS.VAL : RHS.pVal[i]);
-    V[i * 2] = tmp & mask;
-    V[i * 2 + 1] = tmp >> (sizeof(uint32_t)*8);
-  }
-
-  // initialize the quotient and remainder
-  memset(Q, 0, (m+n) * sizeof(uint32_t));
-  if (Remainder)
-    memset(R, 0, n * sizeof(uint32_t));
-
-  // Now, adjust m and n for the Knuth division. n is the number of words in 
-  // the divisor. m is the number of words by which the dividend exceeds the
-  // divisor (i.e. m+n is the length of the dividend). These sizes must not 
-  // contain any zero words or the Knuth algorithm fails.
-  for (unsigned i = n; i > 0 && V[i-1] == 0; i--) {
-    n--;
-    m++;
-  }
-  for (unsigned i = m+n; i > 0 && U[i-1] == 0; i--)
-    m--;
-
-  // If we're left with only a single word for the divisor, Knuth doesn't work
-  // so we implement the short division algorithm here. This is much simpler
-  // and faster because we are certain that we can divide a 64-bit quantity
-  // by a 32-bit quantity at hardware speed and short division is simply a
-  // series of such operations. This is just like doing short division but we
-  // are using base 2^32 instead of base 10.
-  assert(n != 0 && "Divide by zero?");
-  if (n == 1) {
-    uint32_t divisor = V[0];
-    uint32_t remainder = 0;
-    for (int i = m+n-1; i >= 0; i--) {
-      uint64_t partial_dividend = uint64_t(remainder) << 32 | U[i];
-      if (partial_dividend == 0) {
-        Q[i] = 0;
-        remainder = 0;
-      } else if (partial_dividend < divisor) {
-        Q[i] = 0;
-        remainder = partial_dividend;
-      } else if (partial_dividend == divisor) {
-        Q[i] = 1;
-        remainder = 0;
-      } else {
-        Q[i] = partial_dividend / divisor;
-        remainder = partial_dividend - (Q[i] * divisor);
-      }
-    }
-    if (R)
-      R[0] = remainder;
-  } else {
-    // Now we're ready to invoke the Knuth classical divide algorithm. In this
-    // case n > 1.
-    KnuthDiv(U, V, Q, R, m, n);
-  }
-
-  // If the caller wants the quotient
-  if (Quotient) {
-    // Set up the Quotient value's memory.
-    if (Quotient->BitWidth != LHS.BitWidth) {
-      if (Quotient->isSingleWord())
-        Quotient->VAL = 0;
-      else
-        delete [] Quotient->pVal;
-      Quotient->BitWidth = LHS.BitWidth;
-      if (!Quotient->isSingleWord())
-        Quotient->pVal = getClearedMemory(Quotient->getNumWords());
-    } else
-      Quotient->clear();
-
-    // The quotient is in Q. Reconstitute the quotient into Quotient's low 
-    // order words.
-    if (lhsWords == 1) {
-      uint64_t tmp = 
-        uint64_t(Q[0]) | (uint64_t(Q[1]) << (APINT_BITS_PER_WORD / 2));
-      if (Quotient->isSingleWord())
-        Quotient->VAL = tmp;
-      else
-        Quotient->pVal[0] = tmp;
-    } else {
-      assert(!Quotient->isSingleWord() && "Quotient APInt not large enough");
-      for (unsigned i = 0; i < lhsWords; ++i)
-        Quotient->pVal[i] = 
-          uint64_t(Q[i*2]) | (uint64_t(Q[i*2+1]) << (APINT_BITS_PER_WORD / 2));
-    }
-  }
-
-  // If the caller wants the remainder
-  if (Remainder) {
-    // Set up the Remainder value's memory.
-    if (Remainder->BitWidth != RHS.BitWidth) {
-      if (Remainder->isSingleWord())
-        Remainder->VAL = 0;
-      else
-        delete [] Remainder->pVal;
-      Remainder->BitWidth = RHS.BitWidth;
-      if (!Remainder->isSingleWord())
-        Remainder->pVal = getClearedMemory(Remainder->getNumWords());
-    } else
-      Remainder->clear();
-
-    // The remainder is in R. Reconstitute the remainder into Remainder's low
-    // order words.
-    if (rhsWords == 1) {
-      uint64_t tmp = 
-        uint64_t(R[0]) | (uint64_t(R[1]) << (APINT_BITS_PER_WORD / 2));
-      if (Remainder->isSingleWord())
-        Remainder->VAL = tmp;
-      else
-        Remainder->pVal[0] = tmp;
-    } else {
-      assert(!Remainder->isSingleWord() && "Remainder APInt not large enough");
-      for (unsigned i = 0; i < rhsWords; ++i)
-        Remainder->pVal[i] = 
-          uint64_t(R[i*2]) | (uint64_t(R[i*2+1]) << (APINT_BITS_PER_WORD / 2));
-    }
-  }
-
-  // Clean up the memory we allocated.
-  if (U != &SPACE[0]) {
-    delete [] U;
-    delete [] V;
-    delete [] Q;
-    delete [] R;
-  }
-}
-
-APInt APInt::udiv(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-
-  // First, deal with the easy case
-  if (isSingleWord()) {
-    assert(RHS.VAL != 0 && "Divide by zero?");
-    return APInt(BitWidth, VAL / RHS.VAL);
-  }
-
-  // Get some facts about the LHS and RHS number of bits and words
-  uint32_t rhsBits = RHS.getActiveBits();
-  uint32_t rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1);
-  assert(rhsWords && "Divided by zero???");
-  uint32_t lhsBits = this->getActiveBits();
-  uint32_t lhsWords = !lhsBits ? 0 : (APInt::whichWord(lhsBits - 1) + 1);
-
-  // Deal with some degenerate cases
-  if (!lhsWords) 
-    // 0 / X ===> 0
-    return APInt(BitWidth, 0); 
-  else if (lhsWords < rhsWords || this->ult(RHS)) {
-    // X / Y ===> 0, iff X < Y
-    return APInt(BitWidth, 0);
-  } else if (*this == RHS) {
-    // X / X ===> 1
-    return APInt(BitWidth, 1);
-  } else if (lhsWords == 1 && rhsWords == 1) {
-    // All high words are zero, just use native divide
-    return APInt(BitWidth, this->pVal[0] / RHS.pVal[0]);
-  }
-
-  // We have to compute it the hard way. Invoke the Knuth divide algorithm.
-  APInt Quotient(1,0); // to hold result.
-  divide(*this, lhsWords, RHS, rhsWords, &Quotient, 0);
-  return Quotient;
-}
-
-APInt APInt::urem(const APInt& RHS) const {
-  assert(BitWidth == RHS.BitWidth && "Bit widths must be the same");
-  if (isSingleWord()) {
-    assert(RHS.VAL != 0 && "Remainder by zero?");
-    return APInt(BitWidth, VAL % RHS.VAL);
-  }
-
-  // Get some facts about the LHS
-  uint32_t lhsBits = getActiveBits();
-  uint32_t lhsWords = !lhsBits ? 0 : (whichWord(lhsBits - 1) + 1);
-
-  // Get some facts about the RHS
-  uint32_t rhsBits = RHS.getActiveBits();
-  uint32_t rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1);
-  assert(rhsWords && "Performing remainder operation by zero ???");
-
-  // Check the degenerate cases
-  if (lhsWords == 0) {
-    // 0 % Y ===> 0
-    return APInt(BitWidth, 0);
-  } else if (lhsWords < rhsWords || this->ult(RHS)) {
-    // X % Y ===> X, iff X < Y
-    return *this;
-  } else if (*this == RHS) {
-    // X % X == 0;
-    return APInt(BitWidth, 0);
-  } else if (lhsWords == 1) {
-    // All high words are zero, just use native remainder
-    return APInt(BitWidth, pVal[0] % RHS.pVal[0]);
-  }
-
-  // We have to compute it the hard way. Invoke the Knuth divide algorithm.
-  APInt Remainder(1,0);
-  divide(*this, lhsWords, RHS, rhsWords, 0, &Remainder);
-  return Remainder;
-}
-
-void APInt::udivrem(const APInt &LHS, const APInt &RHS, 
-                    APInt &Quotient, APInt &Remainder) {
-  // Get some size facts about the dividend and divisor
-  uint32_t lhsBits  = LHS.getActiveBits();
-  uint32_t lhsWords = !lhsBits ? 0 : (APInt::whichWord(lhsBits - 1) + 1);
-  uint32_t rhsBits  = RHS.getActiveBits();
-  uint32_t rhsWords = !rhsBits ? 0 : (APInt::whichWord(rhsBits - 1) + 1);
-
-  // Check the degenerate cases
-  if (lhsWords == 0) {              
-    Quotient = 0;                // 0 / Y ===> 0
-    Remainder = 0;               // 0 % Y ===> 0
-    return;
-  } 
-  
-  if (lhsWords < rhsWords || LHS.ult(RHS)) { 
-    Quotient = 0;               // X / Y ===> 0, iff X < Y
-    Remainder = LHS;            // X % Y ===> X, iff X < Y
-    return;
-  } 
-  
-  if (LHS == RHS) {
-    Quotient  = 1;              // X / X ===> 1
-    Remainder = 0;              // X % X ===> 0;
-    return;
-  } 
-  
-  if (lhsWords == 1 && rhsWords == 1) {
-    // There is only one word to consider so use the native versions.
-    if (LHS.isSingleWord()) {
-      Quotient = APInt(LHS.getBitWidth(), LHS.VAL / RHS.VAL);
-      Remainder = APInt(LHS.getBitWidth(), LHS.VAL % RHS.VAL);
-    } else {
-      Quotient = APInt(LHS.getBitWidth(), LHS.pVal[0] / RHS.pVal[0]);
-      Remainder = APInt(LHS.getBitWidth(), LHS.pVal[0] % RHS.pVal[0]);
-    }
-    return;
-  }
-
-  // Okay, lets do it the long way
-  divide(LHS, lhsWords, RHS, rhsWords, &Quotient, &Remainder);
-}
-
-void APInt::fromString(uint32_t numbits, const char *str, uint32_t slen, 
-                       uint8_t radix) {
-  // Check our assumptions here
-  assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) &&
-         "Radix should be 2, 8, 10, or 16!");
-  assert(str && "String is null?");
-  bool isNeg = str[0] == '-';
-  if (isNeg)
-    str++, slen--;
-  assert((slen <= numbits || radix != 2) && "Insufficient bit width");
-  assert((slen*3 <= numbits || radix != 8) && "Insufficient bit width");
-  assert((slen*4 <= numbits || radix != 16) && "Insufficient bit width");
-  assert(((slen*64)/22 <= numbits || radix != 10) && "Insufficient bit width");
-
-  // Allocate memory
-  if (!isSingleWord())
-    pVal = getClearedMemory(getNumWords());
-
-  // Figure out if we can shift instead of multiply
-  uint32_t shift = (radix == 16 ? 4 : radix == 8 ? 3 : radix == 2 ? 1 : 0);
-
-  // Set up an APInt for the digit to add outside the loop so we don't
-  // constantly construct/destruct it.
-  APInt apdigit(getBitWidth(), 0);
-  APInt apradix(getBitWidth(), radix);
-
-  // Enter digit traversal loop
-  for (unsigned i = 0; i < slen; i++) {
-    // Get a digit
-    uint32_t digit = 0;
-    char cdigit = str[i];
-    if (radix == 16) {
-      if (!isxdigit(cdigit))
-        assert(0 && "Invalid hex digit in string");
-      if (isdigit(cdigit))
-        digit = cdigit - '0';
-      else if (cdigit >= 'a')
-        digit = cdigit - 'a' + 10;
-      else if (cdigit >= 'A')
-        digit = cdigit - 'A' + 10;
-      else
-        assert(0 && "huh? we shouldn't get here");
-    } else if (isdigit(cdigit)) {
-      digit = cdigit - '0';
-    } else {
-      assert(0 && "Invalid character in digit string");
-    }
-
-    // Shift or multiply the value by the radix
-    if (shift)
-      *this <<= shift;
-    else
-      *this *= apradix;
-
-    // Add in the digit we just interpreted
-    if (apdigit.isSingleWord())
-      apdigit.VAL = digit;
-    else
-      apdigit.pVal[0] = digit;
-    *this += apdigit;
-  }
-  // If its negative, put it in two's complement form
-  if (isNeg) {
-    (*this)--;
-    this->flip();
-  }
-}
-
-std::string APInt::toString(uint8_t radix, bool wantSigned) const {
-  assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) &&
-         "Radix should be 2, 8, 10, or 16!");
-  static const char *digits[] = { 
-    "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F" 
-  };
-  std::string result;
-  uint32_t bits_used = getActiveBits();
-  if (isSingleWord()) {
-    char buf[65];
-    const char *format = (radix == 10 ? (wantSigned ? "%lld" : "%llu") :
-       (radix == 16 ? "%llX" : (radix == 8 ? "%llo" : 0)));
-    if (format) {
-      if (wantSigned) {
-        int64_t sextVal = (int64_t(VAL) << (APINT_BITS_PER_WORD-BitWidth)) >> 
-                           (APINT_BITS_PER_WORD-BitWidth);
-        sprintf(buf, format, sextVal);
-      } else 
-        sprintf(buf, format, VAL);
-    } else {
-      memset(buf, 0, 65);
-      uint64_t v = VAL;
-      while (bits_used) {
-        uint32_t bit = v & 1;
-        bits_used--;
-        buf[bits_used] = digits[bit][0];
-        v >>=1;
-      }
-    }
-    result = buf;
-    return result;
-  }
-
-  if (radix != 10) {
-    // For the 2, 8 and 16 bit cases, we can just shift instead of divide 
-    // because the number of bits per digit (1,3 and 4 respectively) divides 
-    // equaly. We just shift until there value is zero.
-
-    // First, check for a zero value and just short circuit the logic below.
-    if (*this == 0)
-      result = "0";
-    else {
-      APInt tmp(*this);
-      size_t insert_at = 0;
-      if (wantSigned && this->isNegative()) {
-        // They want to print the signed version and it is a negative value
-        // Flip the bits and add one to turn it into the equivalent positive
-        // value and put a '-' in the result.
-        tmp.flip();
-        tmp++;
-        result = "-";
-        insert_at = 1;
-      }
-      // Just shift tmp right for each digit width until it becomes zero
-      uint32_t shift = (radix == 16 ? 4 : (radix == 8 ? 3 : 1));
-      uint64_t mask = radix - 1;
-      APInt zero(tmp.getBitWidth(), 0);
-      while (tmp.ne(zero)) {
-        unsigned digit = (tmp.isSingleWord() ? tmp.VAL : tmp.pVal[0]) & mask;
-        result.insert(insert_at, digits[digit]);
-        tmp = tmp.lshr(shift);
-      }
-    }
-    return result;
-  }
-
-  APInt tmp(*this);
-  APInt divisor(4, radix);
-  APInt zero(tmp.getBitWidth(), 0);
-  size_t insert_at = 0;
-  if (wantSigned && tmp[BitWidth-1]) {
-    // They want to print the signed version and it is a negative value
-    // Flip the bits and add one to turn it into the equivalent positive
-    // value and put a '-' in the result.
-    tmp.flip();
-    tmp++;
-    result = "-";
-    insert_at = 1;
-  }
-  if (tmp == APInt(tmp.getBitWidth(), 0))
-    result = "0";
-  else while (tmp.ne(zero)) {
-    APInt APdigit(1,0);
-    APInt tmp2(tmp.getBitWidth(), 0);
-    divide(tmp, tmp.getNumWords(), divisor, divisor.getNumWords(), &tmp2, 
-           &APdigit);
-    uint32_t digit = APdigit.getZExtValue();
-    assert(digit < radix && "divide failed");
-    result.insert(insert_at,digits[digit]);
-    tmp = tmp2;
-  }
-
-  return result;
-}
-
-#ifndef NDEBUG
-void APInt::dump() const
-{
-  cerr << "APInt(" << BitWidth << ")=" << std::setbase(16);
-  if (isSingleWord())
-    cerr << VAL;
-  else for (unsigned i = getNumWords(); i > 0; i--) {
-    cerr << pVal[i-1] << " ";
-  }
-  cerr << " U(" << this->toString(10) << ") S(" << this->toStringSigned(10)
-       << ")\n" << std::setbase(10);
-}
-#endif
diff --git a/support/lib/Support/Allocator.cpp b/support/lib/Support/Allocator.cpp
deleted file mode 100644
index 234fd41..0000000
--- a/support/lib/Support/Allocator.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//===--- Allocator.cpp - Simple memory allocation abstraction -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the BumpPtrAllocator interface.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Allocator.h"
-#include "llvm/Support/DataTypes.h"
-#include "llvm/Support/Streams.h"
-#include <ostream>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// MemRegion class implementation
-//===----------------------------------------------------------------------===//
-
-namespace {
-/// MemRegion - This is one chunk of the BumpPtrAllocator.
-class MemRegion {
-  unsigned RegionSize;
-  MemRegion *Next;
-  char *NextPtr;
-public:
-  void Init(unsigned size, unsigned Alignment, MemRegion *next) {
-    RegionSize = size;
-    Next = next;
-    NextPtr = (char*)(this+1);
-    
-    // Align NextPtr.
-    NextPtr = (char*)((intptr_t)(NextPtr+Alignment-1) &
-                      ~(intptr_t)(Alignment-1));
-  }
-  
-  const MemRegion *getNext() const { return Next; }
-  unsigned getNumBytesAllocated() const {
-    return NextPtr-(const char*)this;
-  }
-  
-  /// Allocate - Allocate and return at least the specified number of bytes.
-  ///
-  void *Allocate(unsigned AllocSize, unsigned Alignment, MemRegion **RegPtr) {
-    // Round size up to an even multiple of the alignment.
-    AllocSize = (AllocSize+Alignment-1) & ~(Alignment-1);
-    
-    // If there is space in this region, return it.
-    if (unsigned(NextPtr+AllocSize-(char*)this) <= RegionSize) {
-      void *Result = NextPtr;
-      NextPtr += AllocSize;
-      return Result;
-    }
-    
-    // Otherwise, we have to allocate a new chunk.  Create one twice as big as
-    // this one.
-    MemRegion *NewRegion = (MemRegion *)malloc(RegionSize*2);
-    NewRegion->Init(RegionSize*2, Alignment, this);
-
-    // Update the current "first region" pointer  to point to the new region.
-    *RegPtr = NewRegion;
-    
-    // Try allocating from it now.
-    return NewRegion->Allocate(AllocSize, Alignment, RegPtr);
-  }
-  
-  /// Deallocate - Release all memory for this region to the system.
-  ///
-  void Deallocate() {
-    MemRegion *next = Next;
-    free(this);
-    if (next)
-      next->Deallocate();
-  }
-};
-}
-
-//===----------------------------------------------------------------------===//
-// BumpPtrAllocator class implementation
-//===----------------------------------------------------------------------===//
-
-BumpPtrAllocator::BumpPtrAllocator() {
-  TheMemory = malloc(4096);
-  ((MemRegion*)TheMemory)->Init(4096, 1, 0);
-}
-
-BumpPtrAllocator::~BumpPtrAllocator() {
-  ((MemRegion*)TheMemory)->Deallocate();
-}
-
-void *BumpPtrAllocator::Allocate(unsigned Size, unsigned Align) {
-  MemRegion *MRP = (MemRegion*)TheMemory;
-  void *Ptr = MRP->Allocate(Size, Align, &MRP);
-  TheMemory = MRP;
-  return Ptr;
-}
-
-void BumpPtrAllocator::PrintStats() const {
-  unsigned BytesUsed = 0;
-  unsigned NumRegions = 0;
-  const MemRegion *R = (MemRegion*)TheMemory;
-  for (; R; R = R->getNext(), ++NumRegions)
-    BytesUsed += R->getNumBytesAllocated();
-
-  cerr << "\nNumber of memory regions: " << NumRegions << "\n";
-  cerr << "Bytes allocated: " << BytesUsed << "\n";
-}
diff --git a/support/lib/Support/Annotation.cpp b/support/lib/Support/Annotation.cpp
deleted file mode 100644
index cfc9c2a..0000000
--- a/support/lib/Support/Annotation.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//===-- Annotation.cpp - Implement the Annotation Classes -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the AnnotationManager class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Annotation.h"
-#include "llvm/Support/ManagedStatic.h"
-#include <map>
-using namespace llvm;
-
-Annotation::~Annotation() {}  // Designed to be subclassed
-
-Annotable::~Annotable() {   // Virtual because it's designed to be subclassed...
-  Annotation *A = AnnotationList;
-  while (A) {
-    Annotation *Next = A->getNext();
-    delete A;
-    A = Next;
-  }
-}
-
-typedef std::map<const std::string, unsigned> IDMapType;
-static unsigned IDCounter = 0;  // Unique ID counter
-
-// Static member to ensure initialiation on demand.
-static ManagedStatic<IDMapType> IDMap;
-
-// On demand annotation creation support...
-typedef Annotation *(*AnnFactory)(AnnotationID, const Annotable *, void *);
-typedef std::map<unsigned, std::pair<AnnFactory,void*> > FactMapType;
-
-static FactMapType *TheFactMap = 0;
-static FactMapType &getFactMap() {
-  if (TheFactMap == 0)
-    TheFactMap = new FactMapType();
-  return *TheFactMap;
-}
-
-static void eraseFromFactMap(unsigned ID) {
-  assert(TheFactMap && "No entries found!");
-  TheFactMap->erase(ID);
-  if (TheFactMap->empty()) {   // Delete when empty
-    delete TheFactMap;
-    TheFactMap = 0;
-  }
-}
-
-AnnotationID AnnotationManager::getID(const std::string &Name) {  // Name -> ID
-  IDMapType::iterator I = IDMap->find(Name);
-  if (I == IDMap->end()) {
-    (*IDMap)[Name] = IDCounter++;   // Add a new element
-    return IDCounter-1;
-  }
-  return I->second;
-}
-
-// getID - Name -> ID + registration of a factory function for demand driven
-// annotation support.
-AnnotationID AnnotationManager::getID(const std::string &Name, Factory Fact,
-                                      void *Data) {
-  AnnotationID Result(getID(Name));
-  registerAnnotationFactory(Result, Fact, Data);
-  return Result;
-}
-
-// getName - This function is especially slow, but that's okay because it should
-// only be used for debugging.
-//
-const std::string &AnnotationManager::getName(AnnotationID ID) {  // ID -> Name
-  IDMapType &TheMap = *IDMap;
-  for (IDMapType::iterator I = TheMap.begin(); ; ++I) {
-    assert(I != TheMap.end() && "Annotation ID is unknown!");
-    if (I->second == ID.ID) return I->first;
-  }
-}
-
-// registerAnnotationFactory - This method is used to register a callback
-// function used to create an annotation on demand if it is needed by the
-// Annotable::findOrCreateAnnotation method.
-//
-void AnnotationManager::registerAnnotationFactory(AnnotationID ID, AnnFactory F,
-                                                  void *ExtraData) {
-  if (F)
-    getFactMap()[ID.ID] = std::make_pair(F, ExtraData);
-  else
-    eraseFromFactMap(ID.ID);
-}
-
-// createAnnotation - Create an annotation of the specified ID for the
-// specified object, using a register annotation creation function.
-//
-Annotation *AnnotationManager::createAnnotation(AnnotationID ID,
-                                                const Annotable *Obj) {
-  FactMapType::iterator I = getFactMap().find(ID.ID);
-  if (I == getFactMap().end()) return 0;
-  return I->second.first(ID, Obj, I->second.second);
-}
diff --git a/support/lib/Support/CommandLine.cpp b/support/lib/Support/CommandLine.cpp
deleted file mode 100644
index 1f5008a..0000000
--- a/support/lib/Support/CommandLine.cpp
+++ /dev/null
@@ -1,1072 +0,0 @@
-//===-- CommandLine.cpp - Command line parser implementation --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class implements a command line argument processor that is useful when
-// creating a tool.  It provides a simple, minimalistic interface that is easily
-// extensible and supports nonlocal (library) command line options.
-//
-// Note that rather than trying to figure out what this code does, you could try
-// reading the library documentation located in docs/CommandLine.html
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/System/Path.h"
-#include <algorithm>
-#include <functional>
-#include <map>
-#include <ostream>
-#include <set>
-#include <cstdlib>
-#include <cerrno>
-#include <cstring>
-using namespace llvm;
-using namespace cl;
-
-//===----------------------------------------------------------------------===//
-// Template instantiations and anchors.
-//
-TEMPLATE_INSTANTIATION(class basic_parser<bool>);
-TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>);
-TEMPLATE_INSTANTIATION(class basic_parser<int>);
-TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
-TEMPLATE_INSTANTIATION(class basic_parser<double>);
-TEMPLATE_INSTANTIATION(class basic_parser<float>);
-TEMPLATE_INSTANTIATION(class basic_parser<std::string>);
-
-TEMPLATE_INSTANTIATION(class opt<unsigned>);
-TEMPLATE_INSTANTIATION(class opt<int>);
-TEMPLATE_INSTANTIATION(class opt<std::string>);
-TEMPLATE_INSTANTIATION(class opt<bool>);
-
-void Option::anchor() {}
-void basic_parser_impl::anchor() {}
-void parser<bool>::anchor() {}
-void parser<boolOrDefault>::anchor() {}
-void parser<int>::anchor() {}
-void parser<unsigned>::anchor() {}
-void parser<double>::anchor() {}
-void parser<float>::anchor() {}
-void parser<std::string>::anchor() {}
-
-//===----------------------------------------------------------------------===//
-
-// Globals for name and overview of program.  Program name is not a string to
-// avoid static ctor/dtor issues.
-static char ProgramName[80] = "<premain>";
-static const char *ProgramOverview = 0;
-
-// This collects additional help to be printed.
-static ManagedStatic<std::vector<const char*> > MoreHelp;
-
-extrahelp::extrahelp(const char *Help)
-  : morehelp(Help) {
-  MoreHelp->push_back(Help);
-}
-
-static bool OptionListChanged = false;
-
-// MarkOptionsChanged - Internal helper function.
-void cl::MarkOptionsChanged() {
-  OptionListChanged = true;
-}
-
-/// RegisteredOptionList - This is the list of the command line options that
-/// have statically constructed themselves.
-static Option *RegisteredOptionList = 0;
-
-void Option::addArgument() {
-  assert(NextRegistered == 0 && "argument multiply registered!");
-  
-  NextRegistered = RegisteredOptionList;
-  RegisteredOptionList = this;
-  MarkOptionsChanged();
-}
-
-
-//===----------------------------------------------------------------------===//
-// Basic, shared command line option processing machinery.
-//
-
-/// GetOptionInfo - Scan the list of registered options, turning them into data
-/// structures that are easier to handle.
-static void GetOptionInfo(std::vector<Option*> &PositionalOpts,
-                          std::map<std::string, Option*> &OptionsMap) {
-  std::vector<const char*> OptionNames;
-  Option *CAOpt = 0;  // The ConsumeAfter option if it exists.
-  for (Option *O = RegisteredOptionList; O; O = O->getNextRegisteredOption()) {
-    // If this option wants to handle multiple option names, get the full set.
-    // This handles enum options like "-O1 -O2" etc.
-    O->getExtraOptionNames(OptionNames);
-    if (O->ArgStr[0])
-      OptionNames.push_back(O->ArgStr);
-    
-    // Handle named options.
-    for (unsigned i = 0, e = OptionNames.size(); i != e; ++i) {
-      // Add argument to the argument map!
-      if (!OptionsMap.insert(std::pair<std::string,Option*>(OptionNames[i],
-                                                            O)).second) {
-        cerr << ProgramName << ": CommandLine Error: Argument '"
-             << OptionNames[0] << "' defined more than once!\n";
-      }
-    }
-    
-    OptionNames.clear();
-    
-    // Remember information about positional options.
-    if (O->getFormattingFlag() == cl::Positional)
-      PositionalOpts.push_back(O);
-    else if (O->getNumOccurrencesFlag() == cl::ConsumeAfter) {
-      if (CAOpt)
-        O->error("Cannot specify more than one option with cl::ConsumeAfter!");
-      CAOpt = O;
-    }
-  }
-  
-  if (CAOpt)
-    PositionalOpts.push_back(CAOpt);
-  
-  // Make sure that they are in order of registration not backwards.
-  std::reverse(PositionalOpts.begin(), PositionalOpts.end());
-}
-
-
-/// LookupOption - Lookup the option specified by the specified option on the
-/// command line.  If there is a value specified (after an equal sign) return
-/// that as well.
-static Option *LookupOption(const char *&Arg, const char *&Value,
-                            std::map<std::string, Option*> &OptionsMap) {
-  while (*Arg == '-') ++Arg;  // Eat leading dashes
-  
-  const char *ArgEnd = Arg;
-  while (*ArgEnd && *ArgEnd != '=')
-    ++ArgEnd; // Scan till end of argument name.
-  
-  if (*ArgEnd == '=')  // If we have an equals sign...
-    Value = ArgEnd+1;  // Get the value, not the equals
-  
-  
-  if (*Arg == 0) return 0;
-  
-  // Look up the option.
-  std::map<std::string, Option*>::iterator I =
-    OptionsMap.find(std::string(Arg, ArgEnd));
-  return I != OptionsMap.end() ? I->second : 0;
-}
-
-static inline bool ProvideOption(Option *Handler, const char *ArgName,
-                                 const char *Value, int argc, char **argv,
-                                 int &i) {
-  // Enforce value requirements
-  switch (Handler->getValueExpectedFlag()) {
-  case ValueRequired:
-    if (Value == 0) {       // No value specified?
-      if (i+1 < argc) {     // Steal the next argument, like for '-o filename'
-        Value = argv[++i];
-      } else {
-        return Handler->error(" requires a value!");
-      }
-    }
-    break;
-  case ValueDisallowed:
-    if (Value)
-      return Handler->error(" does not allow a value! '" +
-                            std::string(Value) + "' specified.");
-    break;
-  case ValueOptional:
-    break;
-  default:
-    cerr << ProgramName
-         << ": Bad ValueMask flag! CommandLine usage error:"
-         << Handler->getValueExpectedFlag() << "\n";
-    abort();
-    break;
-  }
-
-  // Run the handler now!
-  return Handler->addOccurrence(i, ArgName, Value ? Value : "");
-}
-
-static bool ProvidePositionalOption(Option *Handler, const std::string &Arg,
-                                    int i) {
-  int Dummy = i;
-  return ProvideOption(Handler, Handler->ArgStr, Arg.c_str(), 0, 0, Dummy);
-}
-
-
-// Option predicates...
-static inline bool isGrouping(const Option *O) {
-  return O->getFormattingFlag() == cl::Grouping;
-}
-static inline bool isPrefixedOrGrouping(const Option *O) {
-  return isGrouping(O) || O->getFormattingFlag() == cl::Prefix;
-}
-
-// getOptionPred - Check to see if there are any options that satisfy the
-// specified predicate with names that are the prefixes in Name.  This is
-// checked by progressively stripping characters off of the name, checking to
-// see if there options that satisfy the predicate.  If we find one, return it,
-// otherwise return null.
-//
-static Option *getOptionPred(std::string Name, unsigned &Length,
-                             bool (*Pred)(const Option*),
-                             std::map<std::string, Option*> &OptionsMap) {
-
-  std::map<std::string, Option*>::iterator OMI = OptionsMap.find(Name);
-  if (OMI != OptionsMap.end() && Pred(OMI->second)) {
-    Length = Name.length();
-    return OMI->second;
-  }
-
-  if (Name.size() == 1) return 0;
-  do {
-    Name.erase(Name.end()-1, Name.end());   // Chop off the last character...
-    OMI = OptionsMap.find(Name);
-
-    // Loop while we haven't found an option and Name still has at least two
-    // characters in it (so that the next iteration will not be the empty
-    // string...
-  } while ((OMI == OptionsMap.end() || !Pred(OMI->second)) && Name.size() > 1);
-
-  if (OMI != OptionsMap.end() && Pred(OMI->second)) {
-    Length = Name.length();
-    return OMI->second;    // Found one!
-  }
-  return 0;                // No option found!
-}
-
-static bool RequiresValue(const Option *O) {
-  return O->getNumOccurrencesFlag() == cl::Required ||
-         O->getNumOccurrencesFlag() == cl::OneOrMore;
-}
-
-static bool EatsUnboundedNumberOfValues(const Option *O) {
-  return O->getNumOccurrencesFlag() == cl::ZeroOrMore ||
-         O->getNumOccurrencesFlag() == cl::OneOrMore;
-}
-
-/// ParseCStringVector - Break INPUT up wherever one or more
-/// whitespace characters are found, and store the resulting tokens in
-/// OUTPUT. The tokens stored in OUTPUT are dynamically allocated
-/// using strdup (), so it is the caller's responsibility to free ()
-/// them later.
-///
-static void ParseCStringVector(std::vector<char *> &output,
-                               const char *input) {
-  // Characters which will be treated as token separators:
-  static const char *delims = " \v\f\t\r\n";
-
-  std::string work (input);
-  // Skip past any delims at head of input string.
-  size_t pos = work.find_first_not_of (delims);
-  // If the string consists entirely of delims, then exit early.
-  if (pos == std::string::npos) return;
-  // Otherwise, jump forward to beginning of first word.
-  work = work.substr (pos);
-  // Find position of first delimiter.
-  pos = work.find_first_of (delims);
-
-  while (!work.empty() && pos != std::string::npos) {
-    // Everything from 0 to POS is the next word to copy.
-    output.push_back (strdup (work.substr (0,pos).c_str ()));
-    // Is there another word in the string?
-    size_t nextpos = work.find_first_not_of (delims, pos + 1);
-    if (nextpos != std::string::npos) {
-      // Yes? Then remove delims from beginning ...
-      work = work.substr (work.find_first_not_of (delims, pos + 1));
-      // and find the end of the word.
-      pos = work.find_first_of (delims);
-    } else {
-      // No? (Remainder of string is delims.) End the loop.
-      work = "";
-      pos = std::string::npos;
-    }
-  }
-
-  // If `input' ended with non-delim char, then we'll get here with
-  // the last word of `input' in `work'; copy it now.
-  if (!work.empty ()) {
-    output.push_back (strdup (work.c_str ()));
-  }
-}
-
-/// ParseEnvironmentOptions - An alternative entry point to the
-/// CommandLine library, which allows you to read the program's name
-/// from the caller (as PROGNAME) and its command-line arguments from
-/// an environment variable (whose name is given in ENVVAR).
-///
-void cl::ParseEnvironmentOptions(const char *progName, const char *envVar,
-                                 const char *Overview) {
-  // Check args.
-  assert(progName && "Program name not specified");
-  assert(envVar && "Environment variable name missing");
-
-  // Get the environment variable they want us to parse options out of.
-  const char *envValue = getenv(envVar);
-  if (!envValue)
-    return;
-
-  // Get program's "name", which we wouldn't know without the caller
-  // telling us.
-  std::vector<char*> newArgv;
-  newArgv.push_back(strdup(progName));
-
-  // Parse the value of the environment variable into a "command line"
-  // and hand it off to ParseCommandLineOptions().
-  ParseCStringVector(newArgv, envValue);
-  int newArgc = newArgv.size();
-  ParseCommandLineOptions(newArgc, &newArgv[0], Overview);
-
-  // Free all the strdup()ed strings.
-  for (std::vector<char*>::iterator i = newArgv.begin(), e = newArgv.end();
-       i != e; ++i)
-    free (*i);
-}
-
-void cl::ParseCommandLineOptions(int &argc, char **argv,
-                                 const char *Overview) {
-  // Process all registered options.
-  std::vector<Option*> PositionalOpts;
-  std::map<std::string, Option*> Opts;
-  GetOptionInfo(PositionalOpts, Opts);
-  
-  assert((!Opts.empty() || !PositionalOpts.empty()) &&
-         "No options specified!");
-  sys::Path progname(argv[0]);
-
-  // Copy the program name into ProgName, making sure not to overflow it.
-  std::string ProgName = sys::Path(argv[0]).getLast();
-  if (ProgName.size() > 79) ProgName.resize(79);
-  strcpy(ProgramName, ProgName.c_str());
-  
-  ProgramOverview = Overview;
-  bool ErrorParsing = false;
-
-  // Check out the positional arguments to collect information about them.
-  unsigned NumPositionalRequired = 0;
-  
-  // Determine whether or not there are an unlimited number of positionals
-  bool HasUnlimitedPositionals = false;
-  
-  Option *ConsumeAfterOpt = 0;
-  if (!PositionalOpts.empty()) {
-    if (PositionalOpts[0]->getNumOccurrencesFlag() == cl::ConsumeAfter) {
-      assert(PositionalOpts.size() > 1 &&
-             "Cannot specify cl::ConsumeAfter without a positional argument!");
-      ConsumeAfterOpt = PositionalOpts[0];
-    }
-
-    // Calculate how many positional values are _required_.
-    bool UnboundedFound = false;
-    for (unsigned i = ConsumeAfterOpt != 0, e = PositionalOpts.size();
-         i != e; ++i) {
-      Option *Opt = PositionalOpts[i];
-      if (RequiresValue(Opt))
-        ++NumPositionalRequired;
-      else if (ConsumeAfterOpt) {
-        // ConsumeAfter cannot be combined with "optional" positional options
-        // unless there is only one positional argument...
-        if (PositionalOpts.size() > 2)
-          ErrorParsing |=
-            Opt->error(" error - this positional option will never be matched, "
-                       "because it does not Require a value, and a "
-                       "cl::ConsumeAfter option is active!");
-      } else if (UnboundedFound && !Opt->ArgStr[0]) {
-        // This option does not "require" a value...  Make sure this option is
-        // not specified after an option that eats all extra arguments, or this
-        // one will never get any!
-        //
-        ErrorParsing |= Opt->error(" error - option can never match, because "
-                                   "another positional argument will match an "
-                                   "unbounded number of values, and this option"
-                                   " does not require a value!");
-      }
-      UnboundedFound |= EatsUnboundedNumberOfValues(Opt);
-    }
-    HasUnlimitedPositionals = UnboundedFound || ConsumeAfterOpt;
-  }
-
-  // PositionalVals - A vector of "positional" arguments we accumulate into
-  // the process at the end...
-  //
-  std::vector<std::pair<std::string,unsigned> > PositionalVals;
-
-  // If the program has named positional arguments, and the name has been run
-  // across, keep track of which positional argument was named.  Otherwise put
-  // the positional args into the PositionalVals list...
-  Option *ActivePositionalArg = 0;
-
-  // Loop over all of the arguments... processing them.
-  bool DashDashFound = false;  // Have we read '--'?
-  for (int i = 1; i < argc; ++i) {
-    Option *Handler = 0;
-    const char *Value = 0;
-    const char *ArgName = "";
-
-    // If the option list changed, this means that some command line
-    // option has just been registered or deregistered.  This can occur in
-    // response to things like -load, etc.  If this happens, rescan the options.
-    if (OptionListChanged) {
-      PositionalOpts.clear();
-      Opts.clear();
-      GetOptionInfo(PositionalOpts, Opts);
-      OptionListChanged = false;
-    }
-    
-    // Check to see if this is a positional argument.  This argument is
-    // considered to be positional if it doesn't start with '-', if it is "-"
-    // itself, or if we have seen "--" already.
-    //
-    if (argv[i][0] != '-' || argv[i][1] == 0 || DashDashFound) {
-      // Positional argument!
-      if (ActivePositionalArg) {
-        ProvidePositionalOption(ActivePositionalArg, argv[i], i);
-        continue;  // We are done!
-      } else if (!PositionalOpts.empty()) {
-        PositionalVals.push_back(std::make_pair(argv[i],i));
-
-        // All of the positional arguments have been fulfulled, give the rest to
-        // the consume after option... if it's specified...
-        //
-        if (PositionalVals.size() >= NumPositionalRequired &&
-            ConsumeAfterOpt != 0) {
-          for (++i; i < argc; ++i)
-            PositionalVals.push_back(std::make_pair(argv[i],i));
-          break;   // Handle outside of the argument processing loop...
-        }
-
-        // Delay processing positional arguments until the end...
-        continue;
-      }
-    } else if (argv[i][0] == '-' && argv[i][1] == '-' && argv[i][2] == 0 &&
-               !DashDashFound) {
-      DashDashFound = true;  // This is the mythical "--"?
-      continue;              // Don't try to process it as an argument itself.
-    } else if (ActivePositionalArg &&
-               (ActivePositionalArg->getMiscFlags() & PositionalEatsArgs)) {
-      // If there is a positional argument eating options, check to see if this
-      // option is another positional argument.  If so, treat it as an argument,
-      // otherwise feed it to the eating positional.
-      ArgName = argv[i]+1;
-      Handler = LookupOption(ArgName, Value, Opts);
-      if (!Handler || Handler->getFormattingFlag() != cl::Positional) {
-        ProvidePositionalOption(ActivePositionalArg, argv[i], i);
-        continue;  // We are done!
-      }
-
-    } else {     // We start with a '-', must be an argument...
-      ArgName = argv[i]+1;
-      Handler = LookupOption(ArgName, Value, Opts);
-
-      // Check to see if this "option" is really a prefixed or grouped argument.
-      if (Handler == 0) {
-        std::string RealName(ArgName);
-        if (RealName.size() > 1) {
-          unsigned Length = 0;
-          Option *PGOpt = getOptionPred(RealName, Length, isPrefixedOrGrouping,
-                                        Opts);
-
-          // If the option is a prefixed option, then the value is simply the
-          // rest of the name...  so fall through to later processing, by
-          // setting up the argument name flags and value fields.
-          //
-          if (PGOpt && PGOpt->getFormattingFlag() == cl::Prefix) {
-            Value = ArgName+Length;
-            assert(Opts.find(std::string(ArgName, Value)) != Opts.end() &&
-                   Opts.find(std::string(ArgName, Value))->second == PGOpt);
-            Handler = PGOpt;
-          } else if (PGOpt) {
-            // This must be a grouped option... handle them now.
-            assert(isGrouping(PGOpt) && "Broken getOptionPred!");
-
-            do {
-              // Move current arg name out of RealName into RealArgName...
-              std::string RealArgName(RealName.begin(),
-                                      RealName.begin() + Length);
-              RealName.erase(RealName.begin(), RealName.begin() + Length);
-
-              // Because ValueRequired is an invalid flag for grouped arguments,
-              // we don't need to pass argc/argv in...
-              //
-              assert(PGOpt->getValueExpectedFlag() != cl::ValueRequired &&
-                     "Option can not be cl::Grouping AND cl::ValueRequired!");
-              int Dummy;
-              ErrorParsing |= ProvideOption(PGOpt, RealArgName.c_str(),
-                                            0, 0, 0, Dummy);
-
-              // Get the next grouping option...
-              PGOpt = getOptionPred(RealName, Length, isGrouping, Opts);
-            } while (PGOpt && Length != RealName.size());
-
-            Handler = PGOpt; // Ate all of the options.
-          }
-        }
-      }
-    }
-
-    if (Handler == 0) {
-      cerr << ProgramName << ": Unknown command line argument '"
-           << argv[i] << "'.  Try: '" << argv[0] << " --help'\n";
-      ErrorParsing = true;
-      continue;
-    }
-
-    // Check to see if this option accepts a comma separated list of values.  If
-    // it does, we have to split up the value into multiple values...
-    if (Value && Handler->getMiscFlags() & CommaSeparated) {
-      std::string Val(Value);
-      std::string::size_type Pos = Val.find(',');
-
-      while (Pos != std::string::npos) {
-        // Process the portion before the comma...
-        ErrorParsing |= ProvideOption(Handler, ArgName,
-                                      std::string(Val.begin(),
-                                                  Val.begin()+Pos).c_str(),
-                                      argc, argv, i);
-        // Erase the portion before the comma, AND the comma...
-        Val.erase(Val.begin(), Val.begin()+Pos+1);
-        Value += Pos+1;  // Increment the original value pointer as well...
-
-        // Check for another comma...
-        Pos = Val.find(',');
-      }
-    }
-
-    // If this is a named positional argument, just remember that it is the
-    // active one...
-    if (Handler->getFormattingFlag() == cl::Positional)
-      ActivePositionalArg = Handler;
-    else
-      ErrorParsing |= ProvideOption(Handler, ArgName, Value, argc, argv, i);
-  }
-
-  // Check and handle positional arguments now...
-  if (NumPositionalRequired > PositionalVals.size()) {
-    cerr << ProgramName
-         << ": Not enough positional command line arguments specified!\n"
-         << "Must specify at least " << NumPositionalRequired
-         << " positional arguments: See: " << argv[0] << " --help\n";
-    
-    ErrorParsing = true;
-  } else if (!HasUnlimitedPositionals
-             && PositionalVals.size() > PositionalOpts.size()) {
-    cerr << ProgramName
-         << ": Too many positional arguments specified!\n"
-         << "Can specify at most " << PositionalOpts.size()
-         << " positional arguments: See: " << argv[0] << " --help\n";
-    ErrorParsing = true;
-
-  } else if (ConsumeAfterOpt == 0) {
-    // Positional args have already been handled if ConsumeAfter is specified...
-    unsigned ValNo = 0, NumVals = PositionalVals.size();
-    for (unsigned i = 0, e = PositionalOpts.size(); i != e; ++i) {
-      if (RequiresValue(PositionalOpts[i])) {
-        ProvidePositionalOption(PositionalOpts[i], PositionalVals[ValNo].first,
-                                PositionalVals[ValNo].second);
-        ValNo++;
-        --NumPositionalRequired;  // We fulfilled our duty...
-      }
-
-      // If we _can_ give this option more arguments, do so now, as long as we
-      // do not give it values that others need.  'Done' controls whether the
-      // option even _WANTS_ any more.
-      //
-      bool Done = PositionalOpts[i]->getNumOccurrencesFlag() == cl::Required;
-      while (NumVals-ValNo > NumPositionalRequired && !Done) {
-        switch (PositionalOpts[i]->getNumOccurrencesFlag()) {
-        case cl::Optional:
-          Done = true;          // Optional arguments want _at most_ one value
-          // FALL THROUGH
-        case cl::ZeroOrMore:    // Zero or more will take all they can get...
-        case cl::OneOrMore:     // One or more will take all they can get...
-          ProvidePositionalOption(PositionalOpts[i],
-                                  PositionalVals[ValNo].first,
-                                  PositionalVals[ValNo].second);
-          ValNo++;
-          break;
-        default:
-          assert(0 && "Internal error, unexpected NumOccurrences flag in "
-                 "positional argument processing!");
-        }
-      }
-    }
-  } else {
-    assert(ConsumeAfterOpt && NumPositionalRequired <= PositionalVals.size());
-    unsigned ValNo = 0;
-    for (unsigned j = 1, e = PositionalOpts.size(); j != e; ++j)
-      if (RequiresValue(PositionalOpts[j])) {
-        ErrorParsing |= ProvidePositionalOption(PositionalOpts[j],
-                                                PositionalVals[ValNo].first,
-                                                PositionalVals[ValNo].second);
-        ValNo++;
-      }
-
-    // Handle the case where there is just one positional option, and it's
-    // optional.  In this case, we want to give JUST THE FIRST option to the
-    // positional option and keep the rest for the consume after.  The above
-    // loop would have assigned no values to positional options in this case.
-    //
-    if (PositionalOpts.size() == 2 && ValNo == 0 && !PositionalVals.empty()) {
-      ErrorParsing |= ProvidePositionalOption(PositionalOpts[1],
-                                              PositionalVals[ValNo].first,
-                                              PositionalVals[ValNo].second);
-      ValNo++;
-    }
-
-    // Handle over all of the rest of the arguments to the
-    // cl::ConsumeAfter command line option...
-    for (; ValNo != PositionalVals.size(); ++ValNo)
-      ErrorParsing |= ProvidePositionalOption(ConsumeAfterOpt,
-                                              PositionalVals[ValNo].first,
-                                              PositionalVals[ValNo].second);
-  }
-
-  // Loop over args and make sure all required args are specified!
-  for (std::map<std::string, Option*>::iterator I = Opts.begin(),
-         E = Opts.end(); I != E; ++I) {
-    switch (I->second->getNumOccurrencesFlag()) {
-    case Required:
-    case OneOrMore:
-      if (I->second->getNumOccurrences() == 0) {
-        I->second->error(" must be specified at least once!");
-        ErrorParsing = true;
-      }
-      // Fall through
-    default:
-      break;
-    }
-  }
-
-  // Free all of the memory allocated to the map.  Command line options may only
-  // be processed once!
-  Opts.clear();
-  PositionalOpts.clear();
-  MoreHelp->clear();
-
-  // If we had an error processing our arguments, don't let the program execute
-  if (ErrorParsing) exit(1);
-}
-
-//===----------------------------------------------------------------------===//
-// Option Base class implementation
-//
-
-bool Option::error(std::string Message, const char *ArgName) {
-  if (ArgName == 0) ArgName = ArgStr;
-  if (ArgName[0] == 0)
-    cerr << HelpStr;  // Be nice for positional arguments
-  else
-    cerr << ProgramName << ": for the -" << ArgName;
-  
-  cerr << " option: " << Message << "\n";
-  return true;
-}
-
-bool Option::addOccurrence(unsigned pos, const char *ArgName,
-                           const std::string &Value) {
-  NumOccurrences++;   // Increment the number of times we have been seen
-
-  switch (getNumOccurrencesFlag()) {
-  case Optional:
-    if (NumOccurrences > 1)
-      return error(": may only occur zero or one times!", ArgName);
-    break;
-  case Required:
-    if (NumOccurrences > 1)
-      return error(": must occur exactly one time!", ArgName);
-    // Fall through
-  case OneOrMore:
-  case ZeroOrMore:
-  case ConsumeAfter: break;
-  default: return error(": bad num occurrences flag value!");
-  }
-
-  return handleOccurrence(pos, ArgName, Value);
-}
-
-
-// getValueStr - Get the value description string, using "DefaultMsg" if nothing
-// has been specified yet.
-//
-static const char *getValueStr(const Option &O, const char *DefaultMsg) {
-  if (O.ValueStr[0] == 0) return DefaultMsg;
-  return O.ValueStr;
-}
-
-//===----------------------------------------------------------------------===//
-// cl::alias class implementation
-//
-
-// Return the width of the option tag for printing...
-unsigned alias::getOptionWidth() const {
-  return std::strlen(ArgStr)+6;
-}
-
-// Print out the option for the alias.
-void alias::printOptionInfo(unsigned GlobalWidth) const {
-  unsigned L = std::strlen(ArgStr);
-  cout << "  -" << ArgStr << std::string(GlobalWidth-L-6, ' ') << " - "
-       << HelpStr << "\n";
-}
-
-
-
-//===----------------------------------------------------------------------===//
-// Parser Implementation code...
-//
-
-// basic_parser implementation
-//
-
-// Return the width of the option tag for printing...
-unsigned basic_parser_impl::getOptionWidth(const Option &O) const {
-  unsigned Len = std::strlen(O.ArgStr);
-  if (const char *ValName = getValueName())
-    Len += std::strlen(getValueStr(O, ValName))+3;
-
-  return Len + 6;
-}
-
-// printOptionInfo - Print out information about this option.  The
-// to-be-maintained width is specified.
-//
-void basic_parser_impl::printOptionInfo(const Option &O,
-                                        unsigned GlobalWidth) const {
-  cout << "  -" << O.ArgStr;
-
-  if (const char *ValName = getValueName())
-    cout << "=<" << getValueStr(O, ValName) << ">";
-
-  cout << std::string(GlobalWidth-getOptionWidth(O), ' ') << " - "
-       << O.HelpStr << "\n";
-}
-
-
-
-
-// parser<bool> implementation
-//
-bool parser<bool>::parse(Option &O, const char *ArgName,
-                         const std::string &Arg, bool &Value) {
-  if (Arg == "" || Arg == "true" || Arg == "TRUE" || Arg == "True" ||
-      Arg == "1") {
-    Value = true;
-  } else if (Arg == "false" || Arg == "FALSE" || Arg == "False" || Arg == "0") {
-    Value = false;
-  } else {
-    return O.error(": '" + Arg +
-                   "' is invalid value for boolean argument! Try 0 or 1");
-  }
-  return false;
-}
-
-// parser<boolOrDefault> implementation
-//
-bool parser<boolOrDefault>::parse(Option &O, const char *ArgName,
-                         const std::string &Arg, boolOrDefault &Value) {
-  if (Arg == "" || Arg == "true" || Arg == "TRUE" || Arg == "True" ||
-      Arg == "1") {
-    Value = BOU_TRUE;
-  } else if (Arg == "false" || Arg == "FALSE" || Arg == "False" || Arg == "0") {
-    Value = BOU_FALSE;
-  } else {
-    return O.error(": '" + Arg +
-                   "' is invalid value for boolean argument! Try 0 or 1");
-  }
-  return false;
-}
-
-// parser<int> implementation
-//
-bool parser<int>::parse(Option &O, const char *ArgName,
-                        const std::string &Arg, int &Value) {
-  char *End;
-  Value = (int)strtol(Arg.c_str(), &End, 0);
-  if (*End != 0)
-    return O.error(": '" + Arg + "' value invalid for integer argument!");
-  return false;
-}
-
-// parser<unsigned> implementation
-//
-bool parser<unsigned>::parse(Option &O, const char *ArgName,
-                             const std::string &Arg, unsigned &Value) {
-  char *End;
-  errno = 0;
-  unsigned long V = strtoul(Arg.c_str(), &End, 0);
-  Value = (unsigned)V;
-  if (((V == ULONG_MAX) && (errno == ERANGE))
-      || (*End != 0)
-      || (Value != V))
-    return O.error(": '" + Arg + "' value invalid for uint argument!");
-  return false;
-}
-
-// parser<double>/parser<float> implementation
-//
-static bool parseDouble(Option &O, const std::string &Arg, double &Value) {
-  const char *ArgStart = Arg.c_str();
-  char *End;
-  Value = strtod(ArgStart, &End);
-  if (*End != 0)
-    return O.error(": '" +Arg+ "' value invalid for floating point argument!");
-  return false;
-}
-
-bool parser<double>::parse(Option &O, const char *AN,
-                           const std::string &Arg, double &Val) {
-  return parseDouble(O, Arg, Val);
-}
-
-bool parser<float>::parse(Option &O, const char *AN,
-                          const std::string &Arg, float &Val) {
-  double dVal;
-  if (parseDouble(O, Arg, dVal))
-    return true;
-  Val = (float)dVal;
-  return false;
-}
-
-
-
-// generic_parser_base implementation
-//
-
-// findOption - Return the option number corresponding to the specified
-// argument string.  If the option is not found, getNumOptions() is returned.
-//
-unsigned generic_parser_base::findOption(const char *Name) {
-  unsigned i = 0, e = getNumOptions();
-  std::string N(Name);
-
-  while (i != e)
-    if (getOption(i) == N)
-      return i;
-    else
-      ++i;
-  return e;
-}
-
-
-// Return the width of the option tag for printing...
-unsigned generic_parser_base::getOptionWidth(const Option &O) const {
-  if (O.hasArgStr()) {
-    unsigned Size = std::strlen(O.ArgStr)+6;
-    for (unsigned i = 0, e = getNumOptions(); i != e; ++i)
-      Size = std::max(Size, (unsigned)std::strlen(getOption(i))+8);
-    return Size;
-  } else {
-    unsigned BaseSize = 0;
-    for (unsigned i = 0, e = getNumOptions(); i != e; ++i)
-      BaseSize = std::max(BaseSize, (unsigned)std::strlen(getOption(i))+8);
-    return BaseSize;
-  }
-}
-
-// printOptionInfo - Print out information about this option.  The
-// to-be-maintained width is specified.
-//
-void generic_parser_base::printOptionInfo(const Option &O,
-                                          unsigned GlobalWidth) const {
-  if (O.hasArgStr()) {
-    unsigned L = std::strlen(O.ArgStr);
-    cout << "  -" << O.ArgStr << std::string(GlobalWidth-L-6, ' ')
-         << " - " << O.HelpStr << "\n";
-
-    for (unsigned i = 0, e = getNumOptions(); i != e; ++i) {
-      unsigned NumSpaces = GlobalWidth-strlen(getOption(i))-8;
-      cout << "    =" << getOption(i) << std::string(NumSpaces, ' ')
-           << " - " << getDescription(i) << "\n";
-    }
-  } else {
-    if (O.HelpStr[0])
-      cout << "  " << O.HelpStr << "\n";
-    for (unsigned i = 0, e = getNumOptions(); i != e; ++i) {
-      unsigned L = std::strlen(getOption(i));
-      cout << "    -" << getOption(i) << std::string(GlobalWidth-L-8, ' ')
-           << " - " << getDescription(i) << "\n";
-    }
-  }
-}
-
-
-//===----------------------------------------------------------------------===//
-// --help and --help-hidden option implementation
-//
-
-namespace {
-
-class HelpPrinter {
-  unsigned MaxArgLen;
-  const Option *EmptyArg;
-  const bool ShowHidden;
-
-  // isHidden/isReallyHidden - Predicates to be used to filter down arg lists.
-  inline static bool isHidden(std::pair<std::string, Option *> &OptPair) {
-    return OptPair.second->getOptionHiddenFlag() >= Hidden;
-  }
-  inline static bool isReallyHidden(std::pair<std::string, Option *> &OptPair) {
-    return OptPair.second->getOptionHiddenFlag() == ReallyHidden;
-  }
-
-public:
-  HelpPrinter(bool showHidden) : ShowHidden(showHidden) {
-    EmptyArg = 0;
-  }
-
-  void operator=(bool Value) {
-    if (Value == false) return;
-
-    // Get all the options.
-    std::vector<Option*> PositionalOpts;
-    std::map<std::string, Option*> OptMap;
-    GetOptionInfo(PositionalOpts, OptMap);
-    
-    // Copy Options into a vector so we can sort them as we like...
-    std::vector<std::pair<std::string, Option*> > Opts;
-    copy(OptMap.begin(), OptMap.end(), std::back_inserter(Opts));
-
-    // Eliminate Hidden or ReallyHidden arguments, depending on ShowHidden
-    Opts.erase(std::remove_if(Opts.begin(), Opts.end(),
-                          std::ptr_fun(ShowHidden ? isReallyHidden : isHidden)),
-               Opts.end());
-
-    // Eliminate duplicate entries in table (from enum flags options, f.e.)
-    {  // Give OptionSet a scope
-      std::set<Option*> OptionSet;
-      for (unsigned i = 0; i != Opts.size(); ++i)
-        if (OptionSet.count(Opts[i].second) == 0)
-          OptionSet.insert(Opts[i].second);   // Add new entry to set
-        else
-          Opts.erase(Opts.begin()+i--);    // Erase duplicate
-    }
-
-    if (ProgramOverview)
-      cout << "OVERVIEW:" << ProgramOverview << "\n";
-
-    cout << "USAGE: " << ProgramName << " [options]";
-
-    // Print out the positional options.
-    Option *CAOpt = 0;   // The cl::ConsumeAfter option, if it exists...
-    if (!PositionalOpts.empty() && 
-        PositionalOpts[0]->getNumOccurrencesFlag() == ConsumeAfter)
-      CAOpt = PositionalOpts[0];
-
-    for (unsigned i = CAOpt != 0, e = PositionalOpts.size(); i != e; ++i) {
-      if (PositionalOpts[i]->ArgStr[0])
-        cout << " --" << PositionalOpts[i]->ArgStr;
-      cout << " " << PositionalOpts[i]->HelpStr;
-    }
-
-    // Print the consume after option info if it exists...
-    if (CAOpt) cout << " " << CAOpt->HelpStr;
-
-    cout << "\n\n";
-
-    // Compute the maximum argument length...
-    MaxArgLen = 0;
-    for (unsigned i = 0, e = Opts.size(); i != e; ++i)
-      MaxArgLen = std::max(MaxArgLen, Opts[i].second->getOptionWidth());
-
-    cout << "OPTIONS:\n";
-    for (unsigned i = 0, e = Opts.size(); i != e; ++i)
-      Opts[i].second->printOptionInfo(MaxArgLen);
-
-    // Print any extra help the user has declared.
-    for (std::vector<const char *>::iterator I = MoreHelp->begin(),
-          E = MoreHelp->end(); I != E; ++I)
-      cout << *I;
-    MoreHelp->clear();
-
-    // Halt the program since help information was printed
-    exit(1);
-  }
-};
-} // End anonymous namespace
-
-// Define the two HelpPrinter instances that are used to print out help, or
-// help-hidden...
-//
-static HelpPrinter NormalPrinter(false);
-static HelpPrinter HiddenPrinter(true);
-
-static cl::opt<HelpPrinter, true, parser<bool> >
-HOp("help", cl::desc("Display available options (--help-hidden for more)"),
-    cl::location(NormalPrinter), cl::ValueDisallowed);
-
-static cl::opt<HelpPrinter, true, parser<bool> >
-HHOp("help-hidden", cl::desc("Display all available options"),
-     cl::location(HiddenPrinter), cl::Hidden, cl::ValueDisallowed);
-
-static void (*OverrideVersionPrinter)() = 0;
-
-namespace {
-class VersionPrinter {
-public:
-  void print() {
-        cout << "Low Level Virtual Machine (http://llvm.org/):\n";
-        cout << "  " << PACKAGE_NAME << " version " << PACKAGE_VERSION;
-#ifdef LLVM_VERSION_INFO
-        cout << LLVM_VERSION_INFO;
-#endif
-        cout << "\n  ";
-#ifndef __OPTIMIZE__
-        cout << "DEBUG build";
-#else
-        cout << "Optimized build";
-#endif
-#ifndef NDEBUG
-        cout << " with assertions";
-#endif
-        cout << ".\n";
-  }
-  void operator=(bool OptionWasSpecified) {
-    if (OptionWasSpecified) {
-      if (OverrideVersionPrinter == 0) {
-        print();
-        exit(1);
-      } else {
-        (*OverrideVersionPrinter)();
-        exit(1);
-      }
-    }
-  }
-};
-} // End anonymous namespace
-
-
-// Define the --version option that prints out the LLVM version for the tool
-static VersionPrinter VersionPrinterInstance;
-
-static cl::opt<VersionPrinter, true, parser<bool> >
-VersOp("version", cl::desc("Display the version of this program"),
-    cl::location(VersionPrinterInstance), cl::ValueDisallowed);
-
-// Utility function for printing the help message.
-void cl::PrintHelpMessage() {
-  // This looks weird, but it actually prints the help message. The
-  // NormalPrinter variable is a HelpPrinter and the help gets printed when
-  // its operator= is invoked. That's because the "normal" usages of the
-  // help printer is to be assigned true/false depending on whether the
-  // --help option was given or not. Since we're circumventing that we have
-  // to make it look like --help was given, so we assign true.
-  NormalPrinter = true;
-}
-
-/// Utility function for printing version number.
-void cl::PrintVersionMessage() {
-  VersionPrinterInstance.print();
-}
-
-void cl::SetVersionPrinter(void (*func)()) {
-  OverrideVersionPrinter = func;
-}
diff --git a/support/lib/Support/ConstantRange.cpp b/support/lib/Support/ConstantRange.cpp
deleted file mode 100644
index fdfe28a..0000000
--- a/support/lib/Support/ConstantRange.cpp
+++ /dev/null
@@ -1,474 +0,0 @@
-//===-- ConstantRange.cpp - ConstantRange implementation ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Represent a range of possible values that may occur when the program is run
-// for an integral value.  This keeps track of a lower and upper bound for the
-// constant, which MAY wrap around the end of the numeric range.  To do this, it
-// keeps track of a [lower, upper) bound, which specifies an interval just like
-// STL iterators.  When used with boolean values, the following are important
-// ranges (other integral ranges use min/max values for special range values):
-//
-//  [F, F) = {}     = Empty set
-//  [T, F) = {T}
-//  [F, T) = {F}
-//  [T, T) = {F, T} = Full set
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/ConstantRange.h"
-#include "llvm/Support/Streams.h"
-#include <ostream>
-using namespace llvm;
-
-/// Initialize a full (the default) or empty set for the specified type.
-///
-ConstantRange::ConstantRange(uint32_t BitWidth, bool Full) :
-  Lower(BitWidth, 0), Upper(BitWidth, 0) {
-  if (Full)
-    Lower = Upper = APInt::getMaxValue(BitWidth);
-  else
-    Lower = Upper = APInt::getMinValue(BitWidth);
-}
-
-/// Initialize a range to hold the single specified value.
-///
-ConstantRange::ConstantRange(const APInt & V) : Lower(V), Upper(V + 1) { }
-
-ConstantRange::ConstantRange(const APInt &L, const APInt &U) :
-  Lower(L), Upper(U) {
-  assert(L.getBitWidth() == U.getBitWidth() && 
-         "ConstantRange with unequal bit widths");
-  assert((L != U || (L.isMaxValue() || L.isMinValue())) &&
-         "Lower == Upper, but they aren't min or max value!");
-}
-
-/// isFullSet - Return true if this set contains all of the elements possible
-/// for this data-type
-bool ConstantRange::isFullSet() const {
-  return Lower == Upper && Lower.isMaxValue();
-}
-
-/// isEmptySet - Return true if this set contains no members.
-///
-bool ConstantRange::isEmptySet() const {
-  return Lower == Upper && Lower.isMinValue();
-}
-
-/// isWrappedSet - Return true if this set wraps around the top of the range,
-/// for example: [100, 8)
-///
-bool ConstantRange::isWrappedSet() const {
-  return Lower.ugt(Upper);
-}
-
-/// getSetSize - Return the number of elements in this set.
-///
-APInt ConstantRange::getSetSize() const {
-  if (isEmptySet()) 
-    return APInt(getBitWidth(), 0);
-  if (getBitWidth() == 1) {
-    if (Lower != Upper)  // One of T or F in the set...
-      return APInt(2, 1);
-    return APInt(2, 2);      // Must be full set...
-  }
-
-  // Simply subtract the bounds...
-  return Upper - Lower;
-}
-
-/// getUnsignedMax - Return the largest unsigned value contained in the
-/// ConstantRange.
-///
-APInt ConstantRange::getUnsignedMax() const {
-  if (isFullSet() || isWrappedSet())
-    return APInt::getMaxValue(getBitWidth());
-  else
-    return getUpper() - 1;
-}
-
-/// getUnsignedMin - Return the smallest unsigned value contained in the
-/// ConstantRange.
-///
-APInt ConstantRange::getUnsignedMin() const {
-  if (isFullSet() || (isWrappedSet() && getUpper() != 0))
-    return APInt::getMinValue(getBitWidth());
-  else
-    return getLower();
-}
-
-/// getSignedMax - Return the largest signed value contained in the
-/// ConstantRange.
-///
-APInt ConstantRange::getSignedMax() const {
-  APInt SignedMax(APInt::getSignedMaxValue(getBitWidth()));
-  if (!isWrappedSet()) {
-    if (getLower().sle(getUpper() - 1))
-      return getUpper() - 1;
-    else
-      return SignedMax;
-  } else {
-    if ((getUpper() - 1).slt(getLower())) {
-      if (getLower() != SignedMax)
-        return SignedMax;
-      else
-        return getUpper() - 1;
-    } else {
-      return getUpper() - 1;
-    }
-  }
-}
-
-/// getSignedMin - Return the smallest signed value contained in the
-/// ConstantRange.
-///
-APInt ConstantRange::getSignedMin() const {
-  APInt SignedMin(APInt::getSignedMinValue(getBitWidth()));
-  if (!isWrappedSet()) {
-    if (getLower().sle(getUpper() - 1))
-      return getLower();
-    else
-      return SignedMin;
-  } else {
-    if ((getUpper() - 1).slt(getLower())) {
-      if (getUpper() != SignedMin)
-        return SignedMin;
-      else
-        return getLower();
-    } else {
-      return getLower();
-    }
-  }
-}
-
-/// contains - Return true if the specified value is in the set.
-///
-bool ConstantRange::contains(const APInt &V) const {
-  if (Lower == Upper)
-    return isFullSet();
-
-  if (!isWrappedSet())
-    return Lower.ule(V) && V.ult(Upper);
-  else
-    return Lower.ule(V) || V.ult(Upper);
-}
-
-/// subtract - Subtract the specified constant from the endpoints of this
-/// constant range.
-ConstantRange ConstantRange::subtract(const APInt &Val) const {
-  assert(Val.getBitWidth() == getBitWidth() && "Wrong bit width");
-  // If the set is empty or full, don't modify the endpoints.
-  if (Lower == Upper) 
-    return *this;
-  return ConstantRange(Lower - Val, Upper - Val);
-}
-
-
-// intersect1Wrapped - This helper function is used to intersect two ranges when
-// it is known that LHS is wrapped and RHS isn't.
-//
-ConstantRange 
-ConstantRange::intersect1Wrapped(const ConstantRange &LHS,
-                                 const ConstantRange &RHS) {
-  assert(LHS.isWrappedSet() && !RHS.isWrappedSet());
-
-  // Check to see if we overlap on the Left side of RHS...
-  //
-  if (RHS.Lower.ult(LHS.Upper)) {
-    // We do overlap on the left side of RHS, see if we overlap on the right of
-    // RHS...
-    if (RHS.Upper.ugt(LHS.Lower)) {
-      // Ok, the result overlaps on both the left and right sides.  See if the
-      // resultant interval will be smaller if we wrap or not...
-      //
-      if (LHS.getSetSize().ult(RHS.getSetSize()))
-        return LHS;
-      else
-        return RHS;
-
-    } else {
-      // No overlap on the right, just on the left.
-      return ConstantRange(RHS.Lower, LHS.Upper);
-    }
-  } else {
-    // We don't overlap on the left side of RHS, see if we overlap on the right
-    // of RHS...
-    if (RHS.Upper.ugt(LHS.Lower)) {
-      // Simple overlap...
-      return ConstantRange(LHS.Lower, RHS.Upper);
-    } else {
-      // No overlap...
-      return ConstantRange(LHS.getBitWidth(), false);
-    }
-  }
-}
-
-/// intersectWith - Return the range that results from the intersection of this
-/// range with another range.
-///
-ConstantRange ConstantRange::intersectWith(const ConstantRange &CR) const {
-  assert(getBitWidth() == CR.getBitWidth() && 
-         "ConstantRange types don't agree!");
-  // Handle common special cases
-  if (isEmptySet() || CR.isFullSet())  
-    return *this;
-  if (isFullSet()  || CR.isEmptySet()) 
-    return CR;
-
-  if (!isWrappedSet()) {
-    if (!CR.isWrappedSet()) {
-      using namespace APIntOps;
-      APInt L = umax(Lower, CR.Lower);
-      APInt U = umin(Upper, CR.Upper);
-
-      if (L.ult(U)) // If range isn't empty...
-        return ConstantRange(L, U);
-      else
-        return ConstantRange(getBitWidth(), false);// Otherwise, empty set
-    } else
-      return intersect1Wrapped(CR, *this);
-  } else {   // We know "this" is wrapped...
-    if (!CR.isWrappedSet())
-      return intersect1Wrapped(*this, CR);
-    else {
-      // Both ranges are wrapped...
-      using namespace APIntOps;
-      APInt L = umax(Lower, CR.Lower);
-      APInt U = umin(Upper, CR.Upper);
-      return ConstantRange(L, U);
-    }
-  }
-  return *this;
-}
-
-/// maximalIntersectWith - Return the range that results from the intersection
-/// of this range with another range.  The resultant range is guaranteed to
-/// include all elements contained in both input ranges, and to have the
-/// smallest possible set size that does so.  Because there may be two
-/// intersections with the same set size, A.maximalIntersectWith(B) might not
-/// be equal to B.maximalIntersect(A).
-ConstantRange ConstantRange::maximalIntersectWith(const ConstantRange &CR) const {
-  assert(getBitWidth() == CR.getBitWidth() && 
-         "ConstantRange types don't agree!");
-
-  // Handle common cases.
-  if (   isEmptySet() || CR.isFullSet()) return *this;
-  if (CR.isEmptySet() ||    isFullSet()) return CR;
-
-  if (!isWrappedSet() && CR.isWrappedSet())
-    return CR.maximalIntersectWith(*this);
-
-  if (!isWrappedSet() && !CR.isWrappedSet()) {
-    if (Lower.ult(CR.Lower)) {
-      if (Upper.ule(CR.Lower))
-        return ConstantRange(getBitWidth(), false);
-
-      if (Upper.ult(CR.Upper))
-        return ConstantRange(CR.Lower, Upper);
-
-      return CR;
-    } else {
-      if (Upper.ult(CR.Upper))
-        return *this;
-
-      if (Lower.ult(CR.Upper))
-        return ConstantRange(Lower, CR.Upper);
-
-      return ConstantRange(getBitWidth(), false);
-    }
-  }
-
-  if (isWrappedSet() && !CR.isWrappedSet()) {
-    if (CR.Lower.ult(Upper)) {
-      if (CR.Upper.ult(Upper))
-        return CR;
-
-      if (CR.Upper.ult(Lower))
-        return ConstantRange(CR.Lower, Upper);
-
-      if (getSetSize().ult(CR.getSetSize()))
-        return *this;
-      else
-        return CR;
-    } else if (CR.Lower.ult(Lower)) {
-      if (CR.Upper.ule(Lower))
-        return ConstantRange(getBitWidth(), false);
-
-      return ConstantRange(Lower, CR.Upper);
-    }
-    return CR;
-  }
-
-  if (CR.Upper.ult(Upper)) {
-    if (CR.Lower.ult(Upper)) {
-      if (getSetSize().ult(CR.getSetSize()))
-        return *this;
-      else
-        return CR;
-    }
-
-    if (CR.Lower.ult(Lower))
-      return ConstantRange(Lower, CR.Upper);
-
-    return CR;
-  } else if (CR.Upper.ult(Lower)) {
-    if (CR.Lower.ult(Lower))
-      return *this;
-
-    return ConstantRange(CR.Lower, Upper);
-  }
-  if (getSetSize().ult(CR.getSetSize()))
-    return *this;
-  else
-    return CR;
-}
-
-
-/// unionWith - Return the range that results from the union of this range with
-/// another range.  The resultant range is guaranteed to include the elements of
-/// both sets, but may contain more.  For example, [3, 9) union [12,15) is
-/// [3, 15), which includes 9, 10, and 11, which were not included in either
-/// set before.
-///
-ConstantRange ConstantRange::unionWith(const ConstantRange &CR) const {
-  assert(getBitWidth() == CR.getBitWidth() && 
-         "ConstantRange types don't agree!");
-
-  if (   isFullSet() || CR.isEmptySet()) return *this;
-  if (CR.isFullSet() ||    isEmptySet()) return CR;
-
-  if (!isWrappedSet() && CR.isWrappedSet()) return CR.unionWith(*this);
-
-  APInt L = Lower, U = Upper;
-
-  if (!isWrappedSet() && !CR.isWrappedSet()) {
-    if (CR.Lower.ult(L))
-      L = CR.Lower;
-
-    if (CR.Upper.ugt(U))
-      U = CR.Upper;
-  }
-
-  if (isWrappedSet() && !CR.isWrappedSet()) {
-    if ((CR.Lower.ult(Upper) && CR.Upper.ult(Upper)) ||
-        (CR.Lower.ugt(Lower) && CR.Upper.ugt(Lower))) {
-      return *this;
-    }
-
-    if (CR.Lower.ule(Upper) && Lower.ule(CR.Upper)) {
-      return ConstantRange(getBitWidth());
-    }
-
-    if (CR.Lower.ule(Upper) && CR.Upper.ule(Lower)) {
-      APInt d1 = CR.Upper - Upper, d2 = Lower - CR.Upper;
-      if (d1.ult(d2)) {
-        U = CR.Upper;
-      } else {
-        L = CR.Upper;
-      }
-    }
-
-    if (Upper.ult(CR.Lower) && CR.Upper.ult(Lower)) {
-      APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper;
-      if (d1.ult(d2)) {
-        U = CR.Lower + 1;
-      } else {
-        L = CR.Upper - 1;
-      }
-    }
-
-    if (Upper.ult(CR.Lower) && Lower.ult(CR.Upper)) {
-      APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Lower;
-
-      if (d1.ult(d2)) {
-        U = CR.Lower + 1;
-      } else {
-        L = CR.Lower;
-      }
-    }
-  }
-
-  if (isWrappedSet() && CR.isWrappedSet()) {
-    if (Lower.ult(CR.Upper) || CR.Lower.ult(Upper))
-      return ConstantRange(getBitWidth());
-
-    if (CR.Upper.ugt(U)) {
-      U = CR.Upper;
-    }
-
-    if (CR.Lower.ult(L)) {
-      L = CR.Lower;
-    }
-
-    if (L == U) return ConstantRange(getBitWidth());
-  }
-
-  return ConstantRange(L, U);
-}
-
-/// zeroExtend - Return a new range in the specified integer type, which must
-/// be strictly larger than the current type.  The returned range will
-/// correspond to the possible range of values as if the source range had been
-/// zero extended.
-ConstantRange ConstantRange::zeroExtend(uint32_t DstTySize) const {
-  unsigned SrcTySize = getBitWidth();
-  assert(SrcTySize < DstTySize && "Not a value extension");
-  if (isFullSet())
-    // Change a source full set into [0, 1 << 8*numbytes)
-    return ConstantRange(APInt(DstTySize,0), APInt(DstTySize,1).shl(SrcTySize));
-
-  APInt L = Lower; L.zext(DstTySize);
-  APInt U = Upper; U.zext(DstTySize);
-  return ConstantRange(L, U);
-}
-
-/// signExtend - Return a new range in the specified integer type, which must
-/// be strictly larger than the current type.  The returned range will
-/// correspond to the possible range of values as if the source range had been
-/// sign extended.
-ConstantRange ConstantRange::signExtend(uint32_t DstTySize) const {
-  unsigned SrcTySize = getBitWidth();
-  assert(SrcTySize < DstTySize && "Not a value extension");
-  if (isFullSet()) {
-    return ConstantRange(APInt::getHighBitsSet(DstTySize,DstTySize-SrcTySize+1),
-                         APInt::getLowBitsSet(DstTySize, SrcTySize-1));
-  }
-
-  APInt L = Lower; L.sext(DstTySize);
-  APInt U = Upper; U.sext(DstTySize);
-  return ConstantRange(L, U);
-}
-
-/// truncate - Return a new range in the specified integer type, which must be
-/// strictly smaller than the current type.  The returned range will
-/// correspond to the possible range of values as if the source range had been
-/// truncated to the specified type.
-ConstantRange ConstantRange::truncate(uint32_t DstTySize) const {
-  unsigned SrcTySize = getBitWidth();
-  assert(SrcTySize > DstTySize && "Not a value truncation");
-  APInt Size(APInt::getLowBitsSet(SrcTySize, DstTySize));
-  if (isFullSet() || getSetSize().ugt(Size))
-    return ConstantRange(DstTySize);
-
-  APInt L = Lower; L.trunc(DstTySize);
-  APInt U = Upper; U.trunc(DstTySize);
-  return ConstantRange(L, U);
-}
-
-/// print - Print out the bounds to a stream...
-///
-void ConstantRange::print(std::ostream &OS) const {
-  OS << "[" << Lower.toStringSigned(10) << "," 
-            << Upper.toStringSigned(10) << " )";
-}
-
-/// dump - Allow printing from a debugger easily...
-///
-void ConstantRange::dump() const {
-  print(cerr);
-}
diff --git a/support/lib/Support/Debug.cpp b/support/lib/Support/Debug.cpp
deleted file mode 100644
index c5b6fa2..0000000
--- a/support/lib/Support/Debug.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===-- Debug.cpp - An easy way to add debug output to your code ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a handle way of adding debugging information to your
-// code, without it being enabled all of the time, and without having to add
-// command line options to enable it.
-//
-// In particular, just wrap your code with the DEBUG() macro, and it will be
-// enabled automatically if you specify '-debug' on the command-line.
-// Alternatively, you can also use the SET_DEBUG_TYPE("foo") macro to specify
-// that your debug code belongs to class "foo".  Then, on the command line, you
-// can specify '-debug-only=foo' to enable JUST the debug information for the
-// foo class.
-//
-// When compiling in release mode, the -debug-* options and all code in DEBUG()
-// statements disappears, so it does not effect the runtime of the code.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-using namespace llvm;
-
-bool llvm::DebugFlag;  // DebugFlag - Exported boolean set by the -debug option
-
-namespace {
-#ifndef NDEBUG
-  // -debug - Command line option to enable the DEBUG statements in the passes.
-  // This flag may only be enabled in debug builds.
-  cl::opt<bool, true>
-  Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
-        cl::location(DebugFlag));
-
-  std::string CurrentDebugType;
-  struct DebugOnlyOpt {
-    void operator=(const std::string &Val) const {
-      DebugFlag |= !Val.empty();
-      CurrentDebugType = Val;
-    }
-  } DebugOnlyOptLoc;
-
-  cl::opt<DebugOnlyOpt, true, cl::parser<std::string> >
-  DebugOnly("debug-only", cl::desc("Enable a specific type of debug output"),
-            cl::Hidden, cl::value_desc("debug string"),
-            cl::location(DebugOnlyOptLoc), cl::ValueRequired);
-#endif
-}
-
-// isCurrentDebugType - Return true if the specified string is the debug type
-// specified on the command line, or if none was specified on the command line
-// with the -debug-only=X option.
-//
-bool llvm::isCurrentDebugType(const char *DebugType) {
-#ifndef NDEBUG
-  return CurrentDebugType.empty() || DebugType == CurrentDebugType;
-#else
-  return false;
-#endif
-}
-
-// getErrorOutputStream - Returns the error output stream (std::cerr). This
-// places the std::c* I/O streams into one .cpp file and relieves the whole
-// program from having to have hundreds of static c'tor/d'tors for them.
-// 
-OStream &llvm::getErrorOutputStream(const char *DebugType) {
-  static OStream cnoout(0);
-  if (DebugFlag && isCurrentDebugType(DebugType))
-    return cerr;
-  else
-    return cnoout;
-}
diff --git a/support/lib/Support/Dwarf.cpp b/support/lib/Support/Dwarf.cpp
deleted file mode 100644
index 572ba19..0000000
--- a/support/lib/Support/Dwarf.cpp
+++ /dev/null
@@ -1,586 +0,0 @@
-//===-- llvm/Support/Dwarf.cpp - Dwarf Framework ----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by James M. Laskey and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains support for generic dwarf information.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Dwarf.h"
-#include "llvm/System/IncludeFile.h"
-
-#include <cassert>
-
-namespace llvm {
-
-namespace dwarf {
-
-/// TagString - Return the string for the specified tag.
-///
-const char *TagString(unsigned Tag) {
-  switch(Tag) {
-    case DW_TAG_array_type:                return "TAG_array_type";
-    case DW_TAG_class_type:                return "TAG_class_type";
-    case DW_TAG_entry_point:               return "TAG_entry_point";
-    case DW_TAG_enumeration_type:          return "TAG_enumeration_type";
-    case DW_TAG_formal_parameter:          return "TAG_formal_parameter";
-    case DW_TAG_imported_declaration:      return "TAG_imported_declaration";
-    case DW_TAG_label:                     return "TAG_label";
-    case DW_TAG_lexical_block:             return "TAG_lexical_block";
-    case DW_TAG_member:                    return "TAG_member";
-    case DW_TAG_pointer_type:              return "TAG_pointer_type";
-    case DW_TAG_reference_type:            return "TAG_reference_type";
-    case DW_TAG_compile_unit:              return "TAG_compile_unit";
-    case DW_TAG_string_type:               return "TAG_string_type";
-    case DW_TAG_structure_type:            return "TAG_structure_type";
-    case DW_TAG_subroutine_type:           return "TAG_subroutine_type";
-    case DW_TAG_typedef:                   return "TAG_typedef";
-    case DW_TAG_union_type:                return "TAG_union_type";
-    case DW_TAG_unspecified_parameters:    return "TAG_unspecified_parameters";
-    case DW_TAG_variant:                   return "TAG_variant";
-    case DW_TAG_common_block:              return "TAG_common_block";
-    case DW_TAG_common_inclusion:          return "TAG_common_inclusion";
-    case DW_TAG_inheritance:               return "TAG_inheritance";
-    case DW_TAG_inlined_subroutine:        return "TAG_inlined_subroutine";
-    case DW_TAG_module:                    return "TAG_module";
-    case DW_TAG_ptr_to_member_type:        return "TAG_ptr_to_member_type";
-    case DW_TAG_set_type:                  return "TAG_set_type";
-    case DW_TAG_subrange_type:             return "TAG_subrange_type";
-    case DW_TAG_with_stmt:                 return "TAG_with_stmt";
-    case DW_TAG_access_declaration:        return "TAG_access_declaration";
-    case DW_TAG_base_type:                 return "TAG_base_type";
-    case DW_TAG_catch_block:               return "TAG_catch_block";
-    case DW_TAG_const_type:                return "TAG_const_type";
-    case DW_TAG_constant:                  return "TAG_constant";
-    case DW_TAG_enumerator:                return "TAG_enumerator";
-    case DW_TAG_file_type:                 return "TAG_file_type";
-    case DW_TAG_friend:                    return "TAG_friend";
-    case DW_TAG_namelist:                  return "TAG_namelist";
-    case DW_TAG_namelist_item:             return "TAG_namelist_item";
-    case DW_TAG_packed_type:               return "TAG_packed_type";
-    case DW_TAG_subprogram:                return "TAG_subprogram";
-    case DW_TAG_template_type_parameter:   return "TAG_template_type_parameter";
-    case DW_TAG_template_value_parameter: return "TAG_template_value_parameter";
-    case DW_TAG_thrown_type:               return "TAG_thrown_type";
-    case DW_TAG_try_block:                 return "TAG_try_block";
-    case DW_TAG_variant_part:              return "TAG_variant_part";
-    case DW_TAG_variable:                  return "TAG_variable";
-    case DW_TAG_volatile_type:             return "TAG_volatile_type";
-    case DW_TAG_dwarf_procedure:           return "TAG_dwarf_procedure";
-    case DW_TAG_restrict_type:             return "TAG_restrict_type";
-    case DW_TAG_interface_type:            return "TAG_interface_type";
-    case DW_TAG_namespace:                 return "TAG_namespace";
-    case DW_TAG_imported_module:           return "TAG_imported_module";
-    case DW_TAG_unspecified_type:          return "TAG_unspecified_type";
-    case DW_TAG_partial_unit:              return "TAG_partial_unit";
-    case DW_TAG_imported_unit:             return "TAG_imported_unit";
-    case DW_TAG_condition:                 return "TAG_condition";
-    case DW_TAG_shared_type:               return "TAG_shared_type";
-    case DW_TAG_lo_user:                   return "TAG_lo_user";
-    case DW_TAG_hi_user:                   return "TAG_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Tag");
-  return "";
-}
-
-/// ChildrenString - Return the string for the specified children flag.
-///
-const char *ChildrenString(unsigned Children) {
-  switch(Children) {
-    case DW_CHILDREN_no:                   return "CHILDREN_no";
-    case DW_CHILDREN_yes:                  return "CHILDREN_yes";
-  }
-  assert(0 && "Unknown Dwarf ChildrenFlag");
-  return "";
-}
-
-/// AttributeString - Return the string for the specified attribute.
-///
-const char *AttributeString(unsigned Attribute) {
-  switch(Attribute) {
-    case DW_AT_sibling:                    return "AT_sibling";
-    case DW_AT_location:                   return "AT_location";
-    case DW_AT_name:                       return "AT_name";
-    case DW_AT_ordering:                   return "AT_ordering";
-    case DW_AT_byte_size:                  return "AT_byte_size";
-    case DW_AT_bit_offset:                 return "AT_bit_offset";
-    case DW_AT_bit_size:                   return "AT_bit_size";
-    case DW_AT_stmt_list:                  return "AT_stmt_list";
-    case DW_AT_low_pc:                     return "AT_low_pc";
-    case DW_AT_high_pc:                    return "AT_high_pc";
-    case DW_AT_language:                   return "AT_language";
-    case DW_AT_discr:                      return "AT_discr";
-    case DW_AT_discr_value:                return "AT_discr_value";
-    case DW_AT_visibility:                 return "AT_visibility";
-    case DW_AT_import:                     return "AT_import";
-    case DW_AT_string_length:              return "AT_string_length";
-    case DW_AT_common_reference:           return "AT_common_reference";
-    case DW_AT_comp_dir:                   return "AT_comp_dir";
-    case DW_AT_const_value:                return "AT_const_value";
-    case DW_AT_containing_type:            return "AT_containing_type";
-    case DW_AT_default_value:              return "AT_default_value";
-    case DW_AT_inline:                     return "AT_inline";
-    case DW_AT_is_optional:                return "AT_is_optional";
-    case DW_AT_lower_bound:                return "AT_lower_bound";
-    case DW_AT_producer:                   return "AT_producer";
-    case DW_AT_prototyped:                 return "AT_prototyped";
-    case DW_AT_return_addr:                return "AT_return_addr";
-    case DW_AT_start_scope:                return "AT_start_scope";
-    case DW_AT_bit_stride:                 return "AT_bit_stride";
-    case DW_AT_upper_bound:                return "AT_upper_bound";
-    case DW_AT_abstract_origin:            return "AT_abstract_origin";
-    case DW_AT_accessibility:              return "AT_accessibility";
-    case DW_AT_address_class:              return "AT_address_class";
-    case DW_AT_artificial:                 return "AT_artificial";
-    case DW_AT_base_types:                 return "AT_base_types";
-    case DW_AT_calling_convention:         return "AT_calling_convention";
-    case DW_AT_count:                      return "AT_count";
-    case DW_AT_data_member_location:       return "AT_data_member_location";
-    case DW_AT_decl_column:                return "AT_decl_column";
-    case DW_AT_decl_file:                  return "AT_decl_file";
-    case DW_AT_decl_line:                  return "AT_decl_line";
-    case DW_AT_declaration:                return "AT_declaration";
-    case DW_AT_discr_list:                 return "AT_discr_list";
-    case DW_AT_encoding:                   return "AT_encoding";
-    case DW_AT_external:                   return "AT_external";
-    case DW_AT_frame_base:                 return "AT_frame_base";
-    case DW_AT_friend:                     return "AT_friend";
-    case DW_AT_identifier_case:            return "AT_identifier_case";
-    case DW_AT_macro_info:                 return "AT_macro_info";
-    case DW_AT_namelist_item:              return "AT_namelist_item";
-    case DW_AT_priority:                   return "AT_priority";
-    case DW_AT_segment:                    return "AT_segment";
-    case DW_AT_specification:              return "AT_specification";
-    case DW_AT_static_link:                return "AT_static_link";
-    case DW_AT_type:                       return "AT_type";
-    case DW_AT_use_location:               return "AT_use_location";
-    case DW_AT_variable_parameter:         return "AT_variable_parameter";
-    case DW_AT_virtuality:                 return "AT_virtuality";
-    case DW_AT_vtable_elem_location:       return "AT_vtable_elem_location";
-    case DW_AT_allocated:                  return "AT_allocated";
-    case DW_AT_associated:                 return "AT_associated";
-    case DW_AT_data_location:              return "AT_data_location";
-    case DW_AT_byte_stride:                return "AT_byte_stride";
-    case DW_AT_entry_pc:                   return "AT_entry_pc";
-    case DW_AT_use_UTF8:                   return "AT_use_UTF8";
-    case DW_AT_extension:                  return "AT_extension";
-    case DW_AT_ranges:                     return "AT_ranges";
-    case DW_AT_trampoline:                 return "AT_trampoline";
-    case DW_AT_call_column:                return "AT_call_column";
-    case DW_AT_call_file:                  return "AT_call_file";
-    case DW_AT_call_line:                  return "AT_call_line";
-    case DW_AT_description:                return "AT_description";
-    case DW_AT_binary_scale:               return "AT_binary_scale";
-    case DW_AT_decimal_scale:              return "AT_decimal_scale";
-    case DW_AT_small:                      return "AT_small";
-    case DW_AT_decimal_sign:               return "AT_decimal_sign";
-    case DW_AT_digit_count:                return "AT_digit_count";
-    case DW_AT_picture_string:             return "AT_picture_string";
-    case DW_AT_mutable:                    return "AT_mutable";
-    case DW_AT_threads_scaled:             return "AT_threads_scaled";
-    case DW_AT_explicit:                   return "AT_explicit";
-    case DW_AT_object_pointer:             return "AT_object_pointer";
-    case DW_AT_endianity:                  return "AT_endianity";
-    case DW_AT_elemental:                  return "AT_elemental";
-    case DW_AT_pure:                       return "AT_pure";
-    case DW_AT_recursive:                  return "AT_recursive";
-    case DW_AT_MIPS_linkage_name:          return "AT_MIPS_linkage_name";
-    case DW_AT_sf_names:                   return "AT_sf_names";
-    case DW_AT_src_info:                   return "AT_src_info";
-    case DW_AT_mac_info:                   return "AT_mac_info";
-    case DW_AT_src_coords:                 return "AT_src_coords";
-    case DW_AT_body_begin:                 return "AT_body_begin";
-    case DW_AT_body_end:                   return "AT_body_end";
-    case DW_AT_GNU_vector:                 return "AT_GNU_vector";
-    case DW_AT_lo_user:                    return "AT_lo_user";
-    case DW_AT_hi_user:                    return "AT_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Attribute");
-  return "";
-}
-
-/// FormEncodingString - Return the string for the specified form encoding.
-///
-const char *FormEncodingString(unsigned Encoding) {
-  switch(Encoding) {
-    case DW_FORM_addr:                     return "FORM_addr";
-    case DW_FORM_block2:                   return "FORM_block2";
-    case DW_FORM_block4:                   return "FORM_block4";
-    case DW_FORM_data2:                    return "FORM_data2";
-    case DW_FORM_data4:                    return "FORM_data4";
-    case DW_FORM_data8:                    return "FORM_data8";
-    case DW_FORM_string:                   return "FORM_string";
-    case DW_FORM_block:                    return "FORM_block";
-    case DW_FORM_block1:                   return "FORM_block1";
-    case DW_FORM_data1:                    return "FORM_data1";
-    case DW_FORM_flag:                     return "FORM_flag";
-    case DW_FORM_sdata:                    return "FORM_sdata";
-    case DW_FORM_strp:                     return "FORM_strp";
-    case DW_FORM_udata:                    return "FORM_udata";
-    case DW_FORM_ref_addr:                 return "FORM_ref_addr";
-    case DW_FORM_ref1:                     return "FORM_ref1";
-    case DW_FORM_ref2:                     return "FORM_ref2";
-    case DW_FORM_ref4:                     return "FORM_ref4";
-    case DW_FORM_ref8:                     return "FORM_ref8";
-    case DW_FORM_ref_udata:                return "FORM_ref_udata";
-    case DW_FORM_indirect:                 return "FORM_indirect";
-  }
-  assert(0 && "Unknown Dwarf Form Encoding");
-  return "";
-}
-
-/// OperationEncodingString - Return the string for the specified operation
-/// encoding.
-const char *OperationEncodingString(unsigned Encoding) {
-  switch(Encoding) {
-    case DW_OP_addr:                       return "OP_addr";
-    case DW_OP_deref:                      return "OP_deref";
-    case DW_OP_const1u:                    return "OP_const1u";
-    case DW_OP_const1s:                    return "OP_const1s";
-    case DW_OP_const2u:                    return "OP_const2u";
-    case DW_OP_const2s:                    return "OP_const2s";
-    case DW_OP_const4u:                    return "OP_const4u";
-    case DW_OP_const4s:                    return "OP_const4s";
-    case DW_OP_const8u:                    return "OP_const8u";
-    case DW_OP_const8s:                    return "OP_const8s";
-    case DW_OP_constu:                     return "OP_constu";
-    case DW_OP_consts:                     return "OP_consts";
-    case DW_OP_dup:                        return "OP_dup";
-    case DW_OP_drop:                       return "OP_drop";
-    case DW_OP_over:                       return "OP_over";
-    case DW_OP_pick:                       return "OP_pick";
-    case DW_OP_swap:                       return "OP_swap";
-    case DW_OP_rot:                        return "OP_rot";
-    case DW_OP_xderef:                     return "OP_xderef";
-    case DW_OP_abs:                        return "OP_abs";
-    case DW_OP_and:                        return "OP_and";
-    case DW_OP_div:                        return "OP_div";
-    case DW_OP_minus:                      return "OP_minus";
-    case DW_OP_mod:                        return "OP_mod";
-    case DW_OP_mul:                        return "OP_mul";
-    case DW_OP_neg:                        return "OP_neg";
-    case DW_OP_not:                        return "OP_not";
-    case DW_OP_or:                         return "OP_or";
-    case DW_OP_plus:                       return "OP_plus";
-    case DW_OP_plus_uconst:                return "OP_plus_uconst";
-    case DW_OP_shl:                        return "OP_shl";
-    case DW_OP_shr:                        return "OP_shr";
-    case DW_OP_shra:                       return "OP_shra";
-    case DW_OP_xor:                        return "OP_xor";
-    case DW_OP_skip:                       return "OP_skip";
-    case DW_OP_bra:                        return "OP_bra";
-    case DW_OP_eq:                         return "OP_eq";
-    case DW_OP_ge:                         return "OP_ge";
-    case DW_OP_gt:                         return "OP_gt";
-    case DW_OP_le:                         return "OP_le";
-    case DW_OP_lt:                         return "OP_lt";
-    case DW_OP_ne:                         return "OP_ne";
-    case DW_OP_lit0:                       return "OP_lit0";
-    case DW_OP_lit1:                       return "OP_lit1";
-    case DW_OP_lit31:                      return "OP_lit31";
-    case DW_OP_reg0:                       return "OP_reg0";
-    case DW_OP_reg1:                       return "OP_reg1";
-    case DW_OP_reg31:                      return "OP_reg31";
-    case DW_OP_breg0:                      return "OP_breg0";
-    case DW_OP_breg1:                      return "OP_breg1";
-    case DW_OP_breg31:                     return "OP_breg31";
-    case DW_OP_regx:                       return "OP_regx";
-    case DW_OP_fbreg:                      return "OP_fbreg";
-    case DW_OP_bregx:                      return "OP_bregx";
-    case DW_OP_piece:                      return "OP_piece";
-    case DW_OP_deref_size:                 return "OP_deref_size";
-    case DW_OP_xderef_size:                return "OP_xderef_size";
-    case DW_OP_nop:                        return "OP_nop";
-    case DW_OP_push_object_address:        return "OP_push_object_address";
-    case DW_OP_call2:                      return "OP_call2";
-    case DW_OP_call4:                      return "OP_call4";
-    case DW_OP_call_ref:                   return "OP_call_ref";
-    case DW_OP_form_tls_address:           return "OP_form_tls_address";
-    case DW_OP_call_frame_cfa:             return "OP_call_frame_cfa";
-    case DW_OP_lo_user:                    return "OP_lo_user";
-    case DW_OP_hi_user:                    return "OP_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Operation Encoding");
-  return "";
-}
-
-/// AttributeEncodingString - Return the string for the specified attribute
-/// encoding.
-const char *AttributeEncodingString(unsigned Encoding) {
-  switch(Encoding) {
-    case DW_ATE_address:                   return "ATE_address";
-    case DW_ATE_boolean:                   return "ATE_boolean";
-    case DW_ATE_complex_float:             return "ATE_complex_float";
-    case DW_ATE_float:                     return "ATE_float";
-    case DW_ATE_signed:                    return "ATE_signed";
-    case DW_ATE_signed_char:               return "ATE_signed_char";
-    case DW_ATE_unsigned:                  return "ATE_unsigned";
-    case DW_ATE_unsigned_char:             return "ATE_unsigned_char";
-    case DW_ATE_imaginary_float:           return "ATE_imaginary_float";
-    case DW_ATE_packed_decimal:            return "ATE_packed_decimal";
-    case DW_ATE_numeric_string:            return "ATE_numeric_string";
-    case DW_ATE_edited:                    return "ATE_edited";
-    case DW_ATE_signed_fixed:              return "ATE_signed_fixed";
-    case DW_ATE_unsigned_fixed:            return "ATE_unsigned_fixed";
-    case DW_ATE_decimal_float:             return "ATE_decimal_float";
-    case DW_ATE_lo_user:                   return "ATE_lo_user";
-    case DW_ATE_hi_user:                   return "ATE_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Attribute Encoding");
-  return "";
-}
-
-/// DecimalSignString - Return the string for the specified decimal sign
-/// attribute.
-const char *DecimalSignString(unsigned Sign) {
-  switch(Sign) {
-    case DW_DS_unsigned:                   return "DS_unsigned";
-    case DW_DS_leading_overpunch:          return "DS_leading_overpunch";
-    case DW_DS_trailing_overpunch:         return "DS_trailing_overpunch";
-    case DW_DS_leading_separate:           return "DS_leading_separate";
-    case DW_DS_trailing_separate:          return "DS_trailing_separate";
-  }
-  assert(0 && "Unknown Dwarf Decimal Sign Attribute");
-  return "";
-}
-
-/// EndianityString - Return the string for the specified endianity.
-///
-const char *EndianityString(unsigned Endian) {
-  switch(Endian) {
-    case DW_END_default:                   return "END_default";
-    case DW_END_big:                       return "END_big";
-    case DW_END_little:                    return "END_little";
-    case DW_END_lo_user:                   return "END_lo_user";
-    case DW_END_hi_user:                   return "END_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Endianity");
-  return "";
-}
-
-/// AccessibilityString - Return the string for the specified accessibility.
-///
-const char *AccessibilityString(unsigned Access) {
-  switch(Access) {
-    // Accessibility codes
-    case DW_ACCESS_public:                 return "ACCESS_public";
-    case DW_ACCESS_protected:              return "ACCESS_protected";
-    case DW_ACCESS_private:                return "ACCESS_private";
-  }
-  assert(0 && "Unknown Dwarf Accessibility");
-  return "";
-}
-
-/// VisibilityString - Return the string for the specified visibility.
-///
-const char *VisibilityString(unsigned Visibility) {
-  switch(Visibility) {
-    case DW_VIS_local:                     return "VIS_local";
-    case DW_VIS_exported:                  return "VIS_exported";
-    case DW_VIS_qualified:                 return "VIS_qualified";
-  }
-  assert(0 && "Unknown Dwarf Visibility");
-  return "";
-}
-
-/// VirtualityString - Return the string for the specified virtuality.
-///
-const char *VirtualityString(unsigned Virtuality) {
-  switch(Virtuality) {
-    case DW_VIRTUALITY_none:               return "VIRTUALITY_none";
-    case DW_VIRTUALITY_virtual:            return "VIRTUALITY_virtual";
-    case DW_VIRTUALITY_pure_virtual:       return "VIRTUALITY_pure_virtual";
-  }
-  assert(0 && "Unknown Dwarf Virtuality");
-  return "";
-}
-
-/// LanguageString - Return the string for the specified language.
-///
-const char *LanguageString(unsigned Language) {
-  switch(Language) {
-    case DW_LANG_C89:                      return "LANG_C89";
-    case DW_LANG_C:                        return "LANG_C";
-    case DW_LANG_Ada83:                    return "LANG_Ada83";
-    case DW_LANG_C_plus_plus:              return "LANG_C_plus_plus";
-    case DW_LANG_Cobol74:                  return "LANG_Cobol74";
-    case DW_LANG_Cobol85:                  return "LANG_Cobol85";
-    case DW_LANG_Fortran77:                return "LANG_Fortran77";
-    case DW_LANG_Fortran90:                return "LANG_Fortran90";
-    case DW_LANG_Pascal83:                 return "LANG_Pascal83";
-    case DW_LANG_Modula2:                  return "LANG_Modula2";
-    case DW_LANG_Java:                     return "LANG_Java";
-    case DW_LANG_C99:                      return "LANG_C99";
-    case DW_LANG_Ada95:                    return "LANG_Ada95";
-    case DW_LANG_Fortran95:                return "LANG_Fortran95";
-    case DW_LANG_PLI:                      return "LANG_PLI";
-    case DW_LANG_ObjC:                     return "LANG_ObjC";
-    case DW_LANG_ObjC_plus_plus:           return "LANG_ObjC_plus_plus";
-    case DW_LANG_UPC:                      return "LANG_UPC";
-    case DW_LANG_D:                        return "LANG_D";
-    case DW_LANG_lo_user:                  return "LANG_lo_user";
-    case DW_LANG_hi_user:                  return "LANG_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Language");
-  return "";
-}
-
-/// CaseString - Return the string for the specified identifier case.
-///
-const char *CaseString(unsigned Case) {
-   switch(Case) {
-    case DW_ID_case_sensitive:             return "ID_case_sensitive";
-    case DW_ID_up_case:                    return "ID_up_case";
-    case DW_ID_down_case:                  return "ID_down_case";
-    case DW_ID_case_insensitive:           return "ID_case_insensitive";
-  }
-  assert(0 && "Unknown Dwarf Identifier Case");
-  return "";
-}
-
-/// ConventionString - Return the string for the specified calling convention.
-///
-const char *ConventionString(unsigned Convention) {
-   switch(Convention) {
-    case DW_CC_normal:                     return "CC_normal";
-    case DW_CC_program:                    return "CC_program";
-    case DW_CC_nocall:                     return "CC_nocall";
-    case DW_CC_lo_user:                    return "CC_lo_user";
-    case DW_CC_hi_user:                    return "CC_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Calling Convention");
-  return "";
-}
-
-/// InlineCodeString - Return the string for the specified inline code.
-///
-const char *InlineCodeString(unsigned Code) {
-   switch(Code) {
-    case DW_INL_not_inlined:               return "INL_not_inlined";
-    case DW_INL_inlined:                   return "INL_inlined";
-    case DW_INL_declared_not_inlined:      return "INL_declared_not_inlined";
-    case DW_INL_declared_inlined:          return "INL_declared_inlined";
-  }
-  assert(0 && "Unknown Dwarf Inline Code");
-  return "";
-}
-
-/// ArrayOrderString - Return the string for the specified array order.
-///
-const char *ArrayOrderString(unsigned Order) {
-   switch(Order) {
-    case DW_ORD_row_major:                 return "ORD_row_major";
-    case DW_ORD_col_major:                 return "ORD_col_major";
-  }
-  assert(0 && "Unknown Dwarf Array Order");
-  return "";
-}
-
-/// DiscriminantString - Return the string for the specified discriminant
-/// descriptor.
-const char *DiscriminantString(unsigned Discriminant) {
-   switch(Discriminant) {
-    case DW_DSC_label:                     return "DSC_label";
-    case DW_DSC_range:                     return "DSC_range";
-  }
-  assert(0 && "Unknown Dwarf Discriminant Descriptor");
-  return "";
-}
-
-/// LNStandardString - Return the string for the specified line number standard.
-///
-const char *LNStandardString(unsigned Standard) {
-   switch(Standard) {
-    case DW_LNS_copy:                      return "LNS_copy";
-    case DW_LNS_advance_pc:                return "LNS_advance_pc";
-    case DW_LNS_advance_line:              return "LNS_advance_line";
-    case DW_LNS_set_file:                  return "LNS_set_file";
-    case DW_LNS_set_column:                return "LNS_set_column";
-    case DW_LNS_negate_stmt:               return "LNS_negate_stmt";
-    case DW_LNS_set_basic_block:           return "LNS_set_basic_block";
-    case DW_LNS_const_add_pc:              return "LNS_const_add_pc";
-    case DW_LNS_fixed_advance_pc:          return "LNS_fixed_advance_pc";
-    case DW_LNS_set_prologue_end:          return "LNS_set_prologue_end";
-    case DW_LNS_set_epilogue_begin:        return "LNS_set_epilogue_begin";
-    case DW_LNS_set_isa:                   return "LNS_set_isa";
-  }
-  assert(0 && "Unknown Dwarf Line Number Standard");
-  return "";
-}
-
-/// LNExtendedString - Return the string for the specified line number extended
-/// opcode encodings.
-const char *LNExtendedString(unsigned Encoding) {
-   switch(Encoding) {
-    // Line Number Extended Opcode Encodings
-    case DW_LNE_end_sequence:              return "LNE_end_sequence";
-    case DW_LNE_set_address:               return "LNE_set_address";
-    case DW_LNE_define_file:               return "LNE_define_file";
-    case DW_LNE_lo_user:                   return "LNE_lo_user";
-    case DW_LNE_hi_user:                   return "LNE_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Line Number Extended Opcode Encoding");
-  return "";
-}
-
-/// MacinfoString - Return the string for the specified macinfo type encodings.
-///
-const char *MacinfoString(unsigned Encoding) {
-   switch(Encoding) {
-    // Macinfo Type Encodings
-    case DW_MACINFO_define:                return "MACINFO_define";
-    case DW_MACINFO_undef:                 return "MACINFO_undef";
-    case DW_MACINFO_start_file:            return "MACINFO_start_file";
-    case DW_MACINFO_end_file:              return "MACINFO_end_file";
-    case DW_MACINFO_vendor_ext:            return "MACINFO_vendor_ext";
-  }
-  assert(0 && "Unknown Dwarf Macinfo Type Encodings");
-  return "";
-}
-
-/// CallFrameString - Return the string for the specified call frame instruction
-/// encodings.
-const char *CallFrameString(unsigned Encoding) {
-   switch(Encoding) {
-    case DW_CFA_advance_loc:               return "CFA_advance_loc";
-    case DW_CFA_offset:                    return "CFA_offset";
-    case DW_CFA_restore:                   return "CFA_restore";
-    case DW_CFA_set_loc:                   return "CFA_set_loc";
-    case DW_CFA_advance_loc1:              return "CFA_advance_loc1";
-    case DW_CFA_advance_loc2:              return "CFA_advance_loc2";
-    case DW_CFA_advance_loc4:              return "CFA_advance_loc4";
-    case DW_CFA_offset_extended:           return "CFA_offset_extended";
-    case DW_CFA_restore_extended:          return "CFA_restore_extended";
-    case DW_CFA_undefined:                 return "CFA_undefined";
-    case DW_CFA_same_value:                return "CFA_same_value";
-    case DW_CFA_register:                  return "CFA_register";
-    case DW_CFA_remember_state:            return "CFA_remember_state";
-    case DW_CFA_restore_state:             return "CFA_restore_state";
-    case DW_CFA_def_cfa:                   return "CFA_def_cfa";
-    case DW_CFA_def_cfa_register:          return "CFA_def_cfa_register";
-    case DW_CFA_def_cfa_offset:            return "CFA_def_cfa_offset";
-    case DW_CFA_def_cfa_expression:        return "CFA_def_cfa_expression";
-    case DW_CFA_expression:                return "CFA_expression";
-    case DW_CFA_offset_extended_sf:        return "CFA_offset_extended_sf";
-    case DW_CFA_def_cfa_sf:                return "CFA_def_cfa_sf";
-    case DW_CFA_def_cfa_offset_sf:         return "CFA_def_cfa_offset_sf";
-    case DW_CFA_val_offset:                return "CFA_val_offset";
-    case DW_CFA_val_offset_sf:             return "CFA_val_offset_sf";
-    case DW_CFA_val_expression:            return "CFA_val_expression";
-    case DW_CFA_lo_user:                   return "CFA_lo_user";
-    case DW_CFA_hi_user:                   return "CFA_hi_user";
-  }
-  assert(0 && "Unknown Dwarf Call Frame Instruction Encodings");
-  return "";
-}
-
-} // End of namespace dwarf.
-
-} // End of namespace llvm.
-
-DEFINING_FILE_FOR(SupportDwarf)
diff --git a/support/lib/Support/FileUtilities.cpp b/support/lib/Support/FileUtilities.cpp
deleted file mode 100644
index 1736b0d..0000000
--- a/support/lib/Support/FileUtilities.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-//===- Support/FileUtilities.cpp - File System Utilities ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a family of utility functions which are useful for doing
-// various things with files.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/MappedFile.h"
-#include "llvm/ADT/StringExtras.h"
-#include <cstring>
-#include <cctype>
-using namespace llvm;
-
-static bool isNumberChar(char C) {
-  switch (C) {
-  case '0': case '1': case '2': case '3': case '4':
-  case '5': case '6': case '7': case '8': case '9':
-  case '.': case '+': case '-':
-  case 'D':  // Strange exponential notation.
-  case 'd':  // Strange exponential notation.
-  case 'e':
-  case 'E': return true;
-  default: return false;
-  }
-}
-
-static char *BackupNumber(char *Pos, char *FirstChar) {
-  // If we didn't stop in the middle of a number, don't backup.
-  if (!isNumberChar(*Pos)) return Pos;
-
-  // Otherwise, return to the start of the number.
-  while (Pos > FirstChar && isNumberChar(Pos[-1]))
-    --Pos;
-  return Pos;
-}
-
-/// CompareNumbers - compare two numbers, returning true if they are different.
-static bool CompareNumbers(char *&F1P, char *&F2P, char *F1End, char *F2End,
-                           double AbsTolerance, double RelTolerance,
-                           std::string *ErrorMsg) {
-  char *F1NumEnd, *F2NumEnd;
-  double V1 = 0.0, V2 = 0.0;
-
-  // If one of the positions is at a space and the other isn't, chomp up 'til
-  // the end of the space.
-  while (isspace(*F1P) && F1P != F1End)
-    ++F1P;
-  while (isspace(*F2P) && F2P != F2End)
-    ++F2P;
-
-  // If we stop on numbers, compare their difference.  Note that some ugliness
-  // is built into this to permit support for numbers that use "D" or "d" as
-  // their exponential marker, e.g. "1.234D45".  This occurs in 200.sixtrack in
-  // spec2k.
-  if (isNumberChar(*F1P) && isNumberChar(*F2P)) {
-    bool isDNotation;
-    do {
-      isDNotation = false;
-      V1 = strtod(F1P, &F1NumEnd);
-      V2 = strtod(F2P, &F2NumEnd);
-
-      if (*F1NumEnd == 'D' || *F1NumEnd == 'd') {
-        *F1NumEnd = 'e';  // Strange exponential notation!
-        isDNotation = true;
-      }
-      if (*F2NumEnd == 'D' || *F2NumEnd == 'd') {
-        *F2NumEnd = 'e';  // Strange exponential notation!
-        isDNotation = true;
-      }
-    } while (isDNotation);
-  } else {
-    // Otherwise, the diff failed.
-    F1NumEnd = F1P;
-    F2NumEnd = F2P;
-  }
-
-  if (F1NumEnd == F1P || F2NumEnd == F2P) {
-    if (ErrorMsg) {
-      *ErrorMsg = "FP Comparison failed, not a numeric difference between '";
-      *ErrorMsg += F1P[0];
-      *ErrorMsg += "' and '";
-      *ErrorMsg += F2P[0];
-      *ErrorMsg += "'";
-    }
-    return true;
-  }
-
-  // Check to see if these are inside the absolute tolerance
-  if (AbsTolerance < std::abs(V1-V2)) {
-    // Nope, check the relative tolerance...
-    double Diff;
-    if (V2)
-      Diff = std::abs(V1/V2 - 1.0);
-    else if (V1)
-      Diff = std::abs(V2/V1 - 1.0);
-    else
-      Diff = 0;  // Both zero.
-    if (Diff > RelTolerance) {
-      if (ErrorMsg) {
-        *ErrorMsg = "Compared: " + ftostr(V1) + " and " + ftostr(V2) + "\n";
-        *ErrorMsg += "abs. diff = " + ftostr(std::abs(V1-V2)) + 
-                     " rel.diff = " + ftostr(Diff) + "\n";
-        *ErrorMsg += "Out of tolerance: rel/abs: " + ftostr(RelTolerance) +
-                     "/" + ftostr(AbsTolerance);
-      }
-      return true;
-    }
-  }
-
-  // Otherwise, advance our read pointers to the end of the numbers.
-  F1P = F1NumEnd;  F2P = F2NumEnd;
-  return false;
-}
-
-// PadFileIfNeeded - If the files are not identical, we will have to be doing
-// numeric comparisons in here.  There are bad cases involved where we (i.e.,
-// strtod) might run off the beginning or end of the file if it starts or ends
-// with a number.  Because of this, if needed, we pad the file so that it starts
-// and ends with a null character.
-static void PadFileIfNeeded(char *&FileStart, char *&FileEnd, char *&FP) {
-  if (FileStart-FileEnd < 2 ||
-      isNumberChar(FileStart[0]) || isNumberChar(FileEnd[-1])) {
-    unsigned FileLen = FileEnd-FileStart;
-    char *NewFile = new char[FileLen+2];
-    NewFile[0] = 0;              // Add null padding
-    NewFile[FileLen+1] = 0;      // Add null padding
-    memcpy(NewFile+1, FileStart, FileLen);
-    FP = NewFile+(FP-FileStart)+1;
-    FileStart = NewFile+1;
-    FileEnd = FileStart+FileLen;
-  }
-}
-
-/// DiffFilesWithTolerance - Compare the two files specified, returning 0 if the
-/// files match, 1 if they are different, and 2 if there is a file error.  This
-/// function differs from DiffFiles in that you can specify an absolete and
-/// relative FP error that is allowed to exist.  If you specify a string to fill
-/// in for the error option, it will set the string to an error message if an
-/// error occurs, allowing the caller to distinguish between a failed diff and a
-/// file system error.
-///
-int llvm::DiffFilesWithTolerance(const sys::PathWithStatus &FileA,
-                                 const sys::PathWithStatus &FileB,
-                                 double AbsTol, double RelTol,
-                                 std::string *Error) {
-  const sys::FileStatus *FileAStat = FileA.getFileStatus(false, Error);
-  if (!FileAStat)
-    return 2;
-  const sys::FileStatus *FileBStat = FileB.getFileStatus(false, Error);
-  if (!FileBStat)
-    return 2;
-
-  // Check for zero length files because some systems croak when you try to
-  // mmap an empty file.
-  size_t A_size = FileAStat->getSize();
-  size_t B_size = FileBStat->getSize();
-
-  // If they are both zero sized then they're the same
-  if (A_size == 0 && B_size == 0)
-    return 0;
-
-  // If only one of them is zero sized then they can't be the same
-  if ((A_size == 0 || B_size == 0)) {
-    if (Error)
-      *Error = "Files differ: one is zero-sized, the other isn't";
-    return 1;
-  }
-
-  // Now its safe to mmap the files into memory becasue both files
-  // have a non-zero size.
-  sys::MappedFile F1;
-  if (F1.open(FileA, sys::MappedFile::READ_ACCESS, Error))
-    return 2;
-  sys::MappedFile F2;
-  if (F2.open(FileB, sys::MappedFile::READ_ACCESS, Error))
-    return 2;
-  if (!F1.map(Error))
-    return 2;
-  if (!F2.map(Error))
-    return 2;
-
-  // Okay, now that we opened the files, scan them for the first difference.
-  char *File1Start = F1.charBase();
-  char *File2Start = F2.charBase();
-  char *File1End = File1Start+A_size;
-  char *File2End = File2Start+B_size;
-  char *F1P = File1Start;
-  char *F2P = File2Start;
-
-  if (A_size == B_size) {
-    // Are the buffers identical?
-    if (std::memcmp(File1Start, File2Start, A_size) == 0)
-      return 0;
-
-    if (AbsTol == 0 && RelTol == 0) {
-      if (Error)
-        *Error = "Files differ without tolerance allowance";
-      return 1;   // Files different!
-    }
-  }
-
-  char *OrigFile1Start = File1Start;
-  char *OrigFile2Start = File2Start;
-
-  // If the files need padding, do so now.
-  PadFileIfNeeded(File1Start, File1End, F1P);
-  PadFileIfNeeded(File2Start, File2End, F2P);
-
-  bool CompareFailed = false;
-  while (1) {
-    // Scan for the end of file or next difference.
-    while (F1P < File1End && F2P < File2End && *F1P == *F2P)
-      ++F1P, ++F2P;
-
-    if (F1P >= File1End || F2P >= File2End) break;
-
-    // Okay, we must have found a difference.  Backup to the start of the
-    // current number each stream is at so that we can compare from the
-    // beginning.
-    F1P = BackupNumber(F1P, File1Start);
-    F2P = BackupNumber(F2P, File2Start);
-
-    // Now that we are at the start of the numbers, compare them, exiting if
-    // they don't match.
-    if (CompareNumbers(F1P, F2P, File1End, File2End, AbsTol, RelTol, Error)) {
-      CompareFailed = true;
-      break;
-    }
-  }
-
-  // Okay, we reached the end of file.  If both files are at the end, we
-  // succeeded.
-  bool F1AtEnd = F1P >= File1End;
-  bool F2AtEnd = F2P >= File2End;
-  if (!CompareFailed && (!F1AtEnd || !F2AtEnd)) {
-    // Else, we might have run off the end due to a number: backup and retry.
-    if (F1AtEnd && isNumberChar(F1P[-1])) --F1P;
-    if (F2AtEnd && isNumberChar(F2P[-1])) --F2P;
-    F1P = BackupNumber(F1P, File1Start);
-    F2P = BackupNumber(F2P, File2Start);
-
-    // Now that we are at the start of the numbers, compare them, exiting if
-    // they don't match.
-    if (CompareNumbers(F1P, F2P, File1End, File2End, AbsTol, RelTol, Error))
-      CompareFailed = true;
-
-    // If we found the end, we succeeded.
-    if (F1P < File1End || F2P < File2End)
-      CompareFailed = true;
-  }
-
-  if (OrigFile1Start != File1Start)
-    delete[] (File1Start-1);   // Back up past null byte
-  if (OrigFile2Start != File2Start)
-    delete[] (File2Start-1);   // Back up past null byte
-  return CompareFailed;
-}
diff --git a/support/lib/Support/FoldingSet.cpp b/support/lib/Support/FoldingSet.cpp
deleted file mode 100644
index 6f7f5ea..0000000
--- a/support/lib/Support/FoldingSet.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-//===-- Support/FoldingSet.cpp - Uniquing Hash Set --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by James M. Laskey and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a hash set that can be used to remove duplication of
-// nodes in a graph.  This code was originally created by Chris Lattner for use
-// with SelectionDAGCSEMap, but was isolated to provide use across the llvm code
-// set. 
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/FoldingSet.h"
-#include "llvm/Support/MathExtras.h"
-#include <cassert>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// FoldingSetImpl::NodeID Implementation
-
-/// Add* - Add various data types to Bit data.
-///
-void FoldingSetImpl::NodeID::AddPointer(const void *Ptr) {
-  // Note: this adds pointers to the hash using sizes and endianness that
-  // depend on the host.  It doesn't matter however, because hashing on
-  // pointer values in inherently unstable.  Nothing  should depend on the 
-  // ordering of nodes in the folding set.
-  intptr_t PtrI = (intptr_t)Ptr;
-  Bits.push_back(unsigned(PtrI));
-  if (sizeof(intptr_t) > sizeof(unsigned))
-    Bits.push_back(unsigned(uint64_t(PtrI) >> 32));
-}
-void FoldingSetImpl::NodeID::AddInteger(signed I) {
-  Bits.push_back(I);
-}
-void FoldingSetImpl::NodeID::AddInteger(unsigned I) {
-  Bits.push_back(I);
-}
-void FoldingSetImpl::NodeID::AddInteger(uint64_t I) {
-  Bits.push_back(unsigned(I));
-  
-  // If the integer is small, encode it just as 32-bits.
-  if ((uint64_t)(int)I != I)
-    Bits.push_back(unsigned(I >> 32));
-}
-void FoldingSetImpl::NodeID::AddFloat(float F) {
-  Bits.push_back(FloatToBits(F));
-}
-void FoldingSetImpl::NodeID::AddDouble(double D) {
- AddInteger(DoubleToBits(D));
-}
-void FoldingSetImpl::NodeID::AddString(const std::string &String) {
-  unsigned Size = String.size();
-  Bits.push_back(Size);
-  if (!Size) return;
-
-  unsigned Units = Size / 4;
-  unsigned Pos = 0;
-  const unsigned *Base = (const unsigned *)String.data();
-  
-  // If the string is aligned do a bulk transfer.
-  if (!((intptr_t)Base & 3)) {
-    Bits.append(Base, Base + Units);
-    Pos = (Units + 1) * 4;
-  } else {
-    // Otherwise do it the hard way.
-    for ( Pos += 4; Pos <= Size; Pos += 4) {
-      unsigned V = ((unsigned char)String[Pos - 4] << 24) |
-                   ((unsigned char)String[Pos - 3] << 16) |
-                   ((unsigned char)String[Pos - 2] << 8) |
-                    (unsigned char)String[Pos - 1];
-      Bits.push_back(V);
-    }
-  }
-  
-  // With the leftover bits.
-  unsigned V = 0;
-  // Pos will have overshot size by 4 - #bytes left over. 
-  switch (Pos - Size) {
-  case 1: V = (V << 8) | (unsigned char)String[Size - 3]; // Fall thru.
-  case 2: V = (V << 8) | (unsigned char)String[Size - 2]; // Fall thru.
-  case 3: V = (V << 8) | (unsigned char)String[Size - 1]; break;
-  default: return; // Nothing left.
-  }
-
-  Bits.push_back(V);
-}
-
-/// ComputeHash - Compute a strong hash value for this NodeID, used to 
-/// lookup the node in the FoldingSetImpl.
-unsigned FoldingSetImpl::NodeID::ComputeHash() const {
-  // This is adapted from SuperFastHash by Paul Hsieh.
-  unsigned Hash = Bits.size();
-  for (const unsigned *BP = &Bits[0], *E = BP+Bits.size(); BP != E; ++BP) {
-    unsigned Data = *BP;
-    Hash         += Data & 0xFFFF;
-    unsigned Tmp  = ((Data >> 16) << 11) ^ Hash;
-    Hash          = (Hash << 16) ^ Tmp;
-    Hash         += Hash >> 11;
-  }
-  
-  // Force "avalanching" of final 127 bits.
-  Hash ^= Hash << 3;
-  Hash += Hash >> 5;
-  Hash ^= Hash << 4;
-  Hash += Hash >> 17;
-  Hash ^= Hash << 25;
-  Hash += Hash >> 6;
-  return Hash;
-}
-
-/// operator== - Used to compare two nodes to each other.
-///
-bool FoldingSetImpl::NodeID::operator==(const FoldingSetImpl::NodeID &RHS)const{
-  if (Bits.size() != RHS.Bits.size()) return false;
-  return memcmp(&Bits[0], &RHS.Bits[0], Bits.size()*sizeof(Bits[0])) == 0;
-}
-
-
-//===----------------------------------------------------------------------===//
-/// Helper functions for FoldingSetImpl.
-
-/// GetNextPtr - In order to save space, each bucket is a
-/// singly-linked-list. In order to make deletion more efficient, we make
-/// the list circular, so we can delete a node without computing its hash.
-/// The problem with this is that the start of the hash buckets are not
-/// Nodes.  If NextInBucketPtr is a bucket pointer, this method returns null:
-/// use GetBucketPtr when this happens.
-static FoldingSetImpl::Node *GetNextPtr(void *NextInBucketPtr,
-                                        void **Buckets, unsigned NumBuckets) {
-  if (NextInBucketPtr >= Buckets && NextInBucketPtr < Buckets + NumBuckets)
-    return 0;
-  return static_cast<FoldingSetImpl::Node*>(NextInBucketPtr);
-}
-
-/// GetBucketPtr - Provides a casting of a bucket pointer for isNode
-/// testing.
-static void **GetBucketPtr(void *NextInBucketPtr) {
-  return static_cast<void**>(NextInBucketPtr);
-}
-
-/// GetBucketFor - Hash the specified node ID and return the hash bucket for
-/// the specified ID.
-static void **GetBucketFor(const FoldingSetImpl::NodeID &ID,
-                           void **Buckets, unsigned NumBuckets) {
-  // NumBuckets is always a power of 2.
-  unsigned BucketNum = ID.ComputeHash() & (NumBuckets-1);
-  return Buckets + BucketNum;
-}
-
-//===----------------------------------------------------------------------===//
-// FoldingSetImpl Implementation
-
-FoldingSetImpl::FoldingSetImpl(unsigned Log2InitSize) : NumNodes(0) {
-  assert(5 < Log2InitSize && Log2InitSize < 32 &&
-         "Initial hash table size out of range");
-  NumBuckets = 1 << Log2InitSize;
-  Buckets = new void*[NumBuckets];
-  memset(Buckets, 0, NumBuckets*sizeof(void*));
-}
-FoldingSetImpl::~FoldingSetImpl() {
-  delete [] Buckets;
-}
-
-/// GrowHashTable - Double the size of the hash table and rehash everything.
-///
-void FoldingSetImpl::GrowHashTable() {
-  void **OldBuckets = Buckets;
-  unsigned OldNumBuckets = NumBuckets;
-  NumBuckets <<= 1;
-  
-  // Reset the node count to zero: we're going to reinsert everything.
-  NumNodes = 0;
-  
-  // Clear out new buckets.
-  Buckets = new void*[NumBuckets];
-  memset(Buckets, 0, NumBuckets*sizeof(void*));
-
-  // Walk the old buckets, rehashing nodes into their new place.
-  for (unsigned i = 0; i != OldNumBuckets; ++i) {
-    void *Probe = OldBuckets[i];
-    if (!Probe) continue;
-    while (Node *NodeInBucket = GetNextPtr(Probe, OldBuckets, OldNumBuckets)) {
-      // Figure out the next link, remove NodeInBucket from the old link.
-      Probe = NodeInBucket->getNextInBucket();
-      NodeInBucket->SetNextInBucket(0);
-
-      // Insert the node into the new bucket, after recomputing the hash.
-      NodeID ID;
-      GetNodeProfile(ID, NodeInBucket);
-      InsertNode(NodeInBucket, GetBucketFor(ID, Buckets, NumBuckets));
-    }
-  }
-  
-  delete[] OldBuckets;
-}
-
-/// FindNodeOrInsertPos - Look up the node specified by ID.  If it exists,
-/// return it.  If not, return the insertion token that will make insertion
-/// faster.
-FoldingSetImpl::Node *FoldingSetImpl::FindNodeOrInsertPos(const NodeID &ID,
-                                                          void *&InsertPos) {
-  void **Bucket = GetBucketFor(ID, Buckets, NumBuckets);
-  void *Probe = *Bucket;
-  
-  InsertPos = 0;
-  
-  while (Node *NodeInBucket = GetNextPtr(Probe, Buckets, NumBuckets)) {
-    NodeID OtherID;
-    GetNodeProfile(OtherID, NodeInBucket);
-    if (OtherID == ID)
-      return NodeInBucket;
-
-    Probe = NodeInBucket->getNextInBucket();
-  }
-  
-  // Didn't find the node, return null with the bucket as the InsertPos.
-  InsertPos = Bucket;
-  return 0;
-}
-
-/// InsertNode - Insert the specified node into the folding set, knowing that it
-/// is not already in the map.  InsertPos must be obtained from 
-/// FindNodeOrInsertPos.
-void FoldingSetImpl::InsertNode(Node *N, void *InsertPos) {
-  assert(N->getNextInBucket() == 0);
-  // Do we need to grow the hashtable?
-  if (NumNodes+1 > NumBuckets*2) {
-    GrowHashTable();
-    NodeID ID;
-    GetNodeProfile(ID, N);
-    InsertPos = GetBucketFor(ID, Buckets, NumBuckets);
-  }
-
-  ++NumNodes;
-  
-  /// The insert position is actually a bucket pointer.
-  void **Bucket = static_cast<void**>(InsertPos);
-  
-  void *Next = *Bucket;
-  
-  // If this is the first insertion into this bucket, its next pointer will be
-  // null.  Pretend as if it pointed to itself.
-  if (Next == 0)
-    Next = Bucket;
-
-  // Set the node's next pointer, and make the bucket point to the node.
-  N->SetNextInBucket(Next);
-  *Bucket = N;
-}
-
-/// RemoveNode - Remove a node from the folding set, returning true if one was
-/// removed or false if the node was not in the folding set.
-bool FoldingSetImpl::RemoveNode(Node *N) {
-  // Because each bucket is a circular list, we don't need to compute N's hash
-  // to remove it.
-  void *Ptr = N->getNextInBucket();
-  if (Ptr == 0) return false;  // Not in folding set.
-
-  --NumNodes;
-  N->SetNextInBucket(0);
-
-  // Remember what N originally pointed to, either a bucket or another node.
-  void *NodeNextPtr = Ptr;
-  
-  // Chase around the list until we find the node (or bucket) which points to N.
-  while (true) {
-    if (Node *NodeInBucket = GetNextPtr(Ptr, Buckets, NumBuckets)) {
-      // Advance pointer.
-      Ptr = NodeInBucket->getNextInBucket();
-      
-      // We found a node that points to N, change it to point to N's next node,
-      // removing N from the list.
-      if (Ptr == N) {
-        NodeInBucket->SetNextInBucket(NodeNextPtr);
-        return true;
-      }
-    } else {
-      void **Bucket = GetBucketPtr(Ptr);
-      Ptr = *Bucket;
-      
-      // If we found that the bucket points to N, update the bucket to point to
-      // whatever is next.
-      if (Ptr == N) {
-        *Bucket = NodeNextPtr;
-        return true;
-      }
-    }
-  }
-}
-
-/// GetOrInsertNode - If there is an existing simple Node exactly
-/// equal to the specified node, return it.  Otherwise, insert 'N' and it
-/// instead.
-FoldingSetImpl::Node *FoldingSetImpl::GetOrInsertNode(FoldingSetImpl::Node *N) {
-  NodeID ID;
-  GetNodeProfile(ID, N);
-  void *IP;
-  if (Node *E = FindNodeOrInsertPos(ID, IP))
-    return E;
-  InsertNode(N, IP);
-  return N;
-}
diff --git a/support/lib/Support/GraphWriter.cpp b/support/lib/Support/GraphWriter.cpp
deleted file mode 100644
index eab76df..0000000
--- a/support/lib/Support/GraphWriter.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//===-- GraphWriter.cpp - Implements GraphWriter support routines ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements misc. GraphWriter support routines.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/GraphWriter.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/Program.h"
-#include "llvm/Config/config.h"
-using namespace llvm;
-
-void llvm::DisplayGraph(const sys::Path &Filename) {
-  std::string ErrMsg;
-#if HAVE_GRAPHVIZ
-  sys::Path Graphviz(LLVM_PATH_GRAPHVIZ);
-
-  std::vector<const char*> args;
-  args.push_back(Graphviz.c_str());
-  args.push_back(Filename.c_str());
-  args.push_back(0);
-  
-  cerr << "Running 'Graphviz' program... " << std::flush;
-  if (sys::Program::ExecuteAndWait(Graphviz, &args[0],0,0,0,0,&ErrMsg)) {
-    cerr << "Error viewing graph: " << ErrMsg << "\n";
-  }
-#elif (HAVE_GV && HAVE_DOT)
-  sys::Path PSFilename = Filename;
-  PSFilename.appendSuffix("ps");
-  
-  sys::Path dot(LLVM_PATH_DOT);
-
-  std::vector<const char*> args;
-  args.push_back(dot.c_str());
-  args.push_back("-Tps");
-  args.push_back("-Nfontname=Courier");
-  args.push_back("-Gsize=7.5,10");
-  args.push_back(Filename.c_str());
-  args.push_back("-o");
-  args.push_back(PSFilename.c_str());
-  args.push_back(0);
-  
-  cerr << "Running 'dot' program... " << std::flush;
-  if (sys::Program::ExecuteAndWait(dot, &args[0],0,0,0,0,&ErrMsg)) {
-    cerr << "Error viewing graph: '" << ErrMsg << "\n";
-  } else {
-    cerr << " done. \n";
-
-    sys::Path gv(LLVM_PATH_GV);
-    args.clear();
-    args.push_back(gv.c_str());
-    args.push_back(PSFilename.c_str());
-    args.push_back(0);
-    
-    ErrMsg.clear();
-    if (sys::Program::ExecuteAndWait(gv, &args[0],0,0,0,0,&ErrMsg)) {
-      cerr << "Error viewing graph: " << ErrMsg << "\n";
-    }
-  }
-  PSFilename.eraseFromDisk();
-#elif HAVE_DOTTY
-  sys::Path dotty(LLVM_PATH_DOTTY);
-
-  std::vector<const char*> args;
-  args.push_back(dotty.c_str());
-  args.push_back(Filename.c_str());
-  args.push_back(0);
-  
-  cerr << "Running 'dotty' program... " << std::flush;
-  if (sys::Program::ExecuteAndWait(dotty, &args[0],0,0,0,0,&ErrMsg)) {
-    cerr << "Error viewing graph: " << ErrMsg << "\n";
-  } else {
-#ifdef __MINGW32__ // Dotty spawns another app and doesn't wait until it returns
-    return;
-#endif
-  }
-#endif
-  
-  Filename.eraseFromDisk();
-}
diff --git a/support/lib/Support/IsInf.cpp b/support/lib/Support/IsInf.cpp
deleted file mode 100644
index 52c7d42..0000000
--- a/support/lib/Support/IsInf.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//===-- IsInf.cpp - Platform-independent wrapper around C99 isinf() -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Platform-independent wrapper around C99 isinf()
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"
-
-#if HAVE_ISINF_IN_MATH_H
-# include <math.h>
-#elif HAVE_ISINF_IN_CMATH
-# include <cmath>
-#elif HAVE_STD_ISINF_IN_CMATH
-# include <cmath>
-using std::isinf;
-#elif HAVE_FINITE_IN_IEEEFP_H
-// A handy workaround I found at http://www.unixguide.net/sun/faq ...
-// apparently this has been a problem with Solaris for years.
-# include <ieeefp.h>
-static int isinf(double x) { return !finite(x) && x==x; }
-#elif defined(_MSC_VER)
-#include <float.h>
-#define isinf(X) (!_finite(X))
-#elif defined(_AIX) && defined(__GNUC__)
-// GCC's fixincludes seems to be removing the isinf() declaration from the
-// system header /usr/include/math.h
-# include <math.h>
-static int isinf(double x) { return !finite(x) && x==x; }
-#elif defined(__hpux)
-// HP-UX is "special"
-#include <math.h>
-static int isinf(double x) { return ((x) == INFINITY) || ((x) == -INFINITY); }
-#else
-# error "Don't know how to get isinf()"
-#endif
-
-namespace llvm {
-
-int IsInf(float f)  { return isinf(f); }
-int IsInf(double d) { return isinf(d); }
-
-} // end namespace llvm;
diff --git a/support/lib/Support/IsNAN.cpp b/support/lib/Support/IsNAN.cpp
deleted file mode 100644
index 4e6c849..0000000
--- a/support/lib/Support/IsNAN.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//===-- IsNAN.cpp ---------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Platform-independent wrapper around C99 isnan().
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"
-
-#if HAVE_ISNAN_IN_MATH_H
-# include <math.h>
-#elif HAVE_ISNAN_IN_CMATH
-# include <cmath>
-#elif HAVE_STD_ISNAN_IN_CMATH
-# include <cmath>
-using std::isnan;
-#elif defined(_MSC_VER)
-#include <float.h>
-#define isnan _isnan
-#else
-# error "Don't know how to get isnan()"
-#endif
-
-namespace llvm {
-  int IsNAN(float f)  { return isnan(f); }
-  int IsNAN(double d) { return isnan(d); }
-} // end namespace llvm;
diff --git a/support/lib/Support/Makefile b/support/lib/Support/Makefile
deleted file mode 100644
index dae049a..0000000
--- a/support/lib/Support/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- lib/Support/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMSupport
-GOAL := archive
-
-include $(LEVEL)/Makefile.config
diff --git a/support/lib/Support/ManagedStatic.cpp b/support/lib/Support/ManagedStatic.cpp
deleted file mode 100644
index 8de8ecd..0000000
--- a/support/lib/Support/ManagedStatic.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===-- ManagedStatic.cpp - Static Global wrapper -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the ManagedStatic class and llvm_shutdown().
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/ManagedStatic.h"
-#include <cassert>
-using namespace llvm;
-
-static const ManagedStaticBase *StaticList = 0;
-
-void ManagedStaticBase::RegisterManagedStatic(void *ObjPtr,
-                                              void (*Deleter)(void*)) const {
-  assert(Ptr == 0 && DeleterFn == 0 && Next == 0 &&
-         "Partially init static?");
-  Ptr = ObjPtr;
-  DeleterFn = Deleter;
-  
-  // Add to list of managed statics.
-  Next = StaticList;
-  StaticList = this;
-}
-
-void ManagedStaticBase::destroy() const {
-  assert(DeleterFn && "ManagedStatic not initialized correctly!");
-  assert(StaticList == this &&
-         "Not destroyed in reverse order of construction?");
-  // Unlink from list.
-  StaticList = Next;
-  Next = 0;
-
-  // Destroy memory.
-  DeleterFn(Ptr);
-  
-  // Cleanup.
-  Ptr = 0;
-  DeleterFn = 0;
-}
-
-/// llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
-void llvm::llvm_shutdown() {
-  while (StaticList)
-    StaticList->destroy();
-}
-
diff --git a/support/lib/Support/MemoryBuffer.cpp b/support/lib/Support/MemoryBuffer.cpp
deleted file mode 100644
index 43eb181..0000000
--- a/support/lib/Support/MemoryBuffer.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-//===--- MemoryBuffer.cpp - Memory Buffer implementation ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This file implements the MemoryBuffer interface.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/System/MappedFile.h"
-#include "llvm/System/Process.h"
-#include "llvm/System/Program.h"
-#include <cassert>
-#include <cstdio>
-#include <cstring>
-#include <cerrno>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// MemoryBuffer implementation itself.
-//===----------------------------------------------------------------------===//
-
-MemoryBuffer::~MemoryBuffer() {
-  if (MustDeleteBuffer)
-    delete [] BufferStart;
-}
-
-/// initCopyOf - Initialize this source buffer with a copy of the specified
-/// memory range.  We make the copy so that we can null terminate it
-/// successfully.
-void MemoryBuffer::initCopyOf(const char *BufStart, const char *BufEnd) {
-  size_t Size = BufEnd-BufStart;
-  BufferStart = new char[Size+1];
-  BufferEnd = BufferStart+Size;
-  memcpy(const_cast<char*>(BufferStart), BufStart, Size);
-  *const_cast<char*>(BufferEnd) = 0;   // Null terminate buffer.
-  MustDeleteBuffer = true;
-}
-
-/// init - Initialize this MemoryBuffer as a reference to externally allocated
-/// memory, memory that we know is already null terminated.
-void MemoryBuffer::init(const char *BufStart, const char *BufEnd) {
-  assert(BufEnd[0] == 0 && "Buffer is not null terminated!");
-  BufferStart = BufStart;
-  BufferEnd = BufEnd;
-  MustDeleteBuffer = false;
-}
-
-//===----------------------------------------------------------------------===//
-// MemoryBufferMem implementation.
-//===----------------------------------------------------------------------===//
-
-namespace {
-class MemoryBufferMem : public MemoryBuffer {
-  std::string FileID;
-public:
-  MemoryBufferMem(const char *Start, const char *End, const char *FID)
-  : FileID(FID) {
-    init(Start, End);
-  }
-  
-  virtual const char *getBufferIdentifier() const {
-    return FileID.c_str();
-  }
-};
-}
-
-/// getMemBuffer - Open the specified memory range as a MemoryBuffer.  Note
-/// that EndPtr[0] must be a null byte and be accessible!
-MemoryBuffer *MemoryBuffer::getMemBuffer(const char *StartPtr, 
-                                         const char *EndPtr,
-                                         const char *BufferName) {
-  return new MemoryBufferMem(StartPtr, EndPtr, BufferName);
-}
-
-/// getNewUninitMemBuffer - Allocate a new MemoryBuffer of the specified size
-/// that is completely initialized to zeros.  Note that the caller should
-/// initialize the memory allocated by this method.  The memory is owned by
-/// the MemoryBuffer object.
-MemoryBuffer *MemoryBuffer::getNewUninitMemBuffer(unsigned Size,
-                                                  const char *BufferName) {
-  char *Buf = new char[Size+1];
-  Buf[Size] = 0;
-  MemoryBufferMem *SB = new MemoryBufferMem(Buf, Buf+Size, BufferName);
-  // The memory for this buffer is owned by the MemoryBuffer.
-  SB->MustDeleteBuffer = true;
-  return SB;
-}
-
-/// getNewMemBuffer - Allocate a new MemoryBuffer of the specified size that
-/// is completely initialized to zeros.  Note that the caller should
-/// initialize the memory allocated by this method.  The memory is owned by
-/// the MemoryBuffer object.
-MemoryBuffer *MemoryBuffer::getNewMemBuffer(unsigned Size,
-                                            const char *BufferName) {
-  MemoryBuffer *SB = getNewUninitMemBuffer(Size, BufferName);
-  memset(const_cast<char*>(SB->getBufferStart()), 0, Size+1);
-  return SB;
-}
-
-
-//===----------------------------------------------------------------------===//
-// MemoryBufferMMapFile implementation.
-//===----------------------------------------------------------------------===//
-
-namespace {
-class MemoryBufferMMapFile : public MemoryBuffer {
-  sys::MappedFile File;
-public:
-  MemoryBufferMMapFile() {}
-  
-  bool open(const sys::Path &Filename, std::string *ErrStr);
-  
-  virtual const char *getBufferIdentifier() const {
-    return File.path().c_str();
-  }
-    
-  ~MemoryBufferMMapFile();
-};
-}
-
-bool MemoryBufferMMapFile::open(const sys::Path &Filename,
-                                std::string *ErrStr) {
-  // FIXME: This does an extra stat syscall to figure out the size, but we
-  // already know the size!
-  bool Failure = File.open(Filename, sys::MappedFile::READ_ACCESS, ErrStr);
-  if (Failure) return true;
-  
-  if (!File.map(ErrStr))
-    return true;
-  
-  size_t Size = File.size();
-  
-  static unsigned PageSize = sys::Process::GetPageSize();
-  assert(((PageSize & (PageSize-1)) == 0) && PageSize &&
-         "Page size is not a power of 2!");
-  
-  // If this file is not an exact multiple of the system page size (common
-  // case), then the OS has zero terminated the buffer for us.
-  if ((Size & (PageSize-1))) {
-    init(File.charBase(), File.charBase()+Size);
-  } else {
-    // Otherwise, we allocate a new memory buffer and copy the data over
-    initCopyOf(File.charBase(), File.charBase()+Size);
-    
-    // No need to keep the file mapped any longer.
-    File.unmap();
-  }
-  return false;
-}
-
-MemoryBufferMMapFile::~MemoryBufferMMapFile() {
-  if (File.isMapped())
-    File.unmap();
-}
-
-//===----------------------------------------------------------------------===//
-// MemoryBuffer::getFile implementation.
-//===----------------------------------------------------------------------===//
-
-MemoryBuffer *MemoryBuffer::getFile(const char *FilenameStart, unsigned FnSize,
-                                    std::string *ErrStr, int64_t FileSize){
-  // FIXME: it would be nice if PathWithStatus didn't copy the filename into a
-  // temporary string. :(
-  sys::PathWithStatus P(FilenameStart, FnSize);
-#if 1
-  MemoryBufferMMapFile *M = new MemoryBufferMMapFile();
-  if (!M->open(P, ErrStr))
-    return M;
-  delete M;
-  return 0;
-#else
-  // FIXME: We need an efficient and portable method to open a file and then use
-  // 'read' to copy the bits out.  The unix implementation is below.  This is
-  // an important optimization for clients that want to open large numbers of
-  // small files (using mmap on everything can easily exhaust address space!).
-  
-  // If the user didn't specify a filesize, do a stat to find it.
-  if (FileSize == -1) {
-    const sys::FileStatus *FS = P.getFileStatus();
-    if (FS == 0) return 0;  // Error stat'ing file.
-   
-    FileSize = FS->fileSize;
-  }
-  
-  // If the file is larger than some threshold, use mmap, otherwise use 'read'.
-  if (FileSize >= 4096*4) {
-    MemoryBufferMMapFile *M = new MemoryBufferMMapFile();
-    if (!M->open(P, ErrStr))
-      return M;
-    delete M;
-    return 0;
-  }
-  
-  MemoryBuffer *SB = getNewUninitMemBuffer(FileSize, FilenameStart);
-  char *BufPtr = const_cast<char*>(SB->getBufferStart());
-  
-  int FD = ::open(FilenameStart, O_RDONLY);
-  if (FD == -1) {
-    delete SB;
-    return 0;
-  }
-  
-  unsigned BytesLeft = FileSize;
-  while (BytesLeft) {
-    ssize_t NumRead = ::read(FD, BufPtr, BytesLeft);
-    if (NumRead != -1) {
-      BytesLeft -= NumRead;
-      BufPtr += NumRead;
-    } else if (errno == EINTR) {
-      // try again
-    } else {
-      // error reading.
-      close(FD);
-      delete SB;
-      return 0;
-    }
-  }
-  close(FD);
-  
-  return SB;
-#endif
-}
-
-
-//===----------------------------------------------------------------------===//
-// MemoryBuffer::getSTDIN implementation.
-//===----------------------------------------------------------------------===//
-
-namespace {
-class STDINBufferFile : public MemoryBuffer {
-public:
-  virtual const char *getBufferIdentifier() const {
-    return "<stdin>";
-  }
-};
-}
-
-MemoryBuffer *MemoryBuffer::getSTDIN() {
-  char Buffer[4096*4];
-  
-  std::vector<char> FileData;
-  
-  // Read in all of the data from stdin, we cannot mmap stdin.
-  sys::Program::ChangeStdinToBinary();
-  while (size_t ReadBytes = fread(Buffer, 1, 4096*4, stdin))
-    FileData.insert(FileData.end(), Buffer, Buffer+ReadBytes);
-  
-  FileData.push_back(0); // &FileData[Size] is invalid. So is &*FileData.end().
-  size_t Size = FileData.size();
-  MemoryBuffer *B = new STDINBufferFile();
-  B->initCopyOf(&FileData[0], &FileData[Size-1]);
-  return B;
-}
diff --git a/support/lib/Support/PluginLoader.cpp b/support/lib/Support/PluginLoader.cpp
deleted file mode 100644
index 3c9de89..0000000
--- a/support/lib/Support/PluginLoader.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- PluginLoader.cpp - Implement -load command line option ------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the -load <plugin> command line option handler.
-//
-//===----------------------------------------------------------------------===//
-
-#define DONT_GET_PLUGIN_LOADER_OPTION
-#include "llvm/Support/PluginLoader.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/System/DynamicLibrary.h"
-#include <ostream>
-#include <vector>
-using namespace llvm;
-
-static std::vector<std::string> *Plugins;
-
-void PluginLoader::operator=(const std::string &Filename) {
-  if (!Plugins)
-    Plugins = new std::vector<std::string>();
-
-  std::string Error;
-  if (sys::DynamicLibrary::LoadLibraryPermanently(Filename.c_str(), &Error)) {
-    cerr << "Error opening '" << Filename << "': " << Error
-         << "\n  -load request ignored.\n";
-  } else {
-    Plugins->push_back(Filename);
-  }
-}
-
-unsigned PluginLoader::getNumPlugins() {
-  return Plugins ? Plugins->size() : 0;
-}
-
-std::string &PluginLoader::getPlugin(unsigned num) {
-  assert(Plugins && num < Plugins->size() && "Asking for an out of bounds plugin");
-  return (*Plugins)[num];
-}
diff --git a/support/lib/Support/SlowOperationInformer.cpp b/support/lib/Support/SlowOperationInformer.cpp
deleted file mode 100644
index a7bdf12..0000000
--- a/support/lib/Support/SlowOperationInformer.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===-- SlowOperationInformer.cpp - Keep the user informed ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SlowOperationInformer class for the LLVM debugger.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/SlowOperationInformer.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/System/Alarm.h"
-#include <sstream>
-#include <cassert>
-using namespace llvm;
-
-SlowOperationInformer::SlowOperationInformer(const std::string &Name)
-  : OperationName(Name), LastPrintAmount(0) {
-  sys::SetupAlarm(1);
-}
-
-SlowOperationInformer::~SlowOperationInformer() {
-  sys::TerminateAlarm();
-  if (LastPrintAmount) {
-    // If we have printed something, make _sure_ we print the 100% amount, and
-    // also print a newline.
-    cout << std::string(LastPrintAmount, '\b') << "Progress "
-         << OperationName << ": 100%  \n";
-  }
-}
-
-/// progress - Clients should periodically call this method when they are in
-/// an exception-safe state.  The Amount variable should indicate how far
-/// along the operation is, given in 1/10ths of a percent (in other words,
-/// Amount should range from 0 to 1000).
-bool SlowOperationInformer::progress(unsigned Amount) {
-  int status = sys::AlarmStatus();
-  if (status == -1) {
-    cout << "\n";
-    LastPrintAmount = 0;
-    return true;
-  }
-
-  // If we haven't spent enough time in this operation to warrant displaying the
-  // progress bar, don't do so yet.
-  if (status == 0)
-    return false;
-
-  // Delete whatever we printed last time.
-  std::string ToPrint = std::string(LastPrintAmount, '\b');
-
-  std::ostringstream OS;
-  OS << "Progress " << OperationName << ": " << Amount/10;
-  if (unsigned Rem = Amount % 10)
-    OS << "." << Rem << "%";
-  else
-    OS << "%  ";
-
-  LastPrintAmount = OS.str().size();
-  cout << ToPrint+OS.str() << std::flush;
-  return false;
-}
diff --git a/support/lib/Support/SmallPtrSet.cpp b/support/lib/Support/SmallPtrSet.cpp
deleted file mode 100644
index 3326923..0000000
--- a/support/lib/Support/SmallPtrSet.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-//===- llvm/ADT/SmallPtrSet.cpp - 'Normally small' pointer set ------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SmallPtrSet class.  See SmallPtrSet.h for an
-// overview of the algorithm.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/Support/MathExtras.h"
-#include <cstdlib>
-
-using namespace llvm;
-
-bool SmallPtrSetImpl::insert(void *Ptr) {
-  if (isSmall()) {
-    // Check to see if it is already in the set.
-    for (void **APtr = SmallArray, **E = SmallArray+NumElements;
-         APtr != E; ++APtr)
-      if (*APtr == Ptr)
-        return false;
-    
-    // Nope, there isn't.  If we stay small, just 'pushback' now.
-    if (NumElements < CurArraySize-1) {
-      SmallArray[NumElements++] = Ptr;
-      return true;
-    }
-    // Otherwise, hit the big set case, which will call grow.
-  }
-  
-  // If more than 3/4 of the array is full, grow.
-  if (NumElements*4 >= CurArraySize*3 ||
-      CurArraySize-(NumElements+NumTombstones) < CurArraySize/8)
-    Grow();
-  
-  // Okay, we know we have space.  Find a hash bucket.
-  void **Bucket = const_cast<void**>(FindBucketFor(Ptr));
-  if (*Bucket == Ptr) return false; // Already inserted, good.
-  
-  // Otherwise, insert it!
-  if (*Bucket == getTombstoneMarker())
-    --NumTombstones;
-  *Bucket = Ptr;
-  ++NumElements;  // Track density.
-  return true;
-}
-
-bool SmallPtrSetImpl::erase(void *Ptr) {
-  if (isSmall()) {
-    // Check to see if it is in the set.
-    for (void **APtr = SmallArray, **E = SmallArray+NumElements;
-         APtr != E; ++APtr)
-      if (*APtr == Ptr) {
-        // If it is in the set, replace this element.
-        *APtr = E[-1];
-        E[-1] = getEmptyMarker();
-        --NumElements;
-        return true;
-      }
-    
-    return false;
-  }
-  
-  // Okay, we know we have space.  Find a hash bucket.
-  void **Bucket = const_cast<void**>(FindBucketFor(Ptr));
-  if (*Bucket != Ptr) return false;  // Not in the set?
-
-  // Set this as a tombstone.
-  *Bucket = getTombstoneMarker();
-  --NumElements;
-  ++NumTombstones;
-  return true;
-}
-
-void * const *SmallPtrSetImpl::FindBucketFor(void *Ptr) const {
-  unsigned Bucket = Hash(Ptr);
-  unsigned ArraySize = CurArraySize;
-  unsigned ProbeAmt = 1;
-  void *const *Array = CurArray;
-  void *const *Tombstone = 0;
-  while (1) {
-    // Found Ptr's bucket?
-    if (Array[Bucket] == Ptr)
-      return Array+Bucket;
-    
-    // If we found an empty bucket, the pointer doesn't exist in the set.
-    // Return a tombstone if we've seen one so far, or the empty bucket if
-    // not.
-    if (Array[Bucket] == getEmptyMarker())
-      return Tombstone ? Tombstone : Array+Bucket;
-    
-    // If this is a tombstone, remember it.  If Ptr ends up not in the set, we
-    // prefer to return it than something that would require more probing.
-    if (Array[Bucket] == getTombstoneMarker() && !Tombstone)
-      Tombstone = Array+Bucket;  // Remember the first tombstone found.
-    
-    // It's a hash collision or a tombstone. Reprobe.
-    Bucket = (Bucket + ProbeAmt++) & (ArraySize-1);
-  }
-}
-
-/// Grow - Allocate a larger backing store for the buckets and move it over.
-///
-void SmallPtrSetImpl::Grow() {
-  // Allocate at twice as many buckets, but at least 128.
-  unsigned OldSize = CurArraySize;
-  unsigned NewSize = OldSize < 64 ? 128 : OldSize*2;
-  
-  void **OldBuckets = CurArray;
-  bool WasSmall = isSmall();
-  
-  // Install the new array.  Clear all the buckets to empty.
-  CurArray = (void**)malloc(sizeof(void*) * (NewSize+1));
-  assert(CurArray && "Failed to allocate memory?");
-  CurArraySize = NewSize;
-  memset(CurArray, -1, NewSize*sizeof(void*));
-  
-  // The end pointer, always valid, is set to a valid element to help the
-  // iterator.
-  CurArray[NewSize] = 0;
-  
-  // Copy over all the elements.
-  if (WasSmall) {
-    // Small sets store their elements in order.
-    for (void **BucketPtr = OldBuckets, **E = OldBuckets+NumElements;
-         BucketPtr != E; ++BucketPtr) {
-      void *Elt = *BucketPtr;
-      *const_cast<void**>(FindBucketFor(Elt)) = Elt;
-    }
-  } else {
-    // Copy over all valid entries.
-    for (void **BucketPtr = OldBuckets, **E = OldBuckets+OldSize;
-         BucketPtr != E; ++BucketPtr) {
-      // Copy over the element if it is valid.
-      void *Elt = *BucketPtr;
-      if (Elt != getTombstoneMarker() && Elt != getEmptyMarker())
-        *const_cast<void**>(FindBucketFor(Elt)) = Elt;
-    }
-    
-    free(OldBuckets);
-    NumTombstones = 0;
-  }
-}
-
-SmallPtrSetImpl::SmallPtrSetImpl(const SmallPtrSetImpl& that) {
-  // If we're becoming small, prepare to insert into our stack space
-  if (that.isSmall()) {
-    CurArray = &SmallArray[0];
-  // Otherwise, allocate new heap space (unless we were the same size)
-  } else {
-    CurArray = (void**)malloc(sizeof(void*) * (that.CurArraySize+1));
-    assert(CurArray && "Failed to allocate memory?");
-  }
-  
-  // Copy over the new array size
-  CurArraySize = that.CurArraySize;
-
-  // Copy over the contents from the other set
-  memcpy(CurArray, that.CurArray, sizeof(void*)*(CurArraySize+1));
-  
-  NumElements = that.NumElements;
-  NumTombstones = that.NumTombstones;
-}
-
-/// CopyFrom - implement operator= from a smallptrset that has the same pointer
-/// type, but may have a different small size.
-void SmallPtrSetImpl::CopyFrom(const SmallPtrSetImpl &RHS) {
-  if (isSmall() && RHS.isSmall())
-    assert(CurArraySize == RHS.CurArraySize &&
-           "Cannot assign sets with different small sizes");
-           
-  // If we're becoming small, prepare to insert into our stack space
-  if (RHS.isSmall()) {
-    if (!isSmall())
-      free(CurArray);
-    CurArray = &SmallArray[0];
-  // Otherwise, allocate new heap space (unless we were the same size)
-  } else if (CurArraySize != RHS.CurArraySize) {
-    if (isSmall())
-      CurArray = (void**)malloc(sizeof(void*) * (RHS.CurArraySize+1));
-    else
-      CurArray = (void**)realloc(CurArray, sizeof(void*)*(RHS.CurArraySize+1));
-    assert(CurArray && "Failed to allocate memory?");
-  }
-  
-  // Copy over the new array size
-  CurArraySize = RHS.CurArraySize;
-
-  // Copy over the contents from the other set
-  memcpy(CurArray, RHS.CurArray, sizeof(void*)*(CurArraySize+1));
-  
-  NumElements = RHS.NumElements;
-  NumTombstones = RHS.NumTombstones;
-}
-
-SmallPtrSetImpl::~SmallPtrSetImpl() {
-  if (!isSmall())
-    free(CurArray);
-}
diff --git a/support/lib/Support/Statistic.cpp b/support/lib/Support/Statistic.cpp
deleted file mode 100644
index a698a00..0000000
--- a/support/lib/Support/Statistic.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//===-- Statistic.cpp - Easy way to expose stats information --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the 'Statistic' class, which is designed to be an easy
-// way to expose various success metrics from passes.  These statistics are
-// printed at the end of a run, when the -stats command line option is enabled
-// on the command line.
-//
-// This is useful for reporting information like the number of instructions
-// simplified, optimized or removed by various transformations, like this:
-//
-// static Statistic NumInstEliminated("GCSE", "Number of instructions killed");
-//
-// Later, in the code: ++NumInstEliminated;
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/ADT/StringExtras.h"
-#include <algorithm>
-#include <ostream>
-using namespace llvm;
-
-// GetLibSupportInfoOutputFile - Return a file stream to print our output on.
-namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); }
-
-/// -stats - Command line option to cause transformations to emit stats about
-/// what they did.
-///
-static cl::opt<bool>
-Enabled("stats", cl::desc("Enable statistics output from program"));
-
-
-namespace {
-/// StatisticInfo - This class is used in a ManagedStatic so that it is created
-/// on demand (when the first statistic is bumped) and destroyed only when 
-/// llvm_shutdown is called.  We print statistics from the destructor.
-class StatisticInfo {
-  std::vector<const Statistic*> Stats;
-public:
-  ~StatisticInfo();
-  
-  void addStatistic(const Statistic *S) {
-    Stats.push_back(S);
-  }
-};
-}
-
-static ManagedStatic<StatisticInfo> StatInfo;
-
-
-/// RegisterStatistic - The first time a statistic is bumped, this method is
-/// called.
-void Statistic::RegisterStatistic() {
-  // If stats are enabled, inform StatInfo that this statistic should be
-  // printed.
-  if (Enabled)
-    StatInfo->addStatistic(this);
-  // Remember we have been registered.
-  Initialized = true;
-}
-
-struct NameCompare {
-  bool operator()(const Statistic *LHS, const Statistic *RHS) const {
-    int Cmp = std::strcmp(LHS->getName(), RHS->getName());
-    if (Cmp != 0) return Cmp < 0;
-    
-    // Secondary key is the description.
-    return std::strcmp(LHS->getDesc(), RHS->getDesc()) < 0;
-  }
-};
-
-// Print information when destroyed, iff command line option is specified.
-StatisticInfo::~StatisticInfo() {
-  // Statistics not enabled?
-  if (Stats.empty()) return;
-
-  // Get the stream to write to.
-  std::ostream &OutStream = *GetLibSupportInfoOutputFile();
-
-  // Figure out how long the biggest Value and Name fields are.
-  unsigned MaxNameLen = 0, MaxValLen = 0;
-  for (unsigned i = 0, e = Stats.size(); i != e; ++i) {
-    MaxValLen = std::max(MaxValLen,
-                         (unsigned)utostr(Stats[i]->getValue()).size());
-    MaxNameLen = std::max(MaxNameLen,
-                          (unsigned)std::strlen(Stats[i]->getName()));
-  }
-  
-  // Sort the fields by name.
-  std::stable_sort(Stats.begin(), Stats.end(), NameCompare());
-
-  // Print out the statistics header...
-  OutStream << "===" << std::string(73, '-') << "===\n"
-            << "                          ... Statistics Collected ...\n"
-            << "===" << std::string(73, '-') << "===\n\n";
-  
-  // Print all of the statistics.
-  for (unsigned i = 0, e = Stats.size(); i != e; ++i) {
-    std::string CountStr = utostr(Stats[i]->getValue());
-    OutStream << std::string(MaxValLen-CountStr.size(), ' ')
-              << CountStr << " " << Stats[i]->getName()
-              << std::string(MaxNameLen-std::strlen(Stats[i]->getName()), ' ')
-              << " - " << Stats[i]->getDesc() << "\n";
-    
-  }
-  
-  OutStream << std::endl;  // Flush the output stream...
-  
-  if (&OutStream != cerr.stream() && &OutStream != cout.stream())
-    delete &OutStream;   // Close the file.
-}
diff --git a/support/lib/Support/Streams.cpp b/support/lib/Support/Streams.cpp
deleted file mode 100644
index 433f6b4..0000000
--- a/support/lib/Support/Streams.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- Streams.cpp - Wrappers for iostreams ------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Bill Wendling and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a wrapper for the std::cout and std::cerr I/O streams.
-// It prevents the need to include <iostream> to each file just to get I/O.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Streams.h"
-#include <iostream>
-using namespace llvm;
-
-OStream llvm::cout(std::cout);
-OStream llvm::cerr(std::cerr);
-IStream llvm::cin(std::cin);
diff --git a/support/lib/Support/StringExtras.cpp b/support/lib/Support/StringExtras.cpp
deleted file mode 100644
index 2ce2349..0000000
--- a/support/lib/Support/StringExtras.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//===-- StringExtras.cpp - Implement the StringExtras header --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the StringExtras.h header
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/StringExtras.h"
-using namespace llvm;
-
-/// getToken - This function extracts one token from source, ignoring any
-/// leading characters that appear in the Delimiters string, and ending the
-/// token at any of the characters that appear in the Delimiters string.  If
-/// there are no tokens in the source string, an empty string is returned.
-/// The Source source string is updated in place to remove the returned string
-/// and any delimiter prefix from it.
-std::string llvm::getToken(std::string &Source, const char *Delimiters) {
-  unsigned NumDelimiters = std::strlen(Delimiters);
-
-  // Figure out where the token starts.
-  std::string::size_type Start =
-    Source.find_first_not_of(Delimiters, 0, NumDelimiters);
-  if (Start == std::string::npos) Start = Source.size();
-
-  // Find the next occurance of the delimiter.
-  std::string::size_type End =
-    Source.find_first_of(Delimiters, Start, NumDelimiters);
-  if (End == std::string::npos) End = Source.size();
-
-  // Create the return token.
-  std::string Result = std::string(Source.begin()+Start, Source.begin()+End);
-
-  // Erase the token that we read in.
-  Source.erase(Source.begin(), Source.begin()+End);
-
-  return Result;
-}
-
-/// SplitString - Split up the specified string according to the specified
-/// delimiters, appending the result fragments to the output list.
-void llvm::SplitString(const std::string &Source, 
-                       std::vector<std::string> &OutFragments,
-                       const char *Delimiters) {
-  std::string S = Source;
-  
-  std::string S2 = getToken(S, Delimiters);
-  while (!S2.empty()) {
-    OutFragments.push_back(S2);
-    S2 = getToken(S, Delimiters);
-  }
-}
-
-
-
-/// UnescapeString - Modify the argument string, turning two character sequences
-/// like '\\' 'n' into '\n'.  This handles: \e \a \b \f \n \r \t \v \' \\ and
-/// \num (where num is a 1-3 byte octal value).
-void llvm::UnescapeString(std::string &Str) {
-  for (unsigned i = 0; i != Str.size(); ++i) {
-    if (Str[i] == '\\' && i != Str.size()-1) {
-      switch (Str[i+1]) {
-      default: continue;  // Don't execute the code after the switch.
-      case 'a': Str[i] = '\a'; break;
-      case 'b': Str[i] = '\b'; break;
-      case 'e': Str[i] = 27; break;
-      case 'f': Str[i] = '\f'; break;
-      case 'n': Str[i] = '\n'; break;
-      case 'r': Str[i] = '\r'; break;
-      case 't': Str[i] = '\t'; break;
-      case 'v': Str[i] = '\v'; break;
-      case '\'': Str[i] = '\''; break;
-      case '\\': Str[i] = '\\'; break;
-      }
-      // Nuke the second character.
-      Str.erase(Str.begin()+i+1);
-    }
-  }
-}
-
-/// EscapeString - Modify the argument string, turning '\\' and anything that
-/// doesn't satisfy std::isprint into an escape sequence.
-void llvm::EscapeString(std::string &Str) {
-  for (unsigned i = 0; i != Str.size(); ++i) {
-    if (Str[i] == '\\') {
-      ++i;
-      Str.insert(Str.begin()+i, '\\');
-    } else if (Str[i] == '\t') {
-      Str[i++] = '\\';
-      Str.insert(Str.begin()+i, 't');
-    } else if (Str[i] == '\n') {
-      Str[i++] = '\\';
-      Str.insert(Str.begin()+i, 'n');
-    } else if (!std::isprint(Str[i])) {
-      // Always expand to a 3-digit octal escape.
-      unsigned Char = Str[i];
-      Str[i++] = '\\';
-      Str.insert(Str.begin()+i++, '0'+((Char/64) & 7));
-      Str.insert(Str.begin()+i++, '0'+((Char/8)  & 7));
-      Str.insert(Str.begin()+i  , '0'+( Char     & 7));
-    }
-  }
-}
diff --git a/support/lib/Support/StringMap.cpp b/support/lib/Support/StringMap.cpp
deleted file mode 100644
index ae0dca7..0000000
--- a/support/lib/Support/StringMap.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//===--- StringMap.cpp - String Hash table map implementation -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the StringMap class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/StringMap.h"
-#include <cassert>
-using namespace llvm;
-
-StringMapImpl::StringMapImpl(unsigned InitSize, unsigned itemSize) {
-  ItemSize = itemSize;
-  
-  // If a size is specified, initialize the table with that many buckets.
-  if (InitSize) {
-    init(InitSize);
-    return;
-  }
-  
-  // Otherwise, initialize it with zero buckets to avoid the allocation.
-  TheTable = 0;
-  NumBuckets = 0;
-  NumItems = 0;
-  NumTombstones = 0;
-}
-
-void StringMapImpl::init(unsigned InitSize) {
-  assert((InitSize & (InitSize-1)) == 0 &&
-         "Init Size must be a power of 2 or zero!");
-  NumBuckets = InitSize ? InitSize : 16;
-  NumItems = 0;
-  NumTombstones = 0;
-  
-  TheTable = (ItemBucket*)calloc(NumBuckets+1, sizeof(ItemBucket));
-  
-  // Allocate one extra bucket, set it to look filled so the iterators stop at
-  // end.
-  TheTable[NumBuckets].Item = (StringMapEntryBase*)2;
-}
-
-
-/// HashString - Compute a hash code for the specified string.
-///
-static unsigned HashString(const char *Start, const char *End) {
-  // Bernstein hash function.
-  unsigned int Result = 0;
-  // TODO: investigate whether a modified bernstein hash function performs
-  // better: http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx
-  //   X*33+c -> X*33^c
-  while (Start != End)
-    Result = Result * 33 + *Start++;
-  Result = Result + (Result >> 5);
-  return Result;
-}
-
-/// LookupBucketFor - Look up the bucket that the specified string should end
-/// up in.  If it already exists as a key in the map, the Item pointer for the
-/// specified bucket will be non-null.  Otherwise, it will be null.  In either
-/// case, the FullHashValue field of the bucket will be set to the hash value
-/// of the string.
-unsigned StringMapImpl::LookupBucketFor(const char *NameStart,
-                                        const char *NameEnd) {
-  unsigned HTSize = NumBuckets;
-  if (HTSize == 0) {  // Hash table unallocated so far?
-    init(16);
-    HTSize = NumBuckets;
-  }
-  unsigned FullHashValue = HashString(NameStart, NameEnd);
-  unsigned BucketNo = FullHashValue & (HTSize-1);
-  
-  unsigned ProbeAmt = 1;
-  int FirstTombstone = -1;
-  while (1) {
-    ItemBucket &Bucket = TheTable[BucketNo];
-    StringMapEntryBase *BucketItem = Bucket.Item;
-    // If we found an empty bucket, this key isn't in the table yet, return it.
-    if (BucketItem == 0) {
-      // If we found a tombstone, we want to reuse the tombstone instead of an
-      // empty bucket.  This reduces probing.
-      if (FirstTombstone != -1) {
-        TheTable[FirstTombstone].FullHashValue = FullHashValue;
-        return FirstTombstone;
-      }
-      
-      Bucket.FullHashValue = FullHashValue;
-      return BucketNo;
-    }
-    
-    if (BucketItem == getTombstoneVal()) {
-      // Skip over tombstones.  However, remember the first one we see.
-      if (FirstTombstone == -1) FirstTombstone = BucketNo;
-    } else if (Bucket.FullHashValue == FullHashValue) {
-      // If the full hash value matches, check deeply for a match.  The common
-      // case here is that we are only looking at the buckets (for item info
-      // being non-null and for the full hash value) not at the items.  This
-      // is important for cache locality.
-      
-      // Do the comparison like this because NameStart isn't necessarily
-      // null-terminated!
-      char *ItemStr = (char*)BucketItem+ItemSize;
-      unsigned ItemStrLen = BucketItem->getKeyLength();
-      if (unsigned(NameEnd-NameStart) == ItemStrLen &&
-          memcmp(ItemStr, NameStart, ItemStrLen) == 0) {
-        // We found a match!
-        return BucketNo;
-      }
-    }
-    
-    // Okay, we didn't find the item.  Probe to the next bucket.
-    BucketNo = (BucketNo+ProbeAmt) & (HTSize-1);
-    
-    // Use quadratic probing, it has fewer clumping artifacts than linear
-    // probing and has good cache behavior in the common case.
-    ++ProbeAmt;
-  }
-}
-
-
-/// FindKey - Look up the bucket that contains the specified key. If it exists
-/// in the map, return the bucket number of the key.  Otherwise return -1.
-/// This does not modify the map.
-int StringMapImpl::FindKey(const char *KeyStart, const char *KeyEnd) const {
-  unsigned HTSize = NumBuckets;
-  if (HTSize == 0) return -1;  // Really empty table?
-  unsigned FullHashValue = HashString(KeyStart, KeyEnd);
-  unsigned BucketNo = FullHashValue & (HTSize-1);
-  
-  unsigned ProbeAmt = 1;
-  while (1) {
-    ItemBucket &Bucket = TheTable[BucketNo];
-    StringMapEntryBase *BucketItem = Bucket.Item;
-    // If we found an empty bucket, this key isn't in the table yet, return.
-    if (BucketItem == 0)
-      return -1;
-    
-    if (BucketItem == getTombstoneVal()) {
-      // Ignore tombstones.
-    } else if (Bucket.FullHashValue == FullHashValue) {
-      // If the full hash value matches, check deeply for a match.  The common
-      // case here is that we are only looking at the buckets (for item info
-      // being non-null and for the full hash value) not at the items.  This
-      // is important for cache locality.
-      
-      // Do the comparison like this because NameStart isn't necessarily
-      // null-terminated!
-      char *ItemStr = (char*)BucketItem+ItemSize;
-      unsigned ItemStrLen = BucketItem->getKeyLength();
-      if (unsigned(KeyEnd-KeyStart) == ItemStrLen &&
-          memcmp(ItemStr, KeyStart, ItemStrLen) == 0) {
-        // We found a match!
-        return BucketNo;
-      }
-    }
-    
-    // Okay, we didn't find the item.  Probe to the next bucket.
-    BucketNo = (BucketNo+ProbeAmt) & (HTSize-1);
-    
-    // Use quadratic probing, it has fewer clumping artifacts than linear
-    // probing and has good cache behavior in the common case.
-    ++ProbeAmt;
-  }
-}
-
-/// RemoveKey - Remove the specified StringMapEntry from the table, but do not
-/// delete it.  This aborts if the value isn't in the table.
-void StringMapImpl::RemoveKey(StringMapEntryBase *V) {
-  const char *VStr = (char*)V + ItemSize;
-  StringMapEntryBase *V2 = RemoveKey(VStr, VStr+V->getKeyLength());
-  V2 = V2;
-  assert(V == V2 && "Didn't find key?");
-}
-
-/// RemoveKey - Remove the StringMapEntry for the specified key from the
-/// table, returning it.  If the key is not in the table, this returns null.
-StringMapEntryBase *StringMapImpl::RemoveKey(const char *KeyStart,
-                                             const char *KeyEnd) {
-  int Bucket = FindKey(KeyStart, KeyEnd);
-  if (Bucket == -1) return 0;
-  
-  StringMapEntryBase *Result = TheTable[Bucket].Item;
-  TheTable[Bucket].Item = getTombstoneVal();
-  --NumItems;
-  ++NumTombstones;
-  return Result;
-}
-
-
-
-/// RehashTable - Grow the table, redistributing values into the buckets with
-/// the appropriate mod-of-hashtable-size.
-void StringMapImpl::RehashTable() {
-  unsigned NewSize = NumBuckets*2;
-  // Allocate one extra bucket which will always be non-empty.  This allows the
-  // iterators to stop at end.
-  ItemBucket *NewTableArray =(ItemBucket*)calloc(NewSize+1, sizeof(ItemBucket));
-  NewTableArray[NewSize].Item = (StringMapEntryBase*)2;
-  
-  // Rehash all the items into their new buckets.  Luckily :) we already have
-  // the hash values available, so we don't have to rehash any strings.
-  for (ItemBucket *IB = TheTable, *E = TheTable+NumBuckets; IB != E; ++IB) {
-    if (IB->Item && IB->Item != getTombstoneVal()) {
-      // Fast case, bucket available.
-      unsigned FullHash = IB->FullHashValue;
-      unsigned NewBucket = FullHash & (NewSize-1);
-      if (NewTableArray[NewBucket].Item == 0) {
-        NewTableArray[FullHash & (NewSize-1)].Item = IB->Item;
-        NewTableArray[FullHash & (NewSize-1)].FullHashValue = FullHash;
-        continue;
-      }
-      
-      // Otherwise probe for a spot.
-      unsigned ProbeSize = 1;
-      do {
-        NewBucket = (NewBucket + ProbeSize++) & (NewSize-1);
-      } while (NewTableArray[NewBucket].Item);
-      
-      // Finally found a slot.  Fill it in.
-      NewTableArray[NewBucket].Item = IB->Item;
-      NewTableArray[NewBucket].FullHashValue = FullHash;
-    }
-  }
-  
-  free(TheTable);
-  
-  TheTable = NewTableArray;
-  NumBuckets = NewSize;
-}
diff --git a/support/lib/Support/SystemUtils.cpp b/support/lib/Support/SystemUtils.cpp
deleted file mode 100644
index afa0d7e..0000000
--- a/support/lib/Support/SystemUtils.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===- SystemUtils.cpp - Utilities for low-level system tasks -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains functions used to do a variety of low-level, often
-// system-specific, tasks.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Streams.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/System/Process.h"
-#include "llvm/System/Program.h"
-#include <ostream>
-using namespace llvm;
-
-bool llvm::CheckBitcodeOutputToConsole(std::ostream* stream_to_check,
-                                       bool print_warning) {
-  if (stream_to_check == cout.stream() &&
-      sys::Process::StandardOutIsDisplayed()) {
-    if (print_warning) {
-      cerr << "WARNING: You're attempting to print out a bitcode file.\n"
-           << "This is inadvisable as it may cause display problems. If\n"
-           << "you REALLY want to taste LLVM bitcode first-hand, you\n"
-           << "can force output with the `-f' option.\n\n";
-    }
-    return true;
-  }
-  return false;
-}
-
-/// FindExecutable - Find a named executable, giving the argv[0] of program
-/// being executed. This allows us to find another LLVM tool if it is built
-/// into the same directory, but that directory is neither the current
-/// directory, nor in the PATH.  If the executable cannot be found, return an
-/// empty string.
-///
-#undef FindExecutable   // needed on windows :(
-sys::Path llvm::FindExecutable(const std::string &ExeName,
-                               const std::string &ProgramPath) {
-  // First check the directory that the calling program is in.  We can do this
-  // if ProgramPath contains at least one / character, indicating that it is a
-  // relative path to bugpoint itself.
-  sys::Path Result ( ProgramPath );
-  Result.eraseComponent();
-  if (!Result.isEmpty()) {
-    Result.appendComponent(ExeName);
-    if (Result.canExecute())
-      return Result;
-  }
-
-  return sys::Program::FindProgramByName(ExeName);
-}
diff --git a/support/lib/Support/Timer.cpp b/support/lib/Support/Timer.cpp
deleted file mode 100644
index 077995d..0000000
--- a/support/lib/Support/Timer.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-//===-- Timer.cpp - Interval Timing Support -------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Interval Timing implementation.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Timer.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/Streams.h"
-#include "llvm/System/Process.h"
-#include <algorithm>
-#include <fstream>
-#include <functional>
-#include <map>
-using namespace llvm;
-
-// GetLibSupportInfoOutputFile - Return a file stream to print our output on.
-namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); }
-
-// getLibSupportInfoOutputFilename - This ugly hack is brought to you courtesy
-// of constructor/destructor ordering being unspecified by C++.  Basically the
-// problem is that a Statistic object gets destroyed, which ends up calling
-// 'GetLibSupportInfoOutputFile()' (below), which calls this function.
-// LibSupportInfoOutputFilename used to be a global variable, but sometimes it
-// would get destroyed before the Statistic, causing havoc to ensue.  We "fix"
-// this by creating the string the first time it is needed and never destroying
-// it.
-static ManagedStatic<std::string> LibSupportInfoOutputFilename;
-static std::string &getLibSupportInfoOutputFilename() {
-  return *LibSupportInfoOutputFilename;
-}
-
-namespace {
-  cl::opt<bool>
-  TrackSpace("track-memory", cl::desc("Enable -time-passes memory "
-                                      "tracking (this may be slow)"),
-             cl::Hidden);
-
-  cl::opt<std::string, true>
-  InfoOutputFilename("info-output-file", cl::value_desc("filename"),
-                     cl::desc("File to append -stats and -timer output to"),
-                   cl::Hidden, cl::location(getLibSupportInfoOutputFilename()));
-}
-
-static TimerGroup *DefaultTimerGroup = 0;
-static TimerGroup *getDefaultTimerGroup() {
-  if (DefaultTimerGroup) return DefaultTimerGroup;
-  return DefaultTimerGroup = new TimerGroup("Miscellaneous Ungrouped Timers");
-}
-
-Timer::Timer(const std::string &N)
-  : Elapsed(0), UserTime(0), SystemTime(0), MemUsed(0), PeakMem(0), Name(N),
-    Started(false), TG(getDefaultTimerGroup()) {
-  TG->addTimer();
-}
-
-Timer::Timer(const std::string &N, TimerGroup &tg)
-  : Elapsed(0), UserTime(0), SystemTime(0), MemUsed(0), PeakMem(0), Name(N),
-    Started(false), TG(&tg) {
-  TG->addTimer();
-}
-
-Timer::Timer(const Timer &T) {
-  TG = T.TG;
-  if (TG) TG->addTimer();
-  operator=(T);
-}
-
-
-// Copy ctor, initialize with no TG member.
-Timer::Timer(bool, const Timer &T) {
-  TG = T.TG;     // Avoid assertion in operator=
-  operator=(T);  // Copy contents
-  TG = 0;
-}
-
-
-Timer::~Timer() {
-  if (TG) {
-    if (Started) {
-      Started = false;
-      TG->addTimerToPrint(*this);
-    }
-    TG->removeTimer();
-  }
-}
-
-static inline size_t getMemUsage() {
-  if (TrackSpace)
-    return sys::Process::GetMallocUsage();
-  return 0;
-}
-
-struct TimeRecord {
-  double Elapsed, UserTime, SystemTime;
-  ssize_t MemUsed;
-};
-
-static TimeRecord getTimeRecord(bool Start) {
-  TimeRecord Result;
-
-  sys::TimeValue now(0,0);
-  sys::TimeValue user(0,0);
-  sys::TimeValue sys(0,0);
-
-  ssize_t MemUsed = 0;
-  if (Start) {
-    MemUsed = getMemUsage();
-    sys::Process::GetTimeUsage(now,user,sys);
-  } else {
-    sys::Process::GetTimeUsage(now,user,sys);
-    MemUsed = getMemUsage();
-  }
-
-  Result.Elapsed  = now.seconds()  + now.microseconds()  / 1000000.0;
-  Result.UserTime = user.seconds() + user.microseconds() / 1000000.0;
-  Result.SystemTime  = sys.seconds()  + sys.microseconds()  / 1000000.0;
-  Result.MemUsed  = MemUsed;
-
-  return Result;
-}
-
-static ManagedStatic<std::vector<Timer*> > ActiveTimers;
-
-void Timer::startTimer() {
-  Started = true;
-  TimeRecord TR = getTimeRecord(true);
-  Elapsed    -= TR.Elapsed;
-  UserTime   -= TR.UserTime;
-  SystemTime -= TR.SystemTime;
-  MemUsed    -= TR.MemUsed;
-  PeakMemBase = TR.MemUsed;
-  ActiveTimers->push_back(this);
-}
-
-void Timer::stopTimer() {
-  TimeRecord TR = getTimeRecord(false);
-  Elapsed    += TR.Elapsed;
-  UserTime   += TR.UserTime;
-  SystemTime += TR.SystemTime;
-  MemUsed    += TR.MemUsed;
-
-  if (ActiveTimers->back() == this) {
-    ActiveTimers->pop_back();
-  } else {
-    std::vector<Timer*>::iterator I =
-      std::find(ActiveTimers->begin(), ActiveTimers->end(), this);
-    assert(I != ActiveTimers->end() && "stop but no startTimer?");
-    ActiveTimers->erase(I);
-  }
-}
-
-void Timer::sum(const Timer &T) {
-  Elapsed    += T.Elapsed;
-  UserTime   += T.UserTime;
-  SystemTime += T.SystemTime;
-  MemUsed    += T.MemUsed;
-  PeakMem    += T.PeakMem;
-}
-
-/// addPeakMemoryMeasurement - This method should be called whenever memory
-/// usage needs to be checked.  It adds a peak memory measurement to the
-/// currently active timers, which will be printed when the timer group prints
-///
-void Timer::addPeakMemoryMeasurement() {
-  size_t MemUsed = getMemUsage();
-
-  for (std::vector<Timer*>::iterator I = ActiveTimers->begin(),
-         E = ActiveTimers->end(); I != E; ++I)
-    (*I)->PeakMem = std::max((*I)->PeakMem, MemUsed-(*I)->PeakMemBase);
-}
-
-//===----------------------------------------------------------------------===//
-//   NamedRegionTimer Implementation
-//===----------------------------------------------------------------------===//
-
-static ManagedStatic<std::map<std::string, Timer> > NamedTimers;
-
-static Timer &getNamedRegionTimer(const std::string &Name) {
-  std::map<std::string, Timer>::iterator I = NamedTimers->lower_bound(Name);
-  if (I != NamedTimers->end() && I->first == Name)
-    return I->second;
-
-  return NamedTimers->insert(I, std::make_pair(Name, Timer(Name)))->second;
-}
-
-NamedRegionTimer::NamedRegionTimer(const std::string &Name)
-  : TimeRegion(getNamedRegionTimer(Name)) {}
-
-
-//===----------------------------------------------------------------------===//
-//   TimerGroup Implementation
-//===----------------------------------------------------------------------===//
-
-// printAlignedFP - Simulate the printf "%A.Bf" format, where A is the
-// TotalWidth size, and B is the AfterDec size.
-//
-static void printAlignedFP(double Val, unsigned AfterDec, unsigned TotalWidth,
-                           std::ostream &OS) {
-  assert(TotalWidth >= AfterDec+1 && "Bad FP Format!");
-  OS.width(TotalWidth-AfterDec-1);
-  char OldFill = OS.fill();
-  OS.fill(' ');
-  OS << (int)Val;  // Integer part;
-  OS << ".";
-  OS.width(AfterDec);
-  OS.fill('0');
-  unsigned ResultFieldSize = 1;
-  while (AfterDec--) ResultFieldSize *= 10;
-  OS << (int)(Val*ResultFieldSize) % ResultFieldSize;
-  OS.fill(OldFill);
-}
-
-static void printVal(double Val, double Total, std::ostream &OS) {
-  if (Total < 1e-7)   // Avoid dividing by zero...
-    OS << "        -----     ";
-  else {
-    OS << "  ";
-    printAlignedFP(Val, 4, 7, OS);
-    OS << " (";
-    printAlignedFP(Val*100/Total, 1, 5, OS);
-    OS << "%)";
-  }
-}
-
-void Timer::print(const Timer &Total, std::ostream &OS) {
-  if (Total.UserTime)
-    printVal(UserTime, Total.UserTime, OS);
-  if (Total.SystemTime)
-    printVal(SystemTime, Total.SystemTime, OS);
-  if (Total.getProcessTime())
-    printVal(getProcessTime(), Total.getProcessTime(), OS);
-  printVal(Elapsed, Total.Elapsed, OS);
-
-  OS << "  ";
-
-  if (Total.MemUsed) {
-    OS.width(9);
-    OS << MemUsed << "  ";
-  }
-  if (Total.PeakMem) {
-    if (PeakMem) {
-      OS.width(9);
-      OS << PeakMem << "  ";
-    } else
-      OS << "           ";
-  }
-  OS << Name << "\n";
-
-  Started = false;  // Once printed, don't print again
-}
-
-// GetLibSupportInfoOutputFile - Return a file stream to print our output on...
-std::ostream *
-llvm::GetLibSupportInfoOutputFile() {
-  std::string &LibSupportInfoOutputFilename = getLibSupportInfoOutputFilename();
-  if (LibSupportInfoOutputFilename.empty())
-    return cerr.stream();
-  if (LibSupportInfoOutputFilename == "-")
-    return cout.stream();
-
-  std::ostream *Result = new std::ofstream(LibSupportInfoOutputFilename.c_str(),
-                                           std::ios::app);
-  if (!Result->good()) {
-    cerr << "Error opening info-output-file '"
-         << LibSupportInfoOutputFilename << " for appending!\n";
-    delete Result;
-    return cerr.stream();
-  }
-  return Result;
-}
-
-
-void TimerGroup::removeTimer() {
-  if (--NumTimers == 0 && !TimersToPrint.empty()) { // Print timing report...
-    // Sort the timers in descending order by amount of time taken...
-    std::sort(TimersToPrint.begin(), TimersToPrint.end(),
-              std::greater<Timer>());
-
-    // Figure out how many spaces to indent TimerGroup name...
-    unsigned Padding = (80-Name.length())/2;
-    if (Padding > 80) Padding = 0;         // Don't allow "negative" numbers
-
-    std::ostream *OutStream = GetLibSupportInfoOutputFile();
-
-    ++NumTimers;
-    {  // Scope to contain Total timer... don't allow total timer to drop us to
-       // zero timers...
-      Timer Total("TOTAL");
-
-      for (unsigned i = 0, e = TimersToPrint.size(); i != e; ++i)
-        Total.sum(TimersToPrint[i]);
-
-      // Print out timing header...
-      *OutStream << "===" << std::string(73, '-') << "===\n"
-                 << std::string(Padding, ' ') << Name << "\n"
-                 << "===" << std::string(73, '-')
-                 << "===\n";
-
-      // If this is not an collection of ungrouped times, print the total time.
-      // Ungrouped timers don't really make sense to add up.  We still print the
-      // TOTAL line to make the percentages make sense.
-      if (this != DefaultTimerGroup) {
-        *OutStream << "  Total Execution Time: ";
-
-        printAlignedFP(Total.getProcessTime(), 4, 5, *OutStream);
-        *OutStream << " seconds (";
-        printAlignedFP(Total.getWallTime(), 4, 5, *OutStream);
-        *OutStream << " wall clock)\n";
-      }
-      *OutStream << "\n";
-
-      if (Total.UserTime)
-        *OutStream << "   ---User Time---";
-      if (Total.SystemTime)
-        *OutStream << "   --System Time--";
-      if (Total.getProcessTime())
-        *OutStream << "   --User+System--";
-      *OutStream << "   ---Wall Time---";
-      if (Total.getMemUsed())
-        *OutStream << "  ---Mem---";
-      if (Total.getPeakMem())
-        *OutStream << "  -PeakMem-";
-      *OutStream << "  --- Name ---\n";
-
-      // Loop through all of the timing data, printing it out...
-      for (unsigned i = 0, e = TimersToPrint.size(); i != e; ++i)
-        TimersToPrint[i].print(Total, *OutStream);
-
-      Total.print(Total, *OutStream);
-      *OutStream << std::endl;  // Flush output
-    }
-    --NumTimers;
-
-    TimersToPrint.clear();
-
-    if (OutStream != cerr.stream() && OutStream != cout.stream())
-      delete OutStream;   // Close the file...
-  }
-
-  // Delete default timer group!
-  if (NumTimers == 0 && this == DefaultTimerGroup) {
-    delete DefaultTimerGroup;
-    DefaultTimerGroup = 0;
-  }
-}
-
diff --git a/support/lib/System/Alarm.cpp b/support/lib/System/Alarm.cpp
deleted file mode 100644
index e0b7f72..0000000
--- a/support/lib/System/Alarm.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===- Alarm.cpp - Alarm Generation Support ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Alarm functionality 
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Alarm.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Alarm.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/Alarm.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemAlarm)
diff --git a/support/lib/System/Disassembler.cpp b/support/lib/System/Disassembler.cpp
deleted file mode 100644
index 4aec698..0000000
--- a/support/lib/System/Disassembler.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//===- lib/System/Disassembler.cpp ------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Anton Korobeynikov and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the necessary glue to call external disassembler
-// libraries.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"
-#include "llvm/System/Disassembler.h"
-
-#include <cassert>
-#include <iomanip>
-#include <string>
-#include <sstream>
-
-#if USE_UDIS86
-#include <udis86.h>
-#endif
-
-using namespace llvm;
-
-bool llvm::sys::hasDisassembler(void) 
-{
-#if defined (__i386__) || defined (__amd64__) || defined (__x86_64__)
-  // We have option to enable udis86 library.
-  return true;
-#else
-  return false;
-#endif
-}
-
-std::string llvm::sys::disassembleBuffer(uint8_t* start, size_t length,
-                                         uint64_t pc) {
-  std::stringstream res;
-
-#if defined (__i386__) || defined (__amd64__) || defined (__x86_64__)
-  unsigned bits;
-# if defined(__i386__)
-  bits = 32;
-# else
-  bits = 64;
-# endif
-  
-# if USE_UDIS86
-  ud_t ud_obj;
-   
-  ud_init(&ud_obj);
-  ud_set_input_buffer(&ud_obj, start, length);
-  ud_set_mode(&ud_obj, bits);
-  ud_set_pc(&ud_obj, pc);
-  ud_set_syntax(&ud_obj, UD_SYN_ATT);
-  
-  res << std::setbase(16)
-      << std::setw(bits/4);
-  
-  while (ud_disassemble(&ud_obj)) {
-    res << ud_insn_off(&ud_obj) << ":\t" << ud_insn_asm(&ud_obj) << "\n";
-  }
-# else
-  res << "No disassembler available. See configure help for options.\n";
-# endif
-  
-#else
-  res << "No disassembler available. See configure help for options.\n";
-#endif
-
-  return res.str();
-}
diff --git a/support/lib/System/DynamicLibrary.cpp b/support/lib/System/DynamicLibrary.cpp
deleted file mode 100644
index 8119348..0000000
--- a/support/lib/System/DynamicLibrary.cpp
+++ /dev/null
@@ -1,209 +0,0 @@
-//===-- DynamicLibrary.cpp - Runtime link/load libraries --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This header file implements the operating system DynamicLibrary concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/DynamicLibrary.h"
-#include "llvm/Config/config.h"
-#include <map>
-
-// Collection of symbol name/value pairs to be searched prior to any libraries.
-static std::map<std::string, void *> g_symbols;
-
-void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
-                                          void *symbolValue) {
-  g_symbols[symbolName] = symbolValue;
-}
-
-// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
-// license and special exception would cause all of LLVM to be placed under
-// the LGPL.  This is because the exception applies only when libtool is
-// used, and obviously libtool is not used with Visual Studio.  An entirely
-// separate implementation is provided in win32/DynamicLibrary.cpp.
-
-#ifdef LLVM_ON_WIN32
-
-#include "Win32/DynamicLibrary.inc"
-
-#else
-
-#include "ltdl.h"
-#include <cassert>
-using namespace llvm;
-using namespace llvm::sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-static inline void check_ltdl_initialization() {
-  static bool did_initialize_ltdl = false;
-  if (!did_initialize_ltdl) {
-    int Err = lt_dlinit();
-    Err = Err; // Silence warning.
-    assert(0 == Err && "Can't init the ltdl library");
-    did_initialize_ltdl = true;
-  }
-}
-
-static std::vector<lt_dlhandle> OpenedHandles;
-
-DynamicLibrary::DynamicLibrary() : handle(0) {
-  check_ltdl_initialization();
-
-  lt_dlhandle a_handle = lt_dlopen(0);
-
-  assert(a_handle == 0 || "Can't open program as dynamic library");
-
-  handle = a_handle;
-  OpenedHandles.push_back(a_handle);
-}
-
-/*
-DynamicLibrary::DynamicLibrary(const char*filename) : handle(0) {
-  check_ltdl_initialization();
-
-  lt_dlhandle a_handle = lt_dlopen(filename);
-
-  if (a_handle == 0)
-    a_handle = lt_dlopenext(filename);
-
-  if (a_handle == 0)
-    throw std::string("Can't open :") + filename + ": " + lt_dlerror();
-
-  handle = a_handle;
-  OpenedHandles.push_back(a_handle);
-}
-*/
-
-DynamicLibrary::~DynamicLibrary() {
-  lt_dlhandle a_handle = (lt_dlhandle) handle;
-  if (a_handle) {
-    lt_dlclose(a_handle);
-
-    for (std::vector<lt_dlhandle>::iterator I = OpenedHandles.begin(),
-         E = OpenedHandles.end(); I != E; ++I) {
-      if (*I == a_handle) {
-        // Note: don't use the swap/pop_back trick here. Order is important.
-        OpenedHandles.erase(I);
-        return;
-      }
-    }
-  }
-}
-
-bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
-                                            std::string *ErrMsg) {
-  check_ltdl_initialization();
-  lt_dlhandle a_handle = lt_dlopen(Filename);
-
-  if (a_handle == 0)
-    a_handle = lt_dlopenext(Filename);
-
-  if (a_handle == 0) {
-    if (ErrMsg)
-      *ErrMsg = std::string("Can't open :") +
-          (Filename ? Filename : "<current process>") + ": " + lt_dlerror();
-    return true;
-  }
-
-  lt_dlmakeresident(a_handle);
-
-  OpenedHandles.push_back(a_handle);
-  return false;
-}
-
-void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
-  check_ltdl_initialization();
-
-  // First check symbols added via AddSymbol().
-  std::map<std::string, void *>::iterator I = g_symbols.find(symbolName);
-  if (I != g_symbols.end())
-    return I->second;
-
-  // Now search the libraries.
-  for (std::vector<lt_dlhandle>::iterator I = OpenedHandles.begin(),
-       E = OpenedHandles.end(); I != E; ++I) {
-    lt_ptr ptr = lt_dlsym(*I, symbolName);
-    if (ptr)
-      return ptr;
-  }
-
-  // If this is darwin, it has some funky issues, try to solve them here.  Some
-  // important symbols are marked 'private external' which doesn't allow
-  // SearchForAddressOfSymbol to find them.  As such, we special case them here,
-  // there is only a small handful of them.
-
-#ifdef __APPLE__
-#define EXPLICIT_SYMBOL(SYM) \
-   extern void *SYM; if (!strcmp(symbolName, #SYM)) return &SYM
-  {
-    EXPLICIT_SYMBOL(__ashldi3);
-    EXPLICIT_SYMBOL(__ashrdi3);
-    EXPLICIT_SYMBOL(__cmpdi2);
-    EXPLICIT_SYMBOL(__divdi3);
-    EXPLICIT_SYMBOL(__eprintf);
-    EXPLICIT_SYMBOL(__fixdfdi);
-    EXPLICIT_SYMBOL(__fixsfdi);
-    EXPLICIT_SYMBOL(__fixunsdfdi);
-    EXPLICIT_SYMBOL(__fixunssfdi);
-    EXPLICIT_SYMBOL(__floatdidf);
-    EXPLICIT_SYMBOL(__floatdisf);
-    EXPLICIT_SYMBOL(__lshrdi3);
-    EXPLICIT_SYMBOL(__moddi3);
-    EXPLICIT_SYMBOL(__udivdi3);
-    EXPLICIT_SYMBOL(__umoddi3);
-  }
-#undef EXPLICIT_SYMBOL
-#endif
-
-// This macro returns the address of a well-known, explicit symbol
-#define EXPLICIT_SYMBOL(SYM) \
-   if (!strcmp(symbolName, #SYM)) return &SYM
-
-// On linux we have a weird situation. The stderr/out/in symbols are both
-// macros and global variables because of standards requirements. So, we 
-// boldly use the EXPLICIT_SYMBOL macro without checking for a #define first.
-#if defined(__linux__)
-  {
-    EXPLICIT_SYMBOL(stderr);
-    EXPLICIT_SYMBOL(stdout);
-    EXPLICIT_SYMBOL(stdin);
-  }
-#else
-  // For everything else, we want to check to make sure the symbol isn't defined
-  // as a macro before using EXPLICIT_SYMBOL.
-  {
-#ifndef stdin
-    EXPLICIT_SYMBOL(stdin);
-#endif
-#ifndef stdout
-    EXPLICIT_SYMBOL(stdout);
-#endif
-#ifndef stderr
-    EXPLICIT_SYMBOL(stderr);
-#endif
-  }
-#endif
-#undef EXPLICIT_SYMBOL
-
-  return 0;
-}
-
-void *DynamicLibrary::GetAddressOfSymbol(const char *symbolName) {
-  assert(handle != 0 && "Invalid DynamicLibrary handle");
-  return lt_dlsym((lt_dlhandle) handle, symbolName);
-}
-
-#endif // LLVM_ON_WIN32
-
-DEFINING_FILE_FOR(SystemDynamicLibrary)
diff --git a/support/lib/System/IncludeFile.cpp b/support/lib/System/IncludeFile.cpp
deleted file mode 100644
index 2ba9595..0000000
--- a/support/lib/System/IncludeFile.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===- lib/System/IncludeFile.cpp - Ensure Linking Of Implementation -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the IncludeFile constructor.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/IncludeFile.h"
-
-using namespace llvm;
-
-// This constructor is used to ensure linking of other modules. See the
-// llvm/System/IncludeFile.h header for details. 
-IncludeFile::IncludeFile(void*) {}
diff --git a/support/lib/System/LICENSE.TXT b/support/lib/System/LICENSE.TXT
deleted file mode 100644
index f569da2..0000000
--- a/support/lib/System/LICENSE.TXT
+++ /dev/null
@@ -1,6 +0,0 @@
-LLVM System Interface Library
--------------------------------------------------------------------------------
-The LLVM System Interface Library is licensed under the Illinois Open Source 
-License and has the following additional copyright:
-
-Copyright (C) 2004 eXtensible Systems, Inc.
diff --git a/support/lib/System/Makefile b/support/lib/System/Makefile
deleted file mode 100644
index e12e2aa..0000000
--- a/support/lib/System/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- lib/System/Makefile ---------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by Reid Spencer and is distributed under the 
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMSystem
-GOAL := archive
-
-EXTRA_DIST = Unix Win32 README.txt
-
-include $(LEVEL)/Makefile.config
-
-CompileCommonOpts := $(filter-out -pedantic,$(CompileCommonOpts))
-CompileCommonOpts := $(filter-out -Wno-long-long,$(CompileCommonOpts))
diff --git a/support/lib/System/MappedFile.cpp b/support/lib/System/MappedFile.cpp
deleted file mode 100644
index 41b5946..0000000
--- a/support/lib/System/MappedFile.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===- MappedFile.cpp - MappedFile Support ----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the mapped file concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/MappedFile.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/MappedFile.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/MappedFile.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemMappedFile)
diff --git a/support/lib/System/Memory.cpp b/support/lib/System/Memory.cpp
deleted file mode 100644
index 3788abe..0000000
--- a/support/lib/System/Memory.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===- Memory.cpp - Memory Handling Support ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines some helpful functions for allocating memory and dealing
-// with memory mapped files
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Memory.h"
-#include "llvm/Config/config.h"
-#include "llvm/System/IncludeFile.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Memory.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/Memory.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemMemory)
diff --git a/support/lib/System/Mutex.cpp b/support/lib/System/Mutex.cpp
deleted file mode 100644
index a0fd417..0000000
--- a/support/lib/System/Mutex.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-//===- Mutex.cpp - Mutual Exclusion Lock ------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the llvm::sys::Mutex class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"
-#include "llvm/System/Mutex.h"
-#include "llvm/System/IncludeFile.h"
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-#if !defined(ENABLE_THREADS) || ENABLE_THREADS == 0
-// Define all methods as no-ops if threading is explicitly disabled
-namespace llvm {
-using namespace sys;
-Mutex::Mutex( bool recursive) { }
-Mutex::~Mutex() { }
-bool Mutex::acquire() { return true; }
-bool Mutex::release() { return true; }
-bool Mutex::tryacquire() { return true; }
-}
-#else
-
-#if defined(HAVE_PTHREAD_H) && defined(HAVE_PTHREAD_MUTEX_LOCK)
-
-#include <cassert>
-#include <pthread.h>
-#include <stdlib.h>
-
-namespace llvm {
-using namespace sys;
-
-
-// This variable is useful for situations where the pthread library has been
-// compiled with weak linkage for its interface symbols. This allows the
-// threading support to be turned off by simply not linking against -lpthread.
-// In that situation, the value of pthread_mutex_init will be 0 and
-// consequently pthread_enabled will be false. In such situations, all the
-// pthread operations become no-ops and the functions all return false. If
-// pthread_mutex_init does have an address, then mutex support is enabled.
-// Note: all LLVM tools will link against -lpthread if its available since it
-//       is configured into the LIBS variable.
-// Note: this line of code generates a warning if pthread_mutex_init is not
-//       declared with weak linkage. It's safe to ignore the warning.
-static const bool pthread_enabled = true;
-
-// Construct a Mutex using pthread calls
-Mutex::Mutex( bool recursive)
-  : data_(0)
-{
-  if (pthread_enabled)
-  {
-    // Declare the pthread_mutex data structures
-    pthread_mutex_t* mutex =
-      static_cast<pthread_mutex_t*>(malloc(sizeof(pthread_mutex_t)));
-    pthread_mutexattr_t attr;
-
-    // Initialize the mutex attributes
-    int errorcode = pthread_mutexattr_init(&attr);
-    assert(errorcode == 0);
-
-    // Initialize the mutex as a recursive mutex, if requested, or normal
-    // otherwise.
-    int kind = ( recursive  ? PTHREAD_MUTEX_RECURSIVE : PTHREAD_MUTEX_NORMAL );
-    errorcode = pthread_mutexattr_settype(&attr, kind);
-    assert(errorcode == 0);
-
-#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
-    // Make it a process local mutex
-    errorcode = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
-#endif
-
-    // Initialize the mutex
-    errorcode = pthread_mutex_init(mutex, &attr);
-    assert(errorcode == 0);
-
-    // Destroy the attributes
-    errorcode = pthread_mutexattr_destroy(&attr);
-    assert(errorcode == 0);
-
-    // Assign the data member
-    data_ = mutex;
-  }
-}
-
-// Destruct a Mutex
-Mutex::~Mutex()
-{
-  if (pthread_enabled)
-  {
-    pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
-    assert(mutex != 0);
-    pthread_mutex_destroy(mutex);
-    assert(mutex != 0);
-  }
-}
-
-bool
-Mutex::acquire()
-{
-  if (pthread_enabled)
-  {
-    pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
-    assert(mutex != 0);
-
-    int errorcode = pthread_mutex_lock(mutex);
-    return errorcode == 0;
-  }
-  return false;
-}
-
-bool
-Mutex::release()
-{
-  if (pthread_enabled)
-  {
-    pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
-    assert(mutex != 0);
-
-    int errorcode = pthread_mutex_unlock(mutex);
-    return errorcode == 0;
-  }
-  return false;
-}
-
-bool
-Mutex::tryacquire()
-{
-  if (pthread_enabled)
-  {
-    pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
-    assert(mutex != 0);
-
-    int errorcode = pthread_mutex_trylock(mutex);
-    return errorcode == 0;
-  }
-  return false;
-}
-
-}
-
-#elif defined(LLVM_ON_UNIX)
-#include "Unix/Mutex.inc"
-#elif defined( LLVM_ON_WIN32)
-#include "Win32/Mutex.inc"
-#else
-#warning Neither LLVM_ON_UNIX nor LLVM_ON_WIN32 was set in System/Mutex.cpp
-#endif
-#endif
-
-DEFINING_FILE_FOR(SystemMutex)
diff --git a/support/lib/System/Path.cpp b/support/lib/System/Path.cpp
deleted file mode 100644
index caf5789..0000000
--- a/support/lib/System/Path.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//===-- Path.cpp - Implement OS Path Concept --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This header file implements the operating system Path concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Path.h"
-#include "llvm/Config/config.h"
-#include <cassert>
-#include <ostream>
-using namespace llvm;
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-std::ostream& llvm::operator<<(std::ostream &strm, const sys::Path &aPath) {
-  strm << aPath.toString();
-  return strm;
-}
-
-Path
-Path::GetLLVMConfigDir() {
-  Path result;
-#ifdef LLVM_ETCDIR
-  if (result.set(LLVM_ETCDIR))
-    return result;
-#endif
-  return GetLLVMDefaultConfigDir();
-}
-
-LLVMFileType
-sys::IdentifyFileType(const char*magic, unsigned length) {
-  assert(magic && "Invalid magic number string");
-  assert(length >=4 && "Invalid magic number length");
-  switch (magic[0]) {
-    case 'B':
-      if (magic[1] == 'C' && magic[2] == (char)0xC0 && magic[3] == (char)0xDE)
-        return Bitcode_FileType;
-      break;
-    case '!':
-      if (length >= 8)
-        if (memcmp(magic,"!<arch>\n",8) == 0)
-          return Archive_FileType;
-      break;
-      
-    case '\177':
-      if (magic[1] == 'E' && magic[2] == 'L' && magic[3] == 'F') {
-        if (length >= 18 && magic[17] == 0)
-          switch (magic[16]) {
-            default: break;
-            case 1: return ELF_Relocatable_FileType;
-            case 2: return ELF_Executable_FileType;
-            case 3: return ELF_SharedObject_FileType;
-            case 4: return ELF_Core_FileType;
-          }
-      }
-      break;
-
-    case 0xCA:
-      // This is complicated by an overlap with Java class files. 
-      // See the Mach-O section in /usr/share/file/magic for details.
-      if (magic[1] == char(0xFE) && magic[2] == char(0xBA) && 
-          magic[3] == char(0xBE)) {
-        return Mach_O_DynamicallyLinkedSharedLib_FileType;
-        
-        // FIXME: How does this work?
-        if (length >= 14 && magic[13] == 0)
-          switch (magic[12]) {
-            default: break;
-            case 1: return Mach_O_Object_FileType;
-            case 2: return Mach_O_Executable_FileType;
-            case 3: return Mach_O_FixedVirtualMemorySharedLib_FileType;
-            case 4: return Mach_O_Core_FileType;
-            case 5: return Mach_O_PreloadExectuable_FileType;
-            case 6: return Mach_O_DynamicallyLinkedSharedLib_FileType;
-            case 7: return Mach_O_DynamicLinker_FileType;
-            case 8: return Mach_O_Bundle_FileType;
-            case 9: return Mach_O_DynamicallyLinkedSharedLibStub_FileType;
-          }
-      }
-      break;
-
-    case 0xF0: // PowerPC Windows
-    case 0x83: // Alpha 32-bit
-    case 0x84: // Alpha 64-bit
-    case 0x66: // MPS R4000 Windows
-    case 0x50: // mc68K
-    case 0x4c: // 80386 Windows
-      if (magic[1] == 0x01)
-        return COFF_FileType;
-
-    case 0x90: // PA-RISC Windows
-    case 0x68: // mc68K Windows
-      if (magic[1] == 0x02)
-        return COFF_FileType;
-      break;
-
-    default:
-      break;
-  }
-  return Unknown_FileType;
-}
-
-bool
-Path::isArchive() const {
-  if (canRead())
-    return hasMagicNumber("!<arch>\012");
-  return false;
-}
-
-bool
-Path::isDynamicLibrary() const {
-  if (canRead()) {
-    std::string Magic;
-    if (getMagicNumber(Magic, 64))
-      switch (IdentifyFileType(Magic.c_str(), Magic.length())) {
-        default: return false;
-        case Mach_O_FixedVirtualMemorySharedLib_FileType:
-        case Mach_O_DynamicallyLinkedSharedLib_FileType:
-        case Mach_O_DynamicallyLinkedSharedLibStub_FileType:
-        case ELF_SharedObject_FileType:
-        case COFF_FileType:  return true;
-      }
-  }
-  return false;
-}
-
-Path
-Path::FindLibrary(std::string& name) {
-  std::vector<sys::Path> LibPaths;
-  GetSystemLibraryPaths(LibPaths);
-  for (unsigned i = 0; i < LibPaths.size(); ++i) {
-    sys::Path FullPath(LibPaths[i]);
-    FullPath.appendComponent("lib" + name + LTDL_SHLIB_EXT);
-    if (FullPath.isDynamicLibrary())
-      return FullPath;
-    FullPath.eraseSuffix();
-    FullPath.appendSuffix("a");
-    if (FullPath.isArchive())
-      return FullPath;
-  }
-  return sys::Path();
-}
-
-std::string Path::GetDLLSuffix() {
-  return LTDL_SHLIB_EXT;
-}
-
-bool
-Path::isBitcodeFile() const {
-  std::string actualMagic;
-  if (!getMagicNumber(actualMagic, 4))
-    return false;
-  return actualMagic == "BC\xC0\xDE";
-}
-
-bool Path::hasMagicNumber(const std::string &Magic) const {
-  std::string actualMagic;
-  if (getMagicNumber(actualMagic, Magic.size()))
-    return Magic == actualMagic;
-  return false;
-}
-
-
-
-// Include the truly platform-specific parts of this class.
-#if defined(LLVM_ON_UNIX)
-#include "Unix/Path.inc"
-#endif
-#if defined(LLVM_ON_WIN32)
-#include "Win32/Path.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemPath)
diff --git a/support/lib/System/Process.cpp b/support/lib/System/Process.cpp
deleted file mode 100644
index d69f78e..0000000
--- a/support/lib/System/Process.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===-- Process.cpp - Implement OS Process Concept --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This header file implements the operating system Process concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Process.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Process.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/Process.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemProcess)
diff --git a/support/lib/System/Program.cpp b/support/lib/System/Program.cpp
deleted file mode 100644
index e91a3d5..0000000
--- a/support/lib/System/Program.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===-- Program.cpp - Implement OS Program Concept --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This header file implements the operating system Program concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Program.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Program.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/Program.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemProgram)
diff --git a/support/lib/System/README.txt b/support/lib/System/README.txt
deleted file mode 100644
index eacb200..0000000
--- a/support/lib/System/README.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-Design Of lib/System
-====================
-
-The software in this directory is designed to completely shield LLVM from any
-and all operating system specific functionality. It is not intended to be a
-complete operating system wrapper (such as ACE), but only to provide the
-functionality necessary to support LLVM.
-
-The software located here, of necessity, has very specific and stringent design
-rules. Violation of these rules means that cracks in the shield could form and
-the primary goal of the library is defeated. By consistently using this library,
-LLVM becomes more easily ported to new platforms since the only thing requiring 
-porting is this library.
-
-Complete documentation for the library can be found in the file:
-  llvm/docs/SystemLibrary.html 
-or at this URL:
-  http://llvm.org/docs/SystemLibrary.html
-
-While we recommend that you read the more detailed documentation, for the 
-impatient, here's a high level summary of the library's requirements.
-
- 1. No system header files are to be exposed through the interface.
- 2. Std C++ and Std C header files are okay to be exposed through the interface.
- 3. No exposed system-specific functions.
- 4. No exposed system-specific data.
- 5. Data in lib/System classes must use only simple C++ intrinsic types.
- 6. Errors are handled by returning "true" and setting an optional std::string
- 7. Library must not throw any exceptions, period.
- 8. Interface functions must not have throw() specifications.
- 9. No duplicate function impementations are permitted within an operating
-    system class.
-
-To accomplish these requirements, the library has numerous design criteria that 
-must be satisfied. Here's a high level summary of the library's design criteria:
-
- 1. No unused functionality (only what LLVM needs)
- 2. High-Level Interfaces
- 3. Use Opaque Classes
- 4. Common Implementations</a></li>
- 5. Multiple Implementations</a></li>
- 6. Minimize Memory Allocation</a></li>
- 7. No Virtual Methods
diff --git a/support/lib/System/Signals.cpp b/support/lib/System/Signals.cpp
deleted file mode 100644
index 229dd14..0000000
--- a/support/lib/System/Signals.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===- Signals.cpp - Signal Handling support --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines some helpful functions for dealing with the possibility of
-// Unix signals occuring while your program is running.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/Signals.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//===          independent code.
-//===----------------------------------------------------------------------===//
-
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Signals.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/Signals.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemSignals)
diff --git a/support/lib/System/TimeValue.cpp b/support/lib/System/TimeValue.cpp
deleted file mode 100644
index 8ecfd22..0000000
--- a/support/lib/System/TimeValue.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This file implements the operating system TimeValue concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/System/TimeValue.h"
-#include "llvm/Config/config.h"
-
-namespace llvm {
-using namespace sys;
-
-const TimeValue TimeValue::MinTime       = TimeValue ( INT64_MIN,0 );
-const TimeValue TimeValue::MaxTime       = TimeValue ( INT64_MAX,0 );
-const TimeValue TimeValue::ZeroTime      = TimeValue ( 0,0 );
-const TimeValue TimeValue::PosixZeroTime = TimeValue ( -946684800,0 );
-const TimeValue TimeValue::Win32ZeroTime = TimeValue ( -12591158400ULL,0 );
-
-void
-TimeValue::normalize( void ) {
-  if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
-    do {
-      seconds_++;
-      nanos_ -= NANOSECONDS_PER_SECOND;
-    } while ( nanos_ >= NANOSECONDS_PER_SECOND );
-  } else if (nanos_ <= -NANOSECONDS_PER_SECOND ) {
-    do {
-      seconds_--;
-      nanos_ += NANOSECONDS_PER_SECOND;
-    } while (nanos_ <= -NANOSECONDS_PER_SECOND);
-  }
-
-  if (seconds_ >= 1 && nanos_ < 0) {
-    seconds_--;
-    nanos_ += NANOSECONDS_PER_SECOND;
-  } else if (seconds_ < 0 && nanos_ > 0) {
-    seconds_++;
-    nanos_ -= NANOSECONDS_PER_SECOND;
-  }
-}
-
-}
-
-/// Include the platform specific portion of TimeValue class
-#ifdef LLVM_ON_UNIX
-#include "Unix/TimeValue.inc"
-#endif
-#ifdef LLVM_ON_WIN32
-#include "Win32/TimeValue.inc"
-#endif
-
-DEFINING_FILE_FOR(SystemTimeValue)
diff --git a/support/lib/System/Unix/Alarm.inc b/support/lib/System/Unix/Alarm.inc
deleted file mode 100644
index 1480802..0000000
--- a/support/lib/System/Unix/Alarm.inc
+++ /dev/null
@@ -1,68 +0,0 @@
-//===-- Alarm.inc - Implement Unix Alarm Support --------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the UNIX Alarm support.
-//
-//===----------------------------------------------------------------------===//
-
-#include <signal.h>
-#include <unistd.h>
-#include <cassert>
-using namespace llvm;
-
-/// AlarmCancelled - This flag is set by the SIGINT signal handler if the
-/// user presses CTRL-C.
-static volatile bool AlarmCancelled = false;
-
-/// AlarmTriggered - This flag is set by the SIGALRM signal handler if the 
-/// alarm was triggered.
-static volatile bool AlarmTriggered = false;
-
-/// NestedSOI - Sanity check.  Alarms cannot be nested or run in parallel.  
-/// This ensures that they never do.
-static bool NestedSOI = false;
-
-static RETSIGTYPE SigIntHandler(int Sig) {
-  AlarmCancelled = true;
-  signal(SIGINT, SigIntHandler);
-}
-
-static RETSIGTYPE SigAlarmHandler(int Sig) {
-  AlarmTriggered = true;
-}
-
-static void (*OldSigIntHandler) (int);
-
-void sys::SetupAlarm(unsigned seconds) {
-  assert(!NestedSOI && "sys::SetupAlarm calls cannot be nested!");
-  NestedSOI = true;
-  AlarmCancelled = false;
-  AlarmTriggered = false;
-  ::signal(SIGALRM, SigAlarmHandler);
-  OldSigIntHandler = ::signal(SIGINT, SigIntHandler);
-  ::alarm(seconds);
-}
-
-void sys::TerminateAlarm() {
-  assert(NestedSOI && "sys::TerminateAlarm called without sys::SetupAlarm!");
-  ::alarm(0);
-  ::signal(SIGALRM, SIG_DFL);
-  ::signal(SIGINT, OldSigIntHandler);
-  AlarmCancelled = false;
-  AlarmTriggered = false;
-  NestedSOI = false;
-}
-
-int sys::AlarmStatus() {
-  if (AlarmCancelled)
-    return -1;
-  if (AlarmTriggered)
-    return 1;
-  return 0;
-}
diff --git a/support/lib/System/Unix/MappedFile.inc b/support/lib/System/Unix/MappedFile.inc
deleted file mode 100644
index 91b92ec..0000000
--- a/support/lib/System/Unix/MappedFile.inc
+++ /dev/null
@@ -1,154 +0,0 @@
-//===- Unix/MappedFile.cpp - Unix MappedFile Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the generic Unix implementation of the MappedFile concept.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-#include "Unix.h"
-#include "llvm/System/Process.h"
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-namespace llvm {
-using namespace sys;
-
-struct sys::MappedFileInfo {
-  int   FD;
-  off_t Size;
-};
-
-bool MappedFile::initialize(std::string* ErrMsg) {
-  int mode = 0;
-  if (options_ & READ_ACCESS) 
-    if (options_ & WRITE_ACCESS)
-      mode = O_RDWR;
-    else
-      mode = O_RDONLY;
-  else if (options_ & WRITE_ACCESS)
-    mode = O_WRONLY;
-
-  int FD = ::open(path_.c_str(), mode);
-  if (FD < 0) {
-    MakeErrMsg(ErrMsg, "can't open file '" + path_.toString() + "'");
-    return true;
-  } 
-  const FileStatus *Status = path_.getFileStatus(false, ErrMsg);
-  if (!Status) {
-    ::close(FD);
-    return true;
-  }
-  info_ = new MappedFileInfo;
-  info_->FD = FD;
-  info_->Size = Status->getSize();
-  return false;
-}
-
-void MappedFile::terminate() {
-  assert(info_ && "MappedFile not initialized");
-  ::close(info_->FD);
-  delete info_;
-  info_ = 0;
-}
-
-void MappedFile::unmap() {
-  assert(info_ && "MappedFile not initialized");
-  if (isMapped()) {
-    if (options_ & WRITE_ACCESS)
-      ::msync(base_, info_->Size, MS_SYNC);
-    ::munmap(base_, info_->Size);
-    base_ = 0;  // Mark this as non-mapped.
-  }
-}
-
-void* MappedFile::map(std::string* ErrMsg) {
-  assert(info_ && "MappedFile not initialized");
-  if (!isMapped()) {
-    int prot = PROT_NONE;
-    int flags = 0;
-#ifdef MAP_FILE
-    flags |= MAP_FILE;
-#endif
-    if (options_ == 0) {
-      prot = PROT_READ;
-      flags = MAP_PRIVATE;
-    } else {
-      if (options_ & READ_ACCESS)
-        prot |= PROT_READ;
-      if (options_ & WRITE_ACCESS)
-        prot |= PROT_WRITE;
-      if (options_ & EXEC_ACCESS)
-        prot |= PROT_EXEC;
-      if (options_ & SHARED_MAPPING)
-        flags |= MAP_SHARED;
-      else
-        flags |= MAP_PRIVATE;
-    }
-    size_t map_size = ((info_->Size / Process::GetPageSize())+1) *
-      Process::GetPageSize();
-
-    base_ = ::mmap(0, map_size, prot, flags, info_->FD, 0);
-    if (base_ == MAP_FAILED) {
-      MakeErrMsg(ErrMsg, "Can't map file:" + path_.toString());
-      return 0;
-    }
-  }
-  return base_;
-}
-
-size_t MappedFile::size() const {
-  assert(info_ && "MappedFile not initialized");
-  return info_->Size;
-}
-
-bool MappedFile::size(size_t new_size, std::string* ErrMsg) {
-  assert(info_ && "MappedFile not initialized");
-
-  // Take the mapping out of memory
-  this->unmap();
-
-  // Adjust the current size to a page boundary
-  size_t cur_size = ((info_->Size / Process::GetPageSize())+1) *
-    Process::GetPageSize();
-
-  // Adjust the new_size to a page boundary
-  new_size = ((new_size / Process::GetPageSize())+1) *
-    Process::GetPageSize();
-
-  // If the file needs to be extended
-  if (new_size > cur_size) {
-    // Ensure we can allocate at least the idodes necessary to handle the
-    // file size requested. 
-    if ((off_t)-1 == ::lseek(info_->FD, new_size, SEEK_SET))
-      return MakeErrMsg(ErrMsg, "Can't lseek: ");
-    if (-1 == ::write(info_->FD, "\0", 1))
-      return MakeErrMsg(ErrMsg, "Can't write: ");
-  }
-
-  // Put the mapping back into memory.
-  return this->map(ErrMsg);
-}
-
-}
-
diff --git a/support/lib/System/Unix/Memory.inc b/support/lib/System/Unix/Memory.inc
deleted file mode 100644
index d040416..0000000
--- a/support/lib/System/Unix/Memory.inc
+++ /dev/null
@@ -1,76 +0,0 @@
-//===- Unix/Memory.cpp - Generic UNIX System Configuration ------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines some functions for various memory management utilities.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Unix.h"
-#include "llvm/System/Process.h"
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-/// AllocateRWXMemory - Allocate a slab of memory with read/write/execute
-/// permissions.  This is typically used for JIT applications where we want
-/// to emit code to the memory then jump to it.  Getting this type of memory
-/// is very OS specific.
-///
-llvm::sys::MemoryBlock 
-llvm::sys::Memory::AllocateRWX(unsigned NumBytes, const MemoryBlock* NearBlock,
-                               std::string *ErrMsg) {
-  if (NumBytes == 0) return MemoryBlock();
-
-  long pageSize = Process::GetPageSize();
-  unsigned NumPages = (NumBytes+pageSize-1)/pageSize;
-
-  int fd = -1;
-#ifdef NEED_DEV_ZERO_FOR_MMAP
-  static int zero_fd = open("/dev/zero", O_RDWR);
-  if (zero_fd == -1) {
-    MakeErrMsg(ErrMsg, "Can't open /dev/zero device");
-    return MemoryBlock();
-  }
-  fd = zero_fd;
-#endif
-
-  int flags = MAP_PRIVATE |
-#ifdef HAVE_MMAP_ANONYMOUS
-  MAP_ANONYMOUS
-#else
-  MAP_ANON
-#endif
-  ;
-
-  void* start = NearBlock ? (unsigned char*)NearBlock->base() + 
-                            NearBlock->size() : 0;
-
-  void *pa = ::mmap(start, pageSize*NumPages, PROT_READ|PROT_WRITE|PROT_EXEC,
-                    flags, fd, 0);
-  if (pa == MAP_FAILED) {
-    if (NearBlock) //Try again without a near hint
-      return AllocateRWX(NumBytes, 0);
-
-    MakeErrMsg(ErrMsg, "Can't allocate RWX Memory");
-    return MemoryBlock();
-  }
-  MemoryBlock result;
-  result.Address = pa;
-  result.Size = NumPages*pageSize;
-  return result;
-}
-
-bool llvm::sys::Memory::ReleaseRWX(MemoryBlock &M, std::string *ErrMsg) {
-  if (M.Address == 0 || M.Size == 0) return false;
-  if (0 != ::munmap(M.Address, M.Size))
-    return MakeErrMsg(ErrMsg, "Can't release RWX Memory");
-  return false;
-}
-
diff --git a/support/lib/System/Unix/Mutex.inc b/support/lib/System/Unix/Mutex.inc
deleted file mode 100644
index d0984a4..0000000
--- a/support/lib/System/Unix/Mutex.inc
+++ /dev/null
@@ -1,49 +0,0 @@
-//===- llvm/System/Unix/Mutex.inc - Unix Mutex Implementation ---*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Unix specific (non-pthread) Mutex class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-namespace llvm
-{
-using namespace sys;
-
-Mutex::Mutex( bool recursive)
-{
-}
-
-Mutex::~Mutex()
-{
-}
-
-bool 
-Mutex::acquire()
-{
-  return true;
-}
-
-bool 
-Mutex::release()
-{
-  return true;
-}
-
-bool 
-Mutex::tryacquire( void )
-{
-  return true;
-}
-
-}
diff --git a/support/lib/System/Unix/Path.inc b/support/lib/System/Unix/Path.inc
deleted file mode 100644
index e4916ba..0000000
--- a/support/lib/System/Unix/Path.inc
+++ /dev/null
@@ -1,721 +0,0 @@
-//===- llvm/System/Unix/Path.cpp - Unix Path Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Unix specific portion of the Path class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/alloca.h"
-#include "Unix.h"
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#if HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#if HAVE_UTIME_H
-#include <utime.h>
-#endif
-#if HAVE_TIME_H
-#include <time.h>
-#endif
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-# endif
-#endif
-
-// Put in a hack for Cygwin which falsely reports that the mkdtemp function
-// is available when it is not.
-#ifdef __CYGWIN__
-# undef HAVE_MKDTEMP
-#endif
-
-namespace {
-inline bool lastIsSlash(const std::string& path) {
-  return !path.empty() && path[path.length() - 1] == '/';
-}
-
-}
-
-namespace llvm {
-using namespace sys;
-
-bool 
-Path::isValid() const {
-  // Check some obvious things
-  if (path.empty()) 
-    return false;
-  else if (path.length() >= MAXPATHLEN)
-    return false;
-
-  // Check that the characters are ascii chars
-  size_t len = path.length();
-  unsigned i = 0;
-  while (i < len && isascii(path[i])) 
-    ++i;
-  return i >= len; 
-}
-
-bool 
-Path::isAbsolute() const {
-  if (path.empty())
-    return false;
-  return path[0] == '/';
-} 
-Path
-Path::GetRootDirectory() {
-  Path result;
-  result.set("/");
-  return result;
-}
-
-Path
-Path::GetTemporaryDirectory(std::string* ErrMsg ) {
-#if defined(HAVE_MKDTEMP)
-  // The best way is with mkdtemp but that's not available on many systems, 
-  // Linux and FreeBSD have it. Others probably won't.
-  char pathname[MAXPATHLEN];
-  strcpy(pathname,"/tmp/llvm_XXXXXX");
-  if (0 == mkdtemp(pathname)) {
-    MakeErrMsg(ErrMsg, 
-      std::string(pathname) + ": can't create temporary directory");
-    return Path();
-  }
-  Path result;
-  result.set(pathname);
-  assert(result.isValid() && "mkdtemp didn't create a valid pathname!");
-  return result;
-#elif defined(HAVE_MKSTEMP)
-  // If no mkdtemp is available, mkstemp can be used to create a temporary file
-  // which is then removed and created as a directory. We prefer this over
-  // mktemp because of mktemp's inherent security and threading risks. We still
-  // have a slight race condition from the time the temporary file is created to
-  // the time it is re-created as a directoy. 
-  char pathname[MAXPATHLEN];
-  strcpy(pathname, "/tmp/llvm_XXXXXX");
-  int fd = 0;
-  if (-1 == (fd = mkstemp(pathname))) {
-    MakeErrMsg(ErrMsg, 
-      std::string(pathname) + ": can't create temporary directory");
-    return Path();
-  }
-  ::close(fd);
-  ::unlink(pathname); // start race condition, ignore errors
-  if (-1 == ::mkdir(pathname, S_IRWXU)) { // end race condition
-    MakeErrMsg(ErrMsg, 
-      std::string(pathname) + ": can't create temporary directory");
-    return Path();
-  }
-  Path result;
-  result.set(pathname);
-  assert(result.isValid() && "mkstemp didn't create a valid pathname!");
-  return result;
-#elif defined(HAVE_MKTEMP)
-  // If a system doesn't have mkdtemp(3) or mkstemp(3) but it does have
-  // mktemp(3) then we'll assume that system (e.g. AIX) has a reasonable
-  // implementation of mktemp(3) and doesn't follow BSD 4.3's lead of replacing
-  // the XXXXXX with the pid of the process and a letter. That leads to only
-  // twenty six temporary files that can be generated.
-  char pathname[MAXPATHLEN];
-  strcpy(pathname, "/tmp/llvm_XXXXXX");
-  char *TmpName = ::mktemp(pathname);
-  if (TmpName == 0) {
-    MakeErrMsg(ErrMsg, 
-      std::string(TmpName) + ": can't create unique directory name");
-    return Path();
-  }
-  if (-1 == ::mkdir(TmpName, S_IRWXU)) {
-    MakeErrMsg(ErrMsg, 
-        std::string(TmpName) + ": can't create temporary directory");
-    return Path();
-  }
-  Path result;
-  result.set(TmpName);
-  assert(result.isValid() && "mktemp didn't create a valid pathname!");
-  return result;
-#else
-  // This is the worst case implementation. tempnam(3) leaks memory unless its
-  // on an SVID2 (or later) system. On BSD 4.3 it leaks. tmpnam(3) has thread
-  // issues. The mktemp(3) function doesn't have enough variability in the
-  // temporary name generated. So, we provide our own implementation that 
-  // increments an integer from a random number seeded by the current time. This
-  // should be sufficiently unique that we don't have many collisions between
-  // processes. Generally LLVM processes don't run very long and don't use very
-  // many temporary files so this shouldn't be a big issue for LLVM.
-  static time_t num = ::time(0);
-  char pathname[MAXPATHLEN];
-  do {
-    num++;
-    sprintf(pathname, "/tmp/llvm_%010u", unsigned(num));
-  } while ( 0 == access(pathname, F_OK ) );
-  if (-1 == ::mkdir(pathname, S_IRWXU)) {
-    MakeErrMsg(ErrMsg, 
-      std::string(pathname) + ": can't create temporary directory");
-    return Path();
-  }
-  Path result;
-  result.set(pathname);
-  assert(result.isValid() && "mkstemp didn't create a valid pathname!");
-  return result;
-#endif
-}
-
-static void getPathList(const char*path, std::vector<sys::Path>& Paths) {
-  const char* at = path;
-  const char* delim = strchr(at, ':');
-  Path tmpPath;
-  while( delim != 0 ) {
-    std::string tmp(at, size_t(delim-at));
-    if (tmpPath.set(tmp))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-    at = delim + 1;
-    delim = strchr(at, ':');
-  }
-  if (*at != 0)
-    if (tmpPath.set(std::string(at)))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-
-}
-
-void 
-Path::GetSystemLibraryPaths(std::vector<sys::Path>& Paths) {
-#ifdef LTDL_SHLIBPATH_VAR
-  char* env_var = getenv(LTDL_SHLIBPATH_VAR);
-  if (env_var != 0) {
-    getPathList(env_var,Paths);
-  }
-#endif
-  // FIXME: Should this look at LD_LIBRARY_PATH too?
-  Paths.push_back(sys::Path("/usr/local/lib/"));
-  Paths.push_back(sys::Path("/usr/X11R6/lib/"));
-  Paths.push_back(sys::Path("/usr/lib/"));
-  Paths.push_back(sys::Path("/lib/"));
-}
-
-void
-Path::GetBitcodeLibraryPaths(std::vector<sys::Path>& Paths) {
-  char * env_var = getenv("LLVM_LIB_SEARCH_PATH");
-  if (env_var != 0) {
-    getPathList(env_var,Paths);
-  }
-#ifdef LLVM_LIBDIR
-  {
-    Path tmpPath;
-    if (tmpPath.set(LLVM_LIBDIR))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-  }
-#endif
-  GetSystemLibraryPaths(Paths);
-}
-
-Path 
-Path::GetLLVMDefaultConfigDir() {
-  return Path("/etc/llvm/");
-}
-
-Path
-Path::GetUserHomeDirectory() {
-  const char* home = getenv("HOME");
-  if (home) {
-    Path result;
-    if (result.set(home))
-      return result;
-  }
-  return GetRootDirectory();
-}
-
-
-std::string
-Path::getBasename() const {
-  // Find the last slash
-  size_t slash = path.rfind('/');
-  if (slash == std::string::npos)
-    slash = 0;
-  else
-    slash++;
-
-  size_t dot = path.rfind('.');
-  if (dot == std::string::npos || dot < slash)
-    return path.substr(slash);
-  else
-    return path.substr(slash, dot - slash);
-}
-
-bool Path::getMagicNumber(std::string& Magic, unsigned len) const {
-  assert(len < 1024 && "Request for magic string too long");
-  char* buf = (char*) alloca(1 + len);
-  int fd = ::open(path.c_str(), O_RDONLY);
-  if (fd < 0)
-    return false;
-  ssize_t bytes_read = ::read(fd, buf, len);
-  ::close(fd);
-  if (ssize_t(len) != bytes_read) {
-    Magic.clear();
-    return false;
-  }
-  Magic.assign(buf,len);
-  return true;
-}
-
-bool
-Path::exists() const {
-  return 0 == access(path.c_str(), F_OK );
-}
-
-bool
-Path::canRead() const {
-  return 0 == access(path.c_str(), F_OK | R_OK );
-}
-
-bool
-Path::canWrite() const {
-  return 0 == access(path.c_str(), F_OK | W_OK );
-}
-
-bool
-Path::canExecute() const {
-  if (0 != access(path.c_str(), R_OK | X_OK ))
-    return false;
-  struct stat buf;
-  if (0 != stat(path.c_str(), &buf))
-    return false;
-  if (!S_ISREG(buf.st_mode))
-    return false;
-  return true;
-}
-
-std::string 
-Path::getLast() const {
-  // Find the last slash
-  size_t pos = path.rfind('/');
-
-  // Handle the corner cases
-  if (pos == std::string::npos)
-    return path;
-
-  // If the last character is a slash
-  if (pos == path.length()-1) {
-    // Find the second to last slash
-    size_t pos2 = path.rfind('/', pos-1);
-    if (pos2 == std::string::npos)
-      return path.substr(0,pos);
-    else
-      return path.substr(pos2+1,pos-pos2-1);
-  }
-  // Return everything after the last slash
-  return path.substr(pos+1);
-}
-
-const FileStatus *
-PathWithStatus::getFileStatus(bool update, std::string *ErrStr) const {
-  if (!fsIsValid || update) {
-    struct stat buf;
-    if (0 != stat(path.c_str(), &buf)) {
-      MakeErrMsg(ErrStr, path + ": can't get status of file");
-      return 0;
-    }
-    status.fileSize = buf.st_size;
-    status.modTime.fromEpochTime(buf.st_mtime);
-    status.mode = buf.st_mode;
-    status.user = buf.st_uid;
-    status.group = buf.st_gid;
-    status.uniqueID = uint64_t(buf.st_ino);
-    status.isDir  = S_ISDIR(buf.st_mode);
-    status.isFile = S_ISREG(buf.st_mode);
-    fsIsValid = true;
-  }
-  return &status;
-}
-
-static bool AddPermissionBits(const Path &File, int bits) {
-  // Get the umask value from the operating system.  We want to use it
-  // when changing the file's permissions. Since calling umask() sets
-  // the umask and returns its old value, we must call it a second
-  // time to reset it to the user's preference.
-  int mask = umask(0777); // The arg. to umask is arbitrary.
-  umask(mask);            // Restore the umask.
-
-  // Get the file's current mode.
-  struct stat buf;
-  if (0 != stat(File.toString().c_str(), &buf)) 
-    return false;
-  // Change the file to have whichever permissions bits from 'bits'
-  // that the umask would not disable.
-  if ((chmod(File.c_str(), (buf.st_mode | (bits & ~mask)))) == -1)
-      return false;
-  return true;
-}
-
-bool Path::makeReadableOnDisk(std::string* ErrMsg) {
-  if (!AddPermissionBits(*this, 0444)) 
-    return MakeErrMsg(ErrMsg, path + ": can't make file readable");
-  return false;
-}
-
-bool Path::makeWriteableOnDisk(std::string* ErrMsg) {
-  if (!AddPermissionBits(*this, 0222))
-    return MakeErrMsg(ErrMsg, path + ": can't make file writable");
-  return false;
-}
-
-bool Path::makeExecutableOnDisk(std::string* ErrMsg) {
-  if (!AddPermissionBits(*this, 0111))
-    return MakeErrMsg(ErrMsg, path + ": can't make file executable");
-  return false;
-}
-
-bool
-Path::getDirectoryContents(std::set<Path>& result, std::string* ErrMsg) const {
-  DIR* direntries = ::opendir(path.c_str());
-  if (direntries == 0)
-    return MakeErrMsg(ErrMsg, path + ": can't open directory");
-
-  std::string dirPath = path;
-  if (!lastIsSlash(dirPath))
-    dirPath += '/';
-
-  result.clear();
-  struct dirent* de = ::readdir(direntries);
-  for ( ; de != 0; de = ::readdir(direntries)) {
-    if (de->d_name[0] != '.') {
-      Path aPath(dirPath + (const char*)de->d_name);
-      struct stat st;
-      if (0 != lstat(aPath.path.c_str(), &st)) {
-        if (S_ISLNK(st.st_mode))
-          continue; // dangling symlink -- ignore
-        return MakeErrMsg(ErrMsg, 
-                          aPath.path +  ": can't determine file object type");
-      }
-      result.insert(aPath);
-    }
-  }
-  
-  closedir(direntries);
-  return false;
-}
-
-bool
-Path::set(const std::string& a_path) {
-  if (a_path.empty())
-    return false;
-  std::string save(path);
-  path = a_path;
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::appendComponent(const std::string& name) {
-  if (name.empty())
-    return false;
-  std::string save(path);
-  if (!lastIsSlash(path))
-    path += '/';
-  path += name;
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::eraseComponent() {
-  size_t slashpos = path.rfind('/',path.size());
-  if (slashpos == 0 || slashpos == std::string::npos) {
-    path.erase();
-    return true;
-  }
-  if (slashpos == path.size() - 1)
-    slashpos = path.rfind('/',slashpos-1);
-  if (slashpos == std::string::npos) {
-    path.erase();
-    return true;
-  }
-  path.erase(slashpos);
-  return true;
-}
-
-bool
-Path::appendSuffix(const std::string& suffix) {
-  std::string save(path);
-  path.append(".");
-  path.append(suffix);
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::eraseSuffix() {
-  std::string save = path;
-  size_t dotpos = path.rfind('.',path.size());
-  size_t slashpos = path.rfind('/',path.size());
-  if (dotpos != std::string::npos) {
-    if (slashpos == std::string::npos || dotpos > slashpos+1) {
-      path.erase(dotpos, path.size()-dotpos);
-      return true;
-    }
-  }
-  if (!isValid())
-    path = save;
-  return false;
-}
-
-bool
-Path::createDirectoryOnDisk( bool create_parents, std::string* ErrMsg ) {
-  // Get a writeable copy of the path name
-  char pathname[MAXPATHLEN];
-  path.copy(pathname,MAXPATHLEN);
-
-  // Null-terminate the last component
-  int lastchar = path.length() - 1 ; 
-  if (pathname[lastchar] == '/') 
-    pathname[lastchar] = 0;
-  else 
-    pathname[lastchar+1] = 0;
-
-  // If we're supposed to create intermediate directories
-  if ( create_parents ) {
-    // Find the end of the initial name component
-    char * next = strchr(pathname,'/');
-    if ( pathname[0] == '/') 
-      next = strchr(&pathname[1],'/');
-
-    // Loop through the directory components until we're done 
-    while ( next != 0 ) {
-      *next = 0;
-      if (0 != access(pathname, F_OK | R_OK | W_OK))
-        if (0 != mkdir(pathname, S_IRWXU | S_IRWXG)) {
-          return MakeErrMsg(ErrMsg, 
-                            std::string(pathname) + ": can't create directory");
-        }
-      char* save = next;
-      next = strchr(next+1,'/');
-      *save = '/';
-    }
-  } 
-
-  if (0 != access(pathname, F_OK | R_OK))
-    if (0 != mkdir(pathname, S_IRWXU | S_IRWXG)) {
-      return MakeErrMsg(ErrMsg, 
-                        std::string(pathname) + ": can't create directory");
-    }
-  return false;
-}
-
-bool
-Path::createFileOnDisk(std::string* ErrMsg) {
-  // Create the file
-  int fd = ::creat(path.c_str(), S_IRUSR | S_IWUSR);
-  if (fd < 0)
-    return MakeErrMsg(ErrMsg, path + ": can't create file");
-  ::close(fd);
-  return false;
-}
-
-bool
-Path::createTemporaryFileOnDisk(bool reuse_current, std::string* ErrMsg) {
-  // Make this into a unique file name
-  if (makeUnique( reuse_current, ErrMsg ))
-    return true;
-
-  // create the file
-  int fd = ::open(path.c_str(), O_WRONLY|O_CREAT|O_TRUNC, 0666);
-  if (fd < 0) 
-    return MakeErrMsg(ErrMsg, path + ": can't create temporary file");
-  ::close(fd);
-  return false;
-}
-
-bool
-Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const {
-  // Get the status so we can determin if its a file or directory
-  struct stat buf;
-  if (0 != stat(path.c_str(), &buf)) {
-    MakeErrMsg(ErrStr, path + ": can't get status of file");
-    return true;
-  }
-
-  // Note: this check catches strange situations. In all cases, LLVM should 
-  // only be involved in the creation and deletion of regular files.  This 
-  // check ensures that what we're trying to erase is a regular file. It 
-  // effectively prevents LLVM from erasing things like /dev/null, any block 
-  // special file, or other things that aren't "regular" files. 
-  if (S_ISREG(buf.st_mode)) {
-    if (unlink(path.c_str()) != 0)
-      return MakeErrMsg(ErrStr, path + ": can't destroy file");
-    return false;
-  }
-  
-  if (!S_ISDIR(buf.st_mode)) {
-    if (ErrStr) *ErrStr = "not a file or directory";
-    return true;
-  }
-
-  if (remove_contents) {
-    // Recursively descend the directory to remove its contents.
-    std::string cmd = "/bin/rm -rf " + path;
-    system(cmd.c_str());
-    return false;
-  }
-
-  // Otherwise, try to just remove the one directory.
-  char pathname[MAXPATHLEN];
-  path.copy(pathname, MAXPATHLEN);
-  int lastchar = path.length() - 1 ; 
-  if (pathname[lastchar] == '/') 
-    pathname[lastchar] = 0;
-  else
-    pathname[lastchar+1] = 0;
-    
-  if (rmdir(pathname) != 0)
-    return MakeErrMsg(ErrStr, 
-      std::string(pathname) + ": can't erase directory");
-  return false;
-}
-
-bool
-Path::renamePathOnDisk(const Path& newName, std::string* ErrMsg) {
-  if (0 != ::rename(path.c_str(), newName.c_str()))
-    return MakeErrMsg(ErrMsg, std::string("can't rename '") + path + "' as '" + 
-               newName.toString() + "' ");
-  return false;
-}
-
-bool 
-Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrStr) const {
-  struct utimbuf utb;
-  utb.actime = si.modTime.toPosixTime();
-  utb.modtime = utb.actime;
-  if (0 != ::utime(path.c_str(),&utb))
-    return MakeErrMsg(ErrStr, path + ": can't set file modification time");
-  if (0 != ::chmod(path.c_str(),si.mode))
-    return MakeErrMsg(ErrStr, path + ": can't set mode");
-  return false;
-}
-
-bool 
-sys::CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg){
-  int inFile = -1;
-  int outFile = -1;
-  inFile = ::open(Src.c_str(), O_RDONLY);
-  if (inFile == -1)
-    return MakeErrMsg(ErrMsg, Src.toString() + 
-      ": can't open source file to copy");
-
-  outFile = ::open(Dest.c_str(), O_WRONLY|O_CREAT, 0666);
-  if (outFile == -1) {
-    ::close(inFile);
-    return MakeErrMsg(ErrMsg, Dest.toString() +
-      ": can't create destination file for copy");
-  }
-
-  char Buffer[16*1024];
-  while (ssize_t Amt = ::read(inFile, Buffer, 16*1024)) {
-    if (Amt == -1) {
-      if (errno != EINTR && errno != EAGAIN) {
-        ::close(inFile);
-        ::close(outFile);
-        return MakeErrMsg(ErrMsg, Src.toString()+": can't read source file: ");
-      }
-    } else {
-      char *BufPtr = Buffer;
-      while (Amt) {
-        ssize_t AmtWritten = ::write(outFile, BufPtr, Amt);
-        if (AmtWritten == -1) {
-          if (errno != EINTR && errno != EAGAIN) {
-            ::close(inFile);
-            ::close(outFile);
-            return MakeErrMsg(ErrMsg, Dest.toString() + 
-              ": can't write destination file: ");
-          }
-        } else {
-          Amt -= AmtWritten;
-          BufPtr += AmtWritten;
-        }
-      }
-    }
-  }
-  ::close(inFile);
-  ::close(outFile);
-  return false;
-}
-
-bool 
-Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
-  if (reuse_current && !exists())
-    return false; // File doesn't exist already, just use it!
-
-  // Append an XXXXXX pattern to the end of the file for use with mkstemp, 
-  // mktemp or our own implementation.
-  char *FNBuffer = (char*) alloca(path.size()+8);
-  path.copy(FNBuffer,path.size());
-  strcpy(FNBuffer+path.size(), "-XXXXXX");
-
-#if defined(HAVE_MKSTEMP)
-  int TempFD;
-  if ((TempFD = mkstemp(FNBuffer)) == -1)
-    return MakeErrMsg(ErrMsg, path + ": can't make unique filename");
-
-  // We don't need to hold the temp file descriptor... we will trust that no one
-  // will overwrite/delete the file before we can open it again.
-  close(TempFD);
-
-  // Save the name
-  path = FNBuffer;
-#elif defined(HAVE_MKTEMP)
-  // If we don't have mkstemp, use the old and obsolete mktemp function.
-  if (mktemp(FNBuffer) == 0)
-    return MakeErrMsg(ErrMsg, path + ": can't make unique filename");
-
-  // Save the name
-  path = FNBuffer;
-#else
-  // Okay, looks like we have to do it all by our lonesome.
-  static unsigned FCounter = 0;
-  unsigned offset = path.size() + 1;
-  while ( FCounter < 999999 && exists()) {
-    sprintf(FNBuffer+offset,"%06u",++FCounter);
-    path = FNBuffer;
-  }
-  if (FCounter > 999999)
-    return MakeErrMsg(ErrMsg, 
-      path + ": can't make unique filename: too many files");
-#endif
-  return false;
-}
-
-} // end llvm namespace
-
diff --git a/support/lib/System/Unix/Process.inc b/support/lib/System/Unix/Process.inc
deleted file mode 100644
index 6b9b2b3..0000000
--- a/support/lib/System/Unix/Process.inc
+++ /dev/null
@@ -1,185 +0,0 @@
-//===- Unix/Process.cpp - Unix Process Implementation --------- -*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the generic Unix implementation of the Process class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Unix.h"
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#ifdef HAVE_MALLOC_H
-#include <malloc.h>
-#endif
-#ifdef HAVE_MALLOC_MALLOC_H
-#include <malloc/malloc.h>
-#endif
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-using namespace llvm;
-using namespace sys;
-
-unsigned 
-Process::GetPageSize() 
-{
-#if defined(HAVE_GETPAGESIZE)
-  static const int page_size = ::getpagesize();
-#elif defined(HAVE_SYSCONF)
-  static long page_size = ::sysconf(_SC_PAGE_SIZE);
-#else
-#warning Cannot get the page size on this machine
-#endif
-  return static_cast<unsigned>(page_size);
-}
-
-size_t Process::GetMallocUsage() {
-#if defined(HAVE_MALLINFO)
-  struct mallinfo mi;
-  mi = ::mallinfo();
-  return mi.uordblks;
-#elif defined(HAVE_MALLOC_ZONE_STATISTICS) && defined(HAVE_MALLOC_MALLOC_H)
-  malloc_statistics_t Stats;
-  malloc_zone_statistics(malloc_default_zone(), &Stats);
-  return Stats.size_in_use;   // darwin
-#elif defined(HAVE_SBRK)
-  // Note this is only an approximation and more closely resembles
-  // the value returned by mallinfo in the arena field.
-  static char *StartOfMemory = reinterpret_cast<char*>(::sbrk(0));
-  char *EndOfMemory = (char*)sbrk(0);
-  if (EndOfMemory != ((char*)-1) && StartOfMemory != ((char*)-1))
-    return EndOfMemory - StartOfMemory;
-  else
-    return 0;
-#else
-#warning Cannot get malloc info on this platform
-  return 0;
-#endif
-}
-
-size_t
-Process::GetTotalMemoryUsage()
-{
-#if defined(HAVE_MALLINFO)
-  struct mallinfo mi = ::mallinfo();
-  return mi.uordblks + mi.hblkhd;
-#elif defined(HAVE_MALLOC_ZONE_STATISTICS) && defined(HAVE_MALLOC_MALLOC_H)
-  malloc_statistics_t Stats;
-  malloc_zone_statistics(malloc_default_zone(), &Stats);
-  return Stats.size_allocated;   // darwin
-#elif defined(HAVE_GETRUSAGE)
-  struct rusage usage;
-  ::getrusage(RUSAGE_SELF, &usage);
-  return usage.ru_maxrss;
-#else
-#warning Cannot get total memory size on this platform
-  return 0;
-#endif
-}
-
-void
-Process::GetTimeUsage(TimeValue& elapsed, TimeValue& user_time, 
-                      TimeValue& sys_time)
-{
-  elapsed = TimeValue::now();
-#if defined(HAVE_GETRUSAGE)
-  struct rusage usage;
-  ::getrusage(RUSAGE_SELF, &usage);
-  user_time = TimeValue( 
-    static_cast<TimeValue::SecondsType>( usage.ru_utime.tv_sec ), 
-    static_cast<TimeValue::NanoSecondsType>( usage.ru_utime.tv_usec * 
-      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
-  sys_time = TimeValue( 
-    static_cast<TimeValue::SecondsType>( usage.ru_stime.tv_sec ), 
-    static_cast<TimeValue::NanoSecondsType>( usage.ru_stime.tv_usec * 
-      TimeValue::NANOSECONDS_PER_MICROSECOND ) );
-#else
-#warning Cannot get usage times on this platform
-  user_time.seconds(0);
-  user_time.microseconds(0);
-  sys_time.seconds(0);
-  sys_time.microseconds(0);
-#endif
-}
-
-int Process::GetCurrentUserId() {
-  return getuid();
-}
-
-int Process::GetCurrentGroupId() {
-  return getgid();
-}
-
-#ifdef HAVE_MACH_MACH_H
-#include <mach/mach.h>
-#endif
-
-// Some LLVM programs such as bugpoint produce core files as a normal part of
-// their operation. To prevent the disk from filling up, this function
-// does what's necessary to prevent their generation.
-void Process::PreventCoreFiles() {
-#if HAVE_SETRLIMIT
-  struct rlimit rlim;
-  rlim.rlim_cur = rlim.rlim_max = 0;
-  setrlimit(RLIMIT_CORE, &rlim);
-#endif
-
-#ifdef HAVE_MACH_MACH_H
-  // Disable crash reporting on Mac OS/X.
-
-  // get information about the original set of exception ports for the task
-  mach_msg_type_number_t Count = 0;
-  exception_mask_t OriginalMasks[EXC_TYPES_COUNT];
-  exception_port_t OriginalPorts[EXC_TYPES_COUNT];
-  exception_behavior_t OriginalBehaviors[EXC_TYPES_COUNT];
-  thread_state_flavor_t OriginalFlavors[EXC_TYPES_COUNT];
-  kern_return_t err = 
-    task_get_exception_ports(mach_task_self(), EXC_MASK_ALL, OriginalMasks,
-                             &Count, OriginalPorts, OriginalBehaviors,
-                             OriginalFlavors);
-  if (err == KERN_SUCCESS) {
-    // replace each with MACH_PORT_NULL.
-    for (unsigned i = 0; i != Count; ++i)
-      task_set_exception_ports(mach_task_self(), OriginalMasks[i], 
-                               MACH_PORT_NULL, OriginalBehaviors[i],
-                               OriginalFlavors[i]);
-  }
-#endif
-}
-
-bool Process::StandardInIsUserInput() {
-#if HAVE_ISATTY
-  return isatty(0);
-#endif
-  // If we don't have isatty, just return false.
-  return false;
-}
-
-bool Process::StandardOutIsDisplayed() {
-#if HAVE_ISATTY
-  return isatty(1);
-#endif
-  // If we don't have isatty, just return false.
-  return false;
-}
-
-bool Process::StandardErrIsDisplayed() {
-#if HAVE_ISATTY
-  return isatty(2);
-#endif
-  // If we don't have isatty, just return false.
-  return false;
-}
diff --git a/support/lib/System/Unix/Program.inc b/support/lib/System/Unix/Program.inc
deleted file mode 100644
index 896e809..0000000
--- a/support/lib/System/Unix/Program.inc
+++ /dev/null
@@ -1,286 +0,0 @@
-//===- llvm/System/Unix/Program.cpp -----------------------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Unix specific portion of the Program class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Config/config.h>
-#include "Unix.h"
-#include <iostream>
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#if HAVE_SYS_RESOURCE_H
-#include <sys/resource.h>
-#endif
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-#if HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-namespace llvm {
-using namespace sys;
-
-// This function just uses the PATH environment variable to find the program.
-Path
-Program::FindProgramByName(const std::string& progName) {
-
-  // Check some degenerate cases
-  if (progName.length() == 0) // no program
-    return Path();
-  Path temp;
-  if (!temp.set(progName)) // invalid name
-    return Path();
-  // FIXME: have to check for absolute filename - we cannot assume anything
-  // about "." being in $PATH
-  if (temp.canExecute()) // already executable as is
-    return temp;
-
-  // At this point, the file name is valid and its not executable
- 
-  // Get the path. If its empty, we can't do anything to find it.
-  const char *PathStr = getenv("PATH");
-  if (PathStr == 0) 
-    return Path();
-
-  // Now we have a colon separated list of directories to search; try them.
-  unsigned PathLen = strlen(PathStr);
-  while (PathLen) {
-    // Find the first colon...
-    const char *Colon = std::find(PathStr, PathStr+PathLen, ':');
-
-    // Check to see if this first directory contains the executable...
-    Path FilePath;
-    if (FilePath.set(std::string(PathStr,Colon))) {
-      FilePath.appendComponent(progName);
-      if (FilePath.canExecute())
-        return FilePath;                    // Found the executable!
-    }
-
-    // Nope it wasn't in this directory, check the next path in the list!
-    PathLen -= Colon-PathStr;
-    PathStr = Colon;
-
-    // Advance past duplicate colons
-    while (*PathStr == ':') {
-      PathStr++;
-      PathLen--;
-    }
-  }
-  return Path();
-}
-
-static bool RedirectFD(const std::string &File, int FD, std::string* ErrMsg) {
-  if (File.empty()) return false;  // Noop
-
-  // Open the file
-  int InFD = open(File.c_str(), FD == 0 ? O_RDONLY : O_WRONLY|O_CREAT, 0666);
-  if (InFD == -1) {
-    MakeErrMsg(ErrMsg, "Cannot open file '" + File + "' for "
-              + (FD == 0 ? "input" : "output") + "!\n");
-    return true;
-  }
-
-  // Install it as the requested FD
-  if (-1 == dup2(InFD, FD)) {
-    MakeErrMsg(ErrMsg, "Cannot dup2");
-    return true;
-  }
-  close(InFD);      // Close the original FD
-  return false;
-}
-
-static bool Timeout = false;
-static void TimeOutHandler(int Sig) {
-  Timeout = true;
-}
-
-static void SetMemoryLimits (unsigned size)
-{
-#if HAVE_SYS_RESOURCE_H
-  struct rlimit r;
-  __typeof__ (r.rlim_cur) limit = (__typeof__ (r.rlim_cur)) (size) * 1048576;
-
-  // Heap size
-  getrlimit (RLIMIT_DATA, &r);
-  r.rlim_cur = limit;
-  setrlimit (RLIMIT_DATA, &r);
-#ifdef RLIMIT_RSS
-  // Resident set size.
-  getrlimit (RLIMIT_RSS, &r);
-  r.rlim_cur = limit;
-  setrlimit (RLIMIT_RSS, &r);
-#endif
-#ifdef RLIMIT_AS  // e.g. NetBSD doesn't have it.
-  // Virtual memory.
-  getrlimit (RLIMIT_AS, &r);
-  r.rlim_cur = limit;
-  setrlimit (RLIMIT_AS, &r);
-#endif
-#endif
-}
-
-int 
-Program::ExecuteAndWait(const Path& path, 
-                        const char** args,
-                        const char** envp,
-                        const Path** redirects,
-                        unsigned secondsToWait,
-                        unsigned memoryLimit,
-                        std::string* ErrMsg) 
-{
-  if (!path.canExecute()) {
-    if (ErrMsg)
-      *ErrMsg = path.toString() + " is not executable";
-    return -1;
-  }
-
-#ifdef HAVE_SYS_WAIT_H
-  // Create a child process.
-  int child = fork();
-  switch (child) {
-    // An error occured:  Return to the caller.
-    case -1:
-      MakeErrMsg(ErrMsg, "Couldn't fork");
-      return -1;
-
-    // Child process: Execute the program.
-    case 0: {
-      // Redirect file descriptors...
-      if (redirects) {
-        if (redirects[0]) {
-          if (redirects[0]->isEmpty()) {
-            if (RedirectFD("/dev/null",0,ErrMsg)) { return -1; }
-          } else {
-            if (RedirectFD(redirects[0]->toString(), 0,ErrMsg)) { return -1; }
-          }
-        }
-        if (redirects[1]) {
-          if (redirects[1]->isEmpty()) {
-            if (RedirectFD("/dev/null",1,ErrMsg)) { return -1; }
-          } else {
-            if (RedirectFD(redirects[1]->toString(),1,ErrMsg)) { return -1; }
-          }
-        }
-        if (redirects[1] && redirects[2] && 
-            *(redirects[1]) != *(redirects[2])) {
-          if (redirects[2]->isEmpty()) {
-            if (RedirectFD("/dev/null",2,ErrMsg)) { return -1; }
-          } else {
-            if (RedirectFD(redirects[2]->toString(), 2,ErrMsg)) { return -1; }
-          }
-        } else if (-1 == dup2(1,2)) {
-          MakeErrMsg(ErrMsg, "Can't redirect");
-          return -1;
-        }
-      }
-
-      // Set memory limits
-      if (memoryLimit!=0) {
-        SetMemoryLimits(memoryLimit);
-      }
-      
-      // Execute!
-      if (envp != 0)
-        execve (path.c_str(), (char** const)args, (char**)envp);
-      else
-        execv (path.c_str(), (char** const)args);
-      // If the execve() failed, we should exit and let the parent pick up
-      // our non-zero exit status.
-      exit (errno);
-    }
-
-    // Parent process: Break out of the switch to do our processing.
-    default:
-      break;
-  }
-
-  // Make sure stderr and stdout have been flushed
-  std::cerr << std::flush;
-  std::cout << std::flush;
-  fsync(1);
-  fsync(2);
-
-  struct sigaction Act, Old;
-
-  // Install a timeout handler.
-  if (secondsToWait) {
-    Timeout = false;
-    Act.sa_sigaction = 0;
-    Act.sa_handler = TimeOutHandler;
-    sigemptyset(&Act.sa_mask);
-    Act.sa_flags = 0;
-    sigaction(SIGALRM, &Act, &Old);
-    alarm(secondsToWait);
-  }
-
-  // Parent process: Wait for the child process to terminate.
-  int status;
-  while (wait(&status) != child)
-    if (secondsToWait && errno == EINTR) {
-      // Kill the child.
-      kill(child, SIGKILL);
-        
-      // Turn off the alarm and restore the signal handler
-      alarm(0);
-      sigaction(SIGALRM, &Old, 0);
-
-      // Wait for child to die
-      if (wait(&status) != child)
-        MakeErrMsg(ErrMsg, "Child timed out but wouldn't die");
-        
-      return -1;   // Timeout detected
-    } else {
-      MakeErrMsg(ErrMsg, "Error waiting for child process");
-      return -1;
-    }
-
-  // We exited normally without timeout, so turn off the timer.
-  if (secondsToWait) {
-    alarm(0);
-    sigaction(SIGALRM, &Old, 0);
-  }
-
-  // Return the proper exit status. 0=success, >0 is programs' exit status,
-  // <0 means a signal was returned, -9999999 means the program dumped core.
-  int result = 0;
-  if (WIFEXITED(status))
-    result = WEXITSTATUS(status);
-  else if (WIFSIGNALED(status))
-    result = 0 - WTERMSIG(status);
-#ifdef WCOREDUMP
-  else if (WCOREDUMP(status))
-    result |= 0x01000000;
-#endif
-  return result;
-#else
-  return -99;
-#endif
-    
-}
-
-bool Program::ChangeStdinToBinary(){
-  // Do nothing, as Unix doesn't differentiate between text and binary.
-  return false;
-}
-
-bool Program::ChangeStdoutToBinary(){
-  // Do nothing, as Unix doesn't differentiate between text and binary.
-  return false;
-}
-
-}
diff --git a/support/lib/System/Unix/README.txt b/support/lib/System/Unix/README.txt
deleted file mode 100644
index b3bace4..0000000
--- a/support/lib/System/Unix/README.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-llvm/lib/System/Unix README
-===========================
-
-This directory provides implementations of the lib/System classes that
-are common to two or more variants of UNIX. For example, the directory 
-structure underneath this directory could look like this:
-
-Unix           - only code that is truly generic to all UNIX platforms
-  Posix        - code that is specific to Posix variants of UNIX
-  SUS          - code that is specific to the Single Unix Specification 
-  SysV         - code that is specific to System V variants of UNIX
-
-As a rule, only those directories actually needing to be created should be
-created. Also, further subdirectories could be created to reflect versions of
-the various standards. For example, under SUS there could be v1, v2, and v3
-subdirectories to reflect the three major versions of SUS.
diff --git a/support/lib/System/Unix/SUS/Process.cpp b/support/lib/System/Unix/SUS/Process.cpp
deleted file mode 100644
index fb462b4..0000000
--- a/support/lib/System/Unix/SUS/Process.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-//===- Unix/SUS/Process.cpp - Linux Process Implementation ---- -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Linux specific implementation of the Process class.
-//
-//===----------------------------------------------------------------------===//
-
-#include <unistd.h>
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only code specific to the
-//===          SUS (Single Unix Specification).
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-using namespace sys;
-
-unsigned
-Process::GetPageSize() {
-  static const long page_size = sysconf(_SC_PAGE_SIZE);
-  return static_cast<unsigned>(page_size);
-}
-
-}
diff --git a/support/lib/System/Unix/Signals.inc b/support/lib/System/Unix/Signals.inc
deleted file mode 100644
index d1493a2..0000000
--- a/support/lib/System/Unix/Signals.inc
+++ /dev/null
@@ -1,201 +0,0 @@
-//===- Signals.cpp - Generic Unix Signals Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines some helpful functions for dealing with the possibility of
-// Unix signals occuring while your program is running.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Unix.h"
-#include <vector>
-#include <algorithm>
-#if HAVE_EXECINFO_H
-# include <execinfo.h>         // For backtrace().
-#endif
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-using namespace llvm;
-
-namespace {
-
-bool StackTraceRequested = false; 
-
-/// InterruptFunction - The function to call if ctrl-c is pressed.
-void (*InterruptFunction)() = 0;
-
-std::vector<sys::Path> *FilesToRemove = 0 ;
-std::vector<sys::Path> *DirectoriesToRemove = 0;
-
-// IntSigs - Signals that may interrupt the program at any time.
-const int IntSigs[] = {
-  SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGTERM, SIGUSR1, SIGUSR2
-};
-const int *IntSigsEnd = IntSigs + sizeof(IntSigs)/sizeof(IntSigs[0]);
-
-// KillSigs - Signals that are synchronous with the program that will cause it
-// to die.
-const int KillSigs[] = {
-  SIGILL, SIGTRAP, SIGABRT, SIGFPE, SIGBUS, SIGSEGV, SIGSYS, SIGXCPU, SIGXFSZ
-#ifdef SIGEMT
-  , SIGEMT
-#endif
-};
-const int *KillSigsEnd = KillSigs + sizeof(KillSigs)/sizeof(KillSigs[0]);
-
-#ifdef HAVE_BACKTRACE
-void* StackTrace[256];
-#endif
-
-// PrintStackTrace - In the case of a program crash or fault, print out a stack
-// trace so that the user has an indication of why and where we died.
-//
-// On glibc systems we have the 'backtrace' function, which works nicely, but
-// doesn't demangle symbols.  In order to backtrace symbols, we fork and exec a
-// 'c++filt' process to do the demangling.  This seems like the simplest and
-// most robust solution when we can't allocate memory (such as in a signal
-// handler).  If we can't find 'c++filt', we fallback to printing mangled names.
-//
-void PrintStackTrace() {
-#ifdef HAVE_BACKTRACE
-  // Use backtrace() to output a backtrace on Linux systems with glibc.
-  int depth = backtrace(StackTrace, sizeof(StackTrace)/sizeof(StackTrace[0]));
-  
-  // Create a one-way unix pipe.  The backtracing process writes to PipeFDs[1],
-  // the c++filt process reads from PipeFDs[0].
-  int PipeFDs[2];
-  if (pipe(PipeFDs)) {
-    backtrace_symbols_fd(StackTrace, depth, STDERR_FILENO);
-    return;
-  }
-
-  switch (pid_t ChildPID = fork()) {
-  case -1:        // Error forking, print mangled stack trace
-    close(PipeFDs[0]);
-    close(PipeFDs[1]);
-    backtrace_symbols_fd(StackTrace, depth, STDERR_FILENO);
-    return;
-  default:        // backtracing process
-    close(PipeFDs[0]);  // Close the reader side.
-
-    // Print the mangled backtrace into the pipe.
-    backtrace_symbols_fd(StackTrace, depth, PipeFDs[1]);
-    close(PipeFDs[1]);   // We are done writing.
-    while (waitpid(ChildPID, 0, 0) == -1)
-      if (errno != EINTR) break;
-    return;
-
-  case 0:         // c++filt process
-    close(PipeFDs[1]);    // Close the writer side.
-    dup2(PipeFDs[0], 0);  // Read from standard input
-    close(PipeFDs[0]);    // Close the old descriptor
-    dup2(2, 1);           // Revector stdout -> stderr
-
-    // Try to run c++filt or gc++filt.  If neither is found, call back on 'cat'
-    // to print the mangled stack trace.  If we can't find cat, just exit.
-    execlp("c++filt", "c++filt", (char*)NULL);
-    execlp("gc++filt", "gc++filt", (char*)NULL);
-    execlp("cat", "cat", (char*)NULL);
-    execlp("/bin/cat", "cat", (char*)NULL);
-    exit(0);
-  }
-#endif
-}
-
-// SignalHandler - The signal handler that runs...
-RETSIGTYPE SignalHandler(int Sig) {
-  if (FilesToRemove != 0)
-    while (!FilesToRemove->empty()) {
-      FilesToRemove->back().eraseFromDisk(true);
-      FilesToRemove->pop_back();
-    }
-
-  if (DirectoriesToRemove != 0)
-    while (!DirectoriesToRemove->empty()) {
-      DirectoriesToRemove->back().eraseFromDisk(true);
-      DirectoriesToRemove->pop_back();
-    }
-
-  if (std::find(IntSigs, IntSigsEnd, Sig) != IntSigsEnd) {
-    if (InterruptFunction) {
-      void (*IF)() = InterruptFunction;
-      InterruptFunction = 0;
-      IF();        // run the interrupt function.
-      return;
-    } else {
-      exit(1);   // If this is an interrupt signal, exit the program
-    }
-  }
-
-  // Otherwise if it is a fault (like SEGV) output the stacktrace to
-  // STDERR (if we can) and reissue the signal to die...
-  if (StackTraceRequested)
-    PrintStackTrace();
-  signal(Sig, SIG_DFL);
-}
-
-// Just call signal
-void RegisterHandler(int Signal) { 
-  signal(Signal, SignalHandler); 
-}
-
-}
-
-
-void sys::SetInterruptFunction(void (*IF)()) {
-  InterruptFunction = IF;
-  RegisterHandler(SIGINT);
-}
-
-// RemoveFileOnSignal - The public API
-bool sys::RemoveFileOnSignal(const sys::Path &Filename, std::string* ErrMsg) {
-  if (FilesToRemove == 0)
-    FilesToRemove = new std::vector<sys::Path>;
-
-  FilesToRemove->push_back(Filename);
-
-  std::for_each(IntSigs, IntSigsEnd, RegisterHandler);
-  std::for_each(KillSigs, KillSigsEnd, RegisterHandler);
-  return false;
-}
-
-// RemoveDirectoryOnSignal - The public API
-bool sys::RemoveDirectoryOnSignal(const sys::Path& path, std::string* ErrMsg) {
-  // Not a directory?
-  struct stat buf;
-  if (0 != stat(path.c_str(), &buf)) {
-    MakeErrMsg(ErrMsg, path.toString() + ": can't get status of file");
-    return true;
-  }
-
-  if (!S_ISDIR(buf.st_mode)) {
-    if (ErrMsg)
-      *ErrMsg = path.toString() + " is not a directory";
-    return true;
-  }
-
-  if (DirectoriesToRemove == 0)
-    DirectoriesToRemove = new std::vector<sys::Path>;
-
-  DirectoriesToRemove->push_back(path);
-
-  std::for_each(IntSigs, IntSigsEnd, RegisterHandler);
-  std::for_each(KillSigs, KillSigsEnd, RegisterHandler);
-  return false;
-}
-
-/// PrintStackTraceOnErrorSignal - When an error signal (such as SIBABRT or
-/// SIGSEGV) is delivered to the process, print a stack trace and then exit.
-void sys::PrintStackTraceOnErrorSignal() {
-  StackTraceRequested = true;
-  std::for_each(KillSigs, KillSigsEnd, RegisterHandler);
-}
diff --git a/support/lib/System/Unix/TimeValue.inc b/support/lib/System/Unix/TimeValue.inc
deleted file mode 100644
index 77fc9ab..0000000
--- a/support/lib/System/Unix/TimeValue.inc
+++ /dev/null
@@ -1,56 +0,0 @@
-//===- Unix/TimeValue.cpp - Unix TimeValue Implementation -------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Unix specific portion of the TimeValue class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on *all* UNIX variants.
-//===----------------------------------------------------------------------===//
-
-#include "Unix.h"
-
-namespace llvm {
-  using namespace sys;
-
-std::string TimeValue::toString() const {
-  char buffer[32];
-
-  time_t ourTime = time_t(this->toEpochTime());
-#ifdef __hpux
-// note that the following line needs -D_REENTRANT on HP-UX to be picked up 
-  asctime_r(localtime(&ourTime), buffer);
-#else
-  ::asctime_r(::localtime(&ourTime), buffer);
-#endif
-
-  std::string result(buffer);
-  return result.substr(0,24);
-}
-
-TimeValue TimeValue::now() {
-  struct timeval the_time;
-  timerclear(&the_time);
-  if (0 != ::gettimeofday(&the_time,0)) {
-    // This is *really* unlikely to occur because the only gettimeofday
-    // errors concern the timezone parameter which we're passing in as 0.
-    // In the unlikely case it does happen, just return MinTime, no error
-    // message needed. 
-    return MinTime;
-  }
-
-  return TimeValue(
-    static_cast<TimeValue::SecondsType>( the_time.tv_sec ), 
-    static_cast<TimeValue::NanoSecondsType>( the_time.tv_usec * 
-      NANOSECONDS_PER_MICROSECOND ) );
-}
-
-}
diff --git a/support/lib/System/Unix/Unix.h b/support/lib/System/Unix/Unix.h
deleted file mode 100644
index c38c652..0000000
--- a/support/lib/System/Unix/Unix.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//===- llvm/System/Unix/Unix.h - Common Unix Include File -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines things specific to Unix implementations.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_SYSTEM_UNIX_UNIX_H
-#define LLVM_SYSTEM_UNIX_UNIX_H
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic UNIX code that
-//===          is guaranteed to work on all UNIX variants.
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Config/config.h"     // Get autoconf configuration settings
-#include <cstdlib>
-#include <cstdio>
-#include <cstring>
-#include <cerrno>
-#include <string>
-#include <algorithm>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef HAVE_ASSERT_H
-#include <assert.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-/// This function builds an error message into \p ErrMsg using the \p prefix
-/// string and the Unix error number given by \p errnum. If errnum is -1, the
-/// default then the value of errno is used.
-/// @brief Make an error message
-inline bool MakeErrMsg(
-  std::string* ErrMsg, const std::string& prefix, int errnum = -1) {
-  if (!ErrMsg)
-    return true;
-  char buffer[MAXPATHLEN];
-  buffer[0] = 0;
-  if (errnum == -1)
-    errnum = errno;
-#ifdef HAVE_STRERROR_R
-  // strerror_r is thread-safe.
-  if (errnum)
-    strerror_r(errnum,buffer,MAXPATHLEN-1);
-#elif HAVE_STRERROR
-  // Copy the thread un-safe result of strerror into
-  // the buffer as fast as possible to minimize impact
-  // of collision of strerror in multiple threads.
-  if (errnum)
-    strncpy(buffer,strerror(errnum),MAXPATHLEN-1);
-  buffer[MAXPATHLEN-1] = 0;
-#else
-  // Strange that this system doesn't even have strerror
-  // but, oh well, just use a generic message
-  sprintf(buffer, "Error #%d", errnum);
-#endif
-  *ErrMsg = prefix + buffer;
-  return true;
-}
-
-#endif
diff --git a/support/lib/System/Win32/Alarm.inc b/support/lib/System/Win32/Alarm.inc
deleted file mode 100644
index e4ac512..0000000
--- a/support/lib/System/Win32/Alarm.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-//===-- Alarm.inc - Implement Win32 Alarm Support -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Win32 Alarm support.
-//
-//===----------------------------------------------------------------------===//
-
-#include <cassert>
-using namespace llvm;
-
-/// NestedSOI - Sanity check.  Alarms cannot be nested or run in parallel.  
-/// This ensures that they never do.
-static bool NestedSOI = false;
-
-void sys::SetupAlarm(unsigned seconds) {
-  assert(!NestedSOI && "sys::SetupAlarm calls cannot be nested!");
-  NestedSOI = true;
-  // FIXME: Implement for Win32
-}
-
-void sys::TerminateAlarm() {
-  assert(NestedSOI && "sys::TerminateAlarm called without sys::SetupAlarm!");
-  // FIXME: Implement for Win32
-  NestedSOI = false;
-}
-
-int sys::AlarmStatus() {
-  // FIXME: Implement for Win32
-  return 0;
-}
diff --git a/support/lib/System/Win32/DynamicLibrary.inc b/support/lib/System/Win32/DynamicLibrary.inc
deleted file mode 100644
index 251131e..0000000
--- a/support/lib/System/Win32/DynamicLibrary.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-//===- Win32/DynamicLibrary.cpp - Win32 DL Implementation -------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of DynamicLibrary.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-
-#ifdef __MINGW32__
- #include <imagehlp.h>
-#else
- #include <dbghelp.h>
-#endif
-
-#ifdef __MINGW32__
- #if (HAVE_LIBIMAGEHLP != 1)
-  #error "libimagehlp.a should be present"
- #endif
-#else
- #pragma comment(lib, "dbghelp.lib")
-#endif
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code 
-//===          and must not be UNIX code.
-//===----------------------------------------------------------------------===//
-
-static std::vector<HMODULE> OpenedHandles;
-
-extern "C" {
-  static BOOL CALLBACK ELM_Callback(PSTR  ModuleName,
-                                    ULONG ModuleBase,
-                                    ULONG ModuleSize,
-                                    PVOID UserContext)
-  {
-    // Ignore VC++ runtimes prior to 7.1.  Somehow some of them get loaded
-    // into the process.
-    if (stricmp(ModuleName, "msvci70") != 0 &&
-        stricmp(ModuleName, "msvcirt") != 0 &&
-        stricmp(ModuleName, "msvcp50") != 0 &&
-        stricmp(ModuleName, "msvcp60") != 0 &&
-        stricmp(ModuleName, "msvcp70") != 0 &&
-        stricmp(ModuleName, "msvcr70") != 0 &&
-#ifndef __MINGW32__
-        // Mingw32 uses msvcrt.dll by default. Don't ignore it.
-        // Otherwise, user should be aware, what he's doing :)
-        stricmp(ModuleName, "msvcrt") != 0 &&
-#endif        
-        stricmp(ModuleName, "msvcrt20") != 0 &&
-        stricmp(ModuleName, "msvcrt40") != 0) {
-      OpenedHandles.push_back((HMODULE)ModuleBase);
-    }
-    return TRUE;
-  }
-}
-
-DynamicLibrary::DynamicLibrary() : handle(0) {
-  handle = GetModuleHandle(NULL);
-  OpenedHandles.push_back((HMODULE)handle);
-}
-
-DynamicLibrary::~DynamicLibrary() {
-  if (handle == 0)
-    return;
-
-  // GetModuleHandle() does not increment the ref count, so we must not free
-  // the handle to the executable.
-  if (handle != GetModuleHandle(NULL))
-    FreeLibrary((HMODULE)handle);
-  handle = 0;
-
-  for (std::vector<HMODULE>::iterator I = OpenedHandles.begin(),
-       E = OpenedHandles.end(); I != E; ++I) {
-    if (*I == handle) {
-      // Note: don't use the swap/pop_back trick here. Order is important.
-      OpenedHandles.erase(I);
-    }
-  }
-}
-
-// Stack probing routines are in the support library (e.g. libgcc), but we don't
-// have dynamic linking on windows. Provide a hook.
-#if defined(__MINGW32__) || defined (_MSC_VER)
-  #define EXPLICIT_SYMBOL(SYM)                    \
-    if (!strcmp(symbolName, #SYM)) return (void*)&SYM
-  #define EXPLICIT_SYMBOL2(SYMFROM, SYMTO)        \
-    if (!strcmp(symbolName, #SYMFROM)) return (void*)&SYMTO
-  #define EXPLICIT_SYMBOL_DEF(SYM)                \
-    extern "C" { extern void *SYM; }
-
-  #if defined(__MINGW32__)
-    EXPLICIT_SYMBOL_DEF(_alloca);
-  #elif defined(_MSC_VER)
-    EXPLICIT_SYMBOL_DEF(_alloca_probe);
-  #endif
-#endif
- 
-bool DynamicLibrary::LoadLibraryPermanently(const char *filename,
-                                            std::string *ErrMsg) {
-  if (filename) {
-    HMODULE a_handle = LoadLibrary(filename);
-
-    if (a_handle == 0)
-      return MakeErrMsg(ErrMsg, std::string(filename) + ": Can't open : ");
-
-    OpenedHandles.push_back(a_handle);
-  } else {
-    // When no file is specified, enumerate all DLLs and EXEs in the
-    // process.
-    EnumerateLoadedModules(GetCurrentProcess(), ELM_Callback, 0);
-  }
-
-  // Because we don't remember the handle, we will never free it; hence,
-  // it is loaded permanently.
-  return false;
-}
-
-void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
-  // First check symbols added via AddSymbol().
-  std::map<std::string, void *>::iterator I = g_symbols.find(symbolName);
-  if (I != g_symbols.end())
-    return I->second;
-
-  // Now search the libraries.
-  for (std::vector<HMODULE>::iterator I = OpenedHandles.begin(),
-       E = OpenedHandles.end(); I != E; ++I) {
-    FARPROC ptr = GetProcAddress((HMODULE)*I, symbolName);
-    if (ptr)
-      return (void *) ptr;
-  }
-
-#if defined(__MINGW32__)
-  {
-    EXPLICIT_SYMBOL(_alloca);
-    EXPLICIT_SYMBOL2(alloca, _alloca);
-#undef EXPLICIT_SYMBOL
-#undef EXPLICIT_SYMBOL2
-#undef EXPLICIT_SYMBOL_DEF    
-  }
-#elif defined(_MSC_VER)
-  {
-    EXPLICIT_SYMBOL2(alloca, _alloca_probe);
-    EXPLICIT_SYMBOL2(_alloca, _alloca_probe);
-#undef EXPLICIT_SYMBOL
-#undef EXPLICIT_SYMBOL2
-#undef EXPLICIT_SYMBOL_DEF    
-  }  
-#endif
-
-  return 0;
-}
-
-void *DynamicLibrary::GetAddressOfSymbol(const char *symbolName) {
-  assert(handle != 0 && "Invalid DynamicLibrary handle");
-  return (void *) GetProcAddress((HMODULE)handle, symbolName);
-}
-
-}
-
diff --git a/support/lib/System/Win32/MappedFile.inc b/support/lib/System/Win32/MappedFile.inc
deleted file mode 100644
index 877ff52..0000000
--- a/support/lib/System/Win32/MappedFile.inc
+++ /dev/null
@@ -1,140 +0,0 @@
-//===- Win32/MappedFile.cpp - Win32 MappedFile Implementation ---*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 implementation of the MappedFile concept.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 code.
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include "llvm/System/Process.h"
-
-namespace llvm {
-using namespace sys;
-
-struct sys::MappedFileInfo {
-  HANDLE hFile;
-  HANDLE hMapping;
-  size_t size;
-};
-
-bool MappedFile::initialize(std::string* ErrMsg) {
-  assert(!info_);
-  info_ = new MappedFileInfo;
-  info_->hFile = INVALID_HANDLE_VALUE;
-  info_->hMapping = NULL;
-
-  DWORD mode = options_ & WRITE_ACCESS ? GENERIC_WRITE : GENERIC_READ;
-  DWORD disposition = options_ & WRITE_ACCESS ? OPEN_ALWAYS : OPEN_EXISTING;
-  DWORD share = options_ & WRITE_ACCESS ? FILE_SHARE_WRITE : FILE_SHARE_READ;
-  share = options_ & SHARED_MAPPING ? share : 0;
-  info_->hFile = CreateFile(path_.c_str(), mode, share, NULL, disposition,
-                            FILE_ATTRIBUTE_NORMAL, NULL);
-  if (info_->hFile == INVALID_HANDLE_VALUE) {
-    delete info_;
-    info_ = NULL;
-    return MakeErrMsg(ErrMsg,
-      std::string("Can't open file: ") + path_.toString());
-  }
-
-  LARGE_INTEGER size;
-  if (!GetFileSizeEx(info_->hFile, &size) ||
-      (info_->size = size_t(size.QuadPart), info_->size != size.QuadPart)) {
-    CloseHandle(info_->hFile);
-    delete info_;
-    info_ = NULL;
-    return MakeErrMsg(ErrMsg, 
-      std::string("Can't get size of file: ") + path_.toString());
-  }
-
-  return false;
-}
-
-void MappedFile::terminate() {
-  unmap();
-  if (info_->hFile != INVALID_HANDLE_VALUE)
-    CloseHandle(info_->hFile);
-  delete info_;
-  info_ = NULL;
-}
-
-void MappedFile::unmap() {
-  assert(info_ && "MappedFile not initialized");
-  if (isMapped()) {
-    UnmapViewOfFile(base_);
-    base_ = NULL;
-  }
-  if (info_->hMapping != INVALID_HANDLE_VALUE) {
-    CloseHandle(info_->hMapping);
-    info_->hMapping = NULL;
-  }
-}
-
-void* MappedFile::map(std::string* ErrMsg) {
-  if (!isMapped()) {
-    DWORD prot = PAGE_READONLY;
-    if (options_ & EXEC_ACCESS)
-      prot = SEC_IMAGE;
-    else if (options_ & WRITE_ACCESS)
-      prot = PAGE_READWRITE;
-    info_->hMapping = CreateFileMapping(info_->hFile, NULL, prot, 0, 0, NULL);
-    if (info_->hMapping == NULL) {
-      MakeErrMsg(ErrMsg, std::string("Can't map file: ") + path_.toString());
-      return 0;
-    }
-
-    prot = (options_ & WRITE_ACCESS) ? FILE_MAP_WRITE : FILE_MAP_READ;
-    base_ = MapViewOfFileEx(info_->hMapping, prot, 0, 0, 0, NULL);
-    if (base_ == NULL) {
-      CloseHandle(info_->hMapping);
-      info_->hMapping = NULL;
-      MakeErrMsg(ErrMsg, std::string("Can't map file: ") + path_.toString());
-      return 0;
-    }
-  }
-  return base_;
-}
-
-size_t MappedFile::size() const {
-  assert(info_ && "MappedFile not initialized");
-  return info_->size;
-}
-
-bool MappedFile::size(size_t new_size, std::string* ErrMsg) {
-  assert(info_ && "MappedFile not initialized");
-
-  // Take the mapping out of memory.
-  unmap();
-
-  // Adjust the new_size to a page boundary.
-  size_t pagesizem1 = Process::GetPageSize() - 1;
-  new_size = (new_size + pagesizem1) & ~pagesizem1;
-
-  // If the file needs to be extended, do so.
-  if (new_size > info_->size) {
-    LARGE_INTEGER eof;
-    eof.QuadPart = new_size;
-    if (!SetFilePointerEx(info_->hFile, eof, NULL, FILE_BEGIN))
-      return MakeErrMsg(ErrMsg, 
-        std::string("Can't set end of file: ") + path_.toString());
-    if (!SetEndOfFile(info_->hFile))
-      return MakeErrMsg(ErrMsg, 
-        std::string("Can't set end of file: ") + path_.toString());
-    info_->size = new_size;
-  }
-
-  // Remap the file.
-  return map(ErrMsg);
-}
-
-}
-
diff --git a/support/lib/System/Win32/Memory.inc b/support/lib/System/Win32/Memory.inc
deleted file mode 100644
index 739d530..0000000
--- a/support/lib/System/Win32/Memory.inc
+++ /dev/null
@@ -1,57 +0,0 @@
-//===- Win32/Memory.cpp - Win32 Memory Implementation -----------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of various Memory
-// management utilities
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include "llvm/System/Process.h"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code 
-//===          and must not be UNIX code
-//===----------------------------------------------------------------------===//
-
-MemoryBlock Memory::AllocateRWX(unsigned NumBytes,
-                                const MemoryBlock *NearBlock,
-                                std::string *ErrMsg) {
-  if (NumBytes == 0) return MemoryBlock();
-
-  static const long pageSize = Process::GetPageSize();
-  unsigned NumPages = (NumBytes+pageSize-1)/pageSize;
-
-  //FIXME: support NearBlock if ever needed on Win64.
-
-  void *pa = VirtualAlloc(NULL, NumPages*pageSize, MEM_COMMIT,
-                  PAGE_EXECUTE_READWRITE);
-  if (pa == NULL) {
-    MakeErrMsg(ErrMsg, "Can't allocate RWX Memory: ");
-    return MemoryBlock();
-  }
-
-  MemoryBlock result;
-  result.Address = pa;
-  result.Size = NumPages*pageSize;
-  return result;
-}
-
-bool Memory::ReleaseRWX(MemoryBlock &M, std::string *ErrMsg) {
-  if (M.Address == 0 || M.Size == 0) return false;
-  if (!VirtualFree(M.Address, 0, MEM_RELEASE))
-    return MakeErrMsg(ErrMsg, "Can't release RWX Memory: ");
-  return false;
-}
-
-}
-
diff --git a/support/lib/System/Win32/Mutex.inc b/support/lib/System/Win32/Mutex.inc
deleted file mode 100644
index 0a4bc4b..0000000
--- a/support/lib/System/Win32/Mutex.inc
+++ /dev/null
@@ -1,58 +0,0 @@
-//===- llvm/System/Win32/Mutex.inc - Win32 Mutex Implementation -*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Win32 specific (non-pthread) Mutex class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic Win32 code that
-//===          is guaranteed to work on *all* Win32 variants.
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include "llvm/System/Mutex.h"
-
-namespace llvm {
-using namespace sys;
-
-Mutex::Mutex(bool /*recursive*/)
-{
-  data_ = new CRITICAL_SECTION;
-  InitializeCriticalSection((LPCRITICAL_SECTION)data_);
-}
-
-Mutex::~Mutex()
-{
-  DeleteCriticalSection((LPCRITICAL_SECTION)data_);
-  delete (LPCRITICAL_SECTION)data_;
-  data_ = 0;
-}
-
-bool 
-Mutex::acquire()
-{
-  EnterCriticalSection((LPCRITICAL_SECTION)data_);
-  return true;
-}
-
-bool 
-Mutex::release()
-{
-  LeaveCriticalSection((LPCRITICAL_SECTION)data_);
-  return true;
-}
-
-bool 
-Mutex::tryacquire()
-{
-  return TryEnterCriticalSection((LPCRITICAL_SECTION)data_);
-}
-
-}
diff --git a/support/lib/System/Win32/Path.inc b/support/lib/System/Win32/Path.inc
deleted file mode 100644
index 994bc67..0000000
--- a/support/lib/System/Win32/Path.inc
+++ /dev/null
@@ -1,772 +0,0 @@
-//===- llvm/System/Linux/Path.cpp - Linux Path Implementation ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-// Modified by Henrik Bach to comply with at least MinGW.
-// Ported to Win32 by Jeff Cohen.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of the Path class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic Win32 code that
-//===          is guaranteed to work on *all* Win32 variants.
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include <malloc.h>
-
-// We need to undo a macro defined in Windows.h, otherwise we won't compile:
-#undef CopyFile
-
-// Windows happily accepts either forward or backward slashes, though any path
-// returned by a Win32 API will have backward slashes.  As LLVM code basically
-// assumes forward slashes are used, backward slashs are converted where they
-// can be introduced into a path.
-//
-// Another invariant is that a path ends with a slash if and only if the path
-// is a root directory.  Any other use of a trailing slash is stripped.  Unlike
-// in Unix, Windows has a rather complicated notion of a root path and this
-// invariant helps simply the code.
-
-static void FlipBackSlashes(std::string& s) {
-  for (size_t i = 0; i < s.size(); i++)
-    if (s[i] == '\\')
-      s[i] = '/';
-}
-
-namespace llvm {
-namespace sys {
-
-bool
-Path::isValid() const {
-  if (path.empty())
-    return false;
-
-  // If there is a colon, it must be the second character, preceded by a letter
-  // and followed by something.
-  size_t len = path.size();
-  size_t pos = path.rfind(':',len);
-  size_t rootslash = 0;
-  if (pos != std::string::npos) {
-    if (pos != 1 || !isalpha(path[0]) || len < 3)
-      return false;
-      rootslash = 2;
-  }
-
-  // Look for a UNC path, and if found adjust our notion of the root slash.
-  if (len > 3 && path[0] == '/' && path[1] == '/') {
-    rootslash = path.find('/', 2);
-    if (rootslash == std::string::npos)
-      rootslash = 0;
-  }
-
-  // Check for illegal characters.
-  if (path.find_first_of("\\<>\"|\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")
-      != std::string::npos)
-    return false;
-
-  // Remove trailing slash, unless it's a root slash.
-  if (len > rootslash+1 && path[len-1] == '/')
-    path.erase(--len);
-
-  // Check each component for legality.
-  for (pos = 0; pos < len; ++pos) {
-    // A component may not end in a space.
-    if (path[pos] == ' ') {
-      if (path[pos+1] == '/' || path[pos+1] == '\0')
-        return false;
-    }
-
-    // A component may not end in a period.
-    if (path[pos] == '.') {
-      if (path[pos+1] == '/' || path[pos+1] == '\0') {
-        // Unless it is the pseudo-directory "."...
-        if (pos == 0 || path[pos-1] == '/' || path[pos-1] == ':')
-          return true;
-        // or "..".
-        if (pos > 0 && path[pos-1] == '.') {
-          if (pos == 1 || path[pos-2] == '/' || path[pos-2] == ':')
-            return true;
-        }
-        return false;
-      }
-    }
-  }
-
-  return true;
-}
-
-bool 
-Path::isAbsolute() const {
-  switch (path.length()) {
-    case 0:
-      return false;
-    case 1:
-    case 2:
-      return path[0] == '/';
-    default:
-      return path[0] == '/' || (path[1] == ':' && path[2] == '/');
-  }
-} 
-
-static Path *TempDirectory = NULL;
-
-Path
-Path::GetTemporaryDirectory(std::string* ErrMsg) {
-  if (TempDirectory)
-    return *TempDirectory;
-
-  char pathname[MAX_PATH];
-  if (!GetTempPath(MAX_PATH, pathname)) {
-    if (ErrMsg)
-      *ErrMsg = "Can't determine temporary directory";
-    return Path();
-  }
-
-  Path result;
-  result.set(pathname);
-
-  // Append a subdirectory passed on our process id so multiple LLVMs don't
-  // step on each other's toes.
-#ifdef __MINGW32__
-  // Mingw's Win32 header files are broken.
-  sprintf(pathname, "LLVM_%u", unsigned(GetCurrentProcessId()));
-#else
-  sprintf(pathname, "LLVM_%u", GetCurrentProcessId());
-#endif
-  result.appendComponent(pathname);
-
-  // If there's a directory left over from a previous LLVM execution that
-  // happened to have the same process id, get rid of it.
-  result.eraseFromDisk(true);
-
-  // And finally (re-)create the empty directory.
-  result.createDirectoryOnDisk(false);
-  TempDirectory = new Path(result);
-  return *TempDirectory;
-}
-
-// FIXME: the following set of functions don't map to Windows very well.
-Path
-Path::GetRootDirectory() {
-  Path result;
-  result.set("C:/");
-  return result;
-}
-
-static void getPathList(const char*path, std::vector<sys::Path>& Paths) {
-  const char* at = path;
-  const char* delim = strchr(at, ';');
-  Path tmpPath;
-  while (delim != 0) {
-    std::string tmp(at, size_t(delim-at));
-    if (tmpPath.set(tmp))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-    at = delim + 1;
-    delim = strchr(at, ';');
-  }
-
-  if (*at != 0)
-    if (tmpPath.set(std::string(at)))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-}
-
-void
-Path::GetSystemLibraryPaths(std::vector<sys::Path>& Paths) {
-  Paths.push_back(sys::Path("C:/WINDOWS/SYSTEM32"));
-  Paths.push_back(sys::Path("C:/WINDOWS"));
-}
-
-void
-Path::GetBitcodeLibraryPaths(std::vector<sys::Path>& Paths) {
-  char * env_var = getenv("LLVM_LIB_SEARCH_PATH");
-  if (env_var != 0) {
-    getPathList(env_var,Paths);
-  }
-#ifdef LLVM_LIBDIR
-  {
-    Path tmpPath;
-    if (tmpPath.set(LLVM_LIBDIR))
-      if (tmpPath.canRead())
-        Paths.push_back(tmpPath);
-  }
-#endif
-  GetSystemLibraryPaths(Paths);
-}
-
-Path
-Path::GetLLVMDefaultConfigDir() {
-  // TODO: this isn't going to fly on Windows
-  return Path("/etc/llvm");
-}
-
-Path
-Path::GetUserHomeDirectory() {
-  // TODO: Typical Windows setup doesn't define HOME.
-  const char* home = getenv("HOME");
-  if (home) {
-    Path result;
-    if (result.set(home))
-      return result;
-  }
-  return GetRootDirectory();
-}
-// FIXME: the above set of functions don't map to Windows very well.
-
-
-bool
-Path::isRootDirectory() const {
-  size_t len = path.size();
-  return len > 0 && path[len-1] == '/';
-}
-
-std::string
-Path::getBasename() const {
-  // Find the last slash
-  size_t slash = path.rfind('/');
-  if (slash == std::string::npos)
-    slash = 0;
-  else
-    slash++;
-
-  size_t dot = path.rfind('.');
-  if (dot == std::string::npos || dot < slash)
-    return path.substr(slash);
-  else
-    return path.substr(slash, dot - slash);
-}
-
-bool
-Path::exists() const {
-  DWORD attr = GetFileAttributes(path.c_str());
-  return attr != INVALID_FILE_ATTRIBUTES;
-}
-
-bool
-Path::canRead() const {
-  // FIXME: take security attributes into account.
-  DWORD attr = GetFileAttributes(path.c_str());
-  return attr != INVALID_FILE_ATTRIBUTES;
-}
-
-bool
-Path::canWrite() const {
-  // FIXME: take security attributes into account.
-  DWORD attr = GetFileAttributes(path.c_str());
-  return (attr != INVALID_FILE_ATTRIBUTES) && !(attr & FILE_ATTRIBUTE_READONLY);
-}
-
-bool
-Path::canExecute() const {
-  // FIXME: take security attributes into account.
-  DWORD attr = GetFileAttributes(path.c_str());
-  return attr != INVALID_FILE_ATTRIBUTES;
-}
-
-std::string
-Path::getLast() const {
-  // Find the last slash
-  size_t pos = path.rfind('/');
-
-  // Handle the corner cases
-  if (pos == std::string::npos)
-    return path;
-
-  // If the last character is a slash, we have a root directory
-  if (pos == path.length()-1)
-    return path;
-
-  // Return everything after the last slash
-  return path.substr(pos+1);
-}
-
-const FileStatus *
-PathWithStatus::getFileStatus(bool update, std::string *ErrStr) const {
-  if (!fsIsValid || update) {
-    WIN32_FILE_ATTRIBUTE_DATA fi;
-    if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi)) {
-      MakeErrMsg(ErrStr, "getStatusInfo():" + std::string(path) +
-                      ": Can't get status: ");
-      return 0;
-    }
-
-    status.fileSize = fi.nFileSizeHigh;
-    status.fileSize <<= sizeof(fi.nFileSizeHigh)*8;
-    status.fileSize += fi.nFileSizeLow;
-
-    status.mode = fi.dwFileAttributes & FILE_ATTRIBUTE_READONLY ? 0555 : 0777;
-    status.user = 9999;    // Not applicable to Windows, so...
-    status.group = 9999;   // Not applicable to Windows, so...
-
-    // FIXME: this is only unique if the file is accessed by the same file path.
-    // How do we do this for C:\dir\file and ..\dir\file ? Unix has inode
-    // numbers, but the concept doesn't exist in Windows.
-    status.uniqueID = 0;
-    for (unsigned i = 0; i < path.length(); ++i)
-      status.uniqueID += path[i];
-
-    __int64 ft = *reinterpret_cast<__int64*>(&fi.ftLastWriteTime);
-    status.modTime.fromWin32Time(ft);
-
-    status.isDir = fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
-    fsIsValid = true;
-  }
-  return &status;
-}
-
-bool Path::makeReadableOnDisk(std::string* ErrMsg) {
-  // All files are readable on Windows (ignoring security attributes).
-  return false;
-}
-
-bool Path::makeWriteableOnDisk(std::string* ErrMsg) {
-  DWORD attr = GetFileAttributes(path.c_str());
-
-  // If it doesn't exist, we're done.
-  if (attr == INVALID_FILE_ATTRIBUTES)
-    return false;
-
-  if (attr & FILE_ATTRIBUTE_READONLY) {
-    if (!SetFileAttributes(path.c_str(), attr & ~FILE_ATTRIBUTE_READONLY)) {
-      MakeErrMsg(ErrMsg, std::string(path) + ": Can't make file writable: ");
-      return true;
-    }
-  }
-  return false;
-}
-
-bool Path::makeExecutableOnDisk(std::string* ErrMsg) {
-  // All files are executable on Windows (ignoring security attributes).
-  return false;
-}
-
-bool
-Path::getDirectoryContents(std::set<Path>& result, std::string* ErrMsg) const {
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi)) {
-    MakeErrMsg(ErrMsg, path + ": can't get status of file");
-    return true;
-  }
-    
-  if (!(fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
-    if (ErrMsg)
-      *ErrMsg = path + ": not a directory";
-    return true;
-  }
-
-  result.clear();
-  WIN32_FIND_DATA fd;
-  std::string searchpath = path;
-  if (path.size() == 0 || searchpath[path.size()-1] == '/')
-    searchpath += "*";
-  else
-    searchpath += "/*";
-
-  HANDLE h = FindFirstFile(searchpath.c_str(), &fd);
-  if (h == INVALID_HANDLE_VALUE) {
-    if (GetLastError() == ERROR_FILE_NOT_FOUND)
-      return true; // not really an error, now is it?
-    MakeErrMsg(ErrMsg, path + ": Can't read directory: ");
-    return true;
-  }
-
-  do {
-    if (fd.cFileName[0] == '.')
-      continue;
-    Path aPath(path);
-    aPath.appendComponent(&fd.cFileName[0]);
-    result.insert(aPath);
-  } while (FindNextFile(h, &fd));
-
-  DWORD err = GetLastError();
-  FindClose(h);
-  if (err != ERROR_NO_MORE_FILES) {
-    SetLastError(err);
-    MakeErrMsg(ErrMsg, path + ": Can't read directory: ");
-    return true;
-  }
-  return false;
-}
-
-bool
-Path::set(const std::string& a_path) {
-  if (a_path.size() == 0)
-    return false;
-  std::string save(path);
-  path = a_path;
-  FlipBackSlashes(path);
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::appendComponent(const std::string& name) {
-  if (name.empty())
-    return false;
-  std::string save(path);
-  if (!path.empty()) {
-    size_t last = path.size() - 1;
-    if (path[last] != '/')
-      path += '/';
-  }
-  path += name;
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::eraseComponent() {
-  size_t slashpos = path.rfind('/',path.size());
-  if (slashpos == path.size() - 1 || slashpos == std::string::npos)
-    return false;
-  std::string save(path);
-  path.erase(slashpos);
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::appendSuffix(const std::string& suffix) {
-  std::string save(path);
-  path.append(".");
-  path.append(suffix);
-  if (!isValid()) {
-    path = save;
-    return false;
-  }
-  return true;
-}
-
-bool
-Path::eraseSuffix() {
-  size_t dotpos = path.rfind('.',path.size());
-  size_t slashpos = path.rfind('/',path.size());
-  if (dotpos != std::string::npos) {
-    if (slashpos == std::string::npos || dotpos > slashpos+1) {
-      std::string save(path);
-      path.erase(dotpos, path.size()-dotpos);
-      if (!isValid()) {
-        path = save;
-        return false;
-      }
-      return true;
-    }
-  }
-  return false;
-}
-
-inline bool PathMsg(std::string* ErrMsg, const char* pathname, const char*msg) {
-  if (ErrMsg)
-    *ErrMsg = std::string(pathname) + ": " + std::string(msg);
-  return true;
-}
-
-bool
-Path::createDirectoryOnDisk(bool create_parents, std::string* ErrMsg) {
-  // Get a writeable copy of the path name
-  size_t len = path.length();
-  char *pathname = reinterpret_cast<char *>(_alloca(len+2));
-  path.copy(pathname, len);
-  pathname[len] = 0;
-
-  // Make sure it ends with a slash.
-  if (len == 0 || pathname[len - 1] != '/') {
-    pathname[len] = '/';
-    pathname[++len] = 0;
-  }
-
-  // Determine starting point for initial / search.
-  char *next = pathname;
-  if (pathname[0] == '/' && pathname[1] == '/') {
-    // Skip host name.
-    next = strchr(pathname+2, '/');
-    if (next == NULL)
-      return PathMsg(ErrMsg, pathname, "badly formed remote directory");
-
-    // Skip share name.
-    next = strchr(next+1, '/');
-    if (next == NULL)
-      return PathMsg(ErrMsg, pathname,"badly formed remote directory");
-
-    next++;
-    if (*next == 0)
-      return PathMsg(ErrMsg, pathname, "badly formed remote directory");
-
-  } else {
-    if (pathname[1] == ':')
-      next += 2;    // skip drive letter
-    if (*next == '/')
-      next++;       // skip root directory
-  }
-
-  // If we're supposed to create intermediate directories
-  if (create_parents) {
-    // Loop through the directory components until we're done
-    while (*next) {
-      next = strchr(next, '/');
-      *next = 0;
-      if (!CreateDirectory(pathname, NULL))
-          return MakeErrMsg(ErrMsg, 
-            std::string(pathname) + ": Can't create directory: ");
-      *next++ = '/';
-    }
-  } else {
-    // Drop trailing slash.
-    pathname[len-1] = 0;
-    if (!CreateDirectory(pathname, NULL)) {
-      return MakeErrMsg(ErrMsg, std::string(pathname) + ": Can't create directory: ");
-    }
-  }
-  return false;
-}
-
-bool
-Path::createFileOnDisk(std::string* ErrMsg) {
-  // Create the file
-  HANDLE h = CreateFile(path.c_str(), GENERIC_WRITE, 0, NULL, CREATE_NEW,
-                        FILE_ATTRIBUTE_NORMAL, NULL);
-  if (h == INVALID_HANDLE_VALUE)
-    return MakeErrMsg(ErrMsg, path + ": Can't create file: ");
-
-  CloseHandle(h);
-  return false;
-}
-
-bool
-Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const {
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi))
-    return true;
-    
-  if (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-    // If it doesn't exist, we're done.
-    if (!exists())
-      return false;
-
-    char *pathname = reinterpret_cast<char *>(_alloca(path.length()+3));
-    int lastchar = path.length() - 1 ;
-    path.copy(pathname, lastchar+1);
-
-    // Make path end with '/*'.
-    if (pathname[lastchar] != '/')
-      pathname[++lastchar] = '/';
-    pathname[lastchar+1] = '*';
-    pathname[lastchar+2] = 0;
-
-    if (remove_contents) {
-      WIN32_FIND_DATA fd;
-      HANDLE h = FindFirstFile(pathname, &fd);
-
-      // It's a bad idea to alter the contents of a directory while enumerating
-      // its contents. So build a list of its contents first, then destroy them.
-
-      if (h != INVALID_HANDLE_VALUE) {
-        std::vector<Path> list;
-
-        do {
-          if (strcmp(fd.cFileName, ".") == 0)
-            continue;
-          if (strcmp(fd.cFileName, "..") == 0)
-            continue;
-
-          Path aPath(path);
-          aPath.appendComponent(&fd.cFileName[0]);
-          list.push_back(aPath);
-        } while (FindNextFile(h, &fd));
-
-        DWORD err = GetLastError();
-        FindClose(h);
-        if (err != ERROR_NO_MORE_FILES) {
-          SetLastError(err);
-          return MakeErrMsg(ErrStr, path + ": Can't read directory: ");
-        }
-
-        for (std::vector<Path>::iterator I = list.begin(); I != list.end();
-             ++I) {
-          Path &aPath = *I;
-          aPath.eraseFromDisk(true);
-        }
-      } else {
-        if (GetLastError() != ERROR_FILE_NOT_FOUND)
-          return MakeErrMsg(ErrStr, path + ": Can't read directory: ");
-      }
-    }
-
-    pathname[lastchar] = 0;
-    if (!RemoveDirectory(pathname))
-      return MakeErrMsg(ErrStr, 
-        std::string(pathname) + ": Can't destroy directory: ");
-    return false;
-  } else {
-    // Read-only files cannot be deleted on Windows.  Must remove the read-only
-    // attribute first.
-    if (fi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
-      if (!SetFileAttributes(path.c_str(),
-                             fi.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY))
-        return MakeErrMsg(ErrStr, path + ": Can't destroy file: ");
-    }
-
-    if (!DeleteFile(path.c_str()))
-      return MakeErrMsg(ErrStr, path + ": Can't destroy file: ");
-    return false;
-  }
-}
-
-bool Path::getMagicNumber(std::string& Magic, unsigned len) const {
-  assert(len < 1024 && "Request for magic string too long");
-  char* buf = (char*) alloca(1 + len);
-
-  HANDLE h = CreateFile(path.c_str(),
-                        GENERIC_READ,
-                        FILE_SHARE_READ,
-                        NULL,
-                        OPEN_EXISTING,
-                        FILE_ATTRIBUTE_NORMAL,
-                        NULL);
-  if (h == INVALID_HANDLE_VALUE)
-    return false;
-
-  DWORD nRead = 0;
-  BOOL ret = ReadFile(h, buf, len, &nRead, NULL);
-  CloseHandle(h);
-
-  if (!ret || nRead != len)
-    return false;
-
-  buf[len] = '\0';
-  Magic = buf;
-  return true;
-}
-
-bool
-Path::renamePathOnDisk(const Path& newName, std::string* ErrMsg) {
-  if (!MoveFileEx(path.c_str(), newName.c_str(), MOVEFILE_REPLACE_EXISTING))
-    return MakeErrMsg(ErrMsg, "Can't move '" + path + "' to '" + newName.path 
-        + "': ");
-  return true;
-}
-
-bool
-Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrMsg) const {
-  // FIXME: should work on directories also.
-  if (!si.isFile) {
-    return true;
-  }
-  
-  HANDLE h = CreateFile(path.c_str(),
-                        FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
-                        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
-                        NULL,
-                        OPEN_EXISTING,
-                        FILE_ATTRIBUTE_NORMAL,
-                        NULL);
-  if (h == INVALID_HANDLE_VALUE)
-    return true;
-
-  BY_HANDLE_FILE_INFORMATION bhfi;
-  if (!GetFileInformationByHandle(h, &bhfi)) {
-    DWORD err = GetLastError();
-    CloseHandle(h);
-    SetLastError(err);
-    return MakeErrMsg(ErrMsg, path + ": GetFileInformationByHandle: ");
-  }
-
-  FILETIME ft;
-  (uint64_t&)ft = si.modTime.toWin32Time();
-  BOOL ret = SetFileTime(h, NULL, &ft, &ft);
-  DWORD err = GetLastError();
-  CloseHandle(h);
-  if (!ret) {
-    SetLastError(err);
-    return MakeErrMsg(ErrMsg, path + ": SetFileTime: ");
-  }
-
-  // Best we can do with Unix permission bits is to interpret the owner
-  // writable bit.
-  if (si.mode & 0200) {
-    if (bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
-      if (!SetFileAttributes(path.c_str(),
-              bhfi.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY))
-        return MakeErrMsg(ErrMsg, path + ": SetFileAttributes: ");
-    }
-  } else {
-    if (!(bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
-      if (!SetFileAttributes(path.c_str(),
-              bhfi.dwFileAttributes | FILE_ATTRIBUTE_READONLY))
-        return MakeErrMsg(ErrMsg, path + ": SetFileAttributes: ");
-    }
-  }
-
-  return false;
-}
-
-bool
-CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg) {
-  // Can't use CopyFile macro defined in Windows.h because it would mess up the
-  // above line.  We use the expansion it would have in a non-UNICODE build.
-  if (!::CopyFileA(Src.c_str(), Dest.c_str(), false))
-    return MakeErrMsg(ErrMsg, "Can't copy '" + Src.toString() +
-               "' to '" + Dest.toString() + "': ");
-  return false;
-}
-
-bool
-Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
-  if (reuse_current && !exists())
-    return false; // File doesn't exist already, just use it!
-
-  // Reserve space for -XXXXXX at the end.
-  char *FNBuffer = (char*) alloca(path.size()+8);
-  unsigned offset = path.size();
-  path.copy(FNBuffer, offset);
-
-  // Find a numeric suffix that isn't used by an existing file.  Assume there
-  // won't be more than 1 million files with the same prefix.  Probably a safe
-  // bet.
-  static unsigned FCounter = 0;
-  do {
-    sprintf(FNBuffer+offset, "-%06u", FCounter);
-    if (++FCounter > 999999)
-      FCounter = 0;
-    path = FNBuffer;
-  } while (exists());
-  return false;
-}
-
-bool
-Path::createTemporaryFileOnDisk(bool reuse_current, std::string* ErrMsg) {
-  // Make this into a unique file name
-  makeUnique(reuse_current, ErrMsg);
-
-  // Now go and create it
-  HANDLE h = CreateFile(path.c_str(), GENERIC_WRITE, 0, NULL, CREATE_NEW,
-                        FILE_ATTRIBUTE_NORMAL, NULL);
-  if (h == INVALID_HANDLE_VALUE)
-    return MakeErrMsg(ErrMsg, path + ": can't create file");
-
-  CloseHandle(h);
-  return false;
-}
-
-}
-}
diff --git a/support/lib/System/Win32/Process.inc b/support/lib/System/Win32/Process.inc
deleted file mode 100644
index d5e80b4..0000000
--- a/support/lib/System/Win32/Process.inc
+++ /dev/null
@@ -1,134 +0,0 @@
-//===- Win32/Process.cpp - Win32 Process Implementation ------- -*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of the Process class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include <psapi.h>
-#include <malloc.h>
-#include <io.h>
-
-#ifdef __MINGW32__
- #if (HAVE_LIBPSAPI != 1)
-  #error "libpsapi.a should be present"
- #endif
-#else
- #pragma comment(lib, "psapi.lib")
-#endif
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code 
-//===          and must not be UNIX code
-//===----------------------------------------------------------------------===//
-
-#ifdef __MINGW32__
-// This ban should be lifted when MinGW 1.0+ has defined this value.
-#  define _HEAPOK (-2)
-#endif
-
-namespace llvm {
-using namespace sys;
-
-// This function retrieves the page size using GetSystemInfo and is present
-// solely so it can be called once in Process::GetPageSize to initialize the
-// static variable PageSize.
-inline unsigned GetPageSizeOnce() {
-  // NOTE: A 32-bit application running under WOW64 is supposed to use
-  // GetNativeSystemInfo.  However, this interface is not present prior
-  // to Windows XP so to use it requires dynamic linking.  It is not clear
-  // how this affects the reported page size, if at all.  One could argue
-  // that LLVM ought to run as 64-bits on a 64-bit system, anyway.
-  SYSTEM_INFO info;
-  GetSystemInfo(&info);
-  return static_cast<unsigned>(info.dwPageSize);
-}
-
-unsigned 
-Process::GetPageSize() {
-  static const unsigned PageSize = GetPageSizeOnce();
-  return PageSize;
-}
-
-size_t 
-Process::GetMallocUsage()
-{
-  _HEAPINFO hinfo;
-  hinfo._pentry = NULL;
-
-  size_t size = 0;
-
-  while (_heapwalk(&hinfo) == _HEAPOK)
-    size += hinfo._size;
-
-  return size;
-}
-
-size_t
-Process::GetTotalMemoryUsage()
-{
-  PROCESS_MEMORY_COUNTERS pmc;
-  GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
-  return pmc.PagefileUsage;
-}
-
-void
-Process::GetTimeUsage(
-  TimeValue& elapsed, TimeValue& user_time, TimeValue& sys_time)
-{
-  elapsed = TimeValue::now();
-
-  uint64_t ProcCreate, ProcExit, KernelTime, UserTime;
-  GetProcessTimes(GetCurrentProcess(), (FILETIME*)&ProcCreate, 
-                  (FILETIME*)&ProcExit, (FILETIME*)&KernelTime,
-                  (FILETIME*)&UserTime);
-
-  // FILETIME's are # of 100 nanosecond ticks (1/10th of a microsecond)
-  user_time.seconds( UserTime / 10000000 );
-  user_time.nanoseconds( unsigned(UserTime % 10000000) * 100 );
-  sys_time.seconds( KernelTime / 10000000 );
-  sys_time.nanoseconds( unsigned(KernelTime % 10000000) * 100 );
-}
-
-int Process::GetCurrentUserId()
-{
-  return 65536;
-}
-
-int Process::GetCurrentGroupId()
-{
-  return 65536;
-}
-
-// Some LLVM programs such as bugpoint produce core files as a normal part of
-// their operation. To prevent the disk from filling up, this configuration item
-// does what's necessary to prevent their generation.
-void Process::PreventCoreFiles() {
-  // Windows doesn't do core files, but it does do modal pop-up message
-  // boxes.  As this method is used by bugpoint, preventing these pop-ups
-  // is the moral equivalent of suppressing core files.
-  SetErrorMode(SEM_FAILCRITICALERRORS |
-               SEM_NOGPFAULTERRORBOX |
-               SEM_NOOPENFILEERRORBOX);
-}
-
-bool Process::StandardInIsUserInput() {
-  return GetFileType((HANDLE)_get_osfhandle(0)) == FILE_TYPE_CHAR;
-}
-
-bool Process::StandardOutIsDisplayed() {
-  return GetFileType((HANDLE)_get_osfhandle(1)) == FILE_TYPE_CHAR;
-}
-
-bool Process::StandardErrIsDisplayed() {
-  return GetFileType((HANDLE)_get_osfhandle(2)) == FILE_TYPE_CHAR;
-}
-
-}
diff --git a/support/lib/System/Win32/Program.inc b/support/lib/System/Win32/Program.inc
deleted file mode 100644
index 60e9e41..0000000
--- a/support/lib/System/Win32/Program.inc
+++ /dev/null
@@ -1,284 +0,0 @@
-//===- Win32/Program.cpp - Win32 Program Implementation ------- -*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of the Program class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include <cstdio>
-#include <malloc.h>
-#include <io.h>
-#include <fcntl.h>
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code 
-//===          and must not be UNIX code
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-using namespace sys;
-
-// This function just uses the PATH environment variable to find the program.
-Path
-Program::FindProgramByName(const std::string& progName) {
-
-  // Check some degenerate cases
-  if (progName.length() == 0) // no program
-    return Path();
-  Path temp;
-  if (!temp.set(progName)) // invalid name
-    return Path();
-  if (temp.canExecute()) // already executable as is
-    return temp;
-
-  // At this point, the file name is valid and its not executable.
-  // Let Windows search for it.
-  char buffer[MAX_PATH];
-  char *dummy = NULL;
-  DWORD len = SearchPath(NULL, progName.c_str(), ".exe", MAX_PATH,
-                         buffer, &dummy);
-
-  // See if it wasn't found.
-  if (len == 0)
-    return Path();
-
-  // See if we got the entire path.
-  if (len < MAX_PATH)
-    return Path(buffer);
-
-  // Buffer was too small; grow and retry.
-  while (true) {
-    char *b = reinterpret_cast<char *>(_alloca(len+1));
-    DWORD len2 = SearchPath(NULL, progName.c_str(), ".exe", len+1, b, &dummy);
-
-    // It is unlikely the search failed, but it's always possible some file
-    // was added or removed since the last search, so be paranoid...
-    if (len2 == 0)
-      return Path();
-    else if (len2 <= len)
-      return Path(b);
-
-    len = len2;
-  }
-}
-
-static HANDLE RedirectIO(const Path *path, int fd, std::string* ErrMsg) {
-  HANDLE h;
-  if (path == 0) {
-    DuplicateHandle(GetCurrentProcess(), (HANDLE)_get_osfhandle(fd),
-                    GetCurrentProcess(), &h,
-                    0, TRUE, DUPLICATE_SAME_ACCESS);
-    return h;
-  }
-
-  const char *fname = path->toString().c_str();
-  if (*fname == 0)
-    fname = "NUL";
-
-  SECURITY_ATTRIBUTES sa;
-  sa.nLength = sizeof(sa);
-  sa.lpSecurityDescriptor = 0;
-  sa.bInheritHandle = TRUE;
-
-  h = CreateFile(fname, fd ? GENERIC_WRITE : GENERIC_READ, FILE_SHARE_READ,
-                 &sa, fd == 0 ? OPEN_EXISTING : CREATE_ALWAYS,
-                 FILE_ATTRIBUTE_NORMAL, NULL);
-  if (h == INVALID_HANDLE_VALUE) {
-    MakeErrMsg(ErrMsg, std::string(fname) + ": Can't open file for " +
-        (fd ? "input: " : "output: "));
-  }
-
-  return h;
-}
-
-#ifdef __MINGW32__
-  // Due to unknown reason, mingw32's w32api doesn't have this declaration.
-  extern "C"
-  BOOL WINAPI SetInformationJobObject(HANDLE hJob,
-                                      JOBOBJECTINFOCLASS JobObjectInfoClass,
-                                      LPVOID lpJobObjectInfo,
-                                      DWORD cbJobObjectInfoLength);
-#endif
-  
-int 
-Program::ExecuteAndWait(const Path& path, 
-                        const char** args,
-                        const char** envp,
-                        const Path** redirects,
-                        unsigned secondsToWait,
-                        unsigned memoryLimit,
-                        std::string* ErrMsg) {
-  if (!path.canExecute()) {
-    if (ErrMsg)
-      *ErrMsg = "program not executable";
-    return -1;
-  }
-
-  // Windows wants a command line, not an array of args, to pass to the new
-  // process.  We have to concatenate them all, while quoting the args that
-  // have embedded spaces.
-
-  // First, determine the length of the command line.
-  unsigned len = 0;
-  for (unsigned i = 0; args[i]; i++) {
-    len += strlen(args[i]) + 1;
-    if (strchr(args[i], ' '))
-      len += 2;
-  }
-
-  // Now build the command line.
-  char *command = reinterpret_cast<char *>(_alloca(len));
-  char *p = command;
-
-  for (unsigned i = 0; args[i]; i++) {
-    const char *arg = args[i];
-    size_t len = strlen(arg);
-    bool needsQuoting = strchr(arg, ' ') != 0;
-    if (needsQuoting)
-      *p++ = '"';
-    memcpy(p, arg, len);
-    p += len;
-    if (needsQuoting)
-      *p++ = '"';
-    *p++ = ' ';
-  }
-
-  *p = 0;
-
-  // Create a child process.
-  STARTUPINFO si;
-  memset(&si, 0, sizeof(si));
-  si.cb = sizeof(si);
-  si.hStdInput = INVALID_HANDLE_VALUE;
-  si.hStdOutput = INVALID_HANDLE_VALUE;
-  si.hStdError = INVALID_HANDLE_VALUE;
-
-  if (redirects) {
-    si.dwFlags = STARTF_USESTDHANDLES;
-    
-    si.hStdInput = RedirectIO(redirects[0], 0, ErrMsg);
-    if (si.hStdInput == INVALID_HANDLE_VALUE) {
-      MakeErrMsg(ErrMsg, "can't redirect stdin");
-      return -1;
-    }
-    si.hStdOutput = RedirectIO(redirects[1], 1, ErrMsg);
-    if (si.hStdOutput == INVALID_HANDLE_VALUE) {
-      CloseHandle(si.hStdInput);
-      MakeErrMsg(ErrMsg, "can't redirect stdout");
-      return -1;
-    }
-    if (redirects[1] && redirects[2] && *(redirects[1]) != *(redirects[2])) {
-      si.hStdError = RedirectIO(redirects[2], 2, ErrMsg);
-      if (si.hStdError == INVALID_HANDLE_VALUE) {
-        CloseHandle(si.hStdInput);
-        CloseHandle(si.hStdOutput);
-        MakeErrMsg(ErrMsg, "can't redirect stderr");
-        return -1;
-      }
-    } else {
-      DuplicateHandle(GetCurrentProcess(), si.hStdOutput,
-                      GetCurrentProcess(), &si.hStdError,
-                      0, TRUE, DUPLICATE_SAME_ACCESS);
-    }
-  }
-  
-  PROCESS_INFORMATION pi;
-  memset(&pi, 0, sizeof(pi));
-
-  fflush(stdout);
-  fflush(stderr);
-  BOOL rc = CreateProcess(path.c_str(), command, NULL, NULL, FALSE, 0,
-                          envp, NULL, &si, &pi);
-  DWORD err = GetLastError();
-
-  // Regardless of whether the process got created or not, we are done with
-  // the handles we created for it to inherit.
-  CloseHandle(si.hStdInput);
-  CloseHandle(si.hStdOutput);
-  CloseHandle(si.hStdError);
-
-  // Now return an error if the process didn't get created.
-  if (!rc)
-  {
-    SetLastError(err);
-    MakeErrMsg(ErrMsg, std::string("Couldn't execute program '") + 
-               path.toString() + "'");
-    return -1;
-  }
-
-  // Make sure these get closed no matter what.
-  AutoHandle hProcess(pi.hProcess);
-  AutoHandle hThread(pi.hThread);
-
-  // Assign the process to a job if a memory limit is defined.
-  AutoHandle hJob(0);
-  if (memoryLimit != 0) {
-    hJob = CreateJobObject(0, 0);
-    bool success = false;
-    if (hJob != 0) {
-      JOBOBJECT_EXTENDED_LIMIT_INFORMATION jeli;
-      memset(&jeli, 0, sizeof(jeli));
-      jeli.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_PROCESS_MEMORY;
-      jeli.ProcessMemoryLimit = uintptr_t(memoryLimit) * 1048576;
-      if (SetInformationJobObject(hJob, JobObjectExtendedLimitInformation,
-                                  &jeli, sizeof(jeli))) {
-        if (AssignProcessToJobObject(hJob, pi.hProcess))
-          success = true;
-      }
-    }
-    if (!success) {
-      SetLastError(GetLastError());
-      MakeErrMsg(ErrMsg, std::string("Unable to set memory limit"));
-      TerminateProcess(pi.hProcess, 1);
-      WaitForSingleObject(pi.hProcess, INFINITE);
-      return -1;
-    }
-  }
-
-  // Wait for it to terminate.
-  DWORD millisecondsToWait = INFINITE;
-  if (secondsToWait > 0)
-    millisecondsToWait = secondsToWait * 1000;
-
-  if (WaitForSingleObject(pi.hProcess, millisecondsToWait) == WAIT_TIMEOUT) {
-    if (!TerminateProcess(pi.hProcess, 1)) {
-      MakeErrMsg(ErrMsg, std::string("Failed to terminate timed-out program '")
-          + path.toString() + "'");
-      return -1;
-    }
-    WaitForSingleObject(pi.hProcess, INFINITE);
-  }
-  
-  // Get its exit status.
-  DWORD status;
-  rc = GetExitCodeProcess(pi.hProcess, &status);
-  err = GetLastError();
-
-  if (!rc) {
-    SetLastError(err);
-    MakeErrMsg(ErrMsg, std::string("Failed getting status for program '") + 
-               path.toString() + "'");
-    return -1;
-  }
-
-  return status;
-}
-
-bool Program::ChangeStdinToBinary(){
-  int result = _setmode( _fileno(stdin), _O_BINARY );
-  return result == -1;
-}
-
-bool Program::ChangeStdoutToBinary(){
-  int result = _setmode( _fileno(stdout), _O_BINARY );
-  return result == -1;
-}
-
-}
diff --git a/support/lib/System/Win32/Signals.inc b/support/lib/System/Win32/Signals.inc
deleted file mode 100644
index 7da0c75..0000000
--- a/support/lib/System/Win32/Signals.inc
+++ /dev/null
@@ -1,287 +0,0 @@
-//===- Win32/Signals.cpp - Win32 Signals Implementation ---------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include <stdio.h>
-#include <vector>
-
-#ifdef __MINGW32__
- #include <imagehlp.h>
-#else
- #include <dbghelp.h>
-#endif
-#include <psapi.h>
-
-#ifdef __MINGW32__
- #if ((HAVE_LIBIMAGEHLP != 1) || (HAVE_LIBPSAPI != 1))
-  #error "libimagehlp.a & libpsapi.a should be present"
- #endif
-#else
- #pragma comment(lib, "psapi.lib")
- #pragma comment(lib, "dbghelp.lib")
-#endif
-
-// Forward declare.
-static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep);
-static BOOL WINAPI LLVMConsoleCtrlHandler(DWORD dwCtrlType);
-
-// InterruptFunction - The function to call if ctrl-c is pressed.
-static void (*InterruptFunction)() = 0;
-
-static std::vector<llvm::sys::Path> *FilesToRemove = NULL;
-static std::vector<llvm::sys::Path> *DirectoriesToRemove = NULL;
-static bool RegisteredUnhandledExceptionFilter = false;
-static bool CleanupExecuted = false;
-static PTOP_LEVEL_EXCEPTION_FILTER OldFilter = NULL;
-
-// Windows creates a new thread to execute the console handler when an event
-// (such as CTRL/C) occurs.  This causes concurrency issues with the above
-// globals which this critical section addresses.
-static CRITICAL_SECTION CriticalSection;
-
-namespace llvm {
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code 
-//===          and must not be UNIX code
-//===----------------------------------------------------------------------===//
-
-
-static void RegisterHandler() { 
-  if (RegisteredUnhandledExceptionFilter) {
-    EnterCriticalSection(&CriticalSection);
-    return;
-  }
-
-  // Now's the time to create the critical section.  This is the first time
-  // through here, and there's only one thread.
-  InitializeCriticalSection(&CriticalSection);
-
-  // Enter it immediately.  Now if someone hits CTRL/C, the console handler
-  // can't proceed until the globals are updated.
-  EnterCriticalSection(&CriticalSection);
-
-  RegisteredUnhandledExceptionFilter = true;
-  OldFilter = SetUnhandledExceptionFilter(LLVMUnhandledExceptionFilter);
-  SetConsoleCtrlHandler(LLVMConsoleCtrlHandler, TRUE);
-
-  // IMPORTANT NOTE: Caller must call LeaveCriticalSection(&CriticalSection) or
-  // else multi-threading problems will ensue.
-}
-
-// RemoveFileOnSignal - The public API
-bool sys::RemoveFileOnSignal(const sys::Path &Filename, std::string* ErrMsg) {
-  RegisterHandler();
-
-  if (CleanupExecuted) {
-    if (ErrMsg)
-      *ErrMsg = "Process terminating -- cannot register for removal";
-    return true;
-  }
-
-  if (FilesToRemove == NULL)
-    FilesToRemove = new std::vector<sys::Path>;
-
-  FilesToRemove->push_back(Filename);
-
-  LeaveCriticalSection(&CriticalSection);
-  return false;
-}
-
-// RemoveDirectoryOnSignal - The public API
-bool sys::RemoveDirectoryOnSignal(const sys::Path& path, std::string* ErrMsg) {
-  // Not a directory?
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi)) {
-    MakeErrMsg(ErrMsg, path.toString() + ": can't get status of file");
-    return true;
-  }
-    
-  if (!(fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
-    if (ErrMsg)
-      *ErrMsg = path.toString() + ": not a directory";
-    return true;
-  }
-
-  RegisterHandler();
-
-  if (CleanupExecuted) {
-    if (ErrMsg)
-      *ErrMsg = "Process terminating -- cannot register for removal";
-    return true;
-  }
-
-  if (DirectoriesToRemove == NULL)
-    DirectoriesToRemove = new std::vector<sys::Path>;
-  DirectoriesToRemove->push_back(path);
-
-  LeaveCriticalSection(&CriticalSection);
-  return false;
-}
-
-/// PrintStackTraceOnErrorSignal - When an error signal (such as SIBABRT or
-/// SIGSEGV) is delivered to the process, print a stack trace and then exit.
-void sys::PrintStackTraceOnErrorSignal() {
-  RegisterHandler();
-  LeaveCriticalSection(&CriticalSection);
-}
-
-
-void sys::SetInterruptFunction(void (*IF)()) {
-  RegisterHandler();
-  InterruptFunction = IF;
-  LeaveCriticalSection(&CriticalSection);
-}
-}
-
-static void Cleanup() {
-  EnterCriticalSection(&CriticalSection);
-
-  // Prevent other thread from registering new files and directories for
-  // removal, should we be executing because of the console handler callback.
-  CleanupExecuted = true;
-
-  // FIXME: open files cannot be deleted.
-
-  if (FilesToRemove != NULL)
-    while (!FilesToRemove->empty()) {
-      try {
-        FilesToRemove->back().eraseFromDisk();
-      } catch (...) {
-      }
-      FilesToRemove->pop_back();
-    }
-
-  if (DirectoriesToRemove != NULL)
-    while (!DirectoriesToRemove->empty()) {
-      try {
-        DirectoriesToRemove->back().eraseFromDisk(true);
-      } catch (...) {
-      }
-      DirectoriesToRemove->pop_back();
-    }
-
-  LeaveCriticalSection(&CriticalSection);
-}
-
-static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep) {
-  try {
-    Cleanup();
-
-    // Initialize the STACKFRAME structure.
-    STACKFRAME StackFrame;
-    memset(&StackFrame, 0, sizeof(StackFrame));
-
-    StackFrame.AddrPC.Offset = ep->ContextRecord->Eip;
-    StackFrame.AddrPC.Mode = AddrModeFlat;
-    StackFrame.AddrStack.Offset = ep->ContextRecord->Esp;
-    StackFrame.AddrStack.Mode = AddrModeFlat;
-    StackFrame.AddrFrame.Offset = ep->ContextRecord->Ebp;
-    StackFrame.AddrFrame.Mode = AddrModeFlat;
-
-    HANDLE hProcess = GetCurrentProcess();
-    HANDLE hThread = GetCurrentThread();
-
-    // Initialize the symbol handler.
-    SymSetOptions(SYMOPT_DEFERRED_LOADS|SYMOPT_LOAD_LINES);
-    SymInitialize(hProcess, NULL, TRUE);
-
-    while (true) {
-      if (!StackWalk(IMAGE_FILE_MACHINE_I386, hProcess, hThread, &StackFrame,
-                     ep->ContextRecord, NULL, SymFunctionTableAccess,
-                     SymGetModuleBase, NULL)) {
-        break;
-      }
-
-      if (StackFrame.AddrFrame.Offset == 0)
-        break;
-
-      // Print the PC in hexadecimal.
-      DWORD PC = StackFrame.AddrPC.Offset;
-      fprintf(stderr, "%08X", PC);
-
-      // Print the parameters.  Assume there are four.
-      fprintf(stderr, " (0x%08X 0x%08X 0x%08X 0x%08X)", StackFrame.Params[0],
-              StackFrame.Params[1], StackFrame.Params[2], StackFrame.Params[3]);
-
-      // Verify the PC belongs to a module in this process.
-      if (!SymGetModuleBase(hProcess, PC)) {
-        fputs(" <unknown module>\n", stderr);
-        continue;
-      }
-
-      // Print the symbol name.
-      char buffer[512];
-      IMAGEHLP_SYMBOL *symbol = reinterpret_cast<IMAGEHLP_SYMBOL *>(buffer);
-      memset(symbol, 0, sizeof(IMAGEHLP_SYMBOL));
-      symbol->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL);
-      symbol->MaxNameLength = 512 - sizeof(IMAGEHLP_SYMBOL);
-
-      DWORD dwDisp;
-      if (!SymGetSymFromAddr(hProcess, PC, &dwDisp, symbol)) {
-        fputc('\n', stderr);
-        continue;
-      }
-
-      buffer[511] = 0;
-      if (dwDisp > 0)
-        fprintf(stderr, ", %s()+%04d bytes(s)", symbol->Name, dwDisp);
-      else
-        fprintf(stderr, ", %s", symbol->Name);
-
-      // Print the source file and line number information.
-      IMAGEHLP_LINE line;
-      memset(&line, 0, sizeof(line));
-      line.SizeOfStruct = sizeof(line);
-      if (SymGetLineFromAddr(hProcess, PC, &dwDisp, &line)) {
-        fprintf(stderr, ", %s, line %d", line.FileName, line.LineNumber);
-        if (dwDisp > 0)
-          fprintf(stderr, "+%04d byte(s)", dwDisp);
-      }
-
-      fputc('\n', stderr);
-    }
-  } catch (...) {
-      assert(!"Crashed in LLVMUnhandledExceptionFilter");
-  }
-
-  // Allow dialog box to pop up allowing choice to start debugger.
-  if (OldFilter)
-    return (*OldFilter)(ep);
-  else
-    return EXCEPTION_CONTINUE_SEARCH;
-}
-
-static BOOL WINAPI LLVMConsoleCtrlHandler(DWORD dwCtrlType) {
-  // We are running in our very own thread, courtesy of Windows.
-  EnterCriticalSection(&CriticalSection);
-  Cleanup();
-
-  // If an interrupt function has been set, go and run one it; otherwise,
-  // the process dies.
-  void (*IF)() = InterruptFunction;
-  InterruptFunction = 0;      // Don't run it on another CTRL-C.
-
-  if (IF) {
-    // Note: if the interrupt function throws an exception, there is nothing
-    // to catch it in this thread so it will kill the process.
-    IF();                     // Run it now.
-    LeaveCriticalSection(&CriticalSection);
-    return TRUE;              // Don't kill the process.
-  }
-
-  // Allow normal processing to take place; i.e., the process dies.
-  LeaveCriticalSection(&CriticalSection);
-  return FALSE;
-}
-
diff --git a/support/lib/System/Win32/TimeValue.inc b/support/lib/System/Win32/TimeValue.inc
deleted file mode 100644
index ce2eb8d..0000000
--- a/support/lib/System/Win32/TimeValue.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-//===- Win32/TimeValue.cpp - Win32 TimeValue Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Win32 implementation of the TimeValue class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Win32.h"
-#include <time.h>
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Win32 specific code.
-//===----------------------------------------------------------------------===//
-
-TimeValue TimeValue::now() {
-  uint64_t ft;
-  GetSystemTimeAsFileTime(reinterpret_cast<FILETIME *>(&ft));
-
-  TimeValue t(0, 0);
-  t.fromWin32Time(ft);
-  return t;
-}
-
-std::string TimeValue::toString() const {
-#ifdef __MINGW32__
-  // This ban may be lifted by either:
-  // (i) a future MinGW version other than 1.0 inherents the __time64_t type, or
-  // (ii) configure tests for either the time_t or __time64_t type.
-  time_t ourTime = time_t(this->toEpochTime());
-  struct tm *lt = ::localtime(&ourTime);
-#else
-  __time64_t ourTime = this->toEpochTime();
-  struct tm *lt = ::_localtime64(&ourTime);
-#endif
-
-  char buffer[25];
-  strftime(buffer, 25, "%a %b %d %H:%M:%S %Y", lt);
-  return std::string(buffer);
-}
-
-
-}
diff --git a/support/lib/System/Win32/Win32.h b/support/lib/System/Win32/Win32.h
deleted file mode 100644
index 71f0be5..0000000
--- a/support/lib/System/Win32/Win32.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//===- Win32/Win32.h - Common Win32 Include File ----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Jeff Cohen and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines things specific to Win32 implementations.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic Win32 code that
-//===          is guaranteed to work on *all* Win32 variants.
-//===----------------------------------------------------------------------===//
-
-// Require at least Windows 2000 API.
-#define _WIN32_WINNT 0x0500
-
-#include "llvm/Config/config.h"     // Get autoconf configuration settings
-#include "windows.h"
-#include <cassert>
-#include <string>
-
-inline bool MakeErrMsg(std::string* ErrMsg, const std::string& prefix) {
-  if (!ErrMsg)
-    return true;
-  char *buffer = NULL;
-  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
-      NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL);
-  *ErrMsg = prefix + buffer;
-  LocalFree(buffer);
-  return true;
-}
-
-class AutoHandle {
-  HANDLE handle;
-
-public:
-  AutoHandle(HANDLE h) : handle(h) {}
-
-  ~AutoHandle() {
-    if (handle)
-      CloseHandle(handle);
-  }
-
-  operator HANDLE() {
-    return handle;
-  }
-
-  AutoHandle &operator=(HANDLE h) {
-    handle = h;
-    return *this;
-  }
-};
diff --git a/support/lib/System/ltdl.c b/support/lib/System/ltdl.c
deleted file mode 100644
index 67631be..0000000
--- a/support/lib/System/ltdl.c
+++ /dev/null
@@ -1,4523 +0,0 @@
-/* ltdl.c -- system independent dlopen wrapper
-   Copyright (C) 1998, 1999, 2000, 2004, 2005  Free Software Foundation, Inc.
-   Originally by Thomas Tanner <tanner@ffii.org>
-   This file is part of GNU Libtool.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301  USA
-
-*/
-
-#include "llvm/Config/config.h"
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#if HAVE_UNISTD_H
-#  include <unistd.h>
-#endif
-
-#if HAVE_STDIO_H
-#  include <stdio.h>
-#endif
-
-/* Include the header defining malloc.  On K&R C compilers,
-   that's <malloc.h>, on ANSI C and ISO C compilers, that's <stdlib.h>.  */
-#if HAVE_STDLIB_H
-#  include <stdlib.h>
-#else
-#  if HAVE_MALLOC_H
-#    include <malloc.h>
-#  endif
-#endif
-
-#if HAVE_STRING_H
-#  include <string.h>
-#else
-#  if HAVE_STRINGS_H
-#    include <strings.h>
-#  endif
-#endif
-
-#if HAVE_CTYPE_H
-#  include <ctype.h>
-#endif
-
-#if HAVE_MEMORY_H
-#  include <memory.h>
-#endif
-
-#if HAVE_ERRNO_H
-#  include <errno.h>
-#endif
-
-
-#ifndef __WINDOWS__
-#  ifdef __WIN32__
-#    define __WINDOWS__
-#  endif
-#endif
-
-
-#undef LT_USE_POSIX_DIRENT
-#ifdef HAVE_CLOSEDIR
-#  ifdef HAVE_OPENDIR
-#    ifdef HAVE_READDIR
-#      ifdef HAVE_DIRENT_H
-#        define LT_USE_POSIX_DIRENT
-#      endif /* HAVE_DIRENT_H */
-#    endif /* HAVE_READDIR */
-#  endif /* HAVE_OPENDIR */
-#endif /* HAVE_CLOSEDIR */
-
-
-#undef LT_USE_WINDOWS_DIRENT_EMULATION
-#ifndef LT_USE_POSIX_DIRENT
-#  ifdef __WINDOWS__
-#    define LT_USE_WINDOWS_DIRENT_EMULATION
-#  endif /* __WINDOWS__ */
-#endif /* LT_USE_POSIX_DIRENT */
-
-
-#ifdef LT_USE_POSIX_DIRENT
-#  include <dirent.h>
-#  define LT_D_NAMLEN(dirent) (strlen((dirent)->d_name))
-#else
-#  ifdef LT_USE_WINDOWS_DIRENT_EMULATION
-#    define LT_D_NAMLEN(dirent) (strlen((dirent)->d_name))
-#  else
-#    define dirent direct
-#    define LT_D_NAMLEN(dirent) ((dirent)->d_namlen)
-#    if HAVE_SYS_NDIR_H
-#      include <sys/ndir.h>
-#    endif
-#    if HAVE_SYS_DIR_H
-#      include <sys/dir.h>
-#    endif
-#    if HAVE_NDIR_H
-#      include <ndir.h>
-#    endif
-#  endif
-#endif
-
-#if HAVE_ARGZ_H
-#  include <argz.h>
-#endif
-
-#if HAVE_ASSERT_H
-#  include <assert.h>
-#else
-#  define assert(arg)	((void) 0)
-#endif
-
-#include "ltdl.h"
-
-#if WITH_DMALLOC
-#  include <dmalloc.h>
-#endif
-
-
-
-
-/* --- WINDOWS SUPPORT --- */
-
-
-#ifdef DLL_EXPORT
-#  define LT_GLOBAL_DATA	__declspec(dllexport)
-#else
-#  define LT_GLOBAL_DATA
-#endif
-
-/* fopen() mode flags for reading a text file */
-#undef	LT_READTEXT_MODE
-#ifdef __WINDOWS__
-#  define LT_READTEXT_MODE "rt"
-#else
-#  define LT_READTEXT_MODE "r"
-#endif
-
-#ifdef LT_USE_WINDOWS_DIRENT_EMULATION
-
-#include <windows.h>
-
-#define dirent lt_dirent
-#define DIR lt_DIR
-
-struct dirent
-{
-  char d_name[2048];
-  int  d_namlen;
-};
-
-typedef struct _DIR
-{
-  HANDLE hSearch;
-  WIN32_FIND_DATA Win32FindData;
-  BOOL firsttime;
-  struct dirent file_info;
-} DIR;
-
-#endif /* LT_USE_WINDOWS_DIRENT_EMULATION */
-
-
-/* --- MANIFEST CONSTANTS --- */
-
-
-/* Standard libltdl search path environment variable name  */
-#undef  LTDL_SEARCHPATH_VAR
-#define LTDL_SEARCHPATH_VAR	"LTDL_LIBRARY_PATH"
-
-/* Standard libtool archive file extension.  */
-#undef  LTDL_ARCHIVE_EXT
-#define LTDL_ARCHIVE_EXT	".la"
-
-/* max. filename length */
-#ifndef LT_FILENAME_MAX
-#  define LT_FILENAME_MAX	1024
-#endif
-
-/* This is the maximum symbol size that won't require malloc/free */
-#undef	LT_SYMBOL_LENGTH
-#define LT_SYMBOL_LENGTH	128
-
-/* This accounts for the _LTX_ separator */
-#undef	LT_SYMBOL_OVERHEAD
-#define LT_SYMBOL_OVERHEAD	5
-
-
-
-
-/* --- MEMORY HANDLING --- */
-
-
-/* These are the functions used internally.  In addition to making
-   use of the associated function pointers above, they also perform
-   error handling.  */
-static char   *lt_estrdup	LT_PARAMS((const char *str));
-static lt_ptr lt_emalloc	LT_PARAMS((size_t size));
-static lt_ptr lt_erealloc	LT_PARAMS((lt_ptr addr, size_t size));
-
-/* static lt_ptr rpl_realloc	LT_PARAMS((lt_ptr ptr, size_t size)); */
-#define rpl_realloc realloc
-
-/* These are the pointers that can be changed by the caller:  */
-LT_GLOBAL_DATA lt_ptr (*lt_dlmalloc)	LT_PARAMS((size_t size))
- 			= (lt_ptr (*) LT_PARAMS((size_t))) malloc;
-LT_GLOBAL_DATA lt_ptr (*lt_dlrealloc)	LT_PARAMS((lt_ptr ptr, size_t size))
- 			= (lt_ptr (*) LT_PARAMS((lt_ptr, size_t))) rpl_realloc;
-LT_GLOBAL_DATA void   (*lt_dlfree)	LT_PARAMS((lt_ptr ptr))
- 			= (void (*) LT_PARAMS((lt_ptr))) free;
-
-/* The following macros reduce the amount of typing needed to cast
-   assigned memory.  */
-#if WITH_DMALLOC
-
-#define LT_DLMALLOC(tp, n)	((tp *) xmalloc ((n) * sizeof(tp)))
-#define LT_DLREALLOC(tp, p, n)	((tp *) xrealloc ((p), (n) * sizeof(tp)))
-#define LT_DLFREE(p)						\
-	LT_STMT_START { if (p) (p) = (xfree (p), (lt_ptr) 0); } LT_STMT_END
-
-#define LT_EMALLOC(tp, n)	((tp *) xmalloc ((n) * sizeof(tp)))
-#define LT_EREALLOC(tp, p, n)	((tp *) xrealloc ((p), (n) * sizeof(tp)))
-
-#else
-
-#define LT_DLMALLOC(tp, n)	((tp *) lt_dlmalloc ((n) * sizeof(tp)))
-#define LT_DLREALLOC(tp, p, n)	((tp *) lt_dlrealloc ((p), (n) * sizeof(tp)))
-#define LT_DLFREE(p)						\
-	LT_STMT_START { if (p) (p) = (lt_dlfree (p), (lt_ptr) 0); } LT_STMT_END
-
-#define LT_EMALLOC(tp, n)	((tp *) lt_emalloc ((n) * sizeof(tp)))
-#define LT_EREALLOC(tp, p, n)	((tp *) lt_erealloc ((p), (n) * sizeof(tp)))
-
-#endif
-
-#define LT_DLMEM_REASSIGN(p, q)			LT_STMT_START {	\
-	if ((p) != (q)) { if (p) lt_dlfree (p); (p) = (q); (q) = 0; }	\
-						} LT_STMT_END
-
-
-/* --- REPLACEMENT FUNCTIONS --- */
-
-
-#undef strdup
-#define strdup rpl_strdup
-
-static char *strdup LT_PARAMS((const char *str));
-
-static char *
-strdup(str)
-     const char *str;
-{
-  char *tmp = 0;
-
-  if (str)
-    {
-      tmp = LT_DLMALLOC (char, 1+ strlen (str));
-      if (tmp)
-	{
-	  strcpy(tmp, str);
-	}
-    }
-
-  return tmp;
-}
-
-
-#if ! HAVE_STRCMP
-
-#undef strcmp
-#define strcmp rpl_strcmp
-
-static int strcmp LT_PARAMS((const char *str1, const char *str2));
-
-static int
-strcmp (str1, str2)
-     const char *str1;
-     const char *str2;
-{
-  if (str1 == str2)
-    return 0;
-  if (str1 == 0)
-    return -1;
-  if (str2 == 0)
-    return 1;
-
-  for (;*str1 && *str2; ++str1, ++str2)
-    {
-      if (*str1 != *str2)
-	break;
-    }
-
-  return (int)(*str1 - *str2);
-}
-#endif
-
-
-#if ! HAVE_STRCHR
-
-#  if HAVE_INDEX
-#    define strchr index
-#  else
-#    define strchr rpl_strchr
-
-static const char *strchr LT_PARAMS((const char *str, int ch));
-
-static const char*
-strchr(str, ch)
-     const char *str;
-     int ch;
-{
-  const char *p;
-
-  for (p = str; *p != (char)ch && *p != LT_EOS_CHAR; ++p)
-    /*NOWORK*/;
-
-  return (*p == (char)ch) ? p : 0;
-}
-
-#  endif
-#endif /* !HAVE_STRCHR */
-
-
-#if ! HAVE_STRRCHR
-
-#  if HAVE_RINDEX
-#    define strrchr rindex
-#  else
-#    define strrchr rpl_strrchr
-
-static const char *strrchr LT_PARAMS((const char *str, int ch));
-
-static const char*
-strrchr(str, ch)
-     const char *str;
-     int ch;
-{
-  const char *p, *q = 0;
-
-  for (p = str; *p != LT_EOS_CHAR; ++p)
-    {
-      if (*p == (char) ch)
-	{
-	  q = p;
-	}
-    }
-
-  return q;
-}
-
-# endif
-#endif
-
-/* NOTE:  Neither bcopy nor the memcpy implementation below can
-          reliably handle copying in overlapping areas of memory.  Use
-          memmove (for which there is a fallback implmentation below)
-	  if you need that behaviour.  */
-#if ! HAVE_MEMCPY
-
-#  if HAVE_BCOPY
-#    define memcpy(dest, src, size)	bcopy (src, dest, size)
-#  else
-#    define memcpy rpl_memcpy
-
-static lt_ptr memcpy LT_PARAMS((lt_ptr dest, const lt_ptr src, size_t size));
-
-static lt_ptr
-memcpy (dest, src, size)
-     lt_ptr dest;
-     const lt_ptr src;
-     size_t size;
-{
-  const char *	s = src;
-  char *	d = dest;
-  size_t	i = 0;
-
-  for (i = 0; i < size; ++i)
-    {
-      d[i] = s[i];
-    }
-
-  return dest;
-}
-
-#  endif /* !HAVE_BCOPY */
-#endif   /* !HAVE_MEMCPY */
-
-#if ! HAVE_MEMMOVE
-#  define memmove rpl_memmove
-
-static lt_ptr memmove LT_PARAMS((lt_ptr dest, const lt_ptr src, size_t size));
-
-static lt_ptr
-memmove (dest, src, size)
-     lt_ptr dest;
-     const lt_ptr src;
-     size_t size;
-{
-  const char *	s = src;
-  char *	d = dest;
-  size_t	i;
-
-  if (d < s)
-    for (i = 0; i < size; ++i)
-      {
-	d[i] = s[i];
-      }
-  else if (d > s && size > 0)
-    for (i = size -1; ; --i)
-      {
-	d[i] = s[i];
-	if (i == 0)
-	  break;
-      }
-
-  return dest;
-}
-
-#endif /* !HAVE_MEMMOVE */
-
-#ifdef LT_USE_WINDOWS_DIRENT_EMULATION
-
-static void closedir LT_PARAMS((DIR *entry));
-
-static void
-closedir(entry)
-  DIR *entry;
-{
-  assert(entry != (DIR *) NULL);
-  FindClose(entry->hSearch);
-  lt_dlfree((lt_ptr)entry);
-}
-
-
-static DIR * opendir LT_PARAMS((const char *path));
-
-static DIR*
-opendir (path)
-  const char *path;
-{
-  char file_specification[LT_FILENAME_MAX];
-  DIR *entry;
-
-  assert(path != (char *) NULL);
-  /* allow space for: path + '\\' '\\' '*' '.' '*' + '\0' */
-  (void) strncpy (file_specification, path, LT_FILENAME_MAX-6);
-  file_specification[LT_FILENAME_MAX-6] = LT_EOS_CHAR;
-  (void) strcat(file_specification,"\\");
-  entry = LT_DLMALLOC (DIR,sizeof(DIR));
-  if (entry != (DIR *) 0)
-    {
-      entry->firsttime = TRUE;
-      entry->hSearch = FindFirstFile(file_specification,&entry->Win32FindData);
-    }
-  if (entry->hSearch == INVALID_HANDLE_VALUE)
-    {
-      (void) strcat(file_specification,"\\*.*");
-      entry->hSearch = FindFirstFile(file_specification,&entry->Win32FindData);
-      if (entry->hSearch == INVALID_HANDLE_VALUE)
-        {
-          LT_DLFREE (entry);
-          return (DIR *) 0;
-        }
-    }
-  return(entry);
-}
-
-
-static struct dirent *readdir LT_PARAMS((DIR *entry));
-
-static struct dirent *readdir(entry)
-  DIR *entry;
-{
-  int
-    status;
-
-  if (entry == (DIR *) 0)
-    return((struct dirent *) 0);
-  if (!entry->firsttime)
-    {
-      status = FindNextFile(entry->hSearch,&entry->Win32FindData);
-      if (status == 0)
-        return((struct dirent *) 0);
-    }
-  entry->firsttime = FALSE;
-  (void) strncpy(entry->file_info.d_name,entry->Win32FindData.cFileName,
-    LT_FILENAME_MAX-1);
-  entry->file_info.d_name[LT_FILENAME_MAX - 1] = LT_EOS_CHAR;
-  entry->file_info.d_namlen = strlen(entry->file_info.d_name);
-  return(&entry->file_info);
-}
-
-#endif /* LT_USE_WINDOWS_DIRENT_EMULATION */
-
-/* According to Alexandre Oliva <oliva@lsd.ic.unicamp.br>,
-    ``realloc is not entirely portable''
-   In any case we want to use the allocator supplied by the user without
-   burdening them with an lt_dlrealloc function pointer to maintain.
-   Instead implement our own version (with known boundary conditions)
-   using lt_dlmalloc and lt_dlfree. */
-
-/* #undef realloc
-   #define realloc rpl_realloc
-*/
-#if 0
-  /* You can't (re)define realloc unless you also (re)define malloc.
-     Right now, this code uses the size of the *destination* to decide
-     how much to copy.  That's not right, but you can't know the size
-     of the source unless you know enough about, or wrote malloc.  So
-     this code is disabled... */
-
-static lt_ptr
-realloc (ptr, size)
-     lt_ptr ptr;
-     size_t size;
-{
-  if (size == 0)
-    {
-      /* For zero or less bytes, free the original memory */
-      if (ptr != 0)
-	{
-	  lt_dlfree (ptr);
-	}
-
-      return (lt_ptr) 0;
-    }
-  else if (ptr == 0)
-    {
-      /* Allow reallocation of a NULL pointer.  */
-      return lt_dlmalloc (size);
-    }
-  else
-    {
-      /* Allocate a new block, copy and free the old block.  */
-      lt_ptr mem = lt_dlmalloc (size);
-
-      if (mem)
-	{
-	  memcpy (mem, ptr, size);
-	  lt_dlfree (ptr);
-	}
-
-      /* Note that the contents of PTR are not damaged if there is
-	 insufficient memory to realloc.  */
-      return mem;
-    }
-}
-#endif
-
-
-#if ! HAVE_ARGZ_APPEND
-#  define argz_append rpl_argz_append
-
-static error_t argz_append LT_PARAMS((char **pargz, size_t *pargz_len,
-					const char *buf, size_t buf_len));
-
-static error_t
-argz_append (pargz, pargz_len, buf, buf_len)
-     char **pargz;
-     size_t *pargz_len;
-     const char *buf;
-     size_t buf_len;
-{
-  size_t argz_len;
-  char  *argz;
-
-  assert (pargz);
-  assert (pargz_len);
-  assert ((*pargz && *pargz_len) || (!*pargz && !*pargz_len));
-
-  /* If nothing needs to be appended, no more work is required.  */
-  if (buf_len == 0)
-    return 0;
-
-  /* Ensure there is enough room to append BUF_LEN.  */
-  argz_len = *pargz_len + buf_len;
-  argz = LT_DLREALLOC (char, *pargz, argz_len);
-  if (!argz)
-    return ENOMEM;
-
-  /* Copy characters from BUF after terminating '\0' in ARGZ.  */
-  memcpy (argz + *pargz_len, buf, buf_len);
-
-  /* Assign new values.  */
-  *pargz = argz;
-  *pargz_len = argz_len;
-
-  return 0;
-}
-#endif /* !HAVE_ARGZ_APPEND */
-
-
-#if ! HAVE_ARGZ_CREATE_SEP
-#  define argz_create_sep rpl_argz_create_sep
-
-static error_t argz_create_sep LT_PARAMS((const char *str, int delim,
-					    char **pargz, size_t *pargz_len));
-
-static error_t
-argz_create_sep (str, delim, pargz, pargz_len)
-     const char *str;
-     int delim;
-     char **pargz;
-     size_t *pargz_len;
-{
-  size_t argz_len;
-  char *argz = 0;
-
-  assert (str);
-  assert (pargz);
-  assert (pargz_len);
-
-  /* Make a copy of STR, but replacing each occurrence of
-     DELIM with '\0'.  */
-  argz_len = 1+ LT_STRLEN (str);
-  if (argz_len)
-    {
-      const char *p;
-      char *q;
-
-      argz = LT_DLMALLOC (char, argz_len);
-      if (!argz)
-	return ENOMEM;
-
-      for (p = str, q = argz; *p != LT_EOS_CHAR; ++p)
-	{
-	  if (*p == delim)
-	    {
-	      /* Ignore leading delimiters, and fold consecutive
-		 delimiters in STR into a single '\0' in ARGZ.  */
-	      if ((q > argz) && (q[-1] != LT_EOS_CHAR))
-		*q++ = LT_EOS_CHAR;
-	      else
-		--argz_len;
-	    }
-	  else
-	    *q++ = *p;
-	}
-      /* Copy terminating LT_EOS_CHAR.  */
-      *q = *p;
-    }
-
-  /* If ARGZ_LEN has shrunk to nothing, release ARGZ's memory.  */
-  if (!argz_len)
-    LT_DLFREE (argz);
-
-  /* Assign new values.  */
-  *pargz = argz;
-  *pargz_len = argz_len;
-
-  return 0;
-}
-#endif /* !HAVE_ARGZ_CREATE_SEP */
-
-
-#if ! HAVE_ARGZ_INSERT
-#  define argz_insert rpl_argz_insert
-
-static error_t argz_insert LT_PARAMS((char **pargz, size_t *pargz_len,
-					char *before, const char *entry));
-
-static error_t
-argz_insert (pargz, pargz_len, before, entry)
-     char **pargz;
-     size_t *pargz_len;
-     char *before;
-     const char *entry;
-{
-  assert (pargz);
-  assert (pargz_len);
-  assert (entry && *entry);
-
-  /* No BEFORE address indicates ENTRY should be inserted after the
-     current last element.  */
-  if (!before)
-    return argz_append (pargz, pargz_len, entry, 1+ LT_STRLEN (entry));
-
-  /* This probably indicates a programmer error, but to preserve
-     semantics, scan back to the start of an entry if BEFORE points
-     into the middle of it.  */
-  while ((before > *pargz) && (before[-1] != LT_EOS_CHAR))
-    --before;
-
-  {
-    size_t entry_len	= 1+ LT_STRLEN (entry);
-    size_t argz_len	= *pargz_len + entry_len;
-    size_t offset	= before - *pargz;
-    char   *argz	= LT_DLREALLOC (char, *pargz, argz_len);
-
-    if (!argz)
-      return ENOMEM;
-
-    /* Make BEFORE point to the equivalent offset in ARGZ that it
-       used to have in *PARGZ incase realloc() moved the block.  */
-    before = argz + offset;
-
-    /* Move the ARGZ entries starting at BEFORE up into the new
-       space at the end -- making room to copy ENTRY into the
-       resulting gap.  */
-    memmove (before + entry_len, before, *pargz_len - offset);
-    memcpy  (before, entry, entry_len);
-
-    /* Assign new values.  */
-    *pargz = argz;
-    *pargz_len = argz_len;
-  }
-
-  return 0;
-}
-#endif /* !HAVE_ARGZ_INSERT */
-
-
-#if ! HAVE_ARGZ_NEXT
-#  define argz_next rpl_argz_next
-
-static char *argz_next LT_PARAMS((char *argz, size_t argz_len,
-				    const char *entry));
-
-static char *
-argz_next (argz, argz_len, entry)
-     char *argz;
-     size_t argz_len;
-     const char *entry;
-{
-  assert ((argz && argz_len) || (!argz && !argz_len));
-
-  if (entry)
-    {
-      /* Either ARGZ/ARGZ_LEN is empty, or ENTRY points into an address
-	 within the ARGZ vector.  */
-      assert ((!argz && !argz_len)
-	      || ((argz <= entry) && (entry < (argz + argz_len))));
-
-      /* Move to the char immediately after the terminating
-	 '\0' of ENTRY.  */
-      entry = 1+ strchr (entry, LT_EOS_CHAR);
-
-      /* Return either the new ENTRY, or else NULL if ARGZ is
-	 exhausted.  */
-      return (entry >= argz + argz_len) ? 0 : (char *) entry;
-    }
-  else
-    {
-      /* This should probably be flagged as a programmer error,
-	 since starting an argz_next loop with the iterator set
-	 to ARGZ is safer.  To preserve semantics, handle the NULL
-	 case by returning the start of ARGZ (if any).  */
-      if (argz_len > 0)
-	return argz;
-      else
-	return 0;
-    }
-}
-#endif /* !HAVE_ARGZ_NEXT */
-
-
-
-#if ! HAVE_ARGZ_STRINGIFY
-#  define argz_stringify rpl_argz_stringify
-
-static void argz_stringify LT_PARAMS((char *argz, size_t argz_len,
-				       int sep));
-
-static void
-argz_stringify (argz, argz_len, sep)
-     char *argz;
-     size_t argz_len;
-     int sep;
-{
-  assert ((argz && argz_len) || (!argz && !argz_len));
-
-  if (sep)
-    {
-      --argz_len;		/* don't stringify the terminating EOS */
-      while (--argz_len > 0)
-	{
-	  if (argz[argz_len] == LT_EOS_CHAR)
-	    argz[argz_len] = sep;
-	}
-    }
-}
-#endif /* !HAVE_ARGZ_STRINGIFY */
-
-
-
-
-/* --- TYPE DEFINITIONS -- */
-
-
-/* This type is used for the array of caller data sets in each handler. */
-typedef struct {
-  lt_dlcaller_id	key;
-  lt_ptr		data;
-} lt_caller_data;
-
-
-
-
-/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */
-
-
-/* Extract the diagnostic strings from the error table macro in the same
-   order as the enumerated indices in ltdl.h. */
-
-static const char *lt_dlerror_strings[] =
-  {
-#define LT_ERROR(name, diagnostic)	(diagnostic),
-    lt_dlerror_table
-#undef LT_ERROR
-
-    0
-  };
-
-/* This structure is used for the list of registered loaders. */
-struct lt_dlloader {
-  struct lt_dlloader   *next;
-  const char	       *loader_name;	/* identifying name for each loader */
-  const char	       *sym_prefix;	/* prefix for symbols */
-  lt_module_open       *module_open;
-  lt_module_close      *module_close;
-  lt_find_sym	       *find_sym;
-  lt_dlloader_exit     *dlloader_exit;
-  lt_user_data		dlloader_data;
-};
-
-struct lt_dlhandle_struct {
-  struct lt_dlhandle_struct   *next;
-  lt_dlloader	       *loader;		/* dlopening interface */
-  lt_dlinfo		info;
-  int			depcount;	/* number of dependencies */
-  lt_dlhandle	       *deplibs;	/* dependencies */
-  lt_module		module;		/* system module handle */
-  lt_ptr		system;		/* system specific data */
-  lt_caller_data       *caller_data;	/* per caller associated data */
-  int			flags;		/* various boolean stats */
-};
-
-/* Various boolean flags can be stored in the flags field of an
-   lt_dlhandle_struct... */
-#define LT_DLGET_FLAG(handle, flag) (((handle)->flags & (flag)) == (flag))
-#define LT_DLSET_FLAG(handle, flag) ((handle)->flags |= (flag))
-
-#define LT_DLRESIDENT_FLAG	    (0x01 << 0)
-/* ...add more flags here... */
-
-#define LT_DLIS_RESIDENT(handle)    LT_DLGET_FLAG(handle, LT_DLRESIDENT_FLAG)
-
-
-#define LT_DLSTRERROR(name)	lt_dlerror_strings[LT_CONC(LT_ERROR_,name)]
-
-static	const char	objdir[]		= LTDL_OBJDIR;
-static	const char	archive_ext[]		= LTDL_ARCHIVE_EXT;
-#ifdef	LTDL_SHLIB_EXT
-static	const char	shlib_ext[]		= LTDL_SHLIB_EXT;
-#endif
-#ifdef	LTDL_SYSSEARCHPATH
-static	const char	sys_search_path[]	= LTDL_SYSSEARCHPATH;
-#endif
-
-
-
-
-/* --- MUTEX LOCKING --- */
-
-
-/* Macros to make it easier to run the lock functions only if they have
-   been registered.  The reason for the complicated lock macro is to
-   ensure that the stored error message from the last error is not
-   accidentally erased if the current function doesn't generate an
-   error of its own.  */
-#define LT_DLMUTEX_LOCK()			LT_STMT_START {	\
-	if (lt_dlmutex_lock_func) (*lt_dlmutex_lock_func)();	\
-						} LT_STMT_END
-#define LT_DLMUTEX_UNLOCK()			LT_STMT_START { \
-	if (lt_dlmutex_unlock_func) (*lt_dlmutex_unlock_func)();\
-						} LT_STMT_END
-#define LT_DLMUTEX_SETERROR(errormsg)		LT_STMT_START {	\
-	if (lt_dlmutex_seterror_func)				\
-		(*lt_dlmutex_seterror_func) (errormsg);		\
-	else 	lt_dllast_error = (errormsg);	} LT_STMT_END
-#define LT_DLMUTEX_GETERROR(errormsg)		LT_STMT_START {	\
-	if (lt_dlmutex_seterror_func)				\
-		(errormsg) = (*lt_dlmutex_geterror_func) ();	\
-	else	(errormsg) = lt_dllast_error;	} LT_STMT_END
-
-/* The mutex functions stored here are global, and are necessarily the
-   same for all threads that wish to share access to libltdl.  */
-static	lt_dlmutex_lock	    *lt_dlmutex_lock_func     = 0;
-static	lt_dlmutex_unlock   *lt_dlmutex_unlock_func   = 0;
-static	lt_dlmutex_seterror *lt_dlmutex_seterror_func = 0;
-static	lt_dlmutex_geterror *lt_dlmutex_geterror_func = 0;
-static	const char	    *lt_dllast_error	      = 0;
-
-
-/* Either set or reset the mutex functions.  Either all the arguments must
-   be valid functions, or else all can be NULL to turn off locking entirely.
-   The registered functions should be manipulating a static global lock
-   from the lock() and unlock() callbacks, which needs to be reentrant.  */
-int
-lt_dlmutex_register (lock, unlock, seterror, geterror)
-     lt_dlmutex_lock *lock;
-     lt_dlmutex_unlock *unlock;
-     lt_dlmutex_seterror *seterror;
-     lt_dlmutex_geterror *geterror;
-{
-  lt_dlmutex_unlock *old_unlock = unlock;
-  int		     errors	= 0;
-
-  /* Lock using the old lock() callback, if any.  */
-  LT_DLMUTEX_LOCK ();
-
-  if ((lock && unlock && seterror && geterror)
-      || !(lock || unlock || seterror || geterror))
-    {
-      lt_dlmutex_lock_func     = lock;
-      lt_dlmutex_unlock_func   = unlock;
-      lt_dlmutex_geterror_func = geterror;
-    }
-  else
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_MUTEX_ARGS));
-      ++errors;
-    }
-
-  /* Use the old unlock() callback we saved earlier, if any.  Otherwise
-     record any errors using internal storage.  */
-  if (old_unlock)
-    (*old_unlock) ();
-
-  /* Return the number of errors encountered during the execution of
-     this function.  */
-  return errors;
-}
-
-
-
-
-/* --- ERROR HANDLING --- */
-
-
-static	const char    **user_error_strings	= 0;
-static	int		errorcount		= LT_ERROR_MAX;
-
-int
-lt_dladderror (diagnostic)
-     const char *diagnostic;
-{
-  int		errindex = 0;
-  int		result	 = -1;
-  const char  **temp     = (const char **) 0;
-
-  assert (diagnostic);
-
-  LT_DLMUTEX_LOCK ();
-
-  errindex = errorcount - LT_ERROR_MAX;
-  temp = LT_EREALLOC (const char *, user_error_strings, 1 + errindex);
-  if (temp)
-    {
-      user_error_strings		= temp;
-      user_error_strings[errindex]	= diagnostic;
-      result				= errorcount++;
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return result;
-}
-
-int
-lt_dlseterror (errindex)
-     int errindex;
-{
-  int		errors	 = 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  if (errindex >= errorcount || errindex < 0)
-    {
-      /* Ack!  Error setting the error message! */
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_ERRORCODE));
-      ++errors;
-    }
-  else if (errindex < LT_ERROR_MAX)
-    {
-      /* No error setting the error message! */
-      LT_DLMUTEX_SETERROR (lt_dlerror_strings[errindex]);
-    }
-  else
-    {
-      /* No error setting the error message! */
-      LT_DLMUTEX_SETERROR (user_error_strings[errindex - LT_ERROR_MAX]);
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-static lt_ptr
-lt_emalloc (size)
-     size_t size;
-{
-  lt_ptr mem = lt_dlmalloc (size);
-  if (size && !mem)
-    LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_MEMORY));
-  return mem;
-}
-
-static lt_ptr
-lt_erealloc (addr, size)
-     lt_ptr addr;
-     size_t size;
-{
-  lt_ptr mem = lt_dlrealloc (addr, size);
-  if (size && !mem)
-    LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_MEMORY));
-  return mem;
-}
-
-static char *
-lt_estrdup (str)
-     const char *str;
-{
-  char *copy = strdup (str);
-  if (LT_STRLEN (str) && !copy)
-    LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_MEMORY));
-  return copy;
-}
-
-
-
-
-/* --- DLOPEN() INTERFACE LOADER --- */
-
-
-#if HAVE_LIBDL
-
-/* dynamic linking with dlopen/dlsym */
-
-#if HAVE_DLFCN_H
-#  include <dlfcn.h>
-#endif
-
-#if HAVE_SYS_DL_H
-#  include <sys/dl.h>
-#endif
-
-#ifdef RTLD_GLOBAL
-#  define LT_GLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_GLOBAL		DL_GLOBAL
-#  endif
-#endif /* !RTLD_GLOBAL */
-#ifndef LT_GLOBAL
-#  define LT_GLOBAL		0
-#endif /* !LT_GLOBAL */
-
-/* We may have to define LT_LAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_LAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_LAZY_OR_NOW	RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_LAZY_OR_NOW	DL_LAZY
-#    endif
-#  endif /* !RTLD_LAZY */
-#endif
-#ifndef LT_LAZY_OR_NOW
-#  ifdef RTLD_NOW
-#    define LT_LAZY_OR_NOW	RTLD_NOW
-#  else
-#    ifdef DL_NOW
-#      define LT_LAZY_OR_NOW	DL_NOW
-#    endif
-#  endif /* !RTLD_NOW */
-#endif
-#ifndef LT_LAZY_OR_NOW
-#  define LT_LAZY_OR_NOW	0
-#endif /* !LT_LAZY_OR_NOW */
-
-#if HAVE_DLERROR
-#  define DLERROR(arg)	dlerror ()
-#else
-#  define DLERROR(arg)	LT_DLSTRERROR (arg)
-#endif
-
-static lt_module
-sys_dl_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  lt_module   module   = dlopen (filename, LT_GLOBAL | LT_LAZY_OR_NOW);
-
-  if (!module)
-    {
-      LT_DLMUTEX_SETERROR (DLERROR (CANNOT_OPEN));
-    }
-
-  return module;
-}
-
-static int
-sys_dl_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  int errors = 0;
-
-  if (dlclose (module) != 0)
-    {
-      LT_DLMUTEX_SETERROR (DLERROR (CANNOT_CLOSE));
-      ++errors;
-    }
-
-  return errors;
-}
-
-static lt_ptr
-sys_dl_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_ptr address = dlsym (module, symbol);
-
-  if (!address)
-    {
-      LT_DLMUTEX_SETERROR (DLERROR (SYMBOL_NOT_FOUND));
-    }
-
-  return address;
-}
-
-static struct lt_user_dlloader sys_dl =
-  {
-#  ifdef NEED_USCORE
-    "_",
-#  else
-    0,
-#  endif
-    sys_dl_open, sys_dl_close, sys_dl_sym, 0, 0 };
-
-
-#endif /* HAVE_LIBDL */
-
-
-
-/* --- SHL_LOAD() INTERFACE LOADER --- */
-
-#if HAVE_SHL_LOAD
-
-/* dynamic linking with shl_load (HP-UX) (comments from gmodule) */
-
-#ifdef HAVE_DL_H
-#  include <dl.h>
-#endif
-
-/* some flags are missing on some systems, so we provide
- * harmless defaults.
- *
- * Mandatory:
- * BIND_IMMEDIATE  - Resolve symbol references when the library is loaded.
- * BIND_DEFERRED   - Delay code symbol resolution until actual reference.
- *
- * Optionally:
- * BIND_FIRST	   - Place the library at the head of the symbol search
- * 		     order.
- * BIND_NONFATAL   - The default BIND_IMMEDIATE behavior is to treat all
- * 		     unsatisfied symbols as fatal.  This flag allows
- * 		     binding of unsatisfied code symbols to be deferred
- * 		     until use.
- *		     [Perl: For certain libraries, like DCE, deferred
- *		     binding often causes run time problems. Adding
- *		     BIND_NONFATAL to BIND_IMMEDIATE still allows
- *		     unresolved references in situations like this.]
- * BIND_NOSTART	   - Do not call the initializer for the shared library
- *		     when the library is loaded, nor on a future call to
- *		     shl_unload().
- * BIND_VERBOSE	   - Print verbose messages concerning possible
- *		     unsatisfied symbols.
- *
- * hp9000s700/hp9000s800:
- * BIND_RESTRICTED - Restrict symbols visible by the library to those
- *		     present at library load time.
- * DYNAMIC_PATH	   - Allow the loader to dynamically search for the
- *		     library specified by the path argument.
- */
-
-#ifndef	DYNAMIC_PATH
-#  define DYNAMIC_PATH		0
-#endif
-#ifndef	BIND_RESTRICTED
-#  define BIND_RESTRICTED	0
-#endif
-
-#define	LT_BIND_FLAGS	(BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH)
-
-static lt_module
-sys_shl_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  static shl_t self = (shl_t) 0;
-  lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L);
-
-  /* Since searching for a symbol against a NULL module handle will also
-     look in everything else that was already loaded and exported with
-     the -E compiler flag, we always cache a handle saved before any
-     modules are loaded.  */
-  if (!self)
-    {
-      lt_ptr address;
-      shl_findsym (&self, "main", TYPE_UNDEFINED, &address);
-    }
-
-  if (!filename)
-    {
-      module = self;
-    }
-  else
-    {
-      module = shl_load (filename, LT_BIND_FLAGS, 0L);
-
-      if (!module)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_OPEN));
-	}
-    }
-
-  return module;
-}
-
-static int
-sys_shl_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  int errors = 0;
-
-  if (module && (shl_unload ((shl_t) (module)) != 0))
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_CLOSE));
-      ++errors;
-    }
-
-  return errors;
-}
-
-static lt_ptr
-sys_shl_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_ptr address = 0;
-
-  /* sys_shl_open should never return a NULL module handle */
-  if (module == (lt_module) 0)
-  {
-    LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-  }
-  else if (!shl_findsym((shl_t*) &module, symbol, TYPE_UNDEFINED, &address))
-    {
-      if (!address)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-	}
-    }
-
-  return address;
-}
-
-static struct lt_user_dlloader sys_shl = {
-  0, sys_shl_open, sys_shl_close, sys_shl_sym, 0, 0
-};
-
-#endif /* HAVE_SHL_LOAD */
-
-
-
-
-/* --- LOADLIBRARY() INTERFACE LOADER --- */
-
-#ifdef __WINDOWS__
-
-/* dynamic linking for Win32 */
-
-#include <windows.h>
-
-/* Forward declaration; required to implement handle search below. */
-static lt_dlhandle handles;
-
-static lt_module
-sys_wll_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  lt_dlhandle	cur;
-  lt_module	module	   = 0;
-  const char   *errormsg   = 0;
-  char	       *searchname = 0;
-  char	       *ext;
-  char		self_name_buf[MAX_PATH];
-
-  if (!filename)
-    {
-      /* Get the name of main module */
-      *self_name_buf = 0;
-      GetModuleFileName (NULL, self_name_buf, sizeof (self_name_buf));
-      filename = ext = self_name_buf;
-    }
-  else
-    {
-      ext = strrchr (filename, '.');
-    }
-
-  if (ext)
-    {
-      /* FILENAME already has an extension. */
-      searchname = lt_estrdup (filename);
-    }
-  else
-    {
-      /* Append a `.' to stop Windows from adding an
-	 implicit `.dll' extension. */
-      searchname = LT_EMALLOC (char, 2+ LT_STRLEN (filename));
-      if (searchname)
-	sprintf (searchname, "%s.", filename);
-    }
-  if (!searchname)
-    return 0;
-
-  {
-    /* Silence dialog from LoadLibrary on some failures.
-       No way to get the error mode, but to set it,
-       so set it twice to preserve any previous flags. */
-    UINT errormode = SetErrorMode(SEM_FAILCRITICALERRORS);
-    SetErrorMode(errormode | SEM_FAILCRITICALERRORS);
-
-#if defined(__CYGWIN__)
-    {
-      char wpath[MAX_PATH];
-      cygwin_conv_to_full_win32_path (searchname, wpath);
-      module = LoadLibrary (wpath);
-    }
-#else
-    module = LoadLibrary (searchname);
-#endif
-
-    /* Restore the error mode. */
-    SetErrorMode(errormode);
-  }
-
-  LT_DLFREE (searchname);
-
-  /* libltdl expects this function to fail if it is unable
-     to physically load the library.  Sadly, LoadLibrary
-     will search the loaded libraries for a match and return
-     one of them if the path search load fails.
-
-     We check whether LoadLibrary is returning a handle to
-     an already loaded module, and simulate failure if we
-     find one. */
-  LT_DLMUTEX_LOCK ();
-  cur = handles;
-  while (cur)
-    {
-      if (!cur->module)
-	{
-	  cur = 0;
-	  break;
-	}
-
-      if (cur->module == module)
-	{
-	  break;
-	}
-
-      cur = cur->next;
-  }
-  LT_DLMUTEX_UNLOCK ();
-
-  if (cur || !module)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_OPEN));
-      module = 0;
-    }
-
-  return module;
-}
-
-static int
-sys_wll_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  int	      errors   = 0;
-
-  if (FreeLibrary(module) == 0)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_CLOSE));
-      ++errors;
-    }
-
-  return errors;
-}
-
-static lt_ptr
-sys_wll_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_ptr      address  = GetProcAddress (module, symbol);
-
-  if (!address)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-    }
-
-  return address;
-}
-
-static struct lt_user_dlloader sys_wll = {
-  0, sys_wll_open, sys_wll_close, sys_wll_sym, 0, 0
-};
-
-#endif /* __WINDOWS__ */
-
-
-
-
-/* --- LOAD_ADD_ON() INTERFACE LOADER --- */
-
-
-#ifdef __BEOS__
-
-/* dynamic linking for BeOS */
-
-#include <kernel/image.h>
-
-static lt_module
-sys_bedl_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  image_id image = 0;
-
-  if (filename)
-    {
-      image = load_add_on (filename);
-    }
-  else
-    {
-      image_info info;
-      int32 cookie = 0;
-      if (get_next_image_info (0, &cookie, &info) == B_OK)
-	image = load_add_on (info.name);
-    }
-
-  if (image <= 0)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_OPEN));
-      image = 0;
-    }
-
-  return (lt_module) image;
-}
-
-static int
-sys_bedl_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  int errors = 0;
-
-  if (unload_add_on ((image_id) module) != B_OK)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_CLOSE));
-      ++errors;
-    }
-
-  return errors;
-}
-
-static lt_ptr
-sys_bedl_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_ptr address = 0;
-  image_id image = (image_id) module;
-
-  if (get_image_symbol (image, symbol, B_SYMBOL_TYPE_ANY, address) != B_OK)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-      address = 0;
-    }
-
-  return address;
-}
-
-static struct lt_user_dlloader sys_bedl = {
-  0, sys_bedl_open, sys_bedl_close, sys_bedl_sym, 0, 0
-};
-
-#endif /* __BEOS__ */
-
-
-
-
-/* --- DLD_LINK() INTERFACE LOADER --- */
-
-
-#if HAVE_DLD
-
-/* dynamic linking with dld */
-
-#if HAVE_DLD_H
-#include <dld.h>
-#endif
-
-static lt_module
-sys_dld_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  lt_module module = strdup (filename);
-
-  if (dld_link (filename) != 0)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_OPEN));
-      LT_DLFREE (module);
-      module = 0;
-    }
-
-  return module;
-}
-
-static int
-sys_dld_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  int errors = 0;
-
-  if (dld_unlink_by_file ((char*)(module), 1) != 0)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CANNOT_CLOSE));
-      ++errors;
-    }
-  else
-    {
-      LT_DLFREE (module);
-    }
-
-  return errors;
-}
-
-static lt_ptr
-sys_dld_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_ptr address = dld_get_func (symbol);
-
-  if (!address)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-    }
-
-  return address;
-}
-
-static struct lt_user_dlloader sys_dld = {
-  0, sys_dld_open, sys_dld_close, sys_dld_sym, 0, 0
-};
-
-#endif /* HAVE_DLD */
-
-/* --- DYLD() MACOSX/DARWIN INTERFACE LOADER --- */
-#if HAVE_DYLD
-
-
-#if HAVE_MACH_O_DYLD_H
-#if !defined(__APPLE_CC__) && !defined(__MWERKS__) && !defined(__private_extern__)
-/* Is this correct? Does it still function properly? */
-#define __private_extern__ extern
-#endif
-# include <mach-o/dyld.h>
-#endif
-#include <mach-o/getsect.h>
-
-/* We have to put some stuff here that isn't in older dyld.h files */
-#ifndef ENUM_DYLD_BOOL
-# define ENUM_DYLD_BOOL
-# undef FALSE
-# undef TRUE
- enum DYLD_BOOL {
-    FALSE,
-    TRUE
- };
-#endif
-#ifndef LC_REQ_DYLD
-# define LC_REQ_DYLD 0x80000000
-#endif
-#ifndef LC_LOAD_WEAK_DYLIB
-# define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
-#endif
-static const struct mach_header * (*ltdl_NSAddImage)(const char *image_name, unsigned long options) = 0;
-static NSSymbol (*ltdl_NSLookupSymbolInImage)(const struct mach_header *image,const char *symbolName, unsigned long options) = 0;
-static enum DYLD_BOOL (*ltdl_NSIsSymbolNameDefinedInImage)(const struct mach_header *image, const char *symbolName) = 0;
-static enum DYLD_BOOL (*ltdl_NSMakePrivateModulePublic)(NSModule module) = 0;
-
-#ifndef NSADDIMAGE_OPTION_NONE
-#define NSADDIMAGE_OPTION_NONE                          0x0
-#endif
-#ifndef NSADDIMAGE_OPTION_RETURN_ON_ERROR
-#define NSADDIMAGE_OPTION_RETURN_ON_ERROR               0x1
-#endif
-#ifndef NSADDIMAGE_OPTION_WITH_SEARCHING
-#define NSADDIMAGE_OPTION_WITH_SEARCHING                0x2
-#endif
-#ifndef NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED
-#define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED         0x4
-#endif
-#ifndef NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME
-#define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8
-#endif
-#ifndef NSLOOKUPSYMBOLINIMAGE_OPTION_BIND
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND            0x0
-#endif
-#ifndef NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW        0x1
-#endif
-#ifndef NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY      0x2
-#endif
-#ifndef NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4
-#endif
-
-
-static const char *
-lt_int_dyld_error(othererror)
-	char* othererror;
-{
-/* return the dyld error string, or the passed in error string if none */
-	NSLinkEditErrors ler;
-	int lerno;
-	const char *errstr;
-	const char *file;
-	NSLinkEditError(&ler,&lerno,&file,&errstr);
-	if (!errstr || !strlen(errstr)) errstr = othererror;
-	return errstr;
-}
-
-static const struct mach_header *
-lt_int_dyld_get_mach_header_from_nsmodule(module)
-	NSModule module;
-{
-/* There should probably be an apple dyld api for this */
-	int i=_dyld_image_count();
-	int j;
-	const char *modname=NSNameOfModule(module);
-	const struct mach_header *mh=NULL;
-	if (!modname) return NULL;
-	for (j = 0; j < i; j++)
-	{
-		if (!strcmp(_dyld_get_image_name(j),modname))
-		{
-			mh=_dyld_get_image_header(j);
-			break;
-		}
-	}
-	return mh;
-}
-
-static const char* lt_int_dyld_lib_install_name(mh)
-	const struct mach_header *mh;
-{
-/* NSAddImage is also used to get the loaded image, but it only works if the lib
-   is installed, for uninstalled libs we need to check the install_names against
-   each other. Note that this is still broken if DYLD_IMAGE_SUFFIX is set and a
-   different lib was loaded as a result
-*/
-	int j;
-	struct load_command *lc;
-	unsigned long offset = sizeof(struct mach_header);
-	const char* retStr=NULL;
-	for (j = 0; j < mh->ncmds; j++)
-	{
-		lc = (struct load_command*)(((unsigned long)mh) + offset);
-		if (LC_ID_DYLIB == lc->cmd)
-		{
-			retStr=(char*)(((struct dylib_command*)lc)->dylib.name.offset +
-									(unsigned long)lc);
-		}
-		offset += lc->cmdsize;
-	}
-	return retStr;
-}
-
-static const struct mach_header *
-lt_int_dyld_match_loaded_lib_by_install_name(const char *name)
-{
-	int i=_dyld_image_count();
-	int j;
-	const struct mach_header *mh=NULL;
-	const char *id=NULL;
-	for (j = 0; j < i; j++)
-	{
-		id=lt_int_dyld_lib_install_name(_dyld_get_image_header(j));
-		if ((id) && (!strcmp(id,name)))
-		{
-			mh=_dyld_get_image_header(j);
-			break;
-		}
-	}
-	return mh;
-}
-
-static NSSymbol
-lt_int_dyld_NSlookupSymbolInLinkedLibs(symbol,mh)
-	const char *symbol;
-	const struct mach_header *mh;
-{
-	/* Safe to assume our mh is good */
-	int j;
-	struct load_command *lc;
-	unsigned long offset = sizeof(struct mach_header);
-	NSSymbol retSym = 0;
-	const struct mach_header *mh1;
-	if ((ltdl_NSLookupSymbolInImage) && NSIsSymbolNameDefined(symbol) )
-	{
-		for (j = 0; j < mh->ncmds; j++)
-		{
-			lc = (struct load_command*)(((unsigned long)mh) + offset);
-			if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd))
-			{
-				mh1=lt_int_dyld_match_loaded_lib_by_install_name((char*)(((struct dylib_command*)lc)->dylib.name.offset +
-										(unsigned long)lc));
-				if (!mh1)
-				{
-					/* Maybe NSAddImage can find it */
-					mh1=ltdl_NSAddImage((char*)(((struct dylib_command*)lc)->dylib.name.offset +
-										(unsigned long)lc),
-										NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED +
-										NSADDIMAGE_OPTION_WITH_SEARCHING +
-										NSADDIMAGE_OPTION_RETURN_ON_ERROR );
-				}
-				if (mh1)
-				{
-					retSym = ltdl_NSLookupSymbolInImage(mh1,
-											symbol,
-											NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW
-											| NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
-											);
-					if (retSym) break;
-				}
-			}
-			offset += lc->cmdsize;
-		}
-	}
-	return retSym;
-}
-
-static int
-sys_dyld_init()
-{
-	int retCode = 0;
-	int err = 0;
-	if (!_dyld_present()) {
-		retCode=1;
-	}
-	else {
-      err = _dyld_func_lookup("__dyld_NSAddImage",(unsigned long*)&ltdl_NSAddImage);
-      err = _dyld_func_lookup("__dyld_NSLookupSymbolInImage",(unsigned long*)&ltdl_NSLookupSymbolInImage);
-      err = _dyld_func_lookup("__dyld_NSIsSymbolNameDefinedInImage",(unsigned long*)&ltdl_NSIsSymbolNameDefinedInImage);
-      err = _dyld_func_lookup("__dyld_NSMakePrivateModulePublic",(unsigned long*)&ltdl_NSMakePrivateModulePublic);
-    }
- return retCode;
-}
-
-static lt_module
-sys_dyld_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-	lt_module   module   = 0;
-	NSObjectFileImage ofi = 0;
-	NSObjectFileImageReturnCode ofirc;
-
-  	if (!filename)
-  		return (lt_module)-1;
-	ofirc = NSCreateObjectFileImageFromFile(filename, &ofi);
-	switch (ofirc)
-	{
-		case NSObjectFileImageSuccess:
-			module = NSLinkModule(ofi, filename,
-						NSLINKMODULE_OPTION_RETURN_ON_ERROR
-						 | NSLINKMODULE_OPTION_PRIVATE
-						 | NSLINKMODULE_OPTION_BINDNOW);
-			NSDestroyObjectFileImage(ofi);
-			if (module)
-				ltdl_NSMakePrivateModulePublic(module);
-			break;
-		case NSObjectFileImageInappropriateFile:
-		    if (ltdl_NSIsSymbolNameDefinedInImage && ltdl_NSLookupSymbolInImage)
-		    {
-				module = (lt_module)ltdl_NSAddImage(filename, NSADDIMAGE_OPTION_RETURN_ON_ERROR);
-				break;
-			}
-		default:
-			LT_DLMUTEX_SETERROR (lt_int_dyld_error(LT_DLSTRERROR(CANNOT_OPEN)));
-			return 0;
-	}
-	if (!module) LT_DLMUTEX_SETERROR (lt_int_dyld_error(LT_DLSTRERROR(CANNOT_OPEN)));
-  return module;
-}
-
-static int
-sys_dyld_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-	int retCode = 0;
-	int flags = 0;
-	if (module == (lt_module)-1) return 0;
-#ifdef __BIG_ENDIAN__
-  	if (((struct mach_header *)module)->magic == MH_MAGIC)
-#else
-    if (((struct mach_header *)module)->magic == MH_CIGAM)
-#endif
-	{
-	  LT_DLMUTEX_SETERROR("Can not close a dylib");
-	  retCode = 1;
-	}
-	else
-	{
-#if 1
-/* Currently, if a module contains c++ static destructors and it is unloaded, we
-   get a segfault in atexit(), due to compiler and dynamic loader differences of
-   opinion, this works around that.
-*/
-		if ((const struct section *)NULL !=
-		   getsectbynamefromheader(lt_int_dyld_get_mach_header_from_nsmodule(module),
-		   "__DATA","__mod_term_func"))
-		{
-			flags += NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED;
-		}
-#endif
-#ifdef __ppc__
-			flags += NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES;
-#endif
-		if (!NSUnLinkModule(module,flags))
-		{
-			retCode=1;
-			LT_DLMUTEX_SETERROR (lt_int_dyld_error(LT_DLSTRERROR(CANNOT_CLOSE)));
-		}
-	}
-
- return retCode;
-}
-
-static lt_ptr
-sys_dyld_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-	lt_ptr address = 0;
-  	NSSymbol *nssym = 0;
-  	void *unused;
-  	const struct mach_header *mh=NULL;
-  	char saveError[256] = "Symbol not found";
-  	if (module == (lt_module)-1)
-  	{
-  		_dyld_lookup_and_bind(symbol,(unsigned long*)&address,&unused);
-  		return address;
-  	}
-#ifdef __BIG_ENDIAN__
-  	if (((struct mach_header *)module)->magic == MH_MAGIC)
-#else
-    if (((struct mach_header *)module)->magic == MH_CIGAM)
-#endif
-  	{
-  	    if (ltdl_NSIsSymbolNameDefinedInImage && ltdl_NSLookupSymbolInImage)
-  	    {
-  	    	mh=module;
-			if (ltdl_NSIsSymbolNameDefinedInImage((struct mach_header*)module,symbol))
-			{
-				nssym = ltdl_NSLookupSymbolInImage((struct mach_header*)module,
-											symbol,
-											NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW
-											| NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
-											);
-			}
-	    }
-
-  	}
-  else {
-	nssym = NSLookupSymbolInModule(module, symbol);
-	}
-	if (!nssym)
-	{
-		strncpy(saveError, lt_int_dyld_error(LT_DLSTRERROR(SYMBOL_NOT_FOUND)), 255);
-		saveError[255] = 0;
-		if (!mh) mh=lt_int_dyld_get_mach_header_from_nsmodule(module);
-		nssym = lt_int_dyld_NSlookupSymbolInLinkedLibs(symbol,mh);
-	}
-	if (!nssym)
-	{
-		LT_DLMUTEX_SETERROR (saveError);
-		return NULL;
-	}
-	return NSAddressOfSymbol(nssym);
-}
-
-static struct lt_user_dlloader sys_dyld =
-  { "_", sys_dyld_open, sys_dyld_close, sys_dyld_sym, 0, 0 };
-
-
-#endif /* HAVE_DYLD */
-
-
-/* --- DLPREOPEN() INTERFACE LOADER --- */
-
-
-/* emulate dynamic linking using preloaded_symbols */
-
-typedef struct lt_dlsymlists_t
-{
-  struct lt_dlsymlists_t       *next;
-  const lt_dlsymlist	       *syms;
-} lt_dlsymlists_t;
-
-static	const lt_dlsymlist     *default_preloaded_symbols	= 0;
-static	lt_dlsymlists_t	       *preloaded_symbols		= 0;
-
-static int
-presym_init (loader_data)
-     lt_user_data loader_data;
-{
-  int errors = 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  preloaded_symbols = 0;
-  if (default_preloaded_symbols)
-    {
-      errors = lt_dlpreload (default_preloaded_symbols);
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-static int
-presym_free_symlists ()
-{
-  lt_dlsymlists_t *lists;
-
-  LT_DLMUTEX_LOCK ();
-
-  lists = preloaded_symbols;
-  while (lists)
-    {
-      lt_dlsymlists_t	*tmp = lists;
-
-      lists = lists->next;
-      LT_DLFREE (tmp);
-    }
-  preloaded_symbols = 0;
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return 0;
-}
-
-static int
-presym_exit (loader_data)
-     lt_user_data loader_data;
-{
-  presym_free_symlists ();
-  return 0;
-}
-
-static int
-presym_add_symlist (preloaded)
-     const lt_dlsymlist *preloaded;
-{
-  lt_dlsymlists_t *tmp;
-  lt_dlsymlists_t *lists;
-  int		   errors   = 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  lists = preloaded_symbols;
-  while (lists)
-    {
-      if (lists->syms == preloaded)
-	{
-	  goto done;
-	}
-      lists = lists->next;
-    }
-
-  tmp = LT_EMALLOC (lt_dlsymlists_t, 1);
-  if (tmp)
-    {
-      memset (tmp, 0, sizeof(lt_dlsymlists_t));
-      tmp->syms = preloaded;
-      tmp->next = preloaded_symbols;
-      preloaded_symbols = tmp;
-    }
-  else
-    {
-      ++errors;
-    }
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-  return errors;
-}
-
-static lt_module
-presym_open (loader_data, filename)
-     lt_user_data loader_data;
-     const char *filename;
-{
-  lt_dlsymlists_t *lists;
-  lt_module	   module = (lt_module) 0;
-
-  LT_DLMUTEX_LOCK ();
-  lists = preloaded_symbols;
-
-  if (!lists)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_SYMBOLS));
-      goto done;
-    }
-
-  /* Can't use NULL as the reflective symbol header, as NULL is
-     used to mark the end of the entire symbol list.  Self-dlpreopened
-     symbols follow this magic number, chosen to be an unlikely
-     clash with a real module name.  */
-  if (!filename)
-    {
-      filename = "@PROGRAM@";
-    }
-
-  while (lists)
-    {
-      const lt_dlsymlist *syms = lists->syms;
-
-      while (syms->name)
-	{
-	  if (!syms->address && strcmp(syms->name, filename) == 0)
-	    {
-	      module = (lt_module) syms;
-	      goto done;
-	    }
-	  ++syms;
-	}
-
-      lists = lists->next;
-    }
-
-  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND));
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-  return module;
-}
-
-static int
-presym_close (loader_data, module)
-     lt_user_data loader_data;
-     lt_module module;
-{
-  /* Just to silence gcc -Wall */
-  module = 0;
-  return 0;
-}
-
-static lt_ptr
-presym_sym (loader_data, module, symbol)
-     lt_user_data loader_data;
-     lt_module module;
-     const char *symbol;
-{
-  lt_dlsymlist *syms = (lt_dlsymlist*) module;
-
-  ++syms;
-  while (syms->address)
-    {
-      if (strcmp(syms->name, symbol) == 0)
-	{
-	  return syms->address;
-	}
-
-    ++syms;
-  }
-
-  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-
-  return 0;
-}
-
-static struct lt_user_dlloader presym = {
-  0, presym_open, presym_close, presym_sym, presym_exit, 0
-};
-
-
-
-
-
-/* --- DYNAMIC MODULE LOADING --- */
-
-
-/* The type of a function used at each iteration of  foreach_dirinpath().  */
-typedef int	foreach_callback_func LT_PARAMS((char *filename, lt_ptr data1,
-						 lt_ptr data2));
-
-static	int	foreach_dirinpath     LT_PARAMS((const char *search_path,
-						 const char *base_name,
-						 foreach_callback_func *func,
-						 lt_ptr data1, lt_ptr data2));
-
-static	int	find_file_callback    LT_PARAMS((char *filename, lt_ptr data,
-						 lt_ptr ignored));
-static	int	find_handle_callback  LT_PARAMS((char *filename, lt_ptr data,
-						 lt_ptr ignored));
-static	int	foreachfile_callback  LT_PARAMS((char *filename, lt_ptr data1,
-						 lt_ptr data2));
-
-
-static	int     canonicalize_path     LT_PARAMS((const char *path,
-						 char **pcanonical));
-static	int	argzize_path 	      LT_PARAMS((const char *path,
-						 char **pargz,
-						 size_t *pargz_len));
-static	FILE   *find_file	      LT_PARAMS((const char *search_path,
-						 const char *base_name,
-						 char **pdir));
-static	lt_dlhandle *find_handle      LT_PARAMS((const char *search_path,
-						 const char *base_name,
-						 lt_dlhandle *handle));
-static	int	find_module	      LT_PARAMS((lt_dlhandle *handle,
-						 const char *dir,
-						 const char *libdir,
-						 const char *dlname,
-						 const char *old_name,
-						 int installed));
-static	int	free_vars	      LT_PARAMS((char *dlname, char *oldname,
-						 char *libdir, char *deplibs));
-static	int	load_deplibs	      LT_PARAMS((lt_dlhandle handle,
-						 char *deplibs));
-static	int	trim		      LT_PARAMS((char **dest,
-						 const char *str));
-static	int	try_dlopen	      LT_PARAMS((lt_dlhandle *handle,
-						 const char *filename));
-static	int	tryall_dlopen	      LT_PARAMS((lt_dlhandle *handle,
-						 const char *filename));
-static	int	unload_deplibs	      LT_PARAMS((lt_dlhandle handle));
-static	int	lt_argz_insert	      LT_PARAMS((char **pargz,
-						 size_t *pargz_len,
-						 char *before,
-						 const char *entry));
-static	int	lt_argz_insertinorder LT_PARAMS((char **pargz,
-						 size_t *pargz_len,
-						 const char *entry));
-static	int	lt_argz_insertdir     LT_PARAMS((char **pargz,
-						 size_t *pargz_len,
-						 const char *dirnam,
-						 struct dirent *dp));
-static	int	lt_dlpath_insertdir   LT_PARAMS((char **ppath,
-						 char *before,
-						 const char *dir));
-static	int	list_files_by_dir     LT_PARAMS((const char *dirnam,
-						 char **pargz,
-						 size_t *pargz_len));
-static	int	file_not_found	      LT_PARAMS((void));
-
-static	char	       *user_search_path= 0;
-static	lt_dlloader    *loaders		= 0;
-static	lt_dlhandle	handles 	= 0;
-static	int		initialized 	= 0;
-
-/* Initialize libltdl. */
-int
-lt_dlinit ()
-{
-  int	      errors   = 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  /* Initialize only at first call. */
-  if (++initialized == 1)
-    {
-      handles = 0;
-      user_search_path = 0; /* empty search path */
-
-#if HAVE_LIBDL
-      errors += lt_dlloader_add (lt_dlloader_next (0), &sys_dl, "dlopen");
-#endif
-#if HAVE_SHL_LOAD
-      errors += lt_dlloader_add (lt_dlloader_next (0), &sys_shl, "dlopen");
-#endif
-#ifdef __WINDOWS__
-      errors += lt_dlloader_add (lt_dlloader_next (0), &sys_wll, "dlopen");
-#endif
-#ifdef __BEOS__
-      errors += lt_dlloader_add (lt_dlloader_next (0), &sys_bedl, "dlopen");
-#endif
-#if HAVE_DLD
-      errors += lt_dlloader_add (lt_dlloader_next (0), &sys_dld, "dld");
-#endif
-#if HAVE_DYLD
-       errors += lt_dlloader_add (lt_dlloader_next (0), &sys_dyld, "dyld");
-       errors += sys_dyld_init();
-#endif
-      errors += lt_dlloader_add (lt_dlloader_next (0), &presym, "dlpreload");
-
-      if (presym_init (presym.dlloader_data))
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INIT_LOADER));
-	  ++errors;
-	}
-      else if (errors != 0)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (DLOPEN_NOT_SUPPORTED));
-	  ++errors;
-	}
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-int
-lt_dlpreload (preloaded)
-     const lt_dlsymlist *preloaded;
-{
-  int errors = 0;
-
-  if (preloaded)
-    {
-      errors = presym_add_symlist (preloaded);
-    }
-  else
-    {
-      presym_free_symlists();
-
-      LT_DLMUTEX_LOCK ();
-      if (default_preloaded_symbols)
-	{
-	  errors = lt_dlpreload (default_preloaded_symbols);
-	}
-      LT_DLMUTEX_UNLOCK ();
-    }
-
-  return errors;
-}
-
-int
-lt_dlpreload_default (preloaded)
-     const lt_dlsymlist *preloaded;
-{
-  LT_DLMUTEX_LOCK ();
-  default_preloaded_symbols = preloaded;
-  LT_DLMUTEX_UNLOCK ();
-  return 0;
-}
-
-int
-lt_dlexit ()
-{
-  /* shut down libltdl */
-  lt_dlloader *loader;
-  int	       errors   = 0;
-
-  LT_DLMUTEX_LOCK ();
-  loader = loaders;
-
-  if (!initialized)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SHUTDOWN));
-      ++errors;
-      goto done;
-    }
-
-  /* shut down only at last call. */
-  if (--initialized == 0)
-    {
-      int	level;
-
-      while (handles && LT_DLIS_RESIDENT (handles))
-	{
-	  handles = handles->next;
-	}
-
-      /* close all modules */
-      for (level = 1; handles; ++level)
-	{
-	  lt_dlhandle cur = handles;
-	  int saw_nonresident = 0;
-
-	  while (cur)
-	    {
-	      lt_dlhandle tmp = cur;
-	      cur = cur->next;
-	      if (!LT_DLIS_RESIDENT (tmp))
-		saw_nonresident = 1;
-	      if (!LT_DLIS_RESIDENT (tmp) && tmp->info.ref_count <= level)
-		{
-		  if (lt_dlclose (tmp))
-		    {
-		      ++errors;
-		    }
-		}
-	    }
-	  /* done if only resident modules are left */
-	  if (!saw_nonresident)
-	    break;
-	}
-
-      /* close all loaders */
-      while (loader)
-	{
-	  lt_dlloader *next = loader->next;
-	  lt_user_data data = loader->dlloader_data;
-	  if (loader->dlloader_exit && loader->dlloader_exit (data))
-	    {
-	      ++errors;
-	    }
-
-	  LT_DLMEM_REASSIGN (loader, next);
-	}
-      loaders = 0;
-    }
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-  return errors;
-}
-
-static int
-tryall_dlopen (handle, filename)
-     lt_dlhandle *handle;
-     const char *filename;
-{
-  lt_dlhandle	 cur;
-  lt_dlloader   *loader;
-  const char	*saved_error;
-  int		 errors		= 0;
-
-  LT_DLMUTEX_GETERROR (saved_error);
-  LT_DLMUTEX_LOCK ();
-
-  cur	 = handles;
-  loader = loaders;
-
-  /* check whether the module was already opened */
-  while (cur)
-    {
-      /* try to dlopen the program itself? */
-      if (!cur->info.filename && !filename)
-	{
-	  break;
-	}
-
-      if (cur->info.filename && filename
-	  && strcmp (cur->info.filename, filename) == 0)
-	{
-	  break;
-	}
-
-      cur = cur->next;
-    }
-
-  if (cur)
-    {
-      ++cur->info.ref_count;
-      *handle = cur;
-      goto done;
-    }
-
-  cur = *handle;
-  if (filename)
-    {
-      /* Comment out the check of file permissions using access.
-	 This call seems to always return -1 with error EACCES.
-      */
-      /* We need to catch missing file errors early so that
-	 file_not_found() can detect what happened.
-      if (access (filename, R_OK) != 0)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND));
-	  ++errors;
-	  goto done;
-	} */
-
-      cur->info.filename = lt_estrdup (filename);
-      if (!cur->info.filename)
-	{
-	  ++errors;
-	  goto done;
-	}
-    }
-  else
-    {
-      cur->info.filename = 0;
-    }
-
-  while (loader)
-    {
-      lt_user_data data = loader->dlloader_data;
-
-      cur->module = loader->module_open (data, filename);
-
-      if (cur->module != 0)
-	{
-	  break;
-	}
-      loader = loader->next;
-    }
-
-  if (!loader)
-    {
-      LT_DLFREE (cur->info.filename);
-      ++errors;
-      goto done;
-    }
-
-  cur->loader	= loader;
-  LT_DLMUTEX_SETERROR (saved_error);
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-static int
-tryall_dlopen_module (handle, prefix, dirname, dlname)
-     lt_dlhandle *handle;
-     const char *prefix;
-     const char *dirname;
-     const char *dlname;
-{
-  int      error	= 0;
-  char     *filename	= 0;
-  size_t   filename_len	= 0;
-  size_t   dirname_len	= LT_STRLEN (dirname);
-
-  assert (handle);
-  assert (dirname);
-  assert (dlname);
-#ifdef LT_DIRSEP_CHAR
-  /* Only canonicalized names (i.e. with DIRSEP chars already converted)
-     should make it into this function:  */
-  assert (strchr (dirname, LT_DIRSEP_CHAR) == 0);
-#endif
-
-  if (dirname_len > 0)
-    if (dirname[dirname_len -1] == '/')
-      --dirname_len;
-  filename_len = dirname_len + 1 + LT_STRLEN (dlname);
-
-  /* Allocate memory, and combine DIRNAME and MODULENAME into it.
-     The PREFIX (if any) is handled below.  */
-  filename  = LT_EMALLOC (char, dirname_len + 1 + filename_len + 1);
-  if (!filename)
-    return 1;
-
-  sprintf (filename, "%.*s/%s", (int) dirname_len, dirname, dlname);
-
-  /* Now that we have combined DIRNAME and MODULENAME, if there is
-     also a PREFIX to contend with, simply recurse with the arguments
-     shuffled.  Otherwise, attempt to open FILENAME as a module.  */
-  if (prefix)
-    {
-      error += tryall_dlopen_module (handle,
-				     (const char *) 0, prefix, filename);
-    }
-  else if (tryall_dlopen (handle, filename) != 0)
-    {
-      ++error;
-    }
-
-  LT_DLFREE (filename);
-  return error;
-}
-
-static int
-find_module (handle, dir, libdir, dlname, old_name, installed)
-     lt_dlhandle *handle;
-     const char *dir;
-     const char *libdir;
-     const char *dlname;
-     const char *old_name;
-     int installed;
-{
-  /* Try to open the old library first; if it was dlpreopened,
-     we want the preopened version of it, even if a dlopenable
-     module is available.  */
-  if (old_name && tryall_dlopen (handle, old_name) == 0)
-    {
-      return 0;
-    }
-
-  /* Try to open the dynamic library.  */
-  if (dlname)
-    {
-      /* try to open the installed module */
-      if (installed && libdir)
-	{
-	  if (tryall_dlopen_module (handle,
-				    (const char *) 0, libdir, dlname) == 0)
-	    return 0;
-	}
-
-      /* try to open the not-installed module */
-      if (!installed)
-	{
-	  if (tryall_dlopen_module (handle, dir, objdir, dlname) == 0)
-	    return 0;
-	}
-
-      /* maybe it was moved to another directory */
-      {
-	  if (dir && (tryall_dlopen_module (handle,
-				    (const char *) 0, dir, dlname) == 0))
-	    return 0;
-      }
-    }
-
-  return 1;
-}
-
-
-static int
-canonicalize_path (path, pcanonical)
-     const char *path;
-     char **pcanonical;
-{
-  char *canonical = 0;
-
-  assert (path && *path);
-  assert (pcanonical);
-
-  canonical = LT_EMALLOC (char, 1+ LT_STRLEN (path));
-  if (!canonical)
-    return 1;
-
-  {
-    size_t dest = 0;
-    size_t src;
-    for (src = 0; path[src] != LT_EOS_CHAR; ++src)
-      {
-	/* Path separators are not copied to the beginning or end of
-	   the destination, or if another separator would follow
-	   immediately.  */
-	if (path[src] == LT_PATHSEP_CHAR)
-	  {
-	    if ((dest == 0)
-		|| (path[1+ src] == LT_PATHSEP_CHAR)
-		|| (path[1+ src] == LT_EOS_CHAR))
-	      continue;
-	  }
-
-	/* Anything other than a directory separator is copied verbatim.  */
-	if ((path[src] != '/')
-#ifdef LT_DIRSEP_CHAR
-	    && (path[src] != LT_DIRSEP_CHAR)
-#endif
-	    )
-	  {
-	    canonical[dest++] = path[src];
-	  }
-	/* Directory separators are converted and copied only if they are
-	   not at the end of a path -- i.e. before a path separator or
-	   NULL terminator.  */
-	else if ((path[1+ src] != LT_PATHSEP_CHAR)
-		 && (path[1+ src] != LT_EOS_CHAR)
-#ifdef LT_DIRSEP_CHAR
-		 && (path[1+ src] != LT_DIRSEP_CHAR)
-#endif
-		 && (path[1+ src] != '/'))
-	  {
-	    canonical[dest++] = '/';
-	  }
-      }
-
-    /* Add an end-of-string marker at the end.  */
-    canonical[dest] = LT_EOS_CHAR;
-  }
-
-  /* Assign new value.  */
-  *pcanonical = canonical;
-
-  return 0;
-}
-
-static int
-argzize_path (path, pargz, pargz_len)
-     const char *path;
-     char **pargz;
-     size_t *pargz_len;
-{
-  error_t error;
-
-  assert (path);
-  assert (pargz);
-  assert (pargz_len);
-
-  if ((error = argz_create_sep (path, LT_PATHSEP_CHAR, pargz, pargz_len)))
-    {
-      switch (error)
-	{
-	case ENOMEM:
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_MEMORY));
-	  break;
-	default:
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (UNKNOWN));
-	  break;
-	}
-
-      return 1;
-    }
-
-  return 0;
-}
-
-/* Repeatedly call FUNC with each LT_PATHSEP_CHAR delimited element
-   of SEARCH_PATH and references to DATA1 and DATA2, until FUNC returns
-   non-zero or all elements are exhausted.  If BASE_NAME is non-NULL,
-   it is appended to each SEARCH_PATH element before FUNC is called.  */
-static int
-foreach_dirinpath (search_path, base_name, func, data1, data2)
-     const char *search_path;
-     const char *base_name;
-     foreach_callback_func *func;
-     lt_ptr data1;
-     lt_ptr data2;
-{
-  int	 result		= 0;
-  int	 filenamesize	= 0;
-  size_t lenbase	= LT_STRLEN (base_name);
-  size_t argz_len	= 0;
-  char *argz		= 0;
-  char *filename	= 0;
-  char *canonical	= 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  if (!search_path || !*search_path)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND));
-      goto cleanup;
-    }
-
-  if (canonicalize_path (search_path, &canonical) != 0)
-    goto cleanup;
-
-  if (argzize_path (canonical, &argz, &argz_len) != 0)
-    goto cleanup;
-
-  {
-    char *dir_name = 0;
-    while ((dir_name = argz_next (argz, argz_len, dir_name)))
-      {
-	size_t lendir = LT_STRLEN (dir_name);
-
-	if (lendir +1 +lenbase >= (size_t)filenamesize)
-	{
-	  LT_DLFREE (filename);
-	  filenamesize	= lendir +1 +lenbase +1; /* "/d" + '/' + "f" + '\0' */
-	  filename	= LT_EMALLOC (char, filenamesize);
-	  if (!filename)
-	    goto cleanup;
-	}
-
-	assert ((size_t)filenamesize > lendir);
-	strcpy (filename, dir_name);
-
-	if (base_name && *base_name)
-	  {
-	    if (filename[lendir -1] != '/')
-	      filename[lendir++] = '/';
-	    strcpy (filename +lendir, base_name);
-	  }
-
-	if ((result = (*func) (filename, data1, data2)))
-	  {
-	    break;
-	  }
-      }
-  }
-
- cleanup:
-  LT_DLFREE (argz);
-  LT_DLFREE (canonical);
-  LT_DLFREE (filename);
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return result;
-}
-
-/* If FILEPATH can be opened, store the name of the directory component
-   in DATA1, and the opened FILE* structure address in DATA2.  Otherwise
-   DATA1 is unchanged, but DATA2 is set to a pointer to NULL.  */
-static int
-find_file_callback (filename, data1, data2)
-     char *filename;
-     lt_ptr data1;
-     lt_ptr data2;
-{
-  char	     **pdir	= (char **) data1;
-  FILE	     **pfile	= (FILE **) data2;
-  int	     is_done	= 0;
-
-  assert (filename && *filename);
-  assert (pdir);
-  assert (pfile);
-
-  if ((*pfile = fopen (filename, LT_READTEXT_MODE)))
-    {
-      char *dirend = strrchr (filename, '/');
-
-      if (dirend > filename)
-	*dirend   = LT_EOS_CHAR;
-
-      LT_DLFREE (*pdir);
-      *pdir   = lt_estrdup (filename);
-      is_done = (*pdir == 0) ? -1 : 1;
-    }
-
-  return is_done;
-}
-
-static FILE *
-find_file (search_path, base_name, pdir)
-     const char *search_path;
-     const char *base_name;
-     char **pdir;
-{
-  FILE *file = 0;
-
-  foreach_dirinpath (search_path, base_name, find_file_callback, pdir, &file);
-
-  return file;
-}
-
-static int
-find_handle_callback (filename, data, ignored)
-     char *filename;
-     lt_ptr data;
-     lt_ptr ignored;
-{
-  lt_dlhandle  *handle		= (lt_dlhandle *) data;
-  int		notfound	= access (filename, R_OK);
-
-  /* Bail out if file cannot be read...  */
-  if (notfound)
-    return 0;
-
-  /* Try to dlopen the file, but do not continue searching in any
-     case.  */
-  if (tryall_dlopen (handle, filename) != 0)
-    *handle = 0;
-
-  return 1;
-}
-
-/* If HANDLE was found return it, otherwise return 0.  If HANDLE was
-   found but could not be opened, *HANDLE will be set to 0.  */
-static lt_dlhandle *
-find_handle (search_path, base_name, handle)
-     const char *search_path;
-     const char *base_name;
-     lt_dlhandle *handle;
-{
-  if (!search_path)
-    return 0;
-
-  if (!foreach_dirinpath (search_path, base_name, find_handle_callback,
-			  handle, 0))
-    return 0;
-
-  return handle;
-}
-
-static int
-load_deplibs (handle, deplibs)
-     lt_dlhandle handle;
-     char *deplibs;
-{
-#if LTDL_DLOPEN_DEPLIBS
-  char	*p, *save_search_path = 0;
-  int   depcount = 0;
-  int	i;
-  char	**names = 0;
-#endif
-  int	errors = 0;
-
-  handle->depcount = 0;
-
-#if LTDL_DLOPEN_DEPLIBS
-  if (!deplibs)
-    {
-      return errors;
-    }
-  ++errors;
-
-  LT_DLMUTEX_LOCK ();
-  if (user_search_path)
-    {
-      save_search_path = lt_estrdup (user_search_path);
-      if (!save_search_path)
-	goto cleanup;
-    }
-
-  /* extract search paths and count deplibs */
-  p = deplibs;
-  while (*p)
-    {
-      if (!isspace ((int) *p))
-	{
-	  char *end = p+1;
-	  while (*end && !isspace((int) *end))
-	    {
-	      ++end;
-	    }
-
-	  if (strncmp(p, "-L", 2) == 0 || strncmp(p, "-R", 2) == 0)
-	    {
-	      char save = *end;
-	      *end = 0; /* set a temporary string terminator */
-	      if (lt_dladdsearchdir(p+2))
-		{
-		  goto cleanup;
-		}
-	      *end = save;
-	    }
-	  else
-	    {
-	      ++depcount;
-	    }
-
-	  p = end;
-	}
-      else
-	{
-	  ++p;
-	}
-    }
-
-  if (!depcount)
-    {
-      errors = 0;
-      goto cleanup;
-    }
-
-  names = LT_EMALLOC (char *, depcount * sizeof (char*));
-  if (!names)
-    goto cleanup;
-
-  /* now only extract the actual deplibs */
-  depcount = 0;
-  p = deplibs;
-  while (*p)
-    {
-      if (isspace ((int) *p))
-	{
-	  ++p;
-	}
-      else
-	{
-	  char *end = p+1;
-	  while (*end && !isspace ((int) *end))
-	    {
-	      ++end;
-	    }
-
-	  if (strncmp(p, "-L", 2) != 0 && strncmp(p, "-R", 2) != 0)
-	    {
-	      char *name;
-	      char save = *end;
-	      *end = 0; /* set a temporary string terminator */
-	      if (strncmp(p, "-l", 2) == 0)
-		{
-		  size_t name_len = 3+ /* "lib" */ LT_STRLEN (p + 2);
-		  name = LT_EMALLOC (char, 1+ name_len);
-		  if (name)
-		    sprintf (name, "lib%s", p+2);
-		}
-	      else
-		name = lt_estrdup(p);
-
-	      if (!name)
-		goto cleanup_names;
-
-	      names[depcount++] = name;
-	      *end = save;
-	    }
-	  p = end;
-	}
-    }
-
-  /* load the deplibs (in reverse order)
-     At this stage, don't worry if the deplibs do not load correctly,
-     they may already be statically linked into the loading application
-     for instance.  There will be a more enlightening error message
-     later on if the loaded module cannot resolve all of its symbols.  */
-  if (depcount)
-    {
-      int	j = 0;
-
-      handle->deplibs = (lt_dlhandle*) LT_EMALLOC (lt_dlhandle *, depcount);
-      if (!handle->deplibs)
-	goto cleanup;
-
-      for (i = 0; i < depcount; ++i)
-	{
-	  handle->deplibs[j] = lt_dlopenext(names[depcount-1-i]);
-	  if (handle->deplibs[j])
-	    {
-	      ++j;
-	    }
-	}
-
-      handle->depcount	= j;	/* Number of successfully loaded deplibs */
-      errors		= 0;
-    }
-
- cleanup_names:
-  for (i = 0; i < depcount; ++i)
-    {
-      LT_DLFREE (names[i]);
-    }
-
- cleanup:
-  LT_DLFREE (names);
-  /* restore the old search path */
-  if (user_search_path) {
-    LT_DLFREE (user_search_path);
-    user_search_path = save_search_path;
-  }
-  LT_DLMUTEX_UNLOCK ();
-
-#endif
-
-  return errors;
-}
-
-static int
-unload_deplibs (handle)
-     lt_dlhandle handle;
-{
-  int i;
-  int errors = 0;
-
-  if (handle->depcount)
-    {
-      for (i = 0; i < handle->depcount; ++i)
-	{
-	  if (!LT_DLIS_RESIDENT (handle->deplibs[i]))
-	    {
-	      errors += lt_dlclose (handle->deplibs[i]);
-	    }
-	}
-    }
-
-  return errors;
-}
-
-static int
-trim (dest, str)
-     char **dest;
-     const char *str;
-{
-  /* remove the leading and trailing "'" from str
-     and store the result in dest */
-  const char *end   = strrchr (str, '\'');
-  size_t len	    = LT_STRLEN (str);
-  char *tmp;
-
-  LT_DLFREE (*dest);
-
-  if (!end)
-    return 1;
-
-  if (len > 3 && str[0] == '\'')
-    {
-      tmp = LT_EMALLOC (char, end - str);
-      if (!tmp)
-	return 1;
-
-      strncpy(tmp, &str[1], (end - str) - 1);
-      tmp[len-3] = LT_EOS_CHAR;
-      *dest = tmp;
-    }
-  else
-    {
-      *dest = 0;
-    }
-
-  return 0;
-}
-
-static int
-free_vars (dlname, oldname, libdir, deplibs)
-     char *dlname;
-     char *oldname;
-     char *libdir;
-     char *deplibs;
-{
-  LT_DLFREE (dlname);
-  LT_DLFREE (oldname);
-  LT_DLFREE (libdir);
-  LT_DLFREE (deplibs);
-
-  return 0;
-}
-
-static int
-try_dlopen (phandle, filename)
-     lt_dlhandle *phandle;
-     const char *filename;
-{
-  const char *	ext		= 0;
-  const char *	saved_error	= 0;
-  char *	canonical	= 0;
-  char *	base_name	= 0;
-  char *	dir		= 0;
-  char *	name		= 0;
-  int		errors		= 0;
-  lt_dlhandle	newhandle;
-
-  assert (phandle);
-  assert (*phandle == 0);
-
-  LT_DLMUTEX_GETERROR (saved_error);
-
-  /* dlopen self? */
-  if (!filename)
-    {
-      *phandle = (lt_dlhandle) LT_EMALLOC (struct lt_dlhandle_struct, 1);
-      if (*phandle == 0)
-	return 1;
-
-      memset (*phandle, 0, sizeof(struct lt_dlhandle_struct));
-      newhandle	= *phandle;
-
-      /* lt_dlclose()ing yourself is very bad!  Disallow it.  */
-      LT_DLSET_FLAG (*phandle, LT_DLRESIDENT_FLAG);
-
-      if (tryall_dlopen (&newhandle, 0) != 0)
-	{
-	  LT_DLFREE (*phandle);
-	  return 1;
-	}
-
-      goto register_handle;
-    }
-
-  assert (filename && *filename);
-
-  /* Doing this immediately allows internal functions to safely
-     assume only canonicalized paths are passed.  */
-  if (canonicalize_path (filename, &canonical) != 0)
-    {
-      ++errors;
-      goto cleanup;
-    }
-
-  /* If the canonical module name is a path (relative or absolute)
-     then split it into a directory part and a name part.  */
-  base_name = strrchr (canonical, '/');
-  if (base_name)
-    {
-      size_t dirlen = (1+ base_name) - canonical;
-
-      dir = LT_EMALLOC (char, 1+ dirlen);
-      if (!dir)
-	{
-	  ++errors;
-	  goto cleanup;
-	}
-
-      strncpy (dir, canonical, dirlen);
-      dir[dirlen] = LT_EOS_CHAR;
-
-      ++base_name;
-    }
-  else
-    base_name = canonical;
-
-  assert (base_name && *base_name);
-
-  /* Check whether we are opening a libtool module (.la extension).  */
-  ext = strrchr (base_name, '.');
-  if (ext && strcmp (ext, archive_ext) == 0)
-    {
-      /* this seems to be a libtool module */
-      FILE *	file	 = 0;
-      char *	dlname	 = 0;
-      char *	old_name = 0;
-      char *	libdir	 = 0;
-      char *	deplibs	 = 0;
-      char *    line	 = 0;
-      size_t	line_len;
-
-      /* if we can't find the installed flag, it is probably an
-	 installed libtool archive, produced with an old version
-	 of libtool */
-      int	installed = 1;
-
-      /* extract the module name from the file name */
-      name = LT_EMALLOC (char, ext - base_name + 1);
-      if (!name)
-	{
-	  ++errors;
-	  goto cleanup;
-	}
-
-      /* canonicalize the module name */
-      {
-        size_t i;
-        for (i = 0; i < (size_t)(ext - base_name); ++i)
-	  {
-	    if (isalnum ((int)(base_name[i])))
-	      {
-	        name[i] = base_name[i];
-	      }
-	    else
-	      {
-	        name[i] = '_';
-	      }
-	  }
-        name[ext - base_name] = LT_EOS_CHAR;
-      }
-
-      /* Now try to open the .la file.  If there is no directory name
-         component, try to find it first in user_search_path and then other
-         prescribed paths.  Otherwise (or in any case if the module was not
-         yet found) try opening just the module name as passed.  */
-      if (!dir)
-	{
-	  const char *search_path;
-
-	  LT_DLMUTEX_LOCK ();
-	  search_path = user_search_path;
-	  if (search_path)
-	    file = find_file (user_search_path, base_name, &dir);
-	  LT_DLMUTEX_UNLOCK ();
-
-	  if (!file)
-	    {
-	      search_path = getenv (LTDL_SEARCHPATH_VAR);
-	      if (search_path)
-		file = find_file (search_path, base_name, &dir);
-	    }
-
-#ifdef LTDL_SHLIBPATH_VAR
-	  if (!file)
-	    {
-	      search_path = getenv (LTDL_SHLIBPATH_VAR);
-	      if (search_path)
-		file = find_file (search_path, base_name, &dir);
-	    }
-#endif
-#ifdef LTDL_SYSSEARCHPATH
-	  if (!file && sys_search_path)
-	    {
-	      file = find_file (sys_search_path, base_name, &dir);
-	    }
-#endif
-	}
-      if (!file)
-	{
-	  file = fopen (filename, LT_READTEXT_MODE);
-	}
-
-      /* If we didn't find the file by now, it really isn't there.  Set
-	 the status flag, and bail out.  */
-      if (!file)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND));
-	  ++errors;
-	  goto cleanup;
-	}
-
-      line_len = LT_FILENAME_MAX;
-      line = LT_EMALLOC (char, line_len);
-      if (!line)
-	{
-	  fclose (file);
-	  ++errors;
-	  goto cleanup;
-	}
-
-      /* read the .la file */
-      while (!feof (file))
-	{
-	  if (!fgets (line, (int) line_len, file))
-	    {
-	      break;
-	    }
-
-	  /* Handle the case where we occasionally need to read a line
-	     that is longer than the initial buffer size.  */
-	  while ((line[LT_STRLEN(line) -1] != '\n') && (!feof (file)))
-	    {
-	      line = LT_DLREALLOC (char, line, line_len *2);
-	      if (!fgets (&line[line_len -1], (int) line_len +1, file))
-		{
-		  break;
-		}
-	      line_len *= 2;
-	    }
-
-	  if (line[0] == '\n' || line[0] == '#')
-	    {
-	      continue;
-	    }
-
-#undef  STR_DLNAME
-#define STR_DLNAME	"dlname="
-	  if (strncmp (line, STR_DLNAME, sizeof (STR_DLNAME) - 1) == 0)
-	    {
-	      errors += trim (&dlname, &line[sizeof (STR_DLNAME) - 1]);
-	    }
-
-#undef  STR_OLD_LIBRARY
-#define STR_OLD_LIBRARY	"old_library="
-	  else if (strncmp (line, STR_OLD_LIBRARY,
-			    sizeof (STR_OLD_LIBRARY) - 1) == 0)
-	    {
-	      errors += trim (&old_name, &line[sizeof (STR_OLD_LIBRARY) - 1]);
-	    }
-#undef  STR_LIBDIR
-#define STR_LIBDIR	"libdir="
-	  else if (strncmp (line, STR_LIBDIR, sizeof (STR_LIBDIR) - 1) == 0)
-	    {
-	      errors += trim (&libdir, &line[sizeof(STR_LIBDIR) - 1]);
-	    }
-
-#undef  STR_DL_DEPLIBS
-#define STR_DL_DEPLIBS	"dependency_libs="
-	  else if (strncmp (line, STR_DL_DEPLIBS,
-			    sizeof (STR_DL_DEPLIBS) - 1) == 0)
-	    {
-	      errors += trim (&deplibs, &line[sizeof (STR_DL_DEPLIBS) - 1]);
-	    }
-	  else if (strcmp (line, "installed=yes\n") == 0)
-	    {
-	      installed = 1;
-	    }
-	  else if (strcmp (line, "installed=no\n") == 0)
-	    {
-	      installed = 0;
-	    }
-
-#undef  STR_LIBRARY_NAMES
-#define STR_LIBRARY_NAMES "library_names="
-	  else if (! dlname && strncmp (line, STR_LIBRARY_NAMES,
-					sizeof (STR_LIBRARY_NAMES) - 1) == 0)
-	    {
-	      char *last_libname;
-	      errors += trim (&dlname, &line[sizeof (STR_LIBRARY_NAMES) - 1]);
-	      if (!errors
-		  && dlname
-		  && (last_libname = strrchr (dlname, ' ')) != 0)
-		{
-		  last_libname = lt_estrdup (last_libname + 1);
-		  if (!last_libname)
-		    {
-		      ++errors;
-		      goto cleanup;
-		    }
-		  LT_DLMEM_REASSIGN (dlname, last_libname);
-		}
-	    }
-
-	  if (errors)
-	    break;
-	}
-
-      fclose (file);
-      LT_DLFREE (line);
-
-      /* allocate the handle */
-      *phandle = (lt_dlhandle) LT_EMALLOC (struct lt_dlhandle_struct, 1);
-      if (*phandle == 0)
-	++errors;
-
-      if (errors)
-	{
-	  free_vars (dlname, old_name, libdir, deplibs);
-	  LT_DLFREE (*phandle);
-	  goto cleanup;
-	}
-
-      assert (*phandle);
-
-      memset (*phandle, 0, sizeof(struct lt_dlhandle_struct));
-      if (load_deplibs (*phandle, deplibs) == 0)
-	{
-	  newhandle = *phandle;
-	  /* find_module may replace newhandle */
-	  if (find_module (&newhandle, dir, libdir, dlname, old_name, installed))
-	    {
-	      unload_deplibs (*phandle);
-	      ++errors;
-	    }
-	}
-      else
-	{
-	  ++errors;
-	}
-
-      free_vars (dlname, old_name, libdir, deplibs);
-      if (errors)
-	{
-	  LT_DLFREE (*phandle);
-	  goto cleanup;
-	}
-
-      if (*phandle != newhandle)
-	{
-	  unload_deplibs (*phandle);
-	}
-    }
-  else
-    {
-      /* not a libtool module */
-      *phandle = (lt_dlhandle) LT_EMALLOC (struct lt_dlhandle_struct, 1);
-      if (*phandle == 0)
-	{
-	  ++errors;
-	  goto cleanup;
-	}
-
-      memset (*phandle, 0, sizeof (struct lt_dlhandle_struct));
-      newhandle = *phandle;
-
-      /* If the module has no directory name component, try to find it
-	 first in user_search_path and then other prescribed paths.
-	 Otherwise (or in any case if the module was not yet found) try
-	 opening just the module name as passed.  */
-      if ((dir || (!find_handle (user_search_path, base_name, &newhandle)
-		   && !find_handle (getenv (LTDL_SEARCHPATH_VAR), base_name,
-				    &newhandle)
-#ifdef LTDL_SHLIBPATH_VAR
-		   && !find_handle (getenv (LTDL_SHLIBPATH_VAR), base_name,
-				    &newhandle)
-#endif
-#ifdef LTDL_SYSSEARCHPATH
-		   && !find_handle (sys_search_path, base_name, &newhandle)
-#endif
-		   )))
-	{
-          if (tryall_dlopen (&newhandle, filename) != 0)
-            {
-              newhandle = NULL;
-            }
-	}
-
-      if (!newhandle)
-	{
-	  LT_DLFREE (*phandle);
-	  ++errors;
-	  goto cleanup;
-	}
-    }
-
- register_handle:
-  LT_DLMEM_REASSIGN (*phandle, newhandle);
-
-  if ((*phandle)->info.ref_count == 0)
-    {
-      (*phandle)->info.ref_count	= 1;
-      LT_DLMEM_REASSIGN ((*phandle)->info.name, name);
-
-      LT_DLMUTEX_LOCK ();
-      (*phandle)->next		= handles;
-      handles			= *phandle;
-      LT_DLMUTEX_UNLOCK ();
-    }
-
-  LT_DLMUTEX_SETERROR (saved_error);
-
- cleanup:
-  LT_DLFREE (dir);
-  LT_DLFREE (name);
-  LT_DLFREE (canonical);
-
-  return errors;
-}
-
-lt_dlhandle
-lt_dlopen (filename)
-     const char *filename;
-{
-  lt_dlhandle handle = 0;
-
-  /* Just incase we missed a code path in try_dlopen() that reports
-     an error, but forgets to reset handle... */
-  if (try_dlopen (&handle, filename) != 0)
-    return 0;
-
-  return handle;
-}
-
-/* If the last error messge store was `FILE_NOT_FOUND', then return
-   non-zero.  */
-static int
-file_not_found ()
-{
-  const char *error = 0;
-
-  LT_DLMUTEX_GETERROR (error);
-  if (error == LT_DLSTRERROR (FILE_NOT_FOUND))
-    return 1;
-
-  return 0;
-}
-
-/* If FILENAME has an ARCHIVE_EXT or SHLIB_EXT extension, try to
-   open the FILENAME as passed.  Otherwise try appending ARCHIVE_EXT,
-   and if a file is still not found try again with SHLIB_EXT appended
-   instead.  */
-lt_dlhandle
-lt_dlopenext (filename)
-     const char *filename;
-{
-  lt_dlhandle	handle		= 0;
-  char *	tmp		= 0;
-  char *	ext		= 0;
-  size_t	len;
-  int		errors		= 0;
-
-  if (!filename)
-    {
-      return lt_dlopen (filename);
-    }
-
-  assert (filename);
-
-  len = LT_STRLEN (filename);
-  ext = strrchr (filename, '.');
-
-  /* If FILENAME already bears a suitable extension, there is no need
-     to try appending additional extensions.  */
-  if (ext && ((strcmp (ext, archive_ext) == 0)
-#ifdef LTDL_SHLIB_EXT
-	      || (strcmp (ext, shlib_ext) == 0)
-#endif
-      ))
-    {
-      return lt_dlopen (filename);
-    }
-
-  /* First try appending ARCHIVE_EXT.  */
-  tmp = LT_EMALLOC (char, len + LT_STRLEN (archive_ext) + 1);
-  if (!tmp)
-    return 0;
-
-  strcpy (tmp, filename);
-  strcat (tmp, archive_ext);
-  errors = try_dlopen (&handle, tmp);
-
-  /* If we found FILENAME, stop searching -- whether we were able to
-     load the file as a module or not.  If the file exists but loading
-     failed, it is better to return an error message here than to
-     report FILE_NOT_FOUND when the alternatives (foo.so etc) are not
-     in the module search path.  */
-  if (handle || ((errors > 0) && !file_not_found ()))
-    {
-      LT_DLFREE (tmp);
-      return handle;
-    }
-
-#ifdef LTDL_SHLIB_EXT
-  /* Try appending SHLIB_EXT.   */
-  if (LT_STRLEN (shlib_ext) > LT_STRLEN (archive_ext))
-    {
-      LT_DLFREE (tmp);
-      tmp = LT_EMALLOC (char, len + LT_STRLEN (shlib_ext) + 1);
-      if (!tmp)
-	return 0;
-
-      strcpy (tmp, filename);
-    }
-  else
-    {
-      tmp[len] = LT_EOS_CHAR;
-    }
-
-  strcat(tmp, shlib_ext);
-  errors = try_dlopen (&handle, tmp);
-
-  /* As before, if the file was found but loading failed, return now
-     with the current error message.  */
-  if (handle || ((errors > 0) && !file_not_found ()))
-    {
-      LT_DLFREE (tmp);
-      return handle;
-    }
-#endif
-
-  /* Still here?  Then we really did fail to locate any of the file
-     names we tried.  */
-  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND));
-  LT_DLFREE (tmp);
-  return 0;
-}
-
-
-static int
-lt_argz_insert (pargz, pargz_len, before, entry)
-     char **pargz;
-     size_t *pargz_len;
-     char *before;
-     const char *entry;
-{
-  error_t error;
-
-  /* Prior to Sep 8, 2005, newlib had a bug where argz_insert(pargz,
-     pargz_len, NULL, entry) failed with EINVAL.  */
-  if (before)
-    error = argz_insert (pargz, pargz_len, before, entry);
-  else
-    error = argz_append (pargz, pargz_len, entry, 1 + LT_STRLEN (entry));
-
-  if (error)
-    {
-      switch (error)
-	{
-	case ENOMEM:
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (NO_MEMORY));
-	  break;
-	default:
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (UNKNOWN));
-	  break;
-	}
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-lt_argz_insertinorder (pargz, pargz_len, entry)
-     char **pargz;
-     size_t *pargz_len;
-     const char *entry;
-{
-  char *before = 0;
-
-  assert (pargz);
-  assert (pargz_len);
-  assert (entry && *entry);
-
-  if (*pargz)
-    while ((before = argz_next (*pargz, *pargz_len, before)))
-      {
-	int cmp = strcmp (entry, before);
-
-	if (cmp < 0)  break;
-	if (cmp == 0) return 0;	/* No duplicates! */
-      }
-
-  return lt_argz_insert (pargz, pargz_len, before, entry);
-}
-
-static int
-lt_argz_insertdir (pargz, pargz_len, dirnam, dp)
-     char **pargz;
-     size_t *pargz_len;
-     const char *dirnam;
-     struct dirent *dp;
-{
-  char   *buf	    = 0;
-  size_t buf_len    = 0;
-  char   *end	    = 0;
-  size_t end_offset = 0;
-  size_t dir_len    = 0;
-  int    errors	    = 0;
-
-  assert (pargz);
-  assert (pargz_len);
-  assert (dp);
-
-  dir_len = LT_STRLEN (dirnam);
-  end     = dp->d_name + LT_D_NAMLEN(dp);
-
-  /* Ignore version numbers.  */
-  {
-    char *p;
-    for (p = end; p -1 > dp->d_name; --p)
-      if (strchr (".0123456789", p[-1]) == 0)
-	break;
-
-    if (*p == '.')
-      end = p;
-  }
-
-  /* Ignore filename extension.  */
-  {
-    char *p;
-    for (p = end -1; p > dp->d_name; --p)
-      if (*p == '.')
-	{
-	  end = p;
-	  break;
-	}
-  }
-
-  /* Prepend the directory name.  */
-  end_offset	= end - dp->d_name;
-  buf_len	= dir_len + 1+ end_offset;
-  buf		= LT_EMALLOC (char, 1+ buf_len);
-  if (!buf)
-    return ++errors;
-
-  assert (buf);
-
-  strcpy  (buf, dirnam);
-  strcat  (buf, "/");
-  strncat (buf, dp->d_name, end_offset);
-  buf[buf_len] = LT_EOS_CHAR;
-
-  /* Try to insert (in order) into ARGZ/ARGZ_LEN.  */
-  if (lt_argz_insertinorder (pargz, pargz_len, buf) != 0)
-    ++errors;
-
-  LT_DLFREE (buf);
-
-  return errors;
-}
-
-static int
-list_files_by_dir (dirnam, pargz, pargz_len)
-     const char *dirnam;
-     char **pargz;
-     size_t *pargz_len;
-{
-  DIR	*dirp	  = 0;
-  int    errors	  = 0;
-
-  assert (dirnam && *dirnam);
-  assert (pargz);
-  assert (pargz_len);
-  assert (dirnam[LT_STRLEN(dirnam) -1] != '/');
-
-  dirp = opendir (dirnam);
-  if (dirp)
-    {
-      struct dirent *dp	= 0;
-
-      while ((dp = readdir (dirp)))
-	if (dp->d_name[0] != '.')
-	  if (lt_argz_insertdir (pargz, pargz_len, dirnam, dp))
-	    {
-	      ++errors;
-	      break;
-	    }
-
-      closedir (dirp);
-    }
-  else
-    ++errors;
-
-  return errors;
-}
-
-
-/* If there are any files in DIRNAME, call the function passed in
-   DATA1 (with the name of each file and DATA2 as arguments).  */
-static int
-foreachfile_callback (dirname, data1, data2)
-     char *dirname;
-     lt_ptr data1;
-     lt_ptr data2;
-{
-  int (*func) LT_PARAMS((const char *filename, lt_ptr data))
-	= (int (*) LT_PARAMS((const char *filename, lt_ptr data))) data1;
-
-  int	  is_done  = 0;
-  char   *argz     = 0;
-  size_t  argz_len = 0;
-
-  if (list_files_by_dir (dirname, &argz, &argz_len) != 0)
-    goto cleanup;
-  if (!argz)
-    goto cleanup;
-
-  {
-    char *filename = 0;
-    while ((filename = argz_next (argz, argz_len, filename)))
-      if ((is_done = (*func) (filename, data2)))
-	break;
-  }
-
- cleanup:
-  LT_DLFREE (argz);
-
-  return is_done;
-}
-
-
-/* Call FUNC for each unique extensionless file in SEARCH_PATH, along
-   with DATA.  The filenames passed to FUNC would be suitable for
-   passing to lt_dlopenext.  The extensions are stripped so that
-   individual modules do not generate several entries (e.g. libfoo.la,
-   libfoo.so, libfoo.so.1, libfoo.so.1.0.0).  If SEARCH_PATH is NULL,
-   then the same directories that lt_dlopen would search are examined.  */
-int
-lt_dlforeachfile (search_path, func, data)
-     const char *search_path;
-     int (*func) LT_PARAMS ((const char *filename, lt_ptr data));
-     lt_ptr data;
-{
-  int is_done = 0;
-
-  if (search_path)
-    {
-      /* If a specific path was passed, search only the directories
-	 listed in it.  */
-      is_done = foreach_dirinpath (search_path, 0,
-				   foreachfile_callback, func, data);
-    }
-  else
-    {
-      /* Otherwise search the default paths.  */
-      is_done = foreach_dirinpath (user_search_path, 0,
-				   foreachfile_callback, func, data);
-      if (!is_done)
-	{
-	  is_done = foreach_dirinpath (getenv("LTDL_LIBRARY_PATH"), 0,
-				       foreachfile_callback, func, data);
-	}
-
-#ifdef LTDL_SHLIBPATH_VAR
-      if (!is_done)
-	{
-	  is_done = foreach_dirinpath (getenv(LTDL_SHLIBPATH_VAR), 0,
-				       foreachfile_callback, func, data);
-	}
-#endif
-#ifdef LTDL_SYSSEARCHPATH
-      if (!is_done)
-	{
-	  is_done = foreach_dirinpath (getenv(LTDL_SYSSEARCHPATH), 0,
-				       foreachfile_callback, func, data);
-	}
-#endif
-    }
-
-  return is_done;
-}
-
-int
-lt_dlclose (handle)
-     lt_dlhandle handle;
-{
-  lt_dlhandle cur, last;
-  int errors = 0;
-
-  LT_DLMUTEX_LOCK ();
-
-  /* check whether the handle is valid */
-  last = cur = handles;
-  while (cur && handle != cur)
-    {
-      last = cur;
-      cur = cur->next;
-    }
-
-  if (!cur)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-      ++errors;
-      goto done;
-    }
-
-  handle->info.ref_count--;
-
-  /* Note that even with resident modules, we must track the ref_count
-     correctly incase the user decides to reset the residency flag
-     later (even though the API makes no provision for that at the
-     moment).  */
-  if (handle->info.ref_count <= 0 && !LT_DLIS_RESIDENT (handle))
-    {
-      lt_user_data data = handle->loader->dlloader_data;
-
-      if (handle != handles)
-	{
-	  last->next = handle->next;
-	}
-      else
-	{
-	  handles = handle->next;
-	}
-
-      errors += handle->loader->module_close (data, handle->module);
-      errors += unload_deplibs(handle);
-
-      /* It is up to the callers to free the data itself.  */
-      LT_DLFREE (handle->caller_data);
-
-      LT_DLFREE (handle->info.filename);
-      LT_DLFREE (handle->info.name);
-      LT_DLFREE (handle);
-
-      goto done;
-    }
-
-  if (LT_DLIS_RESIDENT (handle))
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (CLOSE_RESIDENT_MODULE));
-      ++errors;
-    }
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-lt_ptr
-lt_dlsym (handle, symbol)
-     lt_dlhandle handle;
-     const char *symbol;
-{
-  size_t lensym;
-  char	lsym[LT_SYMBOL_LENGTH];
-  char	*sym;
-  lt_ptr address;
-  lt_user_data data;
-
-  if (!handle)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-      return 0;
-    }
-
-  if (!symbol)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (SYMBOL_NOT_FOUND));
-      return 0;
-    }
-
-  lensym = LT_STRLEN (symbol) + LT_STRLEN (handle->loader->sym_prefix)
-					+ LT_STRLEN (handle->info.name);
-
-  if (lensym + LT_SYMBOL_OVERHEAD < LT_SYMBOL_LENGTH)
-    {
-      sym = lsym;
-    }
-  else
-    {
-      sym = LT_EMALLOC (char, lensym + LT_SYMBOL_OVERHEAD + 1);
-      if (!sym)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (BUFFER_OVERFLOW));
-	  return 0;
-	}
-    }
-
-  data = handle->loader->dlloader_data;
-  if (handle->info.name)
-    {
-      const char *saved_error;
-
-      LT_DLMUTEX_GETERROR (saved_error);
-
-      /* this is a libtool module */
-      if (handle->loader->sym_prefix)
-	{
-	  strcpy(sym, handle->loader->sym_prefix);
-	  strcat(sym, handle->info.name);
-	}
-      else
-	{
-	  strcpy(sym, handle->info.name);
-	}
-
-      strcat(sym, "_LTX_");
-      strcat(sym, symbol);
-
-      /* try "modulename_LTX_symbol" */
-      address = handle->loader->find_sym (data, handle->module, sym);
-      if (address)
-	{
-	  if (sym != lsym)
-	    {
-	      LT_DLFREE (sym);
-	    }
-	  return address;
-	}
-      LT_DLMUTEX_SETERROR (saved_error);
-    }
-
-  /* otherwise try "symbol" */
-  if (handle->loader->sym_prefix)
-    {
-      strcpy(sym, handle->loader->sym_prefix);
-      strcat(sym, symbol);
-    }
-  else
-    {
-      strcpy(sym, symbol);
-    }
-
-  address = handle->loader->find_sym (data, handle->module, sym);
-  if (sym != lsym)
-    {
-      LT_DLFREE (sym);
-    }
-
-  return address;
-}
-
-const char *
-lt_dlerror ()
-{
-  const char *error;
-
-  LT_DLMUTEX_GETERROR (error);
-  LT_DLMUTEX_SETERROR (0);
-
-  return error ? error : NULL;
-}
-
-static int
-lt_dlpath_insertdir (ppath, before, dir)
-     char **ppath;
-     char *before;
-     const char *dir;
-{
-  int    errors		= 0;
-  char  *canonical	= 0;
-  char  *argz		= 0;
-  size_t argz_len	= 0;
-
-  assert (ppath);
-  assert (dir && *dir);
-
-  if (canonicalize_path (dir, &canonical) != 0)
-    {
-      ++errors;
-      goto cleanup;
-    }
-
-  assert (canonical && *canonical);
-
-  /* If *PPATH is empty, set it to DIR.  */
-  if (*ppath == 0)
-    {
-      assert (!before);		/* BEFORE cannot be set without PPATH.  */
-      assert (dir);		/* Without DIR, don't call this function!  */
-
-      *ppath = lt_estrdup (dir);
-      if (*ppath == 0)
-	++errors;
-
-      return errors;
-    }
-
-  assert (ppath && *ppath);
-
-  if (argzize_path (*ppath, &argz, &argz_len) != 0)
-    {
-      ++errors;
-      goto cleanup;
-    }
-
-  /* Convert BEFORE into an equivalent offset into ARGZ.  This only works
-     if *PPATH is already canonicalized, and hence does not change length
-     with respect to ARGZ.  We canonicalize each entry as it is added to
-     the search path, and don't call this function with (uncanonicalized)
-     user paths, so this is a fair assumption.  */
-  if (before)
-    {
-      assert (*ppath <= before);
-      assert ((size_t)(before - *ppath) <= strlen (*ppath));
-
-      before = before - *ppath + argz;
-    }
-
-  if (lt_argz_insert (&argz, &argz_len, before, dir) != 0)
-    {
-      ++errors;
-      goto cleanup;
-    }
-
-  argz_stringify (argz, argz_len, LT_PATHSEP_CHAR);
-  LT_DLMEM_REASSIGN (*ppath,  argz);
-
- cleanup:
-  LT_DLFREE (canonical);
-  LT_DLFREE (argz);
-
-  return errors;
-}
-
-int
-lt_dladdsearchdir (search_dir)
-     const char *search_dir;
-{
-  int errors = 0;
-
-  if (search_dir && *search_dir)
-    {
-      LT_DLMUTEX_LOCK ();
-      if (lt_dlpath_insertdir (&user_search_path, 0, search_dir) != 0)
-	++errors;
-      LT_DLMUTEX_UNLOCK ();
-    }
-
-  return errors;
-}
-
-int
-lt_dlinsertsearchdir (before, search_dir)
-     const char *before;
-     const char *search_dir;
-{
-  int errors = 0;
-
-  if (before)
-    {
-      LT_DLMUTEX_LOCK ();
-      if ((before < user_search_path)
-	  || (before >= user_search_path + LT_STRLEN (user_search_path)))
-	{
-	  LT_DLMUTEX_UNLOCK ();
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_POSITION));
-	  return 1;
-	}
-      LT_DLMUTEX_UNLOCK ();
-    }
-
-  if (search_dir && *search_dir)
-    {
-      LT_DLMUTEX_LOCK ();
-      if (lt_dlpath_insertdir (&user_search_path,
-			       (char *) before, search_dir) != 0)
-	{
-	  ++errors;
-	}
-      LT_DLMUTEX_UNLOCK ();
-    }
-
-  return errors;
-}
-
-int
-lt_dlsetsearchpath (search_path)
-     const char *search_path;
-{
-  int   errors	    = 0;
-
-  LT_DLMUTEX_LOCK ();
-  LT_DLFREE (user_search_path);
-  LT_DLMUTEX_UNLOCK ();
-
-  if (!search_path || !LT_STRLEN (search_path))
-    {
-      return errors;
-    }
-
-  LT_DLMUTEX_LOCK ();
-  if (canonicalize_path (search_path, &user_search_path) != 0)
-    ++errors;
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-const char *
-lt_dlgetsearchpath ()
-{
-  const char *saved_path;
-
-  LT_DLMUTEX_LOCK ();
-  saved_path = user_search_path;
-  LT_DLMUTEX_UNLOCK ();
-
-  return saved_path;
-}
-
-int
-lt_dlmakeresident (handle)
-     lt_dlhandle handle;
-{
-  int errors = 0;
-
-  if (!handle)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-      ++errors;
-    }
-  else
-    {
-      LT_DLSET_FLAG (handle, LT_DLRESIDENT_FLAG);
-    }
-
-  return errors;
-}
-
-int
-lt_dlisresident	(handle)
-     lt_dlhandle handle;
-{
-  if (!handle)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-      return -1;
-    }
-
-  return LT_DLIS_RESIDENT (handle);
-}
-
-
-
-
-/* --- MODULE INFORMATION --- */
-
-const lt_dlinfo *
-lt_dlgetinfo (handle)
-     lt_dlhandle handle;
-{
-  if (!handle)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_HANDLE));
-      return 0;
-    }
-
-  return &(handle->info);
-}
-
-lt_dlhandle
-lt_dlhandle_next (place)
-     lt_dlhandle place;
-{
-  return place ? place->next : handles;
-}
-
-int
-lt_dlforeach (func, data)
-     int (*func) LT_PARAMS((lt_dlhandle handle, lt_ptr data));
-     lt_ptr data;
-{
-  int errors = 0;
-  lt_dlhandle cur;
-
-  LT_DLMUTEX_LOCK ();
-
-  cur = handles;
-  while (cur)
-    {
-      lt_dlhandle tmp = cur;
-
-      cur = cur->next;
-      if ((*func) (tmp, data))
-	{
-	  ++errors;
-	  break;
-	}
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-lt_dlcaller_id
-lt_dlcaller_register ()
-{
-  static lt_dlcaller_id last_caller_id = 0;
-  int result;
-
-  LT_DLMUTEX_LOCK ();
-  result = ++last_caller_id;
-  LT_DLMUTEX_UNLOCK ();
-
-  return result;
-}
-
-lt_ptr
-lt_dlcaller_set_data (key, handle, data)
-     lt_dlcaller_id key;
-     lt_dlhandle handle;
-     lt_ptr data;
-{
-  int n_elements = 0;
-  lt_ptr stale = (lt_ptr) 0;
-  int i;
-
-  /* This needs to be locked so that the caller data can be updated
-     simultaneously by different threads.  */
-  LT_DLMUTEX_LOCK ();
-
-  if (handle->caller_data)
-    while (handle->caller_data[n_elements].key)
-      ++n_elements;
-
-  for (i = 0; i < n_elements; ++i)
-    {
-      if (handle->caller_data[i].key == key)
-	{
-	  stale = handle->caller_data[i].data;
-	  break;
-	}
-    }
-
-  /* Ensure that there is enough room in this handle's caller_data
-     array to accept a new element (and an empty end marker).  */
-  if (i == n_elements)
-    {
-      lt_caller_data *temp
-	= LT_DLREALLOC (lt_caller_data, handle->caller_data, 2+ n_elements);
-
-      if (!temp)
-	{
-	  stale = 0;
-	  goto done;
-	}
-
-      handle->caller_data = temp;
-
-      /* We only need this if we needed to allocate a new caller_data.  */
-      handle->caller_data[i].key  = key;
-      handle->caller_data[1+ i].key = 0;
-    }
-
-  handle->caller_data[i].data = data;
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-
-  return stale;
-}
-
-lt_ptr
-lt_dlcaller_get_data  (key, handle)
-     lt_dlcaller_id key;
-     lt_dlhandle handle;
-{
-  lt_ptr result = (lt_ptr) 0;
-
-  /* This needs to be locked so that the caller data isn't updated by
-     another thread part way through this function.  */
-  LT_DLMUTEX_LOCK ();
-
-  /* Locate the index of the element with a matching KEY.  */
-  {
-    int i;
-    for (i = 0; handle->caller_data[i].key; ++i)
-      {
-	if (handle->caller_data[i].key == key)
-	  {
-	    result = handle->caller_data[i].data;
-	    break;
-	  }
-      }
-  }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return result;
-}
-
-
-
-/* --- USER MODULE LOADER API --- */
-
-
-int
-lt_dlloader_add (place, dlloader, loader_name)
-     lt_dlloader *place;
-     const struct lt_user_dlloader *dlloader;
-     const char *loader_name;
-{
-  int errors = 0;
-  lt_dlloader *node = 0, *ptr = 0;
-
-  if ((dlloader == 0)	/* diagnose null parameters */
-      || (dlloader->module_open == 0)
-      || (dlloader->module_close == 0)
-      || (dlloader->find_sym == 0))
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_LOADER));
-      return 1;
-    }
-
-  /* Create a new dlloader node with copies of the user callbacks.  */
-  node = LT_EMALLOC (lt_dlloader, 1);
-  if (!node)
-    return 1;
-
-  node->next		= 0;
-  node->loader_name	= loader_name;
-  node->sym_prefix	= dlloader->sym_prefix;
-  node->dlloader_exit	= dlloader->dlloader_exit;
-  node->module_open	= dlloader->module_open;
-  node->module_close	= dlloader->module_close;
-  node->find_sym	= dlloader->find_sym;
-  node->dlloader_data	= dlloader->dlloader_data;
-
-  LT_DLMUTEX_LOCK ();
-  if (!loaders)
-    {
-      /* If there are no loaders, NODE becomes the list! */
-      loaders = node;
-    }
-  else if (!place)
-    {
-      /* If PLACE is not set, add NODE to the end of the
-	 LOADERS list. */
-      for (ptr = loaders; ptr->next; ptr = ptr->next)
-	{
-	  /*NOWORK*/;
-	}
-
-      ptr->next = node;
-    }
-  else if (loaders == place)
-    {
-      /* If PLACE is the first loader, NODE goes first. */
-      node->next = place;
-      loaders = node;
-    }
-  else
-    {
-      /* Find the node immediately preceding PLACE. */
-      for (ptr = loaders; ptr->next != place; ptr = ptr->next)
-	{
-	  /*NOWORK*/;
-	}
-
-      if (ptr->next != place)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_LOADER));
-	  ++errors;
-	}
-      else
-	{
-	  /* Insert NODE between PTR and PLACE. */
-	  node->next = place;
-	  ptr->next  = node;
-	}
-    }
-
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-int
-lt_dlloader_remove (loader_name)
-     const char *loader_name;
-{
-  lt_dlloader *place = lt_dlloader_find (loader_name);
-  lt_dlhandle handle;
-  int errors = 0;
-
-  if (!place)
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_LOADER));
-      return 1;
-    }
-
-  LT_DLMUTEX_LOCK ();
-
-  /* Fail if there are any open modules which use this loader. */
-  for  (handle = handles; handle; handle = handle->next)
-    {
-      if (handle->loader == place)
-	{
-	  LT_DLMUTEX_SETERROR (LT_DLSTRERROR (REMOVE_LOADER));
-	  ++errors;
-	  goto done;
-	}
-    }
-
-  if (place == loaders)
-    {
-      /* PLACE is the first loader in the list. */
-      loaders = loaders->next;
-    }
-  else
-    {
-      /* Find the loader before the one being removed. */
-      lt_dlloader *prev;
-      for (prev = loaders; prev->next; prev = prev->next)
-	{
-	  if (!strcmp (prev->next->loader_name, loader_name))
-	    {
-	      break;
-	    }
-	}
-
-      place = prev->next;
-      prev->next = prev->next->next;
-    }
-
-  if (place->dlloader_exit)
-    {
-      errors = place->dlloader_exit (place->dlloader_data);
-    }
-
-  LT_DLFREE (place);
-
- done:
-  LT_DLMUTEX_UNLOCK ();
-
-  return errors;
-}
-
-lt_dlloader *
-lt_dlloader_next (place)
-     lt_dlloader *place;
-{
-  lt_dlloader *next;
-
-  LT_DLMUTEX_LOCK ();
-  next = place ? place->next : loaders;
-  LT_DLMUTEX_UNLOCK ();
-
-  return next;
-}
-
-const char *
-lt_dlloader_name (place)
-     lt_dlloader *place;
-{
-  const char *name = 0;
-
-  if (place)
-    {
-      LT_DLMUTEX_LOCK ();
-      name = place ? place->loader_name : 0;
-      LT_DLMUTEX_UNLOCK ();
-    }
-  else
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_LOADER));
-    }
-
-  return name;
-}
-
-lt_user_data *
-lt_dlloader_data (place)
-     lt_dlloader *place;
-{
-  lt_user_data *data = 0;
-
-  if (place)
-    {
-      LT_DLMUTEX_LOCK ();
-      data = place ? &(place->dlloader_data) : 0;
-      LT_DLMUTEX_UNLOCK ();
-    }
-  else
-    {
-      LT_DLMUTEX_SETERROR (LT_DLSTRERROR (INVALID_LOADER));
-    }
-
-  return data;
-}
-
-lt_dlloader *
-lt_dlloader_find (loader_name)
-     const char *loader_name;
-{
-  lt_dlloader *place = 0;
-
-  LT_DLMUTEX_LOCK ();
-  for (place = loaders; place; place = place->next)
-    {
-      if (strcmp (place->loader_name, loader_name) == 0)
-	{
-	  break;
-	}
-    }
-  LT_DLMUTEX_UNLOCK ();
-
-  return place;
-}
diff --git a/support/lib/System/ltdl.h b/support/lib/System/ltdl.h
deleted file mode 100644
index 8aaf342..0000000
--- a/support/lib/System/ltdl.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/* ltdl.h -- generic dlopen functions
-   Copyright (C) 1998-2000 Free Software Foundation, Inc.
-   Originally by Thomas Tanner <tanner@ffii.org>
-   This file is part of GNU Libtool.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free
-Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301  USA
-*/
-
-/* Only include this header file once. */
-#ifndef LTDL_H
-#define LTDL_H 1
-
-#include <sys/types.h>		/* for size_t declaration */
-
-
-/* --- MACROS FOR PORTABILITY --- */
-
-
-/* Saves on those hard to debug '\0' typos....  */
-#define LT_EOS_CHAR	'\0'
-
-/* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations,
-   so that C++ compilers don't mangle their names.  Use LTDL_END_C_DECLS at
-   the end of C declarations. */
-#ifdef __cplusplus
-# define LT_BEGIN_C_DECLS	extern "C" {
-# define LT_END_C_DECLS		}
-#else
-# define LT_BEGIN_C_DECLS	/* empty */
-# define LT_END_C_DECLS		/* empty */
-#endif
-
-LT_BEGIN_C_DECLS
-
-
-/* LT_PARAMS is a macro used to wrap function prototypes, so that compilers
-   that don't understand ANSI C prototypes still work, and ANSI C
-   compilers can issue warnings about type mismatches.  */
-#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus)
-# define LT_PARAMS(protos)	protos
-# define lt_ptr		void*
-#else
-# define LT_PARAMS(protos)	()
-# define lt_ptr		char*
-#endif
-
-/* LT_STMT_START/END are used to create macros which expand to a
-   a single compound statement in a portable way.  */
-#if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus)
-#  define LT_STMT_START        (void)(
-#  define LT_STMT_END          )
-#else
-#  if (defined (sun) || defined (__sun__))
-#    define LT_STMT_START      if (1)
-#    define LT_STMT_END        else (void)0
-#  else
-#    define LT_STMT_START      do
-#    define LT_STMT_END        while (0)
-#  endif
-#endif
-
-/* LT_CONC creates a new concatenated symbol for the compiler
-   in a portable way.  */
-#if defined(__STDC__) || defined(__cplusplus) || defined(_MSC_VER)
-#  define LT_CONC(s,t)	s##t
-#else
-#  define LT_CONC(s,t)	s/**/t
-#endif
-
-/* LT_STRLEN can be used safely on NULL pointers.  */
-#define LT_STRLEN(s)	(((s) && (s)[0]) ? strlen (s) : 0)
-
-
-
-/* --- WINDOWS SUPPORT --- */
-
-
-/* Canonicalise Windows and Cygwin recognition macros.  */
-#ifdef __CYGWIN32__
-#  ifndef __CYGWIN__
-#    define __CYGWIN__ __CYGWIN32__
-#  endif
-#endif
-#if defined(_WIN32) || defined(WIN32)
-#  ifndef __WINDOWS__
-#    ifdef _WIN32
-#      define __WINDOWS__ _WIN32
-#    else
-#      ifdef WIN32
-#        define __WINDOWS__ WIN32
-#      endif
-#    endif
-#  endif
-#endif
-
-
-#ifdef __WINDOWS__
-#  ifndef __CYGWIN__
-/* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory
-   separator when it is set. */
-#    define LT_DIRSEP_CHAR	'\\'
-#    define LT_PATHSEP_CHAR	';'
-#  endif
-#endif
-#ifndef LT_PATHSEP_CHAR
-#  define LT_PATHSEP_CHAR	':'
-#endif
-
-/* DLL building support on win32 hosts;  mostly to workaround their
-   ridiculous implementation of data symbol exporting. */
-#ifndef LT_SCOPE
-#  ifdef __WINDOWS__
-#    ifdef DLL_EXPORT		/* defined by libtool (if required) */
-#      define LT_SCOPE	__declspec(dllexport)
-#    endif
-#    ifdef LIBLTDL_DLL_IMPORT	/* define if linking with this dll */
-#      define LT_SCOPE	extern __declspec(dllimport)
-#    endif
-#  endif
-#  ifndef LT_SCOPE		/* static linking or !__WINDOWS__ */
-#    define LT_SCOPE	extern
-#  endif
-#endif
-
-
-#if defined(_MSC_VER) /* Visual Studio */
-#  define R_OK 4
-#endif
-
-
-
-/* --- DYNAMIC MODULE LOADING API --- */
-
-
-typedef	struct lt_dlhandle_struct *lt_dlhandle;	/* A loaded module.  */
-
-/* Initialisation and finalisation functions for libltdl. */
-LT_SCOPE	int	    lt_dlinit		LT_PARAMS((void));
-LT_SCOPE	int	    lt_dlexit		LT_PARAMS((void));
-
-/* Module search path manipulation.  */
-LT_SCOPE	int	    lt_dladdsearchdir	 LT_PARAMS((const char *search_dir));
-LT_SCOPE	int	    lt_dlinsertsearchdir LT_PARAMS((const char *before,
-						    const char *search_dir));
-LT_SCOPE	int 	    lt_dlsetsearchpath	 LT_PARAMS((const char *search_path));
-LT_SCOPE	const char *lt_dlgetsearchpath	 LT_PARAMS((void));
-LT_SCOPE	int	    lt_dlforeachfile	 LT_PARAMS((
-			const char *search_path,
-			int (*func) (const char *filename, lt_ptr data),
-			lt_ptr data));
-
-/* Portable libltdl versions of the system dlopen() API. */
-LT_SCOPE	lt_dlhandle lt_dlopen		LT_PARAMS((const char *filename));
-LT_SCOPE	lt_dlhandle lt_dlopenext	LT_PARAMS((const char *filename));
-LT_SCOPE	lt_ptr	    lt_dlsym		LT_PARAMS((lt_dlhandle handle,
-						     const char *name));
-LT_SCOPE	const char *lt_dlerror		LT_PARAMS((void));
-LT_SCOPE	int	    lt_dlclose		LT_PARAMS((lt_dlhandle handle));
-
-/* Module residency management. */
-LT_SCOPE	int	    lt_dlmakeresident	LT_PARAMS((lt_dlhandle handle));
-LT_SCOPE	int	    lt_dlisresident	LT_PARAMS((lt_dlhandle handle));
-
-
-
-
-/* --- MUTEX LOCKING --- */
-
-
-typedef void	lt_dlmutex_lock		LT_PARAMS((void));
-typedef void	lt_dlmutex_unlock	LT_PARAMS((void));
-typedef void	lt_dlmutex_seterror	LT_PARAMS((const char *errmsg));
-typedef const char *lt_dlmutex_geterror	LT_PARAMS((void));
-
-LT_SCOPE	int	lt_dlmutex_register	LT_PARAMS((lt_dlmutex_lock *lock,
-					    lt_dlmutex_unlock *unlock,
-					    lt_dlmutex_seterror *seterror,
-					    lt_dlmutex_geterror *geterror));
-
-
-
-
-/* --- MEMORY HANDLING --- */
-
-
-/* By default, the realloc function pointer is set to our internal
-   realloc implementation which iself uses lt_dlmalloc and lt_dlfree.
-   libltdl relies on a featureful realloc, but if you are sure yours
-   has the right semantics then you can assign it directly.  Generally,
-   it is safe to assign just a malloc() and a free() function.  */
-LT_SCOPE  lt_ptr   (*lt_dlmalloc)	LT_PARAMS((size_t size));
-LT_SCOPE  lt_ptr   (*lt_dlrealloc)	LT_PARAMS((lt_ptr ptr, size_t size));
-LT_SCOPE  void	   (*lt_dlfree)		LT_PARAMS((lt_ptr ptr));
-
-
-
-
-/* --- PRELOADED MODULE SUPPORT --- */
-
-
-/* A preopened symbol. Arrays of this type comprise the exported
-   symbols for a dlpreopened module. */
-typedef struct {
-  const char *name;
-  lt_ptr      address;
-} lt_dlsymlist;
-
-LT_SCOPE	int	lt_dlpreload	LT_PARAMS((const lt_dlsymlist *preloaded));
-LT_SCOPE	int	lt_dlpreload_default
-				LT_PARAMS((const lt_dlsymlist *preloaded));
-
-#define LTDL_SET_PRELOADED_SYMBOLS() 		LT_STMT_START{	\
-	extern const lt_dlsymlist lt_preloaded_symbols[];		\
-	lt_dlpreload_default(lt_preloaded_symbols);			\
-						}LT_STMT_END
-
-
-
-
-/* --- MODULE INFORMATION --- */
-
-
-/* Read only information pertaining to a loaded module. */
-typedef	struct {
-  char	*filename;		/* file name */
-  char	*name;			/* module name */
-  int	ref_count;		/* number of times lt_dlopened minus
-				   number of times lt_dlclosed. */
-} lt_dlinfo;
-
-LT_SCOPE	const lt_dlinfo	*lt_dlgetinfo	    LT_PARAMS((lt_dlhandle handle));
-LT_SCOPE	lt_dlhandle	lt_dlhandle_next    LT_PARAMS((lt_dlhandle place));
-LT_SCOPE	int		lt_dlforeach	    LT_PARAMS((
-				int (*func) (lt_dlhandle handle, lt_ptr data),
-				lt_ptr data));
-
-/* Associating user data with loaded modules. */
-typedef unsigned lt_dlcaller_id;
-
-LT_SCOPE	lt_dlcaller_id	lt_dlcaller_register  LT_PARAMS((void));
-LT_SCOPE	lt_ptr		lt_dlcaller_set_data  LT_PARAMS((lt_dlcaller_id key,
-						lt_dlhandle handle,
-						lt_ptr data));
-LT_SCOPE	lt_ptr		lt_dlcaller_get_data  LT_PARAMS((lt_dlcaller_id key,
-						lt_dlhandle handle));
-
-
-
-/* --- USER MODULE LOADER API --- */
-
-
-typedef	struct lt_dlloader	lt_dlloader;
-typedef lt_ptr			lt_user_data;
-typedef lt_ptr			lt_module;
-
-/* Function pointer types for creating user defined module loaders. */
-typedef lt_module   lt_module_open	LT_PARAMS((lt_user_data loader_data,
-					    const char *filename));
-typedef int	    lt_module_close	LT_PARAMS((lt_user_data loader_data,
-					    lt_module handle));
-typedef lt_ptr	    lt_find_sym		LT_PARAMS((lt_user_data loader_data,
-					    lt_module handle,
-					    const char *symbol));
-typedef int	    lt_dlloader_exit	LT_PARAMS((lt_user_data loader_data));
-
-struct lt_user_dlloader {
-  const char	       *sym_prefix;
-  lt_module_open       *module_open;
-  lt_module_close      *module_close;
-  lt_find_sym	       *find_sym;
-  lt_dlloader_exit     *dlloader_exit;
-  lt_user_data		dlloader_data;
-};
-
-LT_SCOPE	lt_dlloader    *lt_dlloader_next    LT_PARAMS((lt_dlloader *place));
-LT_SCOPE	lt_dlloader    *lt_dlloader_find    LT_PARAMS((
-						const char *loader_name));
-LT_SCOPE	const char     *lt_dlloader_name    LT_PARAMS((lt_dlloader *place));
-LT_SCOPE	lt_user_data   *lt_dlloader_data    LT_PARAMS((lt_dlloader *place));
-LT_SCOPE	int		lt_dlloader_add     LT_PARAMS((lt_dlloader *place,
-				const struct lt_user_dlloader *dlloader,
-				const char *loader_name));
-LT_SCOPE	int		lt_dlloader_remove  LT_PARAMS((
-						const char *loader_name));
-
-
-
-/* --- ERROR MESSAGE HANDLING --- */
-
-
-/* Defining error strings alongside their symbolic names in a macro in
-   this way allows us to expand the macro in different contexts with
-   confidence that the enumeration of symbolic names will map correctly
-   onto the table of error strings.  */
-#define lt_dlerror_table						\
-    LT_ERROR(UNKNOWN,		    "unknown error")			\
-    LT_ERROR(DLOPEN_NOT_SUPPORTED,  "dlopen support not available")	\
-    LT_ERROR(INVALID_LOADER,	    "invalid loader")			\
-    LT_ERROR(INIT_LOADER,	    "loader initialization failed")	\
-    LT_ERROR(REMOVE_LOADER,	    "loader removal failed")		\
-    LT_ERROR(FILE_NOT_FOUND,	    "file not found")			\
-    LT_ERROR(DEPLIB_NOT_FOUND,      "dependency library not found")	\
-    LT_ERROR(NO_SYMBOLS,	    "no symbols defined")		\
-    LT_ERROR(CANNOT_OPEN,	    "can't open the module")		\
-    LT_ERROR(CANNOT_CLOSE,	    "can't close the module")		\
-    LT_ERROR(SYMBOL_NOT_FOUND,      "symbol not found")			\
-    LT_ERROR(NO_MEMORY,		    "not enough memory")		\
-    LT_ERROR(INVALID_HANDLE,	    "invalid module handle")		\
-    LT_ERROR(BUFFER_OVERFLOW,	    "internal buffer overflow")		\
-    LT_ERROR(INVALID_ERRORCODE,     "invalid errorcode")		\
-    LT_ERROR(SHUTDOWN,		    "library already shutdown")		\
-    LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module")	\
-    LT_ERROR(INVALID_MUTEX_ARGS,    "invalid mutex handler registration") \
-    LT_ERROR(INVALID_POSITION,	    "invalid search path insert position")
-
-/* Enumerate the symbolic error names. */
-enum {
-#define LT_ERROR(name, diagnostic)	LT_CONC(LT_ERROR_, name),
-	lt_dlerror_table
-#undef LT_ERROR
-
-	LT_ERROR_MAX
-};
-
-/* These functions are only useful from inside custom module loaders. */
-LT_SCOPE	int	lt_dladderror	LT_PARAMS((const char *diagnostic));
-LT_SCOPE	int	lt_dlseterror	LT_PARAMS((int errorcode));
-
-
-
-
-/* --- SOURCE COMPATIBILITY WITH OLD LIBLTDL --- */
-
-
-#ifdef LT_NON_POSIX_NAMESPACE
-#  define lt_ptr_t		lt_ptr
-#  define lt_module_t		lt_module
-#  define lt_module_open_t	lt_module_open
-#  define lt_module_close_t	lt_module_close
-#  define lt_find_sym_t		lt_find_sym
-#  define lt_dlloader_exit_t	lt_dlloader_exit
-#  define lt_dlloader_t		lt_dlloader
-#  define lt_dlloader_data_t	lt_user_data
-#endif
-
-LT_END_C_DECLS
-
-#endif /* !LTDL_H */
diff --git a/support/make/Makefile.archive b/support/make/Makefile.archive
deleted file mode 100644
index 625f773..0000000
--- a/support/make/Makefile.archive
+++ /dev/null
@@ -1,55 +0,0 @@
-#===-- Makefile.archive - Rules for building archives ------*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file defines rules for building archive libraries.
-#
-#===-----------------------------------------------------------------------====#
-
-include $(LLVM_TOP)/support/make/Makefile.compile
-
-#---------------------------------------------------------
-# Archive Library Targets:
-#   If the user wanted a regular archive library built, 
-#   then we provide targets for building them.
-#---------------------------------------------------------
-LIBRARYNAME := $(strip $(LIBRARYNAME))
-LibName.A  := $(LibDir)/lib$(LIBRARYNAME).a
-
-all-local:: $(LibName.A)
-
-$(LibName.A): $(ObjectsO) $(LibDir)/.dir
-	$(Echo) Building $(BuildMode) Archive Library $(notdir $@)
-	-$(Verb) $(RM) -f $@
-	$(Verb) $(Archive) $@ $(ObjectsO)
-	$(Verb) $(Ranlib) $@
-
-clean-local::
-ifneq ($(strip $(LibName.A)),)
-	-$(Verb) $(RM) -f $(LibName.A)
-endif
-
-ifdef NO_INSTALL
-install-local::
-	$(Echo) Install circumvented with NO_INSTALL
-uninstall-local::
-	$(Echo) Uninstall circumvented with NO_INSTALL
-else
-DestArchiveLib := $(PROJ_libdir)/lib$(LIBRARYNAME).a
-
-install-local:: $(DestArchiveLib)
-
-$(DestArchiveLib): $(PROJ_libdir) $(LibName.A)
-	$(Echo) Installing $(BuildMode) Archive Library $(DestArchiveLib)
-	$(Verb) $(MKDIR) $(PROJ_libdir)
-	$(Verb) $(LTInstall) $(LibName.A) $(DestArchiveLib)
-
-uninstall-local::
-	$(Echo) Uninstalling $(BuildMode) Archive Library $(DestArchiveLib)
-	-$(Verb) $(RM) -f $(DestArchiveLib)
-endif
diff --git a/support/make/Makefile.common b/support/make/Makefile.common
deleted file mode 100644
index f41061e..0000000
--- a/support/make/Makefile.common
+++ /dev/null
@@ -1,707 +0,0 @@
-#===-- Makefile.common - Common rules for LLVM Builds ------*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by Reid Spencer group and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file is included by all of the LLVM makefiles or it could be used as 
-# the GOAL name for a directory that only needs to pass building to subdirs.
-#
-#===-----------------------------------------------------------------------====#
-
-################################################################################
-# TARGETS: Define standard targets that can be invoked
-################################################################################
-
-#--------------------------------------------------------------------
-# Define the various target sets
-#--------------------------------------------------------------------
-RecursiveTargets := all clean clean-all install uninstall install-bytecode
-LocalTargets     := all-local clean-local clean-all-local check-local \
-                    install-local printvars uninstall-local \
-		    install-bytecode-local
-TopLevelTargets  := check dist dist-check dist-clean tags dist-gzip dist-bzip2 \
-                    dist-zip
-UserTargets      := $(RecursiveTargets) $(LocalTargets) $(TopLevelTargets)
-InternalTargets  := preconditions distdir dist-hook
-
-################################################################################
-# INITIALIZATION: Basic things the makefile needs
-################################################################################
-
-#--------------------------------------------------------------------
-# Set the VPATH so that we can find source files.
-#--------------------------------------------------------------------
-VPATH=$(PROJ_SRC_DIR)
-
-#--------------------------------------------------------------------
-# Reset the list of suffixes we know how to build.
-#--------------------------------------------------------------------
-.SUFFIXES:
-.SUFFIXES: .c .cpp .cc .h .hpp .y .l .lo .o .a .bc .td .ps .dot .ll
-.SUFFIXES: $(SHLIBEXT) $(SUFFIXES)
-
-#--------------------------------------------------------------------
-# Mark all of these targets as phony to avoid implicit rule search
-#--------------------------------------------------------------------
-.PHONY: $(UserTargets) $(InternalTargets)
-
-#--------------------------------------------------------------------
-# Make sure all the user-target rules are double colon rules and 
-# they are defined first.
-#--------------------------------------------------------------------
-
-$(UserTargets)::
-
-################################################################################
-# PRECONDITIONS: that which must be built/checked first
-################################################################################
-
-SrcMakefiles       := $(filter %Makefile %Makefile.tests,\
-                      $(wildcard $(SRC_DIR)/Makefile*))
-ObjMakefiles       := $(subst $(SRC_DIR),$(OBJ_DIR),$(SrcMakefiles))
-ConfigureScript    := $(SRC_ROOT)/configure
-ConfigStatusScript := $(OBJ_ROOT)/config.status
-MakefileConfigIn   := $(strip $(wildcard $(SRC_ROOT)/Makefile.config.in))
-MakefileCommonIn   := $(strip $(wildcard $(SRC_ROOT)/Makefile.common.in))
-MakefileConfig     := $(OBJ_ROOT)/Makefile.config
-MakefileCommon     := $(OBJ_ROOT)/Makefile.common
-PreConditions      := $(ConfigStatusScript) $(ObjMakefiles)
-ifneq ($(MakefileCommonIn),)
-PreConditions      += $(MakefileCommon)
-endif
-
-ifneq ($(MakefileConfigIn),)
-PreConditions      += $(MakefileConfig)
-endif
-
-preconditions: $(PreConditions)
-
-#------------------------------------------------------------------------
-# Make sure the BUILT_SOURCES are built first
-#------------------------------------------------------------------------
-$(filter-out clean clean-local,$(UserTargets)):: $(BUILT_SOURCES)
-
-clean-all-local::
-ifneq ($(strip $(BUILT_SOURCES)),)
-	-$(Verb) $(RM) -f $(BUILT_SOURCES)
-endif
-
-ifneq ($(OBJ_ROOT),$(SRC_ROOT))
-spotless:
-	$(Verb) if test -x config.status ; then \
-	  $(EchoCmd) Wiping out $(OBJ_ROOT) ; \
-	  $(MKDIR) .spotless.save ; \
-	  $(MV) config.status .spotless.save ; \
-	  $(MV) mklib  .spotless.save ; \
-	  $(MV) projects  .spotless.save ; \
-	  $(RM) -rf * ; \
-	  $(MV) .spotless.save/config.status . ; \
-	  $(MV) .spotless.save/mklib . ; \
-	  $(MV) .spotless.save/projects . ; \
-	  $(RM) -rf .spotless.save ; \
-	  $(EchoCmd) Rebuilding configuration of $(OBJ_ROOT) ; \
-	  $(ConfigStatusScript) --recheck $(ConfigureScriptFLAGS) && \
-	  $(ConfigStatusScript) ; \
-	else \
-	  $(EchoCmd) "make spotless" can only be run from $(OBJ_ROOT); \
-	fi
-else
-spotless:
-	$(EchoCmd) "spotless target not supported for objdir == srcdir"
-endif
-
-$(BUILT_SOURCES) : $(ObjMakefiles)
-
-#------------------------------------------------------------------------
-# Make sure we're not using a stale configuration
-#------------------------------------------------------------------------
-reconfigure:
-	$(Echo) Reconfiguring $(OBJ_ROOT)
-	$(Verb) cd $(OBJ_ROOT) && \
-	  if test -w $(OBJ_ROOT)/config.cache ; then \
-	    $(RM) $(OBJ_ROOT)/config.cache ; \
-	  fi ; \
-	  $(ConfigStatusScript) --recheck $(ConfigureScriptFLAGS) && \
-	  $(ConfigStatusScript)
-
-.PRECIOUS: $(ConfigStatusScript)
-$(ConfigStatusScript): $(ConfigureScript)
-	$(Echo) Reconfiguring with $<
-	$(Verb) cd $(OBJ_ROOT) && \
-	  if test -w $(OBJ_ROOT)/config.cache ; then \
-	    $(RM) $(OBJ_ROOT)/config.cache ; \
-	  fi ; \
-	  $(ConfigStatusScript) --recheck $(ConfigureScriptFLAGS) && \
-	  $(ConfigStatusScript)
-
-#------------------------------------------------------------------------
-# Make sure the configuration makefile is up to date
-#------------------------------------------------------------------------
-ifneq ($(MakefileConfigIn),)
-$(MakefileConfig): $(MakefileConfigIn) $(ConfigStatusScript)
-	$(Echo) Regenerating $@
-	$(Verb) cd $(OBJ_ROOT) ; $(ConfigStatusScript) Makefile.config
-endif
-
-ifneq ($(MakefileCommonIn),)
-$(MakefileCommon): $(MakefileCommonIn) $(ConfigStatusScript)
-	$(Echo) Regenerating $@
-	$(Verb) cd $(OBJ_ROOT) ; $(ConfigStatusScript) Makefile.common
-endif
-
-#------------------------------------------------------------------------
-# If the Makefile in the source tree has been updated, copy it over into the
-# build tree. But, only do this if the source and object makefiles differ
-#------------------------------------------------------------------------
-ifneq ($(OBJ_DIR),$(SRC_DIR))
-
-Makefile: $(SRC_DIR)/Makefile
-	$(Echo) "Updating Makefile"
-	$(Verb) $(MKDIR) $(@D)
-	$(Verb) $(CP) -f $< $@
-
-# Copy the Makefile.* files unless we're in the root directory which avoids
-# the copying of Makefile.config.in or other things that should be explicitly
-# taken care of.
-$(OBJ_DIR)/Makefile% : $(SRC_DIR)/Makefile%
-	@case '$?' in \
-          *Makefile.rules) ;; \
-          *.in) ;; \
-          *) $(Echo) "Updating $(@F)" ; \
-	     $(MKDIR) $(@D) ; \
-	     $(CP) -f $< $@ ;; \
-	esac
-         
-endif
-
-#------------------------------------------------------------------------
-# Set up the basic dependencies
-#------------------------------------------------------------------------
-$(UserTargets):: $(PreConditions)
-
-all:: all-local
-clean:: clean-local 
-clean-all:: clean-local clean-all-local
-install:: install-local
-uninstall:: uninstall-local
-install-local:: all-local 
-install-bytecode:: install-bytecode-local
-
-###############################################################################
-# VARIABLES: Set up various variables based on configuration data
-###############################################################################
-
-#--------------------------------------------------------------------
-# Variables derived from configuration we are building
-#--------------------------------------------------------------------
-
-CPP.Defines :=
-# OPTIMIZE_OPTION - The optimization level option we want to build LLVM with
-# this can be overridden on the make command line.
-ifneq ($(OS),MingW)
-  OPTIMIZE_OPTION := -O3
-else
-  OPTIMIZE_OPTION := -O2
-endif
-
-ifdef ENABLE_PROFILING
-  BuildMode := Profile
-  CXX.Flags := $(OPTIMIZE_OPTION) -pg -g
-  C.Flags   := $(OPTIMIZE_OPTION) -pg -g
-  LD.Flags  := $(OPTIMIZE_OPTION) -pg -g
-  KEEP_SYMBOLS := 1
-else
-  ifeq ($(ENABLE_OPTIMIZED),1)
-    BuildMode := Release
-    # Don't use -fomit-frame-pointer on Darwin or FreeBSD.
-    ifneq ($(OS),FreeBSD)
-    ifneq ($(OS),Darwin)
-      OmitFramePointer := -fomit-frame-pointer
-    endif
-    endif
-
-    # Darwin requires -fstrict-aliasing to be explicitly enabled.
-    ifeq ($(OS),Darwin)
-      EXTRA_OPTIONS += -fstrict-aliasing
-    endif
-
-    CXX.Flags := $(OPTIMIZE_OPTION) $(OmitFramePointer)
-    C.Flags   := $(OPTIMIZE_OPTION) $(OmitFramePointer)
-    LD.Flags  := $(OPTIMIZE_OPTION)
-  else
-    BuildMode := Debug
-    CXX.Flags := -g
-    C.Flags   := -g
-    LD.Flags  := -g
-    KEEP_SYMBOLS := 1
-  endif
-endif
-
-# IF REQUIRES_EH=1 is specified then don't disable exceptions
-ifndef REQUIRES_EH
-  CXX.Flags += -fno-exceptions
-endif
-
-# IF REQUIRES_RTTI=1 is specified then don't disable run-time type id
-ifndef REQUIRES_RTTI
-#  CXX.Flags += -fno-rtti
-endif
-
-# If DISABLE_ASSERTIONS=1 is specified (make command line or configured),
-# then disable assertions by defining the appropriate preprocessor symbols.
-ifdef DISABLE_ASSERTIONS
-  BuildMode := $(BuildMode)-Asserts
-  CPP.Defines += -DNDEBUG
-else
-  CPP.Defines += -D_DEBUG
-endif
-
-# If ENABLE_EXPENSIVE_CHECKS=1 is specified (make command line or 
-# configured), then enable expensive checks by defining the 
-# appropriate preprocessor symbols.
-ifdef ENABLE_EXPENSIVE_CHECKS
-  BuildMode := $(BuildMode)+Checks
-  CPP.Defines += -D_GLIBCXX_DEBUG
-endif
-
-ifeq ($(ENABLE_PIC),1)
-  CXX.Flags += -fPIC
-  C.Flags   += -fPIC
-endif
-
-CXX.Flags     += $(CXXFLAGS) -Woverloaded-virtual
-C.Flags       += $(CFLAGS)
-CPP.Defines   += $(CPPFLAGS)
-CPP.BaseFlags += $(CPP.Defines)
-LD.Flags      += $(LDFLAGS)
-AR.Flags      := cru
-LibTool.Flags := --tag=CXX
-
-# Make Floating point IEEE compliant on Alpha.
-ifeq ($(ARCH),Alpha)
-  CXX.Flags     += -mieee
-  CPP.BaseFlags += -mieee
-ifeq ($(ENABLE_PIC),0)
-  CXX.Flags     += -fPIC
-  CPP.BaseFlags += -fPIC
-endif
-endif
-
-ifeq ($(ARCH),Alpha)
-  LD.Flags += -Wl,--no-relax
-endif
-
-#--------------------------------------------------------------------
-# Directory locations
-#--------------------------------------------------------------------
-ObjDir      := $(OBJ_DIR)/$(BuildMode)
-LibDir      := $(OBJ_ROOT)/$(BuildMode)/lib
-ToolDir     := $(OBJ_ROOT)/$(BuildMode)/bin
-ExmplDir    := $(OBJ_ROOT)/$(BuildMode)/examples
-LLVMLibDir  := $(LLVM_TOP)/llvm/$(BuildMode)/lib
-LLVMToolDir := $(LLVM_TOP)/llvm/$(BuildMode)/bin
-LLVMExmplDir:= $(LLVM_TOP)/llvm/$(BuildMode)/examples
-CFERuntimeLibDir := $(LLVMGCCDIR)/lib
-
-#--------------------------------------------------------------------
-# Full Paths To Compiled Tools and Utilities
-#--------------------------------------------------------------------
-EchoCmd  = $(ECHO) llvm[$(MAKELEVEL)]:
-Echo     = @$(EchoCmd)
-ifndef LIBTOOL
-LIBTOOL  := $(LLVM_TOP)/support/mklib
-endif
-ifndef LLVMAS
-LLVMAS   := $(LLVMToolDir)/llvm-as$(EXEEXT)
-endif
-ifndef TBLGEN
-  ifeq ($(LLVM_CROSS_COMPILING),1)
-    TBLGEN   := $(LLVMToolDir)/tblgen$(BUILD_EXEEXT)
-  else
-    TBLGEN   := $(LLVMToolDir)/tblgen$(EXEEXT)
-  endif
-endif
-LLVM_CONFIG := $(LLVMToolDir)/llvm-config 
-ifndef LLVMLD
-LLVMLD    := $(LLVMToolDir)/llvm-ld$(EXEEXT)
-endif
-ifndef LLVMDIS
-LLVMDIS  := $(LLVMToolDir)/llvm-dis$(EXEEXT)
-endif
-ifndef LOPT
-LOPT     := $(LLVMToolDir)/opt$(EXEEXT)
-endif
-ifndef LUPGRADE
-LUPGRADE := $(LLVMToolDir)/llvm-upgrade$(EXEEXT)
-endif
-ifeq ($(LLVMGCC_MAJVERS),3)
-UPGRADE_MSG = $(Echo) "Upgrading $(1) assembly to latest."
-UPGRADE_LL  = $(Verb)$(LUPGRADE) $(1) -o $(1).up.tmp -f ; $(MV) $(1).up.tmp $(1)
-LLVMGCCWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC)
-LLVMGXXWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX)
-else
-UPGRADE_MSG =
-UPGRADE_LL  =
-LLVMGCCWITHPATH  := $(LLVMGCC)
-LLVMGXXWITHPATH  := $(LLVMGXX)
-endif
-
-#--------------------------------------------------------------------
-# Adjust to user's request
-#--------------------------------------------------------------------
-
-# Adjust LD.Flags and Libtool.Flags depending on the kind of library that is
-# to be built. Note that if LOADABLE_MODULE is specified then the resulting
-# shared library can be opened with dlopen. Also, LOADABLE_MODULE implies 
-# several other things so we force them to be defined/on.
-ifdef LOADABLE_MODULE
-  SHARED_LIBRARY := 1
-  DONT_BUILD_RELINKED := 1
-  LINK_LIBS_IN_SHARED := 1
-  LD.Flags += -module
-endif
-
-ifdef SHARED_LIBRARY
-  LD.Flags += -rpath $(LibDir)
-else
-  LibTool.Flags += --tag=disable-shared
-endif
-
-ifdef TOOL_VERBOSE
-  C.Flags += -v
-  CXX.Flags += -v
-  LD.Flags += -v
-  VERBOSE := 1
-endif
-
-# Adjust settings for verbose mode
-ifndef VERBOSE
-  Verb := @
-  LibTool.Flags += --silent
-  AR.Flags += >/dev/null 2>/dev/null
-  ConfigureScriptFLAGS += >$(OBJ_DIR)/configure.out 2>&1
-else
-  ConfigureScriptFLAGS := 
-endif
-
-# By default, strip symbol information from executable
-ifndef KEEP_SYMBOLS
-  Strip := $(PLATFORMSTRIPOPTS)
-  StripWarnMsg := "(without symbols)"
-  Install.StripFlag += -s
-endif
-
-# Adjust linker flags for building an executable
-ifdef TOOLNAME
-ifdef EXAMPLE_TOOL
-  LD.Flags += -rpath $(ExmplDir) -export-dynamic
-else
-  LD.Flags += -rpath $(ToolDir) -export-dynamic
-endif
-endif
-
-#----------------------------------------------------------
-# Options To Invoke Tools
-#----------------------------------------------------------
-
-CompileCommonOpts := -pedantic -Wall -W -Wwrite-strings -Wno-long-long \
-                     -Wunused -Wno-unused-parameter $(EXTRA_OPTIONS)
-
-ifeq ($(OS),HP-UX)
-  CompileCommonOpts := -D_REENTRANT -D_HPUX_SOURCE
-endif
-
-# If we are building a universal binary on Mac OS/X, pass extra options.  This
-# is useful to people that want to link the LLVM libraries into their universal
-# apps.
-#
-# The following can be optionally specified:
-#   UNIVERSAL_SDK_PATH variable can be specified as a path to the SDK to use.
-#      For Mac OS/X 10.4 Intel machines, the traditional one is:
-#      UNIVERSAL_SDK_PATH=/Developer/SDKs/MacOSX10.4u.sdk/
-#   UNIVERSAL_ARCH can be optionally specified to be a list of architectures
-#      to build for, e.g. UNIVERSAL_ARCH="i386 ppc ppc64".  This defaults to
-#      i386/ppc only.
-ifdef UNIVERSAL
-  ifndef UNIVERSAL_ARCH
-    UNIVERSAL_ARCH := i386 ppc
-  endif
-  UNIVERSAL_ARCH_OPTIONS := $(UNIVERSAL_ARCH:%=-arch %)
-  CompileCommonOpts += $(UNIVERSAL_ARCH_OPTIONS)
-  Relink.Flags := $(UNIVERSAL_ARCH_OPTIONS:%=-XCClinker %)
-  ifdef UNIVERSAL_SDK_PATH
-    CompileCommonOpts += -isysroot $(UNIVERSAL_SDK_PATH)
-    Relink.Flags      += -XCClinker -isysroot -XCClinker $(UNIVERSAL_SDK_PATH)
-  endif
-
-  # Building universal cannot compute dependencies automatically.
-  DISABLE_AUTO_DEPENDENCIES=1
-endif
-
-LD.Flags      += -L$(LibDir) -L$(LLVMLibDir) 
-CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
-# All -I flags should go here, so that they don't confuse llvm-config.
-CPP.Flags     += -I$(OBJ_DIR) -I$(SRC_DIR) \
-	         -I$(OBJ_ROOT)/include \
-	         -I$(SRC_ROOT)/include \
-		 $(CPP.BaseFlags)
-
-Compile.C     = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c
-LTCompile.C   = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.C)
-BCCompile.C   = $(LLVMGCCWITHPATH) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts)
-Preprocess.C  = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -E
-
-Compile.CXX   = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c
-LTCompile.CXX = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.CXX)
-BCCompile.CXX = $(LLVMGXXWITHPATH) $(CPP.Flags) $(CXX.Flags) \
-                $(CompileCommonOpts)
-
-Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E
-Link          = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
-		$(LD.Flags) $(Strip)
-LTLink        = $(LIBTOOL) $(LibTool.Flags) --mode=link $(Link)
-Relink        = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \
-		$(Relink.Flags)
-LTRelink      = $(LIBTOOL) $(LibTool.Flags) --mode=link $(Relink)
-LTInstall     = $(LIBTOOL) $(LibTool.Flags) --mode=install $(INSTALL) \
-		$(Install.Flags)
-ProgInstall   = $(INSTALL) $(Install.StripFlag) -m 0755 
-ScriptInstall = $(INSTALL) -m 0755 
-DataInstall   = $(INSTALL) -m 0644
-TableGen      = $(TBLGEN) -I $(SRC_DIR) -I$(SRC_ROOT)/include \
-                -I $(SRC_ROOT)/lib/Target      
-Archive       = $(AR) $(AR.Flags)
-LArchive      = $(LLVMToolDir)/llvm-ar rcsf
-ifdef RANLIB
-Ranlib        = $(RANLIB)
-else
-Ranlib        = ranlib
-endif
-
-#----------------------------------------------------------
-# Get the list of source files and compute object file 
-# names from them. 
-#----------------------------------------------------------
-
-ifndef SOURCES
-  Sources := $(notdir $(wildcard $(SRC_DIR)/*.cpp \
-             $(SRC_DIR)/*.cc $(SRC_DIR)/*.c $(SRC_DIR)/*.y \
-             $(SRC_DIR)/*.l))
-else
-  Sources := $(SOURCES)
-endif 
-
-ifdef BUILT_SOURCES
-Sources += $(filter %.cpp %.c %.cc %.y %.l,$(BUILT_SOURCES))
-endif
-
-BaseNameSources := $(sort $(basename $(Sources)))
-
-ObjectsO  := $(BaseNameSources:%=$(ObjDir)/%.o)
-ObjectsLO := $(BaseNameSources:%=$(ObjDir)/%.lo)
-ObjectsBC := $(BaseNameSources:%=$(ObjDir)/%.bc)
-
-###############################################################################
-# DIRECTORIES: Handle recursive descent of directory structure
-###############################################################################
-
-#---------------------------------------------------------
-# Provide rules to make install dirs. This must be early
-# in the file so they get built before dependencies
-#---------------------------------------------------------
-
-$(LLVM_bindir): $(LLVM_bindir)/.dir
-$(LLVM_libdir): $(LLVM_libdir)/.dir
-$(LLVM_includedir): $(LLVM_includedir)/.dir
-$(LLVM_etcdir): $(LLVM_etcdir)/.dir
-
-# To create other directories, as needed, and timestamp their creation
-%/.dir:
-	$(Verb) $(MKDIR) $* > /dev/null
-	$(Verb) $(DATE) > $@
-
-.PRECIOUS: $(ObjDir)/.dir $(LibDir)/.dir $(ToolDir)/.dir $(ExmplDir)/.dir
-.PRECIOUS: $(LLVMLibDir)/.dir $(LLVMToolDir)/.dir $(LLVMExmplDir)/.dir
-
-#---------------------------------------------------------
-# Handle the DIRS options for sequential construction
-#---------------------------------------------------------
-
-SubDirs := 
-ifdef DIRS
-SubDirs += $(DIRS)
-
-ifneq ($(SRC_ROOT),$(OBJ_ROOT))
-$(RecursiveTargets)::
-	$(Verb) for dir in $(DIRS); do \
-	  if [ ! -f $$dir/Makefile ]; then \
-	    $(MKDIR) $$dir; \
-	    $(CP) $(SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
-	  fi; \
-	  ($(MAKE) -C $$dir $@ ) || exit 1; \
-	done
-else
-$(RecursiveTargets)::
-	$(Verb) for dir in $(DIRS); do \
-	  ($(MAKE) -C $$dir $@ ) || exit 1; \
-	done
-endif
-
-endif
-
-#---------------------------------------------------------
-# Handle the EXPERIMENTAL_DIRS options ensuring success
-# after each directory is built.
-#---------------------------------------------------------
-ifdef EXPERIMENTAL_DIRS
-$(RecursiveTargets)::
-	$(Verb) for dir in $(EXPERIMENTAL_DIRS); do \
-	  if [ ! -f $$dir/Makefile ]; then \
-	    $(MKDIR) $$dir; \
-	    $(CP) $(SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
-	  fi; \
-	  ($(MAKE) -C $$dir $@ ) || exit 0; \
-	done
-endif
-
-#-----------------------------------------------------------
-# Handle the PARALLEL_DIRS options for parallel construction
-#-----------------------------------------------------------
-ifdef PARALLEL_DIRS
-
-SubDirs += $(PARALLEL_DIRS)
-
-# Unfortunately, this list must be maintained if new recursive targets are added
-all      :: $(addsuffix /.makeall      ,$(PARALLEL_DIRS))
-clean    :: $(addsuffix /.makeclean    ,$(PARALLEL_DIRS))
-clean-all:: $(addsuffix /.makeclean-all,$(PARALLEL_DIRS))
-install  :: $(addsuffix /.makeinstall  ,$(PARALLEL_DIRS))
-uninstall:: $(addsuffix /.makeuninstall,$(PARALLEL_DIRS))
-install-bytecode  :: $(addsuffix /.makeinstall-bytecode,$(PARALLEL_DIRS))
-
-ParallelTargets := $(foreach T,$(RecursiveTargets),%/.make$(T))
-
-$(ParallelTargets) :
-	$(Verb) if [ ! -f $(@D)/Makefile ]; then \
-	  $(MKDIR) $(@D); \
-	  $(CP) $(SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \
-	fi; \
-	$(MAKE) -C $(@D) $(subst $(@D)/.make,,$@)
-endif
-
-#---------------------------------------------------------
-# Handle the OPTIONAL_DIRS options for directores that may
-# or may not exist.
-#---------------------------------------------------------
-ifdef OPTIONAL_DIRS
-
-SubDirs += $(OPTIONAL_DIRS)
-
-ifneq ($(SRC_ROOT),$(OBJ_ROOT))
-$(RecursiveTargets)::
-	$(Verb) for dir in $(OPTIONAL_DIRS); do \
-	  if [ -d $(SRC_DIR)/$$dir ]; then\
-	    if [ ! -f $$dir/Makefile ]; then \
-	      $(MKDIR) $$dir; \
-	      $(CP) $(SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
-	    fi; \
-	    ($(MAKE) -C$$dir $@ ) || exit 1; \
-	  fi \
-	done
-else
-$(RecursiveTargets)::
-	$(Verb) for dir in $(OPTIONAL_DIRS); do \
-	  ($(MAKE) -C$$dir $@ ) || exit 1; \
-	done
-endif
-endif
-
-#---------------------------------------------------------
-# Handle the CONFIG_FILES options
-#---------------------------------------------------------
-ifdef CONFIG_FILES
-
-ifdef NO_INSTALL
-install-local::
-	$(Echo) Install circumvented with NO_INSTALL
-uninstall-local::
-	$(Echo) UnInstall circumvented with NO_INSTALL
-else
-install-local:: $(LLVM_etcdir) $(CONFIG_FILES)
-	$(Echo) Installing Configuration Files To $(LLVM_etcdir)
-	$(Verb)for file in $(CONFIG_FILES); do \
-          if test -f $(OBJ_DIR)/$${file} ; then \
-            $(DataInstall) $(OBJ_DIR)/$${file} $(LLVM_etcdir) ; \
-          elif test -f $(SRC_DIR)/$${file} ; then \
-            $(DataInstall) $(SRC_DIR)/$${file} $(LLVM_etcdir) ; \
-          else \
-            $(ECHO) Error: cannot find config file $${file}. ; \
-          fi \
-	done
-
-uninstall-local::
-	$(Echo) Uninstalling Configuration Files From $(LLVM_etcdir)
-	$(Verb)for file in $(CONFIG_FILES); do \
-	  $(RM) -f $(LLVM_etcdir)/$${file} ; \
-	done
-endif
-
-endif
-
-#------------------------------------------------------------------------
-# Utilitye targets
-#------------------------------------------------------------------------
-check-line-length:
-	@egrep -n '.{81}' $(Sources)
-
-check-for-tabs:
-	@egrep -n '	' $(Sources)
-check-footprint:
-	@ls -l $(LibDir) | awk '\
-	  BEGIN { sum = 0; } \
-	        { sum += $$5; } \
-	  END   { printf("Libraries: %6.3f MBytes\n", sum/(1024.0*1024.0)); }'
-	@ls -l $(ToolDir) | awk '\
-	  BEGIN { sum = 0; } \
-	        { sum += $$5; } \
-	  END   { printf("Programs:  %6.3f MBytes\n", sum/(1024.0*1024.0)); }'
-
-printvars::
-	$(Echo) "BuildMode    : " '$(BuildMode)'
-	$(Echo) "SRC_ROOT     : " '$(SRC_ROOT)'
-	$(Echo) "OBJ_ROOT     : " '$(OBJ_ROOT)'
-	$(Echo) "SRC_DIR      : " '$(SRC_DIR)'
-	$(Echo) "OBJ_DIR      : " '$(OBJ_DIR)'
-	$(Echo) "LLVM_prefix  : " '$(PROJ_prefix)'
-	$(Echo) "LLVM_bindir  : " '$(PROJ_bindir)'
-	$(Echo) "LLVM_libdir  : " '$(PROJ_libdir)'
-	$(Echo) "LLVM_etcdir  : " '$(PROJ_etcdir)'
-	$(Echo) "LLVM_includedir  : " '$(PROJ_includedir)'
-	$(Echo) "UserTargets  : " '$(UserTargets)'
-	$(Echo) "ObjMakefiles : " '$(ObjMakefiles)'
-	$(Echo) "SrcMakefiles : " '$(SrcMakefiles)'
-	$(Echo) "ObjDir       : " '$(ObjDir)'
-	$(Echo) "LibDir       : " '$(LibDir)'
-	$(Echo) "ToolDir      : " '$(ToolDir)'
-	$(Echo) "ExmplDir     : " '$(ExmplDir)'
-	$(Echo) "Sources      : " '$(Sources)'
-	$(Echo) "TDFiles      : " '$(TDFiles)'
-	$(Echo) "INCFiles     : " '$(INCFiles)'
-	$(Echo) "INCTMPFiles  : " '$(INCTMPFiles)'
-	$(Echo) "PreConditions: " '$(PreConditions)'
-	$(Echo) "Compile.CXX  : " '$(Compile.CXX)'
-	$(Echo) "Compile.C    : " '$(Compile.C)'
-	$(Echo) "Archive      : " '$(Archive)'
-	$(Echo) "YaccFiles    : " '$(YaccFiles)'
-	$(Echo) "LexFiles     : " '$(LexFiles)'
-	$(Echo) "Module       : " '$(Module)'
-	$(Echo) "FilesToConfig: " '$(FilesToConfigPATH)'
-	$(Echo) "SubDirs      : " '$(SubDirs)'
-	$(Echo) "ProjLibsPaths: " '$(ProjLibsPaths)'
-	$(Echo) "ProjLibsOptions: " '$(ProjLibsOptions)'
-	$(Echo) "ConfigScript : " '$(ConfigureScript)'
-	$(Echo) "ConfigStatus : " '$(ConfigStatusScript)'
diff --git a/support/make/Makefile.compile b/support/make/Makefile.compile
deleted file mode 100644
index 9beed80..0000000
--- a/support/make/Makefile.compile
+++ /dev/null
@@ -1,439 +0,0 @@
-#===-- Makefile.rules - Common make rules for LLVM ---------*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file is included by all of the LLVM makefiles.  For details on how to use
-# it properly, please see the document MakefileGuide.html in the docs directory.
-#
-#===-----------------------------------------------------------------------====#
-
-include $(LLVM_TOP)/support/make/Makefile.common
-
-###############################################################################
-# Object Build Rules: Build object files based on sources 
-###############################################################################
-
-# FIXME: This should be checking for "if not GCC or ICC", not for "if HP-UX"
-ifeq ($(OS),HP-UX)
-  DISABLE_AUTO_DEPENDENCIES=1
-endif
-
-ifdef SHARED_LIBRARY
-PIC_FLAG = "(PIC)"
-MAYBE_PIC_Compile.CXX = $(LTCompile.CXX)
-MAYBE_PIC_Compile.C = $(LTCompile.C)
-else
-MAYBE_PIC_Compile.CXX = $(Compile.CXX)
-MAYBE_PIC_Compile.C = $(Compile.C)
-endif
-
-# Provide rule sets for when dependency generation is enabled
-ifndef DISABLE_AUTO_DEPENDENCIES
-
-#---------------------------------------------------------
-# Create .lo files in the ObjDir directory from the .cpp and .c files...
-#---------------------------------------------------------
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cpp for $(BuildMode) build " $(PIC_FLAG)
-	$(Verb) if $(MAYBE_PIC_Compile.CXX) -MD -MT $@ -MP -MF $(ObjDir)/$*.LACXXd $< -o $@ ;\
-	  then $(MV) -f "$(ObjDir)/$*.LACXXd" "$(ObjDir)/$*.d"; \
-	  else $(RM) -f "$(ObjDir)/$*.LACXXd"; exit 1; fi
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.cc $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cc for $(BuildMode) build" $(PIC_FLAG)
-	$(Verb) if $(MAYBE_PIC_Compile.CXX) -MD -MT $@ -MP -MF $(ObjDir)/$*.LACXXd $< -o $@ ;\
-	then $(MV) -f "$(ObjDir)/$*.LACXXd" "$(ObjDir)/$*.d"; \
-	else $(RM) -f "$(ObjDir)/$*.LACXXd"; exit 1; fi
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.c for $(BuildMode) build" $(PIC_FLAG)
-	$(Verb) if $(MAYBE_PIC_Compile.C) -MD -MT $@ -MP -MF $(ObjDir)/$*.LACd $< -o $@ ; \
-	then $(MV) -f "$(ObjDir)/$*.LACd" "$(ObjDir)/$*.d"; \
-	else $(RM) -f "$(ObjDir)/$*.LACd"; exit 1; fi
-
-#---------------------------------------------------------
-# Create .bc files in the ObjDir directory from .cpp .cc and .c files...
-#---------------------------------------------------------
-
-$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX)
-	$(Echo) "Compiling $*.cpp for $(BuildMode) build (bytecode)"
-	$(Verb) if $(BCCompile.CXX) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCXXd" \
-                              $< -o $@ -S -emit-llvm ; \
-	then $(MV) -f "$(ObjDir)/$*.BCCXXd" "$(ObjDir)/$*.d"; \
-	else $(RM) -f "$(ObjDir)/$*.BCCXXd"; exit 1; fi
-	$(call UPGRADE_MSG,$@) 
-	$(call UPGRADE_LL,$@)
-
-$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX)
-	$(Echo) "Compiling $*.cc for $(BuildMode) build (bytecode)"
-	$(Verb) if $(BCCompile.CXX) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCXXd" \
-                              $< -o $@ -S -emit-llvm ; \
-	then $(MV) -f "$(ObjDir)/$*.BCCXXd" "$(ObjDir)/$*.d"; \
-	else $(RM) -f "$(ObjDir)/$*.BCCXXd"; exit 1; fi
-	$(call UPGRADE_MSG,$@) 
-	$(call UPGRADE_LL,$@)
-
-$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGCC)
-	$(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)"
-	$(Verb) if $(BCCompile.C) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCd" \
-                            $< -o $@ -S -emit-llvm ; \
-	then $(MV) -f "$(ObjDir)/$*.BCCd" "$(ObjDir)/$*.d"; \
-	else $(RM) -f "$(ObjDir)/$*.BCCd"; exit 1; fi
-	$(call UPGRADE_MSG,$@) 
-	$(call UPGRADE_LL,$@)
-
-# Provide alternate rule sets if dependencies are disabled
-else
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cpp for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.CXX) $< -o $@ 
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.cc $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cc for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.CXX) $< -o $@ 
-
-$(ObjDir)/%.lo $(ObjDir)/%.o: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.c for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.C) $< -o $@ 
-
-$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX)
-	$(Echo) "Compiling $*.cpp for $(BuildMode) build (bytecode)"
-	$(BCCompile.CXX) $< -o $@ -S -emit-llvm
-	$(call UPGRADE_MSG,$@) 
-	$(call UPGRADE_LL,$@)
-
-$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX)
-	$(Echo) "Compiling $*.cc for $(BuildMode) build (bytecode)"
-	$(BCCompile.CXX) $< -o $@ -S -emit-llvm
-	$(call UPGRADE_MSG,$@) 
-	$(call UPGRADE_LL,$@)
-
-$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGCC)
-	$(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)"
-	$(BCCompile.C) $< -o $@ -S -emit-llvm
-	$(call UPGRADE_MSG,@) 
-	$(call UPGRADE_LL,@)
-
-endif
-
-
-## Rules for building preprocessed (.i/.ii) outputs.
-$(BuildMode)/%.ii: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cpp for $(BuildMode) build to .ii file"
-	$(Verb) $(Preprocess.CXX) $< -o $@
-
-$(BuildMode)/%.ii: %.cc $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cc for $(BuildMode) build to .ii file"
-	$(Verb) $(Preprocess.CXX) $< -o $@
-
-$(BuildMode)/%.i: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.c for $(BuildMode) build to .i file"
-	$(Verb) $(Preprocess.C) $< -o $@
-
-
-$(ObjDir)/%.s: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cpp to asm for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.CXX) $< -o $@ -S
-
-$(ObjDir)/%.s: %.cc $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.cc to asm for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.CXX) $< -o $@ -S
-
-$(ObjDir)/%.s: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.c to asm for $(BuildMode) build" $(PIC_FLAG)
-	$(MAYBE_PIC_Compile.C) $< -o $@ -S
-
-
-# make the C and C++ compilers strip debug info out of bytecode libraries.
-ifdef DEBUG_RUNTIME
-$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(LLVMAS) $(LOPT)
-	$(Echo) "Compiling $*.ll to $*.bc for $(BuildMode) build (bytecode)"
-	$(Verb) $(LLVMAS) $< -o - | $(LOPT) -std-compile-opts -o $@ -f
-else
-$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(LLVMAS) $(LOPT)
-	$(Echo) "Compiling $*.ll to $*.bc for $(BuildMode) build (bytecode)"
-	$(Verb) $(LLVMAS) $< -o - | \
-	   $(LOPT) -std-compile-opts -strip-debug -o $@ -f
-endif
-
-
-#---------------------------------------------------------
-# Provide rule to build .bc files from .ll sources,
-# regardless of dependencies
-#---------------------------------------------------------
-$(ObjDir)/%.bc: %.ll $(ObjDir)/.dir $(LLVMAS)
-	$(Echo) "Compiling $*.ll for $(BuildMode) build"
-	$(Verb) $(LLVMAS) $< -f -o $@
-
-###############################################################################
-# TABLEGEN: Provide rules for running tblgen to produce *.inc files
-###############################################################################
-
-ifdef TARGET
-
-TDFiles := $(strip $(wildcard $(SRC_DIR)/*.td) \
-           $(LLVM_TOP)/llvm/lib/Target/Target.td \
-           $(LLVM_TOP)/llvm/lib/Target/TargetCallingConv.td \
-           $(LLVM_TOP)/llvm/lib/Target/TargetSelectionDAG.td \
-           $(LLVM_TOP)/llvm/include/llvm/CodeGen/ValueTypes.td) \
-           $(wildcard $(LLVM_TOP)/llvm/include/llvm/Intrinsics*.td)
-INCFiles := $(filter %.inc,$(BUILT_SOURCES))
-INCTMPFiles := $(INCFiles:%=$(ObjDir)/%.tmp)
-.PRECIOUS: $(INCTMPFiles) $(INCFiles)
-
-# All of these files depend on tblgen and the .td files.
-$(INCTMPFiles) : $(TBLGEN) $(TDFiles)
-
-# INCFiles rule: All of the tblgen generated files are emitted to 
-# $(ObjDir)/%.inc.tmp, instead of emitting them directly to %.inc.  This allows
-# us to only "touch" the real file if the contents of it change.  IOW, if
-# tblgen is modified, all of the .inc.tmp files are regereated, but no
-# dependencies of the .inc files are, unless the contents of the .inc file
-# changes.
-$(INCFiles) : %.inc : $(ObjDir)/%.inc.tmp
-	$(Verb) $(CMP) -s $@ $< || $(CP) $< $@
-
-$(TARGET:%=$(ObjDir)/%GenRegisterNames.inc.tmp): \
-$(ObjDir)/%GenRegisterNames.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) register names with tblgen"
-	$(Verb) $(TableGen) -gen-register-enums -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenRegisterInfo.h.inc.tmp): \
-$(ObjDir)/%GenRegisterInfo.h.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) register information header with tblgen"
-	$(Verb) $(TableGen) -gen-register-desc-header -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenRegisterInfo.inc.tmp): \
-$(ObjDir)/%GenRegisterInfo.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) register info implementation with tblgen"
-	$(Verb) $(TableGen) -gen-register-desc -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenInstrNames.inc.tmp): \
-$(ObjDir)/%GenInstrNames.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) instruction names with tblgen"
-	$(Verb) $(TableGen) -gen-instr-enums -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenInstrInfo.inc.tmp): \
-$(ObjDir)/%GenInstrInfo.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) instruction information with tblgen"
-	$(Verb) $(TableGen) -gen-instr-desc -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenAsmWriter.inc.tmp): \
-$(ObjDir)/%GenAsmWriter.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) assembly writer with tblgen"
-	$(Verb) $(TableGen) -gen-asm-writer -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenAsmWriter1.inc.tmp): \
-$(ObjDir)/%GenAsmWriter1.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) assembly writer #1 with tblgen"
-	$(Verb) $(TableGen) -gen-asm-writer -asmwriternum=1 -o $@ $< 
-
-$(TARGET:%=$(ObjDir)/%GenCodeEmitter.inc.tmp): \
-$(ObjDir)/%GenCodeEmitter.inc.tmp: %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) code emitter with tblgen"
-	$(Verb) $(TableGen) -gen-emitter -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenDAGISel.inc.tmp): \
-$(ObjDir)/%GenDAGISel.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) instruction selector implementation with tblgen"
-	$(Verb) $(TableGen) -gen-dag-isel -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenSubtarget.inc.tmp): \
-$(ObjDir)/%GenSubtarget.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) subtarget information with tblgen"
-	$(Verb) $(TableGen) -gen-subtarget -o $@ $<
-
-$(TARGET:%=$(ObjDir)/%GenCallingConv.inc.tmp): \
-$(ObjDir)/%GenCallingConv.inc.tmp : %.td $(ObjDir)/.dir
-	$(Echo) "Building $(<F) calling convention information with tblgen"
-	$(Verb) $(TableGen) -gen-callingconv -o $@ $<
-
-clean-local::
-	-$(Verb) $(RM) -f $(INCFiles)
-
-endif
-
-###############################################################################
-# LEX AND YACC: Provide rules for generating sources with lex and yacc
-###############################################################################
-
-#---------------------------------------------------------
-# Provide rules for generating a .cpp source file from 
-# (f)lex input sources. 
-#---------------------------------------------------------
-
-LexFiles  := $(filter %.l,$(Sources))
-
-ifneq ($(LexFiles),)
-
-# Cancel built-in rules for lex
-%.c: %.l
-%.cpp: %.l
-
-all:: $(LexFiles:%.l=$(SRC_DIR)/%.cpp.cvs)
-
-# Note the extra sed filtering here, used to cut down on the warnings emited 
-# by GCC.  The last line is a gross hack to work around flex aparently not 
-# being able to resize the buffer on a large token input.  Currently, for 
-# uninitialized string buffers in LLVM we can generate very long tokens, so 
-# this is a hack around it.
-# FIXME.  (f.e. char Buffer[10000] )
-$(SRC_DIR)/%.cpp: $(SRC_DIR)/%.l
-	$(Echo) Flexing $*.l
-	$(Verb) $(FLEX) -t $(SRC_DIR)/$*.l | \
-	$(SED) 's/void yyunput/inline void yyunput/' | \
-	$(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \
-	$(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \
-	  > $(SRC_DIR)/$*.cpp
-    
-# IFF the .l file has changed since it was last checked into CVS, copy the .l
-# file to .l.cvs and the generated .cpp file to .cpp.cvs.  We use this mechanism
-# so that people without flex can build LLVM by copying the .cvs files to the 
-# source location and building them.
-$(LexFiles:%.l=$(SRC_DIR)/%.cpp.cvs): \
-$(SRC_DIR)/%.cpp.cvs: $(SRC_DIR)/%.cpp
-	$(Verb) $(CMP) -s $(SRC_DIR)/$*.l $(SRC_DIR)/$*.l.cvs || \
-      ($(CP) $< $@; $(CP) $(SRC_DIR)/$*.l $(SRC_DIR)/$*.l.cvs)
-
-$(LexFiles:%.l=$(ObjDir)/%.o) : \
-$(ObjDir)/%.o : $(SRC_DIR)/%.cpp
-
-clean-local::
-	-$(Verb) $(RM) -f $(LexOutput)
-
-endif
-
-#---------------------------------------------------------
-# Provide rules for generating a .cpp and .h source files 
-# from yacc (bison) input sources.
-#---------------------------------------------------------
-
-YaccFiles  := $(filter %.y,$(Sources))
-ifneq ($(YaccFiles),)
-
-.PRECIOUS: $(YaccOutput)
-
-all:: $(YaccFiles:%.y=$(SRC_DIR)/%.cpp.cvs)
-
-# Cancel built-in rules for yacc
-%.c: %.y 
-%.cpp: %.y
-%.h: %.y
-
-# Rule for building the bison based parsers...
-ifneq ($(BISON),)
-$(SRC_DIR)/%.cpp $(SRC_DIR)/%.h : $(SRC_DIR)/%.y
-	$(Echo) "Bisoning $*.y"
-	$(Verb) $(BISON) -v -d -p $(<F:%Parser.y=%) -o $*.tab.c $<
-	$(Verb) $(MV) -f $*.tab.c $(SRC_DIR)/$*.cpp
-	$(Verb) $(MV) -f $*.tab.h $(SRC_DIR)/$*.h
-
-# IFF the .y file has changed since it was last checked into CVS, copy the .y
-# file to .y.cvs and the generated .cpp/.h file to .cpp.cvs/.h.cvs.  We use this
-# mechanism so that people without flex can build LLVM by copying the .cvs files
-# to the source location and building them.
-$(YaccFiles:%.y=$(SRC_DIR)/%.cpp.cvs): \
-$(SRC_DIR)/%.cpp.cvs: $(SRC_DIR)/%.cpp
-	$(Verb) $(CMP) -s $(SRC_DIR)/$*.y $(SRC_DIR)/$*.y.cvs || \
-      ($(CP) $< $@; \
-       $(CP) $(SRC_DIR)/$*.y $(SRC_DIR)/$*.y.cvs; \
-       $(CP) $(SRC_DIR)/$*.h $(SRC_DIR)/$*.h.cvs)
-
-else
-$(SRC_DIR)/%.cpp : $(SRC_DIR)/%.cpp.cvs
-	$(Echo) "Bison of $*.y SKIPPED, bison not found -- copying .cpp.cvs"
-	$(Verb)$(CP) $(SRC_DIR)/$*.cpp.cvs $(SRC_DIR)/$*.cpp
-
-$(SRC_DIR)/%.h : $(SRC_DIR)/%.h.cvs
-	$(Echo) "Bison of $*.y SKIPPED, bison not found -- copying .h.cvs"
-	$(Verb)$(CP) $(SRC_DIR)/$*.h.cvs $(SRC_DIR)/$*.h
-endif
-
-
-$(YaccFiles:%.y=$(ObjDir)/%.o): $(ObjDir)/%.o : $(SRC_DIR)/%.cpp
-
-YaccOutput := $(YaccFiles:%.y=%.output)
-
-clean-local::
-	-$(Verb) $(RM) -f $(YaccOutput)
-endif
-
-###############################################################################
-# OTHER RULES: Other rules needed
-###############################################################################
-
-# To create postscript files from dot files...
-ifneq ($(DOT),false)
-%.ps: %.dot
-	$(DOT) -Tps < $< > $@
-else
-%.ps: %.dot
-	$(Echo) "Cannot build $@: The program dot is not installed"
-endif
-
-# This rules ensures that header files that are removed still have a rule for
-# which they can be "generated."  This allows make to ignore them and
-# reproduce the dependency lists.
-%.h:: ;
-%.hpp:: ;
-
-# Define clean-local to clean the current directory. Note that this uses a
-# very conservative approach ensuring that empty variables do not cause 
-# errors or disastrous removal.
-clean-local::
-ifneq ($(strip $(ObjDir)),)
-	-$(Verb) $(RM) -rf $(ObjDir)
-endif
-	-$(Verb) $(RM) -f core core.[0-9][0-9]* *.o *.d *~ *.flc
-ifneq ($(strip $(SHLIBEXT)),) # Extra paranoia - make real sure SHLIBEXT is set
-	-$(Verb) $(RM) -f *$(SHLIBEXT)
-endif
-
-clean-all-local::
-	-$(Verb) $(RM) -rf Debug Release Profile
-
-# Build tags database for Emacs/Xemacs:
-tags:: TAGS CTAGS
-
-TAGS: 
-	find $(PROJ_SRC_ROOT)/include $(PROJ_SRC_ROOT)/lib \
-          $(PROJ_SRC_ROOT)/tools $(PROJ_SRC_ROOT)/examples \
-          $(PROJ_OBJ_ROOT)/include $(PROJ_OBJ_ROOT)/lib \
-          $(PROJ_OBJ_ROOT)/tools $(PROJ_OBJ_ROOT)/examples \
-        -name '*.cpp' -o -name '*.h' | \
-        $(ETAGS) $(ETAGSFLAGS) -
-
-CTAGS:
-	find $(PROJ_SRC_ROOT)/include $(PROJ_SRC_ROOT)/lib \
-          $(PROJ_SRC_ROOT)/tools $(PROJ_SRC_ROOT)/examples \
-          $(PROJ_OBJ_ROOT)/include $(PROJ_OBJ_ROOT)/lib \
-          $(PROJ_OBJ_ROOT)/tools $(PROJ_OBJ_ROOT)/examples \
-          \( -name '*.cpp' -o -name '*.h' \) -print | \
-          ctags -ImtT -o $(PROJ_OBJ_ROOT)/CTAGS -L -
-
-
-###############################################################################
-# DEPENDENCIES: Include the dependency files if we should
-###############################################################################
-ifndef DISABLE_AUTO_DEPENDENCIES
-
-# If its not one of the cleaning targets
-ifneq ($(strip $(filter-out clean clean-local dist-clean,$(MAKECMDGOALS)))),)
-
-# Get the list of dependency files
-DependFiles := $(basename $(filter %.cpp %.c %.cc, $(Sources)))
-DependFiles := $(DependFiles:%=$(PROJ_OBJ_DIR)/$(BuildMode)/%.d)
-
--include /dev/null $(DependFiles)
-
-endif
-
-endif 
-
diff --git a/support/make/Makefile.tool b/support/make/Makefile.tool
deleted file mode 100644
index 6658218..0000000
--- a/support/make/Makefile.tool
+++ /dev/null
@@ -1,112 +0,0 @@
-#===-- Makefile.tool - Rules for building tools ------------*- Makefile -*--===#
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-#
-# This file provides rules for compiling code and linking executable tools.
-#
-#===-----------------------------------------------------------------------====#
-
-include $(LLVM_TOP)/support/make/Makefile.compile
-
-ifndef TOOLNAME
-  $(error You must specify TOOLNAME for the "tool" goal)
-endif
-
-#---------------------------------------------------------
-# Define various command line options pertaining to the
-# libraries needed when linking. There are "Proj" libs 
-# (defined by the user's project) and "LLVM" libs (defined 
-# by the LLVM project).
-#---------------------------------------------------------
-
-ifdef USEDLIBS
-ProjLibsOptions := $(patsubst %.a.o, -l%, $(addsuffix .o, $(USEDLIBS)))
-ProjLibsOptions := $(patsubst %.o, $(LibDir)/%.o,  $(ProjLibsOptions))
-ProjUsedLibs    := $(patsubst %.a.o, lib%.a, $(addsuffix .o, $(USEDLIBS)))
-ProjLibsPaths   := $(addprefix $(LibDir)/,$(ProjUsedLibs))
-endif
-
-ifdef LLVMLIBS
-LLVMLibsOptions := $(patsubst %.a.o, -l%, $(addsuffix .o, $(LLVMLIBS)))
-LLVMLibsOptions := $(patsubst %.o, $(LLVMLibDir)/%.o, $(LLVMLibsOptions))
-LLVMUsedLibs    := $(patsubst %.a.o, lib%.a, $(addsuffix .o, $(LLVMLIBS)))
-LLVMLibsPaths   := $(addprefix $(LLVMLibDir)/,$(LLVMUsedLibs))
-endif
-
-ifeq ($(strip $(filter clean clean-local dist-clean,$(MAKECMDGOALS))),)
-ifdef LINK_COMPONENTS
-
-# If LLVM_CONFIG doesn't exist, build it.  This can happen if you do a make
-# clean in tools, then do a make in tools (instead of at the top level).
-$(LLVM_CONFIG):
-	@echo "*** llvm-config doesn't exist - rebuilding it."
-	@$(MAKE) -C $(OBJ_ROOT)/tools/llvm-config
-        
-$(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT): $(LLVM_CONFIG)
-
-ProjLibsOptions += $(shell $(LLVM_CONFIG) --libs     $(LINK_COMPONENTS))
-ProjLibsPaths   += $(LLVM_CONFIG) \
-                  $(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS))
-endif
-endif
-
-###############################################################################
-# Tool Build Rules: Build executable tool based on TOOLNAME option
-###############################################################################
-
-#---------------------------------------------------------
-# Set up variables for building a tool.
-#---------------------------------------------------------
-ifdef EXAMPLE_TOOL
-ToolBuildPath   := $(ExmplDir)/$(strip $(TOOLNAME))$(EXEEXT)
-else
-ToolBuildPath   := $(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT)
-endif
-
-#---------------------------------------------------------
-# Provide targets for building the tools
-#---------------------------------------------------------
-all-local:: $(ToolBuildPath)
-
-clean-local::
-ifneq ($(strip $(ToolBuildPath)),)
-	-$(Verb) $(RM) -f $(ToolBuildPath)
-endif
-
-ifdef EXAMPLE_TOOL
-$(ToolBuildPath): $(ExmplDir)/.dir
-else
-$(ToolBuildPath): $(ToolDir)/.dir
-endif
-
-$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
-	$(Echo) Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg)
-	$(Verb) $(LTLink) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
-	$(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
-	$(Echo) ======= Finished Linking $(BuildMode) Executable $(TOOLNAME) \
-          $(StripWarnMsg) 
-
-ifdef NO_INSTALL
-install-local::
-	$(Echo) Install circumvented with NO_INSTALL
-uninstall-local::
-	$(Echo) Uninstall circumvented with NO_INSTALL
-else
-DestTool = $(PROJ_bindir)/$(TOOLNAME)
-
-install-local:: $(DestTool)
-
-$(DestTool): $(PROJ_bindir) $(ToolBuildPath)
-	$(Echo) Installing $(BuildMode) $(DestTool)
-	$(Verb) $(ProgInstall) $(ToolBuildPath) $(DestTool)
-
-uninstall-local::
-	$(Echo) Uninstalling $(BuildMode) $(DestTool)
-	-$(Verb) $(RM) -f $(DestTool)
-endif
-
diff --git a/support/website/index.html b/support/website/index.html
deleted file mode 100644
index 843f7d3..0000000
--- a/support/website/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-  <body>
-    <h1>LLVM SUPPORT WEB SITE</h1>
-    <p>This is just a placeholder</p>
-  </body>
-</html>
diff --git a/television/LICENSE.TXT b/television/LICENSE.TXT
deleted file mode 100644
index 0e09035..0000000
--- a/television/LICENSE.TXT
+++ /dev/null
@@ -1,41 +0,0 @@
-==============================================================================
-LLVM-TV Release License
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2003, 2004 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
-    Misha Brukman, Tanya Brethour, and Brian Gaeke
-
-    University of Illinois at Urbana-Champaign
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-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:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimers.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimers in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the names of the LLVM Team, University of Illinois at
-      Urbana-Champaign, nor the names of its contributors may be used to
-      endorse or promote products derived from this Software without specific
-      prior written permission.
-
-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
-CONTRIBUTORS 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 WITH THE
-SOFTWARE.
diff --git a/television/Makefile b/television/Makefile
deleted file mode 100755
index 90c9d9d..0000000
--- a/television/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# This is a sample Makefile for a project that uses LLVM.
-#
-
-#
-# Indicates our relative path to the top of the project's root directory.
-#
-LEVEL = .
-
-#
-# Directories that needs to be built.
-#
-DIRS = lib tools
-
-#
-# This is needed since the tags generation code expects a tools directory
-# to exist.
-#
-#all::
-#	mkdir -p tools
-
-#
-# Include the Master Makefile that knows how to build all.
-#
-include $(LEVEL)/Makefile.common
-
-distclean:: clean
-	${RM} -f Makefile.common Makefile.config config.log config.status
-
diff --git a/television/Makefile.common b/television/Makefile.common
deleted file mode 100644
index 1e1e89e..0000000
--- a/television/Makefile.common
+++ /dev/null
@@ -1,19 +0,0 @@
-#===-- Makefile.common - Common make rules for LLVM-TV -----*- Makefile -*--===#
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-#
-# Include the local config file
-#
-include $(LEVEL)/Makefile.config
-
-#
-# Include LLVM's Master Makefile.
-#
-include $(LLVM_SRC_ROOT)/Makefile.rules
-
diff --git a/television/Makefile.config.in b/television/Makefile.config.in
deleted file mode 100644
index 132290d..0000000
--- a/television/Makefile.config.in
+++ /dev/null
@@ -1,30 +0,0 @@
-PROJECT_NAME = @PACKAGE_NAME@
-PROJ_VERSION = @PACKAGE_VERSION@
-
-#
-# Set this variable to the top of the LLVM source tree.
-#
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-#
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-#
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the directory root of this project's source files
-PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_OBJ_ROOT)/Makefile.config
-
-#Set SourceDir for backwards compatbility.
-ifndef SourceDir
-SourceDir=$(PROJ_SRC_DIR)
-endif
diff --git a/television/README.txt b/television/README.txt
deleted file mode 100644
index e983cde..0000000
--- a/television/README.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-LLVM-TV: LLVM Transformation Visualizer
-Written by: Misha Brukman, Tanya Brethour, and Brian Gaeke
-
-LLVM-TV is a tool that can be used to visualize the effects of transformations
-written in the LLVM framework. Compilation units in LLVM have a simple,
-hierarchical structure: a Module contains Functions, which contain BasicBlocks,
-which contain Instructions. At the lowest level of this hierarchy, Instructions
-may reference other BasicBlocks (with branches) or Functions (with calls),
-making the control-flow graphs and call graphs explicit. Our first task is to
-develop an interactive browser for these graphs and hierarchies.
-
-Our target audience is compiler developers working within the LLVM framework,
-who are trying to understand and debug transformations.
-
-Currently, the visualization tool will not reflect dynamic updates
-to the code; rather, it reflects the state of a compilation unit at
-a single instant in time, between transformations. Future work should
-extend this tool to reflect a dynamically updating view of the program as
-a transformation is modifying the code.
-
-How to compile:
-
-1. You must have wxWindows installed on your system, and wx-config has to be
-   in your path.
-   
-   Make absolutely sure that wxwindows's configure picks up the same
-   C++ compiler that you're using for llvm. Otherwise, you may get
-   weird link errors when trying to link the llvm-tv tool.
-
-2. Configure and compile llvm-tv (you need an LLVM source and build trees):
-
-% cd path/to/llvm-tv
-% ./configure --with-llvmsrc=[path] --with-llvmobj=[path]
-   If you're building in llvm/projects/llvm-tv, then you don't need
-   to specify these --with options.
-% gmake
-
-Example of usage:
- 
-% llvm-tv.exe &
-   The .exe is not a typo; this command starts up the visualizer in
-   the background using its wrapper script.
-% opt-snap -debug -licm -snapshot -gcse -snapshot < bytecode-file.bc > /dev/null
-   This runs the llvm optimizer driver with the snapshot pass loaded, using
-   another wrapper script, and makes two snapshots, which should appear
-   in your visualizer.
-
diff --git a/television/autoconf/AutoRegen.sh b/television/autoconf/AutoRegen.sh
deleted file mode 100755
index 6976591..0000000
--- a/television/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-outfile=configure
-configfile=configure.ac
-test -d autoconf && test -f autoconf/$configfile && cd autoconf
-test -f $configfile || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.59"
-fi
-aclocal --version | egrep '1\.9\.2' > /dev/null
-if test $? -ne 0 ; then
-  die "Your aclocal was not detected as being 1.9.2"
-fi
-autoheader --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoheader was not detected as being 2.59"
-fi
-libtool --version | grep '1\.5\.10' > /dev/null
-if test $? -ne 0 ; then
-  die "Your libtool was not detected as being 1.5.10"
-fi
-echo ""
-echo "### NOTE: ############################################################"
-echo "### If you get *any* warnings from autoconf below you MUST fix the"
-echo "### scripts in the m4 directory because there are future forward"
-echo "### compatibility or platform support issues at risk. Please do NOT"
-echo "### commit any configure script that was generated with warnings"
-echo "### present. You should get just three 'Regenerating..' lines."
-echo "######################################################################"
-echo ""
-#echo "Regenerating aclocal.m4 with aclocal 1.9.2"
-#cwd=`pwd`
-#aclocal --force -I $cwd/m4 || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.59"
-autoconf --force --warnings=all -o ../$outfile $configfile || die "autoconf failed"
-cd ..
-echo "Regenerating config.h.in with autoheader 2.59"
-#autoheader --warnings=all -I autoconf -I autoconf/m4 autoconf/$configfile || die "autoheader failed"
-exit 0
diff --git a/television/autoconf/aclocal.m4 b/television/autoconf/aclocal.m4
deleted file mode 100644
index e9b9180..0000000
--- a/television/autoconf/aclocal.m4
+++ /dev/null
@@ -1,6168 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 47 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-	         [m4_ifdef([AC_PROVIDE_$1],
-		           [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-	[AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-	     [define([LT_AC_PROG_GCJ],
-		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/mklib'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=mklib
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "[$]0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  testring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
-	       = "XX$testring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$testring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      testring=$testring$testring
-    done
-    testring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-    
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-    	  lt_cv_dlopen_self_static, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-   # that will create temporary files in the current directory regardless of
-   # the output directory.  Thus, making CWD read-only will cause this test
-   # to fail, enabling locking or at least warning the user not to do parallel
-   # builds.
-   chmod -w .
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest* out/*
-   rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac  
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    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
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/lib /lib/w32api /usr/lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  # FIXME: Relying on posixy $() will cause problems for
-  #        cross-compilation, but unfortunately the echo tests do not
-  #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-  sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && test "X$CXX" != "Xno"; then
-	  AC_LIBTOOL_LANG_CXX_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-	  AC_LIBTOOL_LANG_F77_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  AC_LIBTOOL_LANG_GCJ_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	AC_LIBTOOL_LANG_RC_CONFIG
-	;;
-
-      *)
-	AC_MSG_ERROR([Unsupported tag name: $tagname])
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-#- set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the path to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `"$LD" -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin* | mingw* | pw32*)
-  # win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='win32_libid'
-  ;;
-
-darwin* | rhapsody*)
-  # this will be overwritten by pass_all, but leave it in just in case
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.[[012]])
-    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-  irix5* | nonstopux*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
-    ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the path to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
-	  break
-	  ;;
-	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	  ;;
-	esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided and an installed libltdl is not found, it is
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
-# quotes!).  If your package is not flat and you're not using automake,
-# define top_builddir and top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,CXX" | sed 's/^,//'`])
-])# _LT_AC_LANG_CXX
-
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,F77" | sed 's/^,//'`])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,GCJ" | sed 's/^,//'`])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# --------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,RC" | sed 's/^,//'`])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-# Report which librarie types wil actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    # FIXME: Relying on posixy $() will cause problems for
-    #        cross-compilation, but unfortunately the echo tests do not
-    #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-    #	       `"' quotes if we put them in here... so don't!
-		output_verbose_link_cmd='echo'
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-		  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-		  _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi
-    ;;  
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      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]].*|aix5*)
-	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_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	else
-	  # We have old collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	shared_flag='-G'
-      else
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag='${wl}-G'
-	else
-	  shared_flag='${wl}-bM:SRE'
-	fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-	# Determine the default libpath from the value encoded in an empty executable.
-	_LT_AC_SYS_LIBPATH_AIX
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	# This is similar to how AIX traditionally builds it's shared libraries.
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-   if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      fi
-        _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-   fi 
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      ghcx)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  freebsd[12]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $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_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
-      *)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      aCC)
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case "$host_cpu" in
-	    ia64*|hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-	# SGI C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	# Archives containing C++ object files must be created using
-	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-	  else
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-	;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc)
-	# Intel C++
-	with_gnu_ld=yes
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      cxx)
-	# Compaq C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $CC -shared$allow_undefined_flag $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 $objdir/so_locations -o $lib~
-	  $rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      lcc)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.2, 5.x and Centerline C++
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	case $host_os in
-	  solaris2.[0-5] | solaris2.[0-5].*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx)
-	# Green Hills C++ Compiler
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-	# NonStop-UX NCC 3.20
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi  
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext='$shrext'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  test -f Makefile && make "$ltmain"
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris* | sysv5*)
-  symcode='[[BDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGISTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    if test "$host_cpu" != ia64; then
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    case "$host_cpu" in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC)
-	    # KAI C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  icpc)
-	    # Intel C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;; 
-	  cxx)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC)
-	    # Rational C++ 2.4.1
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx)
-	    # Digital/Compaq C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      sco*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.x
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc)
-	    # Lucid
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC)
-	    # NonStop-UX NCC 3.20
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      unixware*)
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc|ecc)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      ccc)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
-      runpath_var=LD_RUN_PATH
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	fi
-	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]].*|aix5*)
-	  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_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  else
-  	  # We have old collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 _LT_AC_SYS_LIBPATH_AIX
-	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi4*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      case "$host_os" in
-      rhapsody* | darwin1.[[012]])
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-	test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-	;;
-      esac
-      # FIXME: Relying on posixy $() will cause problems for
-      #        cross-compilation, but unfortunately the echo tests do not
-      #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-      #	       `"' quotes if we put them in here... so don't!
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi  
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-  
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-])
-AC_MSG_RESULT([$SED])
-])
-#############################################################################
-# Additional Macros
-#############################################################################
-
-#
-# Check for C++ namespace support.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_CXX_NAMESPACES],
-[AC_CACHE_CHECK(whether the compiler implements namespaces,
-ac_cv_cxx_namespaces,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}],
-                [using namespace Outer::Inner; return i;],
- ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_namespaces" = yes; then
-  AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
-fi
-])
-
-#
-# Check for hash_map extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_map.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_MAP],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_map,
-ac_cv_cxx_have_ext_hash_map,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=std, ac_cv_cxx_have_ext_hash_map=no)
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=gnu, ac_cv_cxx_have_ext_hash_map=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_map" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
-if test "$ac_cv_cxx_have_ext_hash_map" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
-])
-
-#
-# Check for hash_set extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_SET],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_set,
-ac_cv_cxx_have_ext_hash_set,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=std, ac_cv_cxx_have_ext_hash_set=no)
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=gnu, ac_cv_cxx_have_ext_hash_set=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_set" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_SET,,[define if the compiler has ext/hash_set in std])
-fi
-if test "$ac_cv_cxx_have_ext_hash_set" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_SET,,[define if the compiler has ext/hash_set in __gnu_cc])
-fi
-])
-
-#
-# Check for standard iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_STD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the standard iterator,
-ac_cv_cxx_have_std_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[iterator<int,int,int> t; return 0;],
-  ac_cv_cxx_have_std_iterator=yes, ac_cv_cxx_have_std_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_std_iterator" = yes; then
-   AC_DEFINE(HAVE_STD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for bidirectional iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_BI_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the bidirectional iterator,
-ac_cv_cxx_have_bi_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[bidirectional_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_bi_iterator=yes, ac_cv_cxx_have_bi_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_bi_iterator" = yes; then
-   AC_DEFINE(HAVE_BI_ITERATOR,,[define if the compiler has bidirectional iterator])
-fi
-])
-
-#
-# Check for forward iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_FWD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has forward iterators,
-ac_cv_cxx_have_fwd_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[forward_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_fwd_iterator=yes, ac_cv_cxx_have_fwd_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_fwd_iterator" = yes; then
-   AC_DEFINE(HAVE_FWD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for slist extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_SLIST],
-[AC_CACHE_CHECK(whether the compiler has ext/slist,
-ac_cv_cxx_have_ext_slist,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=std, ac_cv_cxx_have_ext_slist=no)
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=gnu, ac_cv_cxx_have_ext_slist=no)
-
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_slist" = std; then
-   AC_DEFINE(HAVE_EXT_SLIST,std,[define if the compiler has ext/slist])
-fi
-if test "$ac_cv_cxx_have_ext_slist" = gnu; then
-   AC_DEFINE(HAVE_EXT_SLIST,gnu,[define if the compiler has ext/slist])
-fi
-])
-
-#
-# Check for FLEX.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_FLEX],
-[AC_CACHE_CHECK(,
-ac_cv_has_flex,
-[AC_PROG_LEX()
-])
-if test "$LEX" != "flex"; then
-  AC_MSG_ERROR([flex not found but required])
-fi
-])
-
-#
-# Check for Bison.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_BISON],
-[AC_CACHE_CHECK(,
-ac_cv_has_bison,
-[AC_PROG_YACC()
-])
-if test "$YACC" != "bison -y"; then
-  AC_MSG_ERROR([bison not found but required])
-else
-  AC_SUBST(YACC,[bison],[location of bison])
-fi
-])
-
-#
-# Check for GNU Make.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/check_gnu_make.html
-#
-AC_DEFUN(
-        [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
-                _cv_gnu_make_command='' ;
-dnl Search all the common names for GNU make
-                for a in "$MAKE" make gmake gnumake ; do
-                        if test -z "$a" ; then continue ; fi ;
-                        if  ( sh -c "$a --version" 2> /dev/null | grep GNU  2>&1 > /dev/null ) ;  then
-                                _cv_gnu_make_command=$a ;
-                                break;
-                        fi
-                done ;
-        ) ;
-dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
-        if test  "x$_cv_gnu_make_command" != "x"  ; then
-                ifGNUmake='' ;
-        else
-                ifGNUmake='#' ;
-                AC_MSG_RESULT("Not found");
-        fi
-        AC_SUBST(ifGNUmake)
-] )
-
-#
-# Check for the ability to mmap a file.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_FUNC_MMAP_FILE],
-[AC_CACHE_CHECK(for mmap of files,
-ac_cv_func_mmap_file,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_RUN([
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-  int fd;
-  int main () {
-  fd = creat ("foo",0777); fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0); unlink ("foo"); return (fd != MAP_FAILED);}],
-  ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_func_mmap_file" = yes; then
-   AC_DEFINE(HAVE_MMAP_FILE)
-   AC_SUBST(MMAP_FILE,[yes])
-fi
-])
-
-#
-# Check for anonymous mmap macros.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
-[AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
-ac_cv_header_mmap_anon,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_COMPILE([#include <sys/mman.h>
-  #include <unistd.h>
-  #include <fcntl.h>],
-  [mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);],
-  ac_cv_header_mmap_anon=yes, ac_cv_header_mmap_anon=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_header_mmap_anon" = yes; then
-   AC_DEFINE(HAVE_MMAP_ANONYMOUS)
-fi
-])
-
-#
-# Configure a Makefile without clobbering it if it exists and is not out of
-# date.  This is modified from:
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CONFIG_MAKEFILE],
-[AC_CONFIG_COMMANDS($1,${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/$1 $1,${srcdir}/autoconf/mkinstalldirs `dirname $1`)
-])
-
-
diff --git a/television/autoconf/config.guess b/television/autoconf/config.guess
deleted file mode 100755
index cc726cd..0000000
--- a/television/autoconf/config.guess
+++ /dev/null
@@ -1,1388 +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 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { 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 ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
-	# 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 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/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    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 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    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 0 ;;
-    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 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    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 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # 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 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    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 \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    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 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????: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 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    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 0 ;;
-    *: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
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	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 0 ;;
-    *:AIX:*:[45])
-	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 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    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
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    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 && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    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 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-	exit 0 ;;
-    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 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:3*)
-	echo i586-pc-interix3
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    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 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    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 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    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 0 ;;
-    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 0 ;;
-    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 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    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 0 ;;
-    i*86:*:5:[78]*)
-	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 0 ;;
-    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 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    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 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*: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)
-	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 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *: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 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    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 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *: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 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-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"); 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 && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# 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 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    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
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-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@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/television/autoconf/config.sub b/television/autoconf/config.sub
deleted file mode 100755
index 9772e87..0000000
--- a/television/autoconf/config.sub
+++ /dev/null
@@ -1,1489 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# 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., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-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 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # 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 0;;
-
-    * )
-       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* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-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/'`
-		;;
-	-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] \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k \
-	| m32r | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# 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-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* \
-	| m32r-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# 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
-		;;
-	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
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	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
-		;;
-	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
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	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
-		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	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
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2)
-		basic_machine=i686-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-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	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
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-        tic4x | c4x*)
-		basic_machine=tic4x-unknown
-		os=-coff
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	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
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	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
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -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*)
-	# 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* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-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
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-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
-		;;
-	-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
-		;;
-	-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
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	# 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
-		;;
-	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
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-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 0
-
-# 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/television/autoconf/configure.ac b/television/autoconf/configure.ac
deleted file mode 100644
index e6b5b7b..0000000
--- a/television/autoconf/configure.ac
+++ /dev/null
@@ -1,31 +0,0 @@
-dnl Process this file with autoconf 2.5x to create a configure script.
-
-dnl Initialize
-AC_INIT([[llvm-tv]],[[pre-release]],[llvmbugs@cs.uiuc.edu])
-
-dnl Place all of the extra autoconf files into the config subdirectory
-AC_CONFIG_AUX_DIR([autoconf])
-
-dnl Configure the makefile's configuration data
-AC_CONFIG_FILES([Makefile.config])
-
-dnl Configure Makefiles
-AC_CONFIG_MAKEFILE(Makefile)
-AC_CONFIG_MAKEFILE(Makefile.common)
-AC_CONFIG_MAKEFILE(lib/Makefile)
-AC_CONFIG_MAKEFILE(lib/Snapshot/Makefile)
-AC_CONFIG_MAKEFILE(tools/Makefile)
-AC_CONFIG_MAKEFILE(tools/llvm-tv/Makefile)
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(["Makefile.common.in"])
-
-dnl Find the LLVM source and object directories, whose locations may
-dnl have been specified by the user. By default, assume we've unpacked this
-dnl project in projects/<project-name>, as is customary, and look in ../..
-dnl for the main LLVM source and object trees.
-AC_ARG_WITH(llvmsrc,AS_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[`cd ${srcdir}/../..; pwd`]))
-AC_ARG_WITH(llvmobj,AS_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
-
-dnl Create the output files
-AC_OUTPUT
diff --git a/television/autoconf/install-sh b/television/autoconf/install-sh
deleted file mode 100644
index 398a88e..0000000
--- a/television/autoconf/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# 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.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	:
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=$mkdirprog
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		:
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		:
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		:
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-	'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
-	shift
-
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		:
-	fi
-
-	pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		:
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# 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 $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/television/autoconf/ltmain.sh b/television/autoconf/ltmain.sh
deleted file mode 100644
index fe83ff4..0000000
--- a/television/autoconf/ltmain.sh
+++ /dev/null
@@ -1,6290 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5
-TIMESTAMP=" (1.1220 2003/04/05 19:32:58)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# 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'
-# test EBCDIC or ASCII
-case `echo A|od -x` in
- *[Cc]1*) # EBCDIC based system
-  SP2NL="tr '\100' '\n'"
-  NL2SP="tr '\r\n' '\100\100'"
-  ;;
- *) # Assume ASCII based system
-  SP2NL="tr '\040' '\012'"
-  NL2SP="tr '\015\012' '\040\040'"
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-: ${IFS=" 	"}
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# 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.
-win32_libid () {
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-      if test "X$win32_nmres" = "Ximport" ; then
-        win32_libid_type="x86 archive import"
-      else
-        win32_libid_type="x86 archive static"
-      fi
-    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
-}
-
-# End of Shell function definitions
-#####################################
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit 1
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit 0
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
-    done
-    exit 0
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --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 0
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    ;;
-
-  --tag) prevopt="--tag" prev=tag ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
-
-# 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=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_output=
-    arg_mode=normal
-    libobj=
-
-    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)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit 1
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static)
-	  build_old_libs=yes
-	  continue
-	  ;;
-
-	-prefer-pic)
-	  pic_mode=yes
-	  continue
-	  ;;
-
-	-prefer-non-pic)
-	  pic_mode=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,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$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.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit 1
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    # 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.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
-      # 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$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case "$base_compile " in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # 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
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # 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
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    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 $run ln "$0" "$lockfile" 2>/dev/null; do
-	$show "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."
-
-	$run $rm $removelist
-	exit 1
-      fi
-      $echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # 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 $srcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	status=$?
-	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit 1
-      fi
-
-      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."
-
-	$run $rm $removelist
-	exit 1
-      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
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    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 $srcfile"
-      else
-	command="$base_compile $srcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit 1
-      fi
-
-      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."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit 0
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # 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=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	prefer_static_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"
-      base_compile="$base_compile $arg"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit 1
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit 1
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$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
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit 1
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit 1
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit 1
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $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
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit 1
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	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*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    exit 1
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-mingw* | *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # gcc -m* arguments should be passed to the linker via $compiler_flags
-      # in order to pass architecture information to the linker
-      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
-      # but this is not reliable with gcc because gcc may use -mfoo to
-      # select a different linker, different libraries, etc, while
-      # -Wl,-mfoo simply passes -mfoo to the linker.
-      -m*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        if test "$with_gcc" = "yes" ; then
-          compiler_flags="$compiler_flags $arg"
-        fi
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit 1
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# 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
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit 1
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$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
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit 1
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # 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 link
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
-      # 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$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case $base_compile in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # The compiler in $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
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#       else
-#         $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplcations in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    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 test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit 1
-	    ;;
-	  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
-      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 "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    # Search the libtool library
-	    lib="$searchdir/lib${name}.la"
-	    if test -f "$lib"; then
-	      found=yes
-	      break
-	    fi
-	  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 (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  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
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    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
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    if test "$deplibs_check_method" != pass_all; 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 used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit 1
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-
-	# Read the .la file
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit 1
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit 1
-	  fi
-	  continue
-	fi # $pass = conv
-
-    
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	else
-	  dir="$ladir/$objdir"
-	  absdir="$abs_ladir/$objdir"
-	  # Remove this search path later
-	  notinst_path="$notinst_path $abs_ladir"
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-    
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    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 test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var"; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath " in
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $dir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-	
-      # Warn about portability, can't link against -module's on some systems (darwin)
-      if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"    
-      fi	  
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; 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*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$extract_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$old_archive_from_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against it, someone
-		    # is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; 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 
-		    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; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case "$libdir" in
-		    [\\/]*)
-		      add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		      ;;
-		  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
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit 1
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case "$libdir" in
-		  [\\/]*)
-		    add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		    ;;
-		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
-	    convenience="$convenience $dir/$old_library"
-	    old_convenience="$old_convenience $dir/$old_library"
-	    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*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit 1
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs, but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		   fi
-		    newlib_search_path="$newlib_search_path $path"
-		    path=""
-		  fi
-		  ;;
-		*)
-		path="-L$path"
-		;;
-		esac 
-		
-		;;
-		  -l*)
-		case $host in
-		*-*-darwin*)
-		 # Again, we only want to link against shared libraries
-		 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		 for tmp in $newlib_search_path ; do
-		     if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		       eval depdepl="$tmp/lib$tmp_libs.dylib"
-		       break
-		     fi  
-         done
-         path=""
-		  ;;
-		*) continue ;;
-		esac  		  
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$deplibs $depdepl" ;;
-	      esac	      
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$deplibs $path" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit 1
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      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
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# 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="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	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]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $revision in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $age in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	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
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  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)
-	  major=`expr $current - $age + 1`
-
-	  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
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  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
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit 1
-	  ;;
-	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
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$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
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    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
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$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
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$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
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	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
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; 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"
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    eval cmds=\"$export_symbols_cmds\"
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "using reloadable object file for export list..."
-	        skipped_export=:
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*) 
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs" 
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$gentop"; then
-	      exit $status
-	    fi
-	    generated="$generated $gentop"
-
-	    for xlib in $convenience; do
-	      # Extract the objects.
-	      case $xlib in
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	      *) xabs=`pwd`"/$xlib" ;;
-	      esac
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	      xdir="$gentop/$xlib"
-
-	      $show "${rm}r $xdir"
-	      $run ${rm}r "$xdir"
-	      $show "$mkdir $xdir"
-	      $run $mkdir "$xdir"
-	      status=$?
-	      if test "$status" -ne 0 && test ! -d "$xdir"; then
-		exit $status
-	      fi
-	      # We will extract separately just the conflicting names and we will no
-	      # longer touch any unique names. It is faster to leave these extract
-	      # automatically by $AR in one run.
-	      $show "(cd $xdir && $AR x $xabs)"
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-		:
-	      else
-		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-		$AR t "$xabs" | sort | uniq -cd | while read -r count name
-		do
-		  i=1
-		  while test "$i" -le "$count"
-		  do
-		   # Put our $i before any first dot (extension)
-		   # Never overwrite any file
-		   name_to="$name"
-		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		   do
-		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		   done
-		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		   i=`expr $i + 1`
-		  done
-		done
-	      fi
-
-	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	    done
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $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 cmds=\"$module_expsym_cmds\"
-	  else
-	    eval cmds=\"$module_cmds\"
-	  fi
-	else
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval cmds=\"$archive_expsym_cmds\"
-	else
-	  eval cmds=\"$archive_cmds\"
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # 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
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$save_output-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*"` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$save_output-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$save_output-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadale object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-	  done
-
-	  $echo "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"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  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\"
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval cmds=\"$archive_expsym_cmds\"
-	  else
-	    eval cmds=\"$archive_cmds\"
-	  fi
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-	  exit 0
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run 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 "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit 1
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $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
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  $show "${rm}r $gentop"
-	  $run ${rm}r "$gentop"
-	  $show "$mkdir $gentop"
-	  $run $mkdir "$gentop"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$gentop"; then
-	    exit $status
-	  fi
-	  generated="$generated $gentop"
-
-	  for xlib in $convenience; do
-	    # Extract the objects.
-	    case $xlib in
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	    *) xabs=`pwd`"/$xlib" ;;
-	    esac
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	    xdir="$gentop/$xlib"
-
-	    $show "${rm}r $xdir"
-	    $run ${rm}r "$xdir"
-	    $show "$mkdir $xdir"
-	    $run $mkdir "$xdir"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$xdir"; then
-	      exit $status
-	    fi
-	    # We will extract separately just the conflicting names and we will no
-	    # longer touch any unique names. It is faster to leave these extract
-	    # automatically by $AR in one run.
-	    $show "(cd $xdir && $AR x $xabs)"
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	      :
-	    else
-	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	      do
-		i=1
-		while test "$i" -le "$count"
-		do
-		 # Put our $i before any first dot (extension)
-		 # Never overwrite any file
-		 name_to="$name"
-		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		 do
-		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		 done
-		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		 i=`expr $i + 1`
-		done
-	      done
-	    fi
-
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	  done
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit 0
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${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"
-	# $run eval "echo timestamp > $libobj" || exit $?
-	exit 0
-      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"
-	eval cmds=\"$reload_cmds\"
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit 0
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$output.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	    else
-	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # 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/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  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*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit 1
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit 0
-      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"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "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}\" || 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
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-	case $0 in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    cwrappersource=`$echo ${objdir}/lt-${output}.c`
-	    cwrapper=`$echo ${output}.exe`
-	    $rm $cwrappersource $cwrapper
-	    trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   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.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2 
-#define DIR_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 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-  
-  program_name = (char *) xstrdup ((char *) basename (argv[0]));
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  newargz[0] = "$SHELL";
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-  newargz[1] = fnqualify(argv[0]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe"); 
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char * 
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':') 
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return (char *) base;
-}
-
-char * 
-fnqualify(const char *path)
-{
-  size_t size;
-  char *p;
-  char tmp[LT_PATHMAX + 1];
-
-  assert(path != NULL);
-
-  /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha (path[0]) && path[1] == ':')
-    return xstrdup (path);
-#endif
-  if (IS_DIR_SEPARATOR (path[0]))
-    return xstrdup (path);
-
-  /* prepend the current directory */
-  /* doesn't handle '~' */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-  p = XMALLOC(char, size);
-  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-  return p;
-}
-
-char *
-strendzap(char *str, const char *pat) 
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode, 
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-	  # we should really use a build-platform specific compiler
-	  # here, but OTOH, the wrappers (shell script and this C one)
-	  # are only useful if you want to execute the "real" binary.
-	  # Since the "real" binary is built for $host, then this
-	  # wrapper might as well be built for $host, too.
-	  $run $LTCC -s -o $cwrapper $cwrappersource
-	  ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit 1" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  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 >> $output "\
-
-    # 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 >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit 0
-      ;;
-    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"
-	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"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	$show "${rm}r $gentop"
-	$run ${rm}r "$gentop"
-	$show "$mkdir $gentop"
-	$run $mkdir "$gentop"
-	status=$?
-	if test "$status" -ne 0 && test ! -d "$gentop"; then
-	  exit $status
-	fi
-	generated="$generated $gentop"
-
-	# Add in members from convenience archives.
-	for xlib in $addlibs; do
-	  # Extract the objects.
-	  case $xlib in
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	  *) xabs=`pwd`"/$xlib" ;;
-	  esac
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	  xdir="$gentop/$xlib"
-
-	  $show "${rm}r $xdir"
-	  $run ${rm}r "$xdir"
-	  $show "$mkdir $xdir"
-	  $run $mkdir "$xdir"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$xdir"; then
-	    exit $status
-	  fi
-	  # We will extract separately just the conflicting names and we will no
-	  # longer touch any unique names. It is faster to leave these extract
-	  # automatically by $AR in one run.
-	  $show "(cd $xdir && $AR x $xabs)"
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	    do
-	      i=1
-	      while test "$i" -le "$count"
-	      do
-	       # Put our $i before any first dot (extension)
-	       # Never overwrite any file
-	       name_to="$name"
-	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-	       do
-		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-	       done
-	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-	       i=`expr $i + 1`
-	      done
-	    done
-	  fi
-
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-	done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	eval cmds=\"$old_archive_from_new_cmds\"
-      else
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
-	  # encoded into archives.  This makes 'ar r' malfunction in
-	  # this piecewise linking case whenever conflicting object
-	  # names appear in distinct ar calls; check, warn and compensate.
-	    if (for obj in $save_oldobjs
-	    do
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
-	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
-	    AR_FLAGS=cq
-	  fi
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done  
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*"` &&
-	       test "$len" -le "$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=
-	    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
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "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}\" || 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
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	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)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit 1
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# 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'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_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
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest="$arg"
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*) ;;
-
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest="$arg"
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$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 "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.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit 1
-	  fi
-
-	  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
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit 1
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run eval "$striplib $destdir/$realname" || exit $?
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  eval cmds=\"$postinstall_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit 0
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  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
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit 1
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-	      else
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyways
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
-    else
-      exit 0
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  eval cmds=\"$finish_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit 0
-
-    $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"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit 1
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # 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 0
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-	  if test "$mode" = uninstall; then
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      eval cmds=\"$postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      eval cmds=\"$old_postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe) 
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit 1
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [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
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit 0
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [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: $modename [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
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -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
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-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: $modename [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."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# 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:
diff --git a/television/autoconf/mkinstalldirs b/television/autoconf/mkinstalldirs
deleted file mode 100755
index 994d71c..0000000
--- a/television/autoconf/mkinstalldirs
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
-   case "${1}" in
-     -h | --help | --h* )			# -h for help
-	echo "${usage}" 1>&2; exit 0 ;;
-     -m )					# -m PERM arg
-	shift
-	test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
-	dirmode="${1}"
-	shift ;;
-     -- ) shift; break ;;			# stop option processing
-     -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option
-     * )  break ;;				# first non-opt arg
-   esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-0) exit 0 ;;
-esac
-
-case $dirmode in
-'')
-  if mkdir -p -- . 2>/dev/null; then
-    echo "mkdir -p -- $*"
-    exec mkdir -p -- "$@"
-  fi ;;
-*)
-  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
-    echo "mkdir -m $dirmode -p -- $*"
-    exec mkdir -m "$dirmode" -p -- "$@"
-  fi ;;
-esac
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-	echo "mkdir $pathcomp"
-
-	mkdir "$pathcomp" || lasterr=$?
-
-	if test ! -d "$pathcomp"; then
-	  errstatus=$lasterr
-	else
-	  if test ! -z "$dirmode"; then
-	     echo "chmod $dirmode $pathcomp"
-
-	     lasterr=""
-	     chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	     if test ! -z "$lasterr"; then
-	       errstatus=$lasterr
-	     fi
-	  fi
-	fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 3
-# End:
-# mkinstalldirs ends here
diff --git a/television/configure b/television/configure
deleted file mode 100755
index 4a561e2..0000000
--- a/television/configure
+++ /dev/null
@@ -1,2356 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for llvm-tv pre-release.
-#
-# Report bugs to <llvmbugs@cs.uiuc.edu>.
-#
-# Copyright (C) 2003 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 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='llvm-tv'
-PACKAGE_TARNAME='-llvm-tv-'
-PACKAGE_VERSION='pre-release'
-PACKAGE_STRING='llvm-tv pre-release'
-PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
-
-ac_unique_file=""Makefile.common.in""
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# 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.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-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
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -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 | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$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 ;;
-
-  -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 ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    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 ;;
-
-  -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=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 ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      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'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-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
-    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
-
-
-# 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 its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    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
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-
-#
-# 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 llvm-tv pre-release 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 \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-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]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --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]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of llvm-tv pre-release:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-
-Report bugs to <llvmbugs@cs.uiuc.edu>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style 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
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-llvm-tv configure pre-release
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 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 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by llvm-tv $as_me pre-release, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-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`
-hostinfo               = `(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=.
-  echo "PATH: $as_dir"
-done
-
-} >&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_sep=
-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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$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
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >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
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  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.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$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 `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-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_aux_dir=
-for ac_dir in autoconf $srcdir/autoconf; 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
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-          ac_config_files="$ac_config_files Makefile.config"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Snapshot/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/llvm-tv/Makefile"
-
-
-
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  LLVM_SRC=$withval
-
-else
-  LLVM_SRC=`cd ${srcdir}/../..; pwd`
-
-fi;
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  LLVM_OBJ=$withval
-
-else
-  LLVM_OBJ=`cd ../..; pwd`
-
-fi;
-
-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, don't put newlines in cache variables' values.
-# 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.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *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 \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  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}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-# 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 we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $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}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# 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+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; 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
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  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
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# 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'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by llvm-tv $as_me pre-release, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -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
-      --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 <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-llvm-tv config.status pre-release
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-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=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  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
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-${srcdir}/autoconf/mkinstalldirs `dirname Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname Makefile.common`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/Snapshot/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname tools/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname tools/llvm-tv/Makefile`
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.config" ) CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "Makefile.common" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile.common" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/Snapshot/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Snapshot/Makefile" ;;
-  "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-  "tools/llvm-tv/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/llvm-tv/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  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 to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # 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.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    Makefile.common ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile.common Makefile.common ;;
-    lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/Snapshot/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Snapshot/Makefile lib/Snapshot/Makefile ;;
-    tools/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    tools/llvm-tv/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/llvm-tv/Makefile tools/llvm-tv/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# 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 || { (exit 1); exit 1; }
-fi
-
diff --git a/television/docs/Design.txt b/television/docs/Design.txt
deleted file mode 100644
index 1bcacc5..0000000
--- a/television/docs/Design.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-Design of LLVM-TV
------------------
-
-TVApplication implements the wxApp interface and is the launcher of LLVM-TV.
-It is responsible for keeping track of all the windows, and the list of
-available snapshots. It is also responsible for handling Unix signals sent to
-the LLVM-TV process; this is the mechanism the LLVM optimizer uses for
-communicating with LLVM-TV.
-
-TVFrame is responsible for the main LLVM-TV user interface - it sets up the
-vertically-split main window having a tree of snapshots on the left
-(TVTreeCtrl), and a tabbed view containing visualizers on the right
-(TVNotebook). TVFrame is also responsible for the menu bar, and it is the first
-object that deals with commands issued as a result of the user choosing menu
-items.
-
-TVTreeItemData is the basic unit of visualization in LLVM-TV. It is also the
-abstract superclass for all nodes that appear in the tree view on the left-hand
-side of LLVM-TV's main window.  The root of the tree is the Singleton
-TVTreeRootItem, which is hidden (the user cannot select it) and has no
-displayable data.  The TVTreeRootItem contains TVTreeModuleItems, which point to
-snapshots of LLVM Modules; the TVTreeModuleItems in turn contain
-TVTreeFunctionItems, which point to snapshots of LLVM Functions within the
-parent Modules.
-
-The TVHtmlWindow class is an ItemDisplayer that displays syntax-highlighted LLVM
-assembly code for TVTreeItems (either Functions or Modules) in HTML format.
-
-A TVTreeItem uses an HTMLPrinter to display a Function or a Module in a
-syntax-highlighted view.  It also chooses a HTMLMarkup strategy class to decide
-whether to use Cascading Style Sheets (CSS) or old-style "font" tags for syntax
-highlighting of elements such as keywords, types, and basic-block names.
-HTMLPrinter is a Visitor, implemented using the standard LLVM InstVisitor C++
-template.
-
-TVNotebook is responsible for implementing the tabbed interface which you see on
-the right-hand side of the main window (the TVFrame).
-
-ItemDisplayer is the abstract superclass for objects that know how to visualize
-LLVM Functions and/or Modules. ItemDisplayers can be displayed in tabs in the
-TVNotebook view, or in their own windows (called PictureFrames).
-
-TVCodeViewer is the ItemDisplayer which implements the "interactive code view"
-which highlights use-def chains. Each TVCodeViewer contains a TVCodeListCtrl,
-which is responsible for the actual drawing of the list view, and which is where
-most of the interesting stuff happens -- TVCodeViewer is essentially an Adapter
-around TVCodeListCtrl to allow it to display itself either in a tab view or a
-window.
-
-GraphDrawer is an abstract superclass for all graph-drawing visualizers.  It
-inherits the ItemDisplayer interface, so all GraphDrawers are also
-ItemDisplayers. GraphDrawer simplifies the ItemDisplayer interface using the
-Template Method pattern.  Concrete GraphDrawers only need to be able to provide
-an image object given a TVTreeItem; the abstract GraphDrawer class provides
-for displaying the image in a convenient scrolling viewer (called a
-PictureCanvas).
-
-CallGraphDrawer and CFGGraphDrawer are GraphDrawers for displaying the call
-graph (for a Module) and the control-flow graph (for a Function), respectively.
-
-DSAGraphDrawer is an abstract class for Data Structure Graph viewers.
-It implements GraphDrawer's Abstract Methods
-drawFunctionGraph() and drawModuleGraph() as Template Methods which rely on
-pure-virtual C++ methods that return the Pass object to write out the graph,
-which is different for each of BUGraphDrawer, TDGraphDrawer, and
-LocalGraphDrawer, as well as the filename to which they output the results of
-their analysis.  The functions createFunctionPass() and createModulePass() are
-Factory Methods as they create passes of different classes that are subclasses
-of FunctionPass or Pass, respectively.  The algorithm for running the pass on a
-Function or Module is shared among the 3 subclasses of DSAGraphDrawer.
-
-BUGraphDrawer, TDGraphDrawer, and LocalGraphDrawer are also ItemDisplayers,
-which allows them to be displayed in tabs or in separate new windows.
-
-
-Extending LLVM-TV
------------------
-
-In order to add a new visualization to LLVM-TV, the programmer should add a new
-concrete subclass of ItemDisplayer. The requirements for a new ItemDisplayer
-subclass are:
-
-1) An ItemDisplayer must create and hold a wxWindows display widget (subclass of
-wxWindow) to draw in.  The widget should be of a type appropriate to the
-visualization - for example, if you are displaying a list of things, use a
-wxListCtrl; if you are displaying a tree, use a wxTreeCtrl.  If you want to
-display an image, you probably will want to create a subclass of GraphDrawer
-instead (see below).  When your getWindow() method is called, you should create
-the display widget (if it has not already been created) and return a pointer to
-it.
-
-2) An ItemDisplayer must respond to the displayItem(TVTreeItemData *) message by
-updating its display widget to contain visual information about the given item.
-
-3) An ItemDisplayer must respond to the getDisplayTitle(TVTreeItemData *)
-message by returning a string, suitable for a window or tab title, which
-describes the visualization of the given item -- or if no item is passed in, a
-string which describes the kind of visualization it generally performs (e.g.,
-"Dominator tree view of java.lang.System.arraycopy()" vs. "Dominator tree
-view".)
-
-If you want to add a new visualization to LLVM-TV which *only* draws images and
-allows the user to view them, you can subclass GraphDrawer. Instead of
-requirements 1) and 2) above, a new subclass of GraphDrawer is required to
-respond to the drawModuleGraph(Module *) and drawFunctionGraph(Function *)
-messages by returning a wxImage object that contains an image representing the
-LLVM item passed in. GraphDrawer will take care of displaying the image in a
-scrolling canvas, either in a tab or a separate window.
-
-
diff --git a/television/docs/Features.txt b/television/docs/Features.txt
deleted file mode 100644
index 5b5d2aa..0000000
--- a/television/docs/Features.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-LLVM-TV FEATURES
-
-1. Current
-==========
-
-* Tabbed views of Modules and Functions: choose text or HTML
-* Call graph display for a Module
-* CFG display for a function
-* Use/def chains for instructions
-  - not polished: separate from syntax-highlighted view, multi-column
-* BU, TD, or Local DSGraphs display for global vars and functions
-* Tabbed view of graphs (CallGraph, CFG, DSA, ...)
-
-2. Under development/debugging
-==============================
-
-* Scintilla / syntax-highlighting editing control
-* Cycling through snapshots (prev, next) while keeping same function in view
-
-3. Long-term ideas
-==================
-
-* Some other kind of pointer analysis viewer?
-* Cache display of complex computed structures (graphs)
-* Calculate graphs in the background -- user should be able to change tabs while
-  the graph calculation is going on 
-* Rewrite LLVM-TV in XUL
-  + As portable as Mozilla
-  + HTML/CSS for code (can use links and mouseover!)
-  + SVG for graphs
diff --git a/television/docs/UserGuide.html b/television/docs/UserGuide.html
deleted file mode 100644
index 86ee32a..0000000
--- a/television/docs/UserGuide.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<html>
-<head>
-  <title>LLVM Visualization Tool User Guide</title>
-</head>
-<body>
-
-<h2><img src="images/llvmtv-logo.png" alt="[LLVM-TV Logo]">LLVM Visualization Tool User Guide</h2>
-
-<h3><u>Required Software:</u></h3>
-In order to compile and run the LLVM Visualization Tool (LLVM-TV), the following software
-must be installed:
-
-<ul>
-<li><b>The Low Level Virtual Machine (LLVM) Compiler Infrastructure:</b> You
-must check out the latest version from CVS. LLVM-TV does not work with
-LLVM version 1.2, the latest released version at the time of this writing.
-See the <a href="http://llvm.cs.uiuc.edu/docs/GettingStarted.html">LLVM Getting
-Started Guide</a> for details.</li>
-<li><b>Dot</b>: Included in the AT&T Research <a href="http://www.research.att.com/sw/tools/graphviz/">Graphviz</a> package, LLVM-TV uses Dot to draw directed
-graphs. For best results, make sure you have TrueType fonts installed.</li>
-</ul>
-<p>
-
-<h3><u>Download:</u></h3>
-<p>Once you have unpacked and compiled LLVM, download the LLVM Visualization
-Tool sources and unpack them in the <tt>projects</tt> subdirectory of your LLVM
-source tree.</p>
-<pre>
-    % cd llvm/projects
-    % tar xzvf llvm-tv.tgz
-    % cd llvm-tv
-</pre>
-
-<p>
-
-<h3><u>Compiling:</u></h3>
-<p>You must then compile the LLVM Visualization Tool.</p>
-<pre>
-    % ./configure --with-llvmsrc=[path] --with-llvmobj=[path]
-</pre>
-<p><i>If you're building in llvm/projects/llvm-tv, then you don't need
-   to specify these --with options.</i></p>
-<pre>
-    % cd lib/wxwindows
-    % ./configure --enable-debug --prefix=`pwd`
-</pre>
-<p><i>Make absolutely sure that wxWindows's configure script detects the same
-   C++ compiler that you used to compile LLVM. Otherwise, you may get
-   weird link errors when trying to link the llvm-tv tool.</i></p>
-<pre>
-    % cd ../..
-    % gmake
-</pre>
-
-<p>
-
-<h3><u>Using the LLVM Visualization Tool:</u></h3>
-
-The main purpose of the LLVM Visualization tool is to view the effects of transformations written in the LLVM framework. We call the points in time after a transformation has been run "snapshots." <p>
-
-Note: opt-snap and llvm-tv.exe may be found in the tools/Debug directory.
-<p>
-
-<h4>Acquiring a Snapshot:</h4>
-
-<p>Using the LLVM tool 'opt', one runs transformations on an LLVM Bytecode file.
-Please see the <a href="http://llvm.cs.uiuc.edu/docs/CommandGuide/opt.html">man
-page</a> on opt for details on what transformations are available.</p>
-
-<p>In order to acquire snapshots after a transformation or a series of
-transformations have been applied, you use the 'opt-snap' tool. You simply place
-the option '-snapshot' after specifying your transformation options. You may ask
-for a snapshot any number of times.</p>
-
-<p>Here is an example of using opt to acquire snapshots. We will run two
-optimizations (loop-invariant code motion and global common-subexpression
-elimination) on the program whose LLVM bytecode is in the file
-<tt>bytecode-file.bc</tt>, and take a snapshot after each pass completes:</p>
-<pre>
-    % opt-snap -debug -licm -snapshot -gcse -snapshot < bytecode-file.bc > /dev/null
-</pre>
-
-<p>All snapshots are placed in the directory
-<tt>/tmp/llvm-tv-<i>username</i>/snapshots</tt>, where <tt><i>username</i></tt>
-is your login name.</p>
-
-<h4>Viewing a Snapshot:</h4>
-<p>Begin by starting up the LLVM Visualization tool GUI. Make sure llvm-tv.exe
-is in your PATH, then type:</p>
-
-<pre>
-    % llvm-tv.exe
-</pre>
-
-<p>This should pop up a window such as the following:</p>
-<img src="images/llvmtv-firstopen.jpg"><p>
-
-<p>Notice that all the snapshots are listed in the tree view structure on the left
-side of the frame. Compilation units in LLVM have a simple, hierarchical
-structure:
-a Module contains Functions, which contain BasicBlocks, which contain
-Instructions. The tree view will show you functions within the snapshot you are viewing.</p>
-
-<p>
-From this screen shot, you can see that we have expanded a module revealing that it has several functions within it.</p>
-<img src="images/llvmtv-expandmodule.jpg">
-   
-<p>
-To the right of the tree view is a tabbed pane that allows you to easily browse
-different views of the snapshot.</p>
-
-<b>TextView:</b><br>
-
-<p>The text view is a direct disassembly of the Module, showing the pointer size
-of the target architecture for which it was compiled, endianness, the
-user-defined types present in the module, global variables, and all function
-definitions.</p>
-
-<img src="images/llvmtv-TextView.jpg"><p>
-
-<b>HTMLView:</b><br>
-
-<p>The HTML view is a syntax-highlighted view with LLVM keywords in blue, types
-in green, and BasicBlock names in red. For brevity, the Module view does not
-include the types and the functions are given as prototypes. External functions,
-for which the Module has no code, are prepended with a `declare' keyword. Other
-functions' code can be viewed by clicking on the appropriate node in the tree
-list.</p>
-
-<img src="images/llvmtv-HTMLView.jpg"><p>
-
-
-<b>DSGraph Views:</b><br>
-
-<p>LLVM has a powerful alias analysis framework and here we are showcasing its
-novel Data Structure Analysis (DSA) algorithm. It has 3 components: the
-Bottom-Up DSGraph, Top-down DSGraph, and Local DSGraph. These graphs show
-points-to results analysis for global variables and other pointers in a
-program. Here we see the results of a local data-structure analysis run:</p>
-
-<img src="images/llvmtv-LocalDSGraph.jpg"><p>
-
-<b>CodeView:</b><br>
-
-<p>Because LLVM is in SSA (Static Single Assignment) form, any use of a variable must
-be preceded by exactly one definition. We can thus form def-use chains which
-connect definitions of variables to their uses.  The CodeView enables one to
-click on any value and see where the uses of the variable occur, allowing a
-visual way to inspect code. As a side effect, clicking on a BasicBlock entry
-shows all users of the BasicBlock, which are branches that have the BasicBlock
-as a target, thus showing how many incoming control-flow edges a block has.</p>
-
-<img src="images/llvmtv-CodeView.jpg"><p>
-
-<p>There are also more views under the View menu. Selecting one of these views will
-open up a new window with that view in it. There are two new views that we have
-not seen before: Call Graph view and Control Flow Graph view.</p>
-
-<img src="images/llvmtv-ViewMenu.jpg"><p>
-
-<b>Call Graph:</b><br>
-
-<p>The Call Graph shows the callers and callees of each function in the module. A graph of
-functions, here each node represents a function and an arrow from node A to node
-B means that function A calls function B at least once in its code.</p>
-
-<b>Control Flow Graph:</b><br>
-
-<p>The control flow graph displays graphically the control flow of the function,
-identifying each basic block as a node and labeling all branches between blocks
-as arrows.</p>
-
-<img src="images/llvmtv-ControlFlow.jpg"><p>
-
-Additionally, you can use the File menu to add more snapshots to the visualizer.
-<br>
-<img src="images/llvmtv-FileMenu.jpg"><p>
-
-<b>Add Module:</b><br>
-
-<p>This will add a given Module to the list of snapshots without having to run
-opt-snap to deposit it into the snapshot collection. This is useful if you
-want to compare different programs, instead of looking at multiple views
-of the same program.</p>
-
-<b>Refresh:</b><br>
-
-<p>This option will re-read the snapshot collection directory to see if any new
-Modules have been added manually by the user (by copying directly through the
-filesystem).</p>
-
-<h4>Snapshots and Signaling:</h4>
-
-<p>
-A neat feature of the LLVM Visualization tool is that the GUI will automatically
-refresh the snapshot listing when opt-snap signals that a new snapshot has been
-generated. This is primarily useful for long-running optimizations.
-</p>
-
-</body>
-</html>
-
diff --git a/television/docs/images/LLVMTV-UML-LARGE.jpg b/television/docs/images/LLVMTV-UML-LARGE.jpg
deleted file mode 100644
index f4de7dd..0000000
--- a/television/docs/images/LLVMTV-UML-LARGE.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML-MEDIUM.jpg b/television/docs/images/LLVMTV-UML-MEDIUM.jpg
deleted file mode 100644
index be692d5..0000000
--- a/television/docs/images/LLVMTV-UML-MEDIUM.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML-SMALL.jpg b/television/docs/images/LLVMTV-UML-SMALL.jpg
deleted file mode 100644
index c71f046..0000000
--- a/television/docs/images/LLVMTV-UML-SMALL.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML2.jpg b/television/docs/images/LLVMTV-UML2.jpg
deleted file mode 100644
index ece01c5..0000000
--- a/television/docs/images/LLVMTV-UML2.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-CodeView.jpg b/television/docs/images/llvmtv-CodeView.jpg
deleted file mode 100644
index 6bc4125..0000000
--- a/television/docs/images/llvmtv-CodeView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-ControlFlow.jpg b/television/docs/images/llvmtv-ControlFlow.jpg
deleted file mode 100644
index 3057d53..0000000
--- a/television/docs/images/llvmtv-ControlFlow.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-FileMenu.jpg b/television/docs/images/llvmtv-FileMenu.jpg
deleted file mode 100644
index c08f64f..0000000
--- a/television/docs/images/llvmtv-FileMenu.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-HTMLView.jpg b/television/docs/images/llvmtv-HTMLView.jpg
deleted file mode 100644
index af2058d..0000000
--- a/television/docs/images/llvmtv-HTMLView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-LocalDSGraph.jpg b/television/docs/images/llvmtv-LocalDSGraph.jpg
deleted file mode 100644
index 1af0c39..0000000
--- a/television/docs/images/llvmtv-LocalDSGraph.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-TextView.jpg b/television/docs/images/llvmtv-TextView.jpg
deleted file mode 100644
index f432913..0000000
--- a/television/docs/images/llvmtv-TextView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-UML1.jpg b/television/docs/images/llvmtv-UML1.jpg
deleted file mode 100644
index 010a14b..0000000
--- a/television/docs/images/llvmtv-UML1.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-ViewMenu.jpg b/television/docs/images/llvmtv-ViewMenu.jpg
deleted file mode 100644
index df2f9d7..0000000
--- a/television/docs/images/llvmtv-ViewMenu.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-expandmodule.jpg b/television/docs/images/llvmtv-expandmodule.jpg
deleted file mode 100644
index c992612..0000000
--- a/television/docs/images/llvmtv-expandmodule.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-firstopen.jpg b/television/docs/images/llvmtv-firstopen.jpg
deleted file mode 100644
index bf3b2c8..0000000
--- a/television/docs/images/llvmtv-firstopen.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-logo.png b/television/docs/images/llvmtv-logo.png
deleted file mode 100644
index 530cfa8..0000000
--- a/television/docs/images/llvmtv-logo.png
+++ /dev/null
Binary files differ
diff --git a/television/include/llvm-tv/Config.h b/television/include/llvm-tv/Config.h
deleted file mode 100644
index fabe8fa..0000000
--- a/television/include/llvm-tv/Config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef LLVM_TV_CONFIG_H
-#define LLVM_TV_CONFIG_H
-
-#include <string>
-
-namespace {
-
-  // To make sure we don't collide if working on the same machine,
-  // the llvm-tv data directory is user-specific
-  const std::string llvmtvPath    = "/tmp/llvm-tv-" + 
-                                    std::string(getenv("USER"));
-  const std::string snapshotsPath = llvmtvPath + "/snapshots";
-  const std::string llvmtvPID     = llvmtvPath + "/llvm-tv.pid";
-
-}
-
-#endif
diff --git a/television/include/llvm-tv/Support/FileUtils.h b/television/include/llvm-tv/Support/FileUtils.h
deleted file mode 100644
index 30dc189..0000000
--- a/television/include/llvm-tv/Support/FileUtils.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//===- FileUtils.h - File system utility functions for snapshotting -------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// File-system functionality useful for snapshotting (Unix-specific).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TV_FILEUTILS_H
-#define LLVM_TV_FILEUTILS_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
-
-/// GetNumFilesInDir - returns a count of files in directory
-///
-unsigned GetNumFilesInDir(const std::string &path);
-
-/// GetFilesInDir - populate vector with a listing of files in directory
-///
-void GetFilesInDir(const std::string &path, std::vector<std::string> &list);
-
-bool DirectoryExists (const std::string &dirPath);
-
-void EnsureDirectoryExists (const std::string &dirPath);
-
-};
-
-#endif
diff --git a/television/include/llvm-tv/Support/Snapshots.h b/television/include/llvm-tv/Support/Snapshots.h
deleted file mode 100644
index c85c7e7..0000000
--- a/television/include/llvm-tv/Support/Snapshots.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//===- Snapshots.h - Snapshot utility functions ---------------*- C++ -*---===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TV_SUPPORT_SNAPSHOTS_H
-#define LLVM_TV_SUPPORT_SNAPSHOTS_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
-  
-void ReadSnapshots(std::vector<std::string> &oldModules,
-                   std::vector<Module*> NewModules); 
-
-}
-
-#endif
diff --git a/television/lib/Makefile b/television/lib/Makefile
deleted file mode 100644
index 8684254..0000000
--- a/television/lib/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-LEVEL = ..
-DIRS = Snapshot
-
-include $(LEVEL)/Makefile.common
diff --git a/television/lib/Snapshot/FileUtils.cpp b/television/lib/Snapshot/FileUtils.cpp
deleted file mode 100644
index ac36980..0000000
--- a/television/lib/Snapshot/FileUtils.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//===- FileUtils.cpp - File system utility functions for snapshotting -----===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file is Unix-specific; to become part of LLVM it needs to be made
-// portable for the architectures/systems LLVM supports.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm-tv/Support/FileUtils.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-
-/// Returns the number of entries in the directory named PATH.
-///
-/// FIXME: If we want to be portable, we can use opendir/readdir/closedir()
-/// and stat(), instead of scandir() and alphasort(). Also, this function
-/// will probably not skip directories (better verify this!)
-///
-unsigned llvm::GetNumFilesInDir(const std::string &path) {
-  struct dirent **namelist;
-  int n = scandir(path.c_str(), &namelist, 0, alphasort);
-  int num = n;
-  if (n < 0)
-    perror("scandir");
-  else {
-    while(n--)
-      free(namelist[n]);
-    free(namelist);
-  }
-  return num;
-}
-
-
-/// GetFilesInDir - returns a listing of files in directory
-///
-void llvm::GetFilesInDir(const std::string &path,
-                         std::vector<std::string> &list)
-{
-  struct dirent **namelist;
-  int n = scandir(path.c_str(), &namelist, 0, alphasort);
-  if (n < 0)
-    perror("scandir");
-  else {
-    while(n--) {
-      list.push_back(std::string(namelist[n]->d_name));
-      free(namelist[n]);
-    }
-    free(namelist);
-  }
-}
-
-bool llvm::DirectoryExists (const std::string &dirPath) {
-  struct stat stbuf;
-  if (stat (dirPath.c_str (), &stbuf) < 0)
-    return false;
-  return S_ISDIR (stbuf.st_mode);
-}
-
-void llvm::EnsureDirectoryExists (const std::string &dirPath) {
-  if (!DirectoryExists (dirPath))
-    mkdir (dirPath.c_str (), 0777);
-}
-
diff --git a/television/lib/Snapshot/Makefile b/television/lib/Snapshot/Makefile
deleted file mode 100644
index a58bcdd..0000000
--- a/television/lib/Snapshot/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../..
-LIBRARYNAME = LLVMTVSnapshot
-SHARED_LIBRARY = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/television/lib/Snapshot/ReadSnapshots.cpp b/television/lib/Snapshot/ReadSnapshots.cpp
deleted file mode 100644
index 2b71280..0000000
--- a/television/lib/Snapshot/ReadSnapshots.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//===- ReadSnapshots.cpp - View snapshots that were saved previously ------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Bytecode/Reader.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Support/Snapshots.h"
-#include <string>
-#include <vector>
-using namespace llvm;
-
-namespace {
-  const std::string bytecodePath = "/tmp/llvm-tv/snapshots";
-}
-
-/// ReadSnapshots - load all bytecode files in a directory that haven't yet been
-/// slurped in earlier.
-///
-void llvm::ReadSnapshots(std::vector<std::string> &oldModules,
-                         std::vector<Module*> NewModules) {
-  std::string Filename (bytecodePath);
-  std::vector<std::string> FileListing;
-  GetFilesInDir(bytecodePath, FileListing);
-
-  for (std::vector<std::string>::iterator i = FileListing.begin(),
-         e = FileListing.end(); i != e; ++i)
-    if (std::find(oldModules.begin(), oldModules.end(), *i) != oldModules.end())
-      NewModules.push_back(ParseBytecodeFile(*i));
-}
diff --git a/television/lib/Snapshot/WriteSnapshot.cpp b/television/lib/Snapshot/WriteSnapshot.cpp
deleted file mode 100644
index fe4c415..0000000
--- a/television/lib/Snapshot/WriteSnapshot.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-//===- Snapshot.cpp - Snapshot Module views and communicate with llvm-tv --===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// * If llvm-tv is not running, start it.
-// * Send update to llvm-tv each time this pass is called on the command line,
-//   e.g.  opt -snapshot -licm -snapshot -gcse -snapshot ... 
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Bytecode/WriteBytecodePass.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Config.h"
-#include <csignal>
-#include <cstdlib>
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-#include <cstring>
-#include <dirent.h>
-#include <fstream>
-#include <string>
-#include <unistd.h>
-#include <vector>
-#include <sys/types.h>
-using namespace llvm;
-
-extern char **environ;
-
-namespace {
-  struct Snapshot : public ModulePass {
-    /// getAnalysisUsage - this pass does not require or invalidate any analysis
-    ///
-    virtual void getAnalysisUsage(AnalysisUsage &AU) {
-      AU.setPreservesAll();
-    }
-    
-    /// runOnModule - save the Module in a pre-defined location with our naming
-    /// strategy
-    bool runOnModule(Module &M);
-
-  private:
-    bool sendSignalToLLVMTV();
-    std::string findOption(unsigned Idx);
-  };
-
-  // Keep our place in the list of passes that opt was run with to give the
-  // snapshots appropriate names.
-  static unsigned int PassPosition = 1;
-  /// The name of the command-line option to invoke the snapshot pass
-  const std::string SnapshotCmd = "snapshot";
-  RegisterOpt<Snapshot> X("snapshot", "Snapshot a module, signal llvm-tv");
-}
-
-
-/// runOnModule - save snapshot to a pre-defined directory with a consecutive
-/// number in the name (for alphabetization) and the name of the pass that ran
-/// just before this one. Signal llvm-tv that fresh bytecode file has arrived
-/// for consumption.
-bool Snapshot::runOnModule(Module &M) {
-  // Make sure the snapshots dir exists, which it will unless this
-  // is the first time we've ever run the -snapshot pass.
-  EnsureDirectoryExists (llvmtvPath);
-  EnsureDirectoryExists (snapshotsPath);
-
-  // Assumption: directory only has numbered .bc files, from 0 -> n-1, next one
-  // we add will be n.bc . Subtract 2 for "." and ".."
-  unsigned numFiles = GetNumFilesInDir(snapshotsPath) - 2;
-
-  std::string Filename(snapshotsPath);
-  Filename = Filename + "/" + utostr(numFiles) + "-" +
-    findOption(PassPosition++) + ".bc";
-
-  std::ofstream os(Filename.c_str());
-  WriteBytecodeToFile(&M, os);
-  os.close();
-
-  // Communicate to llvm-tv that we have added a new snapshot
-  if (!sendSignalToLLVMTV()) return false;
-
-  // Since we were not successful in sending a signal to an already-running
-  // instance of llvm-tv, start a new instance and send a signal to it.
-  sys::Path llvmtvExe = FindExecutable("llvm-tv", ""); 
-  if (llvmtvExe.isValid() && !llvmtvExe.isEmpty() && llvmtvExe.isFile() &&
-      llvmtvExe.canExecute()) {
-    int pid = fork();
-    // Child process morphs into llvm-tv
-    if (!pid) {
-      char *argv[1]; argv[0] = 0; 
-      if (execve(llvmtvExe.toString().c_str(), argv, environ) == -1) {
-        perror("execve");
-        return false;
-      }
-    }
-    
-    // parent waits for llvm-tv to write out its pid to a file
-    // and then sends it a signal
-    sleep(3);
-    sendSignalToLLVMTV();
-  } else
-    std::cerr << "Cannot find llvm-tv in the path!\n";
-
-  return false;
-}
-
-/// sendSignalToLLVMTV - read pid from file, send signal to llvm-tv process
-///
-bool Snapshot::sendSignalToLLVMTV() {
-  // See if we can open a file with llvm-tv's pid in it
-  std::ifstream is(llvmtvPID.c_str());
-  int pid = 0;
-  if (is.good() && is.is_open())
-    is >> pid;
-  else
-    return true;
-
-  is.close();
-  if (pid > 0)
-    return (kill(pid, SIGUSR1) == -1);
-
-  return true;
-}
-
-/// findOption - read the environment variable OPTPASSES which should contain
-/// the arguments passed to opt and select all those that start with a
-/// dash. Return the last one before the Idx-th invocation of `-snapshot'
-std::string Snapshot::findOption(unsigned Idx) {
-  unsigned currIdx = 0;
-  char *OptCmdline = getenv("OPTPASSES");
-  if (!OptCmdline) return "noenv";
-  std::vector<std::string> InputArgv;
-  InputArgv.push_back("filler");
-  while (*OptCmdline) {
-    if (*OptCmdline == '-') {
-      size_t len = strcspn(OptCmdline, " ");
-      // Do not add in the '-' or the space after the switch
-      char *arg = strdup(OptCmdline+1);
-      arg[len - 1] = '\0';
-      InputArgv.push_back(std::string(arg));
-      free(arg);
-    }
-    OptCmdline += strcspn(OptCmdline, " ") + 1;
-  }
-
-  std::vector<std::string>::iterator stringPos = InputArgv.begin();
-  while (currIdx < Idx && stringPos != InputArgv.end()) {
-    stringPos = std::find(stringPos+1, InputArgv.end(), SnapshotCmd);
-    ++currIdx;
-  }
-
-  return (stringPos == InputArgv.end()) ? "notfound"
-    : (stringPos == InputArgv.begin()) ? "clean" : *--stringPos;
-}
diff --git a/television/tools/Makefile b/television/tools/Makefile
deleted file mode 100644
index ba884f9..0000000
--- a/television/tools/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL := ..
-PARALLEL_DIRS := llvm-tv
-
-include $(LEVEL)/Makefile.common
-
diff --git a/television/tools/llvm-tv/CFGGraphDrawer.cpp b/television/tools/llvm-tv/CFGGraphDrawer.cpp
deleted file mode 100644
index 074f7e1..0000000
--- a/television/tools/llvm-tv/CFGGraphDrawer.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "CFGGraphDrawer.h"
-#include "TVTreeItem.h"
-#include "llvm/Function.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Analysis/CFGPrinter.h"
-#include "llvm/PassManager.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// CFGGraphDrawer implementation
-
-wxImage *CFGGraphDrawer::drawFunctionGraph (Function *fn) {
-  ModuleProvider *MP = new ExistingModuleProvider (fn->getParent ());
-  FunctionPassManager PM (MP);
-  PM.add (createCFGOnlyPrinterPass ());
-  PM.run (*fn);
-  MP->releaseModule (); // Don't delete it when you go away, says I
-  delete MP;
-  return buildwxImageFromDotFile ("cfg." + fn->getName() + ".dot");
-}
-
-std::string CFGGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  std::string title ("Control-flow graph");
-  if (item) title += " of " + item->getTitle ();
-  return title;
-}
diff --git a/television/tools/llvm-tv/CFGGraphDrawer.h b/television/tools/llvm-tv/CFGGraphDrawer.h
deleted file mode 100644
index 1f0ef76..0000000
--- a/television/tools/llvm-tv/CFGGraphDrawer.h
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- CFGGraphDrawer.h - Creates an image representing a CFG ---*- C++ -*-==//
-//
-// Class for drawing CFG of a Function
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CFGGRAPHDRAWER_H
-#define CFGGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-
-namespace llvm {
-  class Function;
-}
-
-//===----------------------------------------------------------------------===//
-
-// CFGGraphDrawer interface
-
-class CFGGraphDrawer : public GraphDrawer {
- public:
-  wxImage *drawFunctionGraph (llvm::Function *fn);
-  CFGGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // CFGGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/CallGraphDrawer.cpp b/television/tools/llvm-tv/CallGraphDrawer.cpp
deleted file mode 100644
index 3ebb65d..0000000
--- a/television/tools/llvm-tv/CallGraphDrawer.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "CallGraphDrawer.h"
-#include "GraphPrinters.h"
-#include "llvm/PassManager.h"
-#include "TVTreeItem.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// CallGraphDrawer implementation
-
-wxImage *CallGraphDrawer::drawModuleGraph (Module *module) {
-  PassManager PM;
-  PM.add (createCallGraphPrinterPass ());
-  PM.run (*module);
-  return buildwxImageFromDotFile ("callgraph.dot");
-}
-
-std::string CallGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  std::string title ("Call graph");
-  if (item) title += " of " + item->getTitle ();
-  return title;
-}
-
diff --git a/television/tools/llvm-tv/CallGraphDrawer.h b/television/tools/llvm-tv/CallGraphDrawer.h
deleted file mode 100644
index 089e57e..0000000
--- a/television/tools/llvm-tv/CallGraphDrawer.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef CALLGRAPHDRAWER_H
-#define CALLGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-
-namespace llvm {
-  class Module;
-};
-
-//===----------------------------------------------------------------------===//
-
-// CallGraphDrawer interface
-
-class CallGraphDrawer : public GraphDrawer {
-public:
-  wxImage *drawModuleGraph (llvm::Module *M);
-  CallGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // CALLGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/CodeViewer.cpp b/television/tools/llvm-tv/CodeViewer.cpp
deleted file mode 100644
index 390482c..0000000
--- a/television/tools/llvm-tv/CodeViewer.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-#include "CodeViewer.h"
-#include "TVApplication.h"
-#include "TVTreeItem.h"
-#include "TVFrame.h"
-#include "llvm/Function.h"
-#include "llvm/Instruction.h"
-#include "llvm/Value.h"
-#include "llvm/ADT/StringExtras.h"
-#include <wx/listctrl.h>
-#include <map>
-#include <sstream>
-using namespace llvm;
-
-void TVCodeItem::SetLabel() {
-  std::string label;
-  if (!Val)
-    label = "<badref>";
-  else if (BasicBlock *BB = dyn_cast<BasicBlock>(Val))
-    label = BB->getName() + ":";
-  else if (Instruction *I = dyn_cast<Instruction>(Val)) {
-    std::ostringstream out;
-    I->print(out);
-    label = out.str();
-    // Post-processing for more attractive display
-    for (unsigned i = 0; i != label.length(); ++i)
-      if (label[i] == '\n') {                            // \n => space
-        label[i] = ' ';
-      } else if (label[i] == '\t') {                     // \t => 2 spaces
-        label[i] = ' ';
-        label.insert(label.begin()+i+1, ' ');
-      } else if (label[i] == ';') {                      // Delete comments!
-        unsigned Idx = label.find('\n', i+1);            // Find end of line
-        label.erase(label.begin()+i, label.begin()+Idx);
-        --i;
-      }
-
-  } else
-    label = "<invalid value>";
-
-  SetText(label.c_str());
-}
-
-//===----------------------------------------------------------------------===//
-
-void TVCodeListCtrl::refreshView() {
-  // Hide the list while rewriting it from scratch to speed up rendering
-  Hide();
-
-  // Clear out the list and then re-add all the items.
-  long index = 0;
-  ClearAll();
-  for (Items::iterator i = itemList.begin(), e = itemList.end(); i != e; ++i) {
-    InsertItem(index, (**i).m_text.c_str());
-    ItemToIndex[*i] = index;
-    ++index;
-  }
-
-  Show();
-}
-
-template<class T> void wipe (T x) { delete x; }
-
-void TVCodeListCtrl::SetFunction (Function *F) {
-  // Empty out the code list.
-  if (!itemList.empty ())
-    for_each (itemList.begin (), itemList.end (), wipe<TVCodeItem *>);
-  itemList.clear ();
-  ValueToItem.clear ();
-
-  // Populate it with BasicBlocks and Instructions from F.
-  for (Function::iterator BB = F->begin(), BBe = F->end(); BB != BBe; ++BB) {
-    TVCodeItem *TCBB = new TVCodeItem(BB);
-    itemList.push_back(TCBB);
-    ValueToItem[BB] = TCBB;
-    for (BasicBlock::iterator I = BB->begin(), Ie = BB->end(); I != Ie; ++I) {
-      TVCodeItem *TCI = new TVCodeItem(I);
-      itemList.push_back(TCI);
-      ValueToItem[I] = TCI;
-    }
-  }
-
-  // Since the function changed, we had better make sure that the list control
-  // matches what's in the code list.
-  refreshView ();
-}
-
-TVCodeListCtrl::TVCodeListCtrl(wxWindow *_parent, llvm::Function *F)
-  : wxListCtrl(_parent, LLVM_TV_CODEVIEW_LIST, wxDefaultPosition, wxDefaultSize,
-               wxLC_LIST) {
-  SetFunction (F);
-}
-
-TVCodeListCtrl::TVCodeListCtrl(wxWindow *_parent)
-  : wxListCtrl(_parent, LLVM_TV_CODEVIEW_LIST, wxDefaultPosition, wxDefaultSize,
-               wxLC_LIST) {
-}
-
-void TVCodeListCtrl::changeItemTextAttrs (TVCodeItem *item, wxColour *newColor, 
-                                          int newFontWeight) {
-  item->m_itemId = ItemToIndex[item];
-  item->SetTextColour(*newColor);
-  wxFont Font = item->GetFont();
-  Font.SetWeight(newFontWeight);
-  item->SetFont(Font);
-  SetItem(*item);
-}
-
-void TVCodeListCtrl::OnItemSelected(wxListEvent &event) {
-  Value *V = itemList[event.GetIndex ()]->getValue();
-  if (!V) return;
-
-  // Highlight uses in red
-  for (User::use_iterator u = V->use_begin(), e = V->use_end(); u != e; ++u)
-    changeItemTextAttrs (ValueToItem[*u], wxRED, wxBOLD);
-
-  // Highlight definitions of operands in green
-  if (User *U = dyn_cast<User>(V))
-    for (User::op_iterator op = U->op_begin(), e = U->op_end(); op != e; ++op)
-      if (TVCodeItem *TCI = ValueToItem[*op])
-        changeItemTextAttrs (TCI, wxGREEN, wxBOLD);
-}
-
-void TVCodeListCtrl::OnItemDeselected(wxListEvent &event) {
-  Value *V = itemList[event.GetIndex ()]->getValue();
-  if (!V) return;
-
-  // Set uses back to normal
-  for (User::use_iterator u = V->use_begin(), e = V->use_end(); u != e; ++u)
-    changeItemTextAttrs (ValueToItem[*u], wxBLACK, wxNORMAL);
-
-  // Set definitions of operands back to normal
-  if (User *U = dyn_cast<User>(V))
-    for (User::op_iterator op = U->op_begin(), e = U->op_end(); op != e; ++op)
-      if (TVCodeItem *TCI = ValueToItem[*op])
-        changeItemTextAttrs (ValueToItem[*op], wxBLACK, wxNORMAL);
-
-}
-
-BEGIN_EVENT_TABLE (TVCodeListCtrl, wxListCtrl)
-  EVT_LIST_ITEM_SELECTED(LLVM_TV_CODEVIEW_LIST,
-                         TVCodeListCtrl::OnItemSelected)
-  EVT_LIST_ITEM_DESELECTED(LLVM_TV_CODEVIEW_LIST,
-                           TVCodeListCtrl::OnItemDeselected)
-END_EVENT_TABLE ()
-
-//===----------------------------------------------------------------------===//
-
-void TVCodeViewer::displayItem (TVTreeItemData *item) {
-  item->viewCodeOn (this);
-}
-
-void TVCodeViewer::viewFunctionCode (Function *F) {
-  myListCtrl->SetFunction (F);
-}
-
-void TVCodeViewer::viewModuleCode (Module *F) {
-  myListCtrl->ClearAll();
-}
diff --git a/television/tools/llvm-tv/CodeViewer.h b/television/tools/llvm-tv/CodeViewer.h
deleted file mode 100644
index 240dcba..0000000
--- a/television/tools/llvm-tv/CodeViewer.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- CodeViewer.h - Interactive instruction stream viewer ----*- C++ -*-===//
-//
-// The interactive code explorer for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CODEVIEWER_H
-#define CODEVIEWER_H
-
-#include <wx/wx.h>
-#include <wx/listctrl.h>
-#include <map>
-#include <string>
-#include <vector>
-#include "ItemDisplayer.h"
-
-class TVApplication;
-
-namespace llvm {
-  class Module;
-  class Function;
-  class Value;
-}
-
-/// TVCodeItem - contains an instruction, basic block, or function (which prints
-/// out as the header)
-///
-class TVCodeItem : public wxListItem {
- private:
-  llvm::Value *Val;
-  std::string label;
-
-  void SetLabel();
- public:
-  TVCodeItem(llvm::Value *V) : Val(V) { SetLabel(); }
-  llvm::Value* getValue() { return Val; }
-};
-
-class TVCodeListCtrl : public wxListCtrl {
-  typedef std::vector<TVCodeItem*> Items;
-  Items itemList;
-  std::map<llvm::Value*, TVCodeItem*> ValueToItem;
-  std::map<TVCodeItem*, long> ItemToIndex;
-
-  void refreshView();
-  void changeItemTextAttrs (TVCodeItem *item, wxColour *newColor, int newWgt);
-
- public:
-  void SetFunction (llvm::Function *F);
-  TVCodeListCtrl(wxWindow *_parent);
-  TVCodeListCtrl(wxWindow *_parent, llvm::Function *F);
-  void OnItemSelected(wxListEvent &event);
-  void OnItemDeselected(wxListEvent &event);
-
-  DECLARE_EVENT_TABLE ()
-};
-
-/// TVCodeViewer
-///
-class TVCodeViewer : public ItemDisplayer {
-  TVCodeListCtrl *myListCtrl;
-public:
-  TVCodeViewer (wxWindow *_parent) {
-    myListCtrl = new TVCodeListCtrl (_parent);
-  }
-  virtual ~TVCodeViewer () { delete myListCtrl; }
-  void displayItem (TVTreeItemData *data);
-  void viewFunctionCode (llvm::Function *F);
-  void viewModuleCode (llvm::Module *M);
-  std::string getDisplayTitle (TVTreeItemData *data) { return "Code view"; }
-  wxWindow *getWindow () { return myListCtrl; }
-};
-
-#endif
diff --git a/television/tools/llvm-tv/DSAGraphDrawer.cpp b/television/tools/llvm-tv/DSAGraphDrawer.cpp
deleted file mode 100644
index 10d34de..0000000
--- a/television/tools/llvm-tv/DSAGraphDrawer.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//===-- DSGraphDrawer.cpp - DSGraph viewing ----------------------*- C++ -*-==//
-//
-// Classes for viewing DataStructure analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#include "DSAGraphDrawer.h"
-#include "TVTreeItem.h"
-#include "GraphPrinters.h"
-#include "llvm/Function.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetData.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// DSGraphDrawer implementation
-wxImage *DSGraphDrawer::drawModuleGraph(Module *M) {
-  PassManager PM;
-  PM.add(new TargetData("llvm-tv", M));
-  PM.add(getModulePass());
-  PM.run(*M);
-  return buildwxImageFromDotFile(getFilename(M));
-}
-
-wxImage *DSGraphDrawer::drawFunctionGraph(Function *F) {
-  Module *M = F->getParent();
-  PassManager PM;
-  PM.add(new TargetData("llvm-tv", M));
-  PM.add(getFunctionPass(F));
-  PM.run(*M);
-  return buildwxImageFromDotFile(getFilename(F));
-}
-
-//===----------------------------------------------------------------------===//
-
-// BUGraphDrawer implementation
-Pass *BUGraphDrawer::getFunctionPass(Function *F) {
-  return createBUDSFunctionPrinterPass(F);
-}
-
-Pass *BUGraphDrawer::getModulePass() {
-  return createBUDSModulePrinterPass();
-}
-
-std::string BUGraphDrawer::getFilename(Function *F) {
-  return "buds." + F->getName() + ".dot";
-}
-
-std::string BUGraphDrawer::getFilename(Module *M) {
-  return "buds.dot";
-}
-
-std::string BUGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Bottom-up data structure " + item->dsGraphName ();
-  else
-    return "Bottom-up DSGraph";
-}
-
-//===----------------------------------------------------------------------===//
-
-// TDGraphDrawer implementation
-Pass *TDGraphDrawer::getFunctionPass(Function *F) {
-  return createTDDSFunctionPrinterPass(F);
-}
-
-Pass *TDGraphDrawer::getModulePass() {
-  return createTDDSModulePrinterPass();
-}
-
-std::string TDGraphDrawer::getFilename(Function *F) {
-  return "tdds." + F->getName() + ".dot";
-}
-
-std::string TDGraphDrawer::getFilename(Module *M) {
-  return "tdds.dot";
-}
-
-std::string TDGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Top-down data structure " + item->dsGraphName ();
-  else
-    return "Top-down DSGraph";
-}
-
-//===----------------------------------------------------------------------===//
-
-// LocalGraphDrawer implementation
-Pass *LocalGraphDrawer::getFunctionPass(Function *F) {
-  return createLocalDSFunctionPrinterPass(F);
-}
-
-Pass *LocalGraphDrawer::getModulePass() {
-  return createLocalDSModulePrinterPass();
-}
-
-std::string LocalGraphDrawer::getFilename(Function *F) {
-  return "localds." + F->getName() + ".dot";
-}
-
-std::string LocalGraphDrawer::getFilename(Module *M) {
-  return "localds.dot";
-}
-
-std::string LocalGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Local data structure " + item->dsGraphName ();
-  else 
-    return "Local DSGraph";
-}
diff --git a/television/tools/llvm-tv/DSAGraphDrawer.h b/television/tools/llvm-tv/DSAGraphDrawer.h
deleted file mode 100644
index 5d5f0cb..0000000
--- a/television/tools/llvm-tv/DSAGraphDrawer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//===-- DSGraphDrawer.h - DSGraph viewing ------------------------*- C++ -*-==//
-//
-// Classes for viewing DataStructure analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef DSAGRAPHDRAWER_H
-#define DSAGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-#include <wx/wx.h>
-#include <string>
-
-namespace llvm {
-  class Function;
-  class Module;
-  class Pass;
-}
-
-//===----------------------------------------------------------------------===//
-
-// DSGraphDrawer abstract class
-//
-class DSGraphDrawer : public GraphDrawer {
-protected:
-  llvm::Function *F;
-  llvm::Module *M;
-  DSGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  virtual llvm::Pass *getFunctionPass(llvm::Function *F) = 0;
-  virtual llvm::Pass *getModulePass() = 0;
-  virtual std::string getFilename(llvm::Function *F) = 0;
-  virtual std::string getFilename(llvm::Module *M) = 0;
-public:
-  wxImage *drawFunctionGraph(llvm::Function *F);
-  wxImage *drawModuleGraph(llvm::Module *M);
-};
-
-//===----------------------------------------------------------------------===//
-
-// BUGraphDrawer 
-//
-class BUGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  BUGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-//===----------------------------------------------------------------------===//
-
-// TDGraphDrawer 
-//
-class TDGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  TDGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-//===----------------------------------------------------------------------===//
-
-// LocalGraphDrawer 
-//
-class LocalGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  LocalGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // DSAGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/GraphDrawer.cpp b/television/tools/llvm-tv/GraphDrawer.cpp
deleted file mode 100644
index 86e2b22..0000000
--- a/television/tools/llvm-tv/GraphDrawer.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "wx/image.h"
-#include "GraphDrawer.h"
-#include "TVTreeItem.h"
-#include "llvm/Support/FileUtilities.h"
-#include <unistd.h>
-#include <iostream>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// GraphDrawer shared implementation
-
-extern void FatalErrorBox (const std::string msg);
-
-wxImage *GraphDrawer::buildwxImageFromDotFile (const std::string filename) {
-  sys::Path File (filename);
-  if (! File.readable ())
-    FatalErrorBox ("buildwxImageFromDotFile() got passed a bogus filename: '"
-                   + filename + "'");
-
-  // We have a dot file, turn it into something we can load.
-  std::string cmd = "dot -Tpng " + filename + " -o image.png";
-  if (system (cmd.c_str ()) != 0)
-    FatalErrorBox ("buildwxImageFromDotFile() failed when calling dot");
-  unlink (filename.c_str ());
-
-  wxImage *img = new wxImage;
-  if (!img->LoadFile ("image.png"))
-    FatalErrorBox("buildwxImageFromDotFile() produced a non-loadable PNG file");
-
-  unlink ("image.png");
-  return img;
-}
-
-void GraphDrawer::displayItem (TVTreeItemData *item) {
-  wxImage *graphImage = item->graphOn (this);
-  if (!graphImage) {
-    // If we're drawing into a window, don't leave behind an embarrassing
-    // empty window AND an error message. (But don't destroy the window,
-    // because TVApp will get around to destroying it later.)
-    if (wxFrame *frame = dynamic_cast<wxFrame *>(myPictureCanvas->GetParent ()))
-      frame->Show (false);
-    std::string errMsg = "Sorry, you can't draw that kind of graph on "
-                         + item->getTitle() + ".";
-    wxMessageBox (errMsg.c_str (), "Error");
-    return;
-  }
-  myPictureCanvas->SetImage (graphImage);
-}
diff --git a/television/tools/llvm-tv/GraphDrawer.h b/television/tools/llvm-tv/GraphDrawer.h
deleted file mode 100644
index ce83d343..0000000
--- a/television/tools/llvm-tv/GraphDrawer.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- GraphDrawer.h - Graph viewing abstract class -------------*- C++ -*-==//
-//
-// Superclass for graph-drawing classes.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef GRAPHDRAWER_H
-#define GRAPHDRAWER_H
-
-#include "ItemDisplayer.h"
-#include "PictureCanvas.h"
-#include "wx/wx.h"
-#include <iostream>
-
-namespace llvm {
-  class Module;
-  class Function;
-};
-
-class TVTreeItemData;
-
-/// GraphDrawer abstract class
-///
-class GraphDrawer : public ItemDisplayer {
-  PictureCanvas *myPictureCanvas;
-
-protected:
-  static wxImage *buildwxImageFromDotFile (const std::string filename);
-  GraphDrawer (wxWindow *parent)
-    : myPictureCanvas (new PictureCanvas (parent)) { }
-
-public:
-  virtual ~GraphDrawer () { delete myPictureCanvas; }
-  wxWindow *getWindow () { return myPictureCanvas; }
-  void displayItem (TVTreeItemData *item);
-
-  /// drawModuleGraph, drawFunctionGraph - Subclasses should override
-  /// these methods to return images if they support visualizing the
-  /// corresponding kind of object.
-  ///
-  virtual wxImage *drawModuleGraph (llvm::Module *M) { return 0; }
-  virtual wxImage *drawFunctionGraph (llvm::Function *F) { return 0; }
-};
-
-#endif // GRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/GraphPrinters.cpp b/television/tools/llvm-tv/GraphPrinters.cpp
deleted file mode 100644
index c93a0ae..0000000
--- a/television/tools/llvm-tv/GraphPrinters.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//===- GraphPrinters.cpp - DOT printers for various graph types -----------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines several printers for various different types of graphs used
-// by the LLVM infrastructure.  It uses the generic graph interface to convert
-// the graph into a .dot graph.  These graphs can then be processed with the
-// "dot" tool to convert them to postscript or some other suitable format.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Function.h"
-#include "llvm/Pass.h"
-#include "llvm/Value.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Support/GraphWriter.h"
-#include <fstream>
-using namespace llvm;
-
-template<typename GraphType>
-static void WriteGraphToFile(std::ostream &O, const std::string &GraphName,
-                             const GraphType &GT) {
-  std::string Filename = GraphName + ".dot";
-  O << "Writing '" << Filename << "'...";
-  std::ofstream F(Filename.c_str());
-  
-  if (F.good())
-    WriteGraph(F, GT);
-  else
-    O << "  error opening file for writing!";
-  O << "\n";
-}
-
-
-//===----------------------------------------------------------------------===//
-//                              Call Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-  template<>
-  struct DOTGraphTraits<CallGraph*> : public DefaultDOTGraphTraits {
-    static std::string getGraphName(CallGraph *F) {
-      return "Call Graph";
-    }
-    
-    static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) {
-      if (Node->getFunction())
-        return ((Value*)Node->getFunction())->getName();
-      else
-        return "Indirect call node";
-    }
-  };
-}
-
-namespace {
-  struct CallGraphPrinter : public ModulePass {
-    virtual bool runOnModule(Module &M) {
-      WriteGraphToFile(std::cerr, "callgraph", &getAnalysis<CallGraph>());
-      return false;
-    }
-
-    void print(std::ostream &OS) const {}
-    
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<CallGraph>();
-      AU.setPreservesAll();
-    }
-  };
-
-  RegisterAnalysis<CallGraphPrinter> P2("print-callgraph",
-                                        "Print Call Graph to 'dot' file");
-}
-
-//===----------------------------------------------------------------------===//
-//                     Generic DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-
-  template<class DSType>
-  class DSModulePrinter : public ModulePass {
-  protected:
-    virtual std::string getFilename() = 0;
-
-  public:
-    bool runOnModule(Module &M) {
-      DSType *DS = &getAnalysis<DSType>();
-      std::string File = getFilename();
-      std::ofstream of(File.c_str());
-      if (of.good()) {
-        DS->getGlobalsGraph().print(of);
-        of.close();
-      } else
-        std::cerr << "Error writing to " << File << "!\n";
-      return false;
-    }
-
-    void print(std::ostream &os) const {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.template addRequired<DSType>();
-      AU.setPreservesAll();
-    }
-  };
-
-  template<class DSType>
-  class DSFunctionPrinter : public ModulePass {
-  protected:
-    Function *F;
-    virtual std::string getFilename(Function &F) = 0;
-
-  public:
-    DSFunctionPrinter(Function *_F) : F(_F) {}
-
-    bool runOnModule(Module &M) { 
-      DSType *DS = &getAnalysis<DSType>();
-      std::string File = getFilename(*F);
-      std::ofstream of(File.c_str());
-      if (of.good()) {
-        if (DS->hasGraph(*F)) {
-          DS->getDSGraph(*F).print(of);
-          of.close();
-        } else
-          // Can be more creative and print the analysis name here
-          std::cerr << "No DSGraph for: " << F->getName() << "\n";
-      } else
-        std::cerr << "Error writing to " << File << "!\n";
-      return false;
-    }
-
-    void print(std::ostream &os) const {}
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.template addRequired<DSType>();
-      AU.setPreservesAll();
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                     BU DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct BUModulePrinter : public DSModulePrinter<BUDataStructures> {
-    std::string getFilename() { return "buds.dot"; }
-  };
-  struct BUFunctionPrinter : public DSFunctionPrinter<BUDataStructures> {
-    BUFunctionPrinter(Function *F) : DSFunctionPrinter<BUDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "buds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                     TD DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct TDModulePrinter : public DSModulePrinter<TDDataStructures> {
-    std::string getFilename() { return "tdds.dot"; }
-  };
-  struct TDFunctionPrinter : public DSFunctionPrinter<TDDataStructures> {
-    TDFunctionPrinter(Function *F) : DSFunctionPrinter<TDDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "tdds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                   Local DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct LocalModulePrinter : public DSModulePrinter<LocalDataStructures> {
-    std::string getFilename() { return "localds.dot"; }
-  };
-  struct LocalFunctionPrinter : public DSFunctionPrinter<LocalDataStructures> {
-    LocalFunctionPrinter(Function *F) 
-      : DSFunctionPrinter<LocalDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "localds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                      Pass Creation Methods
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-
-  Pass *createCallGraphPrinterPass () { return new CallGraphPrinter(); }
-
-  // BU DataStructures
-  //
-  Pass *createBUDSModulePrinterPass () {
-    return new BUModulePrinter();
-  }
-
-  Pass *createBUDSFunctionPrinterPass (Function *F) {
-    return new BUFunctionPrinter(F);
-  }
-
-  // TD DataStructures
-  //
-  Pass *createTDDSModulePrinterPass () {
-    return new TDModulePrinter();
-  }
-
-  Pass *createTDDSFunctionPrinterPass (Function *F) {
-    return new TDFunctionPrinter(F);
-  }
-
-  // Local DataStructures
-  //
-  Pass *createLocalDSModulePrinterPass () {
-    return new LocalModulePrinter();
-  }
-
-  Pass *createLocalDSFunctionPrinterPass (Function *F) {
-    return new LocalFunctionPrinter(F);
-  }
-
-} // end namespace llvm
diff --git a/television/tools/llvm-tv/GraphPrinters.h b/television/tools/llvm-tv/GraphPrinters.h
deleted file mode 100644
index a1d0fdf..0000000
--- a/television/tools/llvm-tv/GraphPrinters.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- GraphPrinters.h - DOT printers for various graph types ---*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines several printers for various different types of graphs used
-// by the LLVM infrastructure.  It uses the generic graph interface to convert
-// the graph into a .dot graph.  These graphs can then be processed with the
-// "dot" tool to convert them to postscript or some other suitable format.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef GRAPHPRINTERS_H
-#define GRAPHPRINTERS_H
-
-#include <iosfwd>
-#include "llvm/Pass.h"
-using namespace llvm;
-
-namespace llvm {
-
-Pass *createCallGraphPrinterPass ();
-
-Pass *createBUDSModulePrinterPass ();
-Pass *createBUDSFunctionPrinterPass (Function *F);
-
-Pass *createTDDSModulePrinterPass ();
-Pass *createTDDSFunctionPrinterPass (Function *F);
-
-Pass *createLocalDSModulePrinterPass ();
-Pass *createLocalDSFunctionPrinterPass (Function *F);
-
-
-} // end namespace llvm
-
-#endif // GRAPHPRINTERS_H
diff --git a/television/tools/llvm-tv/ItemDisplayer.h b/television/tools/llvm-tv/ItemDisplayer.h
deleted file mode 100644
index f8b8903..0000000
--- a/television/tools/llvm-tv/ItemDisplayer.h
+++ /dev/null
@@ -1,30 +0,0 @@
-//===-- ItemDisplayer.h - Interface for tabbed-view components --*- C++ -*-===//
-//
-// The interface for tabbed views.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ITEMDISPLAYER_H
-#define ITEMDISPLAYER_H
-
-#include <string>
-
-class TVTreeItemData;
-class wxWindow;
-
-class ItemDisplayer {
- public:
-  virtual void displayItem (TVTreeItemData *item) = 0;
-
-  /// getWindow - ItemDisplayers are responsible for explicitly keeping track of
-  /// whatever "window" they are displaying the item into.
-  ///
-  virtual wxWindow *getWindow () = 0;
-
-  /// getDisplayTitle - Return a title appropriate for when this
-  /// ItemDisplayer displays the given item, or if item is NULL, any item.
-  ///
-  virtual std::string getDisplayTitle (TVTreeItemData *item) = 0;
-};
-
-#endif // ITEMDISPLAYER_H
diff --git a/television/tools/llvm-tv/MakeMacOSBundle b/television/tools/llvm-tv/MakeMacOSBundle
deleted file mode 100755
index 7de0dbd..0000000
--- a/television/tools/llvm-tv/MakeMacOSBundle
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# make a MacOS bundle llvm-tv.app used to encapsulate llvm-tv
-# brg Tue Apr 27 15:10:22 CDT 2004
-#
-APP="$1"
-WX="$2"
-BINARY="$3"
-make_dir () {
-  dir=$1
-  if [ ! -d $dir ]
-  then
-    mkdir $dir
-  fi
-}
-make_dir ${APP}.app
-CONTENTS=${APP}.app/Contents
-make_dir $CONTENTS
-make_dir ${CONTENTS}/MacOS
-make_dir ${CONTENTS}/Resources
-# don't know what we need this for...
-#/Developer/Tools/Rez -t APPL Carbon.r $WX/lib/libwx_macd-2.4.0.r -o $APP
-cp $BINARY ${CONTENTS}/MacOS/${APP}
-sed -e "s/IDENTIFIER/llvm-tv/" \
-    -e "s/EXECUTABLE/$APP/" \
-    -e "s/VERSION/1.0/" $WX/src/mac/Info.plist.in > ${CONTENTS}/Info.plist
-echo -n "APPL????" > ${CONTENTS}/PkgInfo
-cp $WX/lib/libwx_macd-2.4.0.rsrc ${CONTENTS}/Resources/${APP}.rsrc
-cp $WX/src/mac/wxmac.icns ${CONTENTS}/Resources/wxmac.icns
-exit 0
diff --git a/television/tools/llvm-tv/Makefile b/television/tools/llvm-tv/Makefile
deleted file mode 100644
index eaec9aa..0000000
--- a/television/tools/llvm-tv/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-LEVEL = ../..
-TOOLNAME = llvm-tv
-LLVMLIBS = LLVMAnalysis.a LLVMBCReader LLVMBCWriter LLVMDataStructure \
-           LLVMipa.a LLVMSupport.a LLVMTarget.a LLVMCore LLVMTransformUtils.a \
-           LLVMSystem.a LLVMbzip2
-
-# note: delete when FileUtils is assimilated into libsupport
-USEDLIBS = LLVMTVSnapshot
-
-CPPFLAGS = $(shell wx-config --cflags)
-TOOLLINKOPTSB = $(shell wx-config --libs)
-WXDIR = $(shell wx-config --prefix)
-WXLIB = $(WXDIR)/lib
-
-include $(LEVEL)/Makefile.common
-
-all :: $(LLVMToolDir)/llvm-tv.exe \
-       $(LLVMToolDir)/opt-snap
-
-LLVMTV = $(PROJ_OBJ_ROOT)/Debug/bin/llvm-tv
-
-$(LLVMToolDir)/llvm-tv.exe: Makefile
-	echo exec env LD_LIBRARY_PATH=$(WXLIB):\$$LD_LIBRARY_PATH $(LLVMTV) \
-		"2&>1 > /dev/null" > $@
-	chmod u+x $@
-
-$(LLVMToolDir)/opt-snap: Makefile
-	echo exec env LD_LIBRARY_PATH=$(WXLIB):\$$LD_LIBRARY_PATH \
-		OPTPASSES=\"$$\*\" opt -load=$(LibDir)/libLLVMTVSnapshot.so $$\* > $@
-	chmod u+x $@
-
-ifeq ($(OS),Darwin)
-all :: mac-app
-clean :: clean-mac-app
-endif
-
-mac-app:
-	@./MakeMacOSBundle llvm-tv "$(WXDIR)" "$(LLVMToolDir)/llvm-tv"
-
-clean-mac-app:
-	rm -rf llvm-tv.app
diff --git a/television/tools/llvm-tv/PictureCanvas.cpp b/television/tools/llvm-tv/PictureCanvas.cpp
deleted file mode 100644
index 7124bfd..0000000
--- a/television/tools/llvm-tv/PictureCanvas.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "wx/image.h"
-#include "PictureCanvas.h"
-
-//===----------------------------------------------------------------------===//
-
-// PictureCanvas implementation
-
-BEGIN_EVENT_TABLE (PictureCanvas, wxScrolledWindow)
-END_EVENT_TABLE ()
-
-void PictureCanvas::OnDraw (wxDC &aDC) {
-  if (!myBitmap) return;
-  aDC.DrawBitmap (*myBitmap, 0, 0, false);
-}
-
-void PictureCanvas::imageChanged () {
-  if (myBitmap)
-    delete myBitmap; // Don't leak memory.
-
-  if (!myImage)
-    return; // Maybe there isn't a new image.
-
-  myBitmap = new wxBitmap (*myImage);
-  SetVirtualSize (myImage->GetWidth (), myImage->GetHeight ());
-  SetScrollRate (1, 1);
-  if (wxFrame *frame = dynamic_cast<wxFrame *> (GetParent ())) {
-    frame->SetSizeHints (-1, -1, myImage->GetWidth (), myImage->GetHeight ());
-    frame->Refresh ();
-  }
-}
diff --git a/television/tools/llvm-tv/PictureCanvas.h b/television/tools/llvm-tv/PictureCanvas.h
deleted file mode 100644
index 0985e5a..0000000
--- a/television/tools/llvm-tv/PictureCanvas.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- PictureCanvas.h - Host of graph images -------------------*- C++ -*-==//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// Visual pane for viewing analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PICTURECANVAS_H
-#define PICTURECANVAS_H
-
-#include "wx/wx.h"
-#include <iostream>
-#include <functional>
-
-//===----------------------------------------------------------------------===//
-
-// PictureCanvas interface
-
-class PictureCanvas : public wxScrolledWindow {
-  wxImage *myImage;
-  wxBitmap *myBitmap;
-
-  void imageChanged ();
- public:
-  PictureCanvas ()
-    : wxScrolledWindow (0), myImage (0), myBitmap (0) {
-  }
-  PictureCanvas (wxWindow *parent, wxImage *image = 0)
-    : wxScrolledWindow (parent), myImage (image), myBitmap (0) {
-    imageChanged ();
-  }
-  void SetImage (wxImage *img) { myImage = img; imageChanged (); }
-  void OnDraw (wxDC &aDC);
-
-  DECLARE_EVENT_TABLE ()
-};
-
-#endif // PICTURECANVAS_H
diff --git a/television/tools/llvm-tv/PictureFrame.cpp b/television/tools/llvm-tv/PictureFrame.cpp
deleted file mode 100644
index 9b4dd51..0000000
--- a/television/tools/llvm-tv/PictureFrame.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "PictureFrame.h"
-#include "TVApplication.h"
-
-// PictureFrame implementation
-
-bool PictureFrame::OnClose (wxCloseEvent &event) {
-  myApp->GoodbyeFrom (this);
-  Destroy ();
-  return true;
-}
-
-BEGIN_EVENT_TABLE (PictureFrame, wxFrame)
-  EVT_CLOSE (PictureFrame::OnClose)
-END_EVENT_TABLE ()
diff --git a/television/tools/llvm-tv/PictureFrame.h b/television/tools/llvm-tv/PictureFrame.h
deleted file mode 100644
index 7ae2aa6..0000000
--- a/television/tools/llvm-tv/PictureFrame.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- PictureFrame.h - Window containing PictureCanvas ---------*- C++ -*-==//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// Window container for PictureCanvas objects.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PICTUREFRAME_H
-#define PICTUREFRAME_H
-
-#include "PictureCanvas.h"
-#include "wx/wx.h"
-
-class TVApplication;
-
-/// PictureFrame - just a window that contains a PictureCanvas.
-///
-class PictureFrame : public wxFrame {
-  TVApplication *myApp;
-  void setupAppearance () {
-    SetSize (wxRect (200, 200, 300, 300));
-    Show (TRUE);
-  }
- public:
-  PictureFrame (TVApplication *app, const char *windowTitle = "")
-    : wxFrame (NULL, -1, windowTitle), myApp (app) {
-    setupAppearance ();
-  }
-  bool OnClose (wxCloseEvent &event);
-  DECLARE_EVENT_TABLE ()
-};
-
-#endif // PICTUREFRAME_H
diff --git a/television/tools/llvm-tv/TVApplication.cpp b/television/tools/llvm-tv/TVApplication.cpp
deleted file mode 100644
index 3193b7b..0000000
--- a/television/tools/llvm-tv/TVApplication.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//===-- TVApplication.cpp - Main application class for llvm-tv ------------===//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CodeViewer.h"
-#include "TVApplication.h"
-#include "TVFrame.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Config.h"
-#include <wx/image.h>
-#include <cerrno>
-#include <iostream>
-#include <fstream>
-#include <functional>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-///==---------------------------------------------------------------------==///
-
-static TVApplication *TheApp;
-
-void sigHandler(int sigNum) {
-  TheApp->ReceivedSignal();
-}
-
-void TVApplication::ReceivedSignal () {
-  // Whenever we catch our prearranged signal, refresh the snapshot list.
-  myFrame->refreshSnapshotList();
-}
-
-/// FatalErrorBox - pop up an error message and quit.
-///
-void FatalErrorBox (const std::string msg) {
-  wxMessageBox(msg.c_str (), "Fatal Error", wxOK | wxICON_ERROR);
-  exit (1);
-}
-
-static void setUpMenus (wxFrame *frame) {
-  wxMenuBar *menuBar = new wxMenuBar ();
-
-  wxMenu *fileMenu = new wxMenu ("", 0);
-  fileMenu->Append (wxID_OPEN, "Add module...");
-  fileMenu->Append (LLVM_TV_REFRESH, "Refresh list");
-  fileMenu->Append (wxID_EXIT, "Quit");
-  menuBar->Append (fileMenu, "File");
-
-  wxMenu *viewMenu = new wxMenu ("", 0);
-  viewMenu->Append (LLVM_TV_CALLGRAPHVIEW, "View call graph");
-  viewMenu->Append (LLVM_TV_CFGVIEW, "View control-flow graph");
-  viewMenu->Append (LLVM_TV_BUDS_VIEW, "View BU datastructure graph");
-  viewMenu->Append (LLVM_TV_TDDS_VIEW, "View TD datastructure graph");
-  viewMenu->Append (LLVM_TV_LOCALDS_VIEW, "View Local datastructure graph");
-  viewMenu->Append (LLVM_TV_CODEVIEW, "View code (interactive)");
-  menuBar->Append (viewMenu, "View");
-
-  wxMenu *helpMenu = new wxMenu ("", 0);
-  helpMenu->Append (wxID_HELP_CONTENTS, "Help with LLVM-TV");
-  helpMenu->Append (wxID_ABOUT, "About LLVM-TV");
-  menuBar->Append (helpMenu, "Help");
-
-  frame->SetMenuBar (menuBar);
-}
-
-IMPLEMENT_APP (TVApplication)
-
-/// saveMyPID - Save my process ID into a temporary file.
-static void saveMyPID () {
-  EnsureDirectoryExists (llvmtvPath);
-
-  std::ofstream pidFile (llvmtvPID.c_str ());
-  if (pidFile.good () && pidFile.is_open ()) {
-    pidFile << getpid ();
-    pidFile.close ();
-  } else {
-    std::cerr << "Warning: could not save PID into " << llvmtvPID << "\n";
-  }
-}
-
-// eraseMyPID - Erase the PID file created by saveMyPID.
-static void eraseMyPID () {
-  unlink (llvmtvPID.c_str ());
-}
-
-void TVApplication::GoodbyeFrom (wxWindow *dyingWindow) {
-  std::vector<wxWindow *>::iterator where =
-    find (allMyWindows.begin(), allMyWindows.end(), dyingWindow);
-  if (where != allMyWindows.end ())
-    allMyWindows.erase (where);
-}
-
-void TVApplication::Quit () {
-  // Destroy all the picture windows, then the toplevel window.
-  for_each (allMyWindows.begin (), allMyWindows.end (),
-            std::mem_fun (&wxWindow::Destroy));
-  myFrame->Destroy ();
-}
-
-bool TVApplication::OnInit () {
-  // Save my PID into the file where the snapshot-making pass knows to
-  // look for it.
-  saveMyPID ();
-  atexit (eraseMyPID);
-
-  wxInitAllImageHandlers ();
-
-  // Build top-level window.
-  myFrame = new TVFrame (this, "LLVM Visualizer");
-  SetTopWindow (myFrame);
-
-  // Build top-level window's menu bar.
-  setUpMenus (myFrame);
-
-  // Read the snapshot list out of the given directory,
-  // and load the snapshot list view into the frame.
-  EnsureDirectoryExists (snapshotsPath);
-  
-  snapshotList = new TVSnapshotList(snapshotsPath);
-  
-  myFrame->initializeSnapshotListAndView();
-
-  // Set up signal handler so that we can get notified when
-  // the -snapshot pass hands us new snapshot bytecode files.
-  TheApp = this;
-  signal(SIGUSR1, sigHandler);
-
-  return true;
-}
diff --git a/television/tools/llvm-tv/TVApplication.h b/television/tools/llvm-tv/TVApplication.h
deleted file mode 100644
index 06624fe..0000000
--- a/television/tools/llvm-tv/TVApplication.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- TVApplication.h - Main application class for llvm-tv -----*- C++ -*--=//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVAPPLICATION_H
-#define TVAPPLICATION_H
-
-#include "TVSnapshotList.h"
-#include "wx/wx.h"
-#include <string>
-#include <vector>
-
-///==---------------------------------------------------------------------==///
-
-namespace llvm {
-  class Function;
-  class Module;
-}
-
-class TVFrame;
-class TVTreeItemData;
-class ItemDisplayer;
-
-
-/// FatalErrorBox - pop up an error message and quit.
-///
-void FatalErrorBox (const std::string msg);
-
-/// TVApplication - This class shows a window containing a status bar and a menu
-/// bar, and a list of files from a directory, that can be refreshed
-/// using a menu item.
-///
-class TVApplication : public wxApp {
-  TVFrame *myFrame;
-  std::vector<wxWindow *> allMyWindows;
-  std::vector<ItemDisplayer *> allMyDisplayers;
-  TVSnapshotList *snapshotList;
-
-public:
-  bool OnInit ();
-  void GoodbyeFrom (wxWindow *dyingWindow);
-  void ReceivedSignal ();
-  template <class Grapher> void OpenGraphView(TVTreeItemData *item);
-  void Quit ();
-  TVSnapshotList* getSnapshotList() { return snapshotList; }
-};
-
-DECLARE_APP (TVApplication)
-
-#endif // TVAPPLICATION_H
diff --git a/television/tools/llvm-tv/TVFrame.cpp b/television/tools/llvm-tv/TVFrame.cpp
deleted file mode 100644
index 0b68b2c..0000000
--- a/television/tools/llvm-tv/TVFrame.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-//===-- TVFrame.cpp - Main window class for LLVM-TV -----------------------===//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CallGraphDrawer.h"
-#include "CFGGraphDrawer.h"
-#include "CodeViewer.h"
-#include "DSAGraphDrawer.h"
-#include "PictureFrame.h"
-#include "TVApplication.h"
-#include "TVFrame.h"
-#include "TVTextCtrl.h"
-#include "TVTreeItem.h"
-#include "llvm-tv/Config.h"
-#include <cassert>
-#include <dirent.h>
-#include <errno.h>
-#include <sstream>
-
-/// TreeCtrl constructor - creates the root and adds it to the tree
-///
-TVTreeCtrl::TVTreeCtrl(wxWindow *parent, TVFrame *frame, const wxWindowID id,
-                       const wxPoint& pos, const wxSize& size,
-                       long style)
-  : wxTreeCtrl(parent, id, pos, size, style), myFrame (frame) {
-  wxTreeItemId rootId = AddRoot("Snapshots", -1, -1,TVTreeRootItem::instance());
-}
-
-/// AddSnapshotsToTree - Given a list of snapshots the tree is populated
-///
-void TVTreeCtrl::AddSnapshotsToTree(TVSnapshotList *list) {
-  wxTreeItemId rootId = GetRootItem();
-  for (TVSnapshotList::iterator I = list->begin(), E = list->end();
-       I != E; ++I) {
-    // Get the Module associated with this snapshot and add it to the tree
-    Module *M = I->getModule();
-    wxTreeItemId id = AppendItem(rootId, I->label(), -1, -1,
-                                 new TVTreeModuleItem(I->label(), M));
-
-    // Loop over functions in the module and add them to the tree as children
-    for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) {
-      Function *F = I;
-      if (!F->isExternal()) {
-        const char *FuncName = F->getName().c_str();
-        AppendItem(id, FuncName, -1, -1, new TVTreeFunctionItem(FuncName, I));
-      }
-    }
-  }   
-}
-
-/// updateSnapshotList - Update the tree with the current snapshot list
-///
-void TVTreeCtrl::updateSnapshotList(TVSnapshotList *myList) {
-  DeleteChildren(GetRootItem());
-  AddSnapshotsToTree(myList);
-}
-
-/// GetSelectedItemData - Return the currently-selected visualizable
-/// object (TVTreeItemData object).
-///
-TVTreeItemData *TVTreeCtrl::GetSelectedItemData () {
-  return dynamic_cast<TVTreeItemData *> (GetItemData (GetSelection ()));
-}
-
-/// OnSelChanged - Inform the parent frame that the selection has changed,
-/// and pass the newly selected item to it.
-///
-void TVTreeCtrl::OnSelChanged(wxTreeEvent &event) {
-  myFrame->updateDisplayedItem (GetSelectedItemData ());
-}
-
-BEGIN_EVENT_TABLE(TVTreeCtrl, wxTreeCtrl)
-  EVT_TREE_SEL_CHANGED(LLVM_TV_TREE_CTRL, TVTreeCtrl::OnSelChanged)
-END_EVENT_TABLE ()
-
-///==---------------------------------------------------------------------==///
-
-void TVTextCtrl::displayItem (TVTreeItemData *item) {
-  std::ostringstream Out;
-  item->print (Out);
-  myTextCtrl->SetValue ("");
-  myTextCtrl->AppendText (Out.str ().c_str ());
-  myTextCtrl->ShowPosition (0);
-  myTextCtrl->SetInsertionPoint (0);
-}
-
-///==---------------------------------------------------------------------==///
-
-/// updateDisplayedItem - Updates right-hand pane with a view of the item that
-/// is now selected.
-///
-void TVFrame::updateDisplayedItem (TVTreeItemData *newlySelectedItem) {
-  // Tell the current visualizer widget to display the selected
-  // LLVM object in its window, which is displayed inside the notebook.
-  assert (newlySelectedItem
-          && "newlySelectedItem was null in updateDisplayedItem()");
-  notebook->SetSelectedItem (newlySelectedItem);
-}
-
-void TVFrame::refreshSnapshotList () {
-  
-  if (!myApp->getSnapshotList()->refreshList())
-    FatalErrorBox ("trying to open directory " + myApp->getSnapshotList()->getSnapshotDirName() + ": "
-                   + strerror(errno));
-  if (myTreeCtrl != 0)
-    myTreeCtrl->updateSnapshotList(myApp->getSnapshotList());
-}
-
-void TVFrame::initializeSnapshotListAndView () {
-  refreshSnapshotList ();
-  SetStatusText ("Snapshot list has been loaded.");
-}
-
-//==------------------------------------------------------------------------==//
-
-void TVNotebook::displaySelectedItemOnPage (int page) {
-  if (selectedItem)
-    displayers[page]->displayItem (selectedItem);
-}
-
-void TVNotebook::SetSelectedItem (TVTreeItemData *newSelectedItem) {
-  selectedItem = newSelectedItem;
-  displaySelectedItemOnPage (GetSelection ());
-}
-
-bool TVNotebook::AddItemDisplayer (ItemDisplayer *displayer) {
-  int pageIndex = GetPageCount ();
-  displayers.resize (1 + pageIndex);
-  displayers[pageIndex] = displayer;
-  return AddPage (displayer->getWindow (),
-                  displayer->getDisplayTitle (0).c_str (), true);
-}
-
-void TVNotebook::OnSelChanged (wxNotebookEvent &event) {
-  int newPage = event.GetSelection ();
-  displayers[newPage]->getWindow ()->SetSizeHints (-1, -1, -1, -1, -1, -1);
-  displaySelectedItemOnPage (newPage);
-  event.Skip ();
-}
-
-BEGIN_EVENT_TABLE (TVNotebook, wxNotebook)
-  EVT_NOTEBOOK_PAGE_CHANGED(LLVM_TV_NOTEBOOK, TVNotebook::OnSelChanged)
-END_EVENT_TABLE ()
-
-//==------------------------------------------------------------------------==//
-
-static const wxString Explanation
-  ("Click on a Module or Function in the left-hand pane\n"
-   "to display its code in the right-hand pane. Then, you\n"
-   "can choose from the View menu to see graphical code views.\n"); 
-
-/// TVFrame constructor - used to set up typical appearance of visualizer's
-/// top-level window.
-///
-TVFrame::TVFrame (TVApplication *app, const char *title)
-  : wxFrame (NULL, -1, title), myApp (app) {
-  // Set up appearance
-  CreateStatusBar ();
-  SetSize (wxRect (100, 100, 500, 200));
-  Show (FALSE);
-  splitterWindow = new wxSplitterWindow(this, LLVM_TV_SPLITTER_WINDOW,
-                                        wxDefaultPosition, wxDefaultSize,
-                                        wxSP_3D);
-
-  // Create tree view of snapshots
-  myTreeCtrl = new TVTreeCtrl(splitterWindow, this, LLVM_TV_TREE_CTRL);
-  Resize();
-
-  // Create right-hand pane's display widget and stick it in a notebook control.
-  notebook = new TVNotebook (splitterWindow);
-  notebook->AddItemDisplayer (new TVTextCtrl (notebook, Explanation));
-  notebook->AddItemDisplayer (new TDGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new BUGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new LocalGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new TVCodeViewer (notebook));
-
-  // Split window vertically
-  splitterWindow->SplitVertically(myTreeCtrl, notebook, 200);
-  Show (TRUE);
-}
-
-/// OnHelp - display the help dialog
-///
-void TVFrame::OnHelp (wxCommandEvent &event) {
-  wxMessageBox (Explanation, "Help with LLVM-TV");
-}
-
-/// OnExit - respond to a request to exit the program.
-///
-void TVFrame::OnExit (wxCommandEvent &event) {
-  myApp->Quit ();
-}
-
-/// OnExit - respond to a request to display the About box.
-///
-void TVFrame::OnAbout (wxCommandEvent &event) {
-  wxMessageBox("LLVM Visualization Tool\n\n"
-               "By Misha Brukman, Tanya Brethour, and Brian Gaeke\n"
-               "Copyright (C) 2004 University of Illinois at Urbana-Champaign\n"
-               "http://llvm.cs.uiuc.edu", "About LLVM-TV");
-}
-
-/// OnRefresh - respond to a request to refresh the list
-///
-void TVFrame::OnRefresh (wxCommandEvent &event) {
-  refreshSnapshotList ();
-}
-
-void TVFrame::OnOpen (wxCommandEvent &event) {
-  wxFileDialog d (this, "Choose a bytecode file to display");
-  int result = d.ShowModal ();
-  if (result == wxID_CANCEL) return;
-  // FIXME: the rest of this method can be moved into the "snapshots
-  // list" object
-  std::string command = std::string("cp ") + std::string(d.GetPath ().c_str ()) + " " + snapshotsPath;
-  system (command.c_str ());
-  refreshSnapshotList ();
-}
-
-void TVFrame::Resize() {
-  wxSize size = GetClientSize();
-  myTreeCtrl->SetSize(0, 0, size.x, 2*size.y/3);
-}
-
-// This method of TVApplication is placed in this file so that it can
-// be instantiated by all its callers.
-template<class Grapher>
-void TVApplication::OpenGraphView (TVTreeItemData *item) {
-  PictureFrame *wind = new PictureFrame (this);
-  allMyWindows.push_back (wind);
-  ItemDisplayer *drawer = new Grapher (wind);
-  wind->SetTitle (drawer->getDisplayTitle (item).c_str ());
-  allMyDisplayers.push_back (drawer);
-  drawer->displayItem (item);
-}
-
-void TVFrame::CallGraphView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new call graph view window.
-  myApp->OpenGraphView<CallGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::CFGView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new CFG view window.
-  myApp->OpenGraphView<CFGGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::BUDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new BUDS view window.
-  myApp->OpenGraphView<BUGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::TDDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new TDDS view window.
-  myApp->OpenGraphView<TDGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::LocalDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new Local DS view window.
-  myApp->OpenGraphView<LocalGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::CodeView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new CodeViewer window.
-  myApp->OpenGraphView<TVCodeViewer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-BEGIN_EVENT_TABLE (TVFrame, wxFrame)
-  EVT_MENU (wxID_OPEN, TVFrame::OnOpen)
-  EVT_MENU (LLVM_TV_REFRESH, TVFrame::OnRefresh)
-  EVT_MENU (wxID_EXIT, TVFrame::OnExit)
-
-  EVT_MENU (wxID_HELP_CONTENTS, TVFrame::OnHelp)
-  EVT_MENU (wxID_ABOUT, TVFrame::OnAbout)
-
-  EVT_MENU (LLVM_TV_CALLGRAPHVIEW, TVFrame::CallGraphView)
-  EVT_MENU (LLVM_TV_CFGVIEW, TVFrame::CFGView)
-  EVT_MENU (LLVM_TV_BUDS_VIEW, TVFrame::BUDSView)
-  EVT_MENU (LLVM_TV_TDDS_VIEW, TVFrame::TDDSView)
-  EVT_MENU (LLVM_TV_LOCALDS_VIEW, TVFrame::LocalDSView)
-  EVT_MENU (LLVM_TV_CODEVIEW, TVFrame::CodeView)
-END_EVENT_TABLE ()
diff --git a/television/tools/llvm-tv/TVFrame.h b/television/tools/llvm-tv/TVFrame.h
deleted file mode 100644
index 4b9512a..0000000
--- a/television/tools/llvm-tv/TVFrame.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//===-- TVFrame.h - Main window class for llvm-tv ----------------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVFRAME_H
-#define TVFRAME_H
-
-#include "TVSnapshotList.h"
-#include "TVWindowIDs.h"
-#include "wx/wx.h"
-#include "wx/listctrl.h"
-#include "wx/splitter.h"
-#include "wx/treectrl.h"
-#include "wx/notebook.h"
-#include "ItemDisplayer.h"
-#include <string>
-#include <vector>
-
-/// TVTreeCtrl - A specialization of wxTreeCtrl that displays a list of LLVM
-/// Modules and Functions from a snapshot
-///
-class TVFrame;
-class TVTreeCtrl : public wxTreeCtrl {
-  TVFrame *myFrame;
-public:
-  TVTreeCtrl::TVTreeCtrl(wxWindow *parent, TVFrame *frame, const wxWindowID id,
-                         const wxPoint& pos = wxDefaultPosition,
-                         const wxSize& size = wxDefaultSize,
-                         long style = wxTR_HIDE_ROOT | wxTR_DEFAULT_STYLE
-                                    | wxSUNKEN_BORDER);
-  virtual ~TVTreeCtrl() { }
-  void AddSnapshotsToTree(TVSnapshotList*);
-  void updateSnapshotList(TVSnapshotList*);
-  void OnSelChanged(wxTreeEvent &event);
-  TVTreeItemData *GetSelectedItemData ();
-
-  DECLARE_EVENT_TABLE();
-};
-
-///==---------------------------------------------------------------------==///
-
-/// TVNotebook - The class which is responsible for the "tab view"
-/// containing visualizers, which appears on the right-hand side
-/// of the main LLVM-TV window.
-///
-class TVNotebook : public wxNotebook {
-  std::vector<ItemDisplayer *> displayers;
-  TVTreeItemData *selectedItem;
-
-  void displaySelectedItemOnPage (int page);
-public:
-  TVNotebook (wxWindow *_parent)
-    : wxNotebook (_parent, LLVM_TV_NOTEBOOK) { }
-  void OnSelChanged (wxNotebookEvent &event);
-  bool AddItemDisplayer (ItemDisplayer *displayWidget);
-  void SetSelectedItem (TVTreeItemData *newSelectedItem);
-  DECLARE_EVENT_TABLE ()
-};
-
-///==---------------------------------------------------------------------==///
-
-/// TVFrame - The main application window for LLVM-TV, which is responsible
-/// for displaying the tree view, tab view, status bar, and menu bar.
-///
-class TVApplication;
-class TVFrame : public wxFrame {
-  TVApplication *myApp;
-  
-  wxSplitterWindow *splitterWindow; // divides this into left & right sides
-  TVTreeCtrl *myTreeCtrl;           // left side - displays tree view of module
-  TVNotebook *notebook;             // right side - tab views w/ item displayers
-
-  void Resize();
- public:
-  TVFrame (TVApplication *app, const char *title);
-  void OnExit (wxCommandEvent &event);
-  void CallGraphView (wxCommandEvent &event);
-  void CFGView (wxCommandEvent &event);
-  void BUDSView (wxCommandEvent &event);
-  void TDDSView (wxCommandEvent &event);
-  void LocalDSView (wxCommandEvent &event);
-  void CodeView (wxCommandEvent &event);
-  void OnAbout (wxCommandEvent &event);
-  void OnHelp (wxCommandEvent &event);
-  void OnOpen (wxCommandEvent &event);
-  void OnRefresh (wxCommandEvent &event);
-  void CreateTree(long style, std::vector<TVSnapshot>&);
-  void refreshSnapshotList ();
-  void initializeSnapshotListAndView ();
-  void updateDisplayedItem (TVTreeItemData *newlyDisplayedItem);
-
-  DECLARE_EVENT_TABLE ();
-};
-
-#endif // TVFRAME_H
diff --git a/television/tools/llvm-tv/TVHtmlWindow.h b/television/tools/llvm-tv/TVHtmlWindow.h
deleted file mode 100644
index 045dc17..0000000
--- a/television/tools/llvm-tv/TVHtmlWindow.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef TVHTMLWINDOW_H
-#define TVHTMLWINDOW_H
-
-#include "TVWindowIDs.h"
-#include "ItemDisplayer.h"
-#include "wx/html/htmlwin.h"
-
-class TVHtmlWindow : public ItemDisplayer {
-  wxHtmlWindow *myHtmlWindow;
- public:
-  TVHtmlWindow (wxWindow *_parent, const wxString &_init = "") {
-    myHtmlWindow = new wxHtmlWindow (_parent, LLVM_TV_HTML_WINDOW);
-    myHtmlWindow->AppendToPage (_init);
-  }
-  void displayItem (TVTreeItemData *item);
-  wxWindow *getWindow () { return myHtmlWindow; }
-  std::string getDisplayTitle (TVTreeItemData *item) { return "HTML view"; }
-};
-
-#endif // TVHTMLWINDOW_H
diff --git a/television/tools/llvm-tv/TVSnapshot.cpp b/television/tools/llvm-tv/TVSnapshot.cpp
deleted file mode 100644
index 64b91f8..0000000
--- a/television/tools/llvm-tv/TVSnapshot.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "TVSnapshot.h"
-#include "llvm/Bytecode/Reader.h"
-#include "llvm-tv/Config.h"
-using namespace llvm;
-
-void TVSnapshot::readBytecodeFile () {
-  std::string errorStr;
-  M = ParseBytecodeFile (filename, &errorStr);
-  if (!M)
-    throw std::string ("Error reading bytecode from '" + filename + "': "
-                       + errorStr);
-}
-
diff --git a/television/tools/llvm-tv/TVSnapshot.h b/television/tools/llvm-tv/TVSnapshot.h
deleted file mode 100644
index b7f6f37..0000000
--- a/television/tools/llvm-tv/TVSnapshot.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- TVSnapshot.h - Wrapper class for llvm-tv snapshots -------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVSNAPSHOT_H
-#define TVSNAPSHOT_H
-
-#include <string>
-#include <vector>
-#include <libgen.h>
-#include "llvm/Module.h"
-using namespace llvm;
-
-/// TVSnapshot - Wrapper class for snapshots.
-///
-class TVSnapshot {
-  Module *M;
-  std::string filename;
-  std::string myLabel;
-
-  void readBytecodeFile ();
-  void fixLabel () { myLabel = basename ((char*)myLabel.c_str ()) ; }
- public:
-  //TVSnapshot () : M (0), filename (), myLabel (filename) { }
-  TVSnapshot (const std::string &_name) : M (0), filename (_name), myLabel (filename) { fixLabel(); }
-  TVSnapshot (const char *_name) : M (0), filename (_name), myLabel (filename) { fixLabel(); }
-  const char *label () const { return myLabel.c_str (); } 
-  unsigned getTimestamp () const { return (unsigned) strtol (label(), 0, 0); }
-  bool operator < (const TVSnapshot &s) const {
-    return getTimestamp () < s.getTimestamp ();
-  }
-  Module *getModule () {
-    if (!M)
-      readBytecodeFile ();
-    return M;
-  }
-};
-
-#endif // TVSNAPSHOT_H
diff --git a/television/tools/llvm-tv/TVSnapshotList.cpp b/television/tools/llvm-tv/TVSnapshotList.cpp
deleted file mode 100644
index be0a119..0000000
--- a/television/tools/llvm-tv/TVSnapshotList.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- TVSnapshotList.cpp - List of snapshots class for llvm-tv -*- C++ -*--=//
-//
-// Encapsulates a list of snapshots and the directory they are in.
-//
-//===----------------------------------------------------------------------===//
-
-#include "TVSnapshotList.h"
-#include <dirent.h>
-
-
-//Each time this function is called the directory is rescanned
-//for any new snapshots
-bool TVSnapshotList::refreshList() {
-    // re-load the list of snapshots
-    const char *directoryName = mySnapshotDirName.c_str();
-    clearList();
-    DIR *d = opendir(directoryName);
-    if (!d)
-      return false;
-    
-    while (struct dirent *de = readdir (d))
-      if (memcmp(de->d_name, ".", 2) && memcmp(de->d_name, "..", 3))
-	addSnapshot(mySnapshotDirName + "/" + de->d_name);
-    
-    sortList();
-    
-    closedir (d);
-    return true;
-}
-
-//Sort the snapshot list
-void TVSnapshotList::sortList() {
-  sort (mySnapshotList.begin (), mySnapshotList.end ());
-}
-
-
-//Add a snapshot to our vector of snapshots
-void TVSnapshotList::addSnapshot(std::string snapshotName) { 
-  mySnapshotList.push_back(snapshotName); 
-}
-
diff --git a/television/tools/llvm-tv/TVSnapshotList.h b/television/tools/llvm-tv/TVSnapshotList.h
deleted file mode 100644
index f1413e4..0000000
--- a/television/tools/llvm-tv/TVSnapshotList.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//===-- TVSnapshotList.h - List of snapshots class for llvm-tv ---*- C++ -*--=//
-//
-// Encapsulates a list of snapshots and the directory they are in.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVSNAPSHOTLIST_H
-#define TVSNAPSHOTLIST_H
-
-#include <string>
-#include <vector>
-#include "TVSnapshot.h"
-
-/// Containts a list of snapshots and the directory they are in.
-/// Put into a class to easily pass between the application and frame
-///
-class TVSnapshotList {
-  std::vector<TVSnapshot> mySnapshotList;
-  std::string mySnapshotDirName;
-public:
-  TVSnapshotList(std::string dir) :  mySnapshotDirName(dir) {}
-  std::string getSnapshotDirName() { return mySnapshotDirName; }
-  void setSnapshotDirName(std::string dir) { mySnapshotDirName = dir; }
-  void addSnapshot(std::string snapshotName);
-  void clearList() { mySnapshotList.clear(); }
-  void sortList();
-  bool refreshList();
-
-  //Iterators
-  typedef std::vector<TVSnapshot>::iterator iterator;
-  iterator begin() { return mySnapshotList.begin(); }
-  iterator end() { return mySnapshotList.end(); }
-
-};
-
-
-#endif 
diff --git a/television/tools/llvm-tv/TVTextCtrl.h b/television/tools/llvm-tv/TVTextCtrl.h
deleted file mode 100644
index 6ba2d93..0000000
--- a/television/tools/llvm-tv/TVTextCtrl.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef TVTEXTCTRL_H
-#define TVTEXTCTRL_H
-
-#include "TVWindowIDs.h"
-#include "ItemDisplayer.h"
-#include "wx/textctrl.h"
-
-class TVTextCtrl : public ItemDisplayer {
-  wxTextCtrl *myTextCtrl;
- public:
-  TVTextCtrl (wxWindow *_parent, const wxString &_value = "") {
-    myTextCtrl = new wxTextCtrl (_parent, LLVM_TV_TEXT_CTRL, _value,
-      wxDefaultPosition, wxDefaultSize,
-      wxTE_READONLY | wxTE_MULTILINE | wxHSCROLL);
-  }
-  void displayItem (TVTreeItemData *item);
-  wxWindow *getWindow () { return myTextCtrl; }
-  std::string getDisplayTitle (TVTreeItemData *item) { return "Text view"; }
-};
-
-#endif // TVTEXTCTRL_H
diff --git a/television/tools/llvm-tv/TVTreeItem.cpp b/television/tools/llvm-tv/TVTreeItem.cpp
deleted file mode 100644
index 5e8838c..0000000
--- a/television/tools/llvm-tv/TVTreeItem.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "TVTreeItem.h"
-#include "llvm/Module.h"
-using namespace llvm;
-
-static TVTreeRootItem* theInstance = 0;
-
-TVTreeRootItem* TVTreeRootItem::instance() {
-  if (theInstance == 0) {
-    theInstance = new TVTreeRootItem("Snapshot Root");
-  }
-  return theInstance;
-}
-
-void TVTreeModuleItem::print(std::ostream &os) {
-  myModule->print(os);
-}
-
-void TVTreeFunctionItem::print(std::ostream &os) { 
-  myFunc->print(os);
-}
-
-std::string TVTreeFunctionItem::getTitle () {
-  return myFunc->getName () + "()";
-}
diff --git a/television/tools/llvm-tv/TVTreeItem.h b/television/tools/llvm-tv/TVTreeItem.h
deleted file mode 100644
index e53c1e7..0000000
--- a/television/tools/llvm-tv/TVTreeItem.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- TVTreeItem.h - Nodes for the tree view -------------------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVTREEITEM_H
-#define TVTREEITEM_H
-
-#include "GraphDrawer.h"
-#include "CodeViewer.h"
-#include <wx/wx.h>
-#include <wx/treectrl.h>
-#include <ostream>
-#include <string>
-
-namespace llvm {
-  class Function;
-  class GlobalValue;
-  class Module;
-}
-
-/// TVTreeItemData - Base class for LLVM TV Tree Data
-///  
-class TVTreeItemData : public wxTreeItemData {
-public:
-  const wxChar *GetDesc() const { return m_desc.c_str(); }
-  virtual void print(std::ostream&) { }
-  virtual wxImage *graphOn(GraphDrawer *grapher) { return 0; }
-  virtual void viewCodeOn(TVCodeViewer *viewer) { }
-  virtual std::string getTitle () { return "an untitled object"; }
-  virtual std::string dsGraphName () { return "graph of " + getTitle (); }
-
-protected:
-  TVTreeItemData(const wxString& desc) : m_desc(desc) { }
-  void printFunctionHeader(llvm::Function *F);
-  void printFunction(llvm::Function *F);
-  void printModule(llvm::Module *M);
-  wxString m_desc;
-};
-
-/// TVTreeRootItem - Tree Item representing root of the hierarchy (Singleton)
-///
-class TVTreeRootItem : public TVTreeItemData {
-public:
-  static TVTreeRootItem* instance();
-protected:
-  TVTreeRootItem(const wxString& desc) : TVTreeItemData(desc) {}
-};
-
-/// TVTreeModuleItem - Tree Item containing a Module
-///  
-class TVTreeModuleItem : public TVTreeItemData {
-private:
-  llvm::Module *myModule;
-public:
-  TVTreeModuleItem(const wxString& desc, llvm::Module *mod) 
-    : TVTreeItemData(desc), myModule(mod) {}
-  
-  void print(std::ostream &out);
-  wxImage *graphOn(GraphDrawer *grapher) {
-    return grapher->drawModuleGraph (myModule);
-  }
-  void viewCodeOn(TVCodeViewer *viewer) { viewer->viewModuleCode (myModule); }
-
-  virtual std::string getTitle () { return m_desc.c_str(); }
-  virtual std::string dsGraphName () { return "globals graph"; }
-};
-
-
-/// TVTreeFunctionItem - Tree Item containing a Function
-///  
-class TVTreeFunctionItem : public TVTreeItemData {
-private:
-  llvm::Function *myFunc;
-public:
-  TVTreeFunctionItem(const wxString& desc, llvm::Function *func)
-    : TVTreeItemData(desc),  myFunc(func) {}
-  
-  void print(std::ostream &out);
-  wxImage *graphOn(GraphDrawer *grapher) {
-    return grapher->drawFunctionGraph (myFunc); 
-  }
-  void viewCodeOn(TVCodeViewer *viewer) { viewer->viewFunctionCode (myFunc); }
-
-  virtual std::string getTitle ();
-};
-
-#endif
diff --git a/television/tools/llvm-tv/TVWindowIDs.h b/television/tools/llvm-tv/TVWindowIDs.h
deleted file mode 100644
index 2d38731..0000000
--- a/television/tools/llvm-tv/TVWindowIDs.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef TVWINDOWIDS_H
-#define TVWINDOWIDS_H
-
-#include "wx/wx.h"
-
-/// Event IDs we use in the application
-///
-enum { 
-  LLVM_TV_REFRESH = wxID_HIGHEST + 1,
-  LLVM_TV_TREE_CTRL,
-  LLVM_TV_TEXT_CTRL,
-  LLVM_TV_HTML_WINDOW,
-  LLVM_TV_SPLITTER_WINDOW,
-  LLVM_TV_CALLGRAPHVIEW,
-  LLVM_TV_CFGVIEW,
-  LLVM_TV_BUDS_VIEW,
-  LLVM_TV_TDDS_VIEW,
-  LLVM_TV_LOCALDS_VIEW,
-  LLVM_TV_CODEVIEW,
-  LLVM_TV_CODEVIEW_LIST,
-  LLVM_TV_NOTEBOOK
-};
-
-#endif // TVWINDOWIDS_H