#! /bin/sh

# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.12 
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.

# Defaults:
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
--enable-extension=<ext>"
ac_help="$ac_help
--enable-sizeof-short=<short size>"
ac_help="$ac_help
--enable-sizeof-int=<int size>"
ac_help="$ac_help
--enable-sizeof-long=<long size>"
ac_help="$ac_help
--enable-force-cross forces cross compile mode"
ac_help="$ac_help
--disable-namespaces turns off namespace support"
ac_help="$ac_help
--disable-exceptions turns off exception handling support"
ac_help="$ac_help
--disable-mutable turns off mutable support"
ac_help="$ac_help
--disable-default-template-arg turns off default template arguments"
ac_help="$ac_help
--disable-derived-default-template-arg turns off derived default template arguments"
ac_help="$ac_help
--disable-partial-template-function-specialise turns off support for partial function template specialisation."
ac_help="$ac_help
--disable-ms-windows turns off native MS Windows support (when available)"
ac_help="$ac_help
--disable-threads turns off multi-threading support (when available)"
ac_help="$ac_help
--disable-wstring turns off wide character string support"
ac_help="$ac_help
--disable-member-templates turns off member template class and function support"
ac_help="$ac_help
--disable-template-returns turns off support for templates specialised by return type"
ac_help="$ac_help
--disable-int64 turns off support for 64-bit integer types"
ac_help="$ac_help
--disable-messages turns off support for POSIX message categories, when available."
ac_help="$ac_help
--disable-specialise turns off use of template<> as the template class specialisation syntax."
ac_help="$ac_help
--disable-nested-template-prefix turns off use of \"template\" as the nested template class access specifier."
ac_help="$ac_help
--disable-fastcall turns off use __fastcall and __stdcall."
ac_help="$ac_help
--disable-stl turns off use of the C++ standard library."

# Initialize some variables set by options.
# The variables have the same names as the options, with
# dashes changed to underlines.
build=NONE
cache_file=./config.cache
exec_prefix=NONE
host=NONE
no_create=
nonopt=NONE
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
target=NONE
verbose=
x_includes=NONE
x_libraries=NONE
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'

# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12

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

  case "$ac_option" in
  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) ac_optarg= ;;
  esac

  # 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 ;;
  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
    build="$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" ;;

  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
    ac_prev=datadir ;;
  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
  | --da=*)
    datadir="$ac_optarg" ;;

  -disable-* | --disable-*)
    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
    fi
    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
    eval "enable_${ac_feature}=no" ;;

  -enable-* | --enable-*)
    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
    fi
    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
    case "$ac_option" in
      *=*) ;;
      *) 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)
    # 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 << EOF
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
  --cache-file=FILE       cache test results in FILE
  --help                  print this message
  --no-create             do not create output files
  --quiet, --silent       do not print \`checking...' messages
  --version               print the version of autoconf that created configure
Directory and file names:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [same as prefix]
  --bindir=DIR            user executables in DIR [EPREFIX/bin]
  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
  --datadir=DIR           read-only architecture-independent data in DIR
                          [PREFIX/share]
  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
                          [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
  --includedir=DIR        C header files in DIR [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
  --infodir=DIR           info documentation in DIR [PREFIX/info]
  --mandir=DIR            man documentation in DIR [PREFIX/man]
  --srcdir=DIR            find the sources in DIR [configure dir or ..]
  --program-prefix=PREFIX prepend PREFIX to installed program names
  --program-suffix=SUFFIX append SUFFIX to installed program names
  --program-transform-name=PROGRAM
                          run sed PROGRAM on installed program names
EOF
    cat << EOF
Host type:
  --build=BUILD           configure for building on BUILD [BUILD=HOST]
  --host=HOST             configure for HOST [guessed]
  --target=TARGET         configure for TARGET [TARGET=HOST]
Features and packages:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --x-includes=DIR        X include files are in DIR
  --x-libraries=DIR       X library files are in DIR
EOF
    if test -n "$ac_help"; then
      echo "--enable and --with options recognized:$ac_help"
    fi
    exit 0 ;;

  -host | --host | --hos | --ho)
    ac_prev=host ;;
  -host=* | --host=* | --hos=* | --ho=*)
    host="$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)
    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 ;;
  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
    target="$ac_optarg" ;;

  -v | -verbose | --verbose | --verbos | --verbo | --verb)
    verbose=yes ;;

  -version | --version | --versio | --versi | --vers)
    echo "configure generated by autoconf version 2.12"
    exit 0 ;;

  -with-* | --with-*)
    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
    fi
    ac_package=`echo $ac_package| sed 's/-/_/g'`
    case "$ac_option" in
      *=*) ;;
      *) ac_optarg=yes ;;
    esac
    eval "with_${ac_package}='$ac_optarg'" ;;

  -without-* | --without-*)
    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
    fi
    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
    ;;

  *)
    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
      echo "configure: warning: $ac_option: invalid host type" 1>&2
    fi
    if test "x$nonopt" != xNONE; then
      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
    fi
    nonopt="$ac_option"
    ;;

  esac
done

if test -n "$ac_prev"; then
  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
fi

trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15

# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 6 checking for... messages and results
# 5 compiler messages saved in config.log
if test "$silent" = yes; then
  exec 6>/dev/null
else
  exec 6>&1
fi
exec 5>./config.log

echo "\
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
" 1>&5

# Strip out --no-create and --no-recursion so they do not pile up.
# Also quote any args containing shell metacharacters.
ac_configure_args=
for ac_arg
do
  case "$ac_arg" in
  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c) ;;
  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
  esac
done

# NLS nuisances.
# Only set these to C if already set.  These must not be set unconditionally
# because not all systems understand e.g. LANG=C (notably SCO).
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
# Non-C LC_CTYPE values break the ctype check.
if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi

# 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

# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
ac_unique_file=./include/jm/regex.h

# 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_prog=$0
  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
  else
    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
  fi
fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`

# 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 "loading site script $ac_site_file"
    . "$ac_site_file"
  fi
done

if test -r "$cache_file"; then
  echo "loading cache $cache_file"
  . $cache_file
else
  echo "creating cache $cache_file"
  > $cache_file
fi

ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross

if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
    ac_n= ac_c='
' ac_t='	'
  else
    ac_n=-n ac_c= ac_t=
  fi
else
  ac_n= ac_c='\c' ac_t=
fi



cat >> confdefs.h <<\EOF
#define JM_AUTO_CONFIGURE 
EOF


echo "$ac_t""*** $0: regex++ configuration utility ***" 1>&6
if test "${CXXFLAGS}" = ""; then 
echo "$ac_t""* Note: for best reliability - try \"CXXFLAGS=-treat_warnings_as_errors\" $0 " 1>&6
echo "$ac_t""* Please don't forget specifying typical CXXFLAGS you'll be using - " 1>&6 
echo "$ac_t""* such as that enabling exceptions handling" 1>&6
echo "$ac_t""* Add option forcing instantiation of all templates to CXXFLAGS if possible. " 1>&6
echo "$ac_t""* Add option enabling merging of template instances between translation units" 1>&6
echo "$ac_t""* to CXXFLAGS if possible. " 1>&6
fi
echo "$ac_t""Please stand by while exploring compiler capabilities..." 1>&6
echo "$ac_t""Be patient - this could take some time..." 1>&6
echo "$ac_t""***" 1>&6

# Check whether --enable-extension or --disable-extension was given.
if test "${enable_extension+set}" = set; then
  enableval="$enable_extension"
  
case "$enableval" in
	no) echo "$ac_t""Info :.cpp used as extension for tests" 1>&6 
	    ac_ext=cpp 
      	;;
	 *) echo "$ac_t""Argument : .$enableval used as extension" 1>&6 
	ac_ext=$enableval
esac

else
  echo "$ac_t""Info : .cpp used as extension for tests" 1>&6 
	ac_ext=cpp


fi


# Check whether --enable-sizeof-short or --disable-sizeof-short was given.
if test "${enable_sizeof_short+set}" = set; then
  enableval="$enable_sizeof_short"
  :
else
  enable_sizeof_short=2
fi

# Check whether --enable-sizeof-int or --disable-sizeof-int was given.
if test "${enable_sizeof_int+set}" = set; then
  enableval="$enable_sizeof_int"
  :
else
  enable_sizeof_int=4
fi

# Check whether --enable-sizeof-long or --disable-sizeof-long was given.
if test "${enable_sizeof_long+set}" = set; then
  enableval="$enable_sizeof_long"
  :
else
  enable_sizeof_long=4
fi

# Check whether --enable-force-cross or --disable-force-cross was given.
if test "${enable_force_cross+set}" = set; then
  enableval="$enable_force_cross"
  :
fi



# Save that, as it is being redefined several times 
use_ac_ext=$ac_ext

for ac_prog in $CCC c++ g++ gcc CC cxx cc++
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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:645: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$CXX"; then
  ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_CXX="$ac_prog"
      break
    fi
  done
  IFS="$ac_save_ifs"
fi
fi
CXX="$ac_cv_prog_CXX"
if test -n "$CXX"; then
  echo "$ac_t""$CXX" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

test -n "$CXX" && break
done
test -n "$CXX" || CXX="gcc"


echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
echo "configure:676: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5

ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cxx_cross

cat > conftest.$ac_ext <<EOF
#line 686 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
if { (eval echo configure:690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  ac_cv_prog_cxx_works=yes
  # If we can't run a trivial program, we are probably using a cross compiler.
  if (./conftest; exit) 2>/dev/null; then
    ac_cv_prog_cxx_cross=no
  else
    ac_cv_prog_cxx_cross=yes
  fi
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  ac_cv_prog_cxx_works=no
fi
rm -fr conftest*
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross

echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
if test $ac_cv_prog_cxx_works = no; then
  { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
echo "configure:716: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross

echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
echo "configure:721: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.C <<EOF
#ifdef __GNUC__
  yes;
#endif
EOF
if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:730: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
  ac_cv_prog_gxx=yes
else
  ac_cv_prog_gxx=no
fi
fi

echo "$ac_t""$ac_cv_prog_gxx" 1>&6

if test $ac_cv_prog_gxx = yes; then
  GXX=yes
  ac_test_CXXFLAGS="${CXXFLAGS+set}"
  ac_save_CXXFLAGS="$CXXFLAGS"
  CXXFLAGS=
  echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
echo "configure:745: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  echo 'void f(){}' > conftest.cc
if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
  ac_cv_prog_cxx_g=yes
else
  ac_cv_prog_cxx_g=no
fi
rm -f conftest*

fi

echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
  if test "$ac_test_CXXFLAGS" = set; then
    CXXFLAGS="$ac_save_CXXFLAGS"
  elif test $ac_cv_prog_cxx_g = yes; then
    CXXFLAGS="-g -O2"
  else
    CXXFLAGS="-O2"
  fi
else
  GXX=
  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
fi

ac_ext=$use_ac_ext

ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cxx_cross

ac_ext=$use_ac_ext

echo $ac_n "checking for object file extention""... $ac_c" 1>&6
echo "configure:784: checking for object file extention" >&5
cat > "xyqtcz.$ac_ext" << EOF

int main()
{
}

EOF

if eval "$CXX $CXXFLAGS -c xyqtcz.$ac_ext"; then
rm -f "xyqtcz.$ac_ext"
ac_obj_ext=`find xyqtcz.* | sed 's/xyqtcz\(.*\)/\1/g'`
echo "$ac_t""yes - $ac_obj_ext" 1>&6
rm  -f "xyqtcz$ac_obj_ext"

else

echo "$ac_t""no - could not create or find object file" 1>&6
rm -f "xyqtcz.$ac_ext"
ac_obj_ext='.o'

fi

echo $ac_n "checking for executable file extention""... $ac_c" 1>&6
echo "configure:808: checking for executable file extention" >&5
ac_exe_ext=""
for file in /bin/sh.*
do

if test -x "$file"; then
ac_exe_ext=`echo "$file" | sed 's/\/bin\/sh\(.*\)/\1/g'`
fi

done

echo "$ac_t""yes - $ac_exe_ext" 1>&6




#
# determine machine word sizes
# and set JM_INT32 to be the
# equivalent of intfast32_t in <inttypes.h>
#
if test "$enable_force_cross" = "yes"; then
cross_compiling="yes"
echo forced cross compilation mode turned on
fi

echo $ac_n "checking size of short""... $ac_c" 1>&6
echo "configure:835: checking size of short" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  ac_cv_sizeof_short="$enable_sizeof_short"
else
  cat > conftest.$ac_ext <<EOF
#line 843 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
#endif
#include <stdio.h>
main()
{
  FILE *f=fopen("conftestval", "w");
  if (!f) exit(1);
  fprintf(f, "%d\n", sizeof(short));
  exit(0);
}
EOF
if { (eval echo configure:857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
  ac_cv_sizeof_short=`cat conftestval`
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -fr conftest*
  ac_cv_sizeof_short=0
fi
rm -fr conftest*
fi

fi
echo "$ac_t""$ac_cv_sizeof_short" 1>&6
cat >> confdefs.h <<EOF
#define SIZEOF_SHORT $ac_cv_sizeof_short
EOF


ac_ext=$use_ac_ext
echo $ac_n "checking size of int""... $ac_c" 1>&6
echo "configure:878: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  ac_cv_sizeof_int="$enable_sizeof_int"
else
  cat > conftest.$ac_ext <<EOF
#line 886 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
#endif
#include <stdio.h>
main()
{
  FILE *f=fopen("conftestval", "w");
  if (!f) exit(1);
  fprintf(f, "%d\n", sizeof(int));
  exit(0);
}
EOF
if { (eval echo configure:900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
  ac_cv_sizeof_int=`cat conftestval`
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -fr conftest*
  ac_cv_sizeof_int=0
fi
rm -fr conftest*
fi

fi
echo "$ac_t""$ac_cv_sizeof_int" 1>&6
cat >> confdefs.h <<EOF
#define SIZEOF_INT $ac_cv_sizeof_int
EOF


ac_ext=$use_ac_ext
echo $ac_n "checking size of long""... $ac_c" 1>&6
echo "configure:921: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  ac_cv_sizeof_long="$enable_sizeof_long"
else
  cat > conftest.$ac_ext <<EOF
#line 929 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
#endif
#include <stdio.h>
main()
{
  FILE *f=fopen("conftestval", "w");
  if (!f) exit(1);
  fprintf(f, "%d\n", sizeof(long));
  exit(0);
}
EOF
if { (eval echo configure:943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
  ac_cv_sizeof_long=`cat conftestval`
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -fr conftest*
  ac_cv_sizeof_long=0
fi
rm -fr conftest*
fi

fi
echo "$ac_t""$ac_cv_sizeof_long" 1>&6
cat >> confdefs.h <<EOF
#define SIZEOF_LONG $ac_cv_sizeof_long
EOF


ac_ext=$use_ac_ext

cat >> confdefs.h <<EOF
#define JM_SIZEOF_SHORT $ac_cv_sizeof_short
EOF

cat >> confdefs.h <<EOF
#define JM_SIZEOF_INT $ac_cv_sizeof_int
EOF

cat >> confdefs.h <<EOF
#define JM_SIZEOF_LONG $ac_cv_sizeof_long
EOF



if test "$ac_cv_sizeof_int" -ge 4; then
  cat >> confdefs.h <<\EOF
#define JM_INT32 unsigned int
EOF

else
    if test "$ac_cv_sizeof_long" -ge 4; then
      cat >> confdefs.h <<\EOF
#define JM_INT32 unsigned long
EOF

    else
      { echo "configure: error: Cannot find any 32-bit integer type for your compiler" 1>&2; exit 1; }
    fi
  ac_ext=$use_ac_ext
fi
ac_ext=$use_ac_ext


ac_ext=$use_ac_ext

echo $ac_n "checking for basic template compatibility""... $ac_c" 1>&6
echo "configure:1000: checking for basic template compatibility" >&5
cat > conftest.$ac_ext <<EOF
#line 1002 "configure"
#include "confdefs.h"

template <class Arg1, class Arg2, class Result>
struct binary_function {
    typedef Arg1 first_argument_type;
    typedef Arg2 second_argument_type;
    typedef Result result_type;
};      
template <class T>
struct plus : public binary_function<T, T, T> {
    T operator()(const T& x, const T& y) const;
};

//
// non-inline
// link will fail if template is not instantiated
//
template <class T>
T plus<T>::operator()(const T& x, const T& y) const 
{ return x + y; }

plus<int> p;

int main() {

// check member function is actually instantiated
int i, j, k;
i = p(k, j);

; return 0; }
EOF
if { (eval echo configure:1034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  ac_cv_compat="yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  { echo "configure: error: Your compiler won't be able to compile this implementation. Sorry." 1>&2; exit 1; } 
 ac_cv_compat="no"

fi
rm -f conftest*
echo "$ac_t""$ac_cv_compat" 1>&6

# Check whether --enable-namespaces or --disable-namespaces was given.
if test "${enable_namespaces+set}" = set; then
  enableval="$enable_namespaces"
  :
fi

if test "$enable_namespaces" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_NAMESPACES 
EOF

else
echo $ac_n "checking for namespace support""... $ac_c" 1>&6
echo "configure:1061: checking for namespace support" >&5
cat > conftest.$ac_ext <<EOF
#line 1063 "configure"
#include "confdefs.h"
 
#include <stdlib.h>
namespace jm{

struct dummy{};

}; // namespace

jm::dummy d;


int main() {


; return 0; }
EOF
if { (eval echo configure:1081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM  jm
EOF
 
echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM  
EOF
 
cat >> confdefs.h <<\EOF
#define JM_NO_NAMESPACES 
EOF
 
echo "$ac_t""no" 1>&6
enable_namespaces="no"
fi
rm -f conftest*
fi

# Check whether --enable-exceptions or --disable-exceptions was given.
if test "${enable_exceptions+set}" = set; then
  enableval="$enable_exceptions"
  :
fi

 if test "$enable_exceptions" = "no"; then
 cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTIONS 
EOF

else

echo $ac_n "checking for exception support""... $ac_c" 1>&6
echo "configure:1120: checking for exception support" >&5
cat > conftest.$ac_ext <<EOF
#line 1122 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

int f1()throw()
{
 return 23;
}

void do_throw()
{
 throw (int)25;
}

int main() {

 try
 {
  f1();
  do_throw();
 }
 catch(int i)
 {
 }
 catch(...)
 {
 }

; return 0; }
EOF
if { (eval echo configure:1153: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTIONS 
EOF
 
echo "$ac_t""no" 1>&6
enable_exceptions="no"
fi
rm -f conftest*
fi


# Check whether --enable-mutable or --disable-mutable was given.
if test "${enable_mutable+set}" = set; then
  enableval="$enable_mutable"
  :
fi

if test "$enable_mutable" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_MUTABLE 
EOF

else

echo $ac_n "checking for mutable keyword""... $ac_c" 1>&6
echo "configure:1185: checking for mutable keyword" >&5
cat > conftest.$ac_ext <<EOF
#line 1187 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

class foo
{
 mutable int val;
 public:
 foo(int i) : val(i) {}
 void set(int i)const;
};

void foo::set(int i)const
{
 val = i;
}

int main() {

 const foo f(4);
 f.set(3);

; return 0; }
EOF
if { (eval echo configure:1212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_MUTABLE 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi

# Check whether --enable-default-template-arg or --disable-default-template-arg was given.
if test "${enable_default_template_arg+set}" = set; then
  enableval="$enable_default_template_arg"
  :
fi

if test "$enable_default_template_arg" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_DEFAULT_PARAM 
EOF

else

echo $ac_n "checking for default template parameter support""... $ac_c" 1>&6
echo "configure:1241: checking for default template parameter support" >&5
cat > conftest.$ac_ext <<EOF
#line 1243 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class T, class U = int>
struct foo
{
 T val;
 U alt;
};

int main() {

 foo<int, double> f1;
 foo<int, int> f2;
 foo<double> f3;
 foo<int> f4;

; return 0; }
EOF
if { (eval echo configure:1264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_DEFAULT_PARAM 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi



# Check whether --enable-derived-default-template-arg or --disable-derived-default-template-arg was given.
if test "${enable_derived_default_template_arg+set}" = set; then
  enableval="$enable_derived_default_template_arg"
  :
fi

if test "$enable_derived_default_template_arg" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_TRICKY_DEFAULT_PARAM 
EOF

else

echo $ac_n "checking for derived default template parameter support""... $ac_c" 1>&6
echo "configure:1295: checking for derived default template parameter support" >&5
cat > conftest.$ac_ext <<EOF
#line 1297 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class T>
class inner
{
public:
 typedef T inner_type;
};

template <class T, class U = inner<T> >
struct foo
{
 T val;
 U alt;
};

int main() {

 foo<int, inner<double> > f1;
 foo<int, inner<int> > f2;
 foo<double> f3;
 foo<int> f4;

; return 0; }
EOF
if { (eval echo configure:1325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TRICKY_DEFAULT_PARAM 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi


# Check whether --enable-partial-template-function-specialise or --disable-partial-template-function-specialise was given.
if test "${enable_partial_template_function_specialise+set}" = set; then
  enableval="$enable_partial_template_function_specialise"
  :
fi

if test "$enable_partial_template_function_specialise" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_PARTIAL_FUNC_SPEC 
EOF

else

echo $ac_n "checking for function template partial ordering""... $ac_c" 1>&6
echo "configure:1355: checking for function template partial ordering" >&5
cat > conftest.$ac_ext <<EOF
#line 1357 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class T>
struct dummy{};

struct dummy2
{
 int result()const { return 1; }
};

template <class T>
int foo(const T& t)
{ return t.result(); }

template <class T>
int foo(const dummy<T>& )
{ return 0; }


int main() {

 dummy<double> d;
 dummy2 d2;
 int i = foo(d);
 i = foo(d2);

; return 0; }
EOF
if { (eval echo configure:1388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_PARTIAL_FUNC_SPEC 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi

echo $ac_n "checking for typename usage""... $ac_c" 1>&6
echo "configure:1405: checking for typename usage" >&5
cat > conftest.$ac_ext <<EOF
#line 1407 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class T>
struct dummy
{
	typedef unsigned size_type;
};

template <class T>
struct dummy2
{
 typedef typename dummy<T>::size_type dt;
};



int main() {

 dummy2<int> i;
 dummy2<int>::dt j;

; return 0; }
EOF
if { (eval echo configure:1433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_TYPENAME 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*

echo $ac_n "checking for default parameters in template functions""... $ac_c" 1>&6
echo "configure:1448: checking for default parameters in template functions" >&5
cat > conftest.$ac_ext <<EOF
#line 1450 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class it, class Alloc>
struct reg_match{};

template <class charT, class traits, class Alloc>
class reg_expression{};

template <class iterator, class Allocator, class charT, class traits, class Allocator2>
bool query_match(iterator first, iterator last, reg_match<iterator, Allocator>& m, const reg_expression<charT, traits, Allocator2>& e, unsigned flags = 0)
{}



int main() {

 const char* p1 = 0;
 const char* p2 = 0;
 reg_match<const char*, int> m;
 reg_expression<char, int, int> e;
 query_match(p1, p2, m, e);

; return 0; }
EOF
if { (eval echo configure:1477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_DEFAULT_PARAMS_IN_TEMPLATES 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*


echo $ac_n "checking for template friend functions""... $ac_c" 1>&6
echo "configure:1493: checking for template friend functions" >&5
cat > conftest.$ac_ext <<EOF
#line 1495 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

template <class T2>
void foo(T2 t);

template <class T>
struct dummy
{
	template <class T2> friend void foo(T2);
private:
	void foo2();
	void foo3()const;
};

template <class T2>
void foo(T2 t)
{
	dummy<T2> d1;
	d1.foo2();
	d1.foo3();
	dummy<int> d2;
	d2.foo2();
	d2.foo3();
}



int main() {

	foo(3);
	foo(2.345);

; return 0; }
EOF
if { (eval echo configure:1532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_FRIEND 
EOF
 echo "$ac_t""no" 1>&6
fi
rm -f conftest*



# Check whether --enable-ms-windows or --disable-ms-windows was given.
if test "${enable_ms_windows+set}" = set; then
  enableval="$enable_ms_windows"
  :
fi

# Check whether --enable-threads or --disable-threads was given.
if test "${enable_threads+set}" = set; then
  enableval="$enable_threads"
  :
fi

if test "$enable_ms_windows" != "no"; then

echo $ac_n "checking for MS Windows""... $ac_c" 1>&6
echo "configure:1563: checking for MS Windows" >&5
cat > conftest.$ac_ext <<EOF
#line 1565 "configure"
#include "confdefs.h"
 
#include <windows.h>

#ifdef __BORLANDC__
#ifndef _Windows
syntax error
#endif
#endif



int main() {

 int i = GetVersion();

; return 0; }
EOF
if { (eval echo configure:1584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  iswin="true"
cat >> confdefs.h <<\EOF
#define JM_PLATFORM_WINDOWS 
EOF
 
echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
enable_ms_windows="no"

fi
rm -f conftest*
fi

if test "$enable_ms_windows" != "no"; then
echo $ac_n "checking for MS Win32""... $ac_c" 1>&6
echo "configure:1605: checking for MS Win32" >&5
cat > conftest.$ac_ext <<EOF
#line 1607 "configure"
#include "confdefs.h"
 
#include <windows.h>

CRITICAL_SECTION cs;

int main() {

 InitializeCriticalSection(&cs);
 EnterCriticalSection(&cs);
 LeaveCriticalSection(&cs);
 DeleteCriticalSection(&cs);

; return 0; }
EOF
if { (eval echo configure:1623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
enable_ms_windows="no"

fi
rm -f conftest*
fi

if test "$enable_ms_windows" != "no"; then

if test "$CXX" != "cl"; then
echo $ac_n "checking for main in -luser32""... $ac_c" 1>&6
echo "configure:1641: checking for main in -luser32" >&5
ac_lib_var=`echo user32'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-luser32  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1649 "configure"
#include "confdefs.h"

int main() {
main()
; return 0; }
EOF
if { (eval echo configure:1656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  LIBS="$LIBS -luser32"
else
  echo "$ac_t""no" 1>&6
fi

echo $ac_n "checking for main in -lkernel32""... $ac_c" 1>&6
echo "configure:1677: checking for main in -lkernel32" >&5
ac_lib_var=`echo kernel32'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lkernel32  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1685 "configure"
#include "confdefs.h"

int main() {
main()
; return 0; }
EOF
if { (eval echo configure:1692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  LIBS="$LIBS -lkernel32"
else
  echo "$ac_t""no" 1>&6
fi

fi

cat > conftest.$ac_ext <<EOF
#line 1715 "configure"
#include "confdefs.h"
 
#include <windows.h>

CRITICAL_SECTION cs;

int main() {

 InitializeCriticalSection(&cs);
 EnterCriticalSection(&cs);
 LeaveCriticalSection(&cs);
 DeleteCriticalSection(&cs);
 HeapAlloc(0, 0, 20);
 CharLower((LPTSTR)0);
 LoadString(0, 0, 0, 0);

; return 0; }
EOF
if { (eval echo configure:1734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  
if test "enable_threads" != "no"; then
# turn on threading support:
echo $ac_n "checking for mult-thread support""... $ac_c" 1>&6
echo "configure:1740: checking for mult-thread support" >&5
echo "$ac_t"""yes"" 1>&6
cat >> confdefs.h <<\EOF
#define JM_THREADS 
EOF

cat >> confdefs.h <<\EOF
#define JM_PLATFORM_W32 
EOF

fi

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  
# bu**er, windows is present but we can't link
echo "configure: warning: 
         MS Win32 seems to be present, but we can't link, 
         or find the default library names for kernal32.dll
         and user32.dll.
         $0 is disabling MS Windows support, re-run $0 with
         the environment variable "LIBS" set to the library 
         files required to re-enable Win32 support." 1>&2
enable_ms_windows="no"


fi
rm -f conftest*


fi


if test "$iswin" != "true"; then

echo $ac_n "checking for MS DOS""... $ac_c" 1>&6
echo "configure:1778: checking for MS DOS" >&5
cat > conftest.$ac_ext <<EOF
#line 1780 "configure"
#include "confdefs.h"
 
#include <dos.h>

int main() {

 int i = _doserrno;

; return 0; }
EOF
if { (eval echo configure:1791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_PLATFORM_DOS 
EOF
 echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi


echo $ac_n "checking for bool support""... $ac_c" 1>&6
echo "configure:1809: checking for bool support" >&5
cat > conftest.$ac_ext <<EOF
#line 1811 "configure"
#include "confdefs.h"
 

int main() {

 bool i = true;

; return 0; }
EOF
if { (eval echo configure:1821: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_BOOL 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*


# Check whether --enable-wstring or --disable-wstring was given.
if test "${enable_wstring+set}" = set; then
  enableval="$enable_wstring"
  :
fi


if test "$enable_wstring" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_WCHAR_H 
EOF

else

echo $ac_n "checking for <wchar.h>""... $ac_c" 1>&6
echo "configure:1852: checking for <wchar.h>" >&5
cat > conftest.$ac_ext <<EOF
#line 1854 "configure"
#include "confdefs.h"
 
#include <wchar.h>

int main() {


; return 0; }
EOF
if { (eval echo configure:1864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_WCHAR_H 
EOF

echo "$ac_t""no" 1>&6

fi
rm -f conftest*
fi

if test "$enable_wstring" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_WCTYPE_H 
EOF

else

echo $ac_n "checking for <wctype.h>""... $ac_c" 1>&6
echo "configure:1889: checking for <wctype.h>" >&5
cat > conftest.$ac_ext <<EOF
#line 1891 "configure"
#include "confdefs.h"
 
#include <wctype.h>

int main() {


; return 0; }
EOF
if { (eval echo configure:1901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_WCTYPE_H 
EOF

echo "$ac_t""no" 1>&6

fi
rm -f conftest*
fi


if test "$enable_wstring" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_WCSTRING 
EOF

else

echo $ac_n "checking for wide string functions""... $ac_c" 1>&6
echo "configure:1927: checking for wide string functions" >&5
cat > conftest.$ac_ext <<EOF
#line 1929 "configure"
#include "confdefs.h"

#include "confdefs.h"
#ifndef JM_NO_WCHAR_H
#include <wchar.h>
#endif
#ifndef JM_NO_WCTYPE_H
#include <wctype.h>
#endif 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {

 wchar_t c[50];
 char d[50];
 wcscpy(c, L"abcd");
 wcscmp(L"", L"");
 wcslen(L"");
 wcsxfrm(0, L"", 0);
 wcstombs(d, L"", 0);
 mbstowcs(c, "", 0);
 iswlower(L'c');

; return 0; }
EOF
if { (eval echo configure:1958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_WCSTRING 
EOF

echo "$ac_t""no" 1>&6
enable_wstring="no"
fi
rm -f conftest*
fi

if test "$enable_wstring" != "no"; then
echo $ac_n "checking for swprintf support""... $ac_c" 1>&6
echo "configure:1977: checking for swprintf support" >&5
cat > conftest.$ac_ext <<EOF
#line 1979 "configure"
#include "confdefs.h"
 
#include "confdefs.h"
#ifndef JM_NO_WCHAR_H
#include <wchar.h>
#endif
#ifndef JM_NO_WCTYPE_H
#include <wctype.h>
#endif
#include <string.h>
#include <stdio.h>

int main() {

 wchar_t c[50];
 swprintf(c, L"abcd");

; return 0; }
EOF
if { (eval echo configure:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_SWPRINTF 
EOF

echo "$ac_t""no" 1>&6
enable_swprintf="no"
fi
rm -f conftest*
fi

if test "$enable_wstring" != "no" && test "$enable_swprintf" = "no"; then
echo $ac_n "checking for wsprintf support""... $ac_c" 1>&6
echo "configure:2018: checking for wsprintf support" >&5
cat > conftest.$ac_ext <<EOF
#line 2020 "configure"
#include "confdefs.h"
 
#include "confdefs.h"
#ifndef JM_NO_WCHAR_H
#include <wchar.h>
#endif
#ifndef JM_NO_WCTYPE_H
#include <wctype.h>
#endif
#include <string.h>
#include <stdio.h>
#include <widec.h>

int main() {

 wchar_t c[50];
 wsprintf(c, "abcd");

; return 0; }
EOF
if { (eval echo configure:2041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_WSPRINTF 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi



# Check whether --enable-member-templates or --disable-member-templates was given.
if test "${enable_member_templates+set}" = set; then
  enableval="$enable_member_templates"
  :
fi

if test "$enable_member_templates" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_MEMBER_TEMPLATES 
EOF

else

echo $ac_n "checking for member template classes and functions""... $ac_c" 1>&6
echo "configure:2073: checking for member template classes and functions" >&5
cat > conftest.$ac_ext <<EOF
#line 2075 "configure"
#include "confdefs.h"
 

template <class T>
class alloc
{
public:
 void* allocate(int);
 void deallocate(void*);
 alloc();
 alloc(const alloc&);
 template <class U>
 alloc(const alloc<U>&) {}
 alloc& operator=(const alloc&);
 template <class U>
 alloc& operator=(const alloc<U>&)
 { return *this; }
 
 template <class U>
 struct rebind
 {
  typedef alloc<U> other;
 };
};


int main() {

 alloc<int> ia;
 alloc<double> da(ia);
 alloc<float> fa;
 fa.allocate(5);
 fa = ia;

; return 0; }
EOF
if { (eval echo configure:2112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_MEMBER_TEMPLATES 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi


# Check whether --enable-template-returns or --disable-template-returns was given.
if test "${enable_template_returns+set}" = set; then
  enableval="$enable_template_returns"
  :
fi

if test "$enable_template_returns" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_RETURNS 
EOF

else

echo $ac_n "checking for parameterised function returns""... $ac_c" 1>&6
echo "configure:2143: checking for parameterised function returns" >&5
cat > conftest.$ac_ext <<EOF
#line 2145 "configure"
#include "confdefs.h"
 
template <class T>
T coerse(int i)
{ return T(i); }

int main() {

 double d = coerse<double>(5);
 int i = coerse<int>(3);

; return 0; }
EOF
if { (eval echo configure:2159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_RETURNS 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi


# Check whether --enable-int64 or --disable-int64 was given.
if test "${enable_int64+set}" = set; then
  enableval="$enable_int64"
  :
fi

if test "$enable_int64" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_INT64_T 0
EOF

else

echo $ac_n "checking for 64-bit integral type""... $ac_c" 1>&6
echo "configure:2190: checking for 64-bit integral type" >&5

if test "$ac_cv_sizeof_short" -eq 8; then
cat >> confdefs.h <<\EOF
#define JM_INT64_T 1
EOF

echo "$ac_t""yes - short" 1>&6
have_int64="true"
fi
if test "$ac_cv_sizeof_int" -eq 8 && test "$have_int64" != "true"; then
cat >> confdefs.h <<\EOF
#define JM_INT64_T 2
EOF

echo "$ac_t""yes - int" 1>&6
have_int64="true"
fi
if test "$ac_cv_sizeof_long" -eq 8 && test "$have_int64" != "true"; then
cat >> confdefs.h <<\EOF
#define JM_INT64_T 3
EOF

echo "$ac_t""yes - long" 1>&6
have_int64="true"
fi
if test "$have_int64" != "true"; then
cat > conftest.$ac_ext <<EOF
#line 2218 "configure"
#include "confdefs.h"
 
#include <inttypes.h>

int64_t i = INT64_C(0x100000000);

int main() {


; return 0; }
EOF
if { (eval echo configure:2230: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - int64_t" 1>&6
have_int64="true"
cat >> confdefs.h <<\EOF
#define JM_INT64_T 4
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*
fi

if test "$have_int64" != "true"; then

cat > conftest.$ac_ext <<EOF
#line 2249 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

long long i = 0x100000000LL;

int main() {


; return 0; }
EOF
if { (eval echo configure:2261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - long long" 1>&6
have_int64="true"
cat >> confdefs.h <<\EOF
#define JM_INT64_T 5
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

if test "$have_int64" != "true"; then

cat > conftest.$ac_ext <<EOF
#line 2281 "configure"
#include "confdefs.h"
 
#include <stdlib.h>

__int64 i = 0x100000000i64;

int main() {


; return 0; }
EOF
if { (eval echo configure:2293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - __int64" 1>&6
have_int64="true"
cat >> confdefs.h <<\EOF
#define JM_INT64_T 6
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*
fi
if test "$have_int64" != "true"; then
cat >> confdefs.h <<\EOF
#define JM_INT64_T 0
EOF

echo "$ac_t""no" 1>&6
fi
fi


# Check whether --enable-messages or --disable-messages was given.
if test "${enable_messages+set}" = set; then
  enableval="$enable_messages"
  :
fi

if test "$enable_messages" = "no" || test "$enable_ms_windows" != "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_CAT 
EOF

else

echo $ac_n "checking for catopen in -lnl_types""... $ac_c" 1>&6
echo "configure:2332: checking for catopen in -lnl_types" >&5
ac_lib_var=`echo nl_types'_'catopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lnl_types  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2340 "configure"
#include "confdefs.h"
/* 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 catopen();

int main() {
catopen()
; return 0; }
EOF
if { (eval echo configure:2354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
    ac_tr_lib=HAVE_LIB`echo nl_types | sed -e 's/[^a-zA-Z0-9_]/_/g' \
    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
  cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF

  LIBS="-lnl_types $LIBS"

else
  echo "$ac_t""no" 1>&6
fi

echo $ac_n "checking for catopen in -lposix""... $ac_c" 1>&6
echo "configure:2382: checking for catopen in -lposix" >&5
ac_lib_var=`echo posix'_'catopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lposix  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2390 "configure"
#include "confdefs.h"
/* 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 catopen();

int main() {
catopen()
; return 0; }
EOF
if { (eval echo configure:2404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
    ac_tr_lib=HAVE_LIB`echo posix | sed -e 's/[^a-zA-Z0-9_]/_/g' \
    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
  cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF

  LIBS="-lposix $LIBS"

else
  echo "$ac_t""no" 1>&6
fi


echo $ac_n "checking for POSIX message categories""... $ac_c" 1>&6
echo "configure:2433: checking for POSIX message categories" >&5
cat > conftest.$ac_ext <<EOF
#line 2435 "configure"
#include "confdefs.h"
 
#include <nl_types.h>

nl_catd message_cat = (nl_catd)-1;

int main() {

 message_cat = catopen("some_name", 0);
 catclose(message_cat);

; return 0; }
EOF
if { (eval echo configure:2449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_CAT 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi

if test "$enable_threads" != "no" && test "$enable_ms_windows" = "no"; then

echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
echo "configure:2469: checking for pthread_mutex_init in -lpthread" >&5
ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lpthread  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2477 "configure"
#include "confdefs.h"
/* 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 pthread_mutex_init();

int main() {
pthread_mutex_init()
; return 0; }
EOF
if { (eval echo configure:2491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
  cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF

  LIBS="-lpthread $LIBS"

else
  echo "$ac_t""no" 1>&6
fi

echo $ac_n "checking for pthread_mutex_init in -lposix""... $ac_c" 1>&6
echo "configure:2519: checking for pthread_mutex_init in -lposix" >&5
ac_lib_var=`echo posix'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lposix  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2527 "configure"
#include "confdefs.h"
/* 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 pthread_mutex_init();

int main() {
pthread_mutex_init()
; return 0; }
EOF
if { (eval echo configure:2541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
    ac_tr_lib=HAVE_LIB`echo posix | sed -e 's/[^a-zA-Z0-9_]/_/g' \
    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
  cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF

  LIBS="-lposix $LIBS"

else
  echo "$ac_t""no" 1>&6
fi


echo $ac_n "checking for POSIX threads""... $ac_c" 1>&6
echo "configure:2570: checking for POSIX threads" >&5
cat > conftest.$ac_ext <<EOF
#line 2572 "configure"
#include "confdefs.h"
 
#include <pthread.h>

pthread_mutex_t m;


int main() {

 pthread_mutex_init(&m, NULL);
 pthread_mutex_lock(&m);
 pthread_mutex_unlock(&m);
 pthread_mutex_destroy(&m);

; return 0; }
EOF
if { (eval echo configure:2589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_THREADS 
EOF

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi


# Check whether --enable-specialise or --disable-specialise was given.
if test "${enable_specialise+set}" = set; then
  enableval="$enable_specialise"
  :
fi

if test "$enable_specialise" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_TEMPLATE_SPECIALISE 
EOF

else

echo $ac_n "checking for template<> specialisation syntax""... $ac_c" 1>&6
echo "configure:2621: checking for template<> specialisation syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 2623 "configure"
#include "confdefs.h"
 
template <class T>
class max_value
{
public:
};

template<>
class max_value<int>
{
public:
  static int max;
};

int max_value<int>::max = -1;


int main() {

 int i = max_value<int>::max;

; return 0; }
EOF
if { (eval echo configure:2648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_TEMPLATE_SPECIALISE template<>
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  
cat >> confdefs.h <<\EOF
#define JM_TEMPLATE_SPECIALISE 
EOF

echo "$ac_t""no" 1>&6


fi
rm -f conftest*

fi


# Check whether --enable-nested-template-prefix or --disable-nested-template-prefix was given.
if test "${enable_nested_template_prefix+set}" = set; then
  enableval="$enable_nested_template_prefix"
  :
fi

if test "$enable_nested_template_prefix" = "no" || test "$enable_member_templates" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NESTED_TEMPLATE_DECL 
EOF

else

echo $ac_n "checking for template nested class access""... $ac_c" 1>&6
echo "configure:2689: checking for template nested class access" >&5
cat > conftest.$ac_ext <<EOF
#line 2691 "configure"
#include "confdefs.h"
 
template <class T>
class alloc
{
public:
 void* allocate(int);
 void deallocate(void*);
 alloc();
 alloc(const alloc&);
 template <class U>
 alloc(const alloc<U>&) {}
 alloc& operator=(const alloc&);
 template <class U>
 alloc& operator=(const alloc<U>&)
 { return *this; }
 
 template <class U>
 struct rebind
 {
  typedef alloc<U> other;
 };
};


int main() {

 alloc<int> ia;
 alloc<double> da(ia);
 alloc<float> fa;
 fa.allocate(5);
 fa = ia;
 alloc<int>::template rebind<double>::other da2(ia);

; return 0; }
EOF
if { (eval echo configure:2728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NESTED_TEMPLATE_DECL template
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  
cat >> confdefs.h <<\EOF
#define JM_NESTED_TEMPLATE_DECL 
EOF

echo "$ac_t""no" 1>&6

fi
rm -f conftest*

fi

echo $ac_n "checking for explicit template instantiation""... $ac_c" 1>&6
echo "configure:2754: checking for explicit template instantiation" >&5
cat > conftest.$ac_ext <<EOF
#line 2756 "configure"
#include "confdefs.h"
 
#include "confdefs.h"
#include <stdlib.h>

template <class T>
class factorial
{
public:
	factorial();
	T operator()(T);
};

template <class T>
factorial<T>::factorial()
{
}

template <class T>
T factorial<T>::operator()(T t)
{
	T result = 1;
	for(T i = 1; i <= t; ++i)
	{
		result *= i;
	}
	return result;
}

template class factorial<int>;
template class factorial<short>;

int main() {


; return 0; }
EOF
if { (eval echo configure:2794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  
echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  
cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_INST 
EOF

echo "$ac_t""no" 1>&6

fi
rm -f conftest*


# Check whether --enable-fastcall or --disable-fastcall was given.
if test "${enable_fastcall+set}" = set; then
  enableval="$enable_fastcall"
  :
fi

if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then
cat >> confdefs.h <<\EOF
#define RE_CALL 
EOF

cat >> confdefs.h <<\EOF
#define RE_CCALL 
EOF

else

echo $ac_n "checking for __fastcall and __stdcall""... $ac_c" 1>&6
echo "configure:2832: checking for __fastcall and __stdcall" >&5
cat > conftest.$ac_ext <<EOF
#line 2834 "configure"
#include "confdefs.h"
 
void __fastcall f1(int)
{
}

void __stdcall f2(int)
{
}


int main() {

 f1(2);
 f2(3);

; return 0; }
EOF
if { (eval echo configure:2853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define RE_CALL __fastcall
EOF

cat >> confdefs.h <<\EOF
#define RE_CCALL __stdcall
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define RE_CALL 
EOF

cat >> confdefs.h <<\EOF
#define RE_CCALL 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi

# move on to STL options:

if test "$enable_namespaces" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_STDC 
EOF

else
echo $ac_n "checking for standard C namespace""... $ac_c" 1>&6
echo "configure:2892: checking for standard C namespace" >&5
cat > conftest.$ac_ext <<EOF
#line 2894 "configure"
#include "confdefs.h"
 
#include <stddef.h>
#include <stdlib.h>

std::ptrdiff_t v = 0;

int main() {


; return 0; }
EOF
if { (eval echo configure:2907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - std" 1>&6
cat >> confdefs.h <<\EOF
#define JM_STDC std
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_STDC 
EOF

echo "$ac_t""no" 1>&6
fi
rm -f conftest*
fi



# Check whether --enable-stl or --disable-stl was given.
if test "${enable_stl+set}" = set; then
  enableval="$enable_stl"
  :
fi

if test "$enable_stl" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_STL 
EOF

cat >> confdefs.h <<\EOF
#define JM_STD 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTION_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_ITERATOR_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_MEMORY_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_LOCALE_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_STRING_H 
EOF

else

if test "$enable_namespaces" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_STD 
EOF

have_std_namespace="yes"
else
echo $ac_n "checking for standard library namespace""... $ac_c" 1>&6
echo "configure:2975: checking for standard library namespace" >&5
cat > conftest.$ac_ext <<EOF
#line 2977 "configure"
#include "confdefs.h"
 
#include <stddef.h>
#include <stdlib.h>
#include <list>
#include "confdefs.h"

template <class T>
inline void RE_CALL jm_destroy(T* t)
{
   t->~T();
}

template <class T>
inline void RE_CALL jm_construct(void* p, const T& t)
{
   new (p) T(t);
}


template<class T, class Allocator>
class re_alloc_binder 
{
   Allocator inst;
public:
   typedef T         value_type;
   typedef T*        pointer;
   typedef const T*  const_pointer;
   typedef T&        reference;
   typedef const T&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   re_alloc_binder(const Allocator& i);
   re_alloc_binder(const re_alloc_binder& o) : inst(o.inst) {}
   re_alloc_binder() : inst() {}

   T* RE_CALL allocate(size_t n)
             { return 0 == n ? 0 : (T*) inst.allocate(n * sizeof(T)); }
   void RE_CALL deallocate(T *p, size_t n)
             { if (0 != n) inst.deallocate((char*)p, n * sizeof (T)); }

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer p, const T& val) { jm_construct(p, val); }
   void RE_CALL destroy(pointer p) { jm_destroy(p); }

   operator const Allocator& () const { return inst; }

#ifndef JM_NO_MEMBER_TEMPLATES
   const Allocator& RE_CALL instance() { return inst; }

   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, Allocator> other;
   };
   
   template <class U>
   RE_CALL re_alloc_binder(const re_alloc_binder<U, Allocator>& o) throw()
      : inst(o.instance())
   {
   }
#endif
};

template<class T, class Allocator>
inline re_alloc_binder<T, Allocator>::re_alloc_binder(const Allocator &i)
    : inst(i)
{}


//
// class jm_def_alloc
// basically a standard allocator that only allocates bytes...
//
class jm_def_alloc
{
public:
   typedef char         value_type;
   typedef char*        pointer;
   typedef const char*  const_pointer;
   typedef char&        reference;
   typedef const char&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer , const char& ) {  }
   void RE_CALL destroy(pointer ) {  }
   static void * RE_CALL allocate(size_t n)
   {
      return ::operator new(n);
   }
   static void RE_CALL deallocate(void *p, size_t /*n*/ )
   {
      ::operator delete(p);
   }

#ifndef JM_NO_MEMBER_TEMPLATES
   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, jm_def_alloc> other;
   };

   //template <class U>
   //RE_CALL jm_def_alloc(const re_alloc_binder<U, jm_def_alloc>& ) throw() { }
#endif
   jm_def_alloc(const jm_def_alloc&) {}
   jm_def_alloc() {}
};

#if !defined(JM_NO_TRICKY_DEFAULT_PARAM) && !defined(JM_NO_DEFAULT_PARAM)
std::list<int> v;
#else
std::list<int, jm_def_alloc> v;
#endif


int main() {


; return 0; }
EOF
if { (eval echo configure:3106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - std" 1>&6
cat >> confdefs.h <<\EOF
#define JM_STD std
EOF

have_std_namespace="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

fi

if test "$enable_stl" != "no" && test "$have_std_namespace" != "yes"; then

cat > conftest.$ac_ext <<EOF
#line 3128 "configure"
#include "confdefs.h"
 
#include <stddef.h>
#include <stdlib.h>
#include <list>
#include "confdefs.h"

template <class T>
inline void RE_CALL jm_destroy(T* t)
{
   t->~T();
}

template <class T>
inline void RE_CALL jm_construct(void* p, const T& t)
{
   new (p) T(t);
}


template<class T, class Allocator>
class re_alloc_binder 
{
   Allocator inst;
public:
   typedef T         value_type;
   typedef T*        pointer;
   typedef const T*  const_pointer;
   typedef T&        reference;
   typedef const T&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   re_alloc_binder(const Allocator& i);
   re_alloc_binder(const re_alloc_binder& o) : inst(o.inst) {}
   re_alloc_binder() : inst() {}

   T* RE_CALL allocate(size_t n)
             { return 0 == n ? 0 : (T*) inst.allocate(n * sizeof(T)); }
   void RE_CALL deallocate(T *p, size_t n)
             { if (0 != n) inst.deallocate((char*)p, n * sizeof (T)); }

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer p, const T& val) { jm_construct(p, val); }
   void RE_CALL destroy(pointer p) { jm_destroy(p); }

   operator const Allocator& () const { return inst; }

#ifndef JM_NO_MEMBER_TEMPLATES
   const Allocator& RE_CALL instance() { return inst; }

   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, Allocator> other;
   };
   
   template <class U>
   RE_CALL re_alloc_binder(const re_alloc_binder<U, Allocator>& o) throw()
      : inst(o.instance())
   {
   }
#endif
};

template<class T, class Allocator>
inline re_alloc_binder<T, Allocator>::re_alloc_binder(const Allocator &i)
    : inst(i)
{}


//
// class jm_def_alloc
// basically a standard allocator that only allocates bytes...
//
class jm_def_alloc
{
public:
   typedef char         value_type;
   typedef char*        pointer;
   typedef const char*  const_pointer;
   typedef char&        reference;
   typedef const char&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer , const char& ) {  }
   void RE_CALL destroy(pointer ) {  }
   static void * RE_CALL allocate(size_t n)
   {
      return ::operator new(n);
   }
   static void RE_CALL deallocate(void *p, size_t /*n*/ )
   {
      ::operator delete(p);
   }

#ifndef JM_NO_MEMBER_TEMPLATES
   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, jm_def_alloc> other;
   };

   //template <class U>
   //RE_CALL jm_def_alloc(const re_alloc_binder<U, jm_def_alloc>& ) throw() { }
#endif
   jm_def_alloc(const jm_def_alloc&) {}
   jm_def_alloc() {}
};

#if !defined(JM_NO_TRICKY_DEFAULT_PARAM) && !defined(JM_NO_DEFAULT_PARAM)
::list<int> v;
#else
::list<int, jm_def_alloc> v;
#endif


int main() {


; return 0; }
EOF
if { (eval echo configure:3257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - global namespace" 1>&6
cat >> confdefs.h <<\EOF
#define JM_STD std
EOF

have_std_namespace="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_std_namespace" != "yes"; then

cat > conftest.$ac_ext <<EOF
#line 3277 "configure"
#include "confdefs.h"
 
#include <stddef.h>
#include <stdlib.h>
#include <list>
#include "confdefs.h"

template <class T>
inline void RE_CALL jm_destroy(T* t)
{
   t->~T();
}

template <class T>
inline void RE_CALL jm_construct(void* p, const T& t)
{
   new (p) T(t);
}


template<class T, class Allocator>
class re_alloc_binder 
{
   Allocator inst;
public:
   typedef T         value_type;
   typedef T*        pointer;
   typedef const T*  const_pointer;
   typedef T&        reference;
   typedef const T&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   re_alloc_binder(const Allocator& i);
   re_alloc_binder(const re_alloc_binder& o) : inst(o.inst) {}
   re_alloc_binder() : inst() {}

   T* RE_CALL allocate(size_t n)
             { return 0 == n ? 0 : (T*) inst.allocate(n * sizeof(T)); }
   void RE_CALL deallocate(T *p, size_t n)
             { if (0 != n) inst.deallocate((char*)p, n * sizeof (T)); }

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer p, const T& val) { jm_construct(p, val); }
   void RE_CALL destroy(pointer p) { jm_destroy(p); }

   operator const Allocator& () const { return inst; }

#ifndef JM_NO_MEMBER_TEMPLATES
   const Allocator& RE_CALL instance() { return inst; }

   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, Allocator> other;
   };
   
   template <class U>
   RE_CALL re_alloc_binder(const re_alloc_binder<U, Allocator>& o) throw()
      : inst(o.instance())
   {
   }
#endif
};

template<class T, class Allocator>
inline re_alloc_binder<T, Allocator>::re_alloc_binder(const Allocator &i)
    : inst(i)
{}


//
// class jm_def_alloc
// basically a standard allocator that only allocates bytes...
//
class jm_def_alloc
{
public:
   typedef char         value_type;
   typedef char*        pointer;
   typedef const char*  const_pointer;
   typedef char&        reference;
   typedef const char&  const_reference;
   typedef size_t    size_type;
   typedef JM_STDC::ptrdiff_t difference_type;

   pointer RE_CALL address(reference x) const { return &x; }
   const_pointer RE_CALL address(const_reference x) const { return &x; }
   static size_type RE_CALL max_size() { return -1; }
   static void RE_CALL construct(pointer , const char& ) {  }
   void RE_CALL destroy(pointer ) {  }
   static void * RE_CALL allocate(size_t n)
   {
      return ::operator new(n);
   }
   static void RE_CALL deallocate(void *p, size_t /*n*/ )
   {
      ::operator delete(p);
   }

#ifndef JM_NO_MEMBER_TEMPLATES
   template <class U>
   struct rebind
   {
      typedef re_alloc_binder<U, jm_def_alloc> other;
   };

   //template <class U>
   //RE_CALL jm_def_alloc(const re_alloc_binder<U, jm_def_alloc>& ) throw() { }
#endif
   jm_def_alloc(const jm_def_alloc&) {}
   jm_def_alloc() {}
};

#if !defined(JM_NO_TRICKY_DEFAULT_PARAM) && !defined(JM_NO_DEFAULT_PARAM)
__STD::list<int> v;
#else
__STD::list<int, jm_def_alloc> v;
#endif


int main() {


; return 0; }
EOF
if { (eval echo configure:3406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes - namespace __STD" 1>&6
cat >> confdefs.h <<\EOF
#define JM_STD __STD
EOF

have_std_namespace="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no - either STL is not present or in a non-standard namespace." 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_STL 
EOF

cat >> confdefs.h <<\EOF
#define JM_STD 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTION_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_ITERATOR_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_MEMORY_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_LOCALE_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_STRING_H 
EOF

enable_stl="no"

fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
if test "$enable_exceptions" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTION_H 
EOF

else
echo $ac_n "checking for <exception>""... $ac_c" 1>&6
echo "configure:3463: checking for <exception>" >&5
cat > conftest.$ac_ext <<EOF
#line 3465 "configure"
#include "confdefs.h"
 
#include <exception>
#include "confdefs.h"

class bad_expression : public JM_STD::exception
{
   unsigned int code;
public:
   bad_expression(unsigned int err) : code(err) {}
   bad_expression(const bad_expression& e) : JM_STD::exception(e), code(e.code) {}
   bad_expression& operator=(const bad_expression& e)
   {
      JM_STD::exception::operator=(e);
      code = e.code;
      return *this;
   }
   virtual const char* what()const throw();
};


JM_STD::exception e;
JM_STD::bad_exception e3;

int main() {


; return 0; }
EOF
if { (eval echo configure:3495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTION_H 
EOF


fi
rm -f conftest*
fi

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for <iterator>""... $ac_c" 1>&6
echo "configure:3517: checking for <iterator>" >&5
cat > conftest.$ac_ext <<EOF
#line 3519 "configure"
#include "confdefs.h"
 
#include <iterator>


int main() {


; return 0; }
EOF
if { (eval echo configure:3530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_ITERATOR_H 
EOF


fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for <algorithm>""... $ac_c" 1>&6
echo "configure:3551: checking for <algorithm>" >&5
cat > conftest.$ac_ext <<EOF
#line 3553 "configure"
#include "confdefs.h"
 
#include <algorithm>
#include "confdefs.h"


int main() {


; return 0; }
EOF
if { (eval echo configure:3565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
need_algo="yes"

fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$need_algo" = "yes"; then
echo $ac_n "checking for <algo>""... $ac_c" 1>&6
echo "configure:3583: checking for <algo>" >&5
cat > conftest.$ac_ext <<EOF
#line 3585 "configure"
#include "confdefs.h"
 
#include <algo>


int main() {


; return 0; }
EOF
if { (eval echo configure:3596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_USE_ALGO 
EOF


else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no - disabling STL support" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_STL 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_EXCEPTION_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_ITERATOR_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_MEMORY_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_LOCALE_H 
EOF

cat >> confdefs.h <<\EOF
#define JM_NO_STRING_H 
EOF

enable_stl="no"

fi
rm -f conftest*

fi


if test "$enable_stl" != "no"; then
echo $ac_n "checking for <memory>""... $ac_c" 1>&6
echo "configure:3643: checking for <memory>" >&5
cat > conftest.$ac_ext <<EOF
#line 3645 "configure"
#include "confdefs.h"
 
#include <memory>
#include "confdefs.h"

JM_STD::allocator<char> a;
JM_STD::allocator<double> d(a);

typedef JM_STD::allocator<char> alloc_type;

alloc_type::JM_NESTED_TEMPLATE_DECL rebind<int>::other o(a);

int main() {


; return 0; }
EOF
if { (eval echo configure:3663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_MEMORY_H 
EOF


fi
rm -f conftest*

fi


if test "$enable_stl" != "no"; then
echo $ac_n "checking for <string>""... $ac_c" 1>&6
echo "configure:3685: checking for <string>" >&5
cat > conftest.$ac_ext <<EOF
#line 3687 "configure"
#include "confdefs.h"
 
#include <string>
#include "confdefs.h"

JM_STD::string a;
//JM_STD::wstring ws;


int main() {


; return 0; }
EOF
if { (eval echo configure:3702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_STRING_H 
EOF


fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for std::basic_string default arguments""... $ac_c" 1>&6
echo "configure:3723: checking for std::basic_string default arguments" >&5
cat > conftest.$ac_ext <<EOF
#line 3725 "configure"
#include "confdefs.h"
 
#include <string>
#include "confdefs.h"

JM_STD::basic_string<char> s1;
JM_STD::basic_string<wchar_t> s2;


int main() {


; return 0; }
EOF
if { (eval echo configure:3740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_STRING_DEF_ARGS 
EOF


fi
rm -f conftest*

fi

echo $ac_n "checking for standard <typeinfo>""... $ac_c" 1>&6
echo "configure:3760: checking for standard <typeinfo>" >&5
cat > conftest.$ac_ext <<EOF
#line 3762 "configure"
#include "confdefs.h"
 
#include <typeinfo>
#include "confdefs.h"

const JM_STD::type_info& i = typeid(wchar_t);
JM_STD::bad_cast bc;


int main() {


; return 0; }
EOF
if { (eval echo configure:3777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_TYPEINFO 
EOF


fi
rm -f conftest*



if test "$enable_stl" != "no"; then
echo $ac_n "checking for <locale>""... $ac_c" 1>&6
echo "configure:3798: checking for <locale>" >&5
cat > conftest.$ac_ext <<EOF
#line 3800 "configure"
#include "confdefs.h"
 
#include <locale>
#include "confdefs.h"

JM_STD::locale l;

int main() {


; return 0; }
EOF
if { (eval echo configure:3813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_LOCALE_H 
EOF


fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for <iostream>""... $ac_c" 1>&6
echo "configure:3834: checking for <iostream>" >&5
cat > conftest.$ac_ext <<EOF
#line 3836 "configure"
#include "confdefs.h"
 
#include <iostream>
#include <locale>
#include "confdefs.h"


int main() {

 JM_STD::locale l;
 JM_STD::cout.imbue(l);
 JM_STD::cout << "some text" << JM_STD::endl;

; return 0; }
EOF
if { (eval echo configure:3852: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_OLD_IOSTREAM 
EOF


fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for std::distance""... $ac_c" 1>&6
echo "configure:3873: checking for std::distance" >&5
cat > conftest.$ac_ext <<EOF
#line 3875 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 int i, *j, *k;
 i = JM_STD::distance(j, k);

; return 0; }
EOF
if { (eval echo configure:3889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_DISTANCE_T 1
EOF

have_dist="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_dist" != "yes"; then
cat > conftest.$ac_ext <<EOF
#line 3908 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 int i, *j, *k;
 JM_STD::distance(j, k, i);

; return 0; }
EOF
if { (eval echo configure:3922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_DISTANCE_T 2
EOF

have_dist="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_DISTANCE_T 3
EOF

have_dist="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
echo $ac_n "checking for standard iterator syntax""... $ac_c" 1>&6
echo "configure:3948: checking for standard iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 3950 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::iterator<JM_STD::output_iterator_tag, char, JM_STDC::ptrdiff_t, char*, char&> oi;
 JM_STD::iterator<JM_STD::input_iterator_tag, char, JM_STDC::ptrdiff_t, char*, char&> ii;
 JM_STD::iterator<JM_STD::forward_iterator_tag, char, JM_STDC::ptrdiff_t, char*, char&> fi;
 JM_STD::iterator<JM_STD::bidirectional_iterator_tag, char, JM_STDC::ptrdiff_t, char*, char&> bi;
 JM_STD::iterator<JM_STD::random_access_iterator_tag, char, JM_STDC::ptrdiff_t, char*, char&> ri;

; return 0; }
EOF
if { (eval echo configure:3967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_ITERATOR_T 1
EOF

have_si="yes"
have_oi="yes"
have_ii="yes"
have_fi="yes"
have_bi="yes"
have_ri="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
cat > conftest.$ac_ext <<EOF
#line 3991 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::iterator<JM_STD::output_iterator_tag, char, JM_STDC::ptrdiff_t> oi;
 JM_STD::iterator<JM_STD::input_iterator_tag, char, JM_STDC::ptrdiff_t> ii;
 JM_STD::iterator<JM_STD::forward_iterator_tag, char, JM_STDC::ptrdiff_t> fi;
 JM_STD::iterator<JM_STD::bidirectional_iterator_tag, char, JM_STDC::ptrdiff_t> bi;
 JM_STD::iterator<JM_STD::random_access_iterator_tag, char, JM_STDC::ptrdiff_t> ri;

; return 0; }
EOF
if { (eval echo configure:4008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_ITERATOR_T 2
EOF

have_si="yes"
have_oi="yes"
have_ii="yes"
have_fi="yes"
have_bi="yes"
have_ri="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
fi
rm -f conftest*

fi



if test "$enable_stl" != "no" && test "$have_oi" != "yes"; then
echo $ac_n "checking for output iterator syntax""... $ac_c" 1>&6
echo "configure:4036: checking for output iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 4038 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::output_iterator oi;

; return 0; }
EOF
if { (eval echo configure:4051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_OI_T 3
EOF

have_oi="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_OI_T 0
EOF

have_oi="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
echo $ac_n "checking for input iterator syntax""... $ac_c" 1>&6
echo "configure:4077: checking for input iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 4079 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::input_iterator<char, JM_STDC::ptrdiff_t> oi;

; return 0; }
EOF
if { (eval echo configure:4092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_II_T 3
EOF

have_ii="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
cat > conftest.$ac_ext <<EOF
#line 4111 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::input_iterator<char> oi;

; return 0; }
EOF
if { (eval echo configure:4124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_II_T 4
EOF

have_ii="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_II_T 0
EOF

have_ii="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_fi" != "yes"; then
echo $ac_n "checking for forward iterator syntax""... $ac_c" 1>&6
echo "configure:4150: checking for forward iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 4152 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::forward_iterator<int, JM_STDC::ptrdiff_t> oi;

; return 0; }
EOF
if { (eval echo configure:4165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_FI_T 3
EOF

have_fi="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_FI_T 0
EOF

have_fi="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_bi" != "yes"; then
echo $ac_n "checking for bidirectional iterator syntax""... $ac_c" 1>&6
echo "configure:4191: checking for bidirectional iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 4193 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::bidirectional_iterator<int, JM_STDC::ptrdiff_t> oi;

; return 0; }
EOF
if { (eval echo configure:4206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_BI_T 3
EOF

have_bi="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_BI_T 0
EOF

have_bi="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no" && test "$have_ri" != "yes"; then
echo $ac_n "checking for random access iterator syntax""... $ac_c" 1>&6
echo "configure:4232: checking for random access iterator syntax" >&5
cat > conftest.$ac_ext <<EOF
#line 4234 "configure"
#include "confdefs.h"
 
#include <iterator>
#include "confdefs.h"


int main() {

 JM_STD::random_access_iterator<int, JM_STDC::ptrdiff_t> oi;

; return 0; }
EOF
if { (eval echo configure:4247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define JM_RI_T 3
EOF

have_ri="yes"

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_RI_T 0
EOF

have_ri="yes"
fi
rm -f conftest*

fi

if test "$enable_stl" != "no"; then
echo $ac_n "checking for output iterator assignment""... $ac_c" 1>&6
echo "configure:4273: checking for output iterator assignment" >&5
cat > conftest.$ac_ext <<EOF
#line 4275 "configure"
#include "confdefs.h"
 
#include "confdefs.h"
#include <iterator>
#ifdef JM_OLD_IOSTREAM
#include <iostream.h>
JM_STD::ostream_iterator<char> a(cout);
JM_STD::ostream_iterator<char> b(cout);
#else
#include <iostream>
JM_STD::ostream_iterator<char> a(JM_STD::cout);
JM_STD::ostream_iterator<char> b(JM_STD::cout);
#endif

#include <list>
#if !defined(JM_NO_TRICKY_DEFAULT_PARAM) && !defined(JM_NO_DEFAULT_PARAM)
typedef JM_STD::list<int> list_type;
#else
typedef JM_STD::list<int, jm_def_alloc> list_type;
#endif

list_type v;

JM_STD:: back_insert_iterator<list_type> c(v);
JM_STD:: back_insert_iterator<list_type> d(v);


int main() {

	a = b;
	c = d;

; return 0; }
EOF
if { (eval echo configure:4310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6

else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  echo "$ac_t""no" 1>&6
cat >> confdefs.h <<\EOF
#define JM_NO_OI_ASSIGN 
EOF


fi
rm -f conftest*

fi





#
# generate include dependencies
#
ac_all_h=""
ac_all_dep=""
for file in include/jm/*.h
do
	if test "$file" != 'include/jm/*.h'; then
		ac_all_h="$ac_all_h ../$file"
		ac_all_dep="$ac_all_dep $file"
	fi
done
#echo "$ac_all_h"

#
# generate source dependencies
#
ac_all_o=""
ac_rules=""
ac_all_cpp=""
cat ./lib/makefile.org > ./lib/makefile.in
for file in src/*.cpp src/*.c
do
	if test "$file" != 'src/*.cpp' && test "$file" != 'src/*.c'; then
				ac_all_dep="$ac_all_dep $file"
		ac_all_cpp="$ac_all_cpp $file"
		root=`echo "$file" | sed 's/src\/\(.*\)\..*/\1/g'`
				ac_all_o="$ac_all_o $root$ac_obj_ext"
		echo >> ./lib/makefile.in
		echo >> ./lib/makefile.in
		echo "$root$ac_obj_ext"': $(ALL_H) '"../$file" >> ./lib/makefile.in
		echo '	$(CPP) $(CPP_PROJ)'" ../$file" >> ./lib/makefile.in
		echo '	$(AR) -rc lib$(LIBNAME).a'" $root$ac_obj_ext" >> ./lib/makefile.in
	fi
done

echo "$ac_rules" >> ./lib/makefile.in






if test "$enable_wstring" != "no"; then
ac_regress="r1$ac_exe_ext r4$ac_exe_ext"
else
ac_regress="r1$ac_exe_ext"
fi





if test "$enable_ms_windows" = "no"; then
cat >> confdefs.h <<\EOF
#define JM_NO_WIN32 
EOF

fi


#
# OK final test for possible link time problems:
#
cat > conf2.h << EOF

#include "confdefs.h"
#include <stdlib.h>

template <class T>
class factorial
{
public:
	factorial();
	T operator()(T);
};

template <class T>
factorial<T>::factorial()
{
}

template <class T>
T factorial<T>::operator()(T t)
{
	T result = 1;
	for(T i = 1; i <= t; ++i)
	{
		result *= i;
	}
	return result;
}

int conf2_test();


EOF

cat > conf2.cpp << EOF

#include "conf2.h"

int conf2_test()
{
	factorial<int> f;
	return f(8);
}

EOF

old_libs="$LIBS"

LIBS="conf2.cpp $old_libs"

echo $ac_n "checking for link time template merging""... $ac_c" 1>&6
echo "configure:4448: checking for link time template merging" >&5
cat > conftest.$ac_ext <<EOF
#line 4450 "configure"
#include "confdefs.h"

#include "conf2.h"

int main() {

	factorial<int> g;
	g(5);
	conf2_test();

; return 0; }
EOF
if { (eval echo configure:4463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_MERGE 
EOF

echo "$ac_t""no" 1>&6
echo "$ac_t""    Warning - $0 has determined that your compiler can not merge" 1>&6 
echo "$ac_t""    template instances, you may have problems linking to libregex++.a - " 1>&6
echo "$ac_t""    see the FAQ for further details." 1>&6


fi
rm -f conftest*

if eval "$CXX $CXXFLAGS -c conf2.cpp" && eval "ar -rc libconf2.a conf2$ac_obj_ext"; then
LIBS="-L./ -lconf2 $old_libs"

echo $ac_n "checking for link time template merging from archive files""... $ac_c" 1>&6
echo "configure:4487: checking for link time template merging from archive files" >&5
cat > conftest.$ac_ext <<EOF
#line 4489 "configure"
#include "confdefs.h"

#include "conf2.h"

int main() {

	factorial<int> g;
	g(5);
	conf2_test();

; return 0; }
EOF
if { (eval echo configure:4502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_MERGE_A 
EOF

echo "$ac_t""no" 1>&6
echo "$ac_t""    Warning - $0 has determined that your compiler can not merge " 1>&6
echo "$ac_t""    template instances, if these are located inside an archive file," 1>&6
echo "$ac_t""    you may have problems linking to libregex++.a - see the FAQ for" 1>&6
echo "$ac_t""    further details." 1>&6


fi
rm -f conftest*

else

echo "$ac_t""Unable to create library archive" 1>&6

fi


#
# cleanup
#
rm -f conf2.h
rm -f conf2.cpp
rm -f "conf2$ac_obj_ext"
rm -f libconf2.a
LIBS="$old_libs"

cat > conf2.h << EOF

#include "confdefs.h"
#include <stdlib.h>

template <class T>
class factorial
{
public:
	factorial();
	T operator()(T);
};

template <class T>
factorial<T>::factorial()
{
}

template <class T>
T factorial<T>::operator()(T t)
{
	T result = 1;
	switch(t)
	{
	case 2:
		for(T i = 1; i <= 2; ++i)
		{
			result *= i;
		}
		return result;
	case 3:
		for(T i = 1; i <= 3; ++i)
		{
			result *= i;
		}
		return result;
	case 4:
		for(T i = 1; i <= 4; ++i)
		{
			result *= i;
		}
		return result;
	case 5:
		for(T i = 1; i <= 5; ++i)
		{
			result *= i;
		}
		return result;
	case 6:
		for(T i = 1; i <= 6; ++i)
		{
			result *= i;
		}
		return result;
	case 7:
		for(T i = 1; i <= 7; ++i)
		{
			result *= i;
		}
		return result;
	default:
		for(T i = 1; i <= t; ++i)
		{
			result *= i;
		}
		return result;
	}
	return 0;
}

int conf2_test();


EOF

cat > conf2.cpp << EOF

#include "conf2.h"

int conf2_test()
{
	factorial<int> f;
	return f(8);
}

EOF

old_libs="$LIBS"

LIBS="conf2.cpp $old_libs"

echo $ac_n "checking for link time template merging of switch statements""... $ac_c" 1>&6
echo "configure:4631: checking for link time template merging of switch statements" >&5
cat > conftest.$ac_ext <<EOF
#line 4633 "configure"
#include "confdefs.h"

#include "conf2.h"

int main() {

	factorial<int> g;
	g(5);
	conf2_test();

; return 0; }
EOF
if { (eval echo configure:4646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
  rm -rf conftest*
  echo "$ac_t""yes" 1>&6
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  cat >> confdefs.h <<\EOF
#define JM_NO_TEMPLATE_SWITCH_MERGE 
EOF

echo "$ac_t""no" 1>&6
echo "$ac_t""    Warning - $0 has determined that your compiler can not merge" 1>&6 
echo "$ac_t""    template instances, if those instances contain switch statements, " 1>&6
echo "$ac_t""    you may have problems linking to libregex++.a - " 1>&6
echo "$ac_t""    see the FAQ for further details." 1>&6


fi
rm -f conftest*

#
# cleanup
#
rm -f conf2.h
rm -f conf2.cpp
LIBS="$old_libs"



cat >> confdefs.h <<\EOF
#define JM_AUTO_CONF 1
EOF


echo "$ac_t""***" 1>&6
echo "$ac_t""$0: setting up headers..." 1>&6
echo "$ac_t""***" 1>&6
trap '' 1 2 15

trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15

test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

# Any assignment to VPATH causes Sun make to only execute
# the first set of double-colon rules, so remove it if not needed.
# If there is a colon in the path, we need to keep it.
if test "x$srcdir" = x.; then
  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
fi

trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15

DEFS=-DHAVE_CONFIG_H

# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}

echo creating $CONFIG_STATUS
rm -f $CONFIG_STATUS
cat > $CONFIG_STATUS <<EOF
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
# $0 $ac_configure_args
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.

ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
for ac_option
do
  case "\$ac_option" in
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
    echo "$CONFIG_STATUS generated by autoconf version 2.12"
    exit 0 ;;
  -help | --help | --hel | --he | --h)
    echo "\$ac_cs_usage"; exit 0 ;;
  *) echo "\$ac_cs_usage"; exit 1 ;;
  esac
done

ac_given_srcdir=$srcdir

trap 'rm -fr `echo "lib/makefile demo/jgrep/makefile demo/timer/makefile demo/regress/makefile makefile ./include/jm/jm_opt.h:jm_opt.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF

# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
 s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@bindir@%$bindir%g
s%@sbindir@%$sbindir%g
s%@libexecdir@%$libexecdir%g
s%@datadir@%$datadir%g
s%@sysconfdir@%$sysconfdir%g
s%@sharedstatedir@%$sharedstatedir%g
s%@localstatedir@%$localstatedir%g
s%@libdir@%$libdir%g
s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@CXX@%$CXX%g
s%@ac_exe_ext@%$ac_exe_ext%g
s%@ac_obj_ext@%$ac_obj_ext%g
s%@ac_all_o@%$ac_all_o%g
s%@ac_all_h@%$ac_all_h%g
s%@ac_all_cpp@%$ac_all_cpp%g
s%@ac_all_dep@%$ac_all_dep%g
s%@ac_regress@%$ac_regress%g

CEOF
EOF

cat >> $CONFIG_STATUS <<\EOF

# 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_cmds=90 # Maximum number of lines to put in a sed script.
ac_file=1 # Number of current file.
ac_beg=1 # First line for current file.
ac_end=$ac_max_sed_cmds # 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" conftest.subs > conftest.s$ac_file
  else
    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
  fi
  if test ! -s conftest.s$ac_file; then
    ac_more_lines=false
    rm -f conftest.s$ac_file
  else
    if test -z "$ac_sed_cmds"; then
      ac_sed_cmds="sed -f conftest.s$ac_file"
    else
      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
    fi
    ac_file=`expr $ac_file + 1`
    ac_beg=$ac_end
    ac_end=`expr $ac_end + $ac_max_sed_cmds`
  fi
done
if test -z "$ac_sed_cmds"; then
  ac_sed_cmds=cat
fi
EOF

cat >> $CONFIG_STATUS <<EOF

CONFIG_FILES=\${CONFIG_FILES-"lib/makefile demo/jgrep/makefile demo/timer/makefile demo/regress/makefile makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
  case "$ac_file" in
  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
  *) ac_file_in="${ac_file}.in" ;;
  esac

  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.

  # Remove last slash and all that follows it.  Not all systems have dirname.
  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
    # The file is in a subdirectory.
    test ! -d "$ac_dir" && mkdir "$ac_dir"
    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
    # A "../" for each directory in $ac_dir_suffix.
    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
  else
    ac_dir_suffix= ac_dots=
  fi

  case "$ac_given_srcdir" in
  .)  srcdir=.
      if test -z "$ac_dots"; then top_srcdir=.
      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
  *) # Relative path.
    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
    top_srcdir="$ac_dots$ac_given_srcdir" ;;
  esac


  echo creating "$ac_file"
  rm -f "$ac_file"
  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
  case "$ac_file" in
  *Makefile*) ac_comsub="1i\\
# $configure_input" ;;
  *) ac_comsub= ;;
  esac

  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
  sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*

# 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='\3'
ac_dD='%g'
# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
ac_uB='\([ 	]\)%\1#\2define\3'
ac_uC=' '
ac_uD='\4%g'
# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
ac_eB='$%\1#\2define\3'
ac_eC=' '
ac_eD='%g'

if test "${CONFIG_HEADERS+set}" != set; then
EOF
cat >> $CONFIG_STATUS <<EOF
  CONFIG_HEADERS="./include/jm/jm_opt.h:jm_opt.in"
EOF
cat >> $CONFIG_STATUS <<\EOF
fi
for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
  case "$ac_file" in
  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
  *) ac_file_in="${ac_file}.in" ;;
  esac

  echo creating $ac_file

  rm -f conftest.frag conftest.in conftest.out
  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
  cat $ac_file_inputs > conftest.in

EOF

# Transform confdefs.h into a sed script conftest.vals that substitutes
# the proper values into config.h.in to produce config.h.  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.vals
cat > conftest.hdr <<\EOF
s/[\\&%]/\\&/g
s%[\\$`]%\\&%g
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
s%ac_d%ac_u%gp
s%ac_u%ac_e%gp
EOF
sed -n -f conftest.hdr confdefs.h > conftest.vals
rm -f conftest.hdr

# 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.vals <<\EOF
s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
EOF

# Break up conftest.vals because some shells have a limit on
# the size of here documents, and old seds have small limits too.

rm -f conftest.tail
while :
do
  ac_lines=`grep -c . conftest.vals`
  # grep -c gives empty output for an empty file on some AIX systems.
  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
  # Write a limited-size here document to conftest.frag.
  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
  echo 'CEOF
  sed -f conftest.frag conftest.in > conftest.out
  rm -f conftest.in
  mv conftest.out conftest.in
' >> $CONFIG_STATUS
  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
  rm -f conftest.vals
  mv conftest.tail conftest.vals
done
rm -f conftest.vals

cat >> $CONFIG_STATUS <<\EOF
  rm -f conftest.frag conftest.h
  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
  cat conftest.in >> conftest.h
  rm -f conftest.in
  if cmp -s $ac_file conftest.h 2>/dev/null; then
    echo "$ac_file is unchanged"
    rm -f conftest.h
  else
    # Remove last slash and all that follows it.  Not all systems have dirname.
      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
      # The file is in a subdirectory.
      test ! -d "$ac_dir" && mkdir "$ac_dir"
    fi
    rm -f $ac_file
    mv conftest.h $ac_file
  fi
fi; done

EOF
cat >> $CONFIG_STATUS <<EOF

EOF
cat >> $CONFIG_STATUS <<\EOF

exit 0
EOF
chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1

echo "$ac_t""***" 1>&6
echo "$ac_t""$0: regex++ package tuned for use with \"${CXX}\" compiler." 1>&6
echo "$ac_t""$0: To restore original settings - copy jm_opt.in to ./include/jm/jm_opt.h" 1>&6
echo "$ac_t""***" 1>&6

#post processing cleanup:
sed 's%^ 	*#[ 	]*undef[ 	][ 	]*\(.*\)[ 	]*$%/* #define \1 */%' include/jm/jm_opt.h > jm_opt.out
cat jm_opt.out > include/jm/jm_opt.h
sed 's%\(#[ 	]*\)undef[ 	]%\1define %' include/jm/jm_opt.h > jm_opt.out
cat jm_opt.out > include/jm/jm_opt.h
rm -f jm_opt.out
















