I have tried Make version 4.2 and 4.3 on Ubuntu 18.x, RHEL 8.x, and SUSE 15.x servers. But I get the same problem. I cannot use binary packages (e.g, yum, apt, or zypper commands).
I try to run these commands (but I have replaced 4.3 and with 4.2 as well), and it fails:
curl http://ftp.gnu.org/gnu/make/make-4.3.tar.gz > /tmp/make-4.3.tar.gz
sudo cp /tmp/make-4.3.tar.gz /usr/bin/
sudo cd /usr/bin
sudo tar -zxvf make-4.3.tar.gz
cd make-4.3
sudo ./configure
sudo sh build.sh
sudo ./make install
I see this:
make[3]: Leaving directory '/usr/bin/make-4.3/lib' make[2]: Leaving directory '/usr/bin/make-4.3/lib' make[1]: Leaving directory '/usr/bin/make-4.3/lib' Making install in po make[1]: Entering directory '/usr/bin/make-4.3/po' make[1]: * No rule to make target 'install'. Stop. make[1]: Leaving directory '/usr/bin/make-4.3/po' make: * [Makefile:1442: install-recursive] Error 1
What am I doing wrong?
To build GNU packages from source the dance is:
./configure --prefix=/usr/local # Or your preferred place
make
make install
The configure script queries your environment for all sorts of relevant details (compiler version, usability of various language characteristics, various libraries, functions that might carry different names, ...) and creates some header files from the result reflecting the required configuration. It also builds the Makefile. Running make by itself will fail, until you run configure there is no Makefile, and so no install target.
Why do you want that specific version of make? That one is a quite stable package, the
announcement
[1] doesn't show any revolutionary changes.
./configurecommand complete successfully without errors? I ran the same commands that you posted on a RHEL 8 machine and it compiled and installedmakewithout issues. - GracefulRestartgmakeis not recommended. It fixes a 22 year old bug with handlingincludestatements but it introduced a new worse bug because it starts parallel execution too early and has no concept to enforce a specific order for the actions in that phase. - schilyincludestatements, this cannot be patched. A make program needs to apply all already known rules to make include files just before the attempt is made to open the file.gmake-3.xonly does this after reading all primary makefiles, which is too late and causes incorrect warnings. In 1998, I explained my correctly working concept forsmaketo thegmakemaintainer to no avail. - schily