Remove dependency of dmd on .clone #1049
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
cc @MartinNowak
Sadly the dependency of
dmd
on.clone
does not work out.Consider a user who wants to build
dlang.org
and has a preexistingdmd
created by other means (i.e. there's no../dmd/.cloned
directory) and built properly. Then, trying to make dlang.org will follow an unpleasant sequence of events:../dmd/.cloned
so it will execute the rule for it. The rule usestouch
to create a../dmd/.cloned
that is NEWER than the prebuilt../dmd/src/dmd
.../dmd/src/dmd
. The rule will issuemake
indmd
's directory, which in turn requires that either dmd had been installed so it's usable for bootstrapping, or AUTO_BOOTSTRAP=1 is used in the command line (which isn't).It's nice to have the build of dlang.org attempt to build the entire world of dependencies needed for it to work, but having it require boostrapping paraphernalia etc. seems excessive, particularly when
../dmd/src/dmd
is present and functional. So this PR removes the dependency on.cloned
. The build will be attempted only if../dmd/src/dmd
is actually absent.