[Gambas-user] Nothing to be done

Gianluigi bagonergi at gmail.com
Sun Dec 16 19:54:15 CET 2018

Il giorno dom 16 dic 2018 alle ore 18:25 Tobias Boege <taboege at gmail.com>
ha scritto:

> On Sun, 16 Dec 2018, Gianluigi wrote:
> > A curiosity, does anyone know what this means:
> > "make[2]: Nothing to be done for 'install-data-am'"
> > in the Gambas compilation?
> >
> This message comes from `make`, which is the utility driving Gambas
> compilation. It takes a Makefile as input which describes *targets*
> of the build or installation process, together with *rules* for how
> to reach a target and *dependencies* for each target, which can be
> other targets.
> make tries to reach its top target (e.g. a completely compiled Gambas),
> by, recursively, reaching all the necessary dependenies and then
> executing the rule to combine the dependencies to the top target.
> But it does that parsimoniously: if all dependencies of a target are
> up-to-date (e.g. source code was not modified since the last build),
> then the target itself must be up-to-date. In that case there is
> "nothing to be done" for the target. make is proud to tell you that,
> because it just saved you a potential lot time by computing that
> no actions are necessary instead of blindly executing them.
> In your case that target is install-data-am, a target which installs
> data files (judging by its name). It must have been determined that
> the files have already been installed before and don't need to be
> updated -- or there are no data files to insall in the first place.
> How can that happen? Our Makefiles are not written by hand, but
> autogenerated from simpler files. It's actually a multi-stage process
> and quite a mess. The targets produced often contain redundancies[*].
> As a result of that, you sometimes get targets which are just empty
> for some subdirectories.
> I think there was once an attempt to build Gambas with cmake instead
> of autoconf and co., which resulted in a fraction of build times
> if I remember correctly. I don't know if that work was lost -- I don't
> have a copy of it anymore I think. Maybe it was on a svn branch?
> Regards,
> Tobi
> [*] The -am suffix hints at this target coming from automake,
>     which, to tell you the cold hard truth generates the files that
>     are read by the program (which is also autogenerated, by the way)
>     that generates the final Makefile... used to compile Gambas.
>     See here for a hands-on explanation at a smaller scale than
>     Gambas: http://mij.oltrelinux.com/devel/autoconf-automake/
> --
> "There's an old saying: Don't change anything... ever!" -- Mr. Monk

Hi Tobias,
as usual for you, a really interesting lesson.
As usual for me, a big thank you :-)
(Useful and nice hands-on explanation)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/user/attachments/20181216/91827ab8/attachment.html>

More information about the User mailing list