<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.32.2">
</HEAD>
<BODY>
On Wed, 2011-06-15 at 17:14 -0400, Gaetan Nadon wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#3c3c3c">This reverts commit 39afe69ad7d2258d4043044d1283bd6e311e48da.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c">Conflicts:</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gitignore</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makefile.am</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c">This patch is to review &quot;non-recursive make&quot; commit 39afe69ad7.</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">Nak this patch to signify your approval of commit 39afe69ad7</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">Ack this patch to revert &quot;non-recursive make&quot; commit 39afe69ad7</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">This will formalize the review being held on xorg-devel list.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c"><A HREF="http://lists.x.org/archives/xorg-devel/2011-June/023321.html">http://lists.x.org/archives/xorg-devel/2011-June/023321.html</A></FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c"><A HREF="http://lists.x.org/archives/xorg-devel/2011-June/023233.html">http://lists.x.org/archives/xorg-devel/2011-June/023233.html</A></FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c">There are a couple of minor code changes unrelated to makefile recursiveness</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">which can be resubmitted should the revert be accepted:</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">@DRIVER_NAME@_drv_ladir = @inputdir@ to</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">&nbsp; input_LTLIBRARIES = @DRIVER_NAME@_drv.la</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">noinst_PROGRAMS to check_PROGRAMS</FONT></TT><BR>
    <BR>
    <BR>
</BLOCKQUOTE>
My review comments, taking into consideration what has been written so far.<BR>
<BR>
Everyone is in favor on speeding up builds. A quick test indicates there is no performance benefit. Are there any prototypes to support the claim? What can I do to verify that building is faster on an average computer?<BR>
<BR>
If the benefits only show up when multiple modules are non-recursive, it should be able to demonstrate this with multiple copies of synaptics.<BR>
<BR>
My readings indicate non-recursive makefile are faster for a large body of C code that spawns multiple subdirs which have a dependency relationship amongst themselves. As well, reviewers have indicated that simply invoking make in subdirs has very little performance impact.<BR>
<BR>
The cost of collapsing all makefiles into one is not negligible and so is the on-going maintenance for the next decade or two. The benefits must be compelling to offset that cost. I could elaborate on this if need be.<BR>
<BR>
On some larger modules, it may be a benefit to have a single makefile for the C code while retaining subdirs for docs, config, tools and what not. A compromise on the number of subdirs and other related work may yield significant performance gain. We just had a preview on the server with a convenience library.<BR>
<BR>
I did see an attempt from Automake in 2001 to collapse makefiles on behalf on the user using an &quot;import&quot; statement. That has never materialized.<BR>
<BR>
<BR>
</BODY>
</HTML>