File: configure

package info (click to toggle)
broccoli-python 0.62-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 460 kB
  • ctags: 105
  • sloc: python: 407; sh: 202; makefile: 21
file content (137 lines) | stat: -rwxr-xr-x 4,219 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/sh
# Convenience wrapper for easily viewing/setting options that
# the project's CMake scripts will recognize
set -e
command="$0 $*"

# check for `cmake` command
type cmake > /dev/null 2>&1 || {
    echo "\
This package requires CMake, please install it first, then you may
use this configure script to access CMake equivalent functionality.\
" >&2;
    exit 1;
}

# check for `python` command
type python > /dev/null 2>&1 || {
    echo "This package requires Python, please install it first." >&2;
}

site_packages=`python -c "from distutils.sysconfig import get_python_lib;\
print(get_python_lib(True))"`
pyver=`python -c "import sys; print(\"%s.%s\" % (sys.version_info[0], sys.version_info[1]))"`

usage="\
Usage: $0 [OPTION]... [VAR=VALUE]...

  Build Directory:
    --builddir=DIR         place build files in directory [build]

  Installation Directories:
    --prefix=PREFIX        installs to [PREFIX/lib/python${pyver}/site-packages]
    --home=PATH            installs to [PATH/lib/python]

  Optional Features:
    --enable-debug         compile in debugging mode

  Required Packages in Non-Standard Locations:
    --with-broccoli=PATH   path to Broccoli install root
    --with-python=PATH     path to Python interpreter
    --with-python-lib=PATH path to libpython
    --with-python-inc=PATH path to Python headers
    --with-swig=PATH       path to SWIG executable

  Influential Environment Variables (only on first invocation
  per build directory):
    CC                     C compiler command
    CFLAGS                 C compiler flags
    CXX                    C++ compiler command
    CXXFLAGS               C++ compiler flags
"

sourcedir="$( cd "$( dirname "$0" )" && pwd )"

# Function to append a CMake cache entry definition to the
# CMakeCacheEntries variable
#   $1 is the cache entry variable name
#   $2 is the cache entry variable type
#   $3 is the cache entry variable value
append_cache_entry () {
    CMakeCacheEntries="$CMakeCacheEntries -D $1:$2=$3"
}

# set defaults
builddir=build
CMakeCacheEntries=""
append_cache_entry PY_MOD_INSTALL_DIR   PATH     $site_packages
append_cache_entry ENABLE_DEBUG         BOOL     false

# parse arguments
while [ $# -ne 0 ]; do
    case "$1" in
        -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
        *) optarg= ;;
    esac

    case "$1" in
        --help|-h)
            echo "${usage}" 1>&2
            exit 1
            ;;
        --builddir=*)
            builddir=$optarg
            ;;
        --prefix=*)
            append_cache_entry PY_MOD_INSTALL_DIR   PATH   $optarg/lib/python${pyver}/site-packages
            ;;
        --home=*)
            append_cache_entry PY_MOD_INSTALL_DIR   PATH   $optarg/lib/python
            ;;
        --enable-debug)
            append_cache_entry ENABLE_DEBUG         BOOL   true
            ;;
        --with-broccoli=*)
            append_cache_entry Broccoli_ROOT_DIR    PATH    $optarg
            ;;
        --with-python=*)
            append_cache_entry PYTHON_EXECUTABLE    PATH    $optarg
            ;;
        --with-python-lib=*)
            append_cache_entry PYTHON_LIBRARY       PATH    $optarg
            ;;
        --with-python-inc=*)
            append_cache_entry PYTHON_INCLUDE_DIR   PATH    $optarg
            append_cache_entry PYTHON_INCLUDE_PATH  PATH    $optarg
            ;;
        --with-swig=*)
            append_cache_entry SWIG_EXECUTABLE      PATH    $optarg
            ;;
        *)
            echo "Invalid option '$1'.  Try $0 --help to see available options."
            exit 1
            ;;
    esac
    shift
done

if [ -d $builddir ]; then
    # If build directory exists, check if it has a CMake cache
    if [ -f $builddir/CMakeCache.txt ]; then
        # If the CMake cache exists, delete it so that this configuration
        # is not tainted by a previous one
        rm -f $builddir/CMakeCache.txt
    fi
else
    # Create build directory
    mkdir -p $builddir
fi

echo "Build Directory : $builddir"
echo "Source Directory: $sourcedir"
cd $builddir
cmake $CMakeCacheEntries $sourcedir

echo "# This is the command used to configure this build" > config.status
echo $command >> config.status
chmod u+x config.status