[comp.windows.x] Library Makefiles for X, Motif

tom@eng.umd.edu (Tom Riddle) (08/03/90)

	Is there a reason why the X and Motif library Makefiles do not take
advantage of the library target rule of make?  Currently in mit/lib/* and
motif/lib/* there are two copies of each object file (the .o file and a copy of
it in the .a file), whereas with the library target rule there would only need
to be one.  This may seem like a minor point since most people probably do a 
make clean after everthing is installed, but regardless, I think this can be 
improved.  If there is a good reason why things should remain the way they are
please let me know, otherwise, I have modified makedepend, defined new macros 
for imake, and modified the Imakefiles for Motif so that the resulting Makefiles
use the library target rule.  It would not require much effort to do the same 
thing for the X libraries and would result in a smaller demand for disk space 
during the build process.

For those unfimilar with the library target rule, it has the following syntax:

libname.a: libname.a(obj1.o) libname.a(obj2.o) ... libname.a(objn.o)
	ranlib libname.a

And the dependancies look like this:

libname.a(obj1.o): ...
libname.a(obj2.o): ...
   .
   .
   .
libname.a(objn.o): ...

	If anyone is interested I can e-mail or post a patch for makedepend,
the new macros for imake, and the modified Motif Imakefiles.


Tom Riddle
CALCE Center
University of Maryland, College Park
(301) 454-7705
email: tom@eng.umd.edu

mouse@LARRY.MCRCIM.MCGILL.EDU (08/10/90)

> Is there a reason why the X and Motif library Makefiles do not take
> advantage of the library target rule of make?

> [explanation, giving examples of the libname.a(filename.o) syntax]

I don't know why; all I can do is speculate.

One possible reason is that some implementations of this syntax are
broken.  It was long ago, and I do not recall more details than what I
can give here, but there was at least one version of make whose
handling of that syntax simply didn't work right.  I can't recall
*what* didn't work; it was more work than it was worth to try to figure
it all out.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu