
________________________________________________________________________

This file is part of Logtalk <https://logtalk.org/>  
SPDX-FileCopyrightText: 1998-2025 Paulo Moura <pmoura@logtalk.org>  
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
________________________________________________________________________


`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.
