make: load Directive

 
 12.2.1 The 'load' Directive
 ---------------------------
 
 Objects are loaded into GNU 'make' by placing the 'load' directive into
 your makefile.  The syntax of the 'load' directive is as follows:
 
      load OBJECT-FILE ...
 
    or:
 
      load OBJECT-FILE(SYMBOL-NAME) ...
 
    The file OBJECT-FILE is dynamically loaded by GNU 'make'.  If
 OBJECT-FILE does not include a directory path then it is first looked
 for in the current directory.  If it is not found there, or a directory
 path is included, then system-specific paths will be searched.  If the
 load fails for any reason, 'make' will print a message and exit.
 
    If the load succeeds 'make' will invoke an initializing function.
 
    If SYMBOL-NAME is provided, it will be used as the name of the
 initializing function.
 
    If no SYMBOL-NAME is provided, the initializing function name is
 created by taking the base file name of OBJECT-FILE, up to the first
 character which is not a valid symbol name character (alphanumerics and
 underscores are valid symbol name characters).  To this prefix will be
 appended the suffix '_gmk_setup'.
 
    More than one object file may be loaded with a single 'load'
 directive, and both forms of 'load' arguments may be used in the same
 directive.
 
    The initializing function will be provided the file name and line
 number of the invocation of the 'load' operation.  It should return a
 value of type 'int', which must be '0' on failure and non-'0' on
 success.  If the return value is '-1', then GNU make will _not_ attempt
 to rebuild the object file (SeeHow Loaded Objects Are Remade
 Remaking Loaded Objects.).
 
    For example:
 
      load ../mk_funcs.so
 
    will load the dynamic object '../mk_funcs.so'.  After the object is
 loaded, 'make' will invoke the function (assumed to be defined by the
 shared object) 'mk_funcs_gmk_setup'.
 
    On the other hand:
 
      load ../mk_funcs.so(init_mk_func)
 
    will load the dynamic object '../mk_funcs.so'.  After the object is
 loaded, 'make' will invoke the function 'init_mk_func'.
 
    Regardless of how many times an object file appears in a 'load'
 directive, it will only be loaded (and its setup function will only be
 invoked) once.
 
    After an object has been successfully loaded, its file name is
 appended to the '.LOADED' variable.
 
    If you would prefer that failure to load a dynamic object not be
 reported as an error, you can use the '-load' directive instead of
 'load'.  GNU 'make' will not fail and no message will be generated if an
 object fails to load.  The failed object is not added to the '.LOADED'
 variable, which can then be consulted to determine if the load was
 successful.