1 # SYNOPSIS -*- Autoconf -*-
3 # NTP_ENABLE_LOCAL_LIBEVENT
4 # NTP_LIBEVENT_CHECK([MINVERSION [, DIR]])
5 # NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]])
15 # This file is Copyright (c) 2014 Network Time Foundation
17 # Copying and distribution of this file, with or without modification, are
18 # permitted in any medium without royalty provided the copyright notice,
19 # author attribution and this notice are preserved. This file is offered
20 # as-is, without any warranty.
22 dnl NTP_ENABLE_LOCAL_LIBEVENT
24 dnl Provide only the --enable-local-libevent command-line option.
26 dnl Used standalone by top-level NTP configure.ac, which should have
27 dnl --enable-local-libevent in its --help output but which doesn't do
28 dnl anything differently based upon its presence or value.
30 dnl Also AC_REQUIRE'd by NTP_LIBEVENT_CHECK_NOBUILD.
31 AC_DEFUN([NTP_ENABLE_LOCAL_LIBEVENT], [
36 [--enable-local-libevent],
37 [Force using the supplied libevent tearoff code]
39 [ntp_use_local_libevent=$enableval],
40 [ntp_use_local_libevent=${ntp_use_local_libevent-detect}]
43 ]) dnl NTP_ENABLE_LOCAL_LIBEVENT
45 dnl NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) -*- Autoconf -*-
47 dnl Look for libevent, which must be at least MINVERSION.
48 dnl DIR is the location of our "bundled" copy of libevent.
49 dnl If NOBUILD is provided as the 3rd argument, do all of the above,
50 dnl but DO NOT invoke DIR/configure if we are going to use our bundled
51 dnl version. This may be the case for nested packages.
53 dnl provides: --enable-local-libevent
57 dnl NTP_LIBEVENT_CHECK_NOBUILD([2.0.9], [sntp/libevent])
58 dnl NTP_LIBEVENT_CHECK
60 AC_DEFUN([NTP_LIBEVENT_CHECK_NOBUILD], [
61 AC_REQUIRE([NTP_PKG_CONFIG])dnl
62 AC_REQUIRE([NTP_ENABLE_LOCAL_LIBEVENT])dnl
64 ntp_libevent_min_version=m4_default([$1], [2.0.9])
65 ntp_libevent_tearoff=m4_default([$2], [libevent])
67 AC_SUBST([CFLAGS_LIBEVENT])
68 AC_SUBST([CPPFLAGS_LIBEVENT])
69 AC_SUBST([LDADD_LIBEVENT])
71 case "$ntp_use_local_libevent" in
74 *) # If we have (a good enough) pkg-config, see if it can find libevent
77 AC_MSG_CHECKING([if libevent $ntp_libevent_min_version or later is installed])
78 if $PKG_CONFIG --atleast-version=$ntp_libevent_min_version libevent
80 ntp_use_local_libevent=no
81 ntp_libevent_version="`$PKG_CONFIG --modversion libevent`"
82 case "$ntp_libevent_version" in
84 *) ntp_libevent_version='(unknown)' ;;
86 AC_MSG_RESULT([yes, version $ntp_libevent_version])
87 CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
88 CPPFLAGS_LIBEVENT=`$PKG_CONFIG --cflags-only-I libevent`
89 # HMS: I hope the following is accurate.
90 # We don't need -levent, we only need -levent_core.
91 # While we could grab only the -L stuff, there *might* be
92 # other flags there we want. Originally we just removed -levent
93 # but then somebody decided to install -levent-2.0
94 # LDADD_LIBEVENT=`$PKG_CONFIG --libs libevent | sed 's:-levent::'`
97 for i in `$PKG_CONFIG --libs libevent` `$PKG_CONFIG --cflags-only-other libevent_pthreads`
102 *) case "$LDADD_LIBEVENT" in
103 '') LDADD_LIBEVENT="$i" ;;
104 *) LDADD_LIBEVENT="$LDADD_LIBEVENT $i" ;;
109 case "$LIBISC_PTHREADS_NOTHREADS" in
111 LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_pthreads"
113 LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_core"
115 ntp_use_local_libevent=yes
116 # HMS: do we only need to do this if LIBISC_PTHREADS_NOTHREADS
118 CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
123 ntp_use_local_libevent=yes
129 case "$ntp_use_local_libevent" in
131 AC_MSG_NOTICE([Using libevent tearoff])
132 CPPFLAGS_LIBEVENT="-I\$(top_builddir)/$ntp_libevent_tearoff/include -I\$(top_srcdir)/$ntp_libevent_tearoff/include"
133 case "$LIBISC_PTHREADS_NOTHREADS" in
135 LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_pthreads.la \$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
138 LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
143 dnl [cflags-libevent],
145 dnl [--enable-cflags-libevent=-pthread],
146 dnl [CFLAGS value to build with pthreads]
148 dnl [CFLAGS_LIBEVENT=$enableval],
149 dnl [# See above about LIBISC_PTHREADS_NOTHREADS
150 dnl case "$CFLAGS_LIBEVENT" in
151 dnl '') CFLAGS_LIBEVENT="-pthread" ;;
155 dnl AC_MSG_NOTICE([LIBISC_PTHREADS_NOTHREADS is <$LIBISC_PTHREADS_NOTHREADS>])
156 dnl AC_MSG_NOTICE([CFLAGS_LIBEVENT is <$CFLAGS_LIBEVENT>])
158 AM_CONDITIONAL([BUILD_LIBEVENT], [test "x$ntp_use_local_libevent" = "xyes"])
160 ]) dnl NTP_LIBEVENT_CHECK_NOBUILD
162 dnl NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) -*- Autoconf -*-
163 AC_DEFUN([NTP_LIBEVENT_CHECK], [
165 AC_SUBST([NTP_FORCE_LIBEVENT_DIST])
166 NTP_LIBEVENT_CHECK_NOBUILD([$1], [$2])
168 case "$ntp_libevent_tearoff" in
172 AC_MSG_ERROR([ntp_libevent.m4 dir must be libevent, not $ntp_libevent_tearoff])
176 case "$ntp_use_local_libevent" in
178 dnl ac_configure_args is undocumented but widely abused, as here,
179 dnl to modify the defaults of the libevent subpackage, by prefixing
180 dnl our changes to the child configure arguments already assembled.
181 dnl User-supplied contradictory choices should prevail thanks to
183 ac_configure_args=" --disable-openssl${ac_configure_args}"
184 ac_configure_args=" --disable-shared${ac_configure_args}"
185 ac_configure_args=" --disable-libevent-regress${ac_configure_args}"
186 ac_configure_args=" --disable-libevent-install${ac_configure_args}"
187 ac_configure_args=" --enable-silent-rules${ac_configure_args}"
188 ac_configure_args=" --enable-function-sections${ac_configure_args}"
189 ac_configure_args=" LEP_CFLAGS='${NTP_HARD_CFLAGS}'${ac_configure_args}"
190 ac_configure_args=" LEP_CPPFLAGS='${NTP_HARD_CPPFLAGS}'${ac_configure_args}"
191 ac_configure_args=" LEP_LDFLAGS='${NTP_HARD_LDFLAGS}'${ac_configure_args}"
192 AC_CONFIG_SUBDIRS([libevent])
195 NTP_FORCE_LIBEVENT_DIST=libevent
199 ]) dnl NTP_LIBEVENT_CHECK