.ifdef OLDTHREADED
THREADDEF =
THREAD = THREAD
-.ifdef LIBS2
-LIBS2 = $(LIBS2),sys$share:cma$lib_shr/share,cma$rtl/share
-.else
-LIBS2 = sys$share:cma$lib_shr/share,cma$rtl/share
-.endif
+THRLIBS1 = sys$share:cma$lib_shr/share|sys$share:cma$rtl/share
.ifdef __AXP__
-LIBS2 = $(LIBS2),sys$share:cma$open_lib_shr/share,cma$open_rtl/share
+THRLIBS2 = sys$share:cma$open_lib_shr/share|sys$share:cma$open_rtl/share
.endif
.endif
LIBS2=
.endif
+.ifdef THRLIBS1
+.else
+THRLIBS1=
+.endif
+
+.ifdef THRLIBS2
+.else
+THRLIBS2=
+.endif
+
+FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
+
#### End of system configuration section. ####
h1 = EXTERN.h, INTERN.h, XSUB.h, av.h, bytecode.h, byterun.h, config.h, cop.h, cv.h
h2 = embed.h, form.h, gv.h, handy.h, hv.h, keywords.h, mg.h, op.h, thread.h
h3 = opcode.h, patchlevel.h, perl.h, perly.h, pp.h, proto.h, regcomp.h
-h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h
+h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h, perlio.h
h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h, iperlsys.h
h = $(h1), $(h2), $(h3), $(h4), $(h5) $(SOCKHLIS) $(THREADH)
ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h
ac4 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)op.h $(ARCHCORE)opcode.h
ac5 = $(ARCHCORE)patchlevel.h $(ARCHCORE)perl.h $(ARCHCORE)perly.h $(ARCHCORE)thread.h $(ARCHCORE)iperlsys.h
-ac6 = $(ARCHCORE)pp.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlsdio.h
+ac6 = $(ARCHCORE)pp.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlsdio.h $(ARCHCORE)perlio.h
ac7 = $(ARCHCORE)regexp.h $(ARCHCORE)scope.h $(ARCHCORE)sv.h $(ARCHCORE)util.h
ac8 = $(ARCHCORE)embedvar.h $(ARCHCORE)intrpvar.h $(ARCHCORE)perlvars.h $(ARCHCORE)thrdvar.h
ac9 = $(ARCHCORE)vmsish.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt
printconfig :
@ @[.vms]make_command $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS)
- @ @[.vms]myconfig "$(CC)" "$(CFLAGS)" "$(LINKFLAGS)" "$(LIBS1)" "$(LIBS2)" "$(SOCKLIB)" "$(EXT)" "$(DBG)"
+ @ @[.vms]myconfig "$(CC)" "$(CFLAGS)" "$(LINKFLAGS)" "$(LIBS1)" "$(FULLLIBS2)" "$(SOCKLIB)" "$(EXT)" "$(DBG)"
.ifdef SOCKET
vmsish.h : $(SOCKH)
-$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
+$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h perlio.h
$(SOCKC) : [.vms]$(SOCKC)
Copy/Log/NoConfirm [.vms]$(SOCKC) []$(SOCKC)
$(ARCHCORE)perlsdio.h : perlsdio.h
@ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)perlio.h : perlio.h
+ @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
$(ARCHCORE)perlvars.h : perlvars.h
@ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
Copy/Log/Noconfirm [.vms]vms.c []
$(CRTL) : $(MAKEFILE)
- @ @[.vms]genopt "$(CRTL)/Write" "|" "$(LIBS1)|$(LIBS2)|$(SOCKLIB)"
+ @ @[.vms]genopt "$(CRTL)/Write" "|" "$(LIBS1)|$(FULLLIBS2)|$(SOCKLIB)"
cleanlis :
$! 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
+$! whatever) are tricky, so go ahead and punt on those.
+$!
+$! Simple changes, though (say, always setting something to 1, or undef,
+$! or something like that) are straightforward. Adding a new item for the
+$! ultimately created config.sh requires adding two lines to this file.
+$!
+$! First, a line in the format:
+$! $ perl_foo = "bar"
+$! after the line tagged ##ADD NEW CONSTANTS HERE##. Replace foo with the
+$! variable name as it appears in config.sh.
+$!
+$! Second, add a line in the format:
+$! $ WC "foo='" + perl_foo + "'"
+$! after the line tagged ##WRITE NEW CONSTANTS HERE##. Careful of the
+$! quoting, as it can be tricky.
$!
$! This .COM file expects to be called by configure.com, and thus expects
$! a few symbols in the environment. Notably:
$ hwname = f$getsyi("HW_NAME")
$ myname = myhostname
$ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
+$!
+$! ##ADD NEW CONSTANTS HERE##
$ perl_package="''package'"
$ perl_baserev = "''baserev'"
$ cc_defines=""
$ perl_d_setpwent="define"
$ perl_d_getpwent="define"
$ perl_d_endpwent="define"
+$ perl_ebcdic="undef"
$ perl_hintfile=""
$ perl_shrplib="define"
$ perl_usemymalloc=mymalloc
$ perl_archname="VMS_VAX"
$ perl_alignbytes="8"
$ ENDIF
+$ if ("''Use_Threads'".eqs."T")
+$ THEN
+$ perl_arch = "''perl_arch'-thread"
+$ perl_archname = "''perl_archname'-thread"
+$ ENDIF
$ perl_osvers=f$edit(osvers, "TRIM")
$ LocalPerlVer = "5_" + Perl_PATCHLEVEL + perl_subversion
$!
$ DEFINE SYS$OUTPUT _NLA0:
$ ON ERROR THEN CONTINUE
$ ON WARNING THEN CONTINUE
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ ON ERROR THEN CONTINUE
$ ON WARNING THEN CONTINUE
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
-$! link temp
+$! link temp.obj
$ OPEN/WRITE TEMPOUT [-.uu]tempout.lis
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ ON ERROR THEN CONTINUE
$ ON WARNING THEN CONTINUE
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ if (teststatus.nes."1")
$ THEN
$ ON WARNING THEN CONTINUE
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ OPEN/WRITE TEMPOUT [-.uu]tempout.lis
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ OPEN/WRITE TEMPOUT [-.uu]tempout.lis
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ OPEN/WRITE TEMPOUT [-.uu]tempout.lis
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ savedstatus = $status
$ teststatus = f$extract(9,1,savedstatus)
$ if (teststatus.nes."1")
$ ELSE
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ savedstatus = $status
$ teststatus = f$extract(9,1,savedstatus)
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ savedstatus = $status
$ teststatus = f$extract(9,1,savedstatus)
$ if (teststatus.nes."1")
$ ELSE
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ savedstatus = $status
$ teststatus = f$extract(9,1,savedstatus)
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ savedstatus = $status
$ teststatus = f$extract(9,1,savedstatus)
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ on error then continue
$ on warning then continue
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ teststatus = f$extract(9,1,$status)
$ DEASSIGN SYS$OUTPUT
$ DEASSIGN SYS$ERROR
$ DEFINE SYS$OUTPUT _NLA0:
$ ON ERROR THEN CONTINUE
$ ON WARNING THEN CONTINUE
-$ 'Checkcc' temp
+$ 'Checkcc' temp.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
-$ link temp,temp/opt
+$ link temp.obj,temp.opt/opt
$ else
-$ link temp
+$ link temp.obj
$ endif
$ OPEN/WRITE TEMPOUT [-.uu]tempout.lis
$ DEASSIGN SYS$OUTPUT
$ WC "d_sethent='" + perl_d_sethent + "'"
$ WC "d_setnent='" + perl_d_setsent + "'"
$ WC "d_setpent='" + perl_d_setpent + "'"
+$ WC "ebcdic='" + perl_ebcdic + "'"
$ WC "d_setsent='" + perl_d_setsent + "'"
$ WC "d_gethostprotos='" + perl_d_gethostprotos + "'"
$ WC "d_getnetprotos='" + perl_d_getnetprotos + "'"
$ WC "d_mknod='" + perl_d_mknod + "'"
$ WC "devtype='" + perl_devtype + "'"
$!
+$! ##WRITE NEW CONSTANTS HERE##
+$!
$ Close CONFIGSH
$
$! Okay, we've gotten here. Build munchconfig and run it
-$ 'Perl_CC' munchconfig
+$ 'Perl_CC' munchconfig.c
$ If (Needs_Opt.eqs."Yes")
$ THEN
$ open/write OPTCHAN []munchconfig.opt
$ endif
$ write OPTCHAN "Sys$Share:VAXCRTL/Share"
$ Close OPTCHAN
-$ link munchconfig,munchconfig/opt
+$ link munchconfig.obj,munchconfig.opt/opt
$ delete munchconfig.opt;*
$ else
-$ link munchconfig
+$ link munchconfig.obj
$ endif
$ WRITE_RESULT "Writing config.h"
$ !