Details Ticket 2387


Comment | Reply | Take | Open


Serial Number 2387
Subject Makefiles assume that
Area bug
Queue grass
Requestors russo@bogoflux.losalamos.nm.us
Owner none
Status resolved
Last User Contact Mon May 3 12:11:05 2004 (4 yr ago)
Current Priority 30
Final Priority 70
Due No date assigned
Last Action Sat Sep 4 19:32:30 2004 (4 yr ago)
Created Sat Apr 17 19:51:03 2004 (4 yr ago)

Transaction History Ticket 2387


Sat, Apr 17 2004 19:51:03    Request created by guest  
Subject: Makefiles assume that 

Platform: other
grass obtained from: CVS
grass binary for platform: Compiled from Sources
GRASS Version: grass 5.7 from CVS checked out 20040417

In a number of places the Makefiles in grass 5.7 assume that "make" is GNU make.
This makes users of systems where "make" is something else and GNU make is called
"gmake" have to take extra steps (like making symlinks to GNU make and rearranging
their paths) to build grass.

If the makefiles used the MAKE variable (e.g. always use $(MAKE) instead of make
in rules that invoke make) then this would't be a problem, as the user could
than specify which version of make to use.

This is a minor thing, but when I build grass every few months I have to remind
myself that the first step is to reset my path such that a symlink make->/usr/local/bin/gmake
is found before the native system's "make".

Sat, Apr 17 2004 22:15:32    Mail sent by glynn.clements@virgin.net  
Return-Path <glynn.clements@virgin.net>
Delivered-To grass-bugs@lists.intevation.de
From Glynn Clements <glynn.clements@virgin.net>
MIME-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Transfer-Encoding 7bit
Message-ID <16513.36865.891594.359906@cerise.nosuchdomain.co.uk>
Date Sat, 17 Apr 2004 21:13:53 +0100
To Request Tracker <grass-bugs@intevation.de>
Cc grass5@grass.itc.it
Subject Re: [GRASS5] [bug #2387] (grass) Makefiles assume that
In-Reply-To <20040417175103.77F5313B44@lists.intevation.de>
References <20040417175103.77F5313B44@lists.intevation.de>
X-Mailer VM 7.07 under 21.4 (patch 15) "Security Through Obscurity" XEmacs Lucid
X-Spam-Status No, hits=-4.9 tagged_above=-999.0 required=3.0 tests=BAYES_00
X-Spam-Level
Request Tracker wrote:

> this bug's URL: http://intevation.de/rt/webrt?serial_num=2387
> -------------------------------------------------------------------------
> 
> Subject: Makefiles assume that 
> 
> Platform: other
> grass obtained from: CVS
> grass binary for platform: Compiled from Sources
> GRASS Version: grass 5.7 from CVS checked out 20040417
> 
> In a number of places the Makefiles in grass 5.7 assume that "make" is
> GNU make. This makes users of systems where "make" is something else
> and GNU make is called "gmake" have to take extra steps (like making
> symlinks to GNU make and rearranging their paths) to build grass.
> 
> If the makefiles used the MAKE variable (e.g. always use $(MAKE)
> instead of make in rules that invoke make) then this would't be a
> problem, as the user could than specify which version of make to use.

FWIW, here's a list:

lib/db/Makefile:	test ! -d latex || (cd ./latex && make clean)
lib/db/Makefile:	(cd ./latex && make)
lib/db/Makefile:	test ! -d latex || (cd ./latex && make clean)
lib/db/Makefile:	(cd ./latex && make pdf && mv refman.pdf grass57dbmi_`date '+%Y_%m_%d'`_refman.pdf)

lib/vector/Makefile:	test ! -d latex || (cd ./latex && make clean)
lib/vector/Makefile:	(cd ./latex && make)
lib/vector/Makefile:	test ! -d latex || (cd ./latex && make clean)
lib/vector/Makefile:	(cd ./latex && make pdf && mv refman.pdf grass57vlib_`date
'+%Y_%m_%d'`_refman.pdf)
tools/Makefile:	(cd timer ; make)
vector/v.clean/Makefile:	cd test; make
Makefile:		(cd $$subdir && make) || exit 1; \
Makefile:		(cd $$subdir && make) || exit 1; \
Makefile:		(cd $$subdir && make clean) || exit 1; \
Makefile:		(cd $$subdir && make clean) || exit 1; \
Makefile:	(cd lib/db/ ; make htmldocs)
Makefile:	(cd lib/vector/ ; make htmldocs)
Makefile:	(cd lib/db/ ; make pdfdocs)
Makefile:	(cd lib/vector/ ; make pdfdocs)
visualization/nviz/Makefile:	cd src ; make
visualization/nviz/Makefile:	(cd src && make clean) || exit 1;
raster/r.le/r.le.setup/Makefile:	(cd polytocell/ ; make )
raster/r.terraflow/IOStream/lib/Makefile:	(cd src ; make)
raster/r.terraflow/Makefile:	(cd IOStream/lib ; make)
raster/r.terraflow/Makefile:	(cd IOStream/lib ; make)
raster/r.terraflow/Makefile:	(cd IOStream/lib ; make clean )

Also, both Makefile and include/Make/Platform.make.in set the MAKE
variable; this gets set by MAKE itself, and shouldn't be overriden.

-- 
Glynn Clements <glynn.clements@virgin.net>


Mon, May 3 2004 12:11:05    Mail sent by neteler@itc.it  
Return-Path <neteler@itc.it>
Delivered-To grass-bugs@lists.intevation.de
Date Mon, 3 May 2004 12:10:48 +0200
From Markus Neteler <neteler@itc.it>
To Glynn Clements <glynn.clements@virgin.net>
Cc Request Tracker <grass-bugs@intevation.de>, grass5@grass.itc.it
Subject Re: [GRASS5] [bug #2387] (grass) Makefiles assume that
Message-ID <20040503101048.GH2739@thuille.itc.it>
Mail-Followup-To Glynn Clements <glynn.clements@virgin.net>, Request Tracker <grass-bugs@intevation.de>, grass5@grass.itc.it
References <20040417175103.77F5313B44@lists.intevation.de> <16513.36865.891594.359906@cerise.nosuchdomain.co.uk>
Mime-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Disposition inline
In-Reply-To <16513.36865.891594.359906@cerise.nosuchdomain.co.uk>
User-Agent Mutt/1.4.1i
X-Spam-Status No, hits=-4.9 tagged_above=-999.0 required=3.0 tests=BAYES_00
X-Spam-Level
On Sat, Apr 17, 2004 at 09:13:53PM +0100, Glynn Clements wrote:
> 
> Request Tracker wrote:
> 
> > this bug's URL: http://intevation.de/rt/webrt?serial_num=2387
> > -------------------------------------------------------------------------
> > 
> > Subject: Makefiles assume that 
> > 
> > Platform: other
> > grass obtained from: CVS
> > grass binary for platform: Compiled from Sources
> > GRASS Version: grass 5.7 from CVS checked out 20040417
> > 
> > In a number of places the Makefiles in grass 5.7 assume that "make" is
> > GNU make. This makes users of systems where "make" is something else
> > and GNU make is called "gmake" have to take extra steps (like making
> > symlinks to GNU make and rearranging their paths) to build grass.
> > 
> > If the makefiles used the MAKE variable (e.g. always use $(MAKE)
> > instead of make in rules that invoke make) then this would't be a
> > problem, as the user could than specify which version of make to use.
> 
> FWIW, here's a list:
> 
> lib/db/Makefile:	test ! -d latex || (cd ./latex && make clean)
> lib/db/Makefile:	(cd ./latex && make)
> lib/db/Makefile:	test ! -d latex || (cd ./latex && make clean)
> lib/db/Makefile:	(cd ./latex && make pdf && mv refman.pdf grass57dbmi_`date
'+%Y_%m_%d'`_refman.pdf)
> lib/vector/Makefile:	test ! -d latex || (cd ./latex && make clean)
> lib/vector/Makefile:	(cd ./latex && make)
> lib/vector/Makefile:	test ! -d latex || (cd ./latex && make clean)
> lib/vector/Makefile:	(cd ./latex && make pdf && mv refman.pdf grass57vlib_`date
'+%Y_%m_%d'`_refman.pdf)
> tools/Makefile:	(cd timer ; make)
> vector/v.clean/Makefile:	cd test; make
> Makefile:		(cd $$subdir && make) || exit 1; \
> Makefile:		(cd $$subdir && make) || exit 1; \
> Makefile:		(cd $$subdir && make clean) || exit 1; \
> Makefile:		(cd $$subdir && make clean) || exit 1; \
> Makefile:	(cd lib/db/ ; make htmldocs)
> Makefile:	(cd lib/vector/ ; make htmldocs)
> Makefile:	(cd lib/db/ ; make pdfdocs)
> Makefile:	(cd lib/vector/ ; make pdfdocs)
> visualization/nviz/Makefile:	cd src ; make
> visualization/nviz/Makefile:	(cd src && make clean) || exit 1;
> raster/r.le/r.le.setup/Makefile:	(cd polytocell/ ; make )
> raster/r.terraflow/IOStream/lib/Makefile:	(cd src ; make)
> raster/r.terraflow/Makefile:	(cd IOStream/lib ; make)
> raster/r.terraflow/Makefile:	(cd IOStream/lib ; make)
> raster/r.terraflow/Makefile:	(cd IOStream/lib ; make clean )
> 
> Also, both Makefile and include/Make/Platform.make.in set the MAKE
> variable; this gets set by MAKE itself, and shouldn't be overriden.

Fixed in CVS.

 Markus 


Mon, May 3 2004 12:15:51    Status changed to resolved by mneteler  
Sat, Sep 4 2004 19:32:30    Comments added by guest  
This bug report got resolved some time ago, but I just this moment found
another case where a Makefile uses "make" instead of "$(MAKE)", leading to
build failures on platforms where "make" is not GNU make.  I never noticed it
because I was still using my old workaround, symlinking "make->gmake" in the
PATH I use when building grass.  I think today is the first time I tried not
having that symlink in my path.

In grass57, updated from CVS today, vizualization/nviz/Makefile contains a line:
nvwish:
        cd src ; make
that should be 
nvwish:
  cd src; $(MAKE)

As far as I can tell, this is the only case remaining where a hardcoded make
is still there.  It never got fixed by the commit of version 1.4 of this
makefile (when a different instance of "make" was replaced with "$(MAKE)", and
has been this way all along.

Comment | Reply | Take | Open

You are currently authenticated as guest.
[Show Configuration] [Login as another user]

Users Guide - Mail Commands - Homepage of RequestTracker 1.0.7 - list any request