#! /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 , 2014-07-21 # Updated by Ewen McNeill , 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