#!/bin/sh


#
# The Apache Software License, Version 1.1
# 
# Copyright (c) 1999 The Apache Software Foundation.  All rights 
# reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer. 
# 
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
# 
# 3. The end-user documentation included with the redistribution,
#    if any, must include the following acknowledgment:  
#       "This product includes software developed by the
#        Apache Software Foundation (http://www.apache.org/)."
#    Alternately, this acknowledgment may appear in the software itself,
#    if and wherever such third-party acknowledgments normally appear.
# 
# 4. The names "Xerces" and "Apache Software Foundation" must
#    not be used to endorse or promote products derived from this
#    software without prior written permission. For written 
#    permission, please contact apache\@apache.org.
# 
# 5. Products derived from this software may not be called "Apache",
#    nor may "Apache" appear in their name, without prior written
#    permission of the Apache Software Foundation.
# 
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# ====================================================================
# 
# This software consists of voluntary contributions made by many
# individuals on behalf of the Apache Software Foundation, and was
# originally based on software copyright (c) 1999, International
# Business Machines, Inc., http://www.ibm.com .  For more information
# on the Apache Software Foundation, please see
# <http://www.apache.org/>.
# 
#
# $Log: runConfigure,v $
# Revision 1.3  1999/12/02 18:10:51  dirkx
# Changed exit codes from -1 to '1'. Added indirection.
#
# Date: Thu, 2 Dec 1999 17:47:39 +0000
# From: Jonathan McDowell <noodles@earth.li>
# Reply-To: xerces-dev@xml.apache.org
# To: xerces-dev@xml.apache.org, rahulj@apache.org
# Subject: Re: runConfigure script & bash
#
#
# On Mon, Nov 29, 1999 at 10:29:13AM -0800, Rahul Jain wrote:
#
# > > I'm quite happy to produce a patch that makes it work under both
# > > FreeBSD's sh and bash - I would assume this would work under most sh
# > > like shells.
# > Please post the changes for FreeBSD and I will test the changes on
# > other unix's and do the integration.
#
# I sat down to do this today and found that it can be trivially fixed by
# changing all the "exit -1" instances to "exit 1" - it seems the /bin/sh
# with FreeBSD doesn't like negative result codes. It seems a bit
# pointless to submit a patch for this, so can someone with CVS access
# change this please?
#
# J.
#
# --
#
# PR:
# Obtained from:
# Submitted by:
# Reviewed by:
#
# Revision 1.2  1999/11/12 19:12:40  abagchi
# Changed instances of XML4CROOT to XERCESCROOT
#
# Revision 1.1.1.1  1999/11/09 01:09:26  twl
# Initial checkin
#
# Revision 1.4  1999/11/08 20:43:34  rahul
# Swat for adding in Product name and CVS comment log variable.
#
#

#
# runConfigure : This script will run the "configure" script for the appropriate platform
# Only supported platforms are recognized

usage()
{
    echo "runConfigure: Helper script to run \"configure\" for one of the supported platforms"
    echo "Usage: runConfigure \"options\""
    echo "       where options may be any of the following:"
    echo "       -p <platform> (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11')"
    echo "       -c <C compiler name> (e.g. gcc or xlc)"
    echo "       -x <C++ compiler name> (e.g. g++ or xlC)"
    echo "       -d (specifies that you want to build debug version)"
    echo "       -h (get help on the above commands)"
}

ERROR_EXIT_CODE=1

if test ${1}o = "o"; then
   usage
   exit ${ERROR_EXIT_CODE}
fi

if test ${XERCESCROOT}o = "o"; then
   echo ERROR : You have not set your XERCESCROOT environment variable
   echo Though this environment variable has nothing to do with creating makefiles,
   echo this is just a general warning to prevent you from pitfalls in future. Please
   echo set an environment variable called XERCESCROOT to indicate where you installed
   echo the XERCES-C files, and run this command again to proceed. See the documentation
   echo for an example if you are still confused.
   exit ${ERROR_EXIT_CODE}
fi

if test $1 = "-h"; then
   usage
   exit ${ERROR_EXIT_CODE}
fi

# Get the command line parameters
set -- `getopt p:c:x:dm:n:t:r:l:z:h $*`
if [ $? != 0 ]
   then
   usage
   exit ${ERROR_EXIT_CODE}
fi

# Set up the default values for each parameter
debug=off                # by default debug is off
transcoder=native        # by default use native transcoder
msgloader=iconv          # by default use native transcoder
netaccessor=fileonly     # by default use fileonly

for i in $*
   do
   case $i in
   -p)
        platform=$2; shift 2;;

   -c)
        ccompiler=$2; shift 2;;

   -x)
        cppcompiler=$2; shift 2;;

   -d)
        debug=on; shift;;

   -h)
        usage
        exit ${ERROR_EXIT_CODE};;

   --)
        shift; break;;
   esac
done

echo "Generating makefiles with the following options ..."
echo "Platform: $platform"
echo "C Compiler: $ccompiler"
echo "C++ Compiler: $cppcompiler"
if test $debug = "off"; then
    echo "Debug is OFF"
    debugflag="-w -O";
else
    echo "Debug is ON"
    debugflag="-g";
fi

# Now check if the options are correct or not, bail out if incorrect
case $platform in
   aix | linux | solaris | hp-10 | hp-11)
       # platform has been recognized
       ;;
   *)
      echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
      exit ${ERROR_EXIT_CODE};;
esac

# Set the C compiler and C++ compiler environment variables
CC=$ccompiler; export CC
CXX=$cppcompiler; export CXX

case $cppcompiler in
   xlC | xlc | xlC_r | xlc_r)
       LDFLAGS="-lC"; export LDFLAGS
       LIBS="-L/usr/lpp/xlC/lib"; export LIBS ;;

   g++ | c++)
       LDFLAGS="-lc"; export LDFLAGS
       LIBS="-L/usr/local/lib"; export LIBS ;;

   cc | CC)
       LDFLAGS="-lC"; export LDFLAGS
       LIBS="-L/usr/lib -L/usr/ccs/lib"; export LIBS ;;

   acc | aCC)
       LDFLAGS="-lC"; export LDFLAGS
       LIBS="-L/usr/lib -L/opt/aCC/lib"; export LIBS ;;

   *)
      echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..."
      ;;
esac

# Set the extra C and C++ compiler flags
CXXFLAGS="$debugflag $compileroption"; export CXXFLAGS
CFLAGS="$debugflag $compileroption"; export CFLAGS

echo
rm -f config.cache
rm -f config.log
rm -f config.status
./configure

echo
echo If the result of the above commands look OK to you, go to the directory
echo ${XERCESCROOT}/src and type \"make\" to make the XERCES-C system.

exit 0;

