linux编译openpgm,configure.ac

本文介绍了Linux系统中用于编译openpgm项目的configure.ac文件内容,包括版本信息处理、依赖库检查、编译选项设置等。通过分析此文件,可以了解如何使用autoconf构建Linux软件项目。
摘要由CSDN通过智能技术生成

# -*- Autoconf -*-

# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)

#

# The 0MQ version number is extracted from include/zmq.h using

# the version.sh script. Hence, it should be updated there.

# The version in git should reflect the *next* version planned.

#

AC_INIT([zeromq],[m4_esyscmd([./version.sh])],[zeromq-dev@lists.zeromq.org])

AC_CONFIG_AUX_DIR(config)

AC_CONFIG_MACRO_DIR(config)

AC_CONFIG_HEADERS([src/platform.hpp])

AM_INIT_AUTOMAKE(foreign subdir-objects tar-ustar dist-zip)

m4_pattern_allow([AC_PROG_CC_C99])

m4_include([m4/ax_check_compile_flag.m4])

m4_include([m4/ax_cxx_compile_stdcxx_11.m4])

m4_include([m4/ax_code_coverage.m4])

m4_include([m4/ax_valgrind_check.m4])

m4_include([m4/ax_check_vscript.m4])

m4_include([m4/ax_func_posix_memalign.m4])

m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

# This lets us use PACKAGE_VERSION in Makefiles

AC_SUBST(PACKAGE_VERSION)

# Libtool -version-info (ABI version)

#

# Don't change this unless you know exactly what you're doing and have read and

# understand:

# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html

#

# Changes:

#

# ZeroMQ versions prior to 2.1.0 use 0:0:0 (undefined)

# ZeroMQ versions 2.1.x: 1:0:0 (ABI version 1)

# ZeroMQ version 3.0: 2:0:0 (ABI version 2)

# ZeroMQ version 3.1: 3:0:0 (ABI version 3)

# ZeroMQ version 4.0: 4:0:0 (ABI version 4)

# ZeroMQ version 4.1: 5:0:0 (ABI version 5)

# ZeroMQ version 4.2.0: 6:0:1 (ABI version 5)

# ZeroMQ version 4.2.1: 6:1:1 (ABI version 5)

# ZeroMQ version 4.2.2: 6:2:1 (ABI version 5)

# ZeroMQ version 4.2.3: 6:3:1 (ABI version 5)

# ZeroMQ version 4.2.4: 6:4:1 (ABI version 5)

# ZeroMQ version 4.2.5: 6:5:1 (ABI version 5)

# ZeroMQ version 4.3.0: 7:0:2 (ABI version 5)

# ZeroMQ version 4.3.1: 7:1:2 (ABI version 5)

# ZeroMQ version 4.3.2: 7:2:2 (ABI version 5)

#

# libzmq -version-info current:revision:age

LTVER="7:2:2"

AC_SUBST(LTVER)

# Take a copy of original flags

ZMQ_ORIG_CFLAGS="${CFLAGS:-none}"

ZMQ_ORIG_CPPFLAGS="${CPPFLAGS:-none}"

ZMQ_ORIG_CXXFLAGS="${CXXFLAGS:-none}"

# Checks for programs.

AC_PROG_CC

AX_CHECK_COMPILE_FLAG([-std=gnu11], [CFLAGS+=" -std=gnu11"], [AC_PROG_CC_C99])

AC_PROG_CXX

AX_CODE_COVERAGE

AM_PROG_CC_C_O

AC_PROG_SED

AC_PROG_AWK

PKG_PROG_PKG_CONFIG

m4_pattern_forbid([^PKG_[A-Z_]+$], [missing some pkg-config macros (pkg-config package)])

# Libtool configuration for different targets. See acinclude.m4

AC_ARG_VAR([XMLTO], [path to xmlto command])

AC_PATH_PROG([XMLTO], [xmlto])

AC_ARG_VAR([ASCIIDOC], [path to asciidoc command])

AC_PATH_PROG([ASCIIDOC], [asciidoc])

LIBZMQ_CONFIG_LIBTOOL

AC_LIBTOOL_WIN32_DLL

AC_PROG_LIBTOOL

AX_VALGRIND_CHECK

AX_CHECK_VSCRIPT

AX_FUNC_POSIX_MEMALIGN

AC_ARG_ENABLE([force-CXX98-compat],

[AS_HELP_STRING([--enable-force-CXX98-compat], [force C++98 build [default=disabled]])])

if test "x$enable_force_CXX98_compat" = "xyes"; then

AC_LANG_PUSH([C++])

AX_CHECK_COMPILE_FLAG([-std=gnu++98], [CXXFLAGS+=" -std=gnu++98"], [])

AX_CHECK_COMPILE_FLAG([-Wc++98-compat -Wc++98-compat-pedantic], [CXXFLAGS+=" -Wc++98-compat"], [])

AC_LANG_POP([C++])

else

AX_CXX_COMPILE_STDCXX_11([ext], [optional])

fi

# Check whether to build a with debug symbols

LIBZMQ_CHECK_ENABLE_DEBUG

# Check whether to enable code coverage

LIBZMQ_WITH_GCOV

AC_MSG_CHECKING([if TIPC is available and supports nonblocking connect])

AC_RUN_IFELSE(

[AC_LANG_PROGRAM([[

#include

#include

#include

#include

#include

#include

]],[[

struct sockaddr_tipc topsrv;

int sd = socket(AF_TIPC, SOCK_SEQPACKET, 0);

memset(&topsrv, 0, sizeof(topsrv));

topsrv.family = AF_TIPC;

topsrv.addrtype = TIPC_ADDR_NAME;

topsrv.addr.name.domain = tipc_addr (10, 10, 10);

topsrv.addr.name.name.type = TIPC_TOP_SRV;

topsrv.addr.name.name.instance = TIPC_TOP_SRV;

fcntl(sd, F_SETFL, O_NONBLOCK);

]])

],

[libzmq_tipc_support=yes],

[libzmq_tipc_support=no],

[libzmq_tipc_support=no])

AC_MSG_RESULT([$libzmq_tipc_support])

AC_ARG_ENABLE([pedantic],

[AS_HELP_STRING([--disable-pedantic], [disable pedantic compiler checks [default=enabled]])],

[libzmq_pedantic=$enableval], [libzmq_pedantic=yes])

AC_ARG_WITH([militant],

[AS_HELP_STRING([--with-militant],

[enable militant API assertions])],

[zmq_militant="yes"],

[])

if test "x$zmq_militant" = "xyes"; then

AC_DEFINE(ZMQ_ACT_MILITANT, 1, [Enable militant API assertions])

fi

# Memory mis-use detection

AC_MSG_CHECKING([whether to enable ASan])

AC_ARG_ENABLE(address-sanitizer, [AS_HELP_STRING([--enable-address-sanitizer=yes/no],

[Build with GCC Address Sanitizer instrumentation])],

[ZMQ_ASAN="$enableval"])

if test "x${ZMQ_ASAN}" = "xyes"; then

CFLAGS="${CFLAGS} -fsanitize=address"

CXXFLAGS="${CXXFLAGS} -fsanitize=address"

AM_CONDITIONAL(ENABLE_ASAN, true)

AC_MSG_RESULT([yes])

else

AM_CONDITIONAL(ENABLE_ASAN, false)

AC_MSG_RESULT([no])

fi

# By default compiling with -Werror except OSX and on Solaris when building

# with libsodium.

AC_ARG_ENABLE([Werror],

[AS_HELP_STRING([--disable-Werror], [disable Werror compiler flag [default=enabled]])],

[libzmq_werror=$enableval], [libzmq_werror=yes])

# By default use DSO visibility

libzmq_dso_visibility="yes"

# Platform specific checks

libzmq_on_mingw="no"

libzmq_on_cygwin="no"

libzmq_on_android="no"

libzmq_on_linux="no"

libzmq_on_gnu="no"

# Set some default features required by ZeroMQ code

CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE $CPPFLAGS"

CXXFLAGS="-Wno-long-long $CXXFLAGS"

# Will be used to add flags to pkg-config useful when apps want to statically link

PKGCFG_LIBS_PRIVATE=""

PKGCFG_NAMES_PRIVATE=""

# For host type checks

AC_CANONICAL_HOST

# OS-specific tests

case "${host_os}" in

*linux*)

# Define on Linux to en

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值