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