]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
configure: fixing rust/cargo cross compile command
authorCiprian <abuwarez@gmail.com>
Mon, 2 Dec 2019 12:07:15 +0000 (14:07 +0200)
committerJason Ish <jason.ish@oisf.net>
Fri, 6 Dec 2019 17:08:11 +0000 (11:08 -0600)
adding --target argument to cargo command line when cross compiling

configure.ac
rust/Makefile.am

index 238b6a6543ba6e7a9ebed09379a8561026e40538..08aac16e64cbae006d2a888abc3d4a0369fa8594 100644 (file)
@@ -2338,6 +2338,7 @@ fi
     AM_CONDITIONAL([HAVE_PDFLATEX], [test "x$enable_pdflatex" != "xno"])
 
 # Cargo/Rust
+    AM_CONDITIONAL([RUST_CROSS_COMPILE], [test "x$cross_compiling" = "xyes"])
     AC_PATH_PROG(RUSTC, rustc, "no")
     if test "$RUSTC" = "no"; then
         echo ""
@@ -2394,10 +2395,17 @@ fi
         echo
         exit 1
     fi
+
+    if test "x$cross_compiling" = "xyes"; then
+      RUST_SURICATA_LIB_XC_DIR="${host_alias}/"
+    else
+      RUST_SURICATA_LIB_XC_DIR=
+    fi
+
     if test "x$enable_debug" = "xyes"; then
-      RUST_SURICATA_LIB="../rust/target/debug/${RUST_SURICATA_LIBNAME}"
+      RUST_SURICATA_LIB="../rust/target/${RUST_SURICATA_LIB_XC_DIR}debug/${RUST_SURICATA_LIBNAME}"
     else
-      RUST_SURICATA_LIB="../rust/target/release/${RUST_SURICATA_LIBNAME}"
+      RUST_SURICATA_LIB="../rust/target/${RUST_SURICATA_LIB_XC_DIR}release/${RUST_SURICATA_LIBNAME}"
     fi
 
     RUST_LDADD="${RUST_SURICATA_LIB} ${RUST_LDADD}"
@@ -2429,7 +2437,12 @@ fi
     AC_SUBST([RUSTUP_HOME_PATH], [$rustup_home_path])
     AC_SUBST([rustup_home])
 
-    AC_CHECK_FILES([$srcdir/rust/vendor], [have_rust_vendor="yes"])
+    if test "x$cross_compiling" != "xyes"; then
+      AC_CHECK_FILES([$srcdir/rust/vendor], [have_rust_vendor="yes"])
+    else
+      AS_IF([test -d "$srcdir/rust/vendor"], have_rust_vendor="yes", [])
+    fi
+
     if test "x$have_rust_vendor" = "xyes"; then
       rust_vendor_comment=""
     fi
index 70930e15427c249d330ba52802d5896986c2fffb..367aed5bfc1482e0e36287ecbfb7e91289e9f972 100644 (file)
@@ -23,6 +23,10 @@ if DEBUG
 RUST_FEATURES +=       debug
 endif
 
+if RUST_CROSS_COMPILE 
+RUST_TARGET = --target $(host_triplet)
+endif
+
 all-local:
 if HAVE_PYTHON
        cd $(top_srcdir)/rust && $(HAVE_PYTHON) ./gen-c-headers.py
@@ -33,13 +37,13 @@ if HAVE_CYGPATH
                CARGO_HOME="$(CARGO_HOME)" \
                CARGO_TARGET_DIR="$$rustpath/rust/target" \
                $(CARGO) build $(RELEASE) $(FROZEN) \
-                       --features "$(RUST_FEATURES)"
+                       --features "$(RUST_FEATURES)" $(RUST_TARGET)
 else
        cd $(top_srcdir)/rust && @rustup_home@ \
                CARGO_HOME="$(CARGO_HOME)" \
                CARGO_TARGET_DIR="$(abs_top_builddir)/rust/target" \
                $(CARGO) build $(RELEASE) $(FROZEN) \
-                       --features "$(RUST_FEATURES)"
+                       --features "$(RUST_FEATURES)" $(RUST_TARGET)
 endif
 
 clean-local: