xref: /aosp_15_r20/external/libnl/configure.ac (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
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