Hi Paul, > This is a real issue for me because I've always provided a shell > script, build.sh, which can be used to bootstrap an instance of make if > the user doesn't already have one.
The information about bootstrapping [1][2] gives a different picture of bootstrapping. For many packages, nowadays, bootstrapping involves multiple steps: - To bootstrap GCC 9.x, one starts with TinyCC, which is used to build GCC 2.95.x, which builds GCC 4.7.4 (including C++ support!), with which one can then build GCC 9.x. [3] - To bootstrap SBCL, one starts with GNU clisp, which can be used to build SBCL. [2] That is, you don't need a shell script that builds GNU make. People can also have a shell script that builds another 'make' implementation (a BSD 'make', or GNU make 4.2.1), and with this 'make' binary you can then build GNU make, including all possible Automake conditionals, gnulib generated files and so on. Yes, it's more effort for the Guix people to build something in 2 steps rather than in 1 step. But it's surmountable. Bruno [1] https://guix.gnu.org/manual/en/html_node/Bootstrapping.html [2] https://bootstrappable.org/best-practises.html [3] https://bootstrappable.org/projects/mes.html