From 6d65fe9f79dd21c1a6056715012c5aa48654a8b2 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Tue, 28 Feb 2012 01:36:39 -0500 Subject: [PATCH] Add configure options for external skalibs Signed-off-by: Anders Kaseorg --- configure.ac | 22 ++++++++++ debian/control | 2 +- debian/rules | 3 +- m4/ax_check_library.m4 | 95 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 m4/ax_check_library.m4 diff --git a/configure.ac b/configure.ac index 8766828..20d8644 100644 --- a/configure.ac +++ b/configure.ac @@ -49,6 +49,28 @@ AC_SEARCH_LIBS([utempter_remove_added_record], [utempter], AC_SEARCH_LIBS([compress], [z], , [AC_MSG_ERROR([Unable to find zlib.])]) AX_BOOST_BASE(, , [AC_MSG_ERROR([Unable to find boost libraries.])]) +AC_ARG_WITH([skalibs], + [AS_HELP_STRING([--with-skalibs[=DIR]], + [root directory of skalibs installation])], + [with_skalibs=$withval + AS_IF([test x"$withval" != xyes], + [SKALIBS_CPPFLAGS="-I$withval/include" + SKALIBS_LDFLAGS="-L$withval/lib"])]) +AC_ARG_WITH([skalibs-include], + [AS_HELP_STRING([--with-skalibs-include=DIR], + [specify exact include dir for skalibs headers])], + [SKALIBS_CPPFLAGS="-I$withval"]) +AC_ARG_WITH([skalibs-libdir], + [AS_HELP_STRING([--with-skalibs-libdir=DIR], + [specify exact library dir for skalibs libraries])], + [SKALIBS_LDFLAGS="-L$withval"]) + +AX_CHECK_LIBRARY([SKALIBS], [selfpipe.h], [stddjb], [], + [AC_MSG_ERROR([Unable to find skalibs.])]) + +AC_SUBST([STDDJB_CPPFLAGS], ["$SKALIBS_CPPFLAGS"]) +AC_SUBST([STDDJB_LDFLAGS], ["$SKALIBS_LDFLAGS -lstddjb"]) + # Checks for header files. AC_CHECK_HEADERS([arpa/inet.h fcntl.h langinfo.h limits.h locale.h netinet/in.h pty.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termios.h unistd.h util.h wchar.h wctype.h]) diff --git a/debian/control b/debian/control index fbd7ccc..c0ec54f 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: mosh Section: net Priority: optional Maintainer: Keith Winstein -Build-Depends: debhelper (>= 7.0.50), autotools-dev, protobuf-compiler, libprotobuf-dev, dh-autoreconf, pkg-config, libutempter-dev, libboost-dev, zlib1g-dev +Build-Depends: debhelper (>= 7.0.50), autotools-dev, protobuf-compiler, libprotobuf-dev, dh-autoreconf, pkg-config, libutempter-dev, libboost-dev, zlib1g-dev, skalibs-dev Standards-Version: 3.9.3 Homepage: http://mosh.mit.edu Vcs-Git: git://github.com/keithw/mosh.git diff --git a/debian/rules b/debian/rules index 9a90c54..c4e5743 100755 --- a/debian/rules +++ b/debian/rules @@ -15,4 +15,5 @@ override_dh_auto_configure: dh_auto_configure -- \ --disable-silent-rules \ - --enable-compile-warnings=error + --enable-compile-warnings=error \ + --with-skalibs=/usr/lib/skalibs diff --git a/m4/ax_check_library.m4 b/m4/ax_check_library.m4 new file mode 100644 index 0000000..13dcfd6 --- /dev/null +++ b/m4/ax_check_library.m4 @@ -0,0 +1,95 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_library.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LIBRARY(VARIABLE-PREFIX, HEADER-FILE, LIBRARY-FILE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT_FOUND]) +# +# DESCRIPTION +# +# Provides a generic test for a given library, similar in concept to the +# PKG_CHECK_MODULES macro used by pkg-config. +# +# Most simplest libraries can be checked against simply through the +# presence of a header file and a library to link to. This macro allows to +# wrap around the test so that it doesn't have to be recreated each time. +# +# Rather than define --with-$LIBRARY arguments, it uses variables in the +# same way that PKG_CHECK_MODULES does. It doesn't, though, use the same +# names, since you shouldn't provide a value for LIBS or CFLAGS but rather +# for LDFLAGS and CPPFLAGS, to tell the linker and compiler where to find +# libraries and headers respectively. +# +# If the library is find, HAVE_PREFIX is defined, and in all cases +# PREFIX_LDFLAGS and PREFIX_CPPFLAGS are substituted. +# +# Example: +# +# AX_CHECK_LIBRARY([LIBEVENT], [event.h], [event], [], +# [AC_MSG_ERROR([Unable to find libevent])]) +# +# LICENSE +# +# Copyright (c) 2010 Diego Elio Petteno` +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 3 + +AC_DEFUN([AX_CHECK_LIBRARY], [ + AC_ARG_VAR($1[_CPPFLAGS], [C preprocessor flags for ]$1[ headers]) + AC_ARG_VAR($1[_LDFLAGS], [linker flags for ]$1[ libraries]) + + AC_CACHE_VAL(AS_TR_SH([ax_cv_have_]$1), + [save_CPPFLAGS="$CPPFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + + AS_IF([test "x$]$1[_CPPFLAGS" != "x"], + [CPPFLAGS="$CPPFLAGS $]$1[_CPPFLAGS"]) + + AS_IF([test "x$]$1[_LDFLAGS" != "x"], + [LDFLAGS="$LDFLAGS $]$1[_LDFLAGS"]) + + AC_CHECK_HEADER($2, [ + AC_CHECK_LIB($3, [main], + [AS_TR_SH([ax_cv_have_]$1)=yes], + [AS_TR_SH([ax_cv_have_]$1)=no]) + ], [AS_TR_SH([ax_cv_have_]$1)=no]) + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ]) + + AS_IF([test "$]AS_TR_SH([ax_cv_have_]$1)[" = "yes"], + AC_DEFINE([HAVE_]$1, [1], [Define to 1 if ]$1[ is found]) + m4_ifnblank([$4], [$4]), + m4_ifnblank([$5], [$5])) +])