Currently, the configure script and Makefile assume they're being executed with the work tree as the current working directory. This isn't always the case, and supporting out-of-tree building is very useful; it supports automation, and it supports development, in the cases where the make targets change what is/is not installed.
I updated configure to support this, but failed to realize the project is not using Automake, and once I had, didn't attempt to update the Makefile. Certain tools (from the tools/ directory) are hardcoded in the Makefile rules.
@nmschulte:
This isn't always the case
Out of curiosity. What is your use case where in-place builds doesn't work?
What is your use case where in-place builds doesn't work?
I am currently running up against issue npm/npm#10343, and I am building (and installing) multiple versions of node, and wishing to retain the build configuration/build. This is most trivially (and typically) done by building in a separate directory for each configuration.
@nmschulte Did you tag the wrong issue in your last comment? The one you've referenced is about updates to CONTRIBUTING.md
Did you tag the wrong issue in your last comment?
@sxa555, ah! I meant npm/npm#10343, indeed.
P.S. configure can now be called from anywhere:
https://github.com/nodejs/node/blob/9f4bf4ca43bc40f68a05c87081a9bae8736515b1/configure#L38-L39
and using ninja instead of make allows building from out of tree, so this is essentially implemented.
If you're looking to keep the labels accurate, I guess I should have clarified what I meant by out-of-tree: the artifacts of the build would be pwd local, so you could build different commits / patches to different build directories from the same source repository / directory.
Most helpful comment
@nmschulte Did you tag the wrong issue in your last comment? The one you've referenced is about updates to CONTRIBUTING.md