1*4dc78e53SAndroid Build Coastguard Worker# SPDX-License-Identifier: LGPL-2.1-only 2*4dc78e53SAndroid Build Coastguard Worker 3*4dc78e53SAndroid Build Coastguard Worker# 4*4dc78e53SAndroid Build Coastguard Worker# Copyright (c) 2003-2013 Thomas Graf <[email protected]> 5*4dc78e53SAndroid Build Coastguard Worker# 6*4dc78e53SAndroid Build Coastguard Worker 7*4dc78e53SAndroid Build Coastguard Worker# copied from glib 8*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_major_version], [3]) 9*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_minor_version], [10]) 10*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_micro_version], [0]) 11*4dc78e53SAndroid Build Coastguard Workerm4_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 ])]) 12*4dc78e53SAndroid Build Coastguard Worker 13*4dc78e53SAndroid Build Coastguard Worker 14*4dc78e53SAndroid Build Coastguard Worker# The following explanation may help to understand the above rules a bit 15*4dc78e53SAndroid Build Coastguard Worker# better: consider that there are three possible kinds of reactions from 16*4dc78e53SAndroid Build Coastguard Worker# users of your library to changes in a shared library: 17*4dc78e53SAndroid Build Coastguard Worker# 18*4dc78e53SAndroid Build Coastguard Worker# 1. Programs using the previous version may use the new version as drop-in 19*4dc78e53SAndroid Build Coastguard Worker# replacement, and programs using the new version can also work with the 20*4dc78e53SAndroid Build Coastguard Worker# previous one. In other words, no recompiling nor relinking is needed. 21*4dc78e53SAndroid Build Coastguard Worker# In this case, bump revision only, don't touch current nor age. 22*4dc78e53SAndroid Build Coastguard Worker# 23*4dc78e53SAndroid Build Coastguard Worker# 2. Programs using the previous version may use the new version as drop-in 24*4dc78e53SAndroid Build Coastguard Worker# replacement, but programs using the new version may use APIs not 25*4dc78e53SAndroid Build Coastguard Worker# present in the previous one. In other words, a program linking against 26*4dc78e53SAndroid Build Coastguard Worker# the new version may fail with “unresolved symbols” if linking against 27*4dc78e53SAndroid Build Coastguard Worker# the old version at runtime: set revision to 0, bump current and age. 28*4dc78e53SAndroid Build Coastguard Worker# 29*4dc78e53SAndroid Build Coastguard Worker# 3. Programs may need to be changed, recompiled, relinked in order to use 30*4dc78e53SAndroid Build Coastguard Worker# the new version. Bump current, set revision and age to 0. 31*4dc78e53SAndroid Build Coastguard Worker 32*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_lt_current], [226]) 33*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_lt_revision], [0]) 34*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_lt_age], [26]) 35*4dc78e53SAndroid Build Coastguard Worker 36*4dc78e53SAndroid Build Coastguard Workerm4_define([libnl_version], 37*4dc78e53SAndroid Build Coastguard Worker [libnl_major_version.libnl_minor_version.libnl_micro_version]) 38*4dc78e53SAndroid Build Coastguard Worker 39*4dc78e53SAndroid Build Coastguard WorkerAC_INIT([libnl],[libnl_version],[],[],[http://www.infradead.org/~tgr/libnl/]) 40*4dc78e53SAndroid Build Coastguard WorkerAC_CONFIG_HEADERS([include/config.h]) 41*4dc78e53SAndroid Build Coastguard WorkerAC_CONFIG_AUX_DIR([build-aux]) 42*4dc78e53SAndroid Build Coastguard WorkerAC_CONFIG_MACRO_DIR([m4]) 43*4dc78e53SAndroid Build Coastguard WorkerAM_INIT_AUTOMAKE([-Wall -Wno-portability foreign subdir-objects]) 44*4dc78e53SAndroid Build Coastguard Workerm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)], []) 45*4dc78e53SAndroid Build Coastguard Workerm4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 46*4dc78e53SAndroid Build Coastguard Worker 47*4dc78e53SAndroid Build Coastguard WorkerMAJ_VERSION=libnl_major_version 48*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(MAJ_VERSION) 49*4dc78e53SAndroid Build Coastguard WorkerMIN_VERSION=libnl_minor_version 50*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(MIN_VERSION) 51*4dc78e53SAndroid Build Coastguard WorkerMIC_VERSION=libnl_micro_version 52*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(MIC_VERSION) 53*4dc78e53SAndroid Build Coastguard WorkerLIBNL_GIT_SHA=libnl_git_sha 54*4dc78e53SAndroid Build Coastguard WorkerLIBNL_VERSION=libnl_version 55*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(LIBNL_VERSION) 56*4dc78e53SAndroid Build Coastguard Worker 57*4dc78e53SAndroid Build Coastguard WorkerLT_CURRENT=libnl_lt_current 58*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(LT_CURRENT) 59*4dc78e53SAndroid Build Coastguard WorkerLT_REVISION=libnl_lt_revision 60*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(LT_REVISION) 61*4dc78e53SAndroid Build Coastguard WorkerLT_AGE=libnl_lt_age 62*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST(LT_AGE) 63*4dc78e53SAndroid Build Coastguard Worker 64*4dc78e53SAndroid Build Coastguard WorkerAC_USE_SYSTEM_EXTENSIONS 65*4dc78e53SAndroid Build Coastguard Worker 66*4dc78e53SAndroid Build Coastguard WorkerAC_PROG_CC 67*4dc78e53SAndroid Build Coastguard WorkerAM_PROG_CC_C_O 68*4dc78e53SAndroid Build Coastguard WorkerAC_PROG_CXX 69*4dc78e53SAndroid Build Coastguard WorkerAC_PROG_INSTALL 70*4dc78e53SAndroid Build Coastguard WorkerLT_INIT 71*4dc78e53SAndroid Build Coastguard WorkerAC_PROG_MKDIR_P 72*4dc78e53SAndroid Build Coastguard WorkerAC_CHECK_PROGS(FLEX, 'flex') 73*4dc78e53SAndroid Build Coastguard WorkerAC_CHECK_PROGS(YACC, 'bison -y') 74*4dc78e53SAndroid Build Coastguard Worker 75*4dc78e53SAndroid Build Coastguard WorkerAC_C_CONST 76*4dc78e53SAndroid Build Coastguard WorkerAC_C_INLINE 77*4dc78e53SAndroid Build Coastguard Worker 78*4dc78e53SAndroid Build Coastguard WorkerAC_LANG_PUSH([C++]) 79*4dc78e53SAndroid Build Coastguard WorkerAC_COMPILE_IFELSE([AC_LANG_PROGRAM( 80*4dc78e53SAndroid Build Coastguard Worker [[#ifndef __cplusplus 81*4dc78e53SAndroid Build Coastguard Worker #error "broken C++" 82*4dc78e53SAndroid Build Coastguard Worker #endif]])],, 83*4dc78e53SAndroid Build Coastguard Worker [CXX=;]) 84*4dc78e53SAndroid Build Coastguard WorkerAC_LANG_POP([C++]) 85*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([HAS_CXX], [test "x$CXX" != x]) 86*4dc78e53SAndroid Build Coastguard Worker 87*4dc78e53SAndroid Build Coastguard WorkerPKG_CHECK_MODULES([CHECK], [check >= 0.9.0], 88*4dc78e53SAndroid Build Coastguard Worker [has_check="yes"], 89*4dc78e53SAndroid Build Coastguard Worker [AC_MSG_WARN([*** Disabling building of unit tests]) 90*4dc78e53SAndroid Build Coastguard Worker has_check="no"]) 91*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL(WITH_CHECK, [test "$has_check" = 'yes']) 92*4dc78e53SAndroid Build Coastguard Worker 93*4dc78e53SAndroid Build Coastguard WorkerAC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH], 94*4dc78e53SAndroid Build Coastguard Worker [Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]), 95*4dc78e53SAndroid Build Coastguard Worker [pkgconfigdir="$withval"], [pkgconfigdir='${libdir}/pkgconfig']) 96*4dc78e53SAndroid Build Coastguard WorkerAC_SUBST([pkgconfigdir]) 97*4dc78e53SAndroid Build Coastguard Worker 98*4dc78e53SAndroid Build Coastguard WorkerAC_ARG_ENABLE([cli], 99*4dc78e53SAndroid Build Coastguard Worker 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]), 100*4dc78e53SAndroid Build Coastguard Worker [enable_cli="$enableval"], [enable_cli="yes"]) 101*4dc78e53SAndroid Build Coastguard Workerif test "$enable_cli" != "no" && 102*4dc78e53SAndroid Build Coastguard Worker test "$enable_cli" != "no-inst" && 103*4dc78e53SAndroid Build Coastguard Worker test "$enable_cli" != "sbin"; then 104*4dc78e53SAndroid Build Coastguard Worker enable_cli="bin" 105*4dc78e53SAndroid Build Coastguard Workerfi 106*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([ENABLE_CLI], [test "$enable_cli" != "no"]) 107*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([ENABLE_CLI_INSTALL_BIN], [test "$enable_cli" = "bin"]) 108*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([ENABLE_CLI_INSTALL_SBIN], [test "$enable_cli" = "sbin"]) 109*4dc78e53SAndroid Build Coastguard Worker 110*4dc78e53SAndroid Build Coastguard WorkerAC_CHECK_HEADERS(dlfcn.h, [], []) 111*4dc78e53SAndroid Build Coastguard Worker 112*4dc78e53SAndroid Build Coastguard WorkerAC_ARG_ENABLE([pthreads], 113*4dc78e53SAndroid Build Coastguard Worker AS_HELP_STRING([--disable-pthreads], [Disable pthreads support]), 114*4dc78e53SAndroid Build Coastguard Worker [enable_pthreads="$enableval"], [enable_pthreads="yes"]) 115*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([DISABLE_PTHREADS], [test "$enable_pthreads" = "no"]) 116*4dc78e53SAndroid Build Coastguard Workerif test "x$enable_pthreads" = "xno"; then 117*4dc78e53SAndroid Build Coastguard Worker AC_DEFINE([DISABLE_PTHREADS], [1], [Define to 1 to disable pthreads]) 118*4dc78e53SAndroid Build Coastguard Workerelse 119*4dc78e53SAndroid Build Coastguard Worker AC_CHECK_LIB([pthread], [pthread_mutex_lock], [], AC_MSG_ERROR([libpthread is required])) 120*4dc78e53SAndroid Build Coastguard Workerfi 121*4dc78e53SAndroid Build Coastguard Worker 122*4dc78e53SAndroid Build Coastguard WorkerAM_CONDITIONAL([ENABLE_STATIC], [test "$enable_static" != "no"]) 123*4dc78e53SAndroid Build Coastguard Worker 124*4dc78e53SAndroid Build Coastguard WorkerAC_ARG_ENABLE([debug], 125*4dc78e53SAndroid Build Coastguard Worker AS_HELP_STRING([--disable-debug], [Do not include debugging statements]), 126*4dc78e53SAndroid Build Coastguard Worker [enable_debug="$enableval"], [enable_debug="yes"]) 127*4dc78e53SAndroid Build Coastguard Workerif test "$enable_debug" = "yes"; then 128*4dc78e53SAndroid Build Coastguard Worker AC_DEFINE([NL_DEBUG], [1], [Define to 1 to enable debugging]) 129*4dc78e53SAndroid Build Coastguard Workerelse 130*4dc78e53SAndroid Build Coastguard Worker enable_debug=no 131*4dc78e53SAndroid Build Coastguard Worker AC_DEFINE([NL_DEBUG], [0], [Define to 1 to enable debugging]) 132*4dc78e53SAndroid Build Coastguard Workerfi 133*4dc78e53SAndroid Build Coastguard Worker 134*4dc78e53SAndroid Build Coastguard WorkerAC_CONFIG_SUBDIRS([doc]) 135*4dc78e53SAndroid Build Coastguard Worker 136*4dc78e53SAndroid Build Coastguard WorkerAC_CHECK_FUNCS([strerror_l]) 137*4dc78e53SAndroid Build Coastguard Worker 138*4dc78e53SAndroid Build Coastguard WorkerAC_CHECK_DECLS([getprotobyname_r, getprotobynumber_r], [], [], [[ 139*4dc78e53SAndroid Build Coastguard Worker #include <netdb.h> 140*4dc78e53SAndroid Build Coastguard Worker]]) 141*4dc78e53SAndroid Build Coastguard Worker 142*4dc78e53SAndroid Build Coastguard WorkerAC_CONFIG_FILES([ 143*4dc78e53SAndroid Build Coastguard WorkerMakefile 144*4dc78e53SAndroid Build Coastguard Workerlibnl-3.0.pc 145*4dc78e53SAndroid Build Coastguard Workerlibnl-route-3.0.pc 146*4dc78e53SAndroid Build Coastguard Workerlibnl-genl-3.0.pc 147*4dc78e53SAndroid Build Coastguard Workerlibnl-nf-3.0.pc 148*4dc78e53SAndroid Build Coastguard Workerlibnl-cli-3.0.pc 149*4dc78e53SAndroid Build Coastguard Workerlibnl-xfrm-3.0.pc 150*4dc78e53SAndroid Build Coastguard Workerlibnl-idiag-3.0.pc 151*4dc78e53SAndroid Build Coastguard Workerpython/setup.py 152*4dc78e53SAndroid Build Coastguard Workerinclude/netlink/version.h 153*4dc78e53SAndroid Build Coastguard Worker]) 154*4dc78e53SAndroid Build Coastguard Worker 155*4dc78e53SAndroid Build Coastguard Workerac_errcount=0 156*4dc78e53SAndroid Build Coastguard Workerif test -z "$YACC"; then 157*4dc78e53SAndroid Build Coastguard Worker AC_MSG_WARN(bison not found. Please install before continuing.) 158*4dc78e53SAndroid Build Coastguard Worker ac_errcount=$((ac_errcount + 1)) 159*4dc78e53SAndroid Build Coastguard Workerfi 160*4dc78e53SAndroid Build Coastguard Workerif test -z "$FLEX"; then 161*4dc78e53SAndroid Build Coastguard Worker AC_MSG_WARN(flex not found. Please install before continuing.) 162*4dc78e53SAndroid Build Coastguard Worker ac_errcount=$((ac_errcount + 1)) 163*4dc78e53SAndroid Build Coastguard Workerfi 164*4dc78e53SAndroid Build Coastguard Workerif test $ac_errcount -gt 0; then 165*4dc78e53SAndroid Build Coastguard Worker AC_MSG_ERROR(Required packages are missing. Please install them and rerun ./configure) 166*4dc78e53SAndroid Build Coastguard Workerfi 167*4dc78e53SAndroid Build Coastguard Worker 168*4dc78e53SAndroid Build Coastguard WorkerAC_OUTPUT 169*4dc78e53SAndroid Build Coastguard Worker 170*4dc78e53SAndroid Build Coastguard WorkerCXX_MSG="none" 171*4dc78e53SAndroid Build Coastguard Workerif test "x$CXX" != x ; then 172*4dc78e53SAndroid Build Coastguard Worker CXX_MSG="[$CXX]" 173*4dc78e53SAndroid Build Coastguard Workerfi 174*4dc78e53SAndroid Build Coastguard Worker 175*4dc78e53SAndroid Build Coastguard Workerecho 176*4dc78e53SAndroid Build Coastguard Workerecho "libnl $LIBNL_VERSION configuration${LIBNL_GIT_SHA:+ (git:$LIBNL_GIT_SHA)}:" 177*4dc78e53SAndroid Build Coastguard Workerecho " --enable-pthreads=$enable_pthreads" 178*4dc78e53SAndroid Build Coastguard Workerecho " --enable-static=$enable_static" 179*4dc78e53SAndroid Build Coastguard Workerecho 180*4dc78e53SAndroid Build Coastguard Workerecho " --enable-debug=$enable_debug" 181*4dc78e53SAndroid Build Coastguard Workerecho " --enable-cli=$enable_cli" 182*4dc78e53SAndroid Build Coastguard Workerecho 183*4dc78e53SAndroid Build Coastguard Workerecho " check: $has_check" 184*4dc78e53SAndroid Build Coastguard Workerecho " CXX: $CXX_MSG (only used for tests)" 185*4dc78e53SAndroid Build Coastguard Workerecho 186