Fix too short uint8_t for rsp_length (bug introduced by 018cdd6)
[libmodbus.git] / configure.ac
blob5c839737488db89d80fe0f698c57d1fef92ae785
1 # libmodbus package version number, (as distinct from shared library version)
2 # An odd micro number indicates in-progress development from Git
3 # An even micro number indicates a released version
5 # Making a point release:
6 # - increase libmodbus_version_micro to the next even number
8 # After the release:
9 # - increase libmodbus_version_minor to the next odd number
11 # Take care to update the libtool versioning when required (LIBMODBUS_LD_*).
12 # http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
14 m4_define([libmodbus_version_major], [2])
15 m4_define([libmodbus_version_minor], [9])
16 m4_define([libmodbus_version_micro], [3])
18 m4_define([libmodbus_release_status],
19             [m4_if(m4_eval(libmodbus_version_minor % 2), [1], [snapshot],
20                [release])])
22 m4_define([libmodbus_version],
23         [libmodbus_version_major.libmodbus_version_minor.libmodbus_version_micro])
25 AC_PREREQ([2.63])
26 AC_INIT([libmodbus],[libmodbus_version],
27 [https://github.com/stephane/libmodbus/issues])
28 AC_CONFIG_SRCDIR([src/modbus.c])
29 AC_CONFIG_HEADERS([config.h])
30 AM_INIT_AUTOMAKE([foreign])
31 # enable nice build output on automake1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
34 LIBMODBUS_VERSION_MAJOR=libmodbus_version_major
35 LIBMODBUS_VERSION_MINOR=libmodbus_version_minor
36 LIBMODBUS_VERSION_MICRO=libmodbus_version_micro
37 LIBMODBUS_VERSION=libmodbus_version
38 AC_SUBST(LIBMODBUS_VERSION_MAJOR)
39 AC_SUBST(LIBMODBUS_VERSION_MINOR)
40 AC_SUBST(LIBMODBUS_VERSION_MICRO)
41 AC_SUBST(LIBMODBUS_VERSION)
43 # ABI version
44 LIBMODBUS_LD_CURRENT=4
45 LIBMODBUS_LD_REVISION=0
46 LIBMODBUS_LD_AGE=0
47 LIBMODBUS_LT_VERSION_INFO=$LIBMODBUS_LD_CURRENT:$LIBMODBUS_LD_REVISION:$LIBMODBUS_LD_AGE
48 AC_SUBST(LIBMODBUS_LT_VERSION_INFO)
50 AC_CANONICAL_HOST
52 # Check whether we are building for Win32
53 os_win32="false"
54 case "${host_os}" in
55       *mingw32*)
56                 os_win32="true"
57         ;;
58 esac
59 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "true")
61 # Checks for programs.
62 AC_PROG_CC
63 AC_PROG_CXX
64 AC_PROG_MAKE_SET
65 LT_INIT([disable-static win32-dll])
66 AC_CHECK_HEADERS([ \
67     termios.h \
68     sys/time.h \
69     unistd.h \
70     errno.h \
71     limits.h \
72     fcntl.h \
73     sys/types.h \
74     sys/socket.h \
75     sys/ioctl.h \
76     netinet/in.h \
77     netinet/tcp.h \
78     arpa/inet.h \
79     netdb.h \
82 # Check whether to build docs / install man pages
83 AC_LIBMODBUS_CHECK_DOC_BUILD
85 # Checks for header files.
86 AC_HEADER_STDC
88 # Checks for typedefs, structures, and compiler characteristics.
89 AC_C_CONST
90 AC_TYPE_SIZE_T
91 AC_HEADER_TIME
92 # AC_TYPE_UINT*_T: not supported by autoconf-2.59 of CentOS 5.3
93 # AC_TYPE_UINT16_T
94 # AC_TYPE_UINT32_T
95 # AC_TYPE_UINT8_T
97 # Cygwin defines IPTOS_LOWDELAY but can't handle that flag so it's necessary to
98 # workaround that problem and Cygwin doesn't define MSG_DONTWAIT.
99 AC_CHECK_DECLS([__CYGWIN__])
101 # Checks for library functions.
102 AC_FUNC_FORK
103 AC_CHECK_FUNCS([gettimeofday inet_ntoa memset select socket strerror strlcpy getaddrinfo])
105 # Add -Wall -Werror for GCC if not already there
106 if test "x$GCC" = "xyes"; then
107   case " $CFLAGS " in
108   *[[\ \        ]]-Wall[[\ \    ]]*) ;;
109   *) CFLAGS="$CFLAGS -Wall" ;;
110   esac
113 if test "x$GCC" = "xyes"; then
114   case " $CFLAGS " in
115   *[[\ \        ]]-Werror[[\ \  ]]*) ;;
116   *) CFLAGS="$CFLAGS -Werror" ;;
117   esac
120 # Required for getaddrinfo (TCP PI - IPv6)
121 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
122 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
123    LIBS="$LIBS -lws2_32"
124    AC_SUBST(LIBS)
127 AC_CONFIG_FILES([
128         Makefile
129         src/Makefile
130         src/modbus-version.h
131         doc/Makefile
132         tests/Makefile
133         libmodbus.pc
135 AC_OUTPUT