fcm icon indicating copy to clipboard operation
fcm copied to clipboard

fcm make mirror continuation: build inheritance anormaly

Open matthewrmshin opened this issue 9 years ago • 0 comments

Consider an extract-build with inheritance.

The original make has extracted the following targets:

foo.f90
bar.f90
baz.f90

In its build, the user has explicitly excluded baz.f90 with a build.ns-excl statement.

In the current make, the user has written a new source file qux.f90, that requires baz.f90 for the build to work, so he removes exclusion with a new build.ns-excl statement, which should override the original statement.

In a one-stage extract-build, the current build obtains its sources from:

  • The inherited build - no baz.f90 because it was excluded.
  • The current extract - no baz.f90 because it is unchanged.
    • which sees the full source of the inherited extract - has baz.f90.

So, the current build is able to see baz.f90 via the extract step.

However, if we have a extract-mirror, then build in an alternate location, the current build will obtain its sources from:

  • The inherited build - no baz.f90 because it was excluded.
  • The source=extract statement - no baz.f90 because it is unchanged.

So, the current build is unable to see baz.f90, and so it fails.

The intention of the current logic is such that the current step only needs to walk one step to obtain the full source tree - by assuming that the immediate predecessors have all the knowledge required.

This assumption clearly does not work well in this case.

matthewrmshin avatar Nov 13 '15 15:11 matthewrmshin