[GRASS5] Gmake is not Gnu Make

Thierry Laronde tlaronde at polynum.com
Tue Nov 18 15:08:44 EST 2003


On Tue, Nov 18, 2003 at 06:09:41PM +0000, Glynn Clements wrote:
> 
> > 
> > So, if I'm not mistaken, a standard make shall interpret the commands
> > via a Bourne compatible shell.
> 
> No, it simply means that you can force a command to be passed to a
> Bourne shell with:
> 
> 	$(SHELL) -c "..."

Since I'm not an english native speaker, your interpretation is probably
better. But I thought that since the user shell (via the SHELL
environment variable) shall not be interpreted was ensuring that
this was not the user SHELL that was used but the "internally defined" 
make SHELL.

> 
> Which is what we do at present (see Makefile.in), and it's a nuisance.
> 
> I'd rather just require make to execute the commands via a Bourne
> shell. IOW, I don't think that we should support make programs which
> use a C shell (IRIX?).

Certainly not.

> 
> Also, citing SuS/XPG/etc isn't really much use. A lot of systems don't
> comply with them (including Linux, which is our most popular platform;
> Cygwin doesn't either, and I doubt that MacOSX does).

The only Portability specification between OSes is POSIX and the last
one (version 3) is Single Unix Specification. That's why I use it,
discarding all XPG extensions. Every Unix like system should support
POSIX, and since you must start with something, it's better to start
with this (if you are even not guaranteed to have a Bourne shell, sed
and so on...). And I think Cygwin ports at least the POSIX user tools?

> 
> > > 2. Provides an "include" feature.
> > 
> > that is a SysV compatibility defined at compile time.
> > So this may or may not be present on different BSD flavors.
> 
> Without an include feature, we are stuck with the gmake5 approach,
> which is to generate the actual Makefiles via some kind of
> preprocessor which glues together all of the relevant fragments.
> Personally, I think that's going too far.

pmake (make) uses .include.

All the features are here. All I want to say is that indeed there will
be a choice to make, and yes it seems simpler to go the GNU make way...
but perhaps because BSD base systems ensure the portability and are able
to compile packages with gmake, while the other way (Linux based
distributions having the ability to compile with BSD make) is not
guaranteed.

-- 
Thierry Laronde (Alceste) <tlaronde at polynum.org>
Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C




More information about the grass-dev mailing list