summaryrefslogtreecommitdiff
path: root/devdocs/gnu_make/loading-objects.html
blob: 0aadc973741aff7c24f08f5d3a3e4062fb43579a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  <h1 class="section">Loading Dynamic Objects</h1>    <table class="cartouche" border="1"><tr><td> <blockquote> <p><b>Warning:</b> The <code>load</code> directive and extension capability is considered a “technology preview” in this release of GNU make. We encourage you to experiment with this feature and we appreciate any feedback on it. However we cannot guarantee to maintain backward-compatibility in the next release. Consider using GNU Guile instead for extending GNU make (see <a href="guile-function">The <code>guile</code> Function</a>). </p>
</blockquote> </td></tr></table> <p>Many operating systems provide a facility for dynamically loading compiled objects. If your system provides this facility, GNU <code>make</code> can make use of it to load dynamic objects at runtime, providing new capabilities which may then be invoked by your makefile. </p> <p>The <code>load</code> directive is used to load a dynamic object. Once the object is loaded, a “setup” function will be invoked to allow the object to initialize itself and register new facilities with GNU <code>make</code>. A dynamic object might include new <code>make</code> functions, for example, and the “setup” function would register them with GNU <code>make</code>’s function handling system. </p> <table class="menu" border="0" cellspacing="0"> <tr>
<td align="left" valign="top">• <a href="load-directive" accesskey="1">load Directive</a>
</td>
<td> </td>
<td align="left" valign="top">Loading dynamic objects as extensions. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="remaking-loaded-objects" accesskey="2">Remaking Loaded Objects</a>
</td>
<td> </td>
<td align="left" valign="top">How loaded objects get remade. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="loaded-object-api" accesskey="3">Loaded Object API</a>
</td>
<td> </td>
<td align="left" valign="top">Programmatic interface for loaded objects. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="loaded-object-example" accesskey="4">Loaded Object Example</a>
</td>
<td> </td>
<td align="left" valign="top">Example of a loaded object </td>
</tr> </table><div class="_attribution">
  <p class="_attribution-p">
    Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc. <br>Licensed under the GNU Free Documentation License.<br>
    <a href="https://www.gnu.org/software/make/manual/html_node/Loading-Objects.html" class="_attribution-link">https://www.gnu.org/software/make/manual/html_node/Loading-Objects.html</a>
  </p>
</div>