built-in predicate

# `logtalk_make/0`

## Description

    logtalk_make

Reloads all Logtalk source files that have been modified since the time they were last loaded. Only source files loaded using the logtalk_load/1 and logtalk_load/2 predicates are reloaded. Non-modified files will also be reloaded when a previous attempt to load them failed or when there is a change to the compilation mode (i.e., when the files were loaded without explicit debug or optimize flags and the default values of these flags changed after loading; no check is made, however, for other implicit compiler flags that may have changed since loading). When an included file is modified, this predicate reloads its main file (i.e., the file that contains the include/1 directive).

Depending on the backend Prolog compiler, the shortcut `{*}` may be used as an alternative. Check the adapter files for the availability of the shortcut as it is not part of the language.

Warning

Only use the `{*}` shortcut at the top-level interpreter and never in source files.

This predicate can be extended by the user by defining clauses for the logtalk_make_target_action/1 multifile and dynamic hook predicate using the argument `all`. The additional user defined actions are run after the default one.

## Modes and number of proofs

    logtalk_make - one

## Errors

(none)

## Examples

    % reload all files modified since last loaded:
    | ?- logtalk_make.

See also

logtalk_compile/1, logtalk_compile/2, logtalk_load/1, logtalk_load/2, logtalk_make/1, logtalk_make_target_action/1