jal@oliveb.UUCP (05/30/86)
Thanks for all the mailed replies I received for my query. It was my first posting to the net, so I now realise I should have benn more explicit with the information provided. Also I meant 'library(module.o)' not 'library(module)', which, as one person pointed out (sorry about that, Guy!), will have make recompiling everytime. Our setup is such that we do not keep the '.o's outside the library. Once put in the library they are removed. Hence the library can only depend on the sources. Nor did we want to remake the library each time a source was modified. One respondent (sorry, I don't have the name handy) sugested make was broken which seems the most likely answer. However, a careful reading of the manual entry finally provided a fairly clean solution. The macro '$?' corresponds to the list of prerequisites which are out of date with respect to the target. This can be used to compile just the modified sources. An example is the best demonstration: SRCS = a.c b.c libj.a : $(SRCS) cc -c $? ar rv libj.a *.o rm *.o Note that '$?' leaves the suffixes appended. This quite acceptable since we don't have any '.o's sitting around. However, it is fairly simple to pass the list off to a shell script and process the files there (remember basename only takes one string to be stripped and we may have more than one in the list). Hope this has been of use to somebody. Once again, thanks for the replies. Jayen. -------------------------------------------------------------------------------