On Thu, Apr 14, 2016 at 8:30 PM, Carsten Haitzler <ras...@rasterman.com> wrote:
> On Fri, 15 Apr 2016 11:51:56 +0900 Jean-Philippe André <j...@videolan.org> 
> said:
>> On 15 April 2016 at 08:08, Cedric BAIL <cedric.b...@free.fr> wrote:
>> > cedric pushed a commit to branch master.
>> >
>> > http://git.enlightenment.org/core/efl.git/commit/?id=4c921204575a8bc96d9449810ab963d0461c6152
>> >
>> > commit 4c921204575a8bc96d9449810ab963d0461c6152
>> > Author: Cedric BAIL <ced...@osg.samsung.com>
>> > Date:   Wed Apr 13 15:55:31 2016 -0700
>> >
>> >     evil: make it possible to build the library alone.
>> >
>> >     So I have been battling with autotools on this for a full week now,
>> >     and what we want is basically impossible. A.k.a. one file definition
>> >     and possibility to do a full build or just a partial build of efl.
>> >     Even moving to just partial build require to land a massive patch that
>> >     change everything in our build system and this is just not a road I
>> >     want to take.
>> >
>>
>> This patch will do for now.
>>
>>     For reference, if one day automake allow the use of any kind of variable
>> >     (autoconf AC_SUBST expansion or $()) in the _SOURCES parameter, it will
>> >     be possible to fix. Alternatively if they allow to build subdirectory
>> >     before they do BUILT_SOURCE, it would make it possible to incrementaly
>> >     move to only partial build. In the mean time, a less problematic
>> > solution
>> >     is to duplicate source code.
>> >
>>
>> So if I understand correctly, this means every change to
>> src/Makefile_XXX.am needs to be reflected in src/lib/XXX/Makefile.am?

Yes, no way around using autotools. It is a limitation as said in the
commit to how _SOURCES is handle. Now, what we can do is a separate
script in our autogen.sh that would generate the Makefile.am and still
have the Makefile.am in our git tree. That is for now the best
solution I can think of considering all the constraint I learned about
m4 and autotools.

>> That's not a very elegant solution, but I understand there is no better way.
>> Should we or can we have automated builds on Jenkins for those partial
>> builds?

This would be a very good idea !

> we will then ultimately move back to a recursive subdir build, slowly one
> lib/.bin/whatever dir at a time then. it's slower for rebuilds but massivewly
> faster for development which is where you should be spending the majority of
> your time. having to wait 1-2 mins for a "make &&  sudo make install" just to
> see if your 3 lines inside some eina file or eo file works... is massively
> counter-productive. full rebuilds can be scripted and automated to go a few
> times a day for full checks. but many devs are now complaining of the workflow
> hit of a full rebuild/relink every small change to a low level lib file. :-( 
> it
> has been pissing me off now for a year or 2. it's getting worse.

That is not going to happen soon. After my attempt to have both top
and specific Makefile.am with no code duplication, I started working
on just splitting it. That didn't work either as before going in any
sub tree, everything that is in BUILT_SOURCE as to be build.
Basically, I would have to do the split in one huge swoop. Considering
how complex our build system is, I really don't feel confortable doing
it any time soon.

The best path forward that I can see now is to :
- Maybe introduce an pre script to autotools that generate the Makefile.am
- Continue splitting each library and binary
- When we are confident that every combination is well tested and
covered, we can maybe split the top Makefile and only rely on the sub
one.

This is not going to happen in a hurry and I have now to move to other
tasks as i have spend already way to much time on this !

Cedric

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to