$Id: master.html,v 1.3 1997/07/15 00:07:44 ksb Exp $
Starting from the middle
If we were to compare the Makefiles from two UNIX platforms
we might find a very small list of differences.
For example we would surely find that the -Dtype
in the CDEFS macro was different (because it is by design).
Another place we might find a difference is the loader library
options (-lcurses vs -lterminfo) to support the terminal input/output
available on the platform.
Looking at a Makefile in a new light
If we could contain those differences to a few lines we could use
a macro processor (like m4 or cpp) to unify all platform Makefiles
into a common "master" Makefile.
In fact we do just that with m4 and call that master makefile "Make.host".
See m4 usage for a complete description of the
m4 culture we need.
Moving data from a central machine to the platform
The generic rdist(1) utility from Berkeley (shipped with 4.3BSD)
transmits file from a central host to client platforms quite
well.
To enhance it to meet our needs we make three additions.
A list of hosts which have source
A trip though m4, our favorite processor
Optional trips through m4 for our friends
A new Makefile to control this process
The original "Makefile" is now "Make.host" so a new make(1) control
file is constructed to oversee the distribution and construction process.
A new look at RCS
The master source directory is really the best place to keep our source.
There are some parts of the leverage we've build but not used.
Either they only appear on the command line, or they have just
not come up yet.
The ${INTO} macro we pass to rdist
The HOSTS options to distrib
Additional macros in distrib.cf
Next Page