123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #! /bin/sh
- # Build libzmq.a static library and libzmq.so dynamic library
- #
- # Usage: makelibzmq
- # BUILD_DLL=false makelibzmq # Skip building DLL
- #
- # NOTE: We do a single compile run for both static and dynamic libraries
- # which results in the static library having -Wc,exportall compiled objects;
- # in practice this doesn't seem to cause a problem beyond using some extra
- # space (around 10%).
- #
- # Written by Ewen McNeill <ewen@imatix.com>, 2014-07-21
- # Updated by Ewen McNeill <ewen@imatix.com>, 2014-07-22
- #---------------------------------------------------------------------------
- set -e # Stop on errors
- BUILD_DLL="${BUILD_DLL:-true}" # Build DLL by default
- # Figure out where we are
- BIN_DIR=$(dirname $0)
- if [ -z "${BIN_DIR}" ]; then BIN_DIR="."; fi
- case "${BIN_DIR}" in
- .) BIN_DIR="$(pwd)"; ;;
- /*) ;;
- *) BIN_DIR="$(pwd)/${BIN_DIR}"; ;;
- esac
- ZCXX="${BIN_DIR}/zc++"
- # Locate top of source tree, assuming we're in builds/zos
- TOP="${BIN_DIR}/../.."
- SRC="${TOP}/src"
- # Install pre-generated platform.hpp
- cp -p "${BIN_DIR}/platform.hpp" "${SRC}/platform.hpp"
- # Compile all the source (optionally ready for a DLL)
- if [ "${BUILD_DLL}" = "true" ]; then
- ZCXXFLAGS="${ZCXXFLAGS} -Wc,exportall"
- export ZCXXFLAGS
- #echo "Building DLL with ${ZCXXFLAGS}"
- fi
- cd "${SRC}"
- "${BIN_DIR}/cxxall"
- # Make static library
- ar r libzmq.a *.o
- # Optionally Make dynamic library
- if [ "${BUILD_DLL}" = "true" ]; then
- #echo "Building libzmq.so DLL"
- "${ZCXX}" -Wl,DLL -o libzmq.so *.o
- fi
|