]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: handle windows naming change from .lib to .a 5618/head
authorJason Ish <jason.ish@oisf.net>
Mon, 30 Nov 2020 21:11:57 +0000 (15:11 -0600)
committerVictor Julien <victor@inliniac.net>
Tue, 1 Dec 2020 06:01:55 +0000 (07:01 +0100)
Prior to Rust 1.44, Cargo would name static libs with the .lib
extension. 1.44 changes this extension to .a when running under
a GNU environment on Windows like msys to make it more similar
to other unix environments.

Now assume static library name to be the same on Windows and
unix, but rename the .lib if found to still support older
versions of Rust on Windows.

configure.ac
rust/Makefile.am

index 51f57b04405049de50d664dd5f666deb108107f8..6b156b60c09fcf86ad6d1919346fd89e19857323 100644 (file)
             WINDOWS_PATH="yes"
             PCAP_LIB_NAME="wpcap"
             AC_DEFINE([HAVE_NON_POSIX_MKDIR], [1], [mkdir is not POSIX compliant: single arg])
-            RUST_SURICATA_LIBNAME="suricata.lib"
             RUST_LDADD=" -lws2_32 -liphlpapi -lwbemuuid -lOle32 -lOleAut32 -lUuid -luserenv -lshell32 -ladvapi32 -lgcc_eh"
             ;;
         *-*-cygwin)
@@ -2500,10 +2499,11 @@ fi
     fi
 
     if test "x$enable_debug" = "xyes"; then
-      RUST_SURICATA_LIB="../rust/target/${RUST_SURICATA_LIB_XC_DIR}debug/${RUST_SURICATA_LIBNAME}"
+      RUST_SURICATA_LIBDIR="../rust/target/${RUST_SURICATA_LIB_XC_DIR}debug"
     else
-      RUST_SURICATA_LIB="../rust/target/${RUST_SURICATA_LIB_XC_DIR}release/${RUST_SURICATA_LIBNAME}"
+      RUST_SURICATA_LIBDIR="../rust/target/${RUST_SURICATA_LIB_XC_DIR}release"
     fi
+    RUST_SURICATA_LIB="${RUST_SURICATA_LIBDIR}/${RUST_SURICATA_LIBNAME}"
 
     RUST_LDADD="${RUST_SURICATA_LIB} ${RUST_LDADD}"
     CFLAGS="${CFLAGS} -I\${srcdir}/../rust/gen -I\${srcdir}/../rust/dist"
@@ -2780,6 +2780,7 @@ AC_SUBST(CONFIGURE_LOCALSTATEDIR)
 AC_SUBST(CONFIGURE_DATAROOTDIR)
 AC_SUBST(PACKAGE_VERSION)
 AC_SUBST(RUST_FEATURES)
+AC_SUBST(RUST_SURICATA_LIBDIR)
 
 AC_CONFIG_FILES(Makefile src/Makefile rust/Makefile rust/Cargo.toml rust/.cargo/config)
 AC_CONFIG_FILES(qa/Makefile qa/coccinelle/Makefile)
index 4f6ee0718b53bf2821758227c824eeb74257824d..9247012656bf4331605a785b06d7ad90494bbc29 100644 (file)
@@ -45,6 +45,10 @@ else
                $(CARGO) build $(RELEASE) $(NIGHTLY_ARGS) \
                        --features "$(RUST_FEATURES)" $(RUST_TARGET)
 endif
+       if test -e $(RUST_SURICATA_LIBDIR)/suricata.lib; then \
+               cp $(RUST_SURICATA_LIBDIR)/suricata.lib \
+                       $(RUST_SURICATA_LIBDIR)/libsuricata.a; \
+       fi
        $(MAKE) gen/rust-bindings.h
 
 clean-local: