| #!/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 <jberry@criticalpath.com> 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 <platform> (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 <C compiler name> (e.g. gcc, cc, xlc)" |
| echo " -x <C++ compiler name> (e.g. g++, CC, xlC)" |
| echo " -d (specifies that you want to build debug version)" |
| echo " -t <transcoder> can be 'icu' (everything else means default)" |
| echo " -m <msg locale system> (accepts 'inmem', 'icu','nls')" |
| echo " -M <locale> (example: 'fr_FR'. Default: 'en_US')" |
| echo " -r <thread option> can be 'pthread' or 'none' (Default: pthread)" |
| echo " -b <bitsToBuild> (accepts '64', '32')" |
| echo " -P <install-prefix>" |
| echo " -l <extra linker options>" |
| echo " -z <extra compiler options>" |
| echo " -C <any one extra configure options>" |
| 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; |