root / HServer / 00.Server / 00.Program / node_modules / dtrace-provider / build.sh
이력 | 보기 | 이력해설 | 다운로드 (2.28 KB)
1 |
#!/usr/bin/env bash |
---|---|
2 |
|
3 |
set -o pipefail |
4 |
|
5 |
if [[ -n "$V" ]]; then |
6 |
set -o xtrace |
7 |
fi |
8 |
|
9 |
fail() { |
10 |
if [[ -z "$NODE_DTRACE_PROVIDER_REQUIRE" && -z "$V" ]]; then |
11 |
echo "-----------------------------------------------------------------" |
12 |
echo "Building dtrace-provider failed with exit code $1, falling back" |
13 |
echo "on stub implementation." |
14 |
echo "" |
15 |
echo "Re-run install with V set in your environment to see the build" |
16 |
echo "output, or NODE_DTRACE_PROVIDER_REQUIRE=hard to force an" |
17 |
echo "installation failure." |
18 |
echo "-----------------------------------------------------------------" |
19 |
fi |
20 |
|
21 |
if [[ "$NODE_DTRACE_PROVIDER_REQUIRE" == "hard" ]]; then |
22 |
exit 1 |
23 |
else |
24 |
exit 0 |
25 |
fi |
26 |
} |
27 |
|
28 |
buildUSDT() { |
29 |
if [[ -z "$NODE_DTRACE_PROVIDER_REQUIRE" && -z "$V" ]]; then |
30 |
exec 1> /dev/null |
31 |
exec 2> /dev/null |
32 |
fi |
33 |
|
34 |
# GYP's MAKEFLAGS confuses libusdt's Makefile |
35 |
unset MAKEFLAGS |
36 |
|
37 |
# Ask node what architecture it's been built for ("target_arch" in |
38 |
# config.gypi), and build libusdt to match. |
39 |
# |
40 |
# We use node from the path; npm will have adjusted PATH for us if |
41 |
# necessary, otherwise we assume the user did so when building by |
42 |
# hand. |
43 |
# |
44 |
# (This will need to change at the point that GYP is able to build |
45 |
# node extensions universal on the Mac - for now we'll go with x86_64 |
46 |
# on a 64 bit Mac, because that's the default architecture in that |
47 |
# situation.) |
48 |
export ARCH=`node -e "console.log(process.arch === 'x64' ? 'x86_64' : 'i386')"` |
49 |
echo "Building libusdt for ${ARCH}" |
50 |
|
51 |
# Respect a MAKE variable if set |
52 |
if [[ -z $MAKE ]]; then |
53 |
# Default to `gmake` first if available, because we require GNU make |
54 |
# and `make` isn't GNU make on some plats. |
55 |
MAKE=`which gmake` |
56 |
if [[ -z $MAKE ]]; then |
57 |
MAKE=make |
58 |
fi |
59 |
fi |
60 |
|
61 |
# Build libusdt. |
62 |
$MAKE -C libusdt clean all |
63 |
} |
64 |
|
65 |
buildNDTP() { |
66 |
if [[ -z "$NODE_DTRACE_PROVIDER_REQUIRE" && -z "$V" ]]; then |
67 |
exec 1> /dev/null |
68 |
exec 2> /dev/null |
69 |
fi |
70 |
|
71 |
node-gyp rebuild -C src |
72 |
} |
73 |
|
74 |
(buildUSDT) |
75 |
LIBUSDT_STATUS=$? |
76 |
if [[ "$LIBUSDT_STATUS" -ne 0 ]]; then |
77 |
fail $LIBUSDT_STATUS |
78 |
fi |
79 |
|
80 |
(buildNDTP) |
81 |
NODE_GYP_STATUS=$? |
82 |
if [[ "$NODE_GYP_STATUS" -ne 0 ]]; then |
83 |
fail $NODE_GYP_STATUS |
84 |
fi |
85 |
|
86 |
exit 0 |