[news.software.b] Configuring And Building C News

bart@videovax.tv.tek.com (Bart Massey) (02/01/90)

I hesitate to even comment on such an obviously emotionally-charged subject
:-), but since the *only* reason I am not currently using C News is the
amount of hassle I had trying to set it up, test it, and keep it up-to-date,
I thought I might make one humble suggestion...

The X11 people have a configuration system based on a makefile generator
called 'imake', which is distributed with the X11R4 stuff.  This system is
already fairly general and *very* portable, and does most of what most
people seem to want for configuring C News.  I wonder if it wouldn't be
worthwhile for Henry and Geoff to use 'imake' as well?

					Bart Massey
					..tektronix!videovax.tv.tek.com!bart

moraes@cs.toronto.edu (Mark Moraes) (02/01/90)

bart@videovax.tv.tek.com (Bart Massey) writes:
>The X11 people have a configuration system based on a makefile generator
>called 'imake', which is distributed with the X11R4 stuff.  This system is
>already fairly general and *very* portable, and does most of what most
>people seem to want for configuring C News.  I wonder if it wouldn't be
>worthwhile for Henry and Geoff to use 'imake' as well?

[For those who aren't keeping up with, or are studiously avoiding the
 X world, Imake is a preprocessor that pushes an Imakefile through cpp
 to generate a Makefile -- with some smoke and mirrors to avoid #
 comments in Makefiles from getting in the way]

Imake is a reasonable solution to X's release engineering problems - a
very large source tree (R4 weighs in at 45M for mit software, 100M for
user contributed software), many people from different places
contributing code, and living on the leading edge of OS features --
networking, sockets, er streams, shared libraries whatever.  For C
News, which is a little over 1M, Imake is probably overkill.
X.V11R4/mit/config is 179K.  So it would raise the C News distribution
by 15%.

Imake is actually portable to a smaller class of systems than C News
is, I suspect.  The targets for X are a bit different from the targets
for C News; people will be putting up C News on a lot of hardware that
they won't even dream of bringing X near -- R4 config is configured
for apollo, att, bsd, cray, hp, ibm, macII, pegasus, sgi, sony, sun,
ultrix.  (Trying to bring up R3 on a system that wasn't listed in the
supported list was wild fun, I assure you) Similarly, the "sun" config
sort of assumed SunOS4.0 -- we had a few things go wrong because we
run SunOS3.5 on many machines.  (So we can't afford to throw away our
3/50s...)  People who think X is easier to install than C news haven't
been following comp.windows.x over the last month...

Imake may have really come of age only in R4 - there were a lot of
things that made people unhappy in R3's imake setup.  C News was
released before X11R4 came out.  Changing C News to use Imakefiles
wouldn't be too easy -- making the build process easier probably rates
slightly lower on Henry's list of things to do to C News than some
other stuff (like more performance improvements, yay!)

Imake has a learning curve - people who haven't seen it before have
been known to describe it as steep.  (They've also been known to
describe it more colorfully than that) Since imake involves
interactions between cpp, make, and imake itself, the number of places
things can go wrong increase a bit.  Some versions of make get really
upset when confronted with Imake-generated Makefiles.  For X, that
possible price is well worth the control it brings to building
release.  For C News, it may not break even. 

C News has a mere 24 makefiles -- fixing them with sed, subst, or some
editor is feasible.  X has more than 24 makefiles.  A lot more.  (Our
disks object to me running a find to count them...)  X badly needs
imake (actually, it needs more than imake, but that's another matter)
Running build takes a lot less time than configuring your site.def if
you want programs to go places other than /usr/ (We prefer not to touch
areas that OS upgrades will devastate and create different hierarchies
and partitions for local software)

henry@utzoo.uucp (Henry Spencer) (02/02/90)

In article <90Feb1.050823est.2260@neat.cs.toronto.edu> moraes@cs.toronto.edu (Mark Moraes) writes:
>... Some versions of make get really
>upset when confronted with Imake-generated Makefiles.  For X, that
>possible price is well worth the control it brings to building
>release.  For C News, it may not break even. 

Between possible problems with different versions of make -- something
we've already had fun with, notably the discovery that many AT&T makes
violate the SVID (!) -- and the relatively simple nature of the problem
for us, I agree with Mark:  Imake is considerable overkill.  I think
we can get the same result, making the makefiles easier to use, with
less complexity.  It probably won't happen right away.  It's not my
highest priority right now, and time is scarce.
-- 
1972: Saturn V #15 flight-ready|     Henry Spencer at U of Toronto Zoology
1990: birds nesting in engines | uunet!attcan!utzoo!henry henry@zoo.toronto.edu