From a668c520b2aa80aef8eb6c71c7507e48e111a2ae Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 6 May 2013 20:16:40 +0300 Subject: [PATCH] doc/make.texi (Loaded Object Example): Add a note about building shared objects on MS-Windows. --- ChangeLog | 5 +++++ doc/make.texi | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/ChangeLog b/ChangeLog index 75672b5b..0427aa9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-05-06 Eli Zaretskii + + * doc/make.texi (Loaded Object Example): Add a note about building + shared objects on MS-Windows. + 2013-05-05 Paul Smith * makeint.h (OUTPUT_SYNC_LINE, OUTPUT_SYNC_RECURSE): Rename diff --git a/doc/make.texi b/doc/make.texi index a75cf4f1..69de5b7d 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -11221,6 +11221,20 @@ mk_temp.so: mk_temp.c @end group @end example +On MS-Windows, due to peculiarities of how shared objects are +produced, the compiler needs to scan the @dfn{import library} produced +when building @code{make}, typically called +@file{libgnumake-@var{version}.dll.a}, where @var{version} is the +version of the load object API. So the recipe to produce a shared +object will look on Windows like this (assuming the API version is 1): + +@example +@group +mk_temp.dll: mk_temp.c + $(CC) -shared -o $@ $< -lgnumake-1 +@end group +@end example + Now when you run @code{make} you'll see something like: @example