Michael G Schwern <[EMAIL PROTECTED]> wrote on 03/04/2005 06:12:36 PM:
> CC/DECC -Iperl_root:[lib.VMS_AXP.5_8_0.CORE] -c /Include=[]/Standard=Relaxed_ANS > I/Prefix=All/Obj=.obj /NOANSI_ALIAS/float=ieee/ieee=denorm_results /NoList -o US > ER1:[SCHWERN]compilet.obj USER1:[SCHWERN]compilet.c > %DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters > %DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters > error building USER1:[SCHWERN]compilet.obj from 'USER1:[SCHWERN]compilet.c' at b > lib/lib/ExtUtils/CBuilder/Base.pm line 65. <snip> > There's some assumptions there which aren't going to fly. Pretty much > anything of the -foo form is likely to be wrong on VMS. Looks like most > of ExtUtils::CBuilder::Base->compile() will have to be overridden. You > can probably figure it out from ExtUtils::MM_VMS though it won't be pretty. > > And at this point I kick this over to the vmsperl folks. Yes the -foo switches have caused trouble. In going over the first example that could either be given as: CC/DECC /Include=(perl_root:[lib.VMS_AXP.5_8_0.CORE],[])/Standard=Relaxed_ANSI /Prefix=All/Obj=.obj /NOANSI_ALIAS/float=ieee/ieee=denorm_results /NoList USER1:[SCHWERN]compilet.c or as: CC/DECC /Include=(perl_root:[lib.VMS_AXP.5_8_0.CORE],[])/Standard=Relaxed_ANSI /Prefix=All/Obj=USER1:[SCHWERN]compilet.obj /NOANSI_ALIAS/float=ieee /ieee=denorm_results /NoList USER1:[SCHWERN]compilet.c In particular the following comments pertain to the unixy type switches cited in the example: cc -c by which is meant compile only to produce an .o file do not link. on VMS using cc will only compile a .c file to a .obj file a separate utility (either link or cxxlink) is needed to link .obj files into .exe files. cc -I<dir1> -I<dir2> - gets replaced in this example by cc /include=(<dir1>,<dir2>) cc -o (optional .o file spec) get replaced either by /object=.obj or by /object=user1:[scwhern]compilet.obj or could even be omitted under many circumstances (though I do not recommend that you omit the /object qualifier spec). On unix they may be called switches and are often specified like -o or somesuch. On VMS they are called qualifiers and are given by /OBJECT or somesuch. In order to shorten DCL shell command lines it is always possible to abbreviate the qualifiers to the shortest unique form. As an example instead of CC /OBJECT=FOO.OBJ it is possible to say CC /OBJ=FOO.OBJ using /OBJ instead of /OBJECT. Er, sorry at this time I do not have a patch :-) Peter Prymmer