In adding cross-build description patch, I added the method to build doc on other platforms. However, some programs installed in /usr/bin/ may need to be added to /usr/local/bin/ because some package managers such as dnf and apt instsall in /usr/bin/. If this patch makes Makefile complicated, there is another solution to specify only the command. (for example, PYTHON_CMD=python3 instead of PYTHON_CMD=/usr/bin/local/python3)
Details
- Reviewers
ygy dbaio carlavilla - Group Reviewers
docs
Works fine on macOS and FreeBSD. It does not may on Linux, but it is the problem of distro. (see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255804)
Diff Detail
- Repository
- R9 FreeBSD doc repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
I object to the platform-dependent changes to the Makefiles. It sounds unnecessary and error-prone to me. For example, different flavors of GNU/Linux could have different executable locations, and we can't and shouldn't attempt to support all of them.
I understand that it would cause some errors. But I have a question: Why do we have to specify the location of programs?
I don't think this question is relevant to this revision which is trying to support multiple platforms officially. Worst case, we just override the commands when running make.
The proper way to solve this would be to use /usr/bin/env $BINARY because if that doesn't work, the OS that the tree is being built on isn't POSIX-compliant at all.
However, there's an issue that as I see it is unsolvable, which is that as it is the Makefiles contains features that are exclusively found in BSD make - so it's not really possible to make it portable just by waving the right hashbang path at it.
I considered your ideas, and concluded that cross-platform build will cause confusion because of the differences between BSD make and GNU make. I'm closing this revision.