Skip to content

Refreshing an individual import does not work (and makes no sense) when using merged imports #1317

@gouttegd

Description

@gouttegd

When not using merged imports, every individual import module M can be explicitly refreshed on its own by calling make refresh-M. This is the corresponding pattern rule:

.PHONY: refresh-%
refresh-%:
        $(MAKE) --assume-new=$(SRC) --assume-new=$(IMPORTDIR)/$*_terms.txt \
                IMP=true IMP_LARGE=true MIR=true PAT=false $(IMPORTDIR)/$*_import.owl

which merely invokes the $(IMPORTDIR)/$*_import.owl target to remake the M_import.owl module.

When using merged imports, the above rule is still present in the Makefile, but it cannot possibly work since there is no longer a rule to make the M_import.owl module.

This can’t be fixed. By definition, when using merged imports, either all the imports are refreshed, or none of them are. Refreshing a single import simply does not make any sense in the context of merged imports.

So when using merged imports, either:

(A) the refresh-% rule should not be included in the Makefile, so as not to give the user the false impression that they can still refresh one import module at a time;

(B) the rule should trigger a refresh of the entire merged import module (so, make refresh-M would do the same thing as make refresh-imports) – this way the rule would still do what it is supposed to do: it would still refresh the requested import, except that now it would do that by refreshing all imports.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions