[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: using read-only source tree? and how to choose location for autom4te
From: |
Ralf Wildenhues |
Subject: |
Re: using read-only source tree? and how to choose location for autom4te.cache and Makefile.in, etc |
Date: |
Mon, 20 Mar 2006 16:55:12 +0100 |
User-agent: |
Mutt/1.5.11 |
Hi Jeremy,
* Jeremy C. Reed wrote on Fri, Mar 17, 2006 at 12:45:40AM CET:
> I am hoping I can do some builds with a read-only source tree.
Should be possible, starting from with configure.
> I am running my autoreconf from the source directory and running "make" in
> my work directory. My Makefile, config.log, config.status,
> configure.lineno, and object files are in my work directory, like I
> expect.
>
> But the autom4te.cache is created in my source directory. If my source
> directory is read-only I receive:
>
> cannot create autom4te.cache/output.0t: permission denied
Well, autoreconf is expected to write into your source tree anyway, so
it won't be able to do that work. Probably your real issue is that some
dependency is causing an autotools rerun which should not happen. Could
that be the case?
If so, then 'make distcheck' is a good way to find out what is going
wrong: it does a build outside the source tree, with the source tree
being read-only.
> How can I tell autom4te or autoreconf or whatever to never write to my
> source directory?
It should never be called unless input files to the autotools have
changed.
There is also AM_MAINTAINER_MODE, but it's good to know that its
inventor now advises against it.
> I tried using --cache-file=~/cache but I am unclear on what that is for
> (and it didn't help).
That is for caching the results of configure runs. The stuff that
changes configure output from
| checking for stdlib.h... yes
to
| checking for stdlib.h... (cached) yes
and also preventing the compiler from being invoked in the second case.
> I tried quickly looking at some of the autom4te script and modules, but
> didn't see where the filename is defined.
I believe it is hard-coded.
> I also have files generated like:
>
> aclocal.m4
> configure
> config.h.in
> Makefile.in
>
> Any suggestions on how I can have these also generated into my work
> directory (and not my source directory)?
They belong into the source tree: they should be identical over all
systems, and they are put in the tarball as well.
You're working on Xorg, right? Well, I've started looking at the
modular setups, and I have some comments about it[1], but not yet time
to work them all out right, and write proper reports. I think the
build.sh script should have a mode to only run the autotools once, and
then not ever again. That should save you from gratuitous changes in
the source tree due to the autotools.
Cheers,
Ralf
[1] For example, see here:
http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/3561
https://bugs.freedesktop.org/show_bug.cgi?id=6096