-
Notifications
You must be signed in to change notification settings - Fork 20
/
configure
executable file
·129 lines (112 loc) · 3.79 KB
/
configure
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
#!/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 `python3` command
type python3 > /dev/null 2>&1 || {
echo "This package requires Python 3, please install it first." >&2;
}
site_packages=`python3 -c "from distutils.sysconfig import get_python_lib;\
print(get_python_lib(True))"`
pyver=`python3 -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-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-python=*)
append_cache_entry Python_EXECUTABLE PATH $optarg
;;
--with-python-inc=*)
append_cache_entry Python_INCLUDE_DIRS 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