Hello John, * John Wohlbier wrote on Wed, Feb 25, 2009 at 08:03:00PM CET: > For the life of me I can't figure out how to use variables I've set in > atlocal.in in my macros defined in my *.at files. I think it must be due to > my lack of understanding of the m4 language, and maybe more specifically the > --language=autotest option of autom4te. I don't think either of the above is the case. :-) > m4_define([AT_RUN_PROGRAM], > [ > #run="" > #if test -n "$DOING_MPI" ; > # run="mpirun -n $2" > #fi > > AS_IF(test -n "$DOING_MPI",[run="mpirun -n $2"],[run=""]) > > AT_BANNER([executing $run $1 $2]) > AT_TESTED([$1]) > AT_SETUP([$1]) > AT_CHECK([$run $1],0,[ignore],[ignore]) > AT_CLEANUP > ]) > /bin/sh 'testsuite' -d > ## -------------------------------------- ## > ## pika_fields 0 test suite: pika_fields. ## > ## -------------------------------------- ## > > pika fields > > > executing $run test_Cell_Field 2 > > 1: test_Cell_Field ok > You can see that $run is being treated as a constant, and my variables are > not getting evaluated. Yes. But that is because the argument to AT_BANNER is treated as a shell-literal constant (imagine it were enclosed in single quotes ''). I think this is technically necessary because the argument ends up in a couple of far-apart places in the testsuite, and allowing shell parameter expansion could easily lead to inconsistent results (e.g., the output of ./testsuite being inconsistent with './testsuite -l'). I haven't checked, but IIRC it's not so easy to lift this limitation. However, the first argument to AT_CHECK does undergo shell expansion. You should be able to verify this with ./testsuite -v -d -x Hope that helps. Cheers, Ralf _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf