mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
172 lines
5.6 KiB
Bash
Executable file
172 lines
5.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# Convenience wrapper for easily viewing/setting options that
|
|
# the project's CMake scripts will recognize
|
|
|
|
# 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="\
|
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
|
|
|
Build Directory:
|
|
--builddir=DIR place build files in directory [build]
|
|
|
|
Installation Directories:
|
|
--prefix=PREFIX installation directory [/usr/local/bro]
|
|
--datadir=DIR policy file installation subdirectory
|
|
[PREFIX/share/bro]
|
|
|
|
Optional Features:
|
|
--enable-debug compile with debugging symbols
|
|
--enable-release compile with optimizations
|
|
--enable-brov6 enable IPv6 processing
|
|
--enable-perftools use Google's perftools
|
|
--build-binpac build BinPAC from source located in
|
|
'binpac' subdirectory
|
|
--install-binpac if --build-binpac, this option adds
|
|
BinPAC build files to the install target
|
|
--install-auxtools build and install auxilliary tools located
|
|
in 'aux' subdirectory
|
|
|
|
Required Packages in Non-Standard Locations:
|
|
--with-openssl=PATH path to OpenSSL install root
|
|
--with-bind=PATH path to BIND install root
|
|
--with-pcap=PATH path to libpcap install root
|
|
--with-binpac=PATH path to BinPAC install root
|
|
|
|
Optional Packages in Non-Standard Locations:
|
|
--with-libmagic=PATH path to libmagic install root
|
|
--with-geoip=PATH path to the libGeoIP install root
|
|
--with-perftools=PATH path to Google Perftools install root
|
|
|
|
Influential Environment Variables (only on first invocation
|
|
per build directory):
|
|
CC C compiler command
|
|
CFLAGS C compiler flags
|
|
CXX C++ compiler command
|
|
CXXFLAGS C++ compiler flags
|
|
"
|
|
|
|
sourcedir=`dirname $0`
|
|
if [ "$sourcedir" = "." ]; then
|
|
sourcedir=`pwd`
|
|
fi
|
|
|
|
# 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
|
|
CMakeCacheEntries=""
|
|
append_cache_entry CMAKE_INSTALL_PREFIX PATH /usr/local/bro
|
|
append_cache_entry DATADIR STRING share/bro
|
|
append_cache_entry ENABLE_DEBUG BOOL false
|
|
append_cache_entry ENABLE_RELEASE BOOL false
|
|
append_cache_entry BROv6 BOOL false
|
|
append_cache_entry ENABLE_PERFTOOLS BOOL false
|
|
|
|
# these settings should be set depending on whether the submodule exists
|
|
append_cache_entry BinPAC_PREFER_BUILD BOOL false
|
|
append_cache_entry BinPAC_SKIP_INSTALL BOOL true
|
|
append_cache_entry INSTALL_AUX_TOOLS BOOL false
|
|
|
|
# parse arguments
|
|
while [ $# -ne 0 ]; do
|
|
case "$1" in
|
|
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
*) optarg= ;;
|
|
esac
|
|
|
|
case "$1" in
|
|
--help|-h)
|
|
echo "${usage}" 1>&2
|
|
exit 1
|
|
;;
|
|
--builddir=*)
|
|
builddir=$optarg
|
|
;;
|
|
--prefix=*)
|
|
append_cache_entry CMAKE_INSTALL_PREFIX PATH $optarg
|
|
;;
|
|
--datadir=*)
|
|
append_cache_entry DATADIR STRING $optarg
|
|
;;
|
|
--enable-debug)
|
|
append_cache_entry ENABLE_DEBUG BOOL true
|
|
;;
|
|
--enable-release)
|
|
append_cache_entry ENABLE_RELEASE BOOL true
|
|
;;
|
|
--enable-brov6)
|
|
append_cache_entry BROv6 BOOL true
|
|
;;
|
|
--enable-perftools)
|
|
append_cache_entry ENABLE_PERFTOOLS BOOL true
|
|
;;
|
|
--build-binpac)
|
|
if [ -f $sourcedir/binpac/CMakeLists.txt ]; then
|
|
append_cache_entry BinPAC_PREFER_BUILD BOOL true
|
|
else
|
|
echo "Error: BinPAC source not found in $sourcedir/binpac" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
--install-binpac)
|
|
append_cache_entry BinPAC_SKIP_INSTALL BOOL false
|
|
;;
|
|
--install-auxtools)
|
|
if [ -f $sourcedir/aux/CMakeLists.txt ]; then
|
|
append_cache_entry INSTALL_AUX_TOOLS BOOL false
|
|
else
|
|
echo "Error: Bro-Aux source not found in $sourcedir/aux" >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
--with-openssl=*)
|
|
append_cache_entry OpenSSL_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-bind=*)
|
|
append_cache_entry BIND_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-pcap=*)
|
|
append_cache_entry PCAP_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-binpac=*)
|
|
append_cache_entry BinPAC_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-libmagic=*)
|
|
append_cache_entry LibMagic_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-geoip=*)
|
|
append_cache_entry LibGeoIP_ROOT_DIR PATH $optarg
|
|
;;
|
|
--with-perftools=*)
|
|
append_cache_entry GooglePerftools_ROOT_DIR PATH $optarg
|
|
;;
|
|
*)
|
|
echo "Invalid option '$1'. Try $0 --help to see available options."
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# Create build directory
|
|
mkdir -p $builddir
|
|
|
|
echo "Build Directory : $builddir"
|
|
echo "Source Directory: $sourcedir"
|
|
cd $builddir
|
|
cmake $CMakeCacheEntries $sourcedir
|