Make problem (archives)

Gene Dykes gdykes at batcomputer.TN.CORNELL.EDU
Fri Feb 21 12:18:28 AEST 1986


(My apologies if this was seen before - I was told that my previous
posting never got out...)

In BSD4.2 and BSD4.3, I have the following problem:
In the manual for make, there are the following sentences...

     Two special forms of a name are recognized.  A name like
     a(b) means the file named b stored in the archive named a.
	...

Now, suppose I have a Makefile that looks like this:

main: main.o /usr/lib/libcurses.a(scroll.o)
	cc main.o -lcurses

In other words I want main to depend on the binary scroll.o which is in
the archive /usr/lib/libcurses.a

What I get is the following message:

Make:  Don't know how to make /usr/lib/libcurses.a(scroll.o).  Stop.

What this means to me is that make may very well RECOGNIZE such a construct
(since it gives a different message if the archive doesn't exist),
but it has no idea what to DO about it.  Since the archived binary is much
older than main there should be no reason to remake it.

It seems to me it would be very useful to have makefiles depending on
archived binaries, but this doesn't work.   I've been reading this and related
newsgroups for years now and I've never heard anybody else complain about this.
This means either that I am an idiot and don't understand the manual (please
inform me gently), or that this bug has never been found before (hard to 
believe), or that nobody cares (harder to believe).  Other possibilities
undoubtedly exist.

Thanks for any suggestions or comments.

-- 
Gene Dykes, 120 Rand Hall, Cornell U., Ithaca, NY 14853 (607)256-4880
{ihnp4,decvax,allegra,vax135}!cornell!batcomputer!gdykes



More information about the Comp.unix mailing list