chdir 't' if -d 't';
@INC = '../lib';
require Config; import Config;
- if ($Config{'extensions'} !~ /\bFileHandle\b/) {
+ if ($Config{'extensions'} !~ /\bFileHandle\b/
+ && $Config{'osname'} ne 'VMS') {
print "1..0\n";
exit 0;
}
-#> This file produced from vms/descrip.mms by vms/mms2make.pl
+#> This file produced from descrip.mms by mms2make.pl
#> Lines beginning with "#>" were commented out during the
-#> conversion process. For more information, see vms/mms2make.pl
+#> conversion process. For more information, see mms2make.pl
#>
-# Descrip.MMS for perl5 on VMS
+# Makefile for perl5 on VMS
# Last revised 17-Jan-1995 by Charles Bailey bailey@genetics.upenn.edu
#
#
# during build) files generated by executing this file,
# but leave `installable' files (images, library) intact
# realclean -- remove all files generated by executing this file
-# cleansrc -- `realclean' + purge *.c,*.h,descrip.mms
+# cleansrc -- `realclean' + purge *.c,*.h,Makefile
# crtl.opt -- compiler-specific linker options file (made automatically)
#
ARCHAUTO = [.lib.$(ARCH).auto]
+
+
# -fno-builtin avoids bug in gcc up to version 2.6.2 which can destroy
# data when memcpy() is called on large (>64 kB) blocks of memory
# (fixed in gcc 2.6.3)
# off SYSNAM for the MM[SK] subprocess doesn't hurt anything, so we do it
# just in case.
.first:
- @ If f$$TrnLnm("Sys").eqs."" Then Define/NoLog SYS sys$$Library
+ @ If f$$TrnLnm("Sys").eqs."" .and. f$$TrnLnm("VAXC$Include").eqs."" Then Define/NoLog SYS sys$$Library
+ @ If f$$TrnLnm("Sys").eqs."" .and. f$$TrnLnm("VAXC$Include").nes."" Then Define/NoLog SYS VAXC$Include
+
XTRACCFLAGS = /Include=[]/Object=$(O)
XTRADEF =
LIBS2 = sys$$Share:VAXCRTL/Shareable
LINKFLAGS = $(DBGLINKFLAGS)
MAKE = $(MMS)
-MAKEFILE = [.VMS]Descrip.MMS # this file
+MAKEFILE = [.VMS]Makefile # this file
NOOP = continue
# Macros to invoke a copy of miniperl during the build. Targets which
@ $(NOOP)
base : miniperl$(E) perl$(E)
@ $(NOOP)
-extras : Safe libmods utils podxform
+extras : FileHandle Safe libmods utils podxform
@ $(NOOP)
libmods : [.lib]Config.pm [.lib.$(ARCH)]Config.pm [.lib]DynaLoader.pm [.lib.VMS]Filespec.pm
@ $(NOOP)
Safe : [.lib]Safe.pm [.lib.auto]Safe$(E)
@ $(NOOP)
-[.lib]Safe.pm : [.ext.Safe]Descrip.MMS
+[.lib]Safe.pm : [.ext.Safe]Makefile
@ Set Default [.ext.Safe]
$(MMS)
@ Set Default [--]
-[.lib.auto]Safe$(E) : [.ext.Safe]Descrip.MMS
+[.lib.auto]Safe$(E) : [.ext.Safe]Makefile
@ Set Default [.ext.Safe]
$(MMS)
@ Set Default [--]
# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
# ${@} necessary to distract different versions of MM[SK]/make
-[.ext.Safe]Descrip.MMS : [.ext.Safe]Makefile.PL [.lib.$(ARCH)]Config.pm [.lib.VMS]Filespec.pm [.lib]DynaLoader.pm perlshr$(E)
+[.ext.Safe]Makefile : [.ext.Safe]Makefile.PL [.lib.$(ARCH)]Config.pm [.lib.VMS]Filespec.pm [.lib]DynaLoader.pm perlshr$(E)
$(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Safe]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" 2>_nla0:
+FileHandle : [.lib]FileHandle.pm [.lib.auto]FileHandle$(E)
+ @ $(NOOP)
+
+[.lib]FileHandle.pm : [.ext.FileHandle]Makefile
+ @ Set Default [.ext.FileHandle]
+ $(MMS)
+ @ Set Default [--]
+
+[.lib.auto]FileHandle$(E) : [.ext.FileHandle]Makefile
+ @ Set Default [.ext.FileHandle]
+ $(MMS)
+ @ Set Default [--]
+
+# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
+# ${@} necessary to distract different versions of MM[SK]/make
+[.ext.FileHandle]Makefile : [.ext.FileHandle]Makefile.PL [.lib.$(ARCH)]Config.pm [.lib.VMS]Filespec.pm [.lib]DynaLoader.pm perlshr$(E)
+ $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.FileHandle]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" 2>_nla0:
+
[.lib.VMS]Filespec.pm : [.vms.ext]Filespec.pm
@ If f$$Search("[.lib]VMS.Dir").eqs."" Then Create/Directory [.lib.VMS]
Copy/Log/NoConfirm [.vms.ext]Filespec.pm $@
- If f$$Search("[.Ext.DynaLoader]DL_VMS$(O);-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O)
- If f$$Search("[.Ext.DynaLoader]DL_VMS.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
- If f$$Search("[.Ext.Safe...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.Safe]
+ - If f$$Search("[.Ext.FileHandle...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.FileHandle]
- If f$$Search("[.VMS.Ext...]*.C;-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*.C
- If f$$Search("[.VMS.Ext...]*$(O);-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*$(O)
- If f$$Search("[.Lib.Auto...]*.al;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Auto...]*.al
- If f$$Search("[.Ext.Socket]Socket.C").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket.C;*
- If f$$Search("[.VMS.Ext...]*.C").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*.C;*
- If f$$Search("[.VMS.Ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*$(O);*
+ Set Default [.ext.FileHandle]
+ - $(MMS) clean
+ Set Default [--]
Set Default [.ext.Safe]
- $(MMS) clean
Set Default [--]
- If f$$Search("[.lib.pod]*.pod").nes."" Then Delete/NoConfirm/Log [.lib.pod]*.pod;*
- If f$$Search("[.lib.pod]perldoc.").nes."" Then Delete/NoConfirm/Log [.lib.pod]perldoc.;*
- If f$$Search("[.lib.pod]pod2*.").nes."" Then Delete/NoConfirm/Log [.lib.pod]pod2*.;*
+ Set Default [.ext.FileHandle]
+ - $(MMS) realclean
+ Set Default [--]
Set Default [.ext.Safe]
- $(MMS) realclean
Set Default [--]
* program already searches PRIVLIB_EXP.
*/
#ifdef __ALPHA
-#define ARCHLIB_EXP "/perl_root/lib/VMS_AXP" /* config-skip */
+#define ARCHLIB_EXP "/perl_root/lib/VMS_AXP/5_002" /* config-skip */
#else
-#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX" /* config-skip */
+#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_002" /* config-skip */
#endif
/* CPPSTDIN:
* used in programs that are not prepared to deal with ~ expansion at
* run-time.
*/
-#define OLDARCHLIB_EXP "/perl_root/lib" /**/
+#ifdef __ALPHA
+#define OLDARCHLIB_EXP "/perl_root/lib/VMS_AXP" /* config-skip */
+#else
+#define OLDARCHLIB_EXP "/perl_root/lib/VMS_VAX" /* config-skip */
+#endif
/* PRIVLIB_EXP:
* This symbol contains the name of the private library for this package.
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#undef SITELIB_EXP /**/
+#define SITELIB_EXP "/perl_root/lib/site_perl" /**/
/* SITEARCH_EXP:
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#undef SITEARCH_EXP /**/
+#ifdef __ALPHA
+#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_AXP" /* config-skip */
+#else
+#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_VAX" /* config-skip */
+#endif
/* SCRIPTDIR:
* This symbol holds the name of the directory in which the user wants
ARCHAUTO = [.lib.$(ARCH).auto]
+#: Backwards compatibility
+.ifdef DECC_PIPES_BROKEN
+PIPES_BROKEN = 1
+.endif
+
+
#: >>>>>Compiler-specific options <<<<<
.ifdef GNUC
.first
XTRADEF =
.else # VAXC
.first
- @ If F$TrnLnm("Sys").eqs."" Then Define/NoLog SYS Sys$Library
+ @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").eqs."" Then Define/NoLog SYS Sys$Library
+ @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").nes."" Then Define/NoLog SYS VAXC$Include
+
XTRACCFLAGS = /Include=[]/Object=$(O)
XTRADEF =
LIBS2 = Sys$Share:VAXCRTL/Shareable
@ $(NOOP)
base : miniperl$(E) perl$(E)
@ $(NOOP)
-extras : Safe libmods utils podxform
+extras : FileHandle Safe libmods utils podxform
@ $(NOOP)
libmods : [.lib]Config.pm [.lib.$(ARCH)]Config.pm [.lib]DynaLoader.pm [.lib.VMS]Filespec.pm
@ $(NOOP)
# The following files are built in one go by gen_shrfls.pl:
# perlshr_attr.opt, $(DBG)perlshr_bld.opt - VAX and AXP
# perlshr_gbl*.mar, perlshr_gbl*$(O) - VAX only
-.ifdef DECC_PIPES_BROKEN
+.ifdef PIPES_BROKEN
# This is a backup target used only with older versions of the DECCRTL which
# can't deal with pipes properly. See ReadMe.VMS for details.
$(DBG)perlshr_xtras.ts : perl.h config.h vmsish.h proto.h [.vms]gen_shrfls.pl $(MINIPERL_EXE) $(MAKEFILE) $(CRTL)
$(CC) $(CFLAGS)/NoObject/NoList/PreProcess=perl.i perl.h
- $(MINIPERL) [.vms]gen_shrfls.pl "~~NOCC~~perl.i" "$(O)" "$(DBG)" "$(OLB)" "$(EXT)" "$(CRTL)"
+ $(MINIPERL) [.vms]gen_shrfls.pl "~~NOCC~~perl.i~~$(CC)$(CFLAGS)" "$(O)" "$(DBG)" "$(OLB)" "$(EXT)" "$(CRTL)"
@ Delete/NoLog/NoConfirm perl.i;
@ If F$Search("$(DBG)perlshr_xtras.ts").nes."" Then Delete/NoLog/NoConfirm $(DBG)perlshr_xtras.ts;*
@ Copy NLA0: $(DBG)perlshr_xtras.ts
[.ext.Safe]Descrip.MMS : [.ext.Safe]Makefile.PL [.lib.$(ARCH)]Config.pm [.lib.VMS]Filespec.pm [.lib]DynaLoader.pm perlshr$(E)
$(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Safe]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" 2>_nla0:
+FileHandle : [.lib]FileHandle.pm [.lib.auto]FileHandle$(E)
+ @ $(NOOP)
+
+[.lib]FileHandle.pm : [.ext.FileHandle]Descrip.MMS
+ @ Set Default [.ext.FileHandle]
+ $(MMS)
+ @ Set Default [--]
+
+[.lib.auto]FileHandle$(E) : [.ext.FileHandle]Descrip.MMS
+ @ Set Default [.ext.FileHandle]
+ $(MMS)
+ @ Set Default [--]
+
+# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
+# ${@} necessary to distract different versions of MM[SK]/make
+[.ext.FileHandle]Descrip.MMS : [.ext.FileHandle]Makefile.PL [.lib.$(ARCH)]Config.pm [.lib.VMS]Filespec.pm [.lib]DynaLoader.pm perlshr$(E)
+ $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.FileHandle]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" 2>_nla0:
+
[.lib.VMS]Filespec.pm : [.vms.ext]Filespec.pm
@ If F$Search("[.lib]VMS.Dir").eqs."" Then Create/Directory [.lib.VMS]
Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
- If F$Search("[.Ext.DynaLoader]DL_VMS$(O);-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O)
- If F$Search("[.Ext.DynaLoader]DL_VMS.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
- If F$Search("[.Ext.Safe...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.Safe]
+ - If F$Search("[.Ext.FileHandle...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.FileHandle]
- If F$Search("[.VMS.Ext...]*.C;-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*.C
- If F$Search("[.VMS.Ext...]*$(O);-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*$(O)
- If F$Search("[.Lib.Auto...]*.al;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Auto...]*.al
- If F$Search("[.Ext.Socket]Socket.C").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket.C;*
- If F$Search("[.VMS.Ext...]*.C").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*.C;*
- If F$Search("[.VMS.Ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*$(O);*
+ Set Default [.ext.FileHandle]
+ - $(MMS) clean
+ Set Default [--]
Set Default [.ext.Safe]
- $(MMS) clean
Set Default [--]
- If F$Search("[.lib.pod]*.pod").nes."" Then Delete/NoConfirm/Log [.lib.pod]*.pod;*
- If F$Search("[.lib.pod]perldoc.").nes."" Then Delete/NoConfirm/Log [.lib.pod]perldoc.;*
- If F$Search("[.lib.pod]pod2*.").nes."" Then Delete/NoConfirm/Log [.lib.pod]pod2*.;*
+ Set Default [.ext.FileHandle]
+ - $(MMS) realclean
+ Set Default [--]
Set Default [.ext.Safe]
- $(MMS) realclean
Set Default [--]
else { die "$0: Can't find perl.h\n"; }
}
else {
- ($ccvers,$cpp_file) = ($cc_cmd =~ /^~~(\w+)~~(.*)/);
- $isgcc = $ccvers =~ /GCC/
+ ($junk,$ccvers,$cpp_file,$cc_cmd) = split(/~~/,$cc_cmd,4);
+ $isgcc = $cc_cmd =~ /case_hack/i
or 0; # for nice debug output
- $isvaxc = (!$isgcc && $ccvers =~ /VAXC/)
+ $isvaxc = (!$isgcc && $cc_cmd !~ /standard=/i)
or 0; # again, for nice debug output
print "\$isgcc: \\$isgcc\\\n" if $debug;
print "\$isvaxc: \\$isvaxc\\\n" if $debug;
print OUT "d_vms_do_sockets=",$dosock ? "'define'\n" : "'undef'\n";
print OUT "d_has_sockets=",$dosock ? "'define'\n" : "'undef'\n";
$archlib = &VMS::Filespec::vmspath($privlib);
-$archlib =~ s#\]#.VMS_$archsufx\]#;
$installarchlib = &VMS::Filespec::vmspath($installprivlib);
-$installarchlib =~ s#\]#.VMS_$archsufx\]#;
+$sitearch = &VMS::Filespec::vmspath($sitelib);
+$archlib =~ s#\]#.VMS_$archsufx\]#;
+print OUT "oldarchlib='$archlib'\n";
+print OUT "oldarchlibexp='$archlib'\n";
+($vers = $]) =~ tr/./_/;
+$archlib =~ s#\]#.$vers\]#;
+$installarchlib =~ s#\]#.VMS_$archsufx.$vers\]#;
print OUT "archlib='$archlib'\n";
print OUT "archlibexp='$archlib'\n";
print OUT "installarchlib='$installarchlib'\n";
+print OUT "sitearch='$sitearch'\n";
+print OUT "sitearchexp='$sitearch'\n";
if (open(OPT,"${outdir}crtl.opt")) {
while (<OPT>) {
timetype=long
builddir=perl_root:[000000]
prefix=perl_root
-installprivlib=perl_root:[lib]
-privlib=perl_root:[lib]
+installprivlib=perl_root:[lib] # The *lib constants should match the
+privlib=perl_root:[lib] # equivalent *(?:ARCH)LIB_EXP constants
+sitelib=perl_root:[lib.site_perl] # in config.h
installbin=perl_root:[000000]
installman1dir=perl_root:[man.man1]
installman3dir=perl_root:[man.man3]
$! # This script is designed to provide a handy summary of the configuration
$! # information being used to build perl. This is especially useful if you
-$! # are requesting help from comp.lang.perl on usenet or via mail.
+$! # are requesting help from comp.lang.perl.misc on usenet or via mail.
$! DCL-ified by Peter Prymmer <pvhp@lns62.lns.cornell.edu> 22-DEC-1995
$! DCL usage (choose one):
/* gcc's header files don't #define direct access macros
* corresponding to VAXC's variant structs */
#ifdef __GNUC__
-# define uic$v_format uic$r_uic_form.uiv$v_format
-# define uic$v_group uic$r_uic_form.uiv$v_group
-# define uic$v_member uic$r_uic_form.uiv$v_member
+# define uic$v_format uic$r_uic_form.uic$v_format
+# define uic$v_group uic$r_uic_form.uic$v_group
+# define uic$v_member uic$r_uic_form.uic$v_member
# define prv$v_bypass prv$r_prvdef_bits0.prv$v_bypass
# define prv$v_grpprv prv$r_prvdef_bits0.prv$v_grpprv
# define prv$v_readall prv$r_prvdef_bits0.prv$v_readall
#undef HAS_NTOHL
#endif
+#define TMPPATH "sys$scratch:perl-eXXXXXX"
+
#endif /* __vmsish_h_included */