summaryrefslogtreecommitdiff
path: root/make.texinfo
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>1999-02-22 07:23:30 +0000
committerPaul Smith <psmith@gnu.org>1999-02-22 07:23:30 +0000
commita66668aabccfbae3e1f22eaeb897b9c7a1e02733 (patch)
treefd4454775a6dcb2d0222f3e65c04f2011547b4ea /make.texinfo
parent84f38c9c6f56c7056a1d1a5abf9151bf15760151 (diff)
downloadgunmake-a66668aabccfbae3e1f22eaeb897b9c7a1e02733.tar.gz
* New feature: .LIBPATTERNS controls the way -lfoo dependencies are expanded.
* A few tweaks to the system glob test, after trying it on a system where it's true. * Installed patches to archive handling for AIX 4.3 big archives. * Fix a memory stomp in target-specific variables. * Fix a memory leak in foreach functions.
Diffstat (limited to 'make.texinfo')
-rw-r--r--make.texinfo28
1 files changed, 25 insertions, 3 deletions
diff --git a/make.texinfo b/make.texinfo
index e7b3bbf..246707c 100644
--- a/make.texinfo
+++ b/make.texinfo
@@ -1971,16 +1971,19 @@ directory search with no extra effort.
@cindex @code{VPATH}, and link libraries
@cindex search path for dependencies (@code{VPATH}), and link libraries
@cindex @code{-l} (library search)
+@cindex link libraries, patterns matching
+@cindex @code{.LIBPATTERNS}, and link libraries
+@vindex .LIBPATTERNS
Directory search applies in a special way to libraries used with the
linker. This special feature comes into play when you write a dependency
whose name is of the form @samp{-l@var{name}}. (You can tell something
strange is going on here because the dependency is normally the name of a
-file, and the @emph{file name} of the library looks like
+file, and the @emph{file name} of a library generally looks like
@file{lib@var{name}.a}, not like @samp{-l@var{name}}.)@refill
When a dependency's name has the form @samp{-l@var{name}}, @code{make}
-handles it specially by searching for the file @file{lib@var{name}.a} in
+handles it specially by searching for the file @file{lib@var{name}.so} in
the current directory, in directories specified by matching @code{vpath}
search paths and the @code{VPATH} search path, and then in the
directories @file{/lib}, @file{/usr/lib}, and @file{@var{prefix}/lib}
@@ -1988,7 +1991,11 @@ directories @file{/lib}, @file{/usr/lib}, and @file{@var{prefix}/lib}
@code{make} behave as if @var{prefix} is defined to be the root of the
DJGPP installation tree).
-For example,
+If that file is not found, then the file @file{lib@var{name}.a} is
+searched for, in the same directories as above.
+
+For example, if there is a @file{/usr/lib/libcurses.a} library on your
+system (and no @file{/usr/lib/libcurses.so} file), then
@example
@group
@@ -2002,6 +2009,21 @@ would cause the command @samp{cc foo.c /usr/lib/libcurses.a -o foo} to
be executed when @file{foo} is older than @file{foo.c} or than
@file{/usr/lib/libcurses.a}.@refill
+Although the default set of files to be searched for is
+@file{lib@var{name}.so} and @file{lib@var{name}.a}, this is customizable
+via the @code{.LIBPATTERNS} variable. Each word in the value of this
+variable is a pattern string. When a dependency like
+@samp{-l@var{name}} is seen, @code{make} will replace the percent in
+each pattern in the list with @var{name} and perform the above directory
+searches using that library filename. If no library is found, the next
+word in the list will be used.
+
+The default value for @code{.LIBPATTERNS} is ``@samp{lib%.so lib%.a}'',
+which provides the default behavior described above.
+
+You can turn off link library expansion completely by setting this
+variable to an empty value.
+
@node Phony Targets, Force Targets, Directory Search, Rules
@section Phony Targets
@cindex phony targets