7

The commands make and make install used to install a program from an extracted tar ball never work for some reason.

The make command gives me the error:

  make: *** No targets specified and no makefile found.  Stop.

and the make install command gives me the error:

  make: *** No rule to make target `install'.  Stop.

Why are these commands not executing? What should I do to solve this issue?

closed as unclear what you're asking by fkraiem, Pilot6, Eliah Kagan, Zanna, muru Aug 28 '17 at 1:53

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • And how are you running those commands? Give an example, for instance, cd foo/, ./make .... – LnxSlck Aug 31 '12 at 18:59
  • no just make and make install – Nirmik Aug 31 '12 at 19:08
  • 1
    @Nirmik - please edit your question with all of the above and clean up by deleting your comments. Thanks. – fossfreedom Aug 31 '12 at 19:38
  • 1
    what's the output of configure? – steabert Aug 31 '12 at 19:39
  • 1
    It's not possible to reasonably answer this given the information provided. When make has no targets, either ./configure failed and should've shown an error, or the software isn't built by running ./configure then make (not everything is), or the next step after ./configure is something besides make (rare but possible). For a systemic problem, something is presumably broken in the system, but since you haven't given most of the information people have requested, there's no way to tell. At minimum full output of all commands during at least one build attempt would likely be needed. – Eliah Kagan Aug 27 '17 at 15:58
9

I think the problem is that you haven't got the dependencies for the program in question, as even though you have run ./configure there are just the files called makefile.in and makefile.am, whereas there should be a a file called Makefile without an extension.

If you run ./configure without the dependencies, it does not generate a makefile and then running make afterwards gives exactly the error you are getting:

make: *** No targets specified and no makefile found. Stop.

Therefore, download the build dependencies for your program by looking at the readme included in the download or if the program source is in the repositories and you have enabled the source repositories, run

sudo apt-get build-dep program

After obtaining the dependencies, run ./configure again and now make and make install should work as there will be a proper Makefile generated.

(You may also need to install such packages as build-essential which contains essential compiling tools)

2

Sometimes one needs to run autoreconf to generate the configure script, so use:

autoreconf -ivf
0

Maybe when you build you do that as a user and then you do make install as root but as root you are in another directory.

Solution in this case: as root change directory to your build directory, then: make install

Worked for me in Debian Stretch.

Not the answer you're looking for? Browse other questions tagged or ask your own question.