From: "Vasiliy Molostov" <molostoff@gmail.com>
Subject: Re: how to tell gnatmake to send executables to a different directory when compiling multi source?
Date: Mon, 30 Jul 2012 16:16:52 +0400
Date: 2012-07-30T16:16:52+04:00 [thread overview]
Message-ID: <op.wh9dqec7ka8ora@aspire.local> (raw)
In-Reply-To: 0ddccceb-c5ef-408a-b336-7cd2cd272ff8@googlegroups.com
Ludovic Brenta <ludovic@ludovic-brenta.org> писал(а) в своём письме Mon,
30 Jul 2012 15:05:35 +0400:
> Vasiliy Molostov wrote on comp.lang.ada:
> Don't you see how wrong this approach is?
Perhaps it is not ideal, but exists.
> Add to that that Make dependencies do not take compiler flags into
> account
> (gnatmake does) and are therefore incomplete. For example:
>
> all: foo
> foo: a.o b.o
> gcc -o $@ $<
>
> is not good enough, even when supplemented by generated source
> dependencies. Why? Because when CFLAGS contains -O3 or some explicit
> option, cross-unit inlining comes into the picture, so a.o does not
> depend
> on "just" b.o, it depends on a b.o compiled with the *same compiler
> options*. Make simply does not capture this dependency information.
YOu can place compiler options into a separate dependant file.
>> If someone fills that people in danger with that tool, please be so kind
>> to correct existing or to write a better tool, which is the right way,
>> but
>
> Correcting make is impossible without breaking compatibility with
> existing
> makefiles.
Wooo. Indeed.
> Therefore the only option is to replace make completely.
> gnatmake and gprbuild exist for this very purpose; so do all of the make
> alternatives mentioned elsewhere in this thread.
Do you plan to replace it completely?
> The constructive movement forward is: use *existing* better tools.
> If you still *must* use make, do that non-recursively.
*can*. The choice is mine, not your.
> No. I have *already* written all my Debian packages non-recursively
> and I routinely bypass upstream's fragile recursive makefiles with
> one non-recursive, simple makefile and one GNAT project file. And
> I usually specify .SUFFIXES in most of my Makefiles because the
> predefined rules just get in the way.
And it is good, any approach applicable, by the choice.
> No. This approach exists with all Ada compilers and with several other
> languages that mandate the precise tracking of dependencies between
> compilation units like OCaml and, to a lesser extent, Java.
I remember an *.alb file with compiler library level output collected in
one file, which does not affect make tools too much.
> No. While a personal haircut creates no danger, recursive makefiles do
> create danger.
If you are in danger it is not a recipe for any other people. I like my
haircut, want to and
will follow rules I specify by my own experience, without unconditionally
accepting things that
restricts a freedom of choice.
> No. The reason for the existence of "configure" in AWS is because the
> external, optional dependencies are not written in Ada.
You tend to say that this issue is internal tls/ssl problem that they are
dependencies to AWS? I suppose that this is an AWS issue to refer these
dependencies and a lack of appropriate tool to examine these dependencies
without 'configure' related things, that came from autotools.
> In the Debian
> package for AWS, I bypass configure and upstream's makefile completely.
> Instead I use one non-recursive Makefile and one GNAT project file, as
> usual. This is fast and reliable.
Also, a good approach, and it is a matter of choice.
--
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
next prev parent reply other threads:[~2012-08-02 12:23 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-29 9:31 how to tell gnatmake to send executables to a different directory when compiling multi source? Nasser M. Abbasi
2012-07-29 10:00 ` Dmitry A. Kazakov
2012-07-29 11:35 ` Nasser M. Abbasi
2012-07-29 12:29 ` Patrick
2012-07-29 13:02 ` Nasser M. Abbasi
2012-07-29 13:49 ` Ludovic Brenta
2012-07-29 14:09 ` Nasser M. Abbasi
2012-07-29 15:35 ` Ludovic Brenta
2012-07-29 15:42 ` Patrick
2012-07-29 16:41 ` Ludovic Brenta
2012-07-29 16:46 ` Patrick
2012-07-29 17:35 ` Vasiliy Molostov
2012-07-29 19:40 ` Dmitry A. Kazakov
2012-07-29 22:22 ` Vasiliy Molostov
2012-07-29 19:46 ` Robert A Duff
2012-07-30 0:20 ` Vasiliy Molostov
2012-07-30 3:01 ` Nasser M. Abbasi
2012-07-30 4:48 ` Nasser M. Abbasi
2012-07-30 21:05 ` Robert A Duff
2012-07-30 5:50 ` Dmitry A. Kazakov
2012-07-30 11:16 ` Vasiliy Molostov
2012-07-30 12:25 ` Georg Bauhaus
2012-07-30 12:59 ` Vasiliy Molostov
2012-07-30 14:07 ` Georg Bauhaus
2012-07-30 13:03 ` Nasser M. Abbasi
2012-07-30 14:02 ` Georg Bauhaus
2012-07-30 19:40 ` J-P. Rosen
2012-08-01 7:32 ` Miles Bader
2012-08-01 9:37 ` Ludovic Brenta
2012-08-02 5:01 ` Miles Bader
2012-08-01 15:15 ` J-P. Rosen
2012-08-02 15:08 ` Robert A Duff
2012-08-02 16:37 ` J-P. Rosen
2012-07-30 19:50 ` Ludovic Brenta
2012-07-30 3:21 ` Nasser M. Abbasi
2012-07-30 8:19 ` Simon Wright
2012-07-30 6:12 ` Dirk Heinrichs
2012-07-30 6:40 ` Ludovic Brenta
2012-07-30 10:31 ` Vasiliy Molostov
2012-07-30 11:05 ` Ludovic Brenta
2012-07-30 11:33 ` Simon Wright
2012-07-30 12:16 ` Vasiliy Molostov [this message]
2012-07-30 12:48 ` Ludovic Brenta
2012-07-30 13:09 ` Vasiliy Molostov
2012-07-30 6:06 ` Dirk Heinrichs
2012-07-29 12:31 ` Nasser M. Abbasi
2012-07-29 13:46 ` Ludovic Brenta
2012-07-29 14:15 ` Simon Wright
2012-07-29 13:54 ` Dmitry A. Kazakov
2012-07-29 14:16 ` Nasser M. Abbasi
2012-07-29 14:32 ` Dmitry A. Kazakov
2012-07-30 5:57 ` General purpose build tools (was: Re: how to tell gnatmake to send executables to a different directory when compiling multi source?) Dirk Heinrichs
2012-07-30 10:50 ` Vasiliy Molostov
2012-07-30 11:10 ` Ludovic Brenta
2012-07-30 12:39 ` Vasiliy Molostov
2012-08-30 10:49 ` General purpose build tools Stephen Leake
2012-07-29 18:33 ` how to tell gnatmake to send executables to a different directory when compiling multi source? björn lundin
2012-07-29 19:06 ` onox
2012-07-31 11:12 ` Patrick
2012-07-31 11:30 ` Dmitry A. Kazakov
2012-07-31 11:31 ` Dmitry A. Kazakov
2012-07-31 11:34 ` Patrick
2012-07-31 12:33 ` Ludovic Brenta
2012-07-31 15:14 ` Patrick
2012-07-31 16:04 ` Ludovic Brenta
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox