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

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.13 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 "       -r <thread option> can be 'pthread' or 'dce' (only used on aix, HP-11 and solaris) or 'sproc' (only on IRIX) or 'none'"
  74.     echo "       -l <extra linker options>"
  75.     echo "       -z <extra compiler options>"
  76.     echo "       -h (get help on the above commands)"
  77. }
  78. ERROR_EXIT_CODE=1
  79. if test ${1}o = "o"; then
  80.    usage
  81.    exit ${ERROR_EXIT_CODE}
  82. fi
  83. if test ${XERCESCROOT}o = "o"; then
  84.    echo ERROR : You have not set your XERCESCROOT environment variable
  85.    echo Though this environment variable has nothing to do with creating makefiles,
  86.    echo this is just a general warning to prevent you from pitfalls in future. Please
  87.    echo set an environment variable called XERCESCROOT to indicate where you installed
  88.    echo the XERCES-C files, and run this command again to proceed. See the documentation
  89.    echo for an example if you are still confused.
  90.    exit ${ERROR_EXIT_CODE}
  91. fi
  92. if test $1 = "-h"; then
  93.    usage
  94.    exit ${ERROR_EXIT_CODE}
  95. fi
  96. # Check the command line parameters
  97. if test -x /usr/bin/getopt; then
  98. getoptErr=`getopt p:c:x:dm:n:t:r:l:z:h $*`
  99. else
  100. getoptErr=`getopts p:c:x:dm:n:t:r:l:z:h `$*``
  101. fi
  102. if [ $? != 0 ]
  103.    then
  104.    usage
  105.    exit ${ERROR_EXIT_CODE}
  106. fi
  107. # Now get the command line parameters
  108. if test -x /usr/bin/getopt; then
  109. set -- `getopt p:c:x:dm:n:t:r:l:z:h $*`
  110. else
  111. set -- `getopts p:c:x:dm:n:t:r:l:z:h `$*``
  112. fi
  113. # Set up the default values for each parameter
  114. debug=off                # by default debug is off
  115. transcoder=native        # by default use native transcoder
  116. msgloader=iconv          # by default use native transcoder
  117. netaccessor=fileonly     # by default use fileonly
  118. thread=pthread           # by default use POSIX threads
  119. compileroptions=""
  120. while [ $# -gt 0 ]
  121.    do
  122.    case $1 in
  123.    -p)
  124.         platform=$2; shift 2;;
  125.    -c)
  126.         ccompiler=$2; shift 2;;
  127.    -x)
  128.         cppcompiler=$2; shift 2;;
  129.    -d)
  130.         debug=on; shift;;
  131.    -r)
  132.         thread=$2; shift 2;;
  133.    -z)
  134.         compileroptions="$compileroptions $2"; shift 2;;
  135.    -l)
  136.         linkeroptions="$linkeroptions $2"; shift 2;;
  137.    -h)
  138.         usage
  139.         exit ${ERROR_EXIT_CODE};;
  140.    --)
  141.         shift; break;;
  142.    *)
  143.        echo "unknown option $1"
  144.        usage
  145.        exit ${ERROR_EXIT_CODE};;
  146.    esac
  147. done
  148. if test $platform = "aix"; then
  149.       if test ! -n "$ccompiler" -o ! -n "$cppcompiler"; then
  150.               ccompiler=xlc
  151.               cppcompiler=xlC
  152.       fi
  153. fi
  154. echo "Generating makefiles with the following options ..."
  155. echo "Platform: $platform"
  156. echo "C Compiler: $ccompiler"
  157. echo "C++ Compiler: $cppcompiler"
  158. echo "Extra compile options: $compileroptions"
  159. echo "Extra link options: $linkeroptions"
  160. echo "Thread option: $thread"
  161. #
  162. # Now check if the options are correct or not, bail out if incorrect
  163. #
  164. case $platform in
  165.    aix | unixware | linux | freebsd | solaris | hp-10 | hp-11 | os400 | irix | ptx | tru64 | macosx)
  166.        # platform has been recognized
  167.        ;;
  168.    *)
  169.       echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
  170.       exit ${ERROR_EXIT_CODE};;
  171. esac
  172. #
  173. # Enable debugging or not...
  174. #
  175. if test $debug = "off"; then
  176.     echo "Debug is OFF"
  177.     if test $platform = "os400"; then
  178.     debugflag="-O";
  179.     elif test $platform = "irix"; then
  180.        debugflag="-w -O2";
  181.     elif test $platform = "aix"; then
  182.        debugflag="-w -O2";
  183.     else
  184.     debugflag="-w -O";
  185.     fi
  186. else
  187.     echo "Debug is ON"
  188.     debugflag="-g";
  189. fi
  190. #
  191. # Check for the threading option
  192. #
  193. if test $thread = "none"; then
  194.     THREADS=none
  195.     threadingLibs=""
  196.     threadingDefines="-DAPP_NO_THREADS -DXML_USE_NO_THREADS"
  197. else
  198.     THREADS=pthread
  199.     threadingDefines="-DXML_USE_PTHREADS"
  200.     threadingLibs="-lpthread"
  201.     if test $platform = "hp-11"; then
  202.         if test $thread; then
  203.         case $thread in
  204.            pthread)
  205.                ;;
  206.            dce)
  207.                THREADS=dce ;
  208.                threadingLibs="-lcma" ;
  209.                threadingDefines="-D_PTHREADS_DRAFT4 -D_THREAD_SAFE -DXML_USE_DCE" ;;
  210.            *)
  211.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  212.                exit ${ERROR_EXIT_CODE};;
  213.         esac
  214.         fi
  215.     elif test $platform = "freebsd"; then
  216. threadingLibs="-pthread -lc_r"
  217. threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
  218.     elif test $platform = "aix"; then
  219.         aix_version=`./config.guess`;
  220.         echo Found host system to be $aix_version
  221.         case $aix_version in
  222.            *4.3*)
  223.               ## Linkflags control the use of libpthreads on AIX
  224.               threadingLibs="-lpthreads_compat";;
  225.            *)
  226.               threadingLibs="-lpthreads";;
  227.         esac
  228.         if test $thread; then
  229.         case $thread in
  230.            pthread)
  231.                ;;
  232.            dce)
  233.                THREADS=dce ;
  234.                threadingDefines="-DXML_USE_DCE"
  235.                case $aix_version in
  236.                   *4.3*)
  237.                      ## Linkflags control the use of libpthreads on AIX
  238.                      threadingLibs="-ldcelibc_r -ldcepthreads -lpthreads_compat";;
  239.                   *)
  240.                      threadingLibs="-lC_r -lC -ldcelibc_r -ldcepthreads";;
  241.                esac
  242.                ;;
  243.            *)
  244.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  245.                exit ${ERROR_EXIT_CODE};;
  246.         esac
  247.         fi
  248.     elif test $platform = "ptx"; then
  249.         threadingLibs=" "
  250.         if test -z $XMLINSTALL; then
  251.             XMLINSTALL=$ICUROOT         ## use either the -C or the -P option now.
  252.         fi
  253.     elif test $platform = "hp-10"; then
  254.         THREADS=dce
  255.         threadingLibs="-lcma"
  256.         threadingDefines="-DXML_USE_DCE"
  257.     elif test $platform = "unixware"; then
  258.         threadingLibs="" ## Linkflags control the use of threads on UnixWare
  259.     elif test $platform = "solaris"; then
  260.         if test $thread; then
  261.         case $thread in
  262.            pthread)
  263.                ;;
  264.            dce)
  265.                THREADS=dce ;
  266.                threadingLibs="-ldce";
  267.                threadingDefines="-DXML_USE_DCE";;
  268.            *)
  269.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help."
  270.                exit ${ERROR_EXIT_CODE};;
  271.         esac
  272.         fi
  273.     elif test $platform = "irix"; then
  274.         if test $thread; then
  275.         case $thread in
  276.         pthread)
  277.             ;;
  278.         sproc)
  279.             threadingLibs=" ";
  280.             threadingDefines="-DXML_USE_SPROC" ;;
  281.         *)
  282.            echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help."
  283.             exit ${ERROR_EXIT_CODE};;
  284.         esac
  285.         fi
  286.     fi
  287. fi
  288. export THREADS
  289. #
  290. # Set the C compiler and C++ compiler environment variables
  291. #
  292. case $cppcompiler in
  293.    xlC* | xlc* | g++ | c++ | cc | CC | aCC | icc | ICC | cxx)
  294.       ;;
  295.    *)
  296.       echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..."
  297.       ;;
  298. esac
  299. CC="$ccompiler"
  300. export CC
  301. CXX="$cppcompiler"
  302. export CXX
  303. #
  304. # Set the extra C and C++ compiler flags
  305. #
  306. CXXFLAGS="$compileroptions $debugflag $threadingDefines"; export CXXFLAGS
  307. CFLAGS="$compileroptions $debugflag $threadingDefines"; export CFLAGS
  308. # gcc crashes if optimisation is turned on in a Tru64 environment
  309. if [ $platform = "tru64" -a $CXX = "g++" ]; then
  310.     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]*//g'`
  311.     CFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]*//g'`
  312.     export CXXFLAGS CFLAGS
  313. fi
  314. LDFLAGS="$linkeroptions"; export LDFLAGS
  315. LIBS="$threadingLibs"; export LIBS
  316. echo
  317. rm -f config.cache
  318. rm -f config.log
  319. rm -f config.status
  320. if test $platform = "os400"; then
  321. ./configure --host AS400-OS400
  322. elif test $platform = "ptx"; then
  323. ./configure --prefix=$XMLINSTALL
  324. else
  325. ./configure
  326. fi
  327. # exit if configure failed
  328. if test $? != 0; then
  329.   exit 1
  330. fi
  331. echo
  332. echo In future, you may also directly type the following commands to create the Makefiles.
  333. echo
  334. echo export THREADS="$THREADS"
  335. echo export CC=$CC
  336. echo export CXX=$CXX
  337. echo export CXXFLAGS=$CXXFLAGS
  338. echo export CFLAGS=$CFLAGS
  339. echo export LIBS=$LIBS
  340. echo export LDFLAGS=$LDFLAGS
  341. echo configure
  342. echo
  343. echo If the result of the above commands look OK to you, go to the directory
  344. echo ${XERCESCROOT}/tests and type "gmake" to make the test cases.
  345. exit 0;