[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: build system rules & algorithms
From: |
Mike Shal |
Subject: |
Re: build system rules & algorithms |
Date: |
Wed, 10 Jun 2009 22:44:21 -0400 |
On 6/10/09, Stephan Beal <address@hidden> wrote:
> Also my opinion. On a related note, my major gripe with Alpha builds:
> i come from the school of thought which (strongly) believes that a
> change to a Makefile requires a rebuild of all targets controlled by
> the Makefile, for the simple reason that the Makefile controls all
> options sent to the compiler. If the Makefile changes, compile
> flags/options might have changed, and not doing a full rebuild can
> lead to difficult-to-find bugs which mysteriously disappear when "make
> clean; make all" is run (because a -DFOO=3 was changed to -DFOO=4). In
> an Alpha build this school of thought suffers considerably unless the
> whole project builds in a trivial amount of time (say, less than 10
> seconds).
I definitely agree that changing command lines need to be taken into
account. Though, I also think it is important to support renaming or
removing files and targets. In my experience, I've not come across a
make setup that can handle these cases properly.
> While RMCH makes some interesting points, i'm of the opinion that a
> properly constructed recursive make is still the best general-purpose
> way to structure most trees. (Let's not forget that "general purpose"
> anything will always outperform specialized solutions for particular
> cases.) Once a top-level build is done, subdirs can be built very
> quickly, and trees can (in my experience) be structured so that the
> build makes it impossible to have circular references between modules
> in the source tree (as they are as problematic to the build process as
> they are philosophically troubling). i'll spare you all my long-winded
> evangelism, but this topic is one i can certainly go on about for a
> while.
The issue I always run into these setups is I never know which subdirs
I need to cd to in order to run make (and still get a correctly
running program). Although I may be able to do that for projects I
write, I'm lost if I try to do that with another project, like if I
want to test a patch against wine or firefox. If you have a good
solution for that, I'd like to know!
-Mike
- build system rules & algorithms, Mike Shal, 2009/06/09
- Re: build system rules & algorithms, John Calcote, 2009/06/10
- Re: build system rules & algorithms, Paul Smith, 2009/06/10
- Re: build system rules & algorithms, Paul Smith, 2009/06/18
- Re: build system rules & algorithms, Mike Shal, 2009/06/19
- Re: build system rules & algorithms, Paul Smith, 2009/06/19
- Re: build system rules & algorithms, Mike Shal, 2009/06/19
Re: build system rules & algorithms, Mike Shal, 2009/06/10