1#! /bin/sh
2
3# finish-swig-wrapper-classes.sh
4#
5# For each scripting language liblldb supports, we need to create the
6# appropriate Script Bridge wrapper classes for that language so that
7# users can call Script Bridge functions from within the script interpreter.
8#
9# We use SWIG to create a C++ file containing the appropriate wrapper classes
10# and funcitons for each scripting language, before liblldb is built (thus
11# the C++ file can be compiled into liblldb.  In some cases, additional work
12# may need to be done after liblldb has been compiled, to make the scripting
13# language stuff fully functional.  Any such post-processing is handled through
14# the shell scripts called here.
15
16# SRC_ROOT is the root of the lldb source tree.
17# TARGET_DIR is where the lldb framework/shared library gets put.
18# CONFIG_BUILD_DIR is where the build-swig-Python-LLDB.sh  shell script
19#           put the lldb.py file it generated from running SWIG.
20# PREFIX is the root directory used to determine where third-party modules
21#         for scripting languages should be installed.
22# debug_flag (optional) determines whether or not this script outputs
23#           additional information when running.
24
25SRC_ROOT=$1
26TARGET_DIR=$2
27CONFIG_BUILD_DIR=$3
28PREFIX=$4
29
30shift 4
31
32if [ -n "$1" -a "$1" = "-debug" ]
33then
34    debug_flag=$1
35    Debug=1
36    shift
37else
38    debug_flag=""
39    Debug=0
40fi
41
42if [ -n "$1" -a "$1" = "-m" ]
43then
44    makefile_flag="$1"
45    shift
46else
47    makefile_flag=""
48fi
49
50#
51# For each scripting language, see if a post-processing script for that
52# language exists, and if so, call it.
53#
54# For now the only language we support is Python, but we expect this to
55# change.
56
57languages="Python"
58cwd=${SRC_ROOT}/scripts
59
60for curlang in $languages
61do
62    if [ $Debug -eq 1 ]
63    then
64        echo "Current language is $curlang"
65    fi
66
67    if [ ! -d "$cwd/$curlang" ]
68    then
69        echo "error:  unable to find $curlang script sub-dirctory" >&2
70        continue
71    else
72
73        if [ $Debug -eq 1 ]
74        then
75            echo "Found $curlang sub-directory"
76        fi
77
78        cd $cwd/$curlang
79
80        filename="./finish-swig-${curlang}-LLDB.sh"
81
82        if [ -f $filename ]
83        then
84            if [ $Debug -eq 1 ]
85            then
86                echo "Found $curlang post-processing script for LLDB"
87                echo "Executing $curlang post-processing script..."
88            fi
89
90
91            ./finish-swig-${curlang}-LLDB.sh $SRC_ROOT $TARGET_DIR $CONFIG_BUILD_DIR "${PREFIX}" "${debug_flag}" "${makefile_flag}"
92        fi
93    fi
94done
95
96exit 0
97