under solaris

Volker Stolz stolz at i2.informatik.rwth-aachen.de
Tue Apr 18 08:53:28 EDT 2006

* Simon Marlow <simonmarhaskell at gmail.com>:
> This bit of Makefile code is possibly going wrong for you:
>     -include $(shell echo $(ProjectDirectory) | tr A-Z a-z)/mk/config.mk
>     -include $(shell echo $(ProjectDirectory) | tr A-Z a-z)/mk/version.mk
> Try this instead:
>    $ make Project=Ghc ProjectDirectory=ghc show VALUE=GhcBinDistDirs
> from the top level.  Maybe that tr command doesn't work on Solaris?

venus [14:45:44]> echo foo | tr a-z A-Z
venus [14:46:11]> echo foo | tr [a-z] [A-Z]

>From the man page:


     [c-c] Represents the range of collating elements between the

Posix has this to say on the subject:

" On historical System V systems, a range expression requires enclosing
square-brackets, such as:

tr '[a-z]' '[A-Z]'

However, BSD-based systems did not require the brackets, and this
convention is used here to avoid breaking large numbers of BSD scripts:

tr a-z A-Z

The preceding System V script will continue to work because the brackets,
treated as regular characters, are translated to themselves. However,
 any System V script that relied on "a-z" representing the three characters
 'a' , '-' , and 'z' have to be rewritten as "az-" . "

Maybe it's safe to switch to the bracketed version these days...
This also works fine on Linnix and FreeBSD.
Finding the correct 'tr' on Solaris is probably more tedious.

http://www-i2.informatik.rwth-aachen.de/stolz/ *** PGP *** S/MIME
"All the excitement lies in pattern matching." (SPJ et al.)

More information about the Glasgow-haskell-users mailing list