summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/librdkafka-2.1.0/dev-conf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/dev-conf.sh')
-rwxr-xr-xfluent-bit/lib/librdkafka-2.1.0/dev-conf.sh123
1 files changed, 123 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/dev-conf.sh b/fluent-bit/lib/librdkafka-2.1.0/dev-conf.sh
new file mode 100755
index 000000000..23931a77e
--- /dev/null
+++ b/fluent-bit/lib/librdkafka-2.1.0/dev-conf.sh
@@ -0,0 +1,123 @@
+#!/bin/bash
+#
+# librdkafka - Apache Kafka C library
+#
+# Copyright (c) 2018 Magnus Edenhill
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+#
+# Configure librdkafka for development
+#
+# Usage:
+# ./dev-conf.sh - Build with settings in dev-conf.sh
+# ./dev-conf.sh asan|tsan - ... and ASAN or TSAN
+# ./dev-conf.sh clean - Non-development clean build
+#
+
+set -e
+
+build () {
+ local btype="$1"
+ local opts="$2"
+
+ echo "$btype configuration options: $opts"
+ ./configure --clean
+ ./configure $opts
+
+ make clean
+ make -j
+ (cd tests ; make -j build)
+
+ echo "$btype build done"
+}
+
+OPTS=""
+
+case "$1" in
+ clean)
+ build Clean
+ exit $?
+ ;;
+ asan)
+ FSAN='-fsanitize=address'
+ ;;
+ tsan)
+ FSAN='-fsanitize=thread'
+ # C11 threads in glibc don't play nice with TSAN,
+ # so use the builtin tinycthreads instead.
+ OPTS="$OPTS --disable-c11threads"
+ ;;
+ ubsan)
+ FSAN='-fsanitize=undefined -fsanitize-undefined-trap-on-error -fno-omit-frame-pointer'
+ ;;
+ gprof)
+ # gprof
+ OPTS="$OPTS --enable-profiling"
+ ;;
+ "")
+ ;;
+ *)
+ echo "Usage: $0 [clean|asan|tsan|ubsan|gprof]"
+ exit 1
+ ;;
+esac
+
+
+if [[ $1 != clean ]]; then
+ # enable strict C99, C++98 checks.
+ export CFLAGS="$CFLAGS -std=c99"
+ export CXXFLAGS="$CXXFLAGS -std=c++98"
+fi
+
+# enable variable shadow warnings
+#export CFLAGS="$CFLAGS -Wshadow=compatible-local -Wshadow=local"
+#export CXXFLAGS="$CXXFLAGS -Wshadow=compatible-local -Wshadow=local"
+
+# enable pedantic
+#export CFLAGS='-pedantic'
+#export CXXFLAGS='-pedantic'
+
+if [[ ! -z $FSAN ]]; then
+ export CPPFLAGS="$CPPFLAGS $FSAN"
+ export LDFLAGS="$LDFLAGS $FSAN"
+fi
+
+# enable devel asserts
+OPTS="$OPTS --enable-devel"
+
+# disable optimizations
+OPTS="$OPTS --disable-optimization"
+
+# disable lz4
+#OPTS="$OPTS --disable-lz4"
+
+# disable cyrus-sasl
+#OPTS="$OPTS --disable-sasl"
+
+#enable refcnt debugging
+#OPTS="$OPTS --enable-refcnt-debug"
+
+build Development "$OPTS"
+