diff options
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.cc')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.cc | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.cc b/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.cc new file mode 100644 index 000000000..d29488383 --- /dev/null +++ b/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.cc @@ -0,0 +1,186 @@ +#!/bin/bash +# +# Compiler detection +# Sets: +# CC, CXX, CFLAGS, CPPFLAGS, LDFLAGS, ARFLAGS, PKG_CONFIG, INSTALL, MBITS + + +mkl_require host + +function checks { + + # C compiler + mkl_meta_set "ccenv" "name" "C compiler from CC env" + if ! mkl_command_check "ccenv" "WITH_CC" cont "$CC --version"; then + if mkl_command_check "gcc" "WITH_GCC" cont "gcc --version"; then + CC=gcc + elif mkl_command_check "clang" "WITH_CLANG" cont "clang --version"; then + CC=clang + elif mkl_command_check "cc" "WITH_CC" fail "cc --version"; then + CC=cc + fi + fi + export CC="${CC}" + mkl_mkvar_set CC CC "$CC" + + if [[ $MKL_CC_WANT_CXX == 1 ]]; then + # C++ compiler + mkl_meta_set "cxxenv" "name" "C++ compiler from CXX env" + if ! mkl_command_check "cxxenv" "WITH_CXX" cont "$CXX --version" ; then + mkl_meta_set "gxx" "name" "C++ compiler (g++)" + mkl_meta_set "clangxx" "name" "C++ compiler (clang++)" + mkl_meta_set "cxx" "name" "C++ compiler (c++)" + if mkl_command_check "gxx" "WITH_GXX" cont "g++ --version"; then + CXX=g++ + elif mkl_command_check "clangxx" "WITH_CLANGXX" cont "clang++ --version"; then + CXX=clang++ + elif mkl_command_check "cxx" "WITH_CXX" fail "c++ --version"; then + CXX=c++ + fi + fi + export CXX="${CXX}" + mkl_mkvar_set "CXX" CXX "$CXX" + fi + + # Handle machine bits, if specified. + if [[ ! -z "$MBITS" ]]; then + mkl_meta_set mbits_m name "mbits compiler flag (-m$MBITS)" + if mkl_compile_check mbits_m "" fail CC "-m$MBITS"; then + mkl_mkvar_append CPPFLAGS CPPFLAGS "-m$MBITS" + mkl_mkvar_append LDFLAGS LDFLAGS "-m$MBITS" + fi + if [[ -z "$ARFLAGS" && $MBITS == 64 && $MKL_DISTRO == "sunos" ]]; then + # Turn on 64-bit archives on SunOS + mkl_mkvar_append ARFLAGS ARFLAGS "S" + fi + fi + + # Provide prefix and checks for various other build tools. + local t= + for t in LD:ld NM:nm OBJDUMP:objdump STRIP:strip LIBTOOL:libtool RANLIB:ranlib ; do + local tenv=${t%:*} + t=${t#*:} + local tval="${!tenv}" + + [[ -z $tval ]] && tval="$t" + + if mkl_prog_check "$t" "" disable "$tval" ; then + if [[ $tval != ${!tenv} ]]; then + export "$tenv"="$tval" + fi + mkl_mkvar_set $tenv $tenv "$tval" + fi + done + + # Compiler and linker flags + [[ ! -z $CFLAGS ]] && mkl_mkvar_set "CFLAGS" "CFLAGS" "$CFLAGS" + [[ ! -z $CPPFLAGS ]] && mkl_mkvar_set "CPPFLAGS" "CPPFLAGS" "$CPPFLAGS" + [[ ! -z $CXXFLAGS ]] && mkl_mkvar_set "CXXFLAGS" "CXXFLAGS" "$CXXFLAGS" + [[ ! -z $LDFLAGS ]] && mkl_mkvar_set "LDFLAGS" "LDFLAGS" "$LDFLAGS" + [[ ! -z $ARFLAGS ]] && mkl_mkvar_set "ARFLAGS" "ARFLAGS" "$ARFLAGS" + + if [[ $MKL_NO_DEBUG_SYMBOLS != "y" ]]; then + # Add debug symbol flag (-g) + # OSX 10.9 requires -gstrict-dwarf for some reason. + mkl_meta_set cc_g_dwarf name "debug symbols compiler flag (-g...)" + if [[ $MKL_DISTRO == "osx" ]]; then + if mkl_compile_check cc_g_dwarf "" cont CC "-gstrict-dwarf"; then + mkl_mkvar_append CPPFLAGS CPPFLAGS "-gstrict-dwarf" + else + mkl_mkvar_append CPPFLAGS CPPFLAGS "-g" + fi + else + mkl_mkvar_append CPPFLAGS CPPFLAGS "-g" + fi + fi + + + # pkg-config + if [ -z "$PKG_CONFIG" ]; then + PKG_CONFIG=pkg-config + fi + + if mkl_command_check "pkgconfig" "WITH_PKGCONFIG" cont "$PKG_CONFIG --version"; then + export PKG_CONFIG + fi + mkl_mkvar_set "pkgconfig" PKG_CONFIG $PKG_CONFIG + + [[ ! -z "$append_PKG_CONFIG_PATH" ]] && mkl_env_append PKG_CONFIG_PATH "$append_PKG_CONFIG_PATH" ":" + + # install + if [ -z "$INSTALL" ]; then + if [[ $MKL_DISTRO == "sunos" ]]; then + mkl_meta_set ginstall name "GNU install" + if mkl_command_check ginstall "" ignore "ginstall --version"; then + INSTALL=$(which ginstall) + else + INSTALL=$(which install) + fi + else + INSTALL=$(which install) + fi + fi + + if mkl_command_check "install" "WITH_INSTALL" cont "$INSTALL --version"; then + export INSTALL + fi + mkl_mkvar_set "install" INSTALL $INSTALL + + + # Enable profiling if desired + if [[ $WITH_PROFILING == y ]]; then + mkl_allvar_set "" "WITH_PROFILING" "y" + mkl_mkvar_append CPPFLAGS CPPFLAGS "-pg" + mkl_mkvar_append LDFLAGS LDFLAGS "-pg" + fi + + # Optimization + if [[ $WITHOUT_OPTIMIZATION == n ]]; then + mkl_mkvar_append CPPFLAGS CPPFLAGS "-O2" + else + mkl_mkvar_append CPPFLAGS CPPFLAGS "-O0" + fi + + # Static linking + if [[ $WITH_STATIC_LINKING == y ]]; then + # LDFLAGS_STATIC is the LDFLAGS needed to enable static linking + # of sub-sequent libraries, while + # LDFLAGS_DYNAMIC is the LDFLAGS needed to enable dynamic linking. + if [[ $MKL_DISTRO != "osx" ]]; then + mkl_mkvar_set staticlinking LDFLAGS_STATIC "-Wl,-Bstatic" + mkl_mkvar_set staticlinking LDFLAGS_DYNAMIC "-Wl,-Bdynamic" + mkl_mkvar_set staticlinking HAS_LDFLAGS_STATIC y + else + # OSX linker can't enable/disable static linking so we'll + # need to find the .a through STATIC_LIB_libname env var + mkl_mkvar_set staticlinking HAS_LDFLAGS_STATIC n + # libtool -static supported + mkl_mkvar_set staticlinking HAS_LIBTOOL_STATIC y + fi + fi + + # Check for GNU ar (which has the -M option) + mkl_meta_set "gnuar" "name" "GNU ar" + mkl_command_check "gnuar" "HAS_GNU_AR" disable \ + "ar -V 2>/dev/null | grep -q GNU" +} + + +mkl_option "Compiler" "env:CC" "--cc=CC" "Build using C compiler CC" "\$CC" +mkl_option "Compiler" "env:CXX" "--cxx=CXX" "Build using C++ compiler CXX" "\$CXX" +mkl_option "Compiler" "ARCH" "--arch=ARCH" "Build for architecture" "$(uname -m)" +mkl_option "Compiler" "CPU" "--cpu=CPU" "Build and optimize for specific CPU" "generic" +mkl_option "Compiler" "MBITS" "--mbits=BITS" "Machine bits (32 or 64)" "" + +for n in CFLAGS CPPFLAGS CXXFLAGS LDFLAGS ARFLAGS; do + mkl_option "Compiler" "mk:$n" "--$n=$n" "Add $n flags" +done + +mkl_option "Compiler" "env:append_PKG_CONFIG_PATH" "--pkg-config-path=EXTRA_PATHS" "Extra paths for pkg-config" + +mkl_option "Compiler" "WITH_PROFILING" "--enable-profiling" "Enable profiling" +mkl_option "Compiler" "WITH_STATIC_LINKING" "--enable-static" "Enable static linking" +mkl_option "Compiler" "WITHOUT_OPTIMIZATION" "--disable-optimization" "Disable optimization flag to compiler" "n" +mkl_option "Compiler" "env:MKL_NO_DEBUG_SYMBOLS" "--disable-debug-symbols" "Disable debugging symbols" "n" +mkl_option "Compiler" "env:MKL_WANT_WERROR" "--enable-werror" "Enable compiler warnings as errors" "n" +mkl_option "Compiler" "WITH_STRIP" "--enable-strip" "Strip libraries when installing" "n" |