rust: build and dist fixes

Bring up to date with 5.0.x.
pull/4549/head
Victor Julien 6 years ago
parent 2c5b4dbbb5
commit 2a9bb46b4a

@ -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/')

@ -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

Loading…
Cancel
Save