Browse Prior Art Database

Method for Generating Library Member Dependencies with Make

IP.com Disclosure Number: IPCOM000117185D
Original Publication Date: 1996-Jan-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 80K

Publishing Venue

IBM

Related People

Chandler, RM: AUTHOR [+3]

Abstract

Disclosed is a method that provides a means of creating dynamic make description files that specify target-dependency relationships between the executables being built and the specific library members needed for proper binding.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Method for Generating Library Member Dependencies with Make

      Disclosed is a method that provides a means of creating dynamic
make description files that specify target-dependency relationships
between the executables being built and the specific library members
needed for proper binding.

      The linker utility "ld" is used to combine object code from
multiple source modules (including modules archived into libraries)
into a single executable.  The "-m" option can be added to "ld"
invocations to cause supplemental library member usage information to
be output in the form:
  export/power/usr/lib/foo.a.member1.o]
  obj/power/bos/usr/ccs/lib/bar.a.member2.o]

This output can then be formatted into:
  myprog: ${maketop}../../export/power/usr/lib/foo.a(strcpy.0)
  myprog: ${maketop}../bos/usr/ocs/lib/bar.a(memcpy.O) where myprog
is the name of the executable being created.  The output is then in
such a form that can be inputed by the utility "make" as an auxiliary
make description file.  Once created, this dynamic makefile is read
in by make each time it runs.  "make" is instructed to rebuild myprog
anytime either library member changes, but not if any other member of
either library is changed.  Each time an executable is recreated, its
dynamic dependency file will be regenerated to reflect any possible
changes.

      Currently most large software applications and operating
systems use a utility called "make" to control how and when
individual software modules are created during the software
development process.  The rules for creating individual modules are
listed within make description files (commonly called makefiles) and
are triggered by software source changes.  Most executables are
"linked" with system and application specific libraries to provide
additional function to the program being created.  However, a library
most often contains many binary modules, with only a few actually
needed by any one executable.  The current paradigm is to code
dependencies for librarie...