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 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
|
#!/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:
--bro-dist=DIR Path to Bro 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
brodist=""
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
;;
--bro-dist=*)
brodist=`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 "$brodist" ]; then
if type bro-config >/dev/null 2>&1; then
if bro-config --cmake_dir >/dev/null 2>&1; then
# Have a newer version of bro-config that has needed flags
append_cache_entry BRO_CONFIG_PREFIX PATH `bro-config --prefix`
append_cache_entry BRO_CONFIG_INCLUDE_DIR PATH `bro-config --include_dir`
append_cache_entry BRO_CONFIG_PLUGIN_DIR PATH `bro-config --plugin_dir`
append_cache_entry BRO_CONFIG_CMAKE_DIR PATH `bro-config --cmake_dir`
append_cache_entry CMAKE_MODULE_PATH PATH `bro-config --cmake_dir`
build_type=`bro-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 `bro-config --binpac_root`
fi
if [ -z "$broker_root" ]; then
append_cache_entry BROKER_ROOT_DIR PATH `bro-config --broker_root`
fi
if [ -z "$caf_root" ]; then
append_cache_entry CAF_ROOT_DIR PATH `bro-config --caf_root`
fi
else
brodist=`bro-config --bro_dist 2> /dev/null`
if [ ! -e "$brodist/bro-path-dev.in" ]; then
echo "$brodist does not appear to be a valid Bro source tree."
exit 1
fi
append_cache_entry BRO_DIST PATH $brodist
append_cache_entry CMAKE_MODULE_PATH PATH $brodist/cmake
fi
else
echo "Either 'bro-config' must be in PATH or '--bro-dist=<path>' used"
exit 1
fi
else
if [ ! -e "$brodist/bro-path-dev.in" ]; then
echo "$brodist does not appear to be a valid Bro source tree."
exit 1
fi
append_cache_entry BRO_DIST PATH $brodist
append_cache_entry CMAKE_MODULE_PATH PATH $brodist/cmake
fi
if [ "$installroot" != "default" ]; then
mkdir -p $installroot
append_cache_entry BRO_PLUGIN_INSTALL_ROOT PATH $installroot
fi
echo "Build Directory : $builddir"
echo "Bro Source Directory : $brodist"
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
|