[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Automake 1.14 and subdir-objects
From: |
Gavin Smith |
Subject: |
Re: Automake 1.14 and subdir-objects |
Date: |
Thu, 31 Jul 2014 23:21:19 +0100 |
On Thu, Jul 31, 2014 at 9:32 PM, David Beer <address@hidden> wrote:
> Gavin,
>
> Thanks for your reply. Here's a more specific breakdown of what the project
> does:
>
> src/a/Makefile.am:
>
> a_SOURCES = bob.c tom.c
>
> src/b/Makefile.am:
>
> b_SOURCES = mary.c ../a/tom.c
>
> The purpose was so that tom.c would be recompiled with a different
> preprocessor switch. There were only a few files that failed for this case,
> so I was able to work around this. The other case:
>
It is clearer now what you are trying to do. It might be worth noting
that you can specify target-specific compliation flags with variables
like a_CPPFLAGS and b_CPPFLAGS: however, this would normally be done
when a and b were targets defined in the same Makefile.am. This would
lead the created object files to have different names, so might work
in your case, but I believe that this kind of sharing of source files
between Makefile.am's is not really supported. I imagine there could
be problems with e.g. dependency tracking. Maybe consider using a
"non-recursive" build system with a single Makefile.am if it is
appropriate for your project.
Another idea is to specify the files like tom.c in "src/b/Makefile.am" as
BUILT_SOURCES=tom.c
and then have a hand-written rule to copy the tom.c file into the
build directory for b, e.g.
tom.c:
cp $(top_builddir)/a/tom.c .
(I haven't tested this.)