#!/bin/sh # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # $Log$ # Revision 1.15 2012/10/02 shathaway # Allow CFLAGS and CXXFLAGS to inherit external environment. # Fix for XALANC-734 # # Revision 1.14 2005/08/16 23:48:26 dmitryh # Addional fix for XALANC-541 # # Revision 1.13 2005/08/16 01:06:47 dmitryh # Fix for XALANC-541 # # Revision 1.12 2005/07/08 17:30:49 dmitryh # Fix for XALANC-526 # # Revision 1.11 2004/04/19 14:54:08 dmitryh # Fix for Bugzilla Bug 28452 # # Revision 1.10 2004/04/06 15:08:44 dmitryh # Changes for a cygwin build # # Revision 1.9 2004/03/03 15:06:39 mhoyt # Patch for Bugzilla 27406 from Bjoern A. Zeeb: FreeBSD threading configuration # # Revision 1.8 2004/02/26 23:10:06 mhoyt # Update to Apache 2.0 License # # Revision 1.7 2004/02/06 08:49:09 dbertoni # Initial changes for HP-UX IA64 port. # # Revision 1.6 2004/02/06 08:39:35 dbertoni # Initial changes for HP-UX IA64 port. # # Revision 1.5 2004/01/06 02:41:25 dbertoni # Changes for Bugzilla 25914. # # Revision 1.4 2003/12/29 00:26:53 dbertoni # Patches for Bugzilla 25361. # # Revision 1.3 2003/12/03 21:52:57 dbertoni # Patch 25180 for iSeries support. # # Revision 1.2 2003/12/02 19:58:50 dbertoni # Patch for Bugzilla 24567. # # Revision 1.1 2003/11/12 20:42:18 dbertoni # Patches for bug 13238. # # Revision 1.4 2003/11/06 01:28:34 dbertoni # Patch for bugzilla 13238. # # Revision 1.3 2003/09/19 20:33:04 dbertoni # Massive copyright update. # # Revision 1.2 2003/07/22 10:59:40 blautenb # FreeBSD and Install patch from Bjoern Zeeb - Bugzilla 13238 # # Revision 1.1 2003/06/29 03:57:53 blautenb # Moved source for sane includes # # Revision 1.19 2003/04/05 05:21:56 blautenb # Fix for bug 18675 # # Revision 1.18 2003/03/20 16:38:32 dbertoni # Updates for Intel compiler on Linux. # # Revision 1.17 2003/02/08 01:39:33 dbertoni # Don't add bitstobuildLink on AIX. # # Revision 1.16 2003/01/05 18:29:54 dbertoni # Bump optimization level on Linux. # # Revision 1.15 2002/12/12 20:58:06 dbertoni # Changes to build outside of the source tree. Fixes Bugzilla 4627. # # Revision 1.14 2002/11/05 05:15:59 dbertoni # Add extra hint about using GNU make. # # Revision 1.13 2002/10/04 23:42:48 dbertoni # Fixed getop problem. # # Revision 1.12 2002/08/05 21:21:02 dbertoni # Fixed statement termination problem. # # Revision 1.11 2002/08/05 20:41:24 dbertoni # Merge in HP changes. # # Revision 1.10 2002/08/05 20:33:54 dbertoni # Changes to implement 32 and 64-bit builds. # # Revision 1.9 2002/08/01 18:36:38 dbertoni # Added support for Intel compiler. # # Revision 1.8 2002/05/06 05:34:06 dbertoni # Implemented multiple compiler options. # # Revision 1.7 2001/11/27 14:29:43 dbertoni # Reverted previous changes. # # Revision 1.5 2001/08/14 16:10:18 dbertoni # Changes from James Berry for Mac OS X support. # # Revision 1.4 2001/05/18 18:24:12 dbertoni # Added $compileroption to CXXFLAGS and CFLAGS. Bug 1810 # # Revision 1.3 2001/04/13 02:53:20 dbertoni # Changes for the TRU64 port. # # Revision 1.2 2001/03/15 15:56:36 dbertoni # Add -D NDEBUG to release builds to disable assertions. # # Revision 1.1 2000/01/27 19:57:43 jdonohue # Preliminary based on Xerces # # Revision 1.1 1999/12/21 01:13:53 jdonohue # Make for linux, etc # # # # # 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', 'openbsd', 'solaris' 'solaris-x86', 'hp-10', 'hp-11', 'hp-11-ia64', 'irix', 'tru64', 'macosx', 'os390', 'os400', 'cygwin' 'mingw-msys')" 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 " -m (accepts 'inmem', 'icu','nls')" echo " -M (example: 'fr_FR'. Default: 'en_US')" echo " -r can be 'pthread' or 'none' (Default: pthread)" 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 # Set up the default values for each parameter ccompiler=gcc # Use GCC as the default compiler cppcompiler=g++ # Use GCC as the default compiler debug=off # by default debug is off bitsToBuild=32 # by default 32 bit build assumed transcoder=default # by default use default transcoder localSys=inmem # by default use inmem locale system locale=en_US # by default use US locale thread=pthread # by default, use pthread # 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:m:M:r:b:l:z:h $*` if [ $? != 0 ] then usage exit ${ERROR_EXIT_CODE} fi 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;; -m) localSys=$2; shift 2;; -M) locale=$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 else while getopts "C:p:P:c:x:dm:n:t:m:M:r:b:l:z:h" switch; do case $switch in p) platform=$OPTARG;; c) ccompiler=$OPTARG;; x) cppcompiler=$OPTARG;; d) debug=on;; t) transcoder=$OPTARG;; r) thread=$OPTARG;; b) bitsToBuild=$OPTARG;; z) compileroptions="$compileroptions $OPTARG";; l) linkeroptions="$linkeroptions $OPTARG";; m) localSys=$OPTARG;; M) locale=$OPTARG;; P) configureoptions="$configureoptions --prefix=$OPTARG";; C) configureoptions="$configureoptions $OPTARG";; h) usage exit ${ERROR_EXIT_CODE};; *) echo "unknown option -$switch $OPTARG" usage exit ${ERROR_EXIT_CODE};; esac done fi 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 "Localization system: $localSys" echo "Locale: $locale" 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 | openbsd | solaris | solaris-x86 | hp-11 | hp-11-ia64 | irix | tru64 | macosx | os390 | os400 | cygwin | mingw-msys) # 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 = "os400"; then debugflag=""; elif test $platform = "os390"; then debugflag="-DNDEBUG"; elif test $platform = "linux"; then debugflag="-O3 -DNDEBUG"; elif test $cppcompiler = "aCC"; then if test $platform = "hp-11-ia64"; 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 | hp-11-ia64 | solaris | # freebsd | netbsd | openbsd | irix | os390 | os400 | tru64 | macosx # if test $bitsToBuild = 64; then bitstobuildDefines="" bitstobuildLink="" if test $platform; then case $platform in solaris) bitstobuildDefines=" -xarch=v9 " bitstobuildLink=" -xarch=v9 " ;; solaris-x86) bitstobuildDefines=" -m64 " bitstobuildLink=" -m64 " ;; aix) bitstobuildDefines=" -q64 -qwarn64 " ;; hp-11) bitstobuildDefines=" +DA2.0W " bitstobuildLink=" +DA2.0W " ;; hp-11-ia64) bitstobuildDefines=" +DD64 " bitstobuildLink=" +DD64 " ;; *) ;; esac fi elif test $bitsToBuild = 32; then bitstobuildDefines="" bitstobuildLink="" 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"; if test $platform != "os390"; then transcodingLibs="-L${ICUROOT} -L${ICUROOT}/lib -L${ICUROOT}/data"; fi TRANSCODER=icu;; default) ;; *) echo "Unknown transcoder '$transcoder'. Using default." ;; esac fi export TRANSCODER XALAN_LOCALE_SYSTEM= if test $localSys; then case $localSys in icu) if test ${ICUROOT}o = "o"; then echo '***Error*** ICUROOT environment variable not defined. Exiting...' exit ${ERROR_EXIT_CODE}; fi XALAN_LOCALE_SYSTEM=icu;; inmem) XALAN_LOCALE_SYSTEM=inmem;; nls) XALAN_LOCALE_SYSTEM=nls;; default) XALAN_LOCALE_SYSTEM=inmem;; *) echo "Unknown locale '$localSys'. Using default." esac fi export XALAN_LOCALE_SYSTEM XALAN_LOCALE=$locale export XALAN_LOCALE # # Set the C compiler and C++ compiler environment variables # case $ccompiler in gcc | icc) ;; cc) if test $platform = "aix"; then echo "Please use xlc instead of cc to build on AIX." exit ${ERROR_EXIT_CODE} fi ;; xlc) if test $cppcompiler != "xlC"; then echo "Please use xlC as the C++ compiler when using xlc." exit ${ERROR_EXIT_CODE} fi ;; xlc_r) if test $cppcompiler != "xlC_r"; then echo "Please use xlC_r as the C++ compiler when using xlc_r." exit ${ERROR_EXIT_CODE} fi ;; *) echo "I do not recognize the C compiler '$ccompiler'. Continuing anyway ..." ;; esac case $cppcompiler in g++ | c++ | CC | aCC | cxx | icpc | icc) ;; xlC) if test $ccompiler != "xlc"; then echo "Please use xlc as the C compiler when using xlC." exit ${ERROR_EXIT_CODE} fi ;; xlC_r) if test $compiler != "xlc_r"; then echo "Please use xlc_r as the C compiler when using xlC_r." exit ${ERROR_EXIT_CODE} fi ;; *) echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..." ;; esac CC="$ccompiler" export CC CXX="$cppcompiler" export CXX # # Check for the threading option # threadingLibs="" threadingDefines="" gccThreadingDefines="-pthread -D_REENTRANT" gccThreadingLibs="-lpthread" if test $thread = "none"; then case $platform in aix) if test $ccompiler = "xlc_r"; then echo "Please use xlc instead of xlc_r to build without threads." exit ${ERROR_EXIT_CODE} fi if test $cppcompiler = "xlC_r"; then echo "Please use xlC instead of xlC_r to build without threads." exit ${ERROR_EXIT_CODE} fi ;; *) ;; esac elif test $thread != "pthread"; then echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." exit ${ERROR_EXIT_CODE} else case $platform in aix) if test $ccompiler = "xlc"; then echo "Please use xlc_r instead of xlc to build with threads." exit ${ERROR_EXIT_CODE} elif $ccompiler = "gcc"; then threadingDefines=$gccThreadingDefines threadingLibs=$gccThreadingLibs fi if test $cppcompiler = "xlC"; then echo "Please use xlC_r instead of xlC to build with threads." exit ${ERROR_EXIT_CODE} fi ;; freebsd) if test -n "${PTHREAD_LIBS}" ; then threadingLibs="${PTHREAD_LIBS}" threadingDefines="${PTHREAD_CFLAGS}" else threadingDefines=$gccThreadingDefines threadingLibs=$gccThreadingLibs fi ;; os400) threadingDefines="-D_MULTI_THREADED" ;; os390) threadingDefines="-D_OPEN_THREADS" ;; solaris*) if test $ccompiler = "gcc"; then # GCC on Solaris uses "-pthreads" instead of # "-pthread" threadingDefines="-pthreads -D_REENTRANT" threadingLibs=$gccThreadingLibs else threadingDefines="-mt" fi ;; hp-11*) if test $ccompiler = "gcc"; then threadingDefines=$gccThreadingDefines threadingLibs=$gccThreadingLibs else threadingDefines="-mt" fi ;; cygwin) threadingLibs="" threadingDefines="" ;; mingw-msys) threadingLibs="-mthreads" threadingDefines="-mthreads" ;; *) threadingDefines=$gccThreadingDefines threadingLibs=$gccThreadingLibs ;; esac fi # # Set the extra C and C++ compiler flags # CXXFLAGS="$CXXFLAGS $compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines " export CXXFLAGS CFLAGS="$CFLAGS $compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines " export CFLAGS LDFLAGS="$LDFLAGS $linkeroptions $bitstobuildLink $threadingDefines" 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} and type \"gmake\" or \"make\" to make the XALAN-C system. echo echo Note: You must use GNU make to use the Xalan Makefile. exit 0;