]> git.ipfire.org Git - thirdparty/lldpd.git/blame - configure.ac
Remove "listen on VLAN" feature.
[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])
93108f71 9AC_INIT([lldpd], [0.5.1], [bernat@luffy.cx])
43c02e7b
VB
10AC_CONFIG_SRCDIR([src/lldpd.c])
11AC_CONFIG_HEADER([config.h])
2acc1418
VB
12AC_CONFIG_FILES([Makefile src/Makefile man/Makefile tests/Makefile])
13AC_CONFIG_MACRO_DIR([m4])
43c02e7b 14
d38eae28
VB
15# Configure automake
16AM_INIT_AUTOMAKE([foreign -Wall -Werror])
44cd2bed 17m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
d38eae28
VB
18
19# Configure libtool
8c37e19a 20#LT_PREREQ([2.2])
d38eae28
VB
21LT_INIT
22
23#######################
24### Checks
25
43c02e7b 26# Checks for programs.
d38eae28 27AC_PROG_AWK
43c02e7b 28AC_PROG_CC
d38eae28
VB
29AC_PROG_CPP
30AC_PROG_INSTALL
31AC_PROG_LN_S
32AC_PROG_MAKE_SET
33AC_PROG_CXX
d38eae28 34AM_PROG_CC_C_O
f5bc67ee 35AC_PROG_LIBTOOL
2acc1418 36
45e89c8c
VB
37# Check some compiler flags
38AX_CFLAGS_GCC_OPTION([-fdiagnostics-show-option])
39AX_CFLAGS_GCC_OPTION([-std=gnu99])
40AX_CFLAGS_GCC_OPTION([-pipe])
41AX_CFLAGS_GCC_OPTION([-Wall])
42AX_CFLAGS_GCC_OPTION([-W])
43AX_CFLAGS_GCC_OPTION([-Wextra])
44AX_CFLAGS_GCC_OPTION([-Wformat])
45AX_CFLAGS_GCC_OPTION([-Wformat-security])
46AX_CFLAGS_GCC_OPTION([-Wcast-align])
47AX_CFLAGS_GCC_OPTION([-Winline])
48AX_CFLAGS_GCC_OPTION([-fstack-protector])
49AX_CFLAGS_GCC_OPTION([-D_FORTIFY_SOURCE=2])
50AX_CFLAGS_GCC_OPTION([-Wno-unused-parameter])
51AX_CFLAGS_GCC_OPTION([-Wno-sign-compare]) dnl Should be fixed later
52
01b911bc
VB
53AX_LDFLAGS_OPTION([-Wl,--as-needed])
54
8e4b9031
VB
55AC_CACHE_SAVE
56
d38eae28
VB
57# Checks for header files.
58AC_HEADER_RESOLV
59AC_CHECK_HEADERS([ \
60 arpa/inet.h \
61 fcntl.h \
62 malloc.h \
63 netdb.h \
64 netinet/in.h \
65 stdlib.h \
66 string.h \
67 sys/ioctl.h \
68 sys/param.h \
69 sys/socket.h \
70 sys/time.h \
71 sys/queue.h \
72 syslog.h \
73 unistd.h \
d38eae28 74 net/if.h \
b56625e6 75 linux/sockios.h \
d38eae28
VB
76],,AC_MSG_ERROR([Required header missing.]))
77AC_CHECK_HEADERS([ \
78 linux/wireless.h \
79 linux/if_bonding.h \
d38eae28
VB
80 linux/if_bridge.h \
81 linux/if_packet.h \
82],,AC_MSG_ERROR([Required header missing.]),[
83@%:@include <arpa/inet.h>
84@%:@include <linux/if.h>
85])
b56625e6
VB
86AC_CHECK_HEADERS([ \
87 linux/filter.h \
88],,AC_MSG_ERROR([Required header missing.]),[
89@%:@include <linux/types.h>
90])
35097709
VB
91AC_CHECK_HEADERS([ \
92 linux/if_vlan.h \
93],,AC_MSG_ERROR([You should get linux/if_vlan.h from some other place. See README file.]),[
94@%:@include <arpa/inet.h>
95@%:@include <linux/if.h>
96])
43c02e7b 97
8e4b9031 98AC_CACHE_SAVE
b5562b23 99
d38eae28 100# Check for sys/queue.h completeness, missing bits will be in compat.h
2d2f913b
VB
101AC_CHECK_DECLS([
102TAILQ_FIRST,
103TAILQ_NEXT,
104TAILQ_FOREACH,
105TAILQ_EMPTY,
106SLIST_HEAD,
107SLIST_ENTRY,
108SLIST_INIT,
109SLIST_INSERT_HEAD,
110SLIST_FIRST,
111SLIST_NEXT,
112SLIST_REMOVE_HEAD,
113SLIST_EMPTY],[],[],[[@%:@include <sys/queue.h>]])
d38eae28 114
35097709 115# On some systems, some ioctl are not declared
2d2f913b
VB
116AC_CHECK_DECLS([
117SIOCGIFVLAN,
118SIOCBONDINFOQUERY,
119SIOCBONDSLAVEINFOQUERY],[],[],[[@%:@include <linux/sockios.h>]])
35097709
VB
120AC_CHECK_MEMBERS([ifslave.slave_name, ifbond.num_slaves], [],
121 [AC_MSG_ERROR([linux/if_bonding.h is incomplete. See README file.])],
122 [
123@%:@include <arpa/inet.h>
124@%:@include <linux/if.h>
125@%:@include <linux/if_bonding.h>
126])
127
d38eae28
VB
128# Do we have PACKET_ORIGDEV (it can be present at runtime, put it in compat.h)
129AC_CHECK_DECLS([PACKET_ORIGDEV],[],[],[[@%:@include <linux/if_packet.h>]])
130
131# Check for ethtool stuff
132lldp_CHECK_HEADER_ETHTOOL
2d2f913b
VB
133AC_CHECK_DECLS([
134ADVERTISED_2500baseX_Full,
135ADVERTISED_Pause,
136ADVERTISED_Asym_Pause,
137ADVERTISED_10000baseT_Full,
138SPEED_10000],[],[],[[@%:@include <linux/ethtool.h>]])
d38eae28
VB
139
140# Check for ETHERTYPE_VLAN, put it in compat.h if not defined
141AC_CHECK_DECLS([ETHERTYPE_VLAN],[],[],[[@%:@include <net/ethernet.h>]])
142
143# Check some stuff in linux/if_vlan.h
2d2f913b
VB
144AC_CHECK_DECLS([GET_VLAN_REALDEV_NAME_CMD,GET_VLAN_VID_CMD],[],[],
145 [[@%:@include <linux/if_vlan.h>]])
43c02e7b 146
8e4b9031
VB
147AC_CACHE_SAVE
148
43c02e7b 149# Checks for typedefs, structures, and compiler characteristics.
d38eae28
VB
150AC_TYPE_UID_T
151AC_C_INLINE
152AC_TYPE_INT16_T
153AC_TYPE_INT32_T
154AC_TYPE_PID_T
155AC_TYPE_SIZE_T
156AC_TYPE_SSIZE_T
157AC_TYPE_UINT16_T
158AC_TYPE_UINT32_T
159AC_TYPE_UINT8_T
6bb9c4e0 160lldp_CHECK___PROGNAME
bc598c23 161lldp_CHECK_FD_SETSIZE
43c02e7b
VB
162
163# Checks for library functions.
d38eae28
VB
164AC_FUNC_CHOWN
165AC_FUNC_FORK
166AC_FUNC_MALLOC
167AC_FUNC_REALLOC
168AC_CHECK_FUNCS([ \
169 atexit \
170 gethostbyname \
171 inet_ntoa memset \
172 regcomp \
173 select \
174 setenv \
175 socket \
176 strchr \
177 strdup \
178 strerror \
179 strndup \
180 tzset \
181 uname \
182],,[AC_MSG_ERROR(Required function not found.)])
183
43c02e7b 184AC_REPLACE_FUNCS([strlcpy])
b7997528 185AC_REPLACE_FUNCS([getifaddrs])
43c02e7b 186
8e4b9031
VB
187AC_CACHE_SAVE
188
d38eae28
VB
189## Unit tests wich check
190PKG_CHECK_MODULES([CHECK], [check >= 0.9.4], [have_check=yes], [have_check=no])
43c02e7b 191
d38eae28
VB
192#######################
193### Options
43c02e7b 194
d38eae28
VB
195# SNMP
196AC_ARG_WITH([snmp],
197 AS_HELP_STRING(
198 [--with-snmp],
199 [Enable the use of SNMP @<:@default=no@:>@]
200 ))
201if test x"$with_snmp" = x"yes"; then
202 lldp_CHECK_SNMP
315587ef
VB
203fi
204
1480ce74
AH
205AC_ARG_WITH([xml],
206 AC_HELP_STRING(
207 [--with-xml],
208 [Enable XML output via libxml2 @<:@default=no:>@]
209 ))
210if test x"$with_xml" = x"yes"; then
211 lldp_CHECK_XML2
212fi
213
d38eae28
VB
214# Privsep settings
215lldp_ARG_WITH([privsep-user], [Which user to use for privilege separation], [_lldpd])
216lldp_ARG_WITH([privsep-group], [Which group to use for privilege separation], [_lldpd])
217lldp_ARG_WITH([privsep-chroot], [Which directory to use to chroot lldpd], [/var/run/lldpd])
89840df0 218
d38eae28
VB
219# CDP/FDP/EDP/SONMP
220lldp_ARG_ENABLE([cdp], [Cisco Discovery Protocol], [yes])
221lldp_ARG_ENABLE([fdp], [Foundry Discovery Protocol], [yes])
222lldp_ARG_ENABLE([edp], [Extreme Discovery Protocol], [yes])
223lldp_ARG_ENABLE([sonmp], [SynOptics Network Management Protocol], [yes])
a1347cd8 224
d38eae28
VB
225# LLDPMED/Dot1/Dot3
226lldp_ARG_ENABLE([lldpmed], [LLDP-MED extension], [yes])
227lldp_ARG_ENABLE([dot1], [Dot1 extension (VLAN stuff)], [yes])
228lldp_ARG_ENABLE([dot3], [Dot3 extension (PHY stuff)], [yes])
a1347cd8 229
d38eae28
VB
230#######################
231# Output results
232AM_CONDITIONAL([HAVE_CHECK], [test x"$have_check" = x"yes"])
233AM_CONDITIONAL([USE_SNMP], [test x"$with_snmp" = x"yes"])
1480ce74 234AM_CONDITIONAL([USE_XML], [test x"$with_xml" = x"yes"])
43c02e7b 235AC_OUTPUT
d38eae28
VB
236
237cat <<EOF
238
239------------------ Summary ------------------
240 $PACKAGE_NAME version $PACKAGE_VERSION
241 Prefix.........: $prefix
242 C Compiler.....: $CC $CFLAGS $CPPFLAGS
243 Linker.........: $LD $LDFLAGS $LIBS
244 Optional features:
245 SNMP support...: ${with_snmp-no}
246 CDP............: $enable_cdp
247 FDP............: $enable_fdp
248 EDP............: $enable_edp
249 SONMP..........: $enable_sonmp
250 LLDPMED........: $enable_lldpmed
251 DOT1...........: $enable_dot1
252 DOT3...........: $enable_dot3
1480ce74 253 XML output.....: ${with_xml-no}
d38eae28
VB
254---------------------------------------------
255
256Check the above options and compile with:
257 ${MAKE-make}
258
259EOF