]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: build and dist fixes 4549/head
authorVictor Julien <victor@inliniac.net>
Thu, 13 Feb 2020 12:14:03 +0000 (13:14 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 13 Feb 2020 13:11:48 +0000 (14:11 +0100)
Bring up to date with 5.0.x.

configure.ac
rust/Makefile.am

index 1ecdc004dd5b064bbe6076a33ac02cfc5fe99d3d..494c7757b06de987f606a24ab9007a3a8c045491 100644 (file)
@@ -2345,10 +2345,15 @@ fi
         if test "x$HAVE_CARGO" != "xno"; then
           if test "x$HAVE_RUSTC" != "xno"; then
             AC_DEFINE([HAVE_RUST],[1],[Enable Rust language])
+            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}"
             CFLAGS="${CFLAGS} -I\${srcdir}/../rust/gen/c-headers"
@@ -2369,6 +2374,25 @@ fi
             rust_config_comment=""
             rust_compiler_version=$(rustc --version)
             rust_cargo_version=$(cargo --version)
+
+            # Check for rustup. RUSTUP_HOME needs to be set if rustup is in
+            # use, and a user uses sudo (depending on configuration), or su to
+            # perform the install
+            rustup_home_path="no"
+            if test "x$RUSTUP_HOME" != "x"; then
+                rustup_home_path="$RUSTUP_HOME"
+            else
+                AC_PATH_PROG(have_rustup, rustup, "no")
+                if test "x$have_rustup" != "xno"; then
+                    rustup_home_path=$($have_rustup show home 2>/dev/null || echo "no")
+                fi
+            fi
+            rustup_home=""
+            if test "x$rustup_home_path" != "xno"; then
+                rustup_home="RUSTUP_HOME=\$(RUSTUP_HOME_PATH)"
+            fi
+            AC_SUBST([RUSTUP_HOME_PATH], [$rustup_home_path])
+            AC_SUBST([rustup_home])
           fi
         fi
       fi
@@ -2379,6 +2403,7 @@ fi
     AC_SUBST(rust_config_enabled)
     AC_SUBST(rust_config_comment)
     AM_CONDITIONAL([HAVE_RUST_VENDOR], [test "x$have_rust_vendor" = "xyes"])
+    AM_CONDITIONAL([RUST_CROSS_COMPILE], [test "x$cross_compiling" = "xyes"])
 
     if test "x$enable_rust" = "xyes" || test "x$enable_rust" = "xyes (default)"; then
       cargo_version=$(echo "$rust_cargo_version" | sed 's/^.*[[^0-9]]\([[0-9]]*\.[[0-9]]*\.[[0-9]]*\).*$/\1/')
index 42734b3c19edd5b1379b020e53bb2d67a5b65b85..a3f95214225d4383564f247f6da8d219f7be0966 100644 (file)
@@ -4,16 +4,10 @@ EXTRA_DIST =  src \
 
 if HAVE_RUST
 
-EXTRA_DIST +=  Cargo.lock
-
 if HAVE_CARGO_VENDOR
 EXTRA_DIST +=  vendor
 endif
 
-if HAVE_RUST_VENDOR
-FROZEN = --frozen
-endif
-
 if !RUST_DEBUG
 if !DEBUG
 RELEASE = --release
@@ -28,31 +22,34 @@ 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
 endif
-       cd $(top_srcdir)/rust && \
-               CARGO_HOME=$(CARGO_HOME) \
-               CARGO_TARGET_DIR=$(abs_top_builddir)/rust/target \
-               $(CARGO) build $(RELEASE) $(FROZEN) \
-                       --features "$(RUST_FEATURES)"
+       @rustup_home@ \
+               CARGO_HOME="$(CARGO_HOME)" \
+               CARGO_TARGET_DIR="$(abs_top_builddir)/rust/target" \
+               $(CARGO) build $(RELEASE) \
+                       --features "$(RUST_FEATURES)" $(RUST_TARGET)
 
 clean-local:
-       -rm -rf target
+       -rm -rf target gen
 
 distclean-local: clean-local
        rm -rf vendor gen Cargo.lock
 
 check:
-       CARGO_HOME=$(CARGO_HOME) $(CARGO) test
-
-Cargo.lock: Cargo.toml
-       CARGO_HOME=$(CARGO_HOME) $(CARGO) generate-lockfile
+       CARGO_HOME="$(CARGO_HOME)" @rustup_home@ \
+            CARGO_TARGET_DIR="$(abs_top_builddir)/rust/target" \
+            $(CARGO) test $(RELEASE) --features "$(RUST_FEATURES)"
 
 if HAVE_CARGO_VENDOR
 vendor:
-       CARGO_HOME=$(CARGO_HOME) $(CARGO) vendor > /dev/null
+       CARGO_HOME="$(CARGO_HOME)" @rustup_home@ $(CARGO) vendor > /dev/null
 else
 vendor:
 endif