X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=vms%2Fsubconfigure.com;h=039f4dda30e5f6a28728971a4cbae295375da45c;hb=3eb568f1c9e22faaefbd6531878f947fab30705b;hp=5c5dc295622c656f383e4b94f48b3f91aa02b15a;hpb=3937c24e3f4ed26beafd7a2fbe3a20466bfc2b2d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/vms/subconfigure.com b/vms/subconfigure.com index 5c5dc29..039f4dd 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -1,4 +1,4 @@ -$! SUBCONFIGURE.COM - build a config.sh for VMS Perl. + $! SUBCONFIGURE.COM - build a config.sh for VMS Perl. $! $! Note for folks from other platforms changing things in here: $! Fancy changes (based on compiler capabilities or VMS version or @@ -30,6 +30,7 @@ $! C_Compiler_Invoke is the command needed to invoke the C compiler $! $! Set Dec_C_Version to something $ WRITE_RESULT := "WRITE SYS$OUTPUT ""%CONFIG-I-RESULT "" + " +$ echo = "Write Sys$Output " $ Dec_C_Version := "''Dec_C_Version'" $ Dec_C_Version = Dec_C_Version + 0 $ Vms_Ver := "''f$extract(1,3, f$getsyi(""version""))'" @@ -62,9 +63,29 @@ $ myname = myhostname $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE") $! $! ##ADD NEW CONSTANTS HERE## +$ perl_d_madvise="undef" +$ perl_d_msync="undef" +$ perl_d_mprotect="undef" +$ perl_d_munmap="undef" +$ perl_crosscompile="undef" +$ perl_multiarch="undef" +$ perl_d_mmap="undef" +$ perl_i_sysmman="undef" +$ perl_d_telldirproto="define" +$ perl_i_sysmount="undef" +$ perl_d_fstatfs="undef" +$ perl_i_machcthreads="undef" +$ perl_i_pthread="define" +$ perl_d_fstatvfs="undef" +$ perl_d_statfsflags="undef" +$ perl_i_sysstatvfs="undef" +$ perl_i_mntent="undef" +$ perl_d_getmntent="undef" +$ perl_d_hasmntopt="undef" $ perl_package="''package'" $ perl_baserev = "''baserev'" $ cc_defines="" +$ perl_installusrbinperl="undef" $ perl_CONFIG="true" $ perl_d_fseeko="undef" $ perl_d_ftello="undef" @@ -77,9 +98,9 @@ $ perl_cf_by="unknown" $ perl_ccdlflags="" $ perl_cccdlflags="" $ perl_mab="" -$ perl_drand01 = "random()" -$ perl_randseedtype = "unsigned int" -$ perl_seedfunc = "srand" +$ perl_drand01 = "drand48()" +$ perl_randseedtype = "long int" +$ perl_seedfunc = "srand48" $ perl_d_msg_ctrunc = "undef" $ perl_d_msg_dontroute = "undef" $ perl_d_msg_oob = "undef" @@ -187,14 +208,14 @@ $ perl_osname="VMS" $ perl_d_archlib="define" $ perl_d_bincompat3="undef" $ perl_cppstdin="''Perl_CC'/noobj/preprocess=sys$output sys$input" -$ perl_cppminus="" +$ perl_cppminus=" " $ perl_d_castneg="define" $ perl_castflags="0" $ perl_d_chsize="undef" $ perl_d_const="define" $ perl_d_crypt="define" $ perl_byteorder="1234" -$ perl_full_csh="" +$ perl_full_csh=" " $ perl_d_csh="undef" $ perl_d_dup2="define" $ perl_d_fchmod="undef" @@ -348,9 +369,9 @@ $ENDIF $ perl_sh="MCR" $ perl_modetype="unsigned int" $ perl_ssizetype="int" -$ perl_o_nonblock="" -$ perl_eagain="" -$ perl_rd_nodata="" +$ perl_o_nonblock=" " +$ perl_eagain=" " +$ perl_rd_nodata=" " $ perl_d_eofnblk="undef" $ perl_d_oldarchlib="define" $ perl_privlibexp="''perl_prefix':[lib]" @@ -383,8 +404,8 @@ $ perl_d_getpgrp2="undef" $ perl_d_sfio="undef" $ perl_usedl="define" $ perl_startperl="""$ perl 'f$env(\""procedure\"")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' !\n$ exit++ + ++$status != 0 and $exit = $status = undef;""" -$ perl_db_hashtype="" -$ perl_db_prefixtype="" +$ perl_db_hashtype=" " +$ perl_db_prefixtype=" " $ perl_useperlio="undef" $ perl_defvoidused="15" $ perl_voidflags="15" @@ -394,13 +415,13 @@ $ IF ("''Use_Threads'".eqs."T").and.("''VMS_VER'".LES."6.2") $ THEN $ perl_libs="SYS$SHARE:CMA$LIB_SHR.EXE/SHARE SYS$SHARE:CMA$RTL.EXE/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR.exe/SHARE SYS$SHARE:CMA$OPEN_RTL.exe/SHARE" $ ELSE -$ perl_libs="" +$ perl_libs=" " $ ENDIF $ IF ("''Using_Dec_C'".eqs."Yes") $ THEN $ perl_libc="(DECCRTL)" $ ELSE -$ perl_libc="" +$ perl_libc=" " $ ENDIF $ perl_PATCHLEVEL="''patchlevel'" $ perl_SUBVERSION="''subversion'" @@ -429,8 +450,8 @@ $ THEN $ perl_arch = "''perl_arch'-thread" $ perl_archname = "''perl_archname'-thread" $ ELSE -$ perl_d_pthread_create_joinable = "undef" -$ perl_pthread_create_joinable = "" +$ perl_d_old_pthread_create_joinable = "undef" +$ perl_old_pthread_create_joinable = " " $ ENDIF $ perl_osvers=f$edit(osvers, "TRIM") $ if (perl_subversion + 0).eq.0 @@ -1680,6 +1701,41 @@ $ perl_d_setvbuf="define" $ ENDIF $ WRITE_RESULT "d_setvbuf is ''perl_d_setvbuf'" $! +$! Check for setenv +$! +$ OS +$ WS "#ifdef __DECC +$ WS "#include +$ WS "#endif +$ WS "#include +$ WS "int main() +$ WS "{" +$ WS "setenv(""FOO"", ""BAR"", 0); +$ WS "exit(0); +$ WS "}" +$ CS +$ DEFINE SYS$ERROR _NLA0: +$ DEFINE SYS$OUTPUT _NLA0: +$ on error then continue +$ on warning then continue +$ 'Checkcc' temp +$ If (Needs_Opt.eqs."Yes") +$ THEN +$ link temp,temp/opt +$ else +$ link temp +$ endif +$ teststatus = f$extract(9,1,$status) +$ DEASSIGN SYS$OUTPUT +$ DEASSIGN SYS$ERROR +$ if (teststatus.nes."1") +$ THEN +$ perl_d_setenv="undef" +$ ELSE +$ perl_d_setenv="define" +$ ENDIF +$ WRITE_RESULT "d_setenv is ''perl_d_setenv'" +$! $! Check for $! $ if ("''Has_Dec_C_Sockets'".eqs."T").or.("''Has_Socketshr'".eqs."T") @@ -2912,6 +2968,10 @@ $ WC "voidflags='" + perl_voidflags + "'" $ WC "d_eunice='" + perl_d_eunice + "'" $ WC "libs='" + perl_libs + "'" $ WC "libc='" + perl_libc + "'" +$ tempstring = "PERL_VERSION='" + "''perl_patchlevel'" + "'" +$ WC tempstring +$ tempstring = "PERL_SUBVERSION='" + "''perl_patchlevel'" + "'" +$ WC tempstring $ tempstring = "PATCHLEVEL='" + "''perl_patchlevel'" + "'" $ WC tempstring $ tempstring = "SUBVERSION='" + "''perl_SUBVERSION'" + "'" @@ -2948,6 +3008,7 @@ $ WC "d_longlong='" + perl_d_longlong + "'" $ WC "longlongsize='" + perl_longlongsize + "'" $ WC "d_mkstemp='" + perl_d_mkstemp + "'" $ WC "d_setvbuf='" + perl_d_setvbuf + "'" +$ WC "d_setenv='" + perl_d_setenv + "'" $ WC "d_endhent='" + perl_d_endhent + "'" $ WC "d_endnent='" + perl_d_endsent + "'" $ WC "d_endpent='" + perl_d_endpent + "'" @@ -3042,12 +3103,32 @@ $ WC "d_ftell64='" + perl_d_ftell64 + "'" $ WC "d_ftello64='" + perl_d_ftello64 + "'" $ WC "d_tmpfile64='" + perl_d_tmpfile64 + "'" $ WC "d_drand48proto='" + perl_d_drand48proto + "'" -$ WC "d_pthread_create_joinable='" + perl_d_pthread_create_joinable + "'" -$ WC "pthread_create_joinable='" + perl_pthread_create_joinable + "'" +$ WC "d_old_pthread_create_joinable='" + perl_d_old_pthread_create_joinable + "'" +$ WC "old_pthread_create_joinable='" + perl_old_pthread_create_joinable + "'" $ WC "drand01='" + perl_drand01 + "'" $ WC "randseedtype='" + perl_randseedtype + "'" $ WC "seedfunc='" + perl_seedfunc + "'" $ WC "sig_num_init='" + perl_sig_num_with_commas + "'" +$ WC "i_sysmount='" + perl_i_sysmount + "'" +$ WC "d_fstatfs='" + perl_d_fstatfs + "'" +$ WC "d_statfsflags='" + perl_d_statfsflags + "'" +$ WC "i_sysstatvfs='" + perl_i_sysstatvfs + "'" +$ WC "i_machcthreads='" + perl_i_machcthreads + "'" +$ WC "i_pthread='" + perl_i_pthread + "'" +$ WC "d_fstatvfs='" + perl_d_fstatvfs + "'" +$ WC "i_mntent='" + perl_i_mntent + "'" +$ WC "d_getmntent='" + perl_d_getmntent + "'" +$ WC "d_hasmntopt='" + perl_d_hasmntopt + "'" +$ WC "d_telldirproto='" + perl_d_telldirproto + "'" +$ WC "d_madvise='" + perl_d_madvise + "'" +$ WC "d_msync='" + perl_d_msync + "'" +$ WC "d_mprotect='" + perl_d_mprotect + "'" +$ WC "d_munmap='" + perl_d_munmap + "'" +$ WC "d_mmap='" + perl_d_mmap + "'" +$ WC "i_sysmman='" + perl_i_sysmman + "'" +$ WC "installusrbinperl='" + perl_installusrbinperl + "'" +$ WC "crosscompile='" + perl_crosscompile + "'" +$ WC "multiarch='" + perl_multiarch + "'" $! $! ##WRITE NEW CONSTANTS HERE## $! @@ -3069,7 +3150,8 @@ $ delete munchconfig.opt;* $ else $ link munchconfig.obj $ endif -$ WRITE_RESULT "Writing config.h" +$ echo "" +$ echo "Writing config.h" $ ! $ ! we need an fdl file $ CREATE [-]CONFIG.FDL @@ -3083,10 +3165,6 @@ $ if use_debugging_perl.eqs."Y" $ THEN $ WRITE CONFIG "#define DEBUGGING" $ ENDIF -$ if preload_env.eqs."Y" -$ THEN -$ WRITE CONFIG "#define PRIME_ENV_AT_STARTUP" -$ ENDIF $ if use_two_pot_malloc.eqs."Y" $ THEN $ WRITE CONFIG "#define TWO_POT_OPTIMIZE" @@ -3116,6 +3194,21 @@ $ if "''Has_Socketshr'".eqs."T" $ THEN $ WRITE CONFIG "#define VMS_DO_SOCKETS" $ ENDIF +$! This is VMS-specific for now +$ WRITE CONFIG "#''perl_d_setenv' HAS_SETENV" +$ if d_alwdeftype.eqs."Y" +$ THEN +$ WRITE CONFIG "#define SECURE_INTERNAL_GETENV" +$ ELSE +$ WRITE CONFIG "#undef SECURE_INTERNAL_GETENV" +$ ENDIF +$ if d_secintgenv.eqs."Y" +$ THEN +$ WRITE CONFIG "#define ALWAYS_DEFTYPES" +$ ELSE +$ WRITE CONFIG "#undef ALWAYS_DEFTYPES" +$ ENDIF +$ WRITE CONFIG "#define HAS_ENVGETENV" $ CLOSE CONFIG $! $! Now build the normal config.h @@ -3174,10 +3267,65 @@ $ ARCH_TYPE = "ARCH-TYPE=__AXP__" $ ELSE $ ARCH_TYPE = "ARCH-TYPE=__VAX__" $ ENDIF -$ WRITE_RESULT "Writing DESCRIP.MMS" +$ echo "Writing DESCRIP.MMS" $!set ver $ define/user sys$output [-]descrip.mms $ mcr []munchconfig [-]config.sh descrip_mms.template "''DECC_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" "''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'" "''MALLOC_REPLACE'" "''Thread_Live_Dangerously'" "PV=''LocalPerlVer'" +$ echo "Extracting Build_Ext.Com" +$ Create Sys$Disk:[-]Build_Ext.Com +$ Deck/Dollar="$EndOfTpl$" +$!++ Build_Ext.Com +$! NOTE: This files 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 [.vms]SubConfigure.Com instead. +$ def = F$Environment("Default") +$ exts1 = F$Edit(p1,"Compress") +$ p2 = F$Edit(p2,"Upcase,Compress,Trim") +$ If F$Locate("MCR ",p2).eq.0 Then p2 = F$Extract(3,255,p2) +$ miniperl = "$" + F$Search(F$Parse(p2,".Exe")) +$ mmk = p3 +$ targ = F$Edit(p4,"Lowercase") +$ i = 0 +$ next_ext: +$ ext = F$Element(i," ",p1) +$ If ext .eqs. " " Then Goto done +$ Define/User Perl_Env_Tables CLISYM_LOCAL +$ miniperl + ($extdir = $ENV{'ext'}) =~ s/::/./g; + if ($extdir =~ /^vms/i) { $extdir =~ s/vms/.vms.ext/i; } + else { $extdir = ".ext.$extdir"; } + ($ENV{'extdir'} = "[$extdir]"); + ($ENV{'up'} = ('-') x ($extdir =~ tr/././)); +$ Set Default &extdir +$ redesc = 0 +$ If F$Locate("clean",targ) .eqs. F$Length(targ) +$ Then +$ Write Sys$Output "Building ''ext' . . ." +$ 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]" +$ mmk 'targ' +$ i = i + 1 +$ Set Def &def +$ Goto next_ext +$ done: +$ sts = $Status +$ Set Def &def +$ Exit sts +$!-- Build_Ext.Com +$EndOfTpl$ +$ $! set nover $! $! Clean up after ourselves