My research was right. You *can't* mix Unix and VMS style include
paths on VMS. It will just dumbly concatinate them.
CC/DECC /include=[.include]
Result: [.include]parrot/parrot.h *wrong*
CC/DECC /include="./include"
Result: ./include/parrot/parrot.h *right*
Perl5 simply avoids ever using '#include "foo/bar.h"' syntax except in
one instance (SDBM_File) where the include directory is the cwd, so it
works by luck.
So this patch gets VMS past Configure and it immediately vomits
because of a syntax error in the descrip.mms
$ mmk
%MMK-F-PARSERR, error parsing description line mops: examples/assembly/mopsexe
examples/mops/mopsexe
-MMK-I-ERRLOC, at line number 148 in file USER1:[SCHWERN.SRC.PARROT]MAKEFILE.;7
-LIB-F-SYNTAXERR, string syntax error detected by LIB$TPARSE
--- hints/vms.pl 4 Jan 2002 17:39:29 -0000 1.5
+++ hints/vms.pl 1 Apr 2002 18:48:40 -0000
@@ -1,8 +1,10 @@
use Cwd;
-$c{ccflags} =
"/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/NOANSI_ALIAS/include=([.include],\"/here\")";
+$c{ccflags} =
+qq{/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/NOANSI_ALIAS/include="./include"};
+
if (!defined $c{exe}) {
$c{exe} = "exe";
}
+
{
local $^W; #no warnings on redefinition
@@ -10,8 +12,11 @@
my $name;
$name = shift;
$name = "test" unless $name;
- system("$c{cc} $c{ccflags} $name.c") and die "C compiler died!";
- system("link/exe=test_siz $name") and die "Link failed!";
+ my $cmd = "$c{cc} $c{ccflags} $name.c";
+ system($cmd) and die "C compiler died! Command was '$cmd'";
+
+ $cmd = "link/exe=test_siz $name";
+ system($cmd) and die "Link failed! Command was '$cmd'";
};
*runtestc=sub {
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
If you have to shoot, shoot! Don't talk.
-- Tuco, "The Good, The Bad And The Ugly"