X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=e15c9d3af49130555a653e67796416ce347fab68;hb=7f336194cfaf185f017d3850e370623e7a703691;hp=3f3909cbc791ec121903308e583a226ef343fd48;hpb=18bdacd6ec50ce381ac2bc69ff4bb5e36d019e94;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index 3f3909c..e15c9d3 100644 --- a/configure.com +++ b/configure.com @@ -2720,22 +2720,65 @@ $ IF F$EXTRACT(0,4,line) .NES. "ext/" .AND. - F$EXTRACT(0,8,line) .NES. "vms/ext/" THEN goto ext_loop $ line = F$EDIT(line,"COMPRESS") $ line = F$ELEMENT(0," ",line) -$ line_len = F$LENGTH(line) -$ IF F$EXTRACT(line_len - 12,12,line) .NES. "/Makefile.PL" THEN goto ext_loop -$ IF F$EXTRACT(0,4,line) .EQS. "ext/" THEN - - xxx = F$EXTRACT(4,line_len - 16,line) +$ IF F$EXTRACT(0,4,line) .EQS. "ext/" +$ THEN +$ xxx = F$ELEMENT(1,"/",line) +$ IF F$SEARCH("[-.ext]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop +$ ENDIF +$ IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" +$ THEN +$ xxx = F$ELEMENT(2,"/",line) +$ IF F$SEARCH("[-.vms.ext]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop +$ xxx = "VMS/" + xxx +$ ENDIF $ IF xxx .EQS. "DynaLoader" THEN goto ext_loop ! omit -$ IF xxx .EQS. "SDBM_File/sdbm" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Devel/PPPort/harness" THEN goto ext_loop ! sub extension - omit -$ IF F$EXTRACT(0,7,xxx) .EQS. "Encode/" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "B/C" THEN goto ext_loop ! sub extension - omit -$ IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" THEN - - xxx = "VMS/" + F$EXTRACT(8,line_len - 20,line) -$ known_extensions = known_extensions + " ''xxx'" +$! +$! (extspec = xxx) =~ tr!-!/! +$ extspec = "" +$ idx = 0 +$ replace_dash_with_slash: +$ before = F$ELEMENT(idx, "-", xxx) +$ IF before .EQS. "-" THEN goto end_replace_dash_with_slash +$ IF extspec .NES. "" +$ THEN +$ extspec = extspec + "/" +$ ENDIF +$ extspec = extspec + before +$ idx = idx + 1 +$ goto replace_dash_with_slash +$ +$ end_replace_dash_with_slash: +$ +$ xxx = known_extensions +$ may_already_have_extension: +$ idx = F$LOCATE(extspec, xxx) +$ extlen = F$LENGTH(xxx) +$ IF idx .EQ. extlen THEN goto found_new_extension +$! But "Flirble" may just be part of "Acme-Flirble" +$ IF idx .GT. 0 .AND. F$EXTRACT(idx - 1, 1, xxx) .NES. " " +$ THEN +$ xxx = F$EXTRACT(idx + F$LENGTH(extspec) + 1, extlen, xxx) +$ GOTO may_already_have_extension +$ ENDIF +$! But "Foo" may just be part of "Foo-Bar" so check for equality. +$ xxx = F$EXTRACT(idx, extlen - idx, xxx) +$ IF F$ELEMENT(0, " ", xxx) .EQS. extspec +$ THEN +$ GOTO ext_loop +$ ELSE +$ xxx = F$EXTRACT(F$LENGTH(extspec) + 1, extlen, xxx) + GOTO may_already_have_extension +$ ENDIF +$! +$ found_new_extension: +$ known_extensions = known_extensions + " ''extspec'" $ goto ext_loop $end_ext: $ close CONFIG $ DELETE/SYMBOL xxx +$ DELETE/SYMBOL idx +$ DELETE/SYMBOL extspec +$ DELETE/SYMBOL extlen $ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS") $ dflt = known_extensions $ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX" @@ -2745,10 +2788,10 @@ $ ENDIF $ dflt = dflt - "ByteLoader" ! needs to be ported $ dflt = dflt - "DB_File" ! needs to be ported $ dflt = dflt - "GDBM_File" ! needs porting/special library -$ dflt = dflt - "IPC-SysV" ! needs to be ported +$ dflt = dflt - "IPC/SysV" ! needs to be ported $ dflt = dflt - "NDBM_File" ! needs porting/special library $ dflt = dflt - "ODBM_File" ! needs porting/special library -$ dflt = dflt - "Sys-Syslog" ! needs porting/special library "GDBM_File macro LOG_DEBUG" +$ dflt = dflt - "Sys/Syslog" ! needs porting/special library "GDBM_File macro LOG_DEBUG" $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets $ THEN $ dflt = dflt - "Socket" ! optional on VMS @@ -6888,80 +6931,6 @@ $! Clean up after ourselves $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe; $ DELETE/NOLOG/NOCONFIRM []extra_subs.txt; $! -$ echo4 "Extracting make_ext.com (without variable substitutions)" -$ Create Sys$Disk:[-]make_ext.com -$ Deck/Dollar="$EndOfTpl$" -$!++ make_ext.com -$! NOTE: This file is extracted as part of the VMS configuration process. -$! Any changes made to it directly will be lost. If you need to make any -$! changes, please edit the template in Configure.Com instead. -$ mydefault = F$Environment("Default") -$! p1 - how to invoke miniperl (passed in from descrip.mms) -$ p1 = F$Edit(p1,"Upcase,Compress,Trim") -$ If F$Locate("MCR ",p1).eq.0 Then p1 = F$Extract(3,255,p1) -$ miniperl = "$" + F$Search(F$Parse(p1,".Exe")) -$! p2 - how to invoke local make utility (passed in from descrip.mms) -$ makeutil = p2 -$ if f$type('p2') .nes. "" then makeutil = 'p2' -$! p3 - make target (passed in from descrip.mms) -$ targ = F$Edit(p3,"Lowercase") -$ sts = 1 -$ extensions = "" -$ open/read CONFIG config.sh -$ find_ext_loop: -$ read/end=end_ext_loop CONFIG line -$ if (f$extract(0,12,line) .NES. "extensions='") -$ then goto find_ext_loop -$ else extensions = f$extract(12,f$length(line),line) - "'" -$ endif -$ end_ext_loop: -$ close CONFIG -$ extensions = f$edit(extensions,"TRIM,COMPRESS") -$ i = 0 -$ next_ext: -$ ext = f$element(i," ",extensions) -$ If ext .eqs. " " .or. ext .eqs. "" Then Goto done -$ Define/User_mode Perl_Env_Tables CLISYM_LOCAL -$ miniperl -$ deck - ($extdir = $ENV{'ext'}) =~ s/::/./g; - $extdir =~ s#/#.#g; - if ($extdir =~ /^vms/i) { $extdir =~ s/vms/.vms.ext/i; } - else { $extdir = ".ext.$extdir"; } - ($ENV{'extdir'} = "[$extdir]"); - ($ENV{'up'} = ('-') x ($extdir =~ tr/././)); -$ eod -$ Set Default &extdir -$ redesc = 0 -$ If F$Locate("clean",targ) .eqs. F$Length(targ) -$ Then -$ Write Sys$Output "" -$ Write Sys$Output " Making ''ext' (dynamic)" -$ On Error Then Goto done -$ If F$Search("Descrip.MMS") .eqs. "" -$ Then -$ redesc = 1 -$ Else -$ If F$CvTime(F$File("Descrip.MMS","rdt")) .lts. - - F$CvTime(F$File("Makefile.PL","rdt")) Then redesc = 1 -$ EndIf -$ Else -$ Write Sys$Output "''targ'ing ''ext' . . ." -$ On Error Then Continue -$ EndIf -$ If redesc Then - - miniperl "-I[''up'.lib]" Makefile.PL "INST_LIB=[''up'.lib]" "INST_ARCHLIB=[''up'.lib]" "PERL_CORE=1" -$ makeutil 'targ' -$ i = i + 1 -$ Set Def &mydefault -$ Goto next_ext -$ done: -$ sts = $Status -$ Set Def &mydefault -$ Exit sts -$!-- make_ext.com -$EndOfTpl$ -$! $! Note that the /key qualifier to search, as in: $! search README.* "=head"/key=(position=1)/window=0/output=extra.pods $! is not supported on VMS V5.5-2, hence not used in extra_pods.com.