Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ncar!acdpyr.ucar.edu!pack
From: pack@acdpyr.ucar.edu (Dan Packman)
Newsgroups: comp.unix.wizards
Subject: Makefiles for library maintenance
Keywords: make
Message-ID: <1108@ncar.ucar.edu>
Date: 9 Dec 88 18:37:49 GMT
Sender: news@ncar.ucar.edu
Reply-To: pack@acdpyr.ucar.edu (Dan Packman)
Organization: Atmospheric Chemistry Division/NCAR, Boulder CO
Lines: 25

The documentation for make (both ATT and UCB) says one can reference a
module in a library, that is a(b) means the element b in archive a.
One would hope that updates on this module would be calculated from the
date recorded in the archive a and not the date of the archive itself.
My tests of this seem to indicate that the archive date in incorrectly
used and not the element date.  I can, of course, extract all elements
in the archive with the appropriate date before invoking make and then
update the archive after exiting make via the following script:

#! /bin/csh
# Fool dumb makes to allow archive of object files
ar xo *.a
/bin/make $*
ar r *.a *.o
rm *.o

One could generalize to multiple local archives, but I'd rather find a
more elegant and faster solution within make (a newer version?).  For
large modules, the vast numbers of object files are getting in my way.
Do I have to redefine all suffixes?  Any help will be appreciated.

PS: This problem seems to exist in the vms make clone mms.
Dan Packman     NCAR                         INTERNET: pack@acdpyr.UCAR.EDU
(303) 497-1427  P.O. Box 3000                   CSNET: pack@ncar.CSNET
                Boulder, CO  80307       DECNET  SPAN: 9.367::PACK