[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: False circular dependencies
From: |
Paul D. Smith |
Subject: |
Re: False circular dependencies |
Date: |
Wed, 9 Apr 2003 14:12:19 -0400 |
%% Miguel Nicolau <address@hidden> writes:
mn> I have this strange problem with Make (tried both 3.79.1 and
mn> 3.80). I use include files without an extension, i.e. the
mn> "Genotype.cpp" file uses an include file called "Genotype".
mn> g++ -Wall -c main.cpp -o main.o
mn> make: Circular Genotype <- Genotype.o dependency dropped.
Make has a builtin rule that knows how to build programs (files with no
suffix) from a .o file.
You have a file "Genotype", with no suffix, so make looks for a
"Genotype.o" to see if that builtin rule matches, and so it does. But
since it's circular (Genotype.o -> Genotype -> Genotype.o -> Genotype -> ...)
it gives that error.
You need to remove the builtin rule, then the problem will go away; add
these lines to your makefile:
%: %.o
%: %.c
%: %.cpp
This will turn off those default rules.
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist