Hi Paul,
On 18 Jan 2008, at 08:32, Paul Eggert wrote:
"Gary V. Vaughan" <address@hidden> writes:
+# Clean up potential compiler droppings:
+ac_files="a.out.* a.exe.* a_out.exe.* b.out.* conftest.*"
+for ac_file in $ac_files; do
+ case $ac_file in
+ _AC_COMPILER_OBJEXT_REJECT ) rm -rf $ac_file ;;
+ esac
+done
Sorry, I'm a bit lost. Shouldn't this be done inside the
AC_CACHE_CHECK?
Also, why not just do this?
rm -f a.out.* a.exe.* a_out.exe.* b.out.* conftest.*
This whole area seems to be a bit of a mess to me. Shouldn't all
these "dropping" files be removed unconditionally as part of the
existing "rm -f -r conftest* confdefs* conf$[$]* $ac_clean_files"
line?
I agree that droppings from all compilers should be deleted, though
I have
no clue where the cleanest place to achieve that would be.
The main gotcha is removing conftest.* during the tests from lang.m4
breaks
because the OBJEXT test wants to see conftest.c and/or conftest.
{o,obj} and
throws it's arms in the air and halts configure if they have been
removed. I
guess the EXEEXT test relies on them.
Since the macros are order sensitive, another way I thought of doing
it was
to find the sites that call:
m4_expand_once([_AC_COMPILER_EXEEXT])
m4_expand_once([_AC_COMPILER_OBJEXT])
And replace with a single:
m4_expand_once([_AC_COMPILER_CHECKS])
and add to lang.m4:
m4_define([_AC_COMPILER_CHECKS], [
_AC_COMPILER_EXEEXT
_AC_COMPILER_OBJEXT
_AC_COMPILER_CLEAN_DROPPINGS
])
where _AC_COMPILER_CLEAN_DROPPINGS contains the case statement of my
original
patch.