From d1d66f7ffc8fb53e64d540d17727d56b2e244aa9 Mon Sep 17 00:00:00 2001 From: Adonis Ling Date: Sun, 31 Jul 2022 20:53:50 +0800 Subject: [PATCH] [chore](thirdparty) Build script doesn't interrupt when errors occur. (#11357) 1. Add a comment 2. Remove all && --- thirdparty/build-thirdparty.sh | 317 +++++++++++++++++++++++++-------- thirdparty/vars.sh | 2 +- 2 files changed, 239 insertions(+), 80 deletions(-) diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh index ac10258769..569427e329 100755 --- a/thirdparty/build-thirdparty.sh +++ b/thirdparty/build-thirdparty.sh @@ -112,6 +112,7 @@ if [[ ! -f ${TP_DIR}/vars.sh ]]; then echo "vars.sh is missing". exit 1 fi + . "${TP_DIR}/vars.sh" cd "${TP_DIR}" @@ -243,14 +244,15 @@ remove_all_dylib() { #libbacktrace build_libbacktrace() { - check_if_source_exist $LIBBACKTRACE_SOURCE - cd $TP_SOURCE_DIR/$LIBBACKTRACE_SOURCE + check_if_source_exist "${LIBBACKTRACE_SOURCE}" + cd "${TP_SOURCE_DIR}/${LIBBACKTRACE_SOURCE}" CPPFLAGS="-I${TP_INCLUDE_DIR}" \ CXXFLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ - ./configure --prefix=$TP_INSTALL_DIR - make -j $PARALLEL + ./configure --prefix="${TP_INSTALL_DIR}" + + make -j "${PARALLEL}" make install } @@ -258,14 +260,19 @@ build_libbacktrace() { build_libevent() { check_if_source_exist "${LIBEVENT_SOURCE}" cd "${TP_SOURCE_DIR}/${LIBEVENT_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" CFLAGS="-std=c99 -D_BSD_SOURCE -fno-omit-frame-pointer -g -ggdb -O2 -I${TP_INCLUDE_DIR}" \ CPPLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DEVENT__DISABLE_TESTS=ON \ -DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_SAMPLES=ON -DEVENT__DISABLE_REGRESS=ON .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install + remove_all_dylib } @@ -326,7 +333,8 @@ build_thrift() { mv compiler/cpp/thrifty.hh compiler/cpp/thrifty.h fi - make -j "${PARALLEL}" && make install + make -j "${PARALLEL}" + make install } # protobuf @@ -334,10 +342,18 @@ build_protobuf() { check_if_source_exist "${PROTOBUF_SOURCE}" cd "${TP_SOURCE_DIR}/${PROTOBUF_SOURCE}" rm -fr gmock + # NOTE(amos): -Wl,--undefined=pthread_create force searching for pthread symbols. # See https://stackoverflow.com/a/65348893/1329147 for detailed explanation. - mkdir gmock && cd gmock && tar xf "${TP_SOURCE_DIR}/${GTEST_NAME}" && - mv "${GTEST_SOURCE}" gtest && cd "${TP_SOURCE_DIR}/${PROTOBUF_SOURCE}" && ./autogen.sh + mkdir gmock + cd gmock + tar xf "${TP_SOURCE_DIR}/${GTEST_NAME}" + + mv "${GTEST_SOURCE}" gtest + + cd "${TP_SOURCE_DIR}/${PROTOBUF_SOURCE}" + + ./autogen.sh if [[ "${KERNEL}" == 'Darwin' ]]; then ldflags="-L${TP_LIB_DIR}" @@ -361,7 +377,8 @@ build_protobuf() { cd - fi - make -j "${PARALLEL}" && make install + make -j "${PARALLEL}" + make install } # gflags @@ -369,11 +386,17 @@ build_gflags() { check_if_source_exist "${GFLAGS_SOURCE}" cd "${TP_SOURCE_DIR}/${GFLAGS_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \ -DCMAKE_POSITION_INDEPENDENT_CODE=On ../ - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # glog @@ -387,9 +410,10 @@ build_glog() { CPPFLAGS="-I${TP_INCLUDE_DIR} -fpermissive -fPIC" \ LDFLAGS="-L${TP_LIB_DIR}" \ - CFLAGS="-fPIC" \ ./configure --prefix="${TP_INSTALL_DIR}" --enable-frame-pointers --disable-shared --enable-static - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # gtest @@ -397,22 +421,33 @@ build_gtest() { check_if_source_exist "${GTEST_SOURCE}" cd "${TP_SOURCE_DIR}/${GTEST_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ "${CMAKE_CMD}" ../ -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On # -DCMAKE_CXX_FLAGS="$warning_uninitialized" - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # rapidjson build_rapidjson() { check_if_source_exist "${RAPIDJSON_SOURCE}" cd "${TP_SOURCE_DIR}/${RAPIDJSON_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + "${CMAKE_CMD}" ../ -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DRAPIDJSON_BUILD_DOC=OFF \ -DRAPIDJSON_BUILD_EXAMPLES=OFF -DRAPIDJSON_BUILD_TESTS=OFF - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # snappy @@ -420,19 +455,24 @@ build_snappy() { check_if_source_exist "${SNAPPY_SOURCE}" cd "${TP_SOURCE_DIR}/${SNAPPY_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + CFLAGS="-O3" CXXFLAGS="-O3" "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_INSTALL_INCLUDEDIR="${TP_INCLUDE_DIR}"/snappy \ -DSNAPPY_BUILD_TESTS=0 ../ - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install #build for libarrow.a - cp "${TP_INCLUDE_DIR}/snappy/snappy-c.h" "${TP_INCLUDE_DIR}/snappy-c.h" && - cp "${TP_INCLUDE_DIR}/snappy/snappy-sinksource.h" "${TP_INCLUDE_DIR}/snappy-sinksource.h" && - cp "${TP_INCLUDE_DIR}/snappy/snappy-stubs-public.h" "${TP_INCLUDE_DIR}/snappy-stubs-public.h" && - cp "${TP_INCLUDE_DIR}/snappy/snappy.h" "${TP_INCLUDE_DIR}/snappy.h" + cp "${TP_INCLUDE_DIR}/snappy/snappy-c.h" "${TP_INCLUDE_DIR}/snappy-c.h" + cp "${TP_INCLUDE_DIR}/snappy/snappy-sinksource.h" "${TP_INCLUDE_DIR}/snappy-sinksource.h" + cp "${TP_INCLUDE_DIR}/snappy/snappy-stubs-public.h" "${TP_INCLUDE_DIR}/snappy-stubs-public.h" + cp "${TP_INCLUDE_DIR}/snappy/snappy.h" "${TP_INCLUDE_DIR}/snappy.h" } # gperftools @@ -449,7 +489,9 @@ build_gperftools() { LDFLAGS="-L${TP_LIB_DIR}" \ LD_LIBRARY_PATH="${TP_LIB_DIR}" \ ./configure --prefix="${TP_INSTALL_DIR}/gperftools" --disable-shared --enable-static --disable-libunwind --with-pic --enable-frame-pointers - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # zlib @@ -457,17 +499,20 @@ build_zlib() { check_if_source_exist "${ZLIB_SOURCE}" cd "${TP_SOURCE_DIR}/${ZLIB_SOURCE}" - CPPFLAGS="-I${TP_INCLUDE_DIR}" \ + CFLAGS="-fPIC" \ + CPPFLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ - CFLAGS="-fPIC" \ ./configure --prefix="${TP_INSTALL_DIR}" --static - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install # minizip cd contrib/minizip autoreconf --force --install ./configure --prefix="${TP_INSTALL_DIR}" --enable-static=yes --enable-shared=no - make -j "${PARALLEL}" && make install + make -j "${PARALLEL}" + make install } # lz4 @@ -488,9 +533,13 @@ build_lz4() { build_zstd() { check_if_source_exist "${ZSTD_SOURCE}" cd "${TP_SOURCE_DIR}/${ZSTD_SOURCE}/build/cmake" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_TESTING=OFF -DZSTD_BUILD_TESTS=OFF -DZSTD_BUILD_STATIC=ON \ -DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_SHARED=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" .. + "${BUILD_SYSTEM}" -j "${PARALLEL}" install } @@ -510,7 +559,9 @@ build_lzo2() { CPPFLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ./configure --prefix="${TP_INSTALL_DIR}" --disable-shared --enable-static - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # curl @@ -530,7 +581,9 @@ build_curl() { ./configure --prefix="${TP_INSTALL_DIR}" --disable-shared --enable-static \ --without-librtmp --with-ssl="${TP_INSTALL_DIR}" --without-libidn2 --disable-ldap --enable-ipv6 \ --without-libssh2 --without-brotli - make curl_LDFLAGS=-all-static -j "${PARALLEL}" && make curl_LDFLAGS=-all-static install + + make curl_LDFLAGS=-all-static -j "${PARALLEL}" + make curl_LDFLAGS=-all-static install } # re2 @@ -544,16 +597,21 @@ build_re2() { # hyperscan build_hyperscan() { - check_if_source_exist $RAGEL_SOURCE - cd $TP_SOURCE_DIR/$RAGEL_SOURCE - ./configure --prefix=$TP_INSTALL_DIR && make install + check_if_source_exist "${RAGEL_SOURCE}" + cd "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" - check_if_source_exist $HYPERSCAN_SOURCE - cd $TP_SOURCE_DIR/$HYPERSCAN_SOURCE - mkdir -p $BUILD_DIR && cd $BUILD_DIR - PATH=$TP_INSTALL_DIR/bin:$PATH ${CMAKE_CMD} -G "${GENERATOR}" -DBUILD_SHARED_LIBS=0 \ - -DBOOST_ROOT=$BOOST_SOURCE -DCMAKE_INSTALL_PREFIX=$TP_INSTALL_DIR -DBUILD_EXAMPLES=OFF .. - ${BUILD_SYSTEM} -j $PARALLEL install + ./configure --prefix="${TP_INSTALL_DIR}" + make install + + check_if_source_exist "${HYPERSCAN_SOURCE}" + cd "${TP_SOURCE_DIR}/${HYPERSCAN_SOURCE}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + + "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_SHARED_LIBS=0 \ + -DBOOST_ROOT="${BOOST_SOURCE}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_EXAMPLES=OFF .. + "${BUILD_SYSTEM}" -j "${PARALLEL}" install } # boost @@ -580,8 +638,11 @@ build_mysql() { cd "${TP_SOURCE_DIR}/${MYSQL_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + if [[ ! -d "${BOOST_SOURCE}" ]]; then cp -rf "${TP_SOURCE_DIR}/${BOOST_SOURCE}" ./ fi @@ -620,7 +681,9 @@ build_leveldb() { check_if_source_exist "${LEVELDB_SOURCE}" cd "${TP_SOURCE_DIR}/${LEVELDB_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ CXXFLAGS="-fPIC" "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DLEVELDB_BUILD_BENCHMARKS=OFF \ @@ -633,7 +696,10 @@ build_brpc() { check_if_source_exist "${BRPC_SOURCE}" cd "${TP_SOURCE_DIR}/${BRPC_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ if [[ "${KERNEL}" != 'Darwin' ]]; then @@ -642,11 +708,15 @@ build_brpc() { ldflags="-L${TP_LIB_DIR}" fi + # Currently, BRPC can't be built for static libraries only (without .so). Therefore, we should add `-fPIC` + # to the dependencies which are required by BRPC. Dependencies: zlib, glog, protobuf, leveldb LDFLAGS="${ldflags}" \ "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_SHARED_LIBS=0 -DWITH_GLOG=ON -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \ -DCMAKE_LIBRARY_PATH="${TP_INSTALL_DIR}/lib64" -DCMAKE_INCLUDE_PATH="${TP_INSTALL_DIR}/include" \ -DPROTOBUF_PROTOC_EXECUTABLE="${TP_INSTALL_DIR}/bin/protoc" .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install remove_all_dylib } @@ -677,13 +747,17 @@ build_rocksdb() { build_cyrus_sasl() { check_if_source_exist "${CYRUS_SASL_SOURCE}" cd "${TP_SOURCE_DIR}/${CYRUS_SASL_SOURCE}" + CPPFLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ./configure --prefix="${TP_INSTALL_DIR}" --enable-static --enable-shared=no --with-openssl="${TP_INSTALL_DIR}" --with-pic + if [[ "${KERNEL}" != 'Darwin' ]]; then - make -j "${PARALLEL}" && make install + make -j "${PARALLEL}" + make install else - make -j "${PARALLEL}" && make framedir="${TP_INCLUDE_DIR}/sasl" install + make -j "${PARALLEL}" + make framedir="${TP_INCLUDE_DIR}/sasl" install fi } @@ -696,7 +770,10 @@ build_librdkafka() { CPPFLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ./configure --prefix="${TP_INSTALL_DIR}" --enable-static --enable-sasl --disable-c11threads - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install + remove_all_dylib } @@ -715,14 +792,19 @@ build_libunixodbc() { CPPFLAGS="${cppflags}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ./configure --prefix="${TP_INSTALL_DIR}" --with-included-ltdl --enable-static=yes --enable-shared=no - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # flatbuffers build_flatbuffers() { check_if_source_exist "${FLATBUFFERS_SOURCE}" cd "${TP_SOURCE_DIR}/${FLATBUFFERS_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ if [[ "${KERNEL}" != 'Darwin' ]]; then @@ -734,7 +816,9 @@ build_flatbuffers() { CXXFLAGS="${warning_class_memaccess}" \ LDFLAGS="${ldflags}" \ "${CMAKE_CMD}" -G "${GENERATOR}" -DFLATBUFFERS_BUILD_TESTS=OFF .. + "${BUILD_SYSTEM}" -j "${PARALLEL}" + cp flatc ../../../installed/bin/flatc cp -r ../include/flatbuffers ../../../installed/include/flatbuffers cp libflatbuffers.a ../../../installed/lib/libflatbuffers.a @@ -743,7 +827,11 @@ build_flatbuffers() { # arrow build_arrow() { check_if_source_exist "${ARROW_SOURCE}" - cd "${TP_SOURCE_DIR}/${ARROW_SOURCE}/cpp" && mkdir -p release && cd release + cd "${TP_SOURCE_DIR}/${ARROW_SOURCE}/cpp" + + mkdir -p release + cd release + export ARROW_BROTLI_URL="${TP_SOURCE_DIR}/${BROTLI_NAME}" export ARROW_GLOG_URL="${TP_SOURCE_DIR}/${GLOG_NAME}" export ARROW_LZ4_URL="${TP_SOURCE_DIR}/${LZ4_NAME}" @@ -788,7 +876,8 @@ build_arrow() { -DBOOST_ROOT="${TP_INSTALL_DIR}" --no-warn-unused-cli \ -DThrift_ROOT="${TP_INSTALL_DIR}" .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install #copy dep libs cp -rf ./jemalloc_ep-prefix/src/jemalloc_ep/dist/lib/libjemalloc_pic.a "${TP_INSTALL_DIR}/lib64/libjemalloc.a" @@ -801,7 +890,10 @@ build_arrow() { build_s2() { check_if_source_exist "${S2_SOURCE}" cd "${TP_SOURCE_DIR}/${S2_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ if [[ "${KERNEL}" != 'Darwin' ]]; then @@ -821,7 +913,9 @@ build_s2() { -DCMAKE_LIBRARY_PATH="${TP_INSTALL_DIR}/lib64" \ -DOPENSSL_ROOT_DIR="${TP_INSTALL_DIR}/include" \ -DWITH_GLOG=ON .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # bitshuffle @@ -885,7 +979,10 @@ build_croaringbitmap() { check_if_source_exist "${CROARINGBITMAP_SOURCE}" cd "${TP_SOURCE_DIR}/${CROARINGBITMAP_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ if [[ "${KERNEL}" != 'Darwin' ]]; then @@ -898,17 +995,24 @@ build_croaringbitmap() { LDFLAGS="${ldflags}" \ "${CMAKE_CMD}" -G "${GENERATOR}" ${avx_flag} -DROARING_BUILD_STATIC=ON -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \ -DENABLE_ROARING_TESTS=OFF .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # fmt build_fmt() { check_if_source_exist "${FMT_SOURCE}" cd "${TP_SOURCE_DIR}/${FMT_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + "${CMAKE_CMD}" -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" .. - "${BUILD_SYSTEM}" -j"${PARALLEL}" && "${BUILD_SYSTEM}" install + "${BUILD_SYSTEM}" -j"${PARALLEL}" + "${BUILD_SYSTEM}" install } # parallel_hashmap @@ -936,8 +1040,12 @@ build_libdivide() { build_orc() { check_if_source_exist "${ORC_SOURCE}" cd "${TP_SOURCE_DIR}/${ORC_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ + CXXFLAGS="-O3 -Wno-array-bounds ${warning_reserved_identifier} ${warning_suggest_override}" \ "${CMAKE_CMD}" -G "${GENERATOR}" ../ -DBUILD_JAVA=OFF \ -DPROTOBUF_HOME="${TP_INSTALL_DIR}" \ @@ -951,7 +1059,8 @@ build_orc() { -DBUILD_CPP_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } #cctz @@ -959,7 +1068,9 @@ build_cctz() { check_if_source_exist "${CCTZ_SOURCE}" cd "${TP_SOURCE_DIR}/${CCTZ_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf CMakeCache.txt CMakeFiles/ "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF .. @@ -996,14 +1107,19 @@ build_tsan_header() { build_aws_sdk() { check_if_source_exist "${AWS_SDK_SOURCE}" cd "${TP_SOURCE_DIR}/${AWS_SDK_SOURCE}" + rm -rf "${BUILD_DIR}" + # -Wno-nonnull gcc-11 "${CMAKE_CMD}" -G "${GENERATOR}" -B"${BUILD_DIR}" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \ -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" -DBUILD_SHARED_LIBS=OFF -DENABLE_TESTING=OFF \ -DCURL_LIBRARY_RELEASE="${TP_INSTALL_DIR}/lib/libcurl.a" -DZLIB_LIBRARY_RELEASE="${TP_INSTALL_DIR}/lib/libz.a" \ -DBUILD_ONLY="core;s3;s3-crt;transfer" -DCMAKE_CXX_FLAGS="-Wno-nonnull" -DCPP_STANDARD=17 + cd "${BUILD_DIR}" - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # lzma @@ -1012,13 +1128,21 @@ build_lzma() { echo "autopoint is required by $0, install it first" return 255 fi + check_if_source_exist "${LZMA_SOURCE}" cd "${TP_SOURCE_DIR}/${LZMA_SOURCE}" + export ACLOCAL_PATH='/usr/share/aclocal' + sh autogen.sh - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + ../configure --prefix="${TP_INSTALL_DIR}" --enable-shared=no --with-pic - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # xml2 @@ -1027,32 +1151,47 @@ build_xml2() { echo "pkg-config is required by $0, install it first" return 255 fi + check_if_source_exist "${XML2_SOURCE}" cd "${TP_SOURCE_DIR}/${XML2_SOURCE}" + export ACLOCAL_PATH='/usr/share/aclocal' + sh autogen.sh make distclean - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + CPPLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ../configure --prefix="${TP_INSTALL_DIR}" --enable-shared=no --with-pic --with-python=no --with-lzma="${TP_INSTALL_DIR}" - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # idn build_idn() { check_if_source_exist "${IDN_SOURCE}" cd "${TP_SOURCE_DIR}/${IDN_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + ../configure --prefix="${TP_INSTALL_DIR}" --enable-shared=no --with-pic - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # gsasl build_gsasl() { check_if_source_exist "${GSASL_SOURCE}" cd "${TP_SOURCE_DIR}/${GSASL_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" if [[ "${KERNEL}" != 'Darwin' ]]; then cflags='' @@ -1061,14 +1200,18 @@ build_gsasl() { fi CFLAGS="${cflags}" ../configure --prefix="${TP_INSTALL_DIR}" --with-gssapi-impl=mit --enable-shared=no --with-pic --with-libidn-prefix="${TP_INSTALL_DIR}" - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # krb5 build_krb5() { check_if_source_exist "${KRB5_SOURCE}" cd "${TP_SOURCE_DIR}/${KRB5_SOURCE}/src" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" if [[ "${KERNEL}" == 'Darwin' ]]; then with_crypto_impl='--with-crypto-impl=openssl' @@ -1076,18 +1219,25 @@ build_krb5() { CFLAGS="-fcommon -I${TP_INSTALL_DIR}/include" LDFLAGS="-L${TP_INSTALL_DIR}/lib" \ ../configure --prefix="${TP_INSTALL_DIR}" --disable-shared --enable-static ${with_crypto_impl} - make -j "${PARALLEL}" && make install + + make -j "${PARALLEL}" + make install } # hdfs3 build_hdfs3() { check_if_source_exist "${HDFS3_SOURCE}" cd "${TP_SOURCE_DIR}/${HDFS3_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" && rm -rf ./* + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + rm -rf ./* + # build libhdfs3 with kerberos support CPPLAGS="-I${TP_INCLUDE_DIR}" \ LDFLAGS="-L${TP_LIB_DIR}" \ ../bootstrap --dependency="${TP_INSTALL_DIR}" --prefix="${TP_INSTALL_DIR}" --disable-shared --enable-static + make CXXFLAGS="${libhdfs_cxx17}" -j "${PARALLEL}" make install } @@ -1121,14 +1271,15 @@ build_simdjson() { check_if_source_exist "${SIMDJSON_SOURCE}" cd "${TP_SOURCE_DIR}/${SIMDJSON_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" + CXXFLAGS="-O3" \ CFLAGS="-O3" \ $CMAKE_CMD .. $CMAKE_CMD --build . cp "${TP_SOURCE_DIR}/${SIMDJSON_SOURCE}/${BUILD_DIR}/libsimdjson.a" "${TP_INSTALL_DIR}/lib64" - cp -r "${TP_SOURCE_DIR}/${SIMDJSON_SOURCE}/include"/* "${TP_INCLUDE_DIR}/" } @@ -1136,21 +1287,29 @@ build_simdjson() { build_nlohmann_json() { check_if_source_exist "${NLOHMANN_JSON_SOURCE}" cd "${TP_SOURCE_DIR}/${NLOHMANN_JSON_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" -DJSON_BuildTests=OFF .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # opentelemetry build_opentelemetry() { check_if_source_exist "${OPENTELEMETRY_SOURCE}" cd "${TP_SOURCE_DIR}/${OPENTELEMETRY_SOURCE}" - mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}" + + mkdir -p "${BUILD_DIR}" + cd "${BUILD_DIR}" "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_PREFIX_PATH="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF \ -DWITH_OTLP=ON -DWITH_OTLP_GRPC=OFF -DWITH_OTLP_HTTP=ON -DWITH_ZIPKIN=ON -DWITH_EXAMPLES=OFF .. - "${BUILD_SYSTEM}" -j "${PARALLEL}" && "${BUILD_SYSTEM}" install + + "${BUILD_SYSTEM}" -j "${PARALLEL}" + "${BUILD_SYSTEM}" install } # sse2neon diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh index 675d35d3cd..28b002b99a 100644 --- a/thirdparty/vars.sh +++ b/thirdparty/vars.sh @@ -157,7 +157,7 @@ HYPERSCAN_MD5SUM="65e08385038c24470a248f6ff2fa379b" # vectorscan (support arm for hyperscan) MACHINE_TYPE=$(uname -m) -if [[ "${MACHINE_TYPE}" == "aarch64" ]]; then +if [[ "${MACHINE_TYPE}" == "aarch64" || "${MACHINE_TYPE}" == 'arm64' ]]; then echo "use vectorscan instead of hyperscan on aarch64" HYPERSCAN_DOWNLOAD="https://github.com/VectorCamp/vectorscan/archive/refs/tags/vectorscan/5.4.7.tar.gz" HYPERSCAN_NAME=vectorscan-5.4.7.tar.gz