configure.ac 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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
  4. #
  5. # Making a point release:
  6. # - increase libmodbus_version_micro to the next even number
  7. #
  8. # After the release:
  9. # - increase libmodbus_version_minor to the next odd number
  10. #
  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
  13. #
  14. m4_define([libmodbus_version_major], [3])
  15. m4_define([libmodbus_version_minor], [0])
  16. m4_define([libmodbus_version_micro], [7])
  17. m4_define([libmodbus_release_status],
  18. [m4_if(m4_eval(libmodbus_version_minor % 2), [1], [snapshot], [release])])
  19. m4_define([libmodbus_version],
  20. [libmodbus_version_major.libmodbus_version_minor.libmodbus_version_micro])
  21. AC_PREREQ([2.63])
  22. AC_INIT([libmodbus],[libmodbus_version],[https://github.com/stephane/libmodbus/issues])
  23. AC_CONFIG_HEADERS([config.h tests/unit-test.h])
  24. AC_CONFIG_MACRO_DIR([m4])
  25. AM_INIT_AUTOMAKE([foreign])
  26. # enable nice build output on automake1.11
  27. m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
  28. LIBMODBUS_VERSION_MAJOR=libmodbus_version_major
  29. LIBMODBUS_VERSION_MINOR=libmodbus_version_minor
  30. LIBMODBUS_VERSION_MICRO=libmodbus_version_micro
  31. LIBMODBUS_VERSION=libmodbus_version
  32. AC_SUBST(LIBMODBUS_VERSION_MAJOR)
  33. AC_SUBST(LIBMODBUS_VERSION_MINOR)
  34. AC_SUBST(LIBMODBUS_VERSION_MICRO)
  35. AC_SUBST(LIBMODBUS_VERSION)
  36. # ABI version
  37. # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
  38. LIBMODBUS_LD_CURRENT=5
  39. LIBMODBUS_LD_REVISION=5
  40. LIBMODBUS_LD_AGE=0
  41. LIBMODBUS_LT_VERSION_INFO=$LIBMODBUS_LD_CURRENT:$LIBMODBUS_LD_REVISION:$LIBMODBUS_LD_AGE
  42. AC_SUBST(LIBMODBUS_LT_VERSION_INFO)
  43. AC_CANONICAL_HOST
  44. # Check whether we are building for Win32
  45. os_win32="false"
  46. case "${host_os}" in
  47. *mingw32*)
  48. os_win32="true"
  49. ;;
  50. *nto-qnx*)
  51. os_qnx="true"
  52. ;;
  53. esac
  54. AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "true")
  55. AM_CONDITIONAL(OS_QNX, test "$os_qnx" = "true")
  56. # Checks for programs.
  57. AC_PROG_CC
  58. AC_PROG_CXX
  59. AC_PROG_MAKE_SET
  60. LT_INIT([disable-static win32-dll])
  61. AC_CHECK_HEADERS([ \
  62. termios.h \
  63. sys/time.h \
  64. time.h \
  65. unistd.h \
  66. errno.h \
  67. limits.h \
  68. fcntl.h \
  69. sys/types.h \
  70. sys/socket.h \
  71. sys/ioctl.h \
  72. netinet/in.h \
  73. netinet/tcp.h \
  74. arpa/inet.h \
  75. netdb.h \
  76. linux/serial.h \
  77. ])
  78. # Check whether to build docs / install man pages
  79. AC_LIBMODBUS_CHECK_DOC_BUILD
  80. # Checks for header files.
  81. AC_HEADER_STDC
  82. # Checks for typedefs, structures, and compiler characteristics.
  83. AC_C_CONST
  84. AC_TYPE_SIZE_T
  85. AC_HEADER_TIME
  86. # AC_TYPE_UINT*_T: not supported by autoconf-2.59 of CentOS 5.3
  87. # AC_TYPE_UINT16_T
  88. # AC_TYPE_UINT32_T
  89. # AC_TYPE_UINT8_T
  90. # Cygwin defines IPTOS_LOWDELAY but can't handle that flag so it's necessary to
  91. # workaround that problem and Cygwin doesn't define MSG_DONTWAIT.
  92. AC_CHECK_DECLS([__CYGWIN__])
  93. # Checks for library functions.
  94. AC_FUNC_FORK
  95. AC_CHECK_FUNCS([gettimeofday inet_ntoa memset select socket strerror strlcpy getaddrinfo])
  96. # Add -Wall -Werror for GCC if not already there
  97. if test "x$GCC" = "xyes"; then
  98. case " $CFLAGS " in
  99. *[[\ \ ]]-Wall[[\ \ ]]*) ;;
  100. *) CFLAGS="$CFLAGS -Wall" ;;
  101. esac
  102. fi
  103. if test "x$GCC" = "xyes"; then
  104. case " $CFLAGS " in
  105. *[[\ \ ]]-Werror[[\ \ ]]*) ;;
  106. *) CFLAGS="$CFLAGS -Werror" ;;
  107. esac
  108. fi
  109. # Required for getaddrinfo (TCP PI - IPv6)
  110. AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
  111. if test "x$HAVE_WINSOCK2_H" = "xyes"; then
  112. LIBS="$LIBS -lws2_32"
  113. AC_SUBST(LIBS)
  114. fi
  115. # Check for RS485 support (Linux kernel version 2.6.28+)
  116. AC_CHECK_DECLS([TIOCSRS485], [], [], [[#include <sys/ioctl.h>]])
  117. AC_CONFIG_FILES([
  118. Makefile
  119. src/Makefile
  120. src/modbus-version.h
  121. doc/Makefile
  122. tests/Makefile
  123. libmodbus.pc
  124. libmodbus.spec
  125. ])
  126. AC_OUTPUT