$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.

Local Leverage

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