# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.65])
-AC_INIT([liboping],[1.7.0],[ff@octo.it],,[http://github.com/octo/liboping/])
+AC_INIT([liboping],
+ [1.9.0],
+ [liboping@verplant.org],
+ [],
+ [http://noping.cc/])
AC_CONFIG_SRCDIR([src/liboping.c])
AC_CONFIG_HEADERS([src/config.h])
AC_CONFIG_MACRO_DIR([m4])
# ABI version
LIBOPING_CURRENT=2
-LIBOPING_REVISION=10
+LIBOPING_REVISION=11
LIBOPING_AGE=2
AC_SUBST(LIBOPING_CURRENT)
AC_SUBST(LIBOPING_REVISION)
# pkg-config interface
PKG_INSTALLDIR
+AC_ARG_WITH(pkgconfigdir,
+ AC_HELP_STRING([--with-pkgconfigdir], [Use the specified pkgconfig dir (default is libdir/pkgconfig)]),
+ [pkgconfigdir="${withval}"],
+ [pkgconfigdir='${libdir}/pkgconfig'])
+AC_SUBST([pkgconfigdir])
+
# Checks for header files.
AC_HEADER_STDC
AC_HEADER_TIME
AC_TYPE_UINT32_T
AC_TYPE_UINT8_T
+LIBOPING_PC_LIBS_PRIVATE=''
+
socket_needs_socket="no"
AC_CHECK_FUNCS(socket, [],
AC_CHECK_LIB(socket, socket,
[socket_needs_socket="yes"],
AC_MSG_ERROR(cannot find socket)))
-AM_CONDITIONAL(BUILD_WITH_LIBSOCKET, test "x$socket_needs_socket" = "xyes")
+if test "x$socket_needs_socket" = "xyes"; then
+ LIBOPING_PC_LIBS_PRIVATE="${LIBOPING_PC_LIBS_PRIVATE} -lsocket"
+fi
# Under Solaris, the `xnet' library provides `recvmsg' which complies with the
# X/Open CAE Specification.
then
CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
fi
-AM_CONDITIONAL(BUILD_WITH_LIBXNET, test "x$with_libxnet" = "xyes")
+if test "x$with_libxnet" = "xyes"; then
+ LIBOPING_PC_LIBS_PRIVATE="${LIBOPING_PC_LIBS_PRIVATE} -lxnet"
+fi
-nanosleep_needs_rt="no"
-AC_CHECK_FUNCS(nanosleep, [],
- AC_CHECK_LIB(rt, nanosleep,
- [nanosleep_needs_rt="yes"],
- AC_MSG_ERROR(cannot find nanosleep)))
-AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes")
+AC_SUBST(LIBOPING_PC_LIBS_PRIVATE)
-with_ncurses="no"
-AC_CHECK_HEADERS(ncursesw/ncurses.h ncurses.h, [with_ncurses="yes"], [])
-if test "x$with_ncurses" = "xyes"
-then
- have_ncursesw="no"
- have_ncurses="no"
- NCURSES_LIB=""
+AC_SEARCH_LIBS([nanosleep],[rt],[],
+ [AC_MSG_ERROR([cannot find nanosleep])])
- AC_CHECK_LIB(ncursesw, mvwprintw, [have_ncursesw="yes"], [have_ncursesw="no"])
- AC_CHECK_LIB(ncurses, mvwprintw, [have_ncurses="yes"], [have_ncurses="no"])
+AC_ARG_WITH(ncurses, AS_HELP_STRING([--with-ncurses], [Build oping CLI tool with ncurses support]))
+AS_IF([test "x$with_ncurses" != "xno"], [
+ can_build_with_ncurses="no"
+ PKG_CHECK_MODULES([NCURSES], [ncursesw], [can_build_with_ncurses=yes], [
+ PKG_CHECK_MODULES([NCURSES], [ncurses], [can_build_with_ncurses=yes], [
+ AC_CHECK_LIB(ncursesw, mvwprintw, [NCURSES_LIBS="-lncursesw"; can_build_with_ncurses=yes], [
+ AC_CHECK_LIB(ncurses, mvwprintw, [NCURSES_LIBS="-lncurses"; can_build_with_ncurses=yes])
+ ])
+ ])
+ ])
- if test "x$have_ncursesw" = "xyes"; then
- NCURSES_LIB="-lncursesw"
- else if test "x$have_ncurses" = "xyes"; then
- NCURSES_LIB="-lncurses"
- else
- with_ncurses="no"
- fi; fi
- AC_SUBST(NCURSES_LIB)
-fi
-AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" = "xyes")
+ AS_IF([test "x$can_build_with_ncurses" = "xyes"], [
+ AC_CHECK_HEADERS([ncursesw/curses.h ncursesw.h ncurses/curses.h ncurses.h], [can_build_with_ncurses=yes; break;], [can_build_with_ncurses=no])
+ ])
+
+ AS_IF([test "x$can_build_with_ncurses" = "xno" && test "x$with_ncurses" = "xyes"], [
+ AC_MSG_ERROR([ncurses not found but explicit enabled])
+ ],
+ [test "x$can_build_with_ncurses" = "xno"], [
+ AC_MSG_WARN([Will not build oping with ncurses support -- no suiteable ncurses installation found])
+ ])
+])
+
+AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" != "xno" && test "x$can_build_with_ncurses" = "xyes")
AC_FUNC_STRERROR_R
AC_FUNC_STRERROR_R
AC_CHECK_FUNCS([gettimeofday memset modf select socket sqrt strcasecmp strdup strerror strncasecmp strtoul])
-AC_CONFIG_FILES([Makefile src/Makefile src/mans/Makefile bindings/Makefile])
+AC_CONFIG_FILES([Makefile src/Makefile src/liboping.pc src/mans/Makefile bindings/Makefile])
AC_OUTPUT