autoconf
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]