#!/bin/bash # Script to make the LibZMQ libraries. # Exit Codes found in /usr/include/sysexits.h #set -x # If there is a version.sh file, use it for Package Version information (as found in zmq.h) if [ -e version.sh ] ; then ZMQ_VERSION_MAJOR=$(./version.sh | cut -d. -f1) ZMQ_VERSION_MINOR=$(./version.sh | cut -d. -f2) ZMQ_VERSION_PATCH=$(./version.sh | cut -d. -f3) export PACKAGE_VERSION=$(echo "LibZMQ VERSION ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH} Nov 4, 2021") fi # Function to configure, make and then install the Package - contains Package Specific build configuration func_configure_make_install () { case "${ACC_ENABLE_SHARED}" in "Y" | "y" | "1" ) BUILD_SHARED=1 ;; esac case "${ACC_ENABLE_SHARED_ONLY}" in "Y" | "y" | "1" ) BUILD_SHARED_ONLY=1 ;; *) BUILD_SHARED_ONLY=0 ;; esac [ "${BUILD_TYPE}" == "debug" ] \ && CMAKE_BUILD_TYPE="Debug" \ || CMAKE_BUILD_TYPE="Release" [ -d ${UTIL_DIR}/bin ] \ && PATH=${UTIL_DIR}/bin${PATH:+:${PATH}} [ "${CMAKE_BINARY}" ] \ || CMAKE_BINARY=cmake cd ${WORK_DIR} if [ "${ARGUMENTS[1]}" == "-test" ] ; then ZMQ_BUILD_TESTS=ON else ZMQ_BUILD_TESTS=OFF fi if [[ $ACC_COMPILER_TOOLSET == *msys ]] ; then CMAKE_CONF_OPTIONS=( \ -G "MSYS Makefiles" \ ) else CMAKE_CONF_OPTIONS=( \ -DENABLE_CPACK=ON \ ) fi if [ `uname` == "Darwin" ] ; then CMAKE_CONF_OPTIONS=( \ "${CMAKE_CONF_OPTIONS[@]}" \ ) fi if ( [ ! -e ALREADY_BUILT ] ) ; then if [ ${BUILD_SHARED} ] ; then echo -e "\nBuilding SHARED Libraries...\n" ${CMAKE_BINARY} -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR} \ -DCMAKE_VERBOSE_MAKEFILE=true \ "${CMAKE_CONF_OPTIONS[@]}" \ -DBUILD_SHARED=ON \ -DBUILD_STATIC=OFF \ -DZMQ_BUILD_TESTS=${ZMQ_BUILD_TESTS} \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_INSTALL_LIBDIR=${OUTPUT_DIR}/lib \ ../ func_print_compiler_linker_flags ${GMAKE} -j ${ACC_SET_GMAKE_JOBS} all ${GMAKE} install export RETVAL=$? fi if [ "${BUILD_SHARED_ONLY}" -ne 1 ] ; then echo -e "\nBuilding STATIC Libraries...\n" ${CMAKE_BINARY} -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR} \ -DCMAKE_VERBOSE_MAKEFILE=true \ "${CMAKE_CONF_OPTIONS[@]}" \ -DBUILD_SHARED=OFF \ -DBUILD_STATIC=ON \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_INSTALL_LIBDIR=${OUTPUT_DIR}/lib \ ../ func_print_compiler_linker_flags ${GMAKE} -j ${ACC_SET_GMAKE_JOBS} all ${GMAKE} install export RETVAL=$? fi fi if [ "${ARGUMENTS[1]}" == "-test" ] ; then echo -e "\nBuilding tests for `echo ${PACKAGE_VERSION}`...\n" ${CMAKE_BINARY} -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR} \ -DCMAKE_VERBOSE_MAKEFILE=true \ "${CMAKE_CONF_OPTIONS[@]}" \ -DBUILD_SHARED=${SHARED} \ -DZMQ_BUILD_TESTS=${ZMQ_BUILD_TESTS} \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ ../ func_print_compiler_linker_flags ${GMAKE} -j ${ACC_SET_GMAKE_JOBS} all export RETVAL=$? fi if ( [ `uname` == "Darwin" ] && [ "${FC}" == "ifort" ] && [ "${RETVAL}" -eq 0 ] ) ; then ln -s /opt/intel/lib/* ${OUTPUT_DIR}/lib/ &> /dev/null 2>&1 fi } # Function that contains Package Specific files and directories to be removed func_remove_package () { rm -f ${OUTPUT_DIR}/bin/remote_thr rm -f ${OUTPUT_DIR}/bin/remote_lat rm -f ${OUTPUT_DIR}/bin/proxy_thr rm -f ${OUTPUT_DIR}/bin/local_thr rm -f ${OUTPUT_DIR}/bin/local_lat rm -f ${OUTPUT_DIR}/bin/inproc_thr rm -f ${OUTPUT_DIR}/bin/inproc_lat rm -rf ${OUTPUT_DIR}/lib/cmake/ZeroMQ rm -f ${OUTPUT_DIR}/lib/*zmq.* rm -f ${OUTPUT_DIR}/lib/pkgconfig/libzmq.pc rm -f ${OUTPUT_DIR}/include/zmq* rm -rf ${OUTPUT_DIR}/share/zmq rm -rf ${BUILD_TYPE} }