runConfigure
上传用户:huihehuasu
上传日期:2007-01-10
资源大小:6948k
文件大小:8k
源码类别:

xml/soap/webservice

开发平台:

C/C++

  1. #!/bin/sh
  2. #
  3. # The Apache Software License, Version 1.1
  4. #
  5. # Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  6. # reserved.
  7. #
  8. # Redistribution and use in source and binary forms, with or without
  9. # modification, are permitted provided that the following conditions
  10. # are met:
  11. #
  12. # 1. Redistributions of source code must retain the above copyright
  13. #    notice, this list of conditions and the following disclaimer.
  14. #
  15. # 2. Redistributions in binary form must reproduce the above copyright
  16. #    notice, this list of conditions and the following disclaimer in
  17. #    the documentation and/or other materials provided with the
  18. #    distribution.
  19. #
  20. # 3. The end-user documentation included with the redistribution,
  21. #    if any, must include the following acknowledgment:
  22. #       "This product includes software developed by the
  23. #        Apache Software Foundation (http://www.apache.org/)."
  24. #    Alternately, this acknowledgment may appear in the software itself,
  25. #    if and wherever such third-party acknowledgments normally appear.
  26. #
  27. # 4. The names "Xerces" and "Apache Software Foundation" must
  28. #    not be used to endorse or promote products derived from this
  29. #    software without prior written permission. For written
  30. #    permission, please contact apache@apache.org.
  31. #
  32. # 5. Products derived from this software may not be called "Apache",
  33. #    nor may "Apache" appear in their name, without prior written
  34. #    permission of the Apache Software Foundation.
  35. #
  36. # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  37. # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  38. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  39. # DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  40. # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  41. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  42. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  43. # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  44. # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  45. # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  46. # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  47. # SUCH DAMAGE.
  48. # ====================================================================
  49. #
  50. # This software consists of voluntary contributions made by many
  51. # individuals on behalf of the Apache Software Foundation, and was
  52. # originally based on software copyright (c) 1999, International
  53. # Business Machines, Inc., http://www.ibm.com .  For more information
  54. # on the Apache Software Foundation, please see
  55. # <http://www.apache.org/>.
  56. #
  57. #
  58. # $Id: runConfigure,v 1.23 2001/12/06 14:35:26 tng Exp $
  59. #
  60. #
  61. # runConfigure : This script will run the "configure" script for the appropriate platform
  62. # Only supported platforms are recognized
  63. usage()
  64. {
  65.     echo "runConfigure: Helper script to run "configure" for one of the supported platforms"
  66.     echo "Usage: runConfigure "options""
  67.     echo "       where options may be any of the following:"
  68.     echo "       -p <platform> (accepts 'aix', 'unixware', 'linux', 'freebsd', 'solaris',
  69. 'hp-10', 'hp-11', 'os400', 'irix', 'ptx', 'tru64', 'macosx')"
  70.     echo "       -c <C compiler name> (e.g. gcc, xlc or icc)"
  71.     echo "       -x <C++ compiler name> (e.g. g++, xlC, or icc)"
  72.     echo "       -d (specifies that you want to build debug version)"
  73.     echo "       -l <extra linker options>"
  74.     echo "       -z <extra compiler options>"
  75.     echo "       -h (get help on the above commands)"
  76. }
  77. ERROR_EXIT_CODE=1
  78. if test ${1}o = "o"; then
  79.    usage
  80.    exit ${ERROR_EXIT_CODE}
  81. fi
  82. if test ${XERCESCROOT}o = "o"; then
  83.    echo ERROR : You have not set your XERCESCROOT environment variable
  84.    echo Though this environment variable has nothing to do with creating makefiles,
  85.    echo this is just a general warning to prevent you from pitfalls in future. Please
  86.    echo set an environment variable called XERCESCROOT to indicate where you installed
  87.    echo the XERCES-C files, and run this command again to proceed. See the documentation
  88.    echo for an example if you are still confused.
  89.    exit ${ERROR_EXIT_CODE}
  90. fi
  91. if test $1 = "-h"; then
  92.    usage
  93.    exit ${ERROR_EXIT_CODE}
  94. fi
  95. # Check the command line parameters
  96. if test -x /usr/bin/getopt; then
  97. getoptErr=`getopt p:c:x:dm:n:t:r:l:z:h $*`
  98. else
  99. getoptErr=`getopts p:c:x:dm:n:t:r:l:z:h `$*``
  100. fi
  101. if [ $? != 0 ]
  102.    then
  103.    usage
  104.    exit ${ERROR_EXIT_CODE}
  105. fi
  106. # Now get the command line parameters
  107. if test -x /usr/bin/getopt; then
  108. set -- `getopt p:c:x:dm:n:t:r:l:z:h $*`
  109. else
  110. set --`getopts p:c:x:dm:n:t:r:l:z:h `$*``
  111. fi
  112. # Set up the default values for each parameter
  113. debug=off                # by default debug is off
  114. transcoder=native        # by default use native transcoder
  115. msgloader=iconv          # by default use native transcoder
  116. netaccessor=fileonly     # by default use fileonly
  117. compileroptions=""
  118. while [ $# -gt 0 ]
  119.    do
  120.    case $1 in
  121.    -p)
  122.         platform=$2; shift 2;;
  123.    -c)
  124.         ccompiler=$2; shift 2;;
  125.    -x)
  126.         cppcompiler=$2; shift 2;;
  127.    -d)
  128.         debug=on; shift;;
  129.    -z)
  130.         compileroptions="$compileroptions $2"; shift 2;;
  131.    -l)
  132.         linkeroptions="$linkeroptions $2"; shift 2;;
  133.    -h)
  134.         usage
  135.         exit ${ERROR_EXIT_CODE};;
  136.    --)
  137.         shift; break;;
  138.    *)
  139.        echo "unknown option $1"
  140.        usage
  141.        exit ${ERROR_EXIT_CODE};;
  142.    esac
  143. done
  144. if test $platform = "aix"; then
  145.       if test ! -n "$ccompiler" -o ! -n "$cppcompiler"; then
  146.               ccompiler=xlc
  147.               cppcompiler=xlC
  148.       fi
  149. fi
  150. echo "Generating makefiles with the following options ..."
  151. echo "Platform: $platform"
  152. echo "C Compiler: $ccompiler"
  153. echo "C++ Compiler: $cppcompiler"
  154. echo "Extra compile options: $compileroptions"
  155. echo "Extra link options: $linkeroptions"
  156. #
  157. # Now check if the options are correct or not, bail out if incorrect
  158. #
  159. case $platform in
  160.    aix | unixware | linux | freebsd | solaris | hp-10 | hp-11 | os400 | irix | ptx | tru64 | macosx)
  161.        # platform has been recognized
  162.        ;;
  163.    *)
  164.       echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
  165.       exit ${ERROR_EXIT_CODE};;
  166. esac
  167. #
  168. # Enable debugging or not...
  169. #
  170. if test $debug = "off"; then
  171.     echo "Debug is OFF"
  172.     if test $platform = "os400"; then
  173.     debugflag="-O";
  174.     elif test $platform = "irix"; then
  175.        debugflag="-w -O2";
  176.     elif test $platform = "aix"; then
  177.        debugflag="-w -O2";
  178.     else
  179.     debugflag="-w -O";
  180.     fi
  181. else
  182.     echo "Debug is ON"
  183.     debugflag="-g";
  184. fi
  185. #
  186. # Set the C compiler and C++ compiler environment variables
  187. #
  188. case $cppcompiler in
  189.    xlC* | xlc* | g++ | c++ | cc | CC | aCC | icc | ICC | cxx)
  190.       ;;
  191.    *)
  192.       echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..."
  193.       ;;
  194. esac
  195. CC="$ccompiler"
  196. export CC
  197. CXX="$cppcompiler"
  198. export CXX
  199. #
  200. # Set the extra C and C++ compiler flags
  201. #
  202. CXXFLAGS="$compileroptions $debugflag"; export CXXFLAGS
  203. CFLAGS="$compileroptions $debugflag"; export CFLAGS
  204. # gcc crashes if optimisation is turned on in a Tru64 environment
  205. if [ $platform = "tru64" -a $CXX = "g++" ]; then
  206.     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]*//g'`
  207.     CFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]*//g'`
  208.     export CXXFLAGS CFLAGS
  209. fi
  210. LDFLAGS="$linkeroptions"; export LDFLAGS
  211. echo
  212. rm -f config.cache
  213. rm -f config.log
  214. rm -f config.status
  215. if test $platform = "os400"; then
  216. ./configure --host AS400-OS400
  217. elif test $platform = "ptx"; then
  218. ./configure --prefix=$XMLINSTALL
  219. else
  220. ./configure
  221. fi
  222. # exit if configure failed
  223. if test $? != 0; then
  224.   exit 1
  225. fi
  226. echo
  227. echo In future, you may also directly type the following commands to create the Makefiles.
  228. echo
  229. echo export CC=$CC
  230. echo export CXX=$CXX
  231. echo export CXXFLAGS=$CXXFLAGS
  232. echo export CFLAGS=$CFLAGS
  233. echo export LIBS=$LIBS
  234. echo export LDFLAGS=$LDFLAGS
  235. echo configure
  236. echo
  237. echo If the result of the above commands look OK to you, go to the directory
  238. echo ${XERCESCROOT}/samples and type "gmake" to make the samples.
  239. exit 0;