diff options
author | Paul Smith <psmith@gnu.org> | 2006-01-04 14:45:16 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2006-01-04 14:45:16 +0000 |
commit | 64e16d6c00a59fcff9681e032ac8dbec46d3e960 (patch) | |
tree | 48a8511b273fdfc555442951b97cca3fceb79ee6 /readme.vms | |
parent | 3d0d9e5d75eecd48d106918e0f568590f67fc26a (diff) | |
download | gunmake-64e16d6c00a59fcff9681e032ac8dbec46d3e960.tar.gz |
Various changes getting ready for the release of 3.81.
- Updates to make.texi and make.1 and other documentation
- Some VMS patches
- Fix minor bugs reported on the mailing list and from Debian.
Diffstat (limited to 'readme.vms')
-rw-r--r-- | readme.vms | 62 |
1 files changed, 62 insertions, 0 deletions
@@ -48,6 +48,68 @@ for this is to set this switch just prior to calling main: in an initialization routine. This adds more complexity and more VMS specific code. It is easier to tell the compiler NOT to map the routine names with a simple change in makefile.vms. + +Some notes on case sensitive names in rules and on the disk. In the VMS +template for CONFIG.H case sensitive rules can be enabled with defining +WANT_CASE_SENSITIVE_TARGETS. For recent version of VMS there is a case +sensitive file system: ODS5. To make use of that, additionally un-defining +the HAVE_CASE_INSENSITIVE_FS is required. As these are C macros, different +versions of make need to be built to have any case sensitivity for VMS +working. Unfortunately, for ODS5 disks that's not all. + +- Usually DCL upcases command line tokens (except strings) and usually the + file system is case blind (similar to how Windows systems work) + $ set proc/parse=extended/case=sensitive + preserves lower and UPPER on the command line and (for this process and all + sub-processes) enables case sensitivity in the file system + +- Usually the CRTL tries to reverse what DCL did with command line tokens, it + lowercases all tokens (except strings) + $ define DECC$ARGV_PARSE_STYLE enable + passes (the now preserved) lower and UPPER from the command line to main() + +- Usually the CRTL upcases the arguments to open() and friends + $ define DECC$EFS_CASE_PRESERVE enable + preserves the names as is. + +It is important to know that not all VMS tools are ready for case sensitivity. +With this setup some tools may not work as expected. The setup should not +blindly be applied for all users in default login procedures. + +Example? The poor coding gives a compiler message, showing that there are +different files: + +$ dir + +Directory ODS5DISK[HB] + +A.c;1 B.c;1 c.c;1 X.c;1 +x.c;1 + +Total of 5 files. +$ ods5make x.obj +cc /obj=x.obj x.c + +foo(){lowercase_x();} +......^ +%CC-I-IMPLICITFUNC, In this statement, the identifier "lowercase_x" is implicitly declared as a function. +at line number 1 in file ODS5DISK[HB]x.c;1 +$ mc SYS$SYSDEVICE:[HARTMUT.MAKE_3_80P]ods5make X.obj +cc /obj=X.obj X.c + +foo() {UPPERCASE_X();} +.......^ +%CC-I-IMPLICITFUNC, In this statement, the identifier "UPPERCASE_X" is implicitly declared as a function. +at line number 1 in file ODS5DISK[HB]X.c;1 +$ dir + +Directory ODS5DISK[HB] + +A.c;1 B.c;1 c.c;1 X.c;1 +x.c;1 X.obj;1 x.obj;1 + +Total of 7 files. +$ This is the VMS port of GNU Make done by Hartmut.Becker@compaq.com. |