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