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
|
#!/usr/bin/env bash
set -eu -o pipefail
SOURCE_DIR=/source
BUILD_DIR=/build
SKEL_DIR=/build-skeleton
BUILD_SYSDIG_MODERN_BPF=ON
CMD=${1:-usage}
shift
# Build type can be "debug" or "release", fallbacks to "release" by default
BUILD_TYPE=$(echo "$BUILD_TYPE" | tr "[:upper:]" "[:lower:]")
case "$BUILD_TYPE" in
"debug")
DRAIOS_DEBUG_FLAGS="-D_DEBUG -DNDEBUG"
;;
*)
BUILD_TYPE="release"
;;
esac
case "$CMD" in
"cmake-skeleton")
if [ ! -f "$SOURCE_DIR/sysdig/README.md" ]; then
echo "Could not find sysdig source in $SOURCE_DIR/sysdig. ($SOURCE_DIR/sysdig/README.md not found!)" >&2
exit 1
fi
if [ -f "$SOURCE_DIR/libs/README.md" ]; then
echo "Found falcosecurity libs source in $SOURCE_DIR/libs"
FALCOSECURITY_LIBS_SOURCE_DIR="$SOURCE_DIR/libs"
fi
# Prepare build directory
mkdir -p "$SKEL_DIR/$BUILD_TYPE"
cd "$SKEL_DIR/$BUILD_TYPE"
CMAKE_ARGS=(
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
-DBUILD_SYSDIG_MODERN_BPF="$BUILD_SYSDIG_MODERN_BPF"
-DBUILD_WARNINGS_AS_ERRORS="$BUILD_WARNINGS_AS_ERRORS"
-DUSE_BUNDLED_DEPS=ON
)
if [ ! -z "${FALCOSECURITY_LIBS_SOURCE_DIR:=}" ]; then
CMAKE_ARGS+=(-DFALCOSECURITY_LIBS_SOURCE_DIR="$FALCOSECURITY_LIBS_SOURCE_DIR")
fi
CMAKE_ARGS+=("$SOURCE_DIR/sysdig")
echo "cmake ${CMAKE_ARGS[@]}"
cmake "${CMAKE_ARGS[@]}"
exit "$(printf '%d\n' $?)"
;;
"make-skeleton")
# Prepare build directory
cd "$SKEL_DIR/$BUILD_TYPE"
echo "make ProbeSkeleton"
make ProbeSkeleton
exit "$(printf '%d\n' $?)"
;;
"cmake")
if [ ! -f "$SOURCE_DIR/sysdig/README.md" ]; then
echo "Could not find sysdig source in $SOURCE_DIR/sysdig. ($SOURCE_DIR/sysdig/README.md not found!)" >&2
exit 1
fi
if [ -f "$SOURCE_DIR/libs/README.md" ]; then
echo "Found falcosecurity libs source in $SOURCE_DIR/libs"
FALCOSECURITY_LIBS_SOURCE_DIR="$SOURCE_DIR/libs"
fi
# Prepare build directory
mkdir -p "$BUILD_DIR/$BUILD_TYPE"
cd "$BUILD_DIR/$BUILD_TYPE"
CMAKE_ARGS=(
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
-DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX:-/usr}"
-DBUILD_DRIVER="$BUILD_DRIVER"
-DBUILD_BPF="$BUILD_BPF"
-DBUILD_SYSDIG_MODERN_BPF="$BUILD_SYSDIG_MODERN_BPF"
-DMODERN_BPF_SKEL_DIR="$SKEL_DIR/$BUILD_TYPE/skel_dir"
-DBUILD_WARNINGS_AS_ERRORS="$BUILD_WARNINGS_AS_ERRORS"
-DSYSDIG_VERSION="$BUILD_VERSION"
-DUSE_BUNDLED_DEPS=ON
)
if [ ! -z "${FALCOSECURITY_LIBS_SOURCE_DIR:=}" ]; then
CMAKE_ARGS+=(-DFALCOSECURITY_LIBS_SOURCE_DIR="$FALCOSECURITY_LIBS_SOURCE_DIR")
fi
CMAKE_ARGS+=("$SOURCE_DIR/sysdig")
echo "cmake ${CMAKE_ARGS[@]}"
cmake "${CMAKE_ARGS[@]}"
exit "$(printf '%d\n' $?)"
;;
"bash")
CMD=/bin/bash
;& # fallthrough
"usage")
exec "$CMD" "$@"
;;
*)
if [ ! -d "$BUILD_DIR/$BUILD_TYPE" ]; then
echo "Missing $BUILD_DIR/$BUILD_TYPE directory: run cmake."
exit 1
fi
cd "$BUILD_DIR/$BUILD_TYPE"
make -j"$MAKE_JOBS" "$CMD"
;;
esac
|