diff options
author | Alex Xu (Hello71) <alex_y_xu@yahoo.ca> | 2018-05-16 19:35:12 -0400 |
---|---|---|
committer | Taylor Yu <catalyst@torproject.org> | 2018-06-27 14:42:06 -0500 |
commit | 614a78ddaa8e28919cab79156b43cb16e5fb9f04 (patch) | |
tree | 40d7b081eeadb7a88fc75d4fb09c0d7768a709b4 /configure.ac | |
parent | c08102ea777ddaaa8404021a1c8b84082f5eff8b (diff) | |
download | tor-614a78ddaa8e28919cab79156b43cb16e5fb9f04.tar.gz tor-614a78ddaa8e28919cab79156b43cb16e5fb9f04.zip |
Fix Rust cross compilation.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index f557faf1c6..27cb0323c2 100644 --- a/configure.ac +++ b/configure.ac @@ -453,6 +453,8 @@ fi AC_C_BIGENDIAN +AC_ARG_VAR([TOR_RUST_TARGET], [Rust target, must be specified when cross-compiling (HOST != BUILD). example: i686-pc-windows-gnu]) + if test "x$enable_rust" = "xyes"; then AC_ARG_VAR([RUSTC], [path to the rustc binary]) AC_CHECK_PROG([RUSTC], [rustc], [rustc],[no]) @@ -518,12 +520,29 @@ if test "x$enable_rust" = "xyes"; then dnl For now both MSVC and MinGW rust libraries will output static libs with dnl the MSVC naming convention. if test "$bwin32" = "true"; then - TOR_RUST_STATIC_NAME=tor_rust.lib + tor_rust_static_name=tor_rust.lib else - TOR_RUST_STATIC_NAME=libtor_rust.a + tor_rust_static_name=libtor_rust.a + fi + + AC_CANONICAL_BUILD + + if test -n "$TOR_RUST_TARGET"; then + if test "$host" = "$build"; then + AC_MSG_ERROR([HOST = BUILD is invalid if TOR_RUST_TARGET is specified, see configure --help for more information.]) + fi + RUST_TARGET_PROP="target = '$TOR_RUST_TARGET'" + TOR_RUST_LIB_PATH="src/rust/target/$TOR_RUST_TARGET/release/$tor_rust_static_name" + else + if test "$host" != "$build"; then + AC_MSG_ERROR([TOR_RUST_TARGET must be specified when cross-compiling with Rust enabled.]) + fi + RUST_TARGET_PROP= + TOR_RUST_LIB_PATH="src/rust/target/release/$tor_rust_static_name" fi - AC_SUBST(TOR_RUST_STATIC_NAME) + AC_SUBST(RUST_TARGET_PROP) + AC_SUBST(TOR_RUST_LIB_PATH) AC_SUBST(CARGO_ONLINE) AC_SUBST(RUST_WARN) AC_SUBST(RUST_DL) |