Skip to content

Manual makefile issues #295

Closed
Closed
@awvwgk

Description

@awvwgk

Finally arrived at testing the manual Makefile of stdlib and found a few issues I want to raise.

First, the Makefile does not run in parallel due to missing dependencies between certain object files. Apparently the parallel build with the manual Makefile is not tested in the CI, therefore this issue has not popped up so far. Adding the missing dependencies does resolve the parallel build issue (see #294).

Second, the clean rule does not allow to remove all the build artifacts from the source tree, the fypp preprocessed files are not captured by the remove command in the clean rule. This means I have to manually remove the fypp preprocessed files in case I want to change the maximum array rank for the build, which is annoying. Related to this, the SRC variable interlaces build artifacts (fypp preprocessed files) and actual source files.

Finally, I found the explicit rules regarding the preprocessing confusing, the set is generated implicitly by the %.f90: %.fypp rule already and the given list seems to be incomplete as well (there are other subtle issues to this rule, which makes it dangerous without a scope). Interestingly their is no dependency from the common.fypp to any fypp preprocessed file which includes the file, which means there is no rebuild triggered for changes in the global fypp header.

In summary, the manual Makefile is currently pretty fragile at the moment and due to the fixed compiler name in also very limited in scope.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions