Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Jan 1995 14:35:41 -0500
From:      Garrett Wollman <wollman@halloran-eldar.lcs.mit.edu>
To:        asami@cs.berkeley.edu (Satoshi Asami)
Cc:        FreeBSD mailing-list <hackers@freebsd.org>
Subject:   Re: cvs commit: src/gnu/usr.bin/gdb/bfd sysdep.h
Message-ID:  <9501011935.AA08328@halloran-eldar.lcs.mit.edu>
In-Reply-To: <199501011139.DAA06394@silvia.HIP.Berkeley.EDU>
References:  <9501010147.AA20820@login.dknet.dk> <199501011139.DAA06394@silvia.HIP.Berkeley.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Sun, 1 Jan 1995 03:39:36 -0800, asami@cs.berkeley.edu (Satoshi Asami) said:

> I guess I might be entirely missing the rim and the backboard here,
> but is it possible to do it like the ports, i.e., just use gmake for
> GNU stuff?  Is it worth all the trouble to convert everything to
> bmake?

Yes.  In particular, it is worth al the trouble for ``core'' programs
to be completely integrated with our build system.  For most programs,
this is trivial:

	1) Read GNU's Makefile.in
	2) Write a set of pmake Makefiles that are one-tenth the size
	3) Type make cleandir && make depend all install
	4) Type make cleandir && make obj depend all install
	5) Import original sources
	6) Check out imported sources
	7) Delete inapplicable files
	8) Splat port that survived (1)-(4) onto the work directory
	9) cvs update   <<<<< THIS STEP IS REALLY IMPORTANT
	10) cvs commit

For simple programs, this takes all of half an hour, most of which is
spent examining the output of `configure' and writing the appropriate
Makefiles.  Even GCC, if it had been done right to begin with (sorry,
Paul, I know you tried), could have been done this way.

Upgrading then becomes the following EXTREMELY simple process:

	1) cvs import new version
	2) Type the cvs co -j command that cvs import suggests
	3) Fix any conflicts (should be minimal)
	4) Delete inapplicable files
	5) Test make
	6) cvs commit

which, for a moderately complex program like xntpd only takes half an
hour to perform.  This procedure is made somewhat difficult by the
presence of people like Julian Stacey who want all the source tree to
be perfect all the time (which is impossible because of the time lag
between (1) and (5)).

> We probably want gmake in the base distrib anyway, there are too many
> ports that need it.  

There are good arguments for including a POSIX-compliant `make'
program and renaming make(1) to something else.  This isn't one of
them.

-GAWollman

--
Garrett A. Wollman   | Shashish is simple, it's discreet, it's brief. ... 
wollman@lcs.mit.edu  | Shashish is the bonding of hearts in spite of distance.
Opinions not those of| It is a bond more powerful than absence.  We like people
MIT, LCS, ANA, or NSA| who like Shashish.  - Claude McKenzie + Florent Vollant



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9501011935.AA08328>