Changeset 503 for trunk/src/gmake/readme.vms
- Timestamp:
- Sep 15, 2006, 7:09:38 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gmake/readme.vms
r281 r503 50 50 with a simple change in makefile.vms. 51 51 52 Some notes on case sensitive names in rules and on the disk. In the VMS 53 template for CONFIG.H case sensitive rules can be enabled with defining 54 WANT_CASE_SENSITIVE_TARGETS. For recent version of VMS there is a case 55 sensitive file system: ODS5. To make use of that, additionally un-defining 56 the HAVE_CASE_INSENSITIVE_FS is required. As these are C macros, different 57 versions of make need to be built to have any case sensitivity for VMS 58 working. Unfortunately, for ODS5 disks that's not all. 59 60 - Usually DCL upcases command line tokens (except strings) and usually the 61 file system is case blind (similar to how Windows systems work) 62 $ set proc/parse=extended/case=sensitive 63 preserves lower and UPPER on the command line and (for this process and all 64 sub-processes) enables case sensitivity in the file system 65 66 - Usually the CRTL tries to reverse what DCL did with command line tokens, it 67 lowercases all tokens (except strings) 68 $ define DECC$ARGV_PARSE_STYLE enable 69 passes (the now preserved) lower and UPPER from the command line to main() 70 71 - Usually the CRTL upcases the arguments to open() and friends 72 $ define DECC$EFS_CASE_PRESERVE enable 73 preserves the names as is. 74 75 It is important to know that not all VMS tools are ready for case sensitivity. 76 With this setup some tools may not work as expected. The setup should not 77 blindly be applied for all users in default login procedures. 78 79 Example? The poor coding gives a compiler message, showing that there are 80 different files: 81 82 $ dir 83 84 Directory ODS5DISK[HB] 85 86 A.c;1 B.c;1 c.c;1 X.c;1 87 x.c;1 88 89 Total of 5 files. 90 $ ods5make x.obj 91 cc /obj=x.obj x.c 92 93 foo(){lowercase_x();} 94 ......^ 95 %CC-I-IMPLICITFUNC, In this statement, the identifier "lowercase_x" is implicitly declared as a function. 96 at line number 1 in file ODS5DISK[HB]x.c;1 97 $ mc SYS$SYSDEVICE:[HARTMUT.MAKE_3_80P]ods5make X.obj 98 cc /obj=X.obj X.c 99 100 foo() {UPPERCASE_X();} 101 .......^ 102 %CC-I-IMPLICITFUNC, In this statement, the identifier "UPPERCASE_X" is implicitly declared as a function. 103 at line number 1 in file ODS5DISK[HB]X.c;1 104 $ dir 105 106 Directory ODS5DISK[HB] 107 108 A.c;1 B.c;1 c.c;1 X.c;1 109 x.c;1 X.obj;1 x.obj;1 110 111 Total of 7 files. 112 $ 113 52 114 53 115 This is the VMS port of GNU Make done by Hartmut.Becker@compaq.com. … … 235 297 236 298 Comma (',') as a separator is now allowed. See makefile.vms for an example. 299 300 ------------------------------------------------------------------------------- 301 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 302 2006 Free Software Foundation, Inc. 303 This file is part of GNU Make. 304 305 GNU Make is free software; you can redistribute it and/or modify it under the 306 terms of the GNU General Public License as published by the Free Software 307 Foundation; either version 2, or (at your option) any later version. 308 309 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 310 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 311 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 312 313 You should have received a copy of the GNU General Public License along with 314 GNU Make; see the file COPYING. If not, write to the Free Software 315 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Note:
See TracChangeset
for help on using the changeset viewer.