| #!/bin/sh |
| |
| # build-swig-wrapper-classes.sh |
| # |
| # For each scripting language liblldb supports, we need to create the |
| # appropriate Script Bridge wrapper classes for that language so that |
| # users can call Script Bridge functions from within the script interpreter. |
| # |
| # We use SWIG to help create the appropriate wrapper classes/functions for |
| # the scripting language. In some cases the file generated by SWIG may |
| # need some tweaking before it is completely ready to use. |
| |
| # Below are the arguments/parameters that this script takes (and passes along |
| # to all the language-specific build scripts that it calls): |
| # |
| # SRC_ROOT is the root of the lldb source tree. |
| # TARGET_DIR is where the lldb framework/shared library gets put. |
| # CONFIG_BUILD_DIR is where the build-swig-Python-LLDB.sh shell script |
| # put the lldb.py file it was generated from running SWIG. |
| # PREFIX is where non-Darwin systems want to put the .py and .so |
| # files so that Python can find them automatically. |
| # debug_flag (optional) determines whether or not this script outputs |
| # additional information when running. |
| |
| SRC_ROOT=$1 |
| TARGET_DIR=$2 |
| CONFIG_BUILD_DIR=$3 |
| PREFIX=$4 |
| debug_flag=$5 |
| |
| # |
| # Check to see if we are in debug-mode or not. |
| # |
| |
| if [ -n "$debug_flag" -a "$debug_flag" == "-debug" ] |
| then |
| Debug=1 |
| else |
| Debug=0 |
| fi |
| |
| # |
| # Verify that 'lldb.swig' exists. |
| # |
| |
| if [ ! -f ${SRC_ROOT}/scripts/lldb.swig ] |
| then |
| echo Error: unable to find file 'lldb.swig' >&2 |
| exit 1 |
| fi |
| |
| if [ $Debug == 1 ] |
| then |
| echo "Found lldb.swig file" |
| fi |
| |
| # |
| # Next look for swig |
| # |
| |
| SWIG= |
| if [ -f /usr/bin/swig ] |
| then |
| SWIG=/usr/bin/swig |
| else |
| if [ -f /usr/local/bin/swig ] |
| then |
| SWIG=/usr/local/bin/swig |
| fi |
| fi |
| |
| if [ ${SWIG}a == a ] |
| then |
| echo Error: could not find the swig binary |
| exit 1 |
| fi |
| |
| # |
| # For each scripting language, make sure the build script for that language |
| # exists, and if so, call it. |
| # |
| # For now the only language we support is Python, but we expect this to |
| # change. |
| |
| languages="Python" |
| cwd=${SRC_ROOT}/scripts |
| |
| for curlang in $languages |
| do |
| if [ $Debug == 1 ] |
| then |
| echo "Current language is $curlang" |
| fi |
| |
| if [ ! -d "$cwd/$curlang" ] |
| then |
| echo "Error: unable to find $curlang script sub-dirctory" >&2 |
| continue |
| else |
| |
| if [ $Debug == 1 ] |
| then |
| echo "Found $curlang sub-directory" |
| fi |
| |
| cd $cwd/$curlang |
| |
| filename="./build-swig-${curlang}.sh" |
| |
| if [ ! -f $filename ] |
| then |
| echo "Error: unable to find swig build script for $curlang: $filename" >&2 |
| continue |
| else |
| |
| if [ $Debug == 1 ] |
| then |
| echo "Found $curlang build script." |
| echo "Executing $curlang build script..." |
| fi |
| |
| ./build-swig-${curlang}.sh $SRC_ROOT $TARGET_DIR $CONFIG_BUILD_DIR "${PREFIX}" "${debug_flag}" "${SWIG}" |
| fi |
| fi |
| done |
| |