summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-05-14 22:53:42 -0400
committerPaul Smith <psmith@gnu.org>2013-05-14 22:53:42 -0400
commitb7041cbb385e9a35a6ba2da69bf9cffbce678eee (patch)
tree07578812e5d846bc943a114db1c3f37a99079982 /doc
parent437d162d3f4a7f1aa0609c5a515f4bd3c40d2a2f (diff)
downloadmake-b7041cbb385e9a35a6ba2da69bf9cffbce678eee.tar.gz
Add requirement for plugin_is_GPL_compatible symbol in loaded objects.
Diffstat (limited to 'doc')
-rw-r--r--doc/make.texi20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/make.texi b/doc/make.texi
index e3e5135d..d1ceefb5 100644
--- a/doc/make.texi
+++ b/doc/make.texi
@@ -11058,6 +11058,24 @@ functions may make use of the @code{gmk_expand} and @code{gmk_eval}
routines to perform their tasks, then optionally return a string as
the result of the function expansion.
+@subsubheading Loaded Object Licensing
+@cindex loaded object licensing
+@cindex plugin_is_GPL_compatible
+
+Every dynamic extension should define the global symbol
+@code{plugin_is_GPL_compatible} to assert that it has been licensed
+under a GPL-compatible license. If this symbol does not exist,
+@code{make} emits a fatal error and exits when it tries to load your
+extension.
+
+The declared type of the symbol should be @code{int}. It does not need
+to be in any allocated section, though. The code merely asserts that
+the symbol exists in the global scope. Something like this is enough:
+
+@example
+int plugin_is_GPL_compatible;
+@end example
+
@subsubheading Data Structures
@table @code
@@ -11185,6 +11203,8 @@ function in a file @file{mk_temp.c}:
#include <gnumake.h>
+int plugin_is_GPL_compatible;
+
char *
gen_tmpfile(const char *nm, int argc, char **argv)
@{