Laserfiche WebLink
This situation can be avoided by retaining multiple copies of libraries. Doing so, however, requires <br />that an additional level of software management be implemented (above file level revision control). <br />Additionally, decisions must be made regarding how many ?copies? of the source code to maintain <br />corresponding to the multiple library copies. Typically, the libraries associated with each prototype <br />would be saved on the system, in addition to the current working libraries. <br />The brute force method of storing the code (including libraries) for different prototypes is to save a <br />copy of all of the code associated with that prototype. The developer would then specify the dated <br />library for linking. The most refined method of storing the code for different prototypes is to store <br />one version of the code (under revision control) and implement procedures for extracting any <br />prototype from that code, based on the date associated with a prototype. A combination of these <br />extremes is probably the most desirable, for example, only saving the most current version of the <br />source code (under revision control, with all previous revisions stored in the same file), but saving <br />several versions of the libraries. Methods for regenerating a library based on a date would be useful <br />so that if a library were not saved on a particular date, it could be regenerated from the source code <br />under revision control. For example, by selecting June 30 as the date, all source code files that are <br />needed for the library would be extracted from revision control such that the revision date would be <br />the latest date up to and including June 30. <br />Developers can access a dated library by specifying the library date in the Imakefile or Makefile for <br />the code product that they are working on. Libraries can all be stored in the same directory, as <br />shown below: <br />/crdss/lib/libdmi30Jun94.a <br />libdmi04Jul94.a <br />libdmi30Jul94.a <br />libdmi.a <br />Note that UNIX library files typically begin with the prefix ? ? and end with the extension ? ?. <br />lib .a <br />The most current library version is the one that is not dated (this would be the library specified <br />during early development when no dated copies exist). Libraries can be linked in one of two ways: <br />(1)The library file can be linked by specifying the path to the file on the link line. For <br />example: <br />cc main.o sub1.o sub2.o /crdss/lib/libdmi.a <br />(2)The library file can be linked by using compiler options to specify the library location and <br />name. For example: <br />cc main.o sub1.o sub2.o -L/crdss/lib -ldmi <br />A dated library would most easily be specified by setting a date parameter in a makefile, as in the <br />following excerpt: <br /># makefile using dated libraries <br />CRDSS_HOME=/crdss <br />LIBDIR=$(CRDSS_HOME)/lib <br />DMILIB_DATE=30June94 <br />DMILIB=libdmi$(DMILIB_DATE).a <br />4 <br />A275 01.08.95 1.05-22 Malers <br />