This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Re: Non-recursive make & intermediate objects
- From: Robert Collins <robert dot collins at syncretize dot net>
- To: Bob Friesenhahn <bfriesen at simple dot dallas dot tx dot us>
- Cc: automake at gnu dot org
- Date: Thu, 20 Nov 2003 09:40:37 +1100
- Subject: Re: Non-recursive make & intermediate objects
- Organization: Syncretize Pty Limited
- References: <Pine.GSO.4.44.0311191544520.22691-100000@scooby.simplesystems.org>
On Thu, 2003-11-20 at 09:04, Bob Friesenhahn wrote:
> Using Automake 1.7.9, I am attempting to create a single Makefile.am
> which is capable of building all of the libraries used by the project.
> The source files to the project are located in subdirectories, and the
> output libraries should also be located in subdirectories. The
> objective is to replace an existing recursive build.
>
> Using a rule like:
>
> noinst_LIBRARIES = libs/somedir/libfoo.a
> libs_somedir_libfoo_a_SOURCES=foo.cc
>
> and then inpecting the output of 'make -n' (and the generated
> Makefile), I see evidence that the build will put all .Po files in a
> .deps subdirectory under the Makefile.am, and all the .o files in the
> same directory as Makefile.am. This approach seems quite wrong to me
> since it is quite possible that libraries and applications may use
> similarly named source files. Intermediate files should be placed
> either under the directory where the library is placed, or in the
> directory where the source files live. An even better solution would
> allow the user to specify where intermediate files are placed on a
> per-library and per application basis.
subdir_objects in your automake options.
Problem is, there is a design headache that makes recursive clean fail
with this approach - I forget the bug #, but it's on my todo, waay down
there :p.
Rob