[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: If the working directory does not have any makefile
From: |
Nicholas Mc Guire |
Subject: |
Re: If the working directory does not have any makefile |
Date: |
Mon, 16 Aug 2010 16:03:56 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Mon, 16 Aug 2010, ali hagigat wrote:
> Unlike make???les explicitly requested with ???-f??? or ???--file??? options,
> make is not certain that
> these make???les should exist. However, if a default make???le does not
> exist but can be created
> by running make rules, you probably want the rules to be run so that
> the make???le can be
> used.
> ------------------------------------------------------------------------------------------------------------------------------
>
> Suppose if i do not have any makefile at the working directory and i
> run `make` command.
> The manual says this command will create a makefile by running make
> rules! When there is no makefile, where will be those make rules?
>
> Meanwhile in my Fedora box I get the following error by running make
> without makefiles:
> "make: *** No targets specified and no makefile found. Stop."
>
there are built in rules defined that describe how to create a target
i.e. if you type
make hello
it will search for a large variety of files that make sees as suitable sources
to generate the target hello which is taken to be an executable.
If you want to see what endless list of possible sources for hello make will
try, run make with the -d option. i.e. make -d hello (whith no makefile in the
directory and no hello.*) you get something like.
make -d hello
...
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.c'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.cc'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.C'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.cpp'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.p'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.f'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.F'.
Trying pattern rule with stem `hello'.
Rejecting impossible implicit prerequisite `hello.r'.
...
if you how ever type make without giving it any target then make is unable to
apply any of its built-in rules and after searching for all possible names of
makefiles to extract a default target, consequently can't do anything and stops.
hofrat