runConfigure
上传用户:zhuqijet
上传日期:2013-06-25
资源大小:10074k
文件大小:16k
源码类别:

词法分析

开发平台:

Visual 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.29 2003/05/12 09:44:19 gareth Exp $
  59. #
  60. #
  61. # runConfigure:
  62. #    This script will run the "configure" script for the appropriate
  63. #    platform. Only supported platforms are recognized.
  64. #
  65. # The following variables are defined and exported at the end of this
  66. # script.
  67. #
  68. # THREADS
  69. # BITSTOBUILD
  70. # CC
  71. # CXX
  72. # CXXFLAGS
  73. # CFLAGS
  74. # LDFLAGS
  75. # EXTRA_LIBS
  76. #
  77. usage()
  78. {
  79.     echo "runConfigure: Helper script to run "configure" for one of the supported platforms"
  80.     echo "Usage: runConfigure "options""
  81.     echo "       where options may be any of the following:"
  82.     echo "       -p <platform> (accepts 'aix', 'beos', 'linux', 'freebsd', 'netbsd', 'solaris',
  83.                  'hp-10', 'hp-11', 'openserver', 'unixware', 'os400', 'irix',
  84.                  'ptx', 'tru64', 'macosx', 'cygwin')"
  85.     echo "       -c <C compiler name> (e.g. gcc, cc, xlc_r, icc or ecc)"
  86.     echo "       -x <C++ compiler name> (e.g. g++, CC, aCC, xlC_r, icc or ecc)"
  87.     echo "       -d (specifies that you want to build debug version)"
  88.     echo "       -r <thread option> can be 'pthread' or 'dce' (AIX, HP-11, and Solaris) or 'sproc' (IRIX) or 'none'"
  89.     echo "       -b <bitsToBuild> (accepts '64', '32')"
  90.     echo "       -l <extra linker options>"
  91.     echo "       -z <extra compiler options>"
  92.     echo "       -h (get help on the above commands)"
  93. }
  94. ERROR_EXIT_CODE=1
  95. if test ${1}o = "o"; then
  96.    usage
  97.    exit ${ERROR_EXIT_CODE}
  98. fi
  99. if test ${XERCESCROOT}o = "o"; then
  100.    echo ERROR : You have not set your XERCESCROOT environment variable
  101.    echo Though this environment variable has nothing to do with creating makefiles,
  102.    echo this is just a general warning to prevent you from pitfalls in future. Please
  103.    echo set an environment variable called XERCESCROOT to indicate where you installed
  104.    echo the XERCES-C files, and run this command again to proceed. See the documentation
  105.    echo for an example if you are still confused.
  106.    exit ${ERROR_EXIT_CODE}
  107. fi
  108. if test $1 = "-h"; then
  109.    usage
  110.    exit ${ERROR_EXIT_CODE}
  111. fi
  112. # Check the command line parameters
  113. if test -x /usr/bin/getopt; then
  114. getoptErr=`getopt p:c:x:dr:b:l:z:h $*`
  115. else
  116. getoptErr=`getopts p:c:x:dr:b:l:z:h `$*``
  117. fi
  118. if [ $? != 0 ]
  119.    then
  120.    usage
  121.    exit ${ERROR_EXIT_CODE}
  122. fi
  123. # Now get the command line parameters
  124. if test -x /usr/bin/getopt; then
  125. set -- `getopt p:c:x:dr:b:l:z:h $*`
  126. else
  127. set -- `getopts p:c:x:dr:b:l:z:h `$*``
  128. fi
  129. # Set up the default values for each parameter
  130. debug=off                # by default debug is off
  131. transcoder=native        # by default use native transcoder
  132. thread=pthread           # by default use POSIX threads
  133. bitsToBuild=32           # by default 32 bit build assumed
  134. while [ $# -gt 0 ]
  135.    do
  136.    case $1 in
  137.    -p)
  138.         platform=$2; shift 2;;
  139.    -c)
  140.         ccompiler=$2; shift 2;;
  141.    -x)
  142.         cppcompiler=$2; shift 2;;
  143.    -d)
  144.         debug=on; shift;;
  145.    -r)
  146.         thread=$2; shift 2;;
  147.    -b)
  148.         bitsToBuild=$2; shift 2;;
  149.    -z)
  150.         compileroptions="$compileroptions $2"; shift 2;;
  151.    -l)
  152.         linkeroptions="$linkeroptions $2"; shift 2;;
  153.    -h)
  154.         usage
  155.         exit ${ERROR_EXIT_CODE};;
  156.    --)
  157.         shift; break;;
  158.    *)
  159.        echo "unknown option $1"
  160.        usage
  161.        exit ${ERROR_EXIT_CODE};;
  162.    esac
  163. done
  164. echo "Generating makefiles with the following options ..."
  165. echo "Platform: $platform"
  166. echo "C Compiler: $ccompiler"
  167. echo "C++ Compiler: $cppcompiler"
  168. echo "Thread option: $thread"
  169. echo "bitsToBuild option: $bitsToBuild"
  170. echo "Extra compile options: $compileroptions"
  171. echo "Extra link options: $linkeroptions"
  172. #
  173. # Now check if the options are correct or not, bail out if incorrect
  174. #
  175. case $platform in
  176.    aix | openserver | unixware | beos | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | os400 | irix | ptx | tru64 | macosx | cygwin | qnx)
  177.        # platform has been recognized
  178.        ;;
  179.    *)
  180.       echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
  181.       exit ${ERROR_EXIT_CODE};;
  182. esac
  183. #
  184. # Enable debugging or not...
  185. #
  186. if test $debug = "off"; then
  187.     echo "Debug is OFF"
  188.     if test $platform = "os400"; then
  189.     debugflag="-O";
  190.     elif test $platform = "irix"; then
  191.        debugflag="-w -O2";
  192.     elif test $platform = "aix"; then
  193.        debugflag="-w -O2";
  194.     else
  195.     debugflag="-w -O";
  196.     fi
  197. else
  198.     echo "Debug is ON"
  199.     debugflag="-g";
  200. fi
  201. #
  202. # Check for the threading option
  203. #
  204. if test $thread = "none"; then
  205.     THREADS=none
  206.     threadingDefines="-DAPP_NO_THREADS -DXML_USE_NO_THREADS"
  207.     threadingLibs=""
  208. else
  209.     THREADS=pthread
  210.     threadingDefines="-DXML_USE_PTHREADS"
  211.     threadingLibs="-lpthread"
  212.     if test $platform = "hp-11"; then
  213.         if test $thread; then
  214.         case $thread in
  215.            pthread)
  216.                ;;
  217.            dce)
  218.                THREADS=dce ;
  219.                threadingLibs="-lcma" ;
  220.                threadingDefines="-D_PTHREADS_DRAFT4 -D_THREAD_SAFE -DXML_USE_DCE" ;;
  221.            *)
  222.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  223.                exit ${ERROR_EXIT_CODE};;
  224.         esac
  225.         fi
  226.     elif test $platform = "openserver"; then
  227.         case $thread in
  228.            pthread)
  229.                if test $cppcompiler = "g++"; then
  230.                   threadingLibs="-Wl,-B,static,-l,pthread,-B,dynamic"
  231.                fi
  232.                ;;
  233.            *)
  234.                echo "I do not recognize the thread option '$thread'."
  235.                echo "Please type '${0} -h' for help."
  236.                exit ${ERROR_EXIT_CODE}
  237.                ;;
  238.         esac
  239.     elif test $platform = "freebsd"; then
  240.         threadingLibs="-pthread -lc_r"
  241.         threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
  242.     elif test $platform = "netbsd"; then
  243.         threadingLibs="-pthread"
  244.         threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
  245.     elif test $platform = "aix"; then
  246.         aix_version=`./config.guess`;
  247.         echo Found host system to be $aix_version
  248.         case $aix_version in
  249.            *4.3*)
  250.               ## Linkflags control the use of libpthreads on AIX
  251.               threadingLibs="-lpthreads_compat";;
  252.            *)
  253.               threadingLibs="-lpthreads";;
  254.         esac
  255.         if test $thread; then
  256.         case $thread in
  257.            pthread)
  258.                ;;
  259.            dce)
  260.                THREADS=dce ;
  261.                threadingDefines="-DXML_USE_DCE"
  262.                case $aix_version in
  263.                   *4.3*)
  264.                      ## Linkflags control the use of libpthreads on AIX
  265.                      threadingLibs="-ldcelibc_r -ldcepthreads -lpthreads_compat";;
  266.                   *)
  267.                      threadingLibs="-lC_r -lC -ldcelibc_r -ldcepthreads";;
  268.                esac
  269.                ;;
  270.            *)
  271.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  272.                exit ${ERROR_EXIT_CODE};;
  273.         esac
  274.         fi
  275.     elif test $platform = "ptx"; then
  276.         threadingLibs=" "
  277.         if test -z $XMLINSTALL; then
  278.             XMLINSTALL=$ICUROOT         ## use either the -C or the -P option now.
  279.         fi
  280.     elif test $platform = "hp-10"; then
  281.         THREADS=dce
  282.         threadingLibs="-lcma"
  283.         threadingDefines="-DXML_USE_DCE"
  284.     elif test $platform = "unixware"; then
  285.         threadingLibs=""         ## Linkflags control the use of threads on UnixWare
  286.     elif test $platform = "solaris"; then
  287.         if test $thread; then
  288.         case $thread in
  289.            pthread)
  290.                ;;
  291.            dce)
  292.                THREADS=dce ;
  293.                threadingLibs="-ldce";
  294.                threadingDefines="-DXML_USE_DCE";;
  295.            *)
  296.                echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  297.                exit ${ERROR_EXIT_CODE};;
  298.         esac
  299.         fi
  300.     elif test $platform = "irix"; then
  301.         if test $thread; then
  302.         case $thread in
  303.         pthread)
  304.             ;;
  305.         sproc)
  306.             threadingLibs=" ";
  307.             threadingDefines="-DXML_USE_SPROC" ;;
  308.         *)
  309.             echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help." ;
  310.             exit ${ERROR_EXIT_CODE};;
  311.         esac
  312.         fi
  313.     fi
  314. fi
  315. export THREADS
  316. #
  317. # Check for the bitsToBuild option
  318. #
  319. #
  320. #  aix | beos | linux | hp-11 | solaris |
  321. #  hp-10 | freebsd | netbsd | irix | openserver | unixware | os400 | ptx | tru64 | macosx
  322. #
  323. if test $bitsToBuild = 64; then
  324.     bitstobuildDefines=" -DXML_BITSTOBUILD_64 "
  325.     bitstobuildLink=" "
  326.     if test $platform; then
  327.         case $platform in
  328.            solaris)
  329.               bitstobuildDefines=" $bitstobuildDefines -xarch=v9 "
  330.               bitstobuildLink=" -xarch=v9 " ;;
  331.            aix)
  332.               bitstobuildDefines=" $bitstobuildDefines -q64 -qwarn64 "
  333.               bitstobuildLink=" -q64 -qwarn64 " ;;
  334.            hp-11)
  335.               bitstobuildDefines=" $bitstobuildDefines +DA2.0W "
  336.               bitstobuildLink=" +DA2.0W " ;;
  337.            linux)
  338.               bitstobuildDefines=" $bitstobuildDefines " ;;
  339.            *)
  340.             ;;
  341.         esac
  342.     fi
  343. elif test $bitsToBuild = 32; then
  344.     bitstobuildDefines=" "
  345.     bitstobuildLink=" "
  346. else
  347.     echo "I do not recognize the bitsToBuild '$bitsToBuild'. Please type '${0} -h' for help."
  348.     exit ${ERROR_EXIT_CODE};
  349. fi
  350. #
  351. # to export in case it is needed in Makefile.in/Makefine.incl
  352. #
  353. BITSTOBUILD=$bitsToBuild
  354. export BITSTOBUILD
  355. #
  356. # Special test for libiconv necessity under FreeBSD
  357. #
  358. transcodingLibs=""       # by default don't suppose the libiconv is necessary
  359. transcodingDefines=""
  360. if test $platform = "freebsd"; then
  361.     if test -n "${XERCESCROOT}"; then
  362.        # try lookup the configuration results
  363.        . "${XERCESCROOT}/version.incl"
  364.        SOLIBNAME=libxerces-c.so.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}
  365.        if test -f "${XERCESCROOT}/src/xercesc/config.log" ; then
  366.            if grep XML_USE_LIBICONV "${XERCESCROOT}/src/xercesc/config.log" 
  367.               > /dev/null 2>&1 ; then
  368.                transcodingLibs=" -L/usr/local/lib -liconv "
  369.                transcodingDefines=" -DXML_USE_LIBICONV -I/usr/local/include "
  370.            fi
  371.        elif test -f "${XERCESCROOT}/obj/FREEBSD/IconvFBSDTransService.o" ; then
  372.            if nm "${XERCESCROOT}/obj/FREEBSD/IconvFBSDTransService.o" | 
  373.               grep iconv_open > /dev/null 2>&1 ; then
  374.                transcodingLibs=" -L/usr/local/lib -liconv "
  375.                transcodingDefines=" -DXML_USE_LIBICONV -I/usr/local/include "
  376.            fi
  377.        elif test -f "${XERCESCROOT}/lib/${SOLIBNAME}" ; then
  378.            if nm "${XERCESCROOT}/lib/${SOLIBNAME}" | 
  379.               grep iconv_open > /dev/null 2>&1 ; then
  380.                transcodingLibs=" -L/usr/local/lib -liconv "
  381.                transcodingDefines=" -DXML_USE_LIBICONV -I/usr/local/include "
  382.            fi
  383.        fi
  384.     fi
  385. fi
  386. #
  387. # Set the C compiler and C++ compiler environment variables
  388. #
  389. case $cppcompiler in
  390.    xlC* | xlc* | g++ | c++ | cc | CC | aCC | icc | ICC | cxx | ecc)
  391.       ;;
  392.    '')
  393.       echo "C++ compiler not specified...we'll assume that configure will find it..."
  394.       ;;
  395.    *)
  396.       echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..."
  397.       ;;
  398. esac
  399. CC="$ccompiler"
  400. export CC
  401. CXX="$cppcompiler"
  402. export CXX
  403. #
  404. # Set the extra C and C++ compiler flags
  405. #
  406. # include the user defined CXXFLAGS/CFLAGS first in case they have
  407. # set an platform spefic flags
  408. #
  409. CXXFLAGS="$CXXFLAGS $compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines"
  410. export CXXFLAGS
  411. CFLAGS="$CFLAGS $compileroptions $debugflag $transcodingDefines $threadingDefines $bitstobuildDefines"
  412. export CFLAGS
  413. # gcc crashes if optimisation is turned on in a Tru64 environment
  414. if test "$platform" = "tru64" -a "$CXX" = "g++"; then
  415.     CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O[0-9]*//g'`
  416.     CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]*//g'`
  417.     export CXXFLAGS CFLAGS
  418. fi
  419. LDFLAGS="$LDFLAGS $linkeroptions $bitstobuildLink"
  420. export LDFLAGS
  421. EXTRA_LIBS="$transcodingLibs $threadingLibs"
  422. export EXTRA_LIBS
  423. echo
  424. rm -f config.cache
  425. rm -f config.log
  426. rm -f config.status
  427. if test $platform = "os400"; then
  428. ./configure --host AS400-OS400
  429. elif test $platform = "ptx"; then
  430. ./configure --prefix=$XMLINSTALL
  431. else
  432. ./configure
  433. fi
  434. # exit if configure failed
  435. if test $? != 0; then
  436.   exit 1
  437. fi
  438. echo
  439. echo In future, you may also directly type the following commands to create the Makefiles.
  440. echo
  441. echo export THREADS="$THREADS"
  442. echo export BITSTOBUILD="$BITSTOBUILD"
  443. echo export CC="$CC"
  444. echo export CXX="$CXX"
  445. echo export CXXFLAGS="$CXXFLAGS"
  446. echo export CFLAGS="$CFLAGS"
  447. echo export LDFLAGS="$LDFLAGS"
  448. echo export EXTRA_LIBS="$EXTRA_LIBS"
  449. echo configure
  450. echo
  451. echo If the result of the above commands look OK to you, go to the directory
  452. echo ${XERCESCROOT}/tests and type "gmake" to make the test cases.
  453. exit 0;