[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Vala support for automake

From: Ralf Wildenhues
Subject: Re: Vala support for automake
Date: Thu, 16 Apr 2009 20:49:22 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

Hi Jürg,

* Jürg Billeter wrote on Wed, Apr 15, 2009 at 08:56:44PM CEST:
> On Wed, 2009-04-15 at 20:42 +0200, Ralf Wildenhues wrote:
> > I'm looking at adding per-target flag support for vala sources.
> > 
> > Say I have baz.vala and want to create from that
> >   foo-baz.c foo-baz.h
> > 
> > in one valac invocation, as well as
> >   bar-baz.c bar-baz.h
> > 
> > in another 'valac -D BAR' invocation.  Is there some flag I can pass to
> > valac that will use these output names for me?  If yes, does it do so
> > without generating intermediate baz.c baz.h files or any other temporary
> > files that have a name  which would conflict with parallel make -jN
> > execution?
> valac does not currently support any transformation on the output names
> of the .c files. It's not as easy as a simple -o option because you have
> multiple input and output files per invocation in general (see below).

Ah.  Good to know.

> If you think it would make sense to add a --suffix option or similar to
> valac, I could certainly take a look at it.

I think a --prefix option should do the trick, but I haven't thought
this through yet.

> > Also, I see that your vala compile passes all sources to valac.  Is that
> > intentional (or just because that was good enough)?  I.e., if you have
> >   bin_PROGRAMS = foo
> >   foo_SOURCES = a.c b.vala c.l e.vala
> > 
> > do you really want to invoke
> >   valac -C a.c b.vala c.l e.vala
> That was not intentional. valac won't mind unnecessary .c files but will
> reject files with other extensions.

Ah; that looks like a bug we should fix and test.

> > rather than
> >   valac -C b.vala e.vala
> This would be the correct commandline.


> > or even
> >   valac -C b.vala
> >   valac -C e.vala
> This would not work, valac requires all Vala source files of the same
> program / library on the same commandline. The reason is that the source
> files can depend on each other, but there is no header/include
> mechanism.

Hmm.  What if I do something like this:

bin_PROGRAMS = foo
foo_SOURCES = foo1.vala foo2.vala
foo_LDADD = libbar.a
noinst_LIBRARIES = libbar.a
libbar_a_SOURCES = bar1.vala bar2.vala

How would valac cope with the necessarily separate invocations for
foo*.vala and bar*.vala?  And what happens if you try to put vala
code into shared libraries, and use them from other vala code?


reply via email to

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