This is again to avoid the "Argument list too long" error we are hitting more and
more now. Given we just merged elementary, emotion generic players, evas generic
loaders and elm_code it is not surprising we are hitting it again.
This time the number of files being hold in DISTFILES has just grown to big so a
make dist was no longer possible. If one looks at what the DISTFILES variable
from automake holds you can image it grows a lot with all the source files plus
generated files we have in tree now.
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
To cut off a big chunk but still keep all the other automagic in place for
SOURCE files I went and renamed the EXTRA_DIST in src/ to EXTRA_DIST2 and handle
the files in a dist-hook now.
Another thing to note here is that this also only happens as we have the one big
Makefile with includes. If we go back to per directory Makefiles this problem
should vanish as well. In any case we need a solution for 1.18 now and this is
what I have to offer. If you have a cleaner solution in mind feel welcome to
test it out and if everything we need keeps working (make, make examples,
make check, make benchmark, make dist and make distcheck) go ahead.
With this commit I'm finally able to use -j10 for make install on my machine.
During install libtool does some relinking which can result in to broken linking
if the dependencies are not handled correctly. Sadly automake has a problem with
the automatic dependency handling during install with LTLIBRARIES which we use
for all our modules. For the details please see this 4.5 years old bug report:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328
We are now setting the dependency manually to force automake to the right decision
during install relinking.
Speed improvement itself is not that high (make -j 1 compared to -j10):
real 0m21.410s vs. real 0m17.066s
The bigger benefit is the unified use of MAKEOPTS or normal -j X in all our
build targets. I have seen quite some bug reports where -j was used for install
target when it was used in the build target. Last but not least it helps me to
unify some parts of the jenkins jobs and finally allows me to run distcheck
with -j Which uses install internally and failed before. Which goes down from
real 12m50.349s to real 5m52.120s.
While we used different variation of mkdir -p all over we also had spots
where we did not use the option. This is one step in trying to make our
build system ready for parallel install. Using something like -j 10 even
for the install should help to speed up our jenkins jobs as well as distcheck.
it was failing:
- leaving missing objects (.edj, .la)
- eo was not building its examples automatically with --enable-always-build-examples
- make dist with '--enable-always-build-examples' was not including 'src/examples'
plus lots of ignored files due test changes.
SVN revision: 82894
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.
There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.
I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.
Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}
SVN revision: 82785
This one was a painful bitch. The edbus2 port was quite broken, mainly
leaking eina_stringshare and also not adding the '\0' to the strings
that are represented as bytearray (paths cannot be utf8 to avoid
translations).
Emotion plugin was also quite bogus and the video thumbnail as edje
(animated) is not working yet due bug in Edje_Edit api -- someone
needs to investigate this, seems strange.
Emotion plugin also had a bug that it was deleting the object from
inside object callback.
Now it seems to work. Please report if it does not.
SVN revision: 82675