1# 2# configure.in 3# 4# This library is free software; you can redistribute it and/or 5# modify it under the terms of the GNU Lesser General Public 6# License as published by the Free Software Foundation version 2.1 7# of the License. 8# 9# Copyright (c) 2003-2013 Thomas Graf <tgraf@suug.ch> 10# 11 12 13# copied from glib 14m4_define([libnl_major_version], [3]) 15m4_define([libnl_minor_version], [5]) 16m4_define([libnl_micro_version], [0]) 17m4_define([libnl_git_sha], [m4_esyscmd([ ( [ -d ./.git/ ] && [ "$(readlink -f ./.git/)" = "$(readlink -f "$(git rev-parse --git-dir 2>/dev/null)" 2>/dev/null)" ] && git rev-parse --verify -q HEAD 2>/dev/null ) || true ])]) 18 19 20# The following explanation may help to understand the above rules a bit 21# better: consider that there are three possible kinds of reactions from 22# users of your library to changes in a shared library: 23# 24# 1. Programs using the previous version may use the new version as drop-in 25# replacement, and programs using the new version can also work with the 26# previous one. In other words, no recompiling nor relinking is needed. 27# In this case, bump revision only, don't touch current nor age. 28# 29# 2. Programs using the previous version may use the new version as drop-in 30# replacement, but programs using the new version may use APIs not 31# present in the previous one. In other words, a program linking against 32# the new version may fail with “unresolved symbols” if linking against 33# the old version at runtime: set revision to 0, bump current and age. 34# 35# 3. Programs may need to be changed, recompiled, relinked in order to use 36# the new version. Bump current, set revision and age to 0. 37 38m4_define([libnl_lt_current], [226]) 39m4_define([libnl_lt_revision], [0]) 40m4_define([libnl_lt_age], [26]) 41 42m4_define([libnl_version], 43 [libnl_major_version.libnl_minor_version.libnl_micro_version]) 44 45AC_INIT(libnl, [libnl_version], [], [], [http://www.infradead.org/~tgr/libnl/]) 46AC_CONFIG_HEADERS([lib/defs.h]) 47AC_CONFIG_AUX_DIR([build-aux]) 48AC_CONFIG_MACRO_DIR([m4]) 49AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) 50m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)], []) 51m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 52 53MAJ_VERSION=libnl_major_version 54AC_SUBST(MAJ_VERSION) 55MIN_VERSION=libnl_minor_version 56AC_SUBST(MIN_VERSION) 57MIC_VERSION=libnl_micro_version 58AC_SUBST(MIC_VERSION) 59LIBNL_GIT_SHA=libnl_git_sha 60LIBNL_VERSION=libnl_version 61AC_SUBST(LIBNL_VERSION) 62 63LT_CURRENT=libnl_lt_current 64AC_SUBST(LT_CURRENT) 65LT_REVISION=libnl_lt_revision 66AC_SUBST(LT_REVISION) 67LT_AGE=libnl_lt_age 68AC_SUBST(LT_AGE) 69 70AC_PROG_CC 71AM_PROG_CC_C_O 72AC_PROG_INSTALL 73AM_PROG_LIBTOOL 74AC_PROG_MKDIR_P 75AC_CHECK_PROGS(FLEX, 'flex') 76AC_CHECK_PROGS(YACC, 'bison -y') 77 78AC_C_CONST 79AC_C_INLINE 80 81PKG_CHECK_MODULES([CHECK], [check >= 0.9.0], 82 [has_check="yes"], 83 [AC_MSG_WARN([*** Disabling building of unit tests]) 84 has_check="no"]) 85AM_CONDITIONAL(WITH_CHECK, [test "$has_check" = 'yes']) 86 87AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH], 88 [Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]), 89 [pkgconfigdir="$withval"], [pkgconfigdir='${libdir}/pkgconfig']) 90AC_SUBST([pkgconfigdir]) 91 92AC_ARG_ENABLE([cli], 93 AS_HELP_STRING([--enable-cli=yes|no|no-inst|bin|sbin], [Whether to build command line interface utils. Defaults to 'yes' which is a synonym for 'bin'. 'no-inst' means only build, not installing. 'bin'/'sbin' means installing to bin/sbin directory]), 94 [enable_cli="$enableval"], [enable_cli="yes"]) 95if test "$enable_cli" != "no" && 96 test "$enable_cli" != "no-inst" && 97 test "$enable_cli" != "sbin"; then 98 enable_cli="bin" 99fi 100AM_CONDITIONAL([ENABLE_CLI], [test "$enable_cli" != "no"]) 101AM_CONDITIONAL([ENABLE_CLI_INSTALL_BIN], [test "$enable_cli" = "bin"]) 102AM_CONDITIONAL([ENABLE_CLI_INSTALL_SBIN], [test "$enable_cli" = "sbin"]) 103 104AC_CHECK_HEADERS(dlfcn.h, [], []) 105 106AC_ARG_ENABLE([pthreads], 107 AS_HELP_STRING([--disable-pthreads], [Disable pthreads support]), 108 [enable_pthreads="$enableval"], [enable_pthreads="yes"]) 109AM_CONDITIONAL([DISABLE_PTHREADS], [test "$enable_pthreads" = "no"]) 110if test "x$enable_pthreads" = "xno"; then 111 AC_DEFINE([DISABLE_PTHREADS], [1], [Define to 1 to disable pthreads]) 112else 113 AC_CHECK_LIB([pthread], [pthread_mutex_lock], [], AC_MSG_ERROR([libpthread is required])) 114fi 115 116AC_ARG_ENABLE([debug], 117 AS_HELP_STRING([--disable-debug], [Do not include debugging statements]), 118 [enable_debug="$enableval"], [enable_debug="yes"]) 119if test "x$enable_debug" = "xyes"; then 120 AC_DEFINE([NL_DEBUG], [1], [Define to 1 to enable debugging]) 121fi 122 123AC_CONFIG_SUBDIRS([doc]) 124 125AC_CHECK_FUNCS([strerror_l]) 126 127AC_CONFIG_FILES([ 128Makefile 129libnl-3.0.pc 130libnl-route-3.0.pc 131libnl-genl-3.0.pc 132libnl-nf-3.0.pc 133libnl-cli-3.0.pc 134libnl-xfrm-3.0.pc 135libnl-idiag-3.0.pc 136python/setup.py 137include/netlink/version.h 138]) 139 140ac_errcount=0 141if test -z "$YACC"; then 142 AC_MSG_WARN(bison not found. Please install before continuing.) 143 ac_errcount=$((ac_errcount + 1)) 144fi 145if test -z "$FLEX"; then 146 AC_MSG_WARN(flex not found. Please install before continuing.) 147 ac_errcount=$((ac_errcount + 1)) 148fi 149if test $ac_errcount -gt 0; then 150 AC_MSG_ERROR(Required packages are missing. Please install them and rerun ./configure) 151fi 152 153AC_OUTPUT 154 155echo "-------------------------------------------------------------------------------" 156echo " NOTE" 157echo "" 158echo " There have been some changes starting with 3.2 regarding where and how libnl" 159echo " is being installed on the system in order to allow multiple libnl versions" 160echo " to be installed in parallel:" 161echo "" 162echo " - Headers will be installed in ${includedir}/libnl${MAJ_VERSION}, therefore" 163echo " you will need to add \"-I/usr/include/libnl${MAJ_VERSION}\" to CFLAGS" 164echo "" 165echo " - The library basename was renamed to libnl-${MAJ_VERSION}, i.e. the SO names become" 166echo " libnl-${MAJ_VERSION}.so., libnl-route-${MAJ_VERSION}.so, etc." 167echo "" 168echo " - libtool versioning was assumed, to ease detection of compatible library" 169echo " versions." 170echo "" 171echo " If you are using pkg-config for detecting and linking against the library " 172echo " things will continue magically as if nothing every happened. If you are " 173echo " linking manually you need to adapt your Makefiles or switch to using " 174echo " pkg-config files." 175echo "" 176echo "-------------------------------------------------------------------------------" 177 178