Porting Firefox's build to tup! That sounds like lots and lots of libraries 
and files, etc. Wow! I'm impressed. At my company, we "only" have 130 
Eclipse projects to port. Other projects I'm not considering because they 
aren't Eclipse projects, use make, ninja, and gradle. Joy, right?

On Friday, December 20, 2019 at 2:47:09 PM UTC-6, Layus wrote:
>
> I asked myself the same question during the process of porting Firefox's 
> build to Tup.
>
> The bottom line seems that of course, you can get a perfectly correct 
> build system with make, *if* you are willing to think about all the corer 
> cases yourself.
> Tup alleviates much of the mental load, and relieves yourself from working 
> around each of make limitations.
>
> Of course, using .d files can work around dependency detection, but you 
> need to wire that in make, making it more complex, and any mistake in the 
> way you implement it leads to potential incorrect builds.
> Of course, you can take special care to filter environment variables, and 
> force make to rebuild when they change (well, I have no idea how, but 
> writing their content to a file that is a dependency to all the targets may 
> be a start).
> Of course, you can force make to rebuild when the makefile itself changed, 
> but again you have to clutter your makefiles to do that, and get an 
> half-backed solution.
> Why would you do that by hand (and maintain that by hand) when you can get 
> it baked-in in your tool.
> Just have a look at the kind of makefiles that cmake generates. They 
> handle most of the above, and are clearly unmaintainable manually.
>
> That would be my not too theoretical argument.
>
> Oh, and tup comes with a monitor, that tracks changes and rebuilds 
> immediately :-).
>
> Also, all of the above work-arounds have shortcomings that I find 
> extremely important to consider, but are less convincing to random 
> end-users.
> 1/ GNU -MD does not handle missing files. This means that adding a new 
> header earlier in the includes search path will not be detected. Tup does 
> that. (and can do that for system headers if asked to).
> 2/ Depending on Makefiles themselves is a common trick, but it is coarse 
> grained, as all the targets in a Makefile would need to be rebuilt whenever 
> one changes (This is more about speed, that you specifically asked not to 
> consider).
> 3/ Make will not tell you when you have hidden (a.k.a. undeclared) 
> dependencies. So you may achieve a correct build definition with Make, but 
> you will never be certain you do. Why live with uncertainty when it can be 
> ruled out ?
>
> Now, Tup comes with some constraints due to all the correctness 
> enforcement. These would be valid reasons not to use it if you build is so 
> peculiar that it its them.
>
> Time to stop, but I have tons of arguments in stock :-).
>
> -- Layus.
>
> On 20/12/19 01:07, Gerardo Delgadillo wrote:
>
> I'm porting Eclipse C++ project builds (ugly) to something more reliable. 
> My C++ projects consist of many-many libraries and executable files. So, as 
> a test, I ported a few to to TUP, and it works great. However, a co-worker 
> asked, "Why not just use make instead? It's in all the servers and works 
> great." My reply was: "Auto-dependency detection and speed." Now, speed is 
> very nice but it isn't much of an issue in our case. Then, he said that 
> given the right inputs (.cpp, .h, .d files. etc.), make can deal with 
> dependencies if used along with GNU -MD flag to generate the 'd' files, 
> etc. 
>
> What's your take on this never-ending debate? (I.e. I couldn't convince 
> him of tup's superiority).
> -- 
> -- 
> tup-users mailing list
> email: [email protected] <javascript:>
> unsubscribe: [email protected] <javascript:>
> options: http://groups.google.com/group/tup-users?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "tup-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tup-users/7060f6d5-b72b-4389-99e9-ca945c2a7b11%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/tup-users/7060f6d5-b72b-4389-99e9-ca945c2a7b11%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tup-users/4e5f210a-5608-4339-9152-ae6d2bcd5f67%40googlegroups.com.

Reply via email to