Explorar o código

Allow building Win32 using autotools infrastructure

Some small modifications were neccessary to make libmodbus build using
a MinGW (cross-)compiler. Libtool is now configured to build DLL files
on Win32. The wsock32 library has been added to the list of libraries
to link against.

Signed-off-by: Stéphane Raimbault <stephane.raimbault@gmail.com>
Tobias Doerffel %!s(int64=14) %!d(string=hai) anos
pai
achega
01127e3c4d
Modificáronse 2 ficheiros con 18 adicións e 1 borrados
  1. 13 0
      configure.ac
  2. 5 1
      src/Makefile.am

+ 13 - 0
configure.ac

@@ -46,9 +46,22 @@ LIBMODBUS_LD_AGE=0
 LIBMODBUS_LT_VERSION_INFO=$LIBMODBUS_LD_CURRENT:$LIBMODBUS_LD_REVISION:$LIBMODBUS_LD_AGE
 AC_SUBST(LIBMODBUS_LT_VERSION_INFO)
 
+# Check whether we are building for Win32
+build_win32="false"
+case "${host}" in
+      *mingw32)
+		AC_DEFINE([BUILD_WIN32], [], [Build libmodbus for Win32])
+		build_win32="true"
+	;;
+esac
+
+AM_CONDITIONAL(BUILD_WIN32, test "$build_win32" = "true")
+
 # Checks for programs.
 AC_PROG_CC
 AC_PROG_CXX
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
 AC_PROG_MAKE_SET
 LT_INIT([disable-static])
 

+ 5 - 1
src/Makefile.am

@@ -11,7 +11,11 @@ libmodbus_la_SOURCES = \
         modbus-tcp.h \
         modbus-tcp-private.h \
         modbus-version.h
-libmodbus_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBMODBUS_LT_VERSION_INFO)
+if BUILD_WIN32
+libmodbus_la_LIBADD = -lwsock32
+endif
+
+libmodbus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined -version-info $(LIBMODBUS_LT_VERSION_INFO)
 
 # Header files to install
 libmodbusincludedir = $(includedir)/modbus