forked from distcc/distcc
-
Notifications
You must be signed in to change notification settings - Fork 1
/
find_c_extension.sh
executable file
·39 lines (37 loc) · 1.27 KB
/
find_c_extension.sh
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
#! /bin/sh
# Usage: find_c_extension.sh BUILDDIR
#
# Write path of directory containing C-extension of build directory.
#
# More precisely, locate the unique directory of the form:
#
# _include_server/lib.*/include_server/
#
# that contains file 'distcc_pump_c_extensions.so'. Write the path of this
# directory to stdout and exit with status 0. If such a path does not exist
# then write error message to stderr and exit with status 1.
builddir="$1"
# We want to catch the file whether it's .so (unix) or .dll (cygwin).
# The '[sd][ol]*' glob does that without having to worry about
# unpredictable 'ls' behavior when a glob has no matches.
# (Side note: there is intense internal debate about whether the
# '[sd][ol]' hack is "so ugly I can't stand it" or "kinda cute".)
so_files=`ls $builddir/_include_server/lib.*/include_server/\
distcc_pump_c_extensions.[sd][ol]*`
if [ -z "$so_files" ]; then
echo \
'__________Could not find shared libraries for distcc-pump' 1>&2
exit 1
elif [ `echo "$so_files" | wc -l` -ge 2 ]; then
echo \
'__________Shared libraries for multiple architectures discovered.' \
1>&2
echo \
"__________Cannot determine which one to use among: $so_files" \
1>&2
exit 1
else
# There was only one such file.
dirname "$so_files"
exit 0
fi