help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Make dependency check


From: Geraldin Arthy
Subject: Re: Make dependency check
Date: Tue, 21 Nov 2006 13:28:56 +0530


Hello Paul,
 
I can use the gcc dependency option but the problem is we will be using the same makefile for both linux as well as Solaris.And in Solaris for our code we use the CC compiler and not gcc.That is the reason why I have to definitely use the makedepend option.
 
Now I have modified my makefile according to what is given in the below link.
http://make.paulandlesley.org/autodep.html#norule
 
I can see now .P files created in the source directory like what is given below.I can also see
*.d.bak files about which I do not have any idea why these files are being generated.
 
 
total 192
-r--r--r--  1 geraldin users   736 2006-11-16 15:13 Makefile.rules
-r--r--r--  1 geraldin users  2901 2006-11-21 11:22 COvBucket.h
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvBucket.d.bak
-rw-r--r--  1 geraldin users  1540 2006-11-21 11:46 COvBucket.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvBucketManager.d.bak
-rw-r--r--  1 geraldin users  1963 2006-11-21 11:46 COvBucketManager.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvGlobalOverloadController.d.bak
-rw-r--r--  1 geraldin users  3043 2006-11-21 11:46 COvGlobalOverloadController.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvOverloadConfig.d.bak
-rw-r--r--  1 geraldin users 23171 2006-11-21 11:46 COvOverloadConfig.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvOverloadController.d.bak
-rw-r--r--  1 geraldin users  2304 2006-11-21 11:46 COvOverloadController.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvOverloadManager.d.bak
-rw-r--r--  1 geraldin users  3249 2006-11-21 11:46 COvOverloadManager.P
-rw-r--r--  1 geraldin users     0 2006-11-21 11:46 COvOverloadMsg.d.bak
-rw-r--r--  1 geraldin users  1827 2006-11-21 11:46 COvOverloadMsg.P
-r--r--r--  1 geraldin users  4826 2006-11-21 11:51 Makefile
 
 
For example when I see the COvBucket.P, I find the lines below.
COvBucket.o: COvBucket.h ../pdfcommon/src/PdfType.h
COvBucket.o: ../pdfcommon/src/CPdfObject.h ../pdfcommon/src/CPdfTrace.h
 
But when I modify the ../pdfcommon/src/CPdfTrace.h header file and give a make again it does not rebuild the dependencies.
 
Currently I'm testing makedepend on a linux machine.But we use the same makefile for Solaris also.
 
In my linux machine , makedepend utility is found under /usr/X11R6/bin.
 
If I give a make --version , the version is
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
 
And gcc version is
gcc (GCC) 3.3.3 (SuSE Linux)
Copyright (C) 2003 Free Software Foundation, Inc.
 
 
Could you please tell me what is wrong.??
 
 
Thanks in advance,
GA

On 11/20/06, Paul D. Smith <address@hidden> wrote:
On Monday, 20 November, Geraldin Arthy (address@hidden ) wrote:

> $(OBJS):$(OUTPUT_DIR)/%.o: %.cxx
>         @makedepend -f - $< | sed 's,($*.o)[ :]*(.*),$@ : $$(wildcard 2)n1 :
> 2,g' > $*.d

That sed command looks very wrong to me.  Shouldn't you have backslashes
before the "2" and "1"; aren't you trying to reference the () ?

You should look at what gets generated by this command and see if it makes any
sense.  In any event, you should provide a sample output of this command when
you ask for help (use the mailing list please).  The entire problem here is
that makedepend is not generating the correct dependency information, so if
you don't including what it generates in your question there's not much help
we can give you.

Also, since you're using GCC, why not take advantage of GCC's features for
generating dependency information and throw out makedepend completely?

> makedepend: warning:  COvBucketManager.h :  non-portable whitespace
> encountered at line 203
> makedepend: warning:  COvBucketManager.h :  non-portable whitespace
> encountered at line 205
> makedepend: warning:  COvOverloadConfig.cxx, line 32: cannot find include
> file "CCoThreadPoolManager.h"

Looks like makedepend is not liking your code.  Maybe the output is wrong.

--
-------------------------------------------------------------------------------
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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]