#!/bin/sh # # Copyright 1999-2004 The Apache Software Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # # runConfigure: # This script will run the "configure" script for the appropriate # platform. Only supported platforms are recognized. # # The following variables are defined and exported at the end of this # script. # # LIBS # LDFLAGS # CXXFLAGS # 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 (accepts 'aix', 'linux', 'freebsd', 'netbsd', 'solaris', 'hp-10', 'hp-11', 'irix', 'tru64', 'macosx')" echo " -c (e.g. gcc, cc, xlc)" echo " -x (e.g. g++, CC, xlC)" echo " -d (specifies that you want to build debug version)" echo " -t can be 'icu' (everything else means default)" echo " -r can be 'pthread' or 'dce' (only used on HP-11)" echo " -b (accepts '64', '32')" echo " -P " echo " -l " echo " -z " echo " -C " echo " -h (to get help on the above commands)" } ERROR_EXIT_CODE=1 if test ${1}o = "o"; then usage exit ${ERROR_EXIT_CODE} fi if test ${XALANCROOT}o = "o"; then echo ERROR : You have not set your XALANCROOT 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 XALANCROOT to indicate where you installed echo the XALAN-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 if test -x /bin/getopt -o -x /usr/bin/getopt; then set -- `getopt C:p:P:c:x:dm:n:t:r:b:l:z:h $*` else set -- `getopts C:p:P:c:x:dm:n:t:r:b:l:z:h $*` fi if [ $? != 0 ] then usage exit ${ERROR_EXIT_CODE} fi # Set up the default values for each parameter debug=off # by default debug is off bitsToBuild=32 # by default 32 bit build assumed transcoder=default # by default use default transcoder while [ $# -gt 0 ] do case $1 in -p) platform=$2; shift 2;; -c) ccompiler=$2; shift 2;; -x) cppcompiler=$2; shift 2;; -d) debug=on; shift;; -t) transcoder=$2; shift 2;; -r) thread=$2; shift 2;; -b) bitsToBuild=$2; shift 2;; -P) configureoptions="$configureoptions --prefix=$2"; shift 2;; -l) linkeroptions="$linkeroptions $2"; shift 2;; -z) compileroptions="$compileroptions $2"; shift 2;; -C) configureoptions="$configureoptions $2"; shift 2;; -h) usage exit ${ERROR_EXIT_CODE};; --) shift; break;; *) echo "unknown option $1" usage exit ${ERROR_EXIT_CODE};; esac done echo "Generating makefiles with the following options ..." echo "Platform: $platform" echo "C Compiler: $ccompiler" echo "C++ Compiler: $cppcompiler" echo "Extra compile options: $compileroptions" echo "Extra link options: $linkeroptions" echo "Transcoder: $transcoder" echo "Thread option: $thread" echo "bitsToBuild option: $bitsToBuild" echo "Extra configure options: $configureoptions" # # Now check if the options are correct or not, bail out if incorrect # case $platform in aix | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | irix | tru64 | macosx) # platform has been recognized ;; *) echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help." exit ${ERROR_EXIT_CODE};; esac # # Enable debugging or not... # if test $debug = "off"; then echo "Debug is OFF" if test $platform = "linux"; then if test $cppcompiler = "icpc"; then debugflag="-O3 -DNDEBUG"; else debugflag="-O2 -DNDEBUG"; fi else debugflag="-O -DNDEBUG"; fi else echo "Debug is ON" debugflag="-g"; fi # # Check for the bitsToBuild option # # # aix | linux | hp-11 | solaris | # hp-10 | freebsd | netbsd | irix | openserver | unixware | os400 | ptx | tru64 | macosx # if test $bitsToBuild = 64; then bitstobuildDefines=" -DXML_BITSTOBUILD_64 " bitstobuildLink=" " if test $platform; then case $platform in solaris) bitstobuildDefines=" $bitstobuildDefines -xarch=v9 " bitstobuildLink=" -xarch=v9 " ;; aix) bitstobuildDefines=" $bitstobuildDefines -q64 -qwarn64 " ;; hp-11) bitstobuildDefines=" $bitstobuildDefines +DA2.0W " bitstobuildLink=" +DA2.0W " ;; linux) bitstobuildDefines=" $bitstobuildDefines " ;; *) ;; esac fi elif test $bitsToBuild = 32; then bitstobuildDefines=" " bitstobuildLink=" " if test $platform; then case $platform in solaris) ;; aix) ;; hp-11) bitstobuildDefines=" $bitstobuildDefines +DAportable " ;; linux) ;; *) ;; esac fi else echo "I do not recognize the bitsToBuild '$bitsToBuild'. Please type '${0} -h' for help." exit ${ERROR_EXIT_CODE}; fi # # to export in case it is needed in Makefile.in/Makefine.incl # BITSTOBUILD=$bitsToBuild export BITSTOBUILD # # Now check whether to use 'icu' as transcoder # TRANSCODER= if test $transcoder; then case $transcoder in icu) if test ${ICUROOT}o = "o"; then echo '***Error*** ICUROOT environment variable not defined. Exiting...'; exit ${ERROR_EXIT_CODE}; fi transcodingDefines="-I${ICUROOT}/include"; transcodingLibs="-L${ICUROOT} -L${ICUROOT}/lib -L${ICUROOT}/data"; TRANSCODER=ICU;; default) ;; *) echo "Unknown transcoder '$transcoder'. Using default." ;; esac fi export TRANSCODER # # Check for the threading option # threadingLibs="-lpthread" if test $platform = "hp-11"; then if test $thread; then case $thread in pthread) ;; dce) threadingLibs="-lcma"; threadingDefines="-D_PTHREADS_DRAFT4 -DXML_USE_DCE" ;; *) echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." exit ${ERROR_EXIT_CODE};; esac fi elif test $platform = "aix"; then threadingLibs="-lpthreads" elif test $platform = "freebsd"; then if test -n "${PTHREAD_LIBS}" ; then threadingLibs="${PTHREAD_LIBS}" threadingDefines="${PTHREAD_CFLAGS}" else threadingLibs="-lpthread" threadingDefines="" fi elif test $platform = "netbsd"; then threadingLibs="-pthread -lpthread" elif test $platform = "hp-10"; then threadingLibs="-lcma" threadingDefines="-DXML_USE_DCE" fi # # Set the C compiler and C++ compiler environment variables # case $cppcompiler in xlC | xlc | xlC_r | xlc_r | g++ | c++ | cc | CC | aCC | cxx | icpc) ;; *) echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..." ;; esac CC="$ccompiler" export CC CXX="$cppcompiler" export CXX # # Set the extra C and C++ compiler flags # CXXFLAGS="$compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines " export CXXFLAGS CFLAGS="$compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines " export CFLAGS LDFLAGS="$LDFLAGS $linkeroptions $bitstobuildLink" export LDFLAGS LIBS="$transcodingLibs $threadingLibs " export LIBS echo rm -f config.cache rm -f config.log rm -f config.status `dirname $0`/configure $configureoptions echo echo If the result of the above commands look OK to you, go to the directory echo ${XALANCROOT}/samples and type \"gmake\" or \"make\" to make the XALAN-C samples. echo echo Note: You must use GNU make to use the Xalan Makefile. exit 0;