[GRASS-dev] compile directions

There have been lots of emails recently about compiling issues, and one common thread is a question about whether you ran 'make distclean' first.

Is there any reason NOT to always run make distclean? Should it be part of the standard directions?

Jerry
Gerald Nelson
Professor, Dept. of Agricultural and Consumer Economics
University of Illinois, Urbana-Champaign
office: 217-333-6465
cell: 217-390-7888
315 Mumford Hall
1301 W. Gregory
Urbana, IL 61801

Actually, I'm a little guilty, though I often ask others when troubleshooting. I usually just run "make clean". If I see a change in configure or a makefile, then I'll run "make distclean". Occassionally I'll make distclean anyways, to be safe.

I don't know how valid my method is - assuming that only configure and makefile changes require a distclean. But something in the build instructions would probably be good.

On Aug 24, 2007, at 10:19 AM, Gerald Nelson wrote:

There have been lots of emails recently about compiling issues, and one common thread is a question about whether you ran 'make distclean' first.

Is there any reason NOT to always run make distclean? Should it be part of the standard directions?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"Those people who most want to rule people are, ipso-facto, those least suited to do it."

- A rule of the universe, from the HitchHiker's Guide to the Galaxy

There are instructions in the INSTALL file distributed with Grass on the difference between the two:

make clean - delete all files created by 'make'
make distclean - 'make clean' + delete all files created by './configure'

~ Eric.

-----Original Message-----
From: grass-dev-bounces@grass.itc.it on behalf of William Kyngesburye
Sent: Fri 8/24/2007 1:17 PM
To: Gerald Nelson
Cc: grass-dev@grass.itc.it
Subject: Re: [GRASS-dev] compile directions

Actually, I'm a little guilty, though I often ask others when
troubleshooting. I usually just run "make clean". If I see a change
in configure or a makefile, then I'll run "make distclean".
Occassionally I'll make distclean anyways, to be safe.

I don't know how valid my method is - assuming that only configure
and makefile changes require a distclean. But something in the build
instructions would probably be good.

On Aug 24, 2007, at 10:19 AM, Gerald Nelson wrote:

There have been lots of emails recently about compiling issues, and
one common thread is a question about whether you ran 'make
distclean' first.

Is there any reason NOT to always run make distclean? Should it be
part of the standard directions?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

Hmm, but it doesn't explain the importance of those actions when there are compile problems - either when recompiling (or restarting an aborted compile) the same source or updated CVS source. Casual users (or casual developers) might not realize that either of these could help.

Maybe add a note in section (G) Update of Source Code? (or add it as a step in the detail) Possibly also add a general notes section with this hint? (since it could also apply to recompiling/restarting compilation)

On Aug 24, 2007, at 11:27 AM, Patton, Eric wrote:

There are instructions in the INSTALL file distributed with Grass on the difference between the two:

make clean - delete all files created by 'make'
make distclean - 'make clean' + delete all files created by './configure'

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

First Pogril: Why is life like sticking your head in a bucket filled with hyena offal?
Second Pogril: I don't know. Why IS life like sticking your head in a bucket filled with hyena offal?
First Pogril: I don't know either. Wretched, isn't it?

-HitchHiker's Guide to the Galaxy

Gerald Nelson wrote:

There have been lots of emails recently about compiling issues, and
one common thread is a question about whether you ran 'make distclean'
first.

Is there any reason NOT to always run make distclean?

For developers, repeatedly re-compiling from scratch would be a major
nuisance.

Should it be part of the standard directions?

I think so.

It should always be done before "cvs update".

--
Glynn Clements <glynn@gclements.plus.com>

William Kyngesburye wrote:

> There have been lots of emails recently about compiling issues, and
> one common thread is a question about whether you ran 'make
> distclean' first.
>
> Is there any reason NOT to always run make distclean? Should it be
> part of the standard directions?

Actually, I'm a little guilty, though I often ask others when
troubleshooting. I usually just run "make clean". If I see a change
in configure or a makefile, then I'll run "make distclean".
Occassionally I'll make distclean anyways, to be safe.

I don't know how valid my method is - assuming that only configure
and makefile changes require a distclean. But something in the build
instructions would probably be good.

The distclean target is:

distclean: clean
  -rm -f config.cache config.log config.status config.status.${ARCH} 2>/dev/null
  -rm -f ChangeLog ChangeLog.bak error.log grass.pc
  -rm -f include/config.h include/version.h include/winname.h include/Make/Grass.make include/Make/Platform.make 2>/dev/null
  -rm -f swig/perl/Makefile.PL swig/perl2/make.pl swig/python/Makefile 2>/dev/null

Essentially, the difference between distclean and clean only matters
if there are changes to a file used by configure, i.e. configure
itself or any file whose name ends in ".in".

In most of the cases which are fixed by "make distclean", "make clean"
would also have worked.

The only reason to use "make clean" rather than "make distclean" is if
you're making global changes where a full recompilation is less effort
than figuring out all of the dependencies, and you know that "make
distclean" isn't necessary. In that situation, avoiding the need to
re-run configure may be worthwhile (particularly on Cygwin, where
running configure is particularly slow).

--
Glynn Clements <glynn@gclements.plus.com>

Would using ccache (http://ccache.samba.org/) be a good way to speed up compiles after a make distclean? I'm thinking of using ccache but I would like to hear if anyone is using it while doing grass development.

-----Original Message-----
From: grass-dev-bounces@grass.itc.it
[mailto:grass-dev-bounces@grass.itc.it]On Behalf Of Glynn Clements
Sent: Friday, August 24, 2007 1:17 PM
To: Gerald Nelson
Cc: grass-dev@grass.itc.it
Subject: Re: [GRASS-dev] compile directions

Gerald Nelson wrote:

There have been lots of emails recently about compiling issues, and
one common thread is a question about whether you ran 'make distclean'
first.

Is there any reason NOT to always run make distclean?

For developers, repeatedly re-compiling from scratch would be a major
nuisance.

Should it be part of the standard directions?

I think so.

It should always be done before "cvs update".

--
Glynn Clements <glynn@gclements.plus.com>

_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev

On Fri, 2007-08-24 at 15:07 -0700, Moskovitz, Bob wrote:

Would using ccache (http://ccache.samba.org/) be a good way to speed up compiles after a make distclean? I'm thinking of using ccache but I would like to hear if anyone is using it while doing grass development.

I used ccache for several months...several months ago. :wink: I didn't
really notice any major change in compile performance and after awhile,
the stale cache tended to grow unchecked.

It won't hurt to give it a try. YMMV. I'd be interested in hearing
successful reports.

--
73, de Brad KB8UYR/6 <rez touchofmadness com>