VMS POD updates: perlport.pod, vmsperl.pod
[p5sagit/p5-mst-13.2.git] / vms / myconfig.com
1 $! #!/bin/sh  ---> MYCONFIG.COM
2
3 $! # This script is designed to provide a handy summary of the configuration
4 $! # information being used to build perl. This is especially useful if you
5 $! # are requesting help from comp.lang.perl.misc on usenet or via mail.
6
7 $! DCL-ified by Peter Prymmer <pvhp@lns62.lns.cornell.edu> 22-DEC-1995
8 $! DCL usage (choose one):
9 $!      @MYCONFIG                                                       !or
10 $!      @MYCONFIG/OUTPUT=MYCONFIG.OUT                                   !or
11 $!      @MYCONFIG [node::][which$disk:][[dir.subdir]]CONFIG.SH          !or
12 $!      @MYCONFIG/OUTPUT=MYCONFIG.OUT [node::][w$disk:][[dir]]CONFIG.SH
13 $!  version 2:
14 $! Incorporates Charles Bailey's ideas about bootstrapping system info - 
15 $! myconfig.com is now callable as a "myconfig" target in your maker and
16 $! may even work if miniperl.exe and config.sh files fail to be made.
17 $! Thus if: 
18 $!      MMK/DESCRIP=[.VMS]                             !(or MMS or MAKE)
19 $! does not work then try:
20 $!      MMK/DESCRIP=[.VMS]/OUTPUT=MYPERLBUILD.PROBLEM  !(or MMS or MAKE)
21 $! Then discuss the MYPERLBUILD.PROBLEM file with a local expert.
22 $! If that still does not work then try:
23 $!      MMK/DESCRIP=[.VMS]/OUT=MYNONFIG.OUT MYCONFIG   !(or MMS or MAKE)
24 $! send output (MYNONFIG.OUT) to an outside expert and ask politely for help.
25
26 $ ECHO = "WRITE SYS$OUTPUT " 
27 $ RATHER_LONG_DEFAULT_DIRECTORY_NAME = F$ENVIRONMENT("DEFAULT")
28
29 $ if (p1.nes."").and.(p2.eqs."")
30 $   then RATHER_LONG_FILENAME_TO_FIND = p1 !no typo-checking (experts only)
31 $   else RATHER_LONG_FILENAME_TO_FIND = "CONFIG.SH"
32 $ endif
33 $Research:
34 $ RATHER_LONG_FILENAME_SEARCH = F$Search(RATHER_LONG_FILENAME_TO_FIND)
35 $ if RATHER_LONG_FILENAME_SEARCH.EQS."" 
36 $   then
37 $     if f$parse(f$environment("DEFAULT"),,,"DIRECTORY",).NES."[000000]"
38 $       then 
39 $         set default [-]
40 $         goto Research
41 $       else
42 $         ECHO "Can't find the perl config.sh file produced by Configure"
43 $         set default 'RATHER_LONG_DEFAULT_DIRECTORY_NAME'
44 $!         exit 3
45 $         goto cannot_find_config_sh
46 $     endif
47 $ endif
48
49 $ open/read RATHER_LONG_CONFIG_FILE_HANDLE 'RATHER_LONG_FILENAME_SEARCH' 
50 $Loop:
51 $  read/end_of_file = Done RATHER_LONG_CONFIG_FILE_HANDLE  line
52 $  name = f$extract(0,f$locate("=",line),line)
53 $  start = f$locate("'",line)+1
54 $  stop = f$locate("'",line)
55 $  value = f$extract(start,stop-start,line)
56 $  if (f$locate("#",name).eqs.f$length(name)).and. -
57       (name.nes."").and. -
58       (name.nes."'") -               !bug in configure.com for osvers='' ?
59         then $$'name' = "'" + value  !$ not necessary but looks more sh-ish
60 $ goto Loop
61
62 $Done:
63 $ close RATHER_LONG_CONFIG_FILE_HANDLE 
64 $ goto spit_it_out
65
66 $cannot_find_config_sh:
67 $! these parameters are assumed to be passed from make/mm[s|k]:
68 $!   p1=$(CC),    p2=$(CFLAGS), p3=$(LINKFLAGS), 
69 $!   p4=$(LIBS1), p5=$(LIBS2),  p6=$(SOCKLIB),
70 $!   p7=$(EXT),   p8=$(DBG)
71 $! so assign to appropriate $var:
72 $ $cc = "'"+p1+"'"            ! p1=$(CC) from make
73 $ $ccflags = "'"+p2+"'"       ! p2=$(CFLAGS) from make
74 $ $ldflags = "'"+p3+"'"       ! p3=$(LINKFLAGS) from make 
75 $ $libs = "'"+p4+" "+p5+" "+p6+"'" ! p4$(LIBS1),p5$(LIBS2),p6$(SOCKLIB)frm make
76 $ $staticexts = "'"+p7+"'"         ! p7=$(EXT) from make
77
78 $!  hard-coded stuff (for now): 
79 $ $cppflags = "'"+"'"  !(vestigal)
80 $ $optimize = "'"+"'"  !descrip.mms has /Optimize=2 in $(XTRACCFLAGS)
81
82 $ $osname = "'"+f$edit(f$getsyi("NODE_SWTYPE"),"COLLAPSE")
83 $ $osvers = f$edit(f$getsyi("VERSION")-"V","COLLAPSE")
84 $ if f$getsyi("HW_MODEL").GT.1024
85 $   then $$archname = "'VMS_AXP'"  !string from descrip.mms vmsperl 12-21-95
86 $   else $$archname = "'VMS_VAX'"  !string from descrip.mms vmsperl 12-21-95
87 $ endif
88 $ $myname = ""
89 $  if $myname.eqs."" then $$myname = f$trnlnm("ARPANET_HOST_NAME")
90 $  if $myname.eqs."" then $$myname = f$trnlnm("INTERNET_HOST_NAME")
91 $  if $myname.eqs."" then $$myname = f$trnlnm("MULTINET_HOST_NAME")
92 $  if $myname.eqs."" then $$myname = f$trnlnm("UCX$INET_HOST_NAME")
93 $  if $myname.eqs."" then $$myname = f$trnlnm("TCPWARE_DOMAINNAME")
94 $  if $myname.eqs."" then $$myname = f$trnlnm("NEWS_ADDRESS")
95 $  if $myname.eqs."" then $$myname = f$trnlnm("SYS$NODE")
96 $!  Is this same as configure.com ? (spacing/order unknown):
97 $ $myuname=$osname+" "+$myname+" "+$osvers+" "+F$GetSyi("HW_NAME")+"'"
98 $ $osname = $osname+"'"
99 $ $osvers = "'"+$osvers+"'"
100
101 $look_for_patchlevel_h:
102 $!
103 $ RATHER_LONG_FILENAME_TO_FIND = "PATCHLEVEL.H"
104 $Research_patchlevel_h:
105 $ RATHER_LONG_FILENAME_SEARCH = F$Search(RATHER_LONG_FILENAME_TO_FIND)
106 $ if RATHER_LONG_FILENAME_SEARCH.EQS."" 
107 $   then
108 $     if f$parse(f$environment("DEFAULT"),,,"DIRECTORY",).NES."[000000]"
109 $       then 
110 $         set default [-]
111 $         goto Research_patchlevel_h
112 $       else
113 $         ECHO "Can't find the header file patchlevel.h used to make config.sh"
114 $         set default 'RATHER_LONG_DEFAULT_DIRECTORY_NAME'
115 $         goto spit_it_out
116 $     endif
117 $ endif
118
119 $ open/read RATHER_LONG_CONFIG_FILE_HANDLE 'RATHER_LONG_FILENAME_SEARCH' 
120 $read_patchlevel_h:
121 $ read/end_of_file = patchlevel_h_Done RATHER_LONG_CONFIG_FILE_HANDLE  line
122 $ if f$locate("PERL_VERSION",line).ne.f$length(line)
123 $   then
124 $     line = f$edit(line,"TRIM,COMPRESS")
125 $     $PATCHLEVEL = f$element(2," ",line)
126 $     if f$type($SUBVERSION).nes."" then goto patchlevel_h_Done
127 $ endif
128 $ if f$locate("PERL_SUBVERSION",line).ne.f$length(line)
129 $   then
130 $     line = f$edit(line,"TRIM,COMPRESS")
131 $     $SUBVERSION = f$element(2," ",line)
132 $     if f$type($PATCHLEVEL).nes."" then goto patchlevel_h_Done
133 $ endif
134 $ goto read_patchlevel_h
135
136 $patchlevel_h_Done:
137 $ close RATHER_LONG_CONFIG_FILE_HANDLE 
138 $ if $PATCHLEVEL.eqs.""
139 $   then
140 $     echo "warning: PERL_VERSION was not found in ''RATHER_LONG_FILENAME_TO_FIND':" 
141 $ endif
142 $!
143 $spit_it_out:
144 $ if (p8.nes."").and.($ld.nes."") then $ld = $ld + " DBG='"+p8+"'" 
145 $! $spitshell = ECHO !<<!GROK!THIS! 
146 $ ECHO " "
147 $ ECHO "Summary of my ''$package' (version ''$PATCHLEVEL' subversion ''$SUBVERSION') configuration:"
148 $ ECHO "  Platform:"
149 $ ECHO "    osname=''$osname', osvers=''$osvers', archname=''$archname'"
150 $ ECHO "     uname=''$myuname'"                             !->d_has_uname?
151 $ ECHO "     hint=''$hint' d_sigaction='undef'"             !->hintfile?
152 $ ECHO "     static exts=''$staticexts'"                    ! added for VMS
153 $ ECHO "   Compiler:"
154 $ ECHO "     cc=''$cc', optimize=''$optimize', ld=''$ld'"
155 $ ECHO "     cppflags=''$cppflags'"
156 $ ECHO "     ccflags =''$ccflags'"                          !->vms_cc_type?
157 $ ECHO "     ldflags =''$ldflags'"
158 $ ECHO "     stdchar=''$stdchar', d_stdstdio=''$d_stdstdio', usevfork=''$usevfork'"
159 $ ECHO "     voidflags=''$voidflags', castflags=''$castflags', d_casti32=''$d_casti32', d_castneg=''$d_castneg'"
160 $ ECHO "     intsize=''$intsize', alignbytes=''$alignbytes', usemymalloc=''$usemymalloc', randbits=''$randbits'"
161 $ ECHO "   Libraries:"
162 $ ECHO "     so=''$so'"
163 $ ECHO "     libpth=''$libpth'"
164 $ ECHO "     libs=''$libs'"
165 $ ECHO "     libc=''$libc'"
166 $ ECHO "   Dynamic Linking:"
167 $ ECHO "     dlsrc=''$dlsrc', dlext=''$dlext', d_dlsymun=''$d_dlsymun'"
168 $ ECHO "     cccdlflags=''$cccdlflags', ccdlflags=''$ccdlflags', lddlflags=''$lddlflags'"
169 $ ECHO " " 
170 $ !GROK!THIS!
171 $ SET DEFAULT 'RATHER_LONG_DEFAULT_DIRECTORY_NAME'
172 $ EXIT