86 lines
3.0 KiB
Plaintext
86 lines
3.0 KiB
Plaintext
AC_PREREQ([2.69])
|
|
AC_INIT([emacs-zmq], [1.0.0], [nathanielnicandro@gmail.com])
|
|
|
|
AC_CONFIG_SRCDIR([core.c])
|
|
AC_CONFIG_MACRO_DIRS([m4])
|
|
AM_INIT_AUTOMAKE([-Wall -Wno-override foreign])
|
|
AC_PROG_CC
|
|
AM_PROG_AR
|
|
AC_CANONICAL_HOST
|
|
|
|
PKG_CHECK_MODULES([ZMQ], [libzmq], [
|
|
AC_SEARCH_LIBS([zmq_poller_new], [zmq], [
|
|
dnl FIXME: This isn't necessarily true in ZMQ >= 4.3
|
|
AC_DEFINE([ZMQ_BUILD_DRAFT_API], 1)
|
|
], [
|
|
AC_MSG_NOTICE([incompatible libzmq, building one locally])
|
|
ZMQ_BUILD_LOCALLY=yes
|
|
])
|
|
], [
|
|
AC_MSG_NOTICE([libzmq not found by pkg-config, building one locally])
|
|
ZMQ_BUILD_LOCALLY=yes
|
|
])
|
|
|
|
if test "x$ZMQ_BUILD_LOCALLY" != x; then
|
|
if test "x$ZMQ_VERSION" == x; then ZMQ_VERSION="4.3.1"; fi
|
|
if test "x$ZMQ_GIT_REPO" == x; then ZMQ_GIT_REPO="https://github.com/zeromq/libzmq"; fi
|
|
if test ! -d libzmq/.git; then git clone $ZMQ_GIT_REPO libzmq; fi
|
|
AC_CONFIG_SUBDIRS([libzmq])
|
|
# Ensure the libzmq/configure script is generated
|
|
cd libzmq
|
|
if test "`git describe --candidates=0 2>/dev/null || echo x`" != "v${ZMQ_VERSION}"; then
|
|
git checkout --quiet master
|
|
git pull --quiet origin
|
|
git checkout "v$ZMQ_VERSION"
|
|
rm -f configure
|
|
fi
|
|
if test ! -e configure; then
|
|
echo "Generating libzmq configure script"
|
|
./autogen.sh
|
|
fi
|
|
cd ..
|
|
case "${host_os}" in
|
|
*darwin*)
|
|
;;
|
|
*mingw*|*msys*|*cygwin*)
|
|
export CXXFLAGS="-static-libgcc -static-libstdc++ $CXXFLAGS"
|
|
# Its necessary to pass these to the linker directly since libtool
|
|
# won't build emacs-zmq as a dynamic module otherwise on Windows.
|
|
export LDFLAGS="-Wl,-l:libstdc++.a -Wl,-l:libgcc.a -Wl,-lws2_32 -Wl,-liphlpapi $LDFLAGS"
|
|
ON_WINDOWS=yes
|
|
;;
|
|
*)
|
|
# Assume GCC compatible compiler
|
|
# TODO: Actually check for this
|
|
# Prevent dynamic linkage of libzmq dependencies
|
|
#
|
|
# PIC is needed since we are most likely building libzmq
|
|
# statically, but would like to link it to the dynamic emacs-zmq
|
|
# library. GCC needs to have this explicitly specified.
|
|
#
|
|
# The -fPIC for CFLAGS is needed even though emacs-zmq is already a
|
|
# dynamic library since libzmq comes packaged with tweetnacl which
|
|
# is a C library and it builds that by default.
|
|
export CXXFLAGS="-fPIC -static-libgcc -static-libstdc++ $CXXFLAGS"
|
|
export CFLAGS="-fPIC $CFLAGS"
|
|
export LDFLAGS="-Wl,-l:libstdc++.a -Wl,-l:libgcc.a $LDFLAGS"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AM_CONDITIONAL(WINDOWS, [test "x$ON_WINDOWS" != x])
|
|
AM_CONDITIONAL(ZMQ_BUILD_LOCALLY, [test "x$ZMQ_BUILD_LOCALLY" != x])
|
|
if test "x$ZMQ_BUILD_LOCALLY" != x; then
|
|
MAYBE_LIBZMQ=libzmq
|
|
else
|
|
MAYBE_LIBZMQ=
|
|
fi
|
|
AC_SUBST([MAYBE_LIBZMQ])
|
|
|
|
MODULE_EXT="`emacs -Q -batch --eval '(princ module-file-suffix)'`"
|
|
AC_SUBST([MODULE_EXT])
|
|
|
|
LT_INIT([win32-dll shared disable-static])
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|