[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AC_CONFIG_LINKS breaks every second time
From: |
Sebastian Freundt |
Subject: |
Re: AC_CONFIG_LINKS breaks every second time |
Date: |
Tue, 24 Jul 2007 22:06:01 +0000 |
User-agent: |
Gnus/5.110007 (No Gnus v0.7) SXEmacs/22.1.7 (linux) |
Hey Ralf,
Ralf Wildenhues <address@hidden> writes:
> Hello Sebastian,
>
> * Sebastian Freundt wrote on Mon, Jul 23, 2007 at 11:31:07PM CEST:
> [...]
>> my build directory (distinct from $srcdir):
>> /home/src/=build/
>>
>> There's an AC_CONFIG_LINKS([src/s:src/s]) in my configure.ac.
>> configure or config.status, respectively, now do the following:
>>
>> 1. in a clean build directory: create the src subdirectory, create the
>> symlink from $srcdir/src/s to $builddir/src/s
>> 2. in a configured build directory: delete $builddir/src/s and create a
>> link from $builddir/src/s(!) to $builddir/src/s
>> 3. in such a screwed build directory, another invocation of config.status
>> yields the correct link again ($builddir/src/s -> $srcdir/src/s)
>
> Interesting setup. For it to work with Autoconf 2.59 required that the
> source tree and the build tree be different. (I assume that that is the
> version you originally got this to work with.) If both trees coincide,
> you would get an error if config.status is executed more than once, and
> you already have a broken file after the first configure run.
>
> My first gut reaction to this setup was of the sort "doctor it hurts
> when I do this -- so don't do it". And there is a somewhat
> non-intuitive reason for this, too: files that exist under identical
> names in the source and the build trees are confusing. Confusing to
> the developer, and a hassle with the 'make' program. That is due to
> all the tiny differences in how different 'make' implementations do
> VPATH handling. Finally, on systems where 'ls -s' does not work right,
> the file is copied, so you may still have to take care of
> synchronization issues if you rely on those, such as having the wrong
> header file included or so.
>
> Nonetheless, I see that there may be valid uses of this setup, so here's
> a patch against CVS Autoconf to try (once quoted, with 'diff -b', for
> readability, as most of the status.m4 changes are due to reindentation).
> Note that, as exercised in the test, you can use
> test "$srcdir" != '.' && AC_CONFIG_LINKS([src/t:src/t])
>
> to avoid the warning at config.status time; incidentally, writing it
> that way will make your code compatible with Autoconf 2.59 as well. ;-)
>
> WDYT? Is the warning too much (and should rather be AC_MSG_NOTICE)?
If you asked me I'd vote for AC_MSG_WARN since, admittedly, this setup is
peculiar and could have been the yield of sloppy coding in 9 of 10 cases.
> OK to apply?
Fine by me :) Works like a charm!
> Cheers, and thanks for the nice report,
No, I thank _you_ for the quick fix. :)
[snip]
So long,
Sebastian