How do you install Make from source?

5,187

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 doesn't show any revolutionary changes.

Share:
5,187

Related videos on Youtube

NewYorkSup
Author by

NewYorkSup

Updated on September 18, 2022

Comments

  • NewYorkSup
    NewYorkSup almost 2 years

    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?

    • GracefulRestart
      GracefulRestart about 4 years
      Did the ./configure command complete successfully without errors? I ran the same commands that you posted on a RHEL 8 machine and it compiled and installed make without issues.
    • schily
      schily about 4 years
      That version of gmake is not recommended. It fixes a 22 year old bug with handling include statements 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.
    • vonbrand
      vonbrand about 4 years
      @schily, is that "22 year old bug" present in the Red Hat patched version of make?
    • schily
      schily about 4 years
      @vonbrand Since this is a conceptional bug based on a wrong order of evaluation dunring processing of include statements, 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.x only does this after reading all primary makefiles, which is too late and causes incorrect warnings. In 1998, I explained my correctly working concept for smake to the gmake maintainer to no avail.
  • NewYorkSup
    NewYorkSup about 4 years
    When I run the "make" command I get "command not found"
  • NewYorkSup
    NewYorkSup about 4 years
    The ./configure --prefix=/usr/local command resulted in this message "config.status: error: in `/usr/bin/make-4.3': config.status: error: Something went wrong bootstrapping makefile fragments for automatic dependency tracking. Try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). "
  • NewYorkSup
    NewYorkSup about 4 years
    No version of make seems to work. I tried 4.3, and I have tried several other versions too. None work. Which version should I try? I am reproducing failure on Debian, Red Hat and SUSE servers. I am curious why other people are not having difficulty.
  • iRynoh
    iRynoh over 3 years
    @NewYorkSup So you are saying that he should run "make" to compile "make"? Doesn't make much sense, does it. Catch 22. How to install make without already having make?