Created
March 4, 2020 20:43
-
-
Save klehigh/e9bfb566f4707bd8e45b7ff37902f97d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Wrapper for viewing/setting options that the plugin's CMake | |
# scripts will recognize. | |
# | |
# Don't edit this. Edit configure.plugin to add plugin-specific options. | |
# | |
set -e | |
command="$0 $*" | |
if [ -e `dirname $0`/configure.plugin ]; then | |
# Include custom additions. | |
. `dirname $0`/configure.plugin | |
fi | |
# 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; | |
} | |
usage() { | |
cat 1>&2 <<EOF | |
Usage: $0 [OPTIONS] | |
Plugin Options: | |
--zeek-dist=DIR Path to Zeek source tree | |
--install-root=DIR Path where to install plugin into | |
--with-binpac=DIR Path to BinPAC installation root | |
--with-broker=DIR Path to Broker installation root | |
--with-caf=DIR Path to CAF installation root | |
--with-bifcl=PATH Path to bifcl executable | |
--enable-debug Compile in debugging mode | |
EOF | |
if type plugin_usage >/dev/null 2>&1; then | |
plugin_usage 1>&2 | |
fi | |
echo | |
exit 1 | |
} | |
# 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 | |
zeekdist="" | |
installroot="default" | |
CMakeCacheEntries="" | |
while [ $# -ne 0 ]; do | |
case "$1" in | |
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; | |
*) optarg= ;; | |
esac | |
case "$1" in | |
--help|-h) | |
usage | |
;; | |
--zeek-dist=*) | |
zeekdist=`cd $optarg && pwd` | |
;; | |
--install-root=*) | |
installroot=$optarg | |
;; | |
--with-binpac=*) | |
append_cache_entry BinPAC_ROOT_DIR PATH $optarg | |
binpac_root=$optarg | |
;; | |
--with-broker=*) | |
append_cache_entry BROKER_ROOT_DIR PATH $optarg | |
broker_root=$optarg | |
;; | |
--with-caf=*) | |
append_cache_entry CAF_ROOT_DIR PATH $optarg | |
caf_root=$optarg | |
;; | |
--with-bifcl=*) | |
append_cache_entry BifCl_EXE PATH $optarg | |
;; | |
--enable-debug) | |
append_cache_entry BRO_PLUGIN_ENABLE_DEBUG BOOL true | |
;; | |
*) | |
if type plugin_option >/dev/null 2>&1; then | |
plugin_option $1 && shift && continue; | |
fi | |
echo "Invalid option '$1'. Try $0 --help to see available options." | |
exit 1 | |
;; | |
esac | |
shift | |
done | |
if [ -z "$zeekdist" ]; then | |
if type zeek-config >/dev/null 2>&1; then | |
if zeek-config --cmake_dir >/dev/null 2>&1; then | |
# Have a newer version of zeek-config that has needed flags | |
append_cache_entry BRO_CONFIG_PREFIX PATH `zeek-config --prefix` | |
append_cache_entry BRO_CONFIG_INCLUDE_DIR PATH `zeek-config --include_dir` | |
append_cache_entry BRO_CONFIG_PLUGIN_DIR PATH `zeek-config --plugin_dir` | |
append_cache_entry BRO_CONFIG_CMAKE_DIR PATH `zeek-config --cmake_dir` | |
append_cache_entry CMAKE_MODULE_PATH PATH `zeek-config --cmake_dir` | |
build_type=`zeek-config --build_type` | |
if [ "$build_type" = "debug" ]; then | |
append_cache_entry BRO_PLUGIN_ENABLE_DEBUG BOOL true | |
fi | |
if [ -z "$binpac_root" ]; then | |
append_cache_entry BinPAC_ROOT_DIR PATH `zeek-config --binpac_root` | |
fi | |
if [ -z "$broker_root" ]; then | |
append_cache_entry BROKER_ROOT_DIR PATH `zeek-config --broker_root` | |
fi | |
if [ -z "$caf_root" ]; then | |
append_cache_entry CAF_ROOT_DIR PATH `zeek-config --caf_root` | |
fi | |
zeekdist=`zeek-config --zeek_dist 2> /dev/null` | |
append_cache_entry BRO_DIST PATH $zeekdist | |
else | |
zeekdist=`zeek-config --zeek_dist 2> /dev/null` | |
if [ ! -e "$zeekdist/zeek-path-dev.in" ]; then | |
echo "$zeekdist does not appear to be a valid Zeek source tree." | |
exit 1 | |
fi | |
append_cache_entry BRO_DIST PATH $zeekdist | |
append_cache_entry CMAKE_MODULE_PATH PATH $zeekdist/cmake | |
fi | |
else | |
echo "Either 'zeek-config' must be in PATH or '--zeek-dist=<path>' used" | |
exit 1 | |
fi | |
else | |
if [ ! -e "$zeekdist/zeek-path-dev.in" ]; then | |
echo "$zeekdist does not appear to be a valid Zeek source tree." | |
exit 1 | |
fi | |
append_cache_entry BRO_DIST PATH $zeekdist | |
append_cache_entry CMAKE_MODULE_PATH PATH $zeekdist/cmake | |
fi | |
if [ "$installroot" != "default" ]; then | |
mkdir -p $installroot | |
append_cache_entry BRO_PLUGIN_INSTALL_ROOT PATH $installroot | |
fi | |
echo "Build Directory : $builddir" | |
echo "Zeek Source Directory : $zeekdist" | |
mkdir -p $builddir | |
cd $builddir | |
cmake $CMakeCacheEntries .. | |
echo "# This is the command used to configure this build" > config.status | |
echo $command >> config.status | |
chmod u+x config.status |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment