include("../../include/msg-header.inc"); ?>
From: Ethan Mallove (ethan.mallove_at_[hidden])
Date: 2006-11-02 14:18:06
I need to compile a testsuite like this:
shell_build_command = &join("configure --with-lib-mpi=", &test_prefix(), "gmake")
But MTT errors out with:
Building Shell
Evaluating: &join("configure --with-lib-mpi=", &test_prefix(), "gmake")
Got name: test_prefix
Got args:
_do: $ret = MTT::Values::Functions::test_prefix()
&test_prefix returning: my_mpi/install/dir
String now: &join("configure --with-lib-mpi=", my_mpi/install/dir, "gmake")
Got name: join
Got args: "configure --with-lib-mpi=", my_mpi/install/dir, "gmake"
_do: $ret = MTT::Values::Functions::join("configure --with-lib-mpi=", my_mpi/install/dir, "gmake")
Bareword found where operator expected at (eval 33) line 1, near "/opt/mtt"
(Missing operator before tt?)
Bareword found where operator expected at (eval 33) line 1, near "1.3a1r12364"
(Missing operator before a1r12364?)
*** ERROR: Module aborted: MTT::Test::Build::Shell:Build: *** ERROR: Could not evaluate: $ret = MTT::Values::Functions::join("configure --with-lib-mpi=", my_mpi/install/dir, "gmake"): syntax error at (eval 33) line 1, near "/opt/mtt"
It looks like EvaluateString does not like the slashes,
because something silly like this doesn't give me the syntax
error:
shell_build_command = &join("configure --with-lib-mpi=", &test_np(), "gmake")
Note: Below is a patch to give Build.pm visibility of
test_prefix(), though this will also produce the error:
&join("configure --with-lib-mpi=", &shell("pwd"), "gmake")
-Ethan
Index: MTT/Test/Build.pm
===================================================================
--- MTT/Test/Build.pm (revision 410)
+++ MTT/Test/Build.pm (working copy)
@@ -251,6 +251,10 @@
}
}
+ # Some test suites require knowledge of where
+ # the MPI library is at the build stage
+ $MTT::Test::Run::test_prefix = $mpi_install->{installdir};
+
# Process setenv, unsetenv, prepend-path, and append-path -- for
# both the MPI that we're building with and the section of the ini
# file that we're building.