ntp_libevent.m4 revision 330567
1132718Skan# SYNOPSIS -*- Autoconf -*- 2132718Skan# 3169689Skan# NTP_ENABLE_LOCAL_LIBEVENT 4132718Skan# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) 5132718Skan# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) 6132718Skan# 7132718Skan# DESCRIPTION 8132718Skan# 9132718Skan# AUTHOR 10132718Skan# 11132718Skan# Harlan Stenn 12132718Skan# 13132718Skan# LICENSE 14132718Skan# 15132718Skan# This file is Copyright (c) 2014 Network Time Foundation 16132718Skan# 17132718Skan# Copying and distribution of this file, with or without modification, are 18132718Skan# permitted in any medium without royalty provided the copyright notice, 19132718Skan# author attribution and this notice are preserved. This file is offered 20132718Skan# as-is, without any warranty. 21132718Skan 22132718Skandnl NTP_ENABLE_LOCAL_LIBEVENT 23169689Skandnl 24169689Skandnl Provide only the --enable-local-libevent command-line option. 25132718Skandnl 26132718Skandnl Used standalone by top-level NTP configure.ac, which should have 27132718Skandnl --enable-local-libevent in its --help output but which doesn't do 28132718Skandnl anything differently based upon its presence or value. 29132718Skandnl 30132718Skandnl Also AC_REQUIRE'd by NTP_LIBEVENT_CHECK_NOBUILD. 31132718SkanAC_DEFUN([NTP_ENABLE_LOCAL_LIBEVENT], [ 32132718Skan 33132718SkanAC_ARG_ENABLE( 34132718Skan [local-libevent], 35132718Skan [AC_HELP_STRING( 36132718Skan [--enable-local-libevent], 37132718Skan [Force using the supplied libevent tearoff code] 38132718Skan )], 39132718Skan [ntp_use_local_libevent=$enableval], 40132718Skan [ntp_use_local_libevent=${ntp_use_local_libevent-detect}] 41132718Skan) 42132718Skan 43132718Skan]) dnl NTP_ENABLE_LOCAL_LIBEVENT 44132718Skan 45169689Skandnl NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) -*- Autoconf -*- 46169689Skandnl 47132718Skandnl Look for libevent, which must be at least MINVERSION. 48132718Skandnl DIR is the location of our "bundled" copy of libevent. 49132718Skandnl If NOBUILD is provided as the 3rd argument, do all of the above, 50132718Skandnl but DO NOT invoke DIR/configure if we are going to use our bundled 51132718Skandnl version. This may be the case for nested packages. 52132718Skandnl 53132718Skandnl provides: --enable-local-libevent 54132718Skandnl 55132718Skandnl Examples: 56132718Skandnl 57132718Skandnl NTP_LIBEVENT_CHECK_NOBUILD([2.0.9], [sntp/libevent]) 58132718Skandnl NTP_LIBEVENT_CHECK 59132718Skandnl 60132718SkanAC_DEFUN([NTP_LIBEVENT_CHECK_NOBUILD], [ 61132718SkanAC_REQUIRE([NTP_PKG_CONFIG])dnl 62132718SkanAC_REQUIRE([NTP_ENABLE_LOCAL_LIBEVENT])dnl 63132718Skan 64132718Skanntp_libevent_min_version=m4_default([$1], [2.0.9]) 65132718Skanntp_libevent_tearoff=m4_default([$2], [libevent]) 66132718Skan 67132718SkanAC_SUBST([CFLAGS_LIBEVENT]) 68132718SkanAC_SUBST([CPPFLAGS_LIBEVENT]) 69132718SkanAC_SUBST([LDADD_LIBEVENT]) 70132718Skan 71132718Skancase "$ntp_use_local_libevent" in 72132718Skan yes) 73132718Skan ;; 74132718Skan *) # If we have (a good enough) pkg-config, see if it can find libevent 75132718Skan case "$PKG_CONFIG" in 76132718Skan /*) 77132718Skan AC_MSG_CHECKING([if libevent $ntp_libevent_min_version or later is installed]) 78132718Skan if $PKG_CONFIG --atleast-version=$ntp_libevent_min_version libevent 79132718Skan then 80132718Skan ntp_use_local_libevent=no 81132718Skan ntp_libevent_version="`$PKG_CONFIG --modversion libevent`" 82132718Skan case "$ntp_libevent_version" in 83132718Skan *.*) ;; 84132718Skan *) ntp_libevent_version='(unknown)' ;; 85132718Skan esac 86132718Skan AC_MSG_RESULT([yes, version $ntp_libevent_version]) 87132718Skan CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads` 88132718Skan CPPFLAGS_LIBEVENT=`$PKG_CONFIG --cflags-only-I libevent` 89132718Skan # HMS: I hope the following is accurate. 90132718Skan # We don't need -levent, we only need -levent_core. 91132718Skan # While we could grab only the -L stuff, there *might* be 92132718Skan # other flags there we want. Originally we just removed -levent 93132718Skan # but then somebody decided to install -levent-2.0 94132718Skan # LDADD_LIBEVENT=`$PKG_CONFIG --libs libevent | sed 's:-levent::'` 95132718Skan # So now we dance... 96132718Skan LDADD_LIBEVENT= 97132718Skan for i in `$PKG_CONFIG --libs libevent` `$PKG_CONFIG --cflags-only-other libevent_pthreads` 98132718Skan do 99169689Skan case "$i" in 100169689Skan -D*) ;; 101169689Skan -levent*) ;; 102169689Skan *) case "$LDADD_LIBEVENT" in 103169689Skan '') LDADD_LIBEVENT="$i" ;; 104132718Skan *) LDADD_LIBEVENT="$LDADD_LIBEVENT $i" ;; 105132718Skan esac 106132718Skan ;; 107132718Skan esac 108132718Skan done 109132718Skan case "$LIBISC_PTHREADS_NOTHREADS" in 110132718Skan pthreads) 111132718Skan LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_pthreads" 112132718Skan esac 113132718Skan LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_core" 114132718Skan else 115132718Skan ntp_use_local_libevent=yes 116132718Skan # HMS: do we only need to do this if LIBISC_PTHREADS_NOTHREADS 117132718Skan # is "pthreads"? 118132718Skan CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads` 119132718Skan AC_MSG_RESULT([no]) 120132718Skan fi 121132718Skan ;; 122132718Skan *) 123169689Skan ntp_use_local_libevent=yes 124169689Skan ;; 125132718Skan esac 126169689Skan ;; 127169689Skanesac 128169689Skan 129169689Skancase "$ntp_use_local_libevent" in 130169689Skan yes) 131169689Skan AC_MSG_NOTICE([Using libevent tearoff]) 132169689Skan CPPFLAGS_LIBEVENT="-I\$(top_builddir)/$ntp_libevent_tearoff/include -I\$(top_srcdir)/$ntp_libevent_tearoff/include" 133169689Skan case "$LIBISC_PTHREADS_NOTHREADS" in 134169689Skan pthreads) 135169689Skan LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_pthreads.la \$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la" 136169689Skan ;; 137169689Skan *) 138169689Skan LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la" 139132718Skan esac 140132718Skanesac 141132718Skan 142132718Skandnl AC_ARG_ENABLE( 143132718Skandnl [cflags-libevent], 144132718Skandnl [AC_HELP_STRING( 145132718Skandnl [--enable-cflags-libevent=-pthread], 146132718Skandnl [CFLAGS value to build with pthreads] 147132718Skandnl )], 148132718Skandnl [CFLAGS_LIBEVENT=$enableval], 149132718Skandnl [# See above about LIBISC_PTHREADS_NOTHREADS 150132718Skandnl case "$CFLAGS_LIBEVENT" in 151132718Skandnl '') CFLAGS_LIBEVENT="-pthread" ;; 152132718Skandnl *) ;; 153132718Skandnl esac] 154132718Skandnl ) 155132718Skandnl AC_MSG_NOTICE([LIBISC_PTHREADS_NOTHREADS is <$LIBISC_PTHREADS_NOTHREADS>]) 156132718Skandnl AC_MSG_NOTICE([CFLAGS_LIBEVENT is <$CFLAGS_LIBEVENT>]) 157132718Skan 158132718SkanAM_CONDITIONAL([BUILD_LIBEVENT], [test "x$ntp_use_local_libevent" = "xyes"]) 159132718Skan 160132718Skan]) dnl NTP_LIBEVENT_CHECK_NOBUILD 161132718Skan 162132718Skandnl NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) -*- Autoconf -*- 163132718SkanAC_DEFUN([NTP_LIBEVENT_CHECK], [ 164132718Skan 165132718SkanAC_SUBST([NTP_FORCE_LIBEVENT_DIST]) 166132718SkanNTP_LIBEVENT_CHECK_NOBUILD([$1], [$2]) 167132718Skan 168132718Skancase "$ntp_libevent_tearoff" in 169132718Skan libevent) 170132718Skan ;; 171132718Skan *) 172132718Skan AC_MSG_ERROR([ntp_libevent.m4 dir must be libevent, not $ntp_libevent_tearoff]) 173132718Skan ;; 174132718Skanesac 175132718Skan 176132718Skancase "$ntp_use_local_libevent" in 177132718Skan yes) 178132718Skan dnl ac_configure_args is undocumented but widely abused, as here, 179132718Skan dnl to modify the defaults of the libevent subpackage, by prefixing 180132718Skan dnl our changes to the child configure arguments already assembled. 181132718Skan dnl User-supplied contradictory choices should prevail thanks to 182132718Skan dnl "last wins". 183169689Skan ac_configure_args=" --disable-openssl${ac_configure_args}" 184132718Skan ac_configure_args=" --disable-shared${ac_configure_args}" 185132718Skan ac_configure_args=" --disable-libevent-regress${ac_configure_args}" 186132718Skan ac_configure_args=" --disable-libevent-install${ac_configure_args}" 187132718Skan ac_configure_args=" --enable-silent-rules${ac_configure_args}" 188132718Skan ac_configure_args=" --enable-function-sections${ac_configure_args}" 189132718Skan ac_configure_args=" LEP_CFLAGS='${NTP_HARD_CFLAGS}'${ac_configure_args}" 190132718Skan ac_configure_args=" LEP_CPPFLAGS='${NTP_HARD_CPPFLAGS}'${ac_configure_args}" 191132718Skan ac_configure_args=" LEP_LDFLAGS='${NTP_HARD_LDFLAGS}'${ac_configure_args}" 192132718Skan AC_CONFIG_SUBDIRS([libevent]) 193132718Skan ;; 194169689Skan *) 195161651Skan NTP_FORCE_LIBEVENT_DIST=libevent 196132718Skan ;; 197132718Skanesac 198132718Skan 199132718Skan]) dnl NTP_LIBEVENT_CHECK 200132718Skan 201132718Skan