libzmq/builds/zos/zc++
Ewen McNeill 6e0c1c0a80 builds/zos/* portability files to z/OS UNIX
builds/zos includes:
    README.md: Overview of z/OS UNIX System Services port (Markdown)
    makelibzmq: Compile src/*.cpp and make libzmq.a
    maketests:  Compile tests/*.cpp and make test_* executables
    runtests:   Run tests/test_* executables and report results
    makeclean:  Remove built files
    zc++: /bin/c++ wrapper supplying required build arguments
    cxxall: run zc++ for all *.cpp files in directory

    platform.hpp: pre-generated (and edited) src/platform.hpp for z/OS
    test_fork.cpp: updated tests/test_fork.cpp that completes on z/OS
2014-07-22 12:05:51 +12:00

43 lines
1.5 KiB
Bash

#! /bin/sh
# Wrapper around IBM C++ compiler to add "-+" to preprocessor calls
# and thus work with C++ in files other than *.C. Also add -Wc,lang(longlong)
# with appropriate quoting to avoid shell confusion -- this is difficult
# to get through both ./configure arguments _and_ Makefile/shell expansion
# safely so more easily added in this wrapper.
#
# Finally, by default will enable xplink for C++ compatibilty and performance
# (c++ standard library requires xplink enabled).
#
# Additional compile/link flags can be passed in as ZCXXFLAGS, eg:
#
# For debug: ZXCCFLAGS=-g ...
#
# Written by Ewen McNeill <ewen@imatix.com>, 2014-07-18
# Updated by Ewen McNeill <ewen@imatix.com>, 2014-07-21
#---------------------------------------------------------------------------
CPPFLAGS="-+"
LONGLONG="-Wc,lang(longlong)"
XPLINK="${XPLINK:--Wc,xplink -Wl,xplink}"
CXX="/bin/c++"
ZCXXFLAGS="${ZCXXFLAGS:-}" # Extra compile/link arguments, eg "-g"
# For debugging calling conventions issues
#echo "Called with: $0 $@" >>/tmp/zc++.log 2>&1
#exec >>/tmp/zc++.log 2>&1
#set -x
case "$1" in
-E) exec "${CXX}" "${CPPFLAGS}" "$@"
;;
-o) exec "${CXX}" ${ZCXXFLAGS} "${LONGLONG}" "${CPPFLAGS}" ${XPLINK} "$@"
;;
-c) exec "${CXX}" ${ZCXXFLAGS} "${LONGLONG}" "${CPPFLAGS}" ${XPLINK} "$@"
;;
-L) # Special case for linking via C++, called from linkall
exec "${CXX}" ${ZCXXFLAGS} ${XPLINK} "$@"
;;
*) exec "${CXX}" ${ZCXXFLAGS} "${LONGLONG}" ${XPLINK} "$@"
;;
esac