.. _library_make:

``make``
========

Logtalk provides a make tool supporting several targets using the
``logtalk_make/0-1`` built-in predicates. Top-level shortcuts for the
targets are also provided.

API documentation
-----------------

To consult the documentation of the ``logtalk_make/0-1`` built-in
predicates, open in a web browser the links:

- `../refman/predicates/logtalk_make_0.html <../refman/predicates/logtalk_make_0.html>`__
- `../refman/predicates/logtalk_make_1.html <../refman/predicates/logtalk_make_1.html>`__

There is also a user-defined hook predicate that supports defining
additional actions for the make targets (e.g., running tests
automatically on make check or regenerating API documentation on make
documentation):

- `../refman/predicates/logtalk_make_target_action_1.html <../refman/predicates/logtalk_make_target_action_1.html>`__

Help with warnings
------------------

Load the ``tutor`` tool to get help with selected warnings printed by
the ``make`` tool.

Known issues
------------

The implementation of the ``logtalk_make/0-1`` predicates for the target
``all`` tries to avoid or minimize compilation warnings due to
out-of-order loading of modified source files by performing a file
topological sort based on the dependencies in the previous versions of
the files. But it's always possible that the new versions of the files
bring changes to those dependencies and thus result in compilation
warnings that could possibly be avoided with a different loading order.
