ntp_libevent.m4 revision 316069
12061Sjkh# SYNOPSIS -*- Autoconf -*- 236429Speter# 32061Sjkh# NTP_ENABLE_LOCAL_LIBEVENT 433611Sjb# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) 532427Sjb# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) 632427Sjb# 736111Sjb# DESCRIPTION 833611Sjb# 932427Sjb# AUTHOR 1032427Sjb# 112061Sjkh# Harlan Stenn 1215603Smarkm# 1330169Sjkh# LICENSE 1420710Sasami# 1520710Sasami# This file is Copyright (c) 2014 Network Time Foundation 163197Scsgr# 172061Sjkh# Copying and distribution of this file, with or without modification, are 1812483Speter# permitted in any medium without royalty provided the copyright notice, 1934509Sbde# author attribution and this notice are preserved. This file is offered 202160Scsgr# as-is, without any warranty. 212834Swollman 222061Sjkhdnl NTP_ENABLE_LOCAL_LIBEVENT 232061Sjkhdnl 242160Scsgrdnl Provide only the --enable-local-libevent command-line option. 2517308Speterdnl 2619320Sadamdnl Used standalone by top-level NTP configure.ac, which should have 2727788Sasamidnl --enable-local-libevent in its --help output but which doesn't do 2830169Sjkhdnl anything differently based upon its presence or value. 2925980Sasamidnl 301594Srgrimesdnl Also AC_REQUIRE'd by NTP_LIBEVENT_CHECK_NOBUILD. 3117308SpeterAC_DEFUN([NTP_ENABLE_LOCAL_LIBEVENT], [ 3217308Speter 3327910SasamiAC_ARG_ENABLE( 3427910Sasami [local-libevent], 3527910Sasami [AC_HELP_STRING( 3617308Speter [--enable-local-libevent], 3717308Speter [Force using the supplied libevent tearoff code] 3817308Speter )], 3919175Sbde [ntp_use_local_libevent=$enableval], 4019175Sbde [ntp_use_local_libevent=${ntp_use_local_libevent-detect}] 4119175Sbde) 4219175Sbde 4317308Speter]) dnl NTP_ENABLE_LOCAL_LIBEVENT 4427910Sasami 4534509Sbdednl NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) -*- Autoconf -*- 4627910Sasamidnl 4717308Speterdnl Look for libevent, which must be at least MINVERSION. 482061Sjkhdnl DIR is the location of our "bundled" copy of libevent. 492061Sjkhdnl If NOBUILD is provided as the 3rd argument, do all of the above, 501594Srgrimesdnl but DO NOT invoke DIR/configure if we are going to use our bundled 5130169Sjkhdnl version. This may be the case for nested packages. 5230169Sjkhdnl 5330169Sjkhdnl provides: --enable-local-libevent 5430169Sjkhdnl 5530169Sjkhdnl Examples: 5630169Sjkhdnl 5730169Sjkhdnl NTP_LIBEVENT_CHECK_NOBUILD([2.0.9], [sntp/libevent]) 5830169Sjkhdnl NTP_LIBEVENT_CHECK 597407Srgrimesdnl 607108SphkAC_DEFUN([NTP_LIBEVENT_CHECK_NOBUILD], [ 617108SphkAC_REQUIRE([NTP_PKG_CONFIG])dnl 627108SphkAC_REQUIRE([NTP_ENABLE_LOCAL_LIBEVENT])dnl 637407Srgrimes 647407Srgrimesntp_libevent_min_version=m4_default([$1], [2.0.9]) 657407Srgrimesntp_libevent_tearoff=m4_default([$2], [libevent]) 667108Sphk 672061SjkhAC_SUBST([CFLAGS_LIBEVENT]) 682061SjkhAC_SUBST([CPPFLAGS_LIBEVENT]) 692061SjkhAC_SUBST([LDADD_LIBEVENT]) 7017308Speter 712061Sjkhcase "$ntp_use_local_libevent" in 722061Sjkh yes) 732061Sjkh ;; 742061Sjkh *) # If we have (a good enough) pkg-config, see if it can find libevent 752061Sjkh case "$PKG_CONFIG" in 7635427Sbde /*) 7735427Sbde AC_MSG_CHECKING([if libevent $ntp_libevent_min_version or later is installed]) 7830169Sjkh if $PKG_CONFIG --atleast-version=$ntp_libevent_min_version libevent 792626Scsgr then 802061Sjkh ntp_use_local_libevent=no 812061Sjkh AC_MSG_NOTICE([Using the installed libevent]) 822061Sjkh CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads` 832061Sjkh CPPFLAGS_LIBEVENT=`$PKG_CONFIG --cflags-only-I libevent` 842061Sjkh # HMS: I hope the following is accurate. 852061Sjkh # We don't need -levent, we only need -levent_core. 8619320Sadam # While we could grab only the -L stuff, there *might* be 872061Sjkh # other flags there we want. Originally we just removed -levent 882061Sjkh # but then somebody decided to install -levent-2.0 892061Sjkh # LDADD_LIBEVENT=`$PKG_CONFIG --libs libevent | sed 's:-levent::'` 902061Sjkh # So now we dance... 912061Sjkh LDADD_LIBEVENT= 922061Sjkh for i in `$PKG_CONFIG --libs libevent` `$PKG_CONFIG --cflags-only-other libevent_pthreads` 932061Sjkh do 942061Sjkh case "$i" in 952061Sjkh -D*) ;; 962061Sjkh -levent*) ;; 972061Sjkh *) case "$LDADD_LIBEVENT" in 982834Swollman '') LDADD_LIBEVENT="$i" ;; 992834Swollman *) LDADD_LIBEVENT="$LDADD_LIBEVENT $i" ;; 1002834Swollman esac 1012834Swollman ;; 1022834Swollman esac 1032834Swollman done 1041594Srgrimes case "$LIBISC_PTHREADS_NOTHREADS" in 1054486Sphk pthreads) 1064486Sphk LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_pthreads" 1074486Sphk esac 1084486Sphk LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_core" 1094486Sphk AC_MSG_RESULT([yes]) 1102061Sjkh else 1112061Sjkh ntp_use_local_libevent=yes 11225979Sjkh # HMS: do we only need to do this if LIBISC_PTHREADS_NOTHREADS 11325979Sjkh # is "pthreads"? 11425979Sjkh CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads` 11525979Sjkh AC_MSG_RESULT([no]) 1162061Sjkh fi 11725979Sjkh ;; 1182061Sjkh *) 1192061Sjkh ntp_use_local_libevent=yes 12017308Speter ;; 1212061Sjkh esac 1222061Sjkh ;; 1232061Sjkhesac 1242061Sjkh 1252061Sjkhcase "$ntp_use_local_libevent" in 12612483Speter yes) 12712483Speter AC_MSG_NOTICE([Using libevent tearoff]) 12812483Speter CPPFLAGS_LIBEVENT="-I\$(top_builddir)/$ntp_libevent_tearoff/include -I\$(top_srcdir)/$ntp_libevent_tearoff/include" 12912483Speter case "$LIBISC_PTHREADS_NOTHREADS" in 1302061Sjkh pthreads) 13135479Sbde LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_pthreads.la \$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la" 1328854Srgrimes ;; 1332061Sjkh *) 1342061Sjkh LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la" 13512483Speter esac 1362061Sjkhesac 13735479Sbde 13835479Sbdednl AC_ARG_ENABLE( 13935479Sbdednl [cflags-libevent], 14035479Sbdednl [AC_HELP_STRING( 14135479Sbdednl [--enable-cflags-libevent=-pthread], 14235479Sbdednl [CFLAGS value to build with pthreads] 14335479Sbdednl )], 14435479Sbdednl [CFLAGS_LIBEVENT=$enableval], 14535479Sbdednl [# See above about LIBISC_PTHREADS_NOTHREADS 14635462Sjkhdnl case "$CFLAGS_LIBEVENT" in 14735462Sjkhdnl '') CFLAGS_LIBEVENT="-pthread" ;; 14818714Sachednl *) ;; 14917308Speterdnl esac] 15034541Sbdednl ) 15134575Sbdednl AC_MSG_NOTICE([LIBISC_PTHREADS_NOTHREADS is <$LIBISC_PTHREADS_NOTHREADS>]) 15234575Sbdednl AC_MSG_NOTICE([CFLAGS_LIBEVENT is <$CFLAGS_LIBEVENT>]) 15334575Sbde 15434592SbdeAM_CONDITIONAL([BUILD_LIBEVENT], [test "x$ntp_use_local_libevent" = "xyes"]) 15517308Speter 15634575Sbde]) dnl NTP_LIBEVENT_CHECK_NOBUILD 15735427Sbde 15834575Sbdednl NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) -*- Autoconf -*- 15935427SbdeAC_DEFUN([NTP_LIBEVENT_CHECK], [ 16034575Sbde 16115603SmarkmAC_SUBST([NTP_FORCE_LIBEVENT_DIST]) 16217308SpeterNTP_LIBEVENT_CHECK_NOBUILD([$1], [$2]) 16317308Speter 16417308Spetercase "$ntp_libevent_tearoff" in 16517308Speter libevent) 16617308Speter ;; 16717308Speter *) 16817308Speter AC_MSG_ERROR([ntp_libevent.m4 dir must be libevent, not $ntp_libevent_tearoff]) 16917308Speter ;; 17017308Speteresac 17118362Sjkh 17219966Sachecase "$ntp_use_local_libevent" in 17318362Sjkh yes) 17417308Speter dnl ac_configure_args is undocumented but widely abused, as here, 17527910Sasami dnl to modify the defaults of the libevent subpackage, by prefixing 17617308Speter dnl our changes to the child configure arguments already assembled. 17717308Speter dnl User-supplied contradictory choices should prevail thanks to 17817308Speter dnl "last wins". 17936074Sbde ac_configure_args=" --disable-openssl${ac_configure_args}" 18027910Sasami ac_configure_args=" --disable-shared${ac_configure_args}" 18136074Sbde ac_configure_args=" --disable-libevent-regress${ac_configure_args}" 18236074Sbde ac_configure_args=" --disable-libevent-install${ac_configure_args}" 18327910Sasami ac_configure_args=" --enable-silent-rules${ac_configure_args}" 18417308Speter ac_configure_args=" --enable-function-sections${ac_configure_args}" 1852061Sjkh ac_configure_args=" LEP_CFLAGS='${NTP_HARD_CFLAGS}'${ac_configure_args}" 18627910Sasami ac_configure_args=" LEP_CPPFLAGS='${NTP_HARD_CPPFLAGS}'${ac_configure_args}" 1872061Sjkh ac_configure_args=" LEP_LDFLAGS='${NTP_HARD_LDFLAGS}'${ac_configure_args}" 18836074Sbde AC_CONFIG_SUBDIRS([libevent]) 18927910Sasami ;; 1902061Sjkh *) 19117308Speter NTP_FORCE_LIBEVENT_DIST=libevent 19227910Sasami ;; 19317308Speteresac 19427910Sasami 19527910Sasami]) dnl NTP_LIBEVENT_CHECK 19627910Sasami 19717308Speter