]> git.ipfire.org Git - thirdparty/lldpd.git/blame - configure.ac
Add a `-v` flag to just get version number.
[thirdparty/lldpd.git] / configure.ac
CommitLineData
43c02e7b
VB
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
d38eae28
VB
4#######################
5### Base configuration
6
7# Configure autoconf
8AC_PREREQ([2.64])
4593c0dc
VB
9
10dnl Use something like this if you need to patch autoconf files and
11dnl regenerate configure outside upstream git tree:
12dnl AC_INIT([lldpd], [0.5.7], [bernat@luffy.cx])
13AC_INIT([lldpd],
14 [m4_esyscmd_s([git describe --tags --always 2> /dev/null || date +%F])],
15 [bernat@luffy.cx])
16
43c02e7b
VB
17AC_CONFIG_SRCDIR([src/lldpd.c])
18AC_CONFIG_HEADER([config.h])
2acc1418
VB
19AC_CONFIG_FILES([Makefile src/Makefile man/Makefile tests/Makefile])
20AC_CONFIG_MACRO_DIR([m4])
43c02e7b 21
d38eae28
VB
22# Configure automake
23AM_INIT_AUTOMAKE([foreign -Wall -Werror])
33aa26d0 24AM_MAINTAINER_MODE
44cd2bed 25m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
d38eae28
VB
26
27# Configure libtool
8c37e19a 28#LT_PREREQ([2.2])
d38eae28
VB
29LT_INIT
30
31#######################
32### Checks
33
43c02e7b
VB
34# Checks for programs.
35AC_PROG_CC
223227c8 36AC_PROG_CXX
d38eae28 37AM_PROG_CC_C_O
f5bc67ee 38AC_PROG_LIBTOOL
2acc1418 39
45e89c8c
VB
40# Check some compiler flags
41AX_CFLAGS_GCC_OPTION([-fdiagnostics-show-option])
42AX_CFLAGS_GCC_OPTION([-std=gnu99])
43AX_CFLAGS_GCC_OPTION([-pipe])
44AX_CFLAGS_GCC_OPTION([-Wall])
45AX_CFLAGS_GCC_OPTION([-W])
46AX_CFLAGS_GCC_OPTION([-Wextra])
47AX_CFLAGS_GCC_OPTION([-Wformat])
48AX_CFLAGS_GCC_OPTION([-Wformat-security])
49AX_CFLAGS_GCC_OPTION([-Wcast-align])
50AX_CFLAGS_GCC_OPTION([-Winline])
51AX_CFLAGS_GCC_OPTION([-fstack-protector])
52AX_CFLAGS_GCC_OPTION([-D_FORTIFY_SOURCE=2])
5fd6695c 53AX_CFLAGS_GCC_OPTION([-Wdeclaration-after-statement])
45e89c8c
VB
54AX_CFLAGS_GCC_OPTION([-Wno-unused-parameter])
55AX_CFLAGS_GCC_OPTION([-Wno-sign-compare]) dnl Should be fixed later
a37f8fd6
VB
56AX_LDFLAGS_OPTION([-Wl,-z,relro])
57AX_LDFLAGS_OPTION([-Wl,-z,now])
45e89c8c 58
8e4b9031
VB
59AC_CACHE_SAVE
60
d38eae28
VB
61# Checks for header files.
62AC_HEADER_RESOLV
396cfdfe 63AC_CHECK_HEADERS([valgrind/valgrind.h])
43c02e7b 64
d38eae28 65# Check for sys/queue.h completeness, missing bits will be in compat.h
2d2f913b
VB
66AC_CHECK_DECLS([
67TAILQ_FIRST,
68TAILQ_NEXT,
69TAILQ_FOREACH,
3685a1f7 70TAILQ_EMPTY],[],[],[[@%:@include <sys/queue.h>]])
d38eae28 71
35097709 72# On some systems, some ioctl are not declared
2d2f913b
VB
73AC_CHECK_DECLS([
74SIOCGIFVLAN,
75SIOCBONDINFOQUERY,
76SIOCBONDSLAVEINFOQUERY],[],[],[[@%:@include <linux/sockios.h>]])
35097709
VB
77AC_CHECK_MEMBERS([ifslave.slave_name, ifbond.num_slaves], [],
78 [AC_MSG_ERROR([linux/if_bonding.h is incomplete. See README file.])],
79 [
80@%:@include <arpa/inet.h>
81@%:@include <linux/if.h>
82@%:@include <linux/if_bonding.h>
83])
84
d38eae28
VB
85# Do we have PACKET_ORIGDEV (it can be present at runtime, put it in compat.h)
86AC_CHECK_DECLS([PACKET_ORIGDEV],[],[],[[@%:@include <linux/if_packet.h>]])
87
88# Check for ethtool stuff
89lldp_CHECK_HEADER_ETHTOOL
2d2f913b
VB
90AC_CHECK_DECLS([
91ADVERTISED_2500baseX_Full,
92ADVERTISED_Pause,
93ADVERTISED_Asym_Pause,
94ADVERTISED_10000baseT_Full,
95SPEED_10000],[],[],[[@%:@include <linux/ethtool.h>]])
d38eae28
VB
96
97# Check for ETHERTYPE_VLAN, put it in compat.h if not defined
98AC_CHECK_DECLS([ETHERTYPE_VLAN],[],[],[[@%:@include <net/ethernet.h>]])
99
100# Check some stuff in linux/if_vlan.h
19d42b55
VB
101AC_CHECK_HEADERS([ \
102 linux/if_vlan.h \
103],,AC_MSG_ERROR([You should get linux/if_vlan.h from some other place. See README file.]),[
104@%:@include <arpa/inet.h>
105@%:@include <linux/if.h>
106])
2d2f913b
VB
107AC_CHECK_DECLS([GET_VLAN_REALDEV_NAME_CMD,GET_VLAN_VID_CMD],[],[],
108 [[@%:@include <linux/if_vlan.h>]])
43c02e7b 109
8e4b9031
VB
110AC_CACHE_SAVE
111
43c02e7b 112# Checks for typedefs, structures, and compiler characteristics.
6bb9c4e0 113lldp_CHECK___PROGNAME
43c02e7b
VB
114
115# Checks for library functions.
d38eae28
VB
116AC_FUNC_MALLOC
117AC_FUNC_REALLOC
43c02e7b 118AC_REPLACE_FUNCS([strlcpy])
b7997528 119AC_REPLACE_FUNCS([getifaddrs])
8e4b9031
VB
120AC_CACHE_SAVE
121
d38eae28
VB
122## Unit tests wich check
123PKG_CHECK_MODULES([CHECK], [check >= 0.9.4], [have_check=yes], [have_check=no])
43c02e7b 124
e5c94652
VB
125# Libevent
126lldp_CHECK_LIBEVENT([$with_libevent])
127
d38eae28
VB
128#######################
129### Options
43c02e7b 130
d38eae28
VB
131# SNMP
132AC_ARG_WITH([snmp],
133 AS_HELP_STRING(
134 [--with-snmp],
135 [Enable the use of SNMP @<:@default=no@:>@]
136 ))
137if test x"$with_snmp" = x"yes"; then
138 lldp_CHECK_SNMP
315587ef
VB
139fi
140
8beb9a73 141# XML
1480ce74
AH
142AC_ARG_WITH([xml],
143 AC_HELP_STRING(
144 [--with-xml],
5a9cb3db 145 [Enable XML output via libxml2 @<:@default=no@:>@]
1480ce74
AH
146 ))
147if test x"$with_xml" = x"yes"; then
148 lldp_CHECK_XML2
149fi
150
d38eae28
VB
151# Privsep settings
152lldp_ARG_WITH([privsep-user], [Which user to use for privilege separation], [_lldpd])
153lldp_ARG_WITH([privsep-group], [Which group to use for privilege separation], [_lldpd])
154lldp_ARG_WITH([privsep-chroot], [Which directory to use to chroot lldpd], [/var/run/lldpd])
89840df0 155
d38eae28
VB
156# CDP/FDP/EDP/SONMP
157lldp_ARG_ENABLE([cdp], [Cisco Discovery Protocol], [yes])
158lldp_ARG_ENABLE([fdp], [Foundry Discovery Protocol], [yes])
159lldp_ARG_ENABLE([edp], [Extreme Discovery Protocol], [yes])
160lldp_ARG_ENABLE([sonmp], [SynOptics Network Management Protocol], [yes])
a1347cd8 161
d38eae28
VB
162# LLDPMED/Dot1/Dot3
163lldp_ARG_ENABLE([lldpmed], [LLDP-MED extension], [yes])
164lldp_ARG_ENABLE([dot1], [Dot1 extension (VLAN stuff)], [yes])
165lldp_ARG_ENABLE([dot3], [Dot3 extension (PHY stuff)], [yes])
a1347cd8 166
d38eae28
VB
167#######################
168# Output results
169AM_CONDITIONAL([HAVE_CHECK], [test x"$have_check" = x"yes"])
170AM_CONDITIONAL([USE_SNMP], [test x"$with_snmp" = x"yes"])
1480ce74 171AM_CONDITIONAL([USE_XML], [test x"$with_xml" = x"yes"])
43c02e7b 172AC_OUTPUT
d38eae28 173
e5c94652
VB
174if test x"$LIBEVENT_LDFLAGS" = x; then
175 libevent=system
176else
177 libevent=embedded
178fi
179
d38eae28
VB
180cat <<EOF
181
182------------------ Summary ------------------
183 $PACKAGE_NAME version $PACKAGE_VERSION
184 Prefix.........: $prefix
185 C Compiler.....: $CC $CFLAGS $CPPFLAGS
186 Linker.........: $LD $LDFLAGS $LIBS
e5c94652 187 Libevent.......: $libevent
d38eae28
VB
188 Optional features:
189 SNMP support...: ${with_snmp-no}
190 CDP............: $enable_cdp
191 FDP............: $enable_fdp
192 EDP............: $enable_edp
193 SONMP..........: $enable_sonmp
194 LLDPMED........: $enable_lldpmed
195 DOT1...........: $enable_dot1
196 DOT3...........: $enable_dot3
1480ce74 197 XML output.....: ${with_xml-no}
d38eae28
VB
198---------------------------------------------
199
200Check the above options and compile with:
201 ${MAKE-make}
202
203EOF