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