$!: is prepended to libpth. This variable takes care of special !sfn
$!: machines, like the mips. Usually, it should be empty. !sfn
$!plibpth='' !sfn
-$!: full support for void wanted by default !sfn
-$!defvoidused=15 !sfn
$!: List of libraries we want. !sfn
$!libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl' !sfn
-$!libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt" !sfn
+$!libswanted="$libswanted ld sun m c cposix posix ndir dir crypt" !sfn
$!libswanted="$libswanted ucb bsd BSD PW x" !sfn
$!: We probably want to search /usr/shlib before most other libraries. !sfn
$!: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. !sfn
$ extractsh=""
$ override=""
$ knowitall=""
-$ ccname="VAX"
+$ ccname="DECC"
$ Dec_C_Version = ""
$ cxxversion = ""
$ use_threads = "F"
$ CLOSE CONFIG
$ ENDIF
$!
-$ IF F$TYPE(usedevel) .EQS. "" THEN usedevel := n
+$ IF F$TYPE(usedevel) .EQS. "" THEN usedevel = "undef"
$ patchlevel_h = F$SEARCH("[-]patchlevel.h")
$ IF (patchlevel_h.NES."")
$ THEN
$!
$ config_symbols0 ="|archlib|archlibexp|bin|binexp|builddir|cf_email|config_sh|installarchlib|installbin|installman1dir|installman3dir|"
$ config_symbols1 ="|installprivlib|installscript|installsitearch|installsitelib|most|oldarchlib|oldarchlibexp|osname|pager|perl_symbol|perl_verb|"
-$ config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|"
+$ config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|usecxx|use64bitall|use64bitint|"
$ config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|uselongdouble|usemultiplicity|usemymalloc|usedebugging_perl|"
-$ config_symbols4 ="|useperlio|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|"
-$ config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols"
+$ config_symbols4 ="|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|"
+$ config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols|useversionedarchname"
$!
$ open/read CONFIG 'config_sh'
$ rd_conf_loop:
$!First time through, eh? I have some defaults handy for the following systems:
$!
$! EOD
-$! echo " ","VMS_VAX"
$! echo " ","VMS_AXP"
$! echo " ","VMS_IA64"
$! : Now look for a hint file osname_osvers, unless one has been
$! base name early because not all questions are worth asking on all
$! platforms.
$!
-$! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_VAX" (or "VMS_AXP" or
+$! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_AXP" (or
$! "VMS_IA64") from here on to allow cross-platform configuration (e.g.
-$! configure a VAX build on an Alpha).
+$! configure a IA64 build on an Alpha).
$!
$ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0)
$ THEN
-$ archname = "VMS_VAX"
-$ otherarch = "an Alpha or IA64"
-$ alignbytes="8"
-$ arch_type = "ARCH-TYPE=__VAX__"
+$ echo "Sorry, VAX is no longer supported by this Perl version."
+$ echo "Please try Perl 5.22 or earlier"
+$ exit 44
$ ELSE
$ IF (F$GETSYI("ARCH_TYPE") .EQ. 2)
$ THEN
$ archname = "VMS_AXP"
-$ otherarch = "a VAX or IA64"
+$ otherarch = "IA64"
$ arch_type = "ARCH-TYPE=__AXP__"
$ ELSE
$ archname = "VMS_IA64"
-$ otherarch = "a VAX or Alpha"
+$ otherarch = "Alpha"
$ arch_type = "ARCH-TYPE=__IA64__"
$ ENDIF
$ alignbytes="8"
$!
$Cxx_initial_check:
$!
-$! Do note that [vms]perl source files have a ways to go before they will
-$! compile under CXX.
-$! In order to test Configure.com with CXX invoke it with "-Dtry_cxx" on
+$! In order to build with the HP C++ compiler, invoke configure.com with "-Dusecxx" on
$! the command line.
$!
-$ IF F$TYPE(try_cxx) .EQS. "" THEN try_cxx := n
-$ IF try_cxx .OR. try_cxx .EQS. "define"
-$!
+$ IF F$TYPE(usecxx) .EQS. "" THEN usecxx := n
+$ IF usecxx .OR. usecxx .EQS. "define"
$ THEN
$!
$ echo "Checking for CXX..."
$ ! link && DEC C++ V5.6-013 on OpenVMS VAX V7.1
$ IF tmp .eq. %X10000001
$ THEN
-$ ld_try = "Link"
+$ ld_try = "Link/nodebug"
$ vms_cc_available = vms_cc_available + "cxx "
$ echo "CXX and LINK are available."
$ ELSE
$ echo "( ''vms_cc_available')"
$ IF .NOT.nocc
$ THEN
-$ dflt = "cc''vms_cc_dflt'" !-> "cc" in case first compile went OK
+$ IF usecxx .OR. usecxx .EQS. "define"
+$ THEN
+$ dflt = "cxx"
+$ ELSE
+$ dflt = "cc''vms_cc_dflt'" !-> "cc" in case first compile went OK
+$ ENDIF
$ ELSE
$ dflt = gcc_symbol
$ ENDIF
$ echo "You are using Dec C ''line'"
$ ccversion = line
$ Dec_C_Version = F$INTEGER(line)
-$ IF Dec_C_Version .GE. 60200000 .AND. F$ELEMENT(0, "-", archname) .NES. "VMS_VAX"
-$ THEN
-$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags."
-$ ccflags = ccflags + "/NOANSI_ALIAS"
-$ ENDIF
+$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags."
+$ ccflags = ccflags + "/NOANSI_ALIAS"
$ DELETE/NOLOG/NOCONFIRM deccvers.*;
$ ENDIF
$Gcc_check:
$ cxxversion = line
$ ccversion = line
$ d_cplusplus = "define"
+$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags."
+$ ccflags = ccflags + "/NOANSI_ALIAS"
$ CALL Cxx_demangler_cleanup
$ ELSE
$ d_cplusplus = "undef"
$List_Parse:
$ OPEN/READ CONFIG ccvms.lis
$ READ CONFIG line
-$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_VAX"
+$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP"
$ THEN
-$ read CONFIG line
-$ archsufx = "VAX"
+$ archsufx = "AXP"
$ ELSE
-$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP"
-$ THEN
-$ archsufx = "AXP"
-$ ELSE
-$ archsufx = "IA64"
-$ ENDIF
+$ archsufx = "IA64"
$ ENDIF
$ CLOSE CONFIG
$ line = F$EDIT(line,"TRIM,COMPRESS")
$!: see if nm is to be used to determine whether a symbol is defined or not
$!: get list of predefined functions in a handy place
$!: see if we have sigaction or sigprocmask
-$!: see whether socketshr exists
-$ IF (F$SEARCH(F$PARSE("SocketShr","Sys$Share:.Exe")).NES."")
-$ THEN
-$ Has_socketshr = "T"
-$ echo ""
-$ echo4 "Hmm... Looks like you have SOCKETSHR Berkeley networking support."
-$ ELSE
-$ Has_socketshr = "F"
-$ ENDIF
$ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. (ccname .EQS. "CXX")
$ THEN
$ Has_Dec_C_Sockets = "T"
$ ELSE
$ Has_Dec_C_Sockets = "F"
$ ENDIF
-$ ! Hey, we've got both. Default to Dec C, then, since it's better
-$ IF Has_socketshr .OR. Has_Dec_C_Sockets
+$!
+$ IF Has_Dec_C_Sockets
$ THEN
$ echo ""
-$ echo "You have sockets available. Which socket stack do you want to"
-$ echo "build into Perl?"
-$ IF Has_Dec_C_Sockets
-$ THEN
-$ dflt = "DECC"
-$ ELSE
-$ dflt = "SOCKETSHR"
-$ ENDIF
-$ rp = "Choose socket stack (NONE"
-$ IF Has_socketshr THEN rp = rp + ",SOCKETSHR"
+$ echo "You have sockets available via the C library. Should socket support"
+$ echo "be built into Perl?"
+$ dflt = "DECC"
+$ rp = "Choose socket support option (NONE"
$ IF Has_Dec_C_Sockets THEN rp = rp + ",DECC"
$ rp = rp + ") [''dflt'] "
$ GOSUB myread
$ Has_socketshr = "F"
$ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE")
$ IF ans.eqs."decc" THEN Has_Dec_C_Sockets = "T"
-$ IF ans.eqs."socketshr" THEN Has_socketshr = "T"
$ ENDIF
$!
$!
$ IF use_vmsdebug_perl
$ THEN
$ usevmsdebug = "define"
-$ macros = macros + """__DEBUG__=1"","
$ ELSE
$ usevmsdebug = "undef"
$ ENDIF
$ GOSUB myread
$ use_debugging_perl = ans
$!
-$! Ask if they want to build with MULTIPLICITY
-$ echo ""
-$ echo "Perl can be built so that multiple Perl interpreters can coexist"
-$ echo "within the same Perl executable."
-$ IF usethreads .OR. usethreads .EQS. "define"
-$ THEN
-$ echo "This multiple interpreter support is required for interpreter-based threads."
-$ usemultiplicity="define"
-$ ELSE
-$ bool_dflt = "n"
-$ if f$type(usemultiplicity) .nes. ""
-$ then
-$ if usemultiplicity .or. usemultiplicity .eqs. "define" then bool_dflt = "y"
-$ endif
-$ rp = "Build Perl for multiplicity? [''bool_dflt'] "
-$ GOSUB myread
-$ IF ans
-$ THEN
-$ usemultiplicity="define"
-$ ELSE
-$ usemultiplicity="undef"
-$ ENDIF
-$ ENDIF
-$!
-$! Ask if they want to build with 64-bit support
-$ IF (F$ELEMENT(0, "-", archname).NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
-$ THEN
-$ bool_dflt = "n"
-$ IF F$TYPE(use64bitint) .NES. ""
-$ THEN
-$ IF use64bitint .OR. use64bitint .eqs. "define" THEN bool_dflt = "y"
-$ ENDIF
-$ echo ""
-$ echo "You have natively 64-bit long integers."
-$ echo ""
-$ echo "Perl can be built to take advantage of 64-bit integer types"
-$ echo "on some systems, To do so, Configure can be run with -Duse64bitint."
-$ echo "Choosing this option will most probably introduce binary incompatibilities."
-$ echo ""
-$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
-$ rp = "Try to use 64-bit integers, if available? [''bool_dflt'] "
-$ GOSUB myread
-$ use64bitint = ans
-$!
-$ bool_dflt = "n"
-$ IF F$TYPE(use64bitall) .NES. ""
-$ THEN
-$ IF use64bitall .OR. use64bitall .eqs. "define" THEN bool_dflt = "y"
-$ ENDIF
-$ echo ""
-$ echo "You may also choose to try maximal 64-bitness. It means using as much"
-$ echo "64-bitness as possible on the platform. This in turn means even more"
-$ echo "binary incompatibilities. On the other hand, your platform may not"
-$ echo "have any more 64-bitness available than what you already have chosen."
-$ echo ""
-$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
-$ rp = "Try to use maximal 64-bit support, if available? [''bool_dflt'] "
-$ GOSUB myread
-$ use64bitall=ans
-$ IF use64bitall .AND. .NOT. use64bitint
-$ THEN
-$ echo ""
-$ echo "Since you have chosen a maximally 64-bit build, I'm also turning on"
-$ echo "the use of 64-bit integers."
-$ use64bitint="Y"
-$ ENDIF
-$!
-$ bool_dflt = use64bitall
-$ IF F$TYPE(uselargefiles) .NES. ""
-$ THEN
-$ IF uselargefiles .OR. uselargefiles .eqs. "define" THEN bool_dflt = "y"
-$ ENDIF
-$ echo ""
-$ echo "Perl can be built to understand large files (files larger than 2 gigabytes)"
-$ echo "on some systems. To do so, Configure can be run with -Duselargefiles."
-$ echo ""
-$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
-$ rp = "Try to understand large files, if available? [''bool_dflt'] "
-$ GOSUB myread
-$ uselargefiles=ans
-$!
-$ bool_dflt = "n"
-$ IF F$TYPE(uselongdouble) .NES. ""
-$ THEN
-$ IF uselongdouble .OR. uselongdouble .eqs. "define" THEN bool_dflt = "y"
-$ ENDIF
-$ echo ""
-$ echo "Perl can be built to take advantage of long doubles which"
-$ echo "(if available) may give more accuracy and range for floating point numbers."
-$ echo ""
-$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
-$ rp = "Try to use long doubles, if available? [''bool_dflt'] "
-$ GOSUB myread
-$ uselongdouble = ans
-$!
-$ ENDIF ! not VAX && >= 7.1
-$!
-$ IF usesitecustomize .OR. usesitecustomize .eqs. "define"
-$ THEN
-$ usesitecustomize = "define"
-$ ELSE
-$ usesitecustomize = "undef"
-$ ENDIF
$!
$! Ask about threads, if appropriate
$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
$ THEN
$ echo ""
-$ echo "Perl can be built to take advantage of threads on some systems."
+$ echo "Perl can be built to offer a form of threading support on some systems."
$ echo "To do so, configure.com can be run with -""Dusethreads""."
$ echo ""
$ echo "Note that Perl built with threading support runs slightly slower"
-$ echo "and uses more memory than plain Perl. The current implementation"
-$ echo "is believed to be stable, but it is fairly new, and so should be"
-$ echo "treated with caution."
+$ echo "and uses slightly more memory than plain Perl."
$ echo ""
$ bool_dflt = "n"
$ if f$type(usethreads) .nes. ""
$ then
$ if usethreads .or. usethreads .eqs. "define" then bool_dflt="y"
$ endif
-$! Catch cases where user specified ithreads or 5005threads but
+$! Catch cases where user specified ithreads but
$! forgot -Dusethreads
$ if f$type(useithreads) .nes. ""
$ then
$ if useithreads .or. useithreads .eqs. "define" then bool_dflt="y"
$ endif
-$ if f$type(use5005threads) .nes. ""
-$ then
-$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="y"
-$ endif
$ echo "If this doesn't make any sense to you, just accept the default '" + bool_dflt + "'."
$ rp = "Build a threading Perl? [''bool_dflt'] "
$ GOSUB myread
$ if ans
$ THEN
+$ usethreads = "define"
$ use_threads="T"
-$ ! Shall we do the 5.005-type threads, or IThreads?
-$ echo "Since release 5.6, Perl has had two different threading implementations,"
-$ echo "the newer interpreter-based version (ithreads) with one interpreter per"
-$ echo "thread, and the older 5.005 version (5005threads)."
-$ echo "The 5005threads version is effectively unmaintained and will probably be"
-$ echo "removed in Perl 5.10, so there should be no need to build a Perl using it"
-$ echo "unless needed for backwards compatibility with some existing 5.005threads"
-$ echo "code."
-$ echo ""
$ bool_dflt = "y"
$ if f$type(useithreads) .nes. ""
$ then
$ endif
$ if f$type(use5005threads) .nes. ""
$ then
-$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n"
+$ if use5005threads .or. use5005threads .eqs. "define"
+$ then
+$ echo "5.005 threads are no longer supported"
+$ exit 44
+$ endif
$ endif
-$ rp = "Use the newer intepreter-based ithreads? [''bool_dflt'] "
+$ rp = "Use the newer interpreter-based ithreads? [''bool_dflt'] "
$ GOSUB myread
$ use_ithreads=ans
-$ if use_ithreads
-$ THEN
-$ use_5005_threads="N"
-$ ELSE
-$ use_5005_threads="Y"
-$ ENDIF
+$ use_5005_threads="N"
$ ! Are they on VMS 7.1 or greater?
$ IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1"
$ THEN
$ thread_upcalls = "MTU=MTU=1"
$ usethreadupcalls = "define"
$ ! Are they on alpha or itanium?
-$ IF (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") .AND. ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2")
+$ IF ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2")
$ THEN
$ echo ""
$ echo "Threaded Perl can be linked to use multiple kernel threads on your system."
$ ENDIF
$ ENDIF
$ ENDIF
+$ ELSE
+$ usethreads = "undef"
$ ENDIF
$ ENDIF
$ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef"
$ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef"
-$! Case sensitive?
-$ echo ""
-$ echo "By default, perl (and pretty much everything else on VMS) uses"
-$ echo "case-insensitive linker symbols. Which is to say, when the"
-$ echo "underlying C code makes a call to a routine called Perl_foo in"
-$ echo "the source, the name in the object modules or shareable images"
-$ echo "is really PERL_FOO. There are some packages that use an"
-$ echo "embedded perl interpreter that instead require case-sensitive"
-$ echo "linker symbols."
-$ echo ""
-$ echo "If you have no idea what this means, and do not have"
-$ echo "any program requiring anything, choose the default."
-$ bool_dflt = be_case_sensitive
-$ if f$type(usecasesensitive) .nes. ""
+$!
+$! Ask if they want to build with MULTIPLICITY
+$ echo ""
+$ echo "Perl can be built so that multiple Perl interpreters can coexist"
+$ echo "within the same Perl executable."
+$ IF usethreads .OR. usethreads .EQS. "define"
+$ THEN
+$ echo "This multiple interpreter support is required for interpreter-based threads."
+$ usemultiplicity="define"
+$ ELSE
+$ bool_dflt = "n"
+$ if f$type(usemultiplicity) .nes. ""
$ then
-$ if usecasesensitive .or. usecasesensitive .eqs. "define" then bool_dflt = "y"
-$ if f$extract(0,1,f$edit(usecasesensitive,"collapse,upcase")).eqs."N" .or. usecasesensitive .eqs. "undef" then bool_dflt = "n"
+$ if usemultiplicity .or. usemultiplicity .eqs. "define" then bool_dflt = "y"
$ endif
-$ rp = "Build with case-sensitive symbols? [''bool_dflt'] "
+$ rp = "Build Perl for multiplicity? [''bool_dflt'] "
$ GOSUB myread
-$ be_case_sensitive = ans
+$ IF ans
+$ THEN
+$ usemultiplicity="define"
+$ ELSE
+$ usemultiplicity="undef"
+$ ENDIF
+$ ENDIF
+$!
+$! Ask if they want to build with 64-bit support
+$ bool_dflt = "n"
+$ IF F$TYPE(use64bitint) .NES. ""
+$ THEN
+$ IF use64bitint .OR. use64bitint .eqs. "define" THEN bool_dflt = "y"
+$ ENDIF
+$ echo ""
+$ echo "You have natively 64-bit long integers."
+$ echo ""
+$ echo "Perl can be built to take advantage of 64-bit integer types"
+$ echo "on some systems, To do so, Configure can be run with -Duse64bitint."
+$ echo "Choosing this option will most probably introduce binary incompatibilities."
+$ echo ""
+$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
+$ rp = "Try to use 64-bit integers, if available? [''bool_dflt'] "
+$ GOSUB myread
+$ use64bitint = ans
+$!
+$ bool_dflt = "n"
+$ IF F$TYPE(use64bitall) .NES. ""
+$ THEN
+$ IF use64bitall .OR. use64bitall .eqs. "define" THEN bool_dflt = "y"
+$ ENDIF
+$ echo ""
+$ echo "You may also choose to try maximal 64-bitness. It means using as much"
+$ echo "64-bitness as possible on the platform. This in turn means even more"
+$ echo "binary incompatibilities. On the other hand, your platform may not"
+$ echo "have any more 64-bitness available than what you already have chosen."
+$ echo ""
+$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
+$ rp = "Try to use maximal 64-bit support, if available? [''bool_dflt'] "
+$ GOSUB myread
+$ use64bitall=ans
+$ IF use64bitall .AND. .NOT. use64bitint
+$ THEN
+$ echo ""
+$ echo "Since you have chosen a maximally 64-bit build, I'm also turning on"
+$ echo "the use of 64-bit integers."
+$ use64bitint="Y"
+$ ENDIF
+$!
+$ bool_dflt = use64bitall
+$ IF F$TYPE(uselargefiles) .NES. ""
+$ THEN
+$ IF uselargefiles .OR. uselargefiles .eqs. "define" THEN bool_dflt = "y"
+$ ENDIF
+$ echo ""
+$ echo "Perl can be built to understand large files (files larger than 2 gigabytes)"
+$ echo "on some systems. To do so, Configure can be run with -Duselargefiles."
+$ echo ""
+$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
+$ rp = "Try to understand large files, if available? [''bool_dflt'] "
+$ GOSUB myread
+$ uselargefiles=ans
+$!
+$ bool_dflt = "n"
+$ IF F$TYPE(uselongdouble) .NES. ""
+$ THEN
+$ IF uselongdouble .OR. uselongdouble .eqs. "define" THEN bool_dflt = "y"
+$ ENDIF
+$ echo ""
+$ echo "Perl can be built to take advantage of long doubles which"
+$ echo "(if available) may give more accuracy and range for floating point numbers."
+$ echo ""
+$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
+$ rp = "Try to use long doubles, if available? [''bool_dflt'] "
+$ GOSUB myread
+$ uselongdouble = ans
+$!
+$!
+$ IF usesitecustomize .OR. usesitecustomize .eqs. "define"
+$ THEN
+$ usesitecustomize = "define"
+$ ELSE
+$ usesitecustomize = "undef"
+$ ENDIF
+$!
+$! Case sensitive?
+$ echo ""
+$ echo "By default, perl (and pretty much everything else on VMS) uses"
+$ echo "case-insensitive linker symbols. Which is to say, when the"
+$ echo "underlying C code makes a call to a routine called Perl_foo in"
+$ echo "the source, the name in the object modules or shareable images"
+$ echo "is really PERL_FOO. There are some packages that use an"
+$ echo "embedded perl interpreter that instead require case-sensitive"
+$ echo "linker symbols."
+$ echo ""
+$ echo "If you have no idea what this means, and do not have"
+$ echo "any program requiring anything, choose the default."
+$ bool_dflt = be_case_sensitive
+$ if f$type(usecasesensitive) .nes. ""
+$ then
+$ if usecasesensitive .or. usecasesensitive .eqs. "define" then bool_dflt = "y"
+$ if f$extract(0,1,f$edit(usecasesensitive,"collapse,upcase")).eqs."N" .or. usecasesensitive .eqs. "undef" then bool_dflt = "n"
+$ endif
+$ rp = "Build with case-sensitive symbols? [''bool_dflt'] "
+$ GOSUB myread
+$ be_case_sensitive = ans
$!
$! Shortened symbols?
$ echo ""
$ rp = "Build with long symbols shortened? [''bool_dflt'] "
$ GOSUB myread
$ shorten_long_symbols = ans
-$ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX"
-$ THEN
$! IEEE math?
-$ echo ""
-$ echo "Perl normally uses IEEE format (T_FLOAT) floating point numbers on"
-$ echo "Alpha and Itanium, but if you need G_FLOAT for binary compatibility"
-$ echo "with an external library or existing data, you may wish to disable"
-$ echo "the IEEE math option."
-$ bool_dflt = use_ieee_math
-$ if f$type(useieee) .nes. ""
+$ echo ""
+$ echo "Perl normally uses IEEE format (T_FLOAT) floating point numbers on"
+$ echo "Alpha and Itanium, but if you need G_FLOAT for binary compatibility"
+$ echo "with an external library or existing data, you may wish to disable"
+$ echo "the IEEE math option."
+$ bool_dflt = use_ieee_math
+$ if f$type(useieee) .nes. ""
+$ then
+$ if useieee .or. useieee .eqs. "define"
$ then
-$ if useieee .or. useieee .eqs. "define"
-$ then
-$ bool_dflt="y"
-$ else
-$ bool_dflt="n"
-$ endif
+$ bool_dflt="y"
+$ else
+$ bool_dflt="n"
$ endif
-$ rp = "Use IEEE math? [''bool_dflt'] "
-$ GOSUB myread
-$ use_ieee_math = ans
-$ ELSE
-$ use_ieee_math = "n"
-$ ENDIF
+$ endif
+$ rp = "Use IEEE math? [''bool_dflt'] "
+$ GOSUB myread
+$ use_ieee_math = ans
$ useieee = "undef"
$ usecasesensitive = "undef"
$ useshortenedsymbols = "undef"
$ ENDIF
$ ENDIF
$!
+$ bool_dflt = "n"
+$ if f$type(useversionedarchname) .nes. ""
+$ then
+$ if useversionedarchname .or. useversionedarchname .eqs. "define" then bool_dflt = "y"
+$ endif
+$ rp = "Add the Perl API version to your archname? [''bool_dflt'] "
+$ GOSUB myread
+$ IF ans
+$ THEN
+$ useversionedarchname = "define"
+$ IF F$LOCATE("-''version'", archname) .EQ. F$LENGTH(archname)
+$ THEN
+$ archname = "''archname'-''version'"
+$ echo4 "...setting architecture name to ''archname'."
+$ ELSE
+$ echo4 "...and architecture name already has -''version'."
+$ ENDIF
+$ ELSE
+$ useversionedarchname = "undef"
+$ ENDIF
+$!
$ IF usethreads .OR. usethreads .EQS. "define"
$ THEN
$ echo4 "Threads selected."
$ ! more redundant scrubbing of values
$ prefix = prefix - "000000."
$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]"
-$ src = prefix
+$ src = prefix - "_ROOT."
$!: determine root of directory hierarchy where package will be installed.
$ dflt = prefix
$ IF .NOT.silent
$ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y"
$ ENDIF
$!
-$ known_extensions = ""
+$ xs_extensions = ""
$ xxx = ""
$ OPEN/READ CONFIG 'manifestfound'
$ext_loop:
$ goto replace_dash_with_slash
$
$ end_replace_dash_with_slash:
-$
-$ xxx = known_extensions
+$!
+$ IF extspec .EQS. "Scalar/List/Utils" THEN extspec = "List/Util"
+$ IF extspec .EQS. "PathTools" THEN extspec = "Cwd"
+$!
+$ xxx = xs_extensions
$ gosub may_already_have_extension
$ IF $STATUS .EQ. 1
$ THEN
$ ENDIF
$!
$ found_new_extension:
-$ IF F$SEARCH("[-.ext.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.dist.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.cpan.''extension_dir_name']*.xs") .EQS. ""
+$ IF F$SEARCH("[-.ext.''extension_dir_name']*.xs") .EQS. "" -
+ .AND. F$SEARCH("[-.dist.''extension_dir_name']*.xs") .EQS. "" -
+ .AND. F$SEARCH("[-.cpan.''extension_dir_name']*.xs") .EQS. "" -
+ .AND. extension_dir_name .NES. "VMS-Filespec"
$ THEN
$! Bit if a hack to get around the 1K buffer on older systems.
$ IF F$LENGTH(nonxs_ext) .GT. 950
$ nonxs_ext = nonxs_ext + " ''extspec'"
$ ENDIF
$ ELSE
-$ known_extensions = known_extensions + " ''extspec'"
+$ xs_extensions = xs_extensions + " ''extspec'"
$ ENDIF
$ goto ext_loop
$end_ext:
$ DELETE/SYMBOL extspec
$ DELETE/SYMBOL extlen
$ DELETE/SYMBOL extension_dir_name
-$ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS")
-$ dflt = known_extensions
-$ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX"
-$ THEN
-$ dflt = dflt - "POSIX" ! not with VAX C or GCC
-$ ENDIF
+$ xs_extensions = F$EDIT(xs_extensions,"TRIM,COMPRESS")
+$ dflt = xs_extensions
$ 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 - "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"
-$ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets
+$ IF .NOT. Has_Dec_C_Sockets
$ THEN
$ dflt = dflt - "Socket" ! optional on VMS
$ ENDIF
$ ENDIF
$ ENDIF
$!
-$! PerlIO abstraction
-$!
-$ bool_dflt = "y"
-$ IF F$TYPE(useperlio) .NES. ""
-$ then
-$ if .not. useperlio .or. useperlio .eqs. "undef" then bool_dflt = "n"
-$ endif
-$ IF .NOT. silent
-$ THEN
-$ echo "Previous versions of ''package' used the standard IO mechanisms as"
-$ TYPE SYS$INPUT:
-$ DECK
-defined in <stdio.h>. Versions 5.003_02 and later of perl allow
-alternate IO mechanisms via the PerlIO abstraction layer, but the
-stdio mechanism is still available if needed. The abstraction layer
-can use AT&T's sfio (if you already have sfio installed) or regular stdio.
-Using PerlIO with sfio may cause problems with some extension modules.
-
-$ EOD
-$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'."
-$ ENDIF
-$ rp = "Use the PerlIO abstraction layer? [''bool_dflt'] "
-$ GOSUB myread
-$ IF ans
-$ THEN
-$ useperlio = "define"
-$ ELSE
-$ echo "Ok, doing things the stdio way."
-$ useperlio = "undef"
-$ ENDIF
-$!
$ echo ""
$ echo4 "Checking the C run-time library."
$!
$ uselongdouble = "define"
$ alignbytes="16"
$ nveformat="""Le"""
+$ nvEUformat="""LE"""
$ nvfformat="""Lf"""
+$ nvFUformat="""LF"""
$ nvgformat="""Lg"""
+$ nvGUformat="""LG"""
$ ELSE
$ uselongdouble = "undef"
$ nveformat="""e"""
+$ nvEUformat="""E"""
$ nvfformat="""f"""
+$ nvFUformat="""F"""
$ nvgformat="""g"""
+$ nvGUformat="""G"""
$ ENDIF
$ IF use64bitall .OR. use64bitall .EQS. "define"
$ THEN
$ ELSE d_mymalloc="undef"
$ ENDIF
$!
-$ usedevel="undef"
$ usedl="define"
$ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n"
$ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}"""
$!
-$ IF ((use_threads) .AND. (vms_ver .LES. "6.2"))
-$ THEN
-$ 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
-$ libs=" "
-$ ENDIF
-$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
-$ THEN
-$ libc="(DECCRTL)"
-$ ELSE
-$ libc=" "
-$ ENDIF
+$ libs=" "
+$ libc="(DECCRTL)"
$!
$! perllibs should be libs with all non-core libs (such as gdbm) removed.
$!
$ perllibs=libs
$!
$!
-$ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX"
-$ THEN
-$ d_PRId64 = "define"
-$ d_PRIu64 = "define"
-$ d_PRIo64 = "define"
-$ d_PRIx64 = "define"
-$ d_PRIXU64 = "define"
-$ sPRId64 = """Ld"""
-$ sPRIXU64 = """LX"""
-$ sPRIi64 = """Li"""
-$ sPRIo64 = """Lo"""
-$ sPRIu64 = """Lu"""
-$ sPRIx64 = """Lx"""
-$ d_quad = "define"
-$ quadtype = "long long"
-$ uquadtype = "unsigned long long"
-$ quadkind = "3"
-$!
-$ d_frexpl = "define"
-$ d_modfl = "define"
-$ d_modflproto = "define"
-$ ELSE
-$ d_PRId64 = "undef"
-$ d_PRIXU64 = "undef"
-$ d_PRIu64 = "undef"
-$ d_PRIo64 = "undef"
-$ d_PRIx64 = "undef"
-$ sPRId64 = ""
-$ sPRIXU64 = """lX"""
-$ sPRIi64 = ""
-$ sPRIo64 = ""
-$ sPRIu64 = ""
-$ sPRIx64 = ""
-$ d_quad = "undef"
-$ quadtype = "undef"
-$ uquadtype = "undef"
-$ quadkind = "undef"
-$!
-$ d_frexpl = "undef"
-$ d_modfl = "undef"
-$ d_modflproto = "undef"
-$ ENDIF
+$ d_PRId64 = "define"
+$ d_PRIi64 = "define"
+$ d_PRIu64 = "define"
+$ d_PRIo64 = "define"
+$ d_PRIx64 = "define"
+$ d_PRIXU64 = "define"
+$ sPRId64 = """Ld"""
+$ sPRIXU64 = """LX"""
+$ sPRIi64 = """Li"""
+$ sPRIo64 = """Lo"""
+$ sPRIu64 = """Lu"""
+$ sPRIx64 = """Lx"""
+$ d_quad = "define"
+$ quadtype = "long long"
+$ uquadtype = "unsigned long long"
+$ quadkind = "3"
+$!
+$ d_frexpl = "define"
+$ d_ldexpl = "define"
+$ d_modfl = "define"
+$ d_modflproto = "define"
$!
$ IF useieee .OR. useieee .EQS. "define"
$ THEN
+$ d_acosh = "define"
+$ d_asinh = "define"
+$ d_atanh = "define"
+$ d_cbrt = "define"
+$ d_copysign = "define"
+$ d_erf = "define"
+$ d_erfc = "define"
+$ d_exp2 = "define"
+$ d_expm1 = "define"
+$ d_fdim = "define"
+$ d_fma = "define"
+$ d_fmax = "define"
+$ d_fmin = "define"
+$ d_fp_classify = "define"
+$ d_hypot = "define"
+$ d_ilogb = "define"
$ d_isnan = "define"
$ d_isnanl = "define"
+$ d_isnormal = "define"
+$ d_j0 = "define"
+$ d_lgamma = "define"
+$ d_log1p = "define"
+$ d_log2 = "define"
+$ d_logb = "define"
+$ d_lrint = "define"
+$ d_lrintl = "define"
+$ d_lround = "define"
+$ d_lroundl = "define"
+$ d_nearbyint = "define"
+$ d_nextafter = "define"
+$ d_nexttoward = "define"
+$ d_remainder = "define"
+$ d_remquo = "define"
+$ d_rint = "define"
+$ d_tgamma = "define"
+$ d_trunc = "define"
+$ d_truncl = "define"
$ ELSE
+$ d_acosh = "undef"
+$ d_asinh = "undef"
+$ d_atanh = "undef"
+$ d_cbrt = "undef"
+$ d_copysign = "undef"
+$ d_erf = "undef"
+$ d_erfc = "undef"
+$ d_exp2 = "undef"
+$ d_expm1 = "undef"
+$ d_fdim = "undef"
+$ d_fma = "undef"
+$ d_fmax = "undef"
+$ d_fmin = "undef"
+$ d_fp_classify = "undef"
+$ d_hypot = "undef"
+$ d_ilogb = "undef"
$ d_isnan = "undef"
$ d_isnanl = "undef"
+$ d_isnormal = "undef"
+$ d_j0 = "undef"
+$ d_lgamma = "undef"
+$ d_log1p = "undef"
+$ d_log2 = "undef"
+$ d_logb = "undef"
+$ d_lrint = "undef"
+$ d_lrintl = "undef"
+$ d_lround = "undef"
+$ d_lroundl = "undef"
+$ d_nearbyint = "undef"
+$ d_nextafter = "undef"
+$ d_nexttoward = "undef"
+$ d_remainder = "undef"
+$ d_remquo = "undef"
+$ d_rint = "undef"
+$ d_tgamma = "undef"
+$ d_trunc = "undef"
+$ d_truncl = "undef"
$ ENDIF
$!
$! Now some that we build up
$!
+$ use5005threads = "undef"
+$ d_old_pthread_create_joinable = "undef"
+$ old_pthread_create_joinable = " "
$ IF use_threads
$ THEN
-$ IF use_5005_threads
-$ THEN
-$ d_old_pthread_create_joinable = "undef"
-$ old_pthread_create_joinable = " "
-$ use5005threads = "define"
-$ useithreads = "undef"
-$ ELSE
-$ d_old_pthread_create_joinable = "undef"
-$ old_pthread_create_joinable = " "
-$ use5005threads = "undef"
-$ useithreads = "define"
-$ ENDIF
+$ useithreads = "define"
$ ELSE
-$ d_old_pthread_create_joinable = "undef"
-$ old_pthread_create_joinable = " "
-$ use5005threads = "undef"
$ useithreads = "undef"
$ ENDIF
$!
$ WS "{"
$ WS "#ifdef __STDC__"
$ WS "printf(""42\n"");"
+$ WS "#elif defined (__STD_ANSI)" ! for CXX
+$ WS "printf(""42\n"");"
$ WS "#else"
$ WS "printf(""1\n"");"
$ WS "#endif"
$ cpp_stuff=tmp
$ IF F$INTEGER(tmp) .eq. 42
$ THEN
-$ echo4 "Your C compiler and pre-processor defines the symbol:"
-$ echo4 "__STDC__"
+$ echo4 "Oh! Smells like ANSI's been here."
+$ echo "We can catify or stringify, separately or together!"
$ ENDIF
$!
$! Check for double size
$ IF link_status .NE. good_link
$ THEN
$ longdblsize="0"
+$ longdblkind="0"
+$ longdblinfbytes="undef"
+$ longdblnanbytes="undef"
+$ longdblmantbits="undef"
$ d_longdbl="undef"
$ echo "You do not have long double."
$ ELSE
$ echo4 "Checking to see how big your long doubles are..."
$ GOSUB just_mcr_it
$ longdblsize = tmp
+$ longdblkind = "1"
+$ longdblinfbytes="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f"
+$ longdblnanbytes="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff"
+$ longdblmantbits="112"
$ d_longdbl = "define"
$ echo "Your long doubles are ''longdblsize' bytes long."
$ ENDIF
$!
$! Check the prototype for select
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdio.h>"
$ WS "#include <types.h>"
$ IF i_unistd .EQS. "define" THEN WS "#include <unistd.h>"
-$ IF Has_Socketshr
-$ THEN
-$ WS "#include <socketshr.h>"
-$ ELSE
-$ WS "#include <time.h>"
-$ WS "#include <socket.h>"
-$ ENDIF
+$ WS "#include <time.h>"
+$ WS "#include <socket.h>"
$ WS "int main()"
$ WS "{"
$ WS "fd_set *foo;"
$ WS "#endif"
$ WS "#include <stdio.h>"
$ WS "#include <types.h>"
-$ IF Has_Socketshr
-$ THEN
-$ WS "#include <socketshr.h>"
-$ ENDIF
$ IF Has_Dec_C_Sockets
$ THEN
$ WS "#include <time.h>"
$!
$! Check to see if gethostname exists
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#endif"
$ WS "#include <stdio.h>"
$ WS "#include <types.h>"
-$ IF Has_Socketshr
-$ THEN
-$ WS "#include <socketshr.h>"
-$ ELSE
-$ WS "#include <time.h>"
-$ WS "#include <socket.h>"
-$ ENDIF
+$ WS "#include <time.h>"
+$ WS "#include <socket.h>"
$ WS "int main()"
$ WS "{"
$ WS "char name[100];"
$ WS "int main()"
$ WS "{"
$ WS "char * place;"
-$ WS "place = memchr(""foo"", 47, 3);"
+$ WS "place = (char *)memchr(""foo"", 47, 3);"
$ WS "exit(0);"
$ WS "}"
$ CS
$ GOSUB inlibc
$ d_setvbuf = tmp
$!
-$! see if sfio.h is available
-$! see if sfio library is available
-$! Ok, but do we want to use it.
-$! IF F$TYPE(usesfio) .EQS. "" THEN usesfio = "undef"
-$! IF val .EQS. "define"
-$! THEN
-$! IF usesfio .EQS. "define"
-$! THEN dflt = "y"
-$! ELSE dflt = "n"
-$! ENDIF
-$! echo "''package' can use the sfio library, but it is experimental."
-$! IF useperlio .EQS. "undef"
-$! THEN
-$! echo "For sfio also the PerlIO abstraction layer is needed."
-$! echo "Earlier you said you would not want that."
-$! ENDIF
-$! rp="You seem to have sfio available, do you want to try using it? [''dflt'] "
-$! GOSUB myread
-$! IF ans .EQS. "" THEN ans = dflt
-$! IF ans
-$! THEN
-$! echo "Ok, turning on both sfio and PerlIO, then."
-$! useperlio="define"
-$! val="define"
-$! ELSE
-$! echo "Ok, avoiding sfio this time. I'll use stdio instead."
-$! val="undef"
-$! ENDIF
-$! ELSE
-$! IF usesfio .EQS. "define"
-$! THEN
-$! echo4 "Sorry, cannot find sfio on this machine."
-$! echo4 "Ignoring your setting of usesfio=''usesfio'."
-$! val="undef"
-$! ENDIF
-$! ENDIF
+$! Check for the shm* routines.
+$!
+$ OS
+$ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#include <stdlib.h>"
+$ WS "#endif"
+$ WS "#include <stdio.h>"
+$ WS "#include <sys/shm.h>"
+$ WS "#include <sys/stat.h>"
+$ WS "int shmget(key_t key, size_t size, int shmflg);"
+$ WS "void* shmat(int shmid,const void *shmaddr,int shmflg);"
+$ WS "int shmctl(int shmid, int cmd, struct shmid_ds *buf);"
+$ WS "int shmdt(const void *shmaddr);"
+$ WS "int main() {"
+$ WS "int shm_id = shmget(IPC_PRIVATE, 8, S_IRWXU);"
+$ WS "if (shm_id == -1) printf(""0\n""); else printf (""1\n"");"
+$ WS "}"
+$ CS
+$ GOSUB compile
+$ IF tmp .EQS. "1"
+$ THEN
+$ d_shm = "define"
+$ d_shmat = "define"
+$ d_shmatprototype = "define"
+$ d_shmctl = "define"
+$ d_shmdt = "define"
+$ d_shmget = "define"
+$ shmattype = "void *"
+$ ELSE
+$ d_shm = "undef"
+$ d_shmat = "undef"
+$ d_shmatprototype = "undef"
+$ d_shmctl = "undef"
+$ d_shmdt = "undef"
+$ d_shmget = "undef"
+$ shmattype = "undef"
+$ ENDIF
$!
$! Check for setenv
$!
$!
$! Check for <netinet/in.h>
$!
-$ IF Has_Dec_C_Sockets .or. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ tmp = "netinet/in.h"
$ GOSUB inhdr
$ i_niin="undef"
$ ENDIF
$!
+$! Check for <arpa/inet.h>
+$!
+$ IF Has_Dec_C_Sockets
+$ THEN
+$ tmp = "arpa/inet.h"
+$ GOSUB inhdr
+$ i_arpainet = tmp
+$ ELSE
+$ i_arpainet="undef"
+$ ENDIF
+$!
+$! Check for <sys/un.h>
+$!
+$ IF Has_Dec_C_Sockets
+$ THEN
+$ tmp = "sys/un.h"
+$ GOSUB inhdr
+$ i_sysun = tmp
+$ ELSE
+$ i_sysun="undef"
+$ ENDIF
+$!
+$!
$! Check for <netinet/tcp.h>
$!
-$ IF Has_Dec_C_Sockets .or. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ tmp = "netinet/tcp.h"
$ GOSUB inhdr
$!
$! Check for endhostent
$!
-$ IF Has_Dec_C_Sockets .or. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "endhostent();"
$!
$! Check for endnetent
$!
-$ IF Has_Dec_C_Sockets .or. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "endnetent();"
$!
$! Check for endprotoent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "endprotoent();"
$!
$! Check for endservent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "endservent();"
$!
$! Check for sethostent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "sethostent(1);"
$!
$! Check for setnetent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "setnetent(1);"
$!
$! Check for setprotoent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "setprotoent(1);"
$!
$! Check for setservent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "setservent(1);"
$!
$! Check for gethostent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "gethostent();"
$!
$! Check for getnetent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "getnetent();"
$!
$! Check for getprotoent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "getprotoent();"
$!
$! Check for getservent
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "getservent();"
$! Check for sa_len
$!
$ echo4 "Checking the availability of sa_len in the sockaddr struct ..."
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#endif"
$ WS "#define _SOCKADDR_LEN"
$ WS "#include <types.h>"
-$ IF Has_Socketshr
-$ THEN
-$ WS "#include <socketshr.h>"
-$ ELSE
-$ WS "#include <socket.h>"
-$ ENDIF
+$ WS "#include <socket.h>"
+$ WS "#include <string.h>"
$ WS "int main() {"
$ WS "struct sockaddr sa;"
+$ WS "memset((char *)&sa, 0, sizeof(sa));"
$ WS "return (sa.sa_len);"
$ WS "}"
$ CS
$ echo "You do not have sa_len in the sockaddr struct."
$ ENDIF
$!
-$!
$! Check for sin6_scope_id
$!
$ echo4 "Checking the availability of sin6_scope_id in the struct sockaddr_in6 ..."
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ OS
$ WS "#include <types.h>"
-$ IF Has_Socketshr
-$ THEN
-$ WS "#include <socketshr.h>"
-$ ELSE
-$ WS "#include <socket.h>"
-$ ENDIF
+$ WS "#include <socket.h>"
$ WS "#include <in.h>"
+$ WS "#include <string.h>"
$ WS "int main() {"
$ WS "struct sockaddr_in6 sin6;"
+$ WS "memset((char *)&sin6, 0, sizeof(sin6));"
$ WS "return (sin6.sin6_scope_id);"
$ WS "}"
$ CS
$!
$! Check for socklen_t
$!
-$ IF Has_Dec_C_Sockets .OR. Has_Socketshr
+$ IF Has_Dec_C_Sockets
$ THEN
$ echo4 "Checking to see if you have socklen_t..."
$ OS
$ WS "#include <stdlib.h>"
$ WS "#endif"
$ WS "#include <stdio.h>"
-$ IF Has_Socketshr
-$ THEN WS "#include <socketshr.h>"
-$ ELSE IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
-$ ENDIF
+$ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>"
$ WS "int main()"
$ WS "{"
$ WS "socklen_t x = 16;"
$ uselargefiles = "undef"
$ ENDIF
$!
+$! Check for st_ino size.
+$!
+$ st_ino_size = 4
+$ OS
+$ WS "#include <sys/stat.h>"
+$ WS "#include <stdio.h>"
+$ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#include <stdlib.h>
+$ WS "#endif"
+$ WS "int main() {
+$ WS "#''uselargefiles' _LARGEFILE"
+$ WS "#ifdef _LARGEFILE"
+$ WS " printf(""%d\n"", sizeof(__ino64_t));"
+$ WS "#else"
+$ WS " printf(""%d\n"", sizeof(unsigned short)*3);"
+$ WS "#endif"
+$ WS " exit(0);"
+$ WS "}"
+$ CS
+$ GOSUB link_ok
+$ IF link_status .EQ. good_link
+$ THEN
+$ GOSUB just_mcr_it
+$ st_ino_size = tmp
+$ ENDIF
+$ echo "Your st_ino size is ''st_ino_size' bytes."
+$!
$! Tests for hard link, symbolic links, and 7.3 + CRTL features
$!
$ d_lchown = "undef"
$! disk. That would require more work to test, and I am only testing
$! this on 8.2, so that is why the 8.2 test.
$!
-$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ IF (vms_ver .GES. "8.2")
$ THEN
$ IF f$getdvi("SYS$DISK","HARDLINKS_SUPPORTED")
$ THEN
$!
$ IF uselargefiles .OR. uselargefiles .eqs. "define"
$ THEN
-$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ IF (vms_ver .GES. "8.2")
$ THEN
$ echo4 "Largefile support enabled, so enabling standard stat support too."
$ usestdstat = "y"
$ echo4 -
"Looking for the realpath() function to indicate symbolic link support..."
$ OS
-$! WS "#include <stdlib.h>"
-$ WS "void exit(int foo);"
+$ WS "#include <stdlib.h>"
$ WS "char *realpath(const char *file_name, char * resolved_name, ...);"
$ WS "int main()"
$ WS "{"
$ echo4 "I am disabling symbolic link support."
$ ENDIF
$ ELSE
-$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ IF (vms_ver .GES. "8.2")
$ THEN
$ echo4 "-Duselargefiles is required for symbolic link support."
$ echo4 "You did not specify that, so I am disabling symbolic link support."
$ ttyname_r_proto = "0"
$ d_snprintf = "undef"
$ d_vsnprintf = "undef"
-$ if (vms_ver .GES. "7.3-2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ echo "Asumming 64-bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines"
+$ d_getgrgid_r = "define"
+$ getgrgid_r_proto = "1"
+$ d_getgrnam_r = "define"
+$ getgrnam_r_proto = "1"
+$ if d_symlink .or. d_symlink .EQS. "define"
$ then
-$ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines"
-$ d_getgrgid_r = "define"
-$ getgrgid_r_proto = "1"
-$ d_getgrnam_r = "define"
-$ getgrnam_r_proto = "1"
-$ if d_symlink .or. d_symlink .EQS. "define"
-$ then
$! FIXME: Need to find how to activate this.
$! d_getpgid = "define"
$! d_getpgrp = "define"
-$ endif
-$ d_setgrent = "define"
-$ d_ttyname_r = "define"
-$ ttyname_r_proto = "1"
-$ d_snprintf = "define"
-$ d_vsnprintf = "define"
$ endif
+$ d_setgrent = "define"
+$ d_ttyname_r = "define"
+$ ttyname_r_proto = "1"
+$ d_snprintf = "define"
+$ d_vsnprintf = "define"
$!
$! VMS V7.3-2 powered options
$! We know that it is only available for V7.3-2 and later on 64 bit platforms.
$ d_setreuid = "undef"
$ d_setsid = "undef"
$ ! Disable this section for now.
-$!$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$!$ if (vms_ver .GES. "8.2")
$ if .NOT. 1
$ then
$ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 UID setting routines"
$! We know that it is only available for 8.2 and later on 64 bit platforms.
$!
$ d_fstatvfs = "undef"
-$! d_statvfs = "undef"
+$ d_statvfs = "undef"
$ i_sysstatvfs = "undef"
-$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ if (vms_ver .GES. "8.2")
$ then
$ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with 8.2 routines"
$ d_fstatvfs = "define"
-$! d_statvfs = "define"
+$ d_statvfs = "define"
$ i_sysstatvfs = "define"
$ endif
$!
$! Check rand48 and its ilk
$!
-$ echo4 "Looking for a random number function..."
-$ OS
-$ WS "#if defined(__DECC) || defined(__DECCXX)"
-$ WS "#include <stdlib.h>"
-$ WS "#endif"
-$ WS "#include <stdio.h>"
-$ WS "int main()"
-$ WS "{"
-$ WS "srand48(12L);"
-$ WS "exit(0);"
-$ WS "}"
-$ CS
-$ GOSUB link_ok
-$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link
-$ THEN
-$ drand01 = "drand48()"
-$ randbits = "48"
-$ randfunc = "drand48"
-$ randseedtype = "long int"
-$ seedfunc = "srand48"
-$ echo4 "Good, found drand48()."
-$ d_drand48proto = "define"
-$ ELSE
-$ d_drand48proto = "undef"
-$ drand01="random()"
-$ randbits = "31"
-$ randfunc = "random"
-$ randseedtype = "unsigned"
-$ seedfunc = "srandom"
-$ OS
-$ WS "#if defined(__DECC) || defined(__DECCXX)"
-$ WS "#include <stdlib.h>"
-$ WS "#endif"
-$ WS "#include <stdio.h>"
-$ WS "int main()"
-$ WS "{"
-$ WS "srandom(12);"
-$ WS "exit(0);"
-$ WS "}"
-$ CS
-$ GOSUB link_ok
-$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link
-$ THEN
-$ echo4 "OK, found random()."
-$ ELSE
-$ drand01="(((float)rand())*MY_INV_RAND_MAX)"
-$ randfunc = "rand"
-$ randseedtype = "unsigned"
-$ seedfunc = "srand"
-$ echo4 "Yick, looks like I have to use rand()."
-$ ENDIF
-$ ENDIF
+$ echo4 "Using our internal random number implementation..."
+$!
+$ randfunc = "Perl_drand48"
+$ drand01 = "Perl_drand48()"
+$ seedfunc = "Perl_drand48_init"
+$ randbits = "48"
+$ randseedtype = "U32"
+$ d_drand48proto = "define"
+$!
$! Done with compiler checks. Clean up.
$ IF F$SEARCH("try.c") .NES."" THEN DELETE/NOLOG/NOCONFIRM try.c;*
$ IF F$SEARCH("try.obj").NES."" THEN DELETE/NOLOG/NOCONFIRM try.obj;*
$ d_attribut="define"
$ vms_cc_type="gcc"
$ ELSE
-$ vms_cc_type="cc"
+$ IF ccname .EQS. "CXX"
+$ THEN
+$ vms_cc_type="cxx"
+$ ELSE
+$ vms_cc_type="cc"
+$ ENDIF
$ d_attribut="undef"
$ ENDIF
$!
-$! Dec C >= 5.2 and VMS ver >= 7.0
-$ IF (ccname .EQS. "DEC") .AND. -
- (F$INTEGER(Dec_C_Version).GE.50200000) .AND. (vms_ver .GES. "7.0")
-$ THEN
-$ d_bcmp="define"
-$ d_getitimer="define"
-$ d_gettimeod="define"
-$ d_mmap="define"
-$ d_mprotect="define"
-$ d_munmap="define"
-$ d_msync="define"
-$ d_ualarm="define"
-$ d_uname="define"
-$! d_unsetenv="define" ! Fix me - Activating requires changing VMS code
-$ d_unsetenv="undef" ! Change will be needed to allow GNV integration
-$ d_clearenv="undef"
-$ d_usleep="define"
-$ d_setitimer="define"
-$ d_sigaction="define"
-$ d_sigprocmask="define"
-$ d_truncate="define"
-$ d_wait4="define"
-$ d_index="define"
-$ pidtype="pid_t"
-$ sig_name1="ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE"
-$ sig_name2=" ALRM TERM USR1 USR2 NUM18 NUM19 CHLD CONT STOP TSTP TTIN TTOU DEBUG"
-$ IF (vms_ver .GES. "7.3")
-$ THEN
-$ sig_name2 = sig_name2 + " NUM27 WINCH"
-$ ENDIF
+$ d_bcmp="define"
+$ d_getitimer="define"
+$ d_gettimeod="define"
+$ d_mmap="define"
+$ d_mprotect="define"
+$ d_munmap="define"
+$ d_msync="define"
+$ d_ualarm="define"
+$ d_uname="define"
+$! d_unsetenv="define" ! Fix me - Activating requires changing VMS code
+$ d_unsetenv="undef" ! Change will be needed to allow GNV integration
+$ d_clearenv="undef"
+$ d_usleep="define"
+$ d_setitimer="define"
+$ d_sigaction="define"
+$ d_sigprocmask="define"
+$ d_truncate="define"
+$ d_wait4="define"
+$ d_index="define"
+$ pidtype="pid_t"
+$ sig_name1="ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE"
+$ sig_name2=" ALRM TERM USR1 USR2 NUM18 NUM19 CHLD CONT STOP TSTP TTIN TTOU DEBUG"
+$ sig_name2 = sig_name2 + " NUM27 WINCH"
$!* signal.h defines SIGRTMIN as 33 and SIGRTMAX as 64, but there is no
$!* sigqueue function or other apparent means to do realtime signalling,
$!* so let's not try to include the realtime range for now.
$!* sig_name3=" NUM29 NUM30 NUM31 NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43"
$!* sig_name4=" NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58"
$!* sig_name5=" NUM59 NUM60 NUM61 NUMT62 NUM63 RTMAX"
-$ sig_name = sig_name1 + sig_name2
-$ sig_num = ""
-$ sig_num_init = ""
-$ sig_name_init = ""
-$ sig_index = 0
+$ sig_name = sig_name1 + sig_name2
+$ sig_num = ""
+$ sig_num_init = ""
+$ sig_name_init = ""
+$ sig_index = 0
$!
$ PARSE_SIG_NAME_LOOP:
$!
$ d_fpathconf="define"
$ d_sysconf="define"
$ d_sigsetjmp="define"
-$ ELSE
-$ pidtype="unsigned int"
-$ d_bcmp="undef"
-$ d_getitimer="undef"
-$ d_gettimeod="undef"
-$ d_mmap="undef"
-$ d_mprotect="undef"
-$ d_munmap="undef"
-$ d_msync="undef"
-$ d_ualarm="undef"
-$ d_uname="undef"
-$ d_unsetenv="undef"
-$ d_clearenv="undef"
-$ d_usleep="undef"
-$ d_setitimer="undef"
-$ d_sigaction="undef"
-$ d_sigprocmask="undef"
-$ d_truncate="undef"
-$ d_wait4="undef"
-$ d_index="undef"
-$ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"
-$ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
-$ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0"
-$ sig_name_init = psnwc1 + psnwc2
-$ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"
-$ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0"
-$ sig_size="19"
-$ sig_count="15"
-$ if (vms_ver .GES. "6.2") then sig_count="17"
-$ uidtype="unsigned int"
-$ d_pathconf="undef"
-$ d_fpathconf="undef"
-$ d_sysconf="undef"
-$ d_sigsetjmp="undef"
-$ ENDIF
+$!
$!: see if tzname[] exists
$ OS
$ WS "#include <stdio.h>"
$ ENDIF
$!
$! Dec C alone
-$ IF ccname .EQS. "DEC"
+$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
$ THEN
-$ d_mbstowcs="define"
-$ d_mbtowc="define"
-$ d_stdiobase="define"
-$ d_stdio_cnt_lval="define"
-$ d_stdio_ptr_lval="define"
-$ d_stdstdio="define"
-$ d_faststdio="define"
-$ d_wcstombs="define"
-$ d_mblen="define"
-$ d_mktime="define"
-$ d_strcoll="define"
-$ d_strxfrm="define"
-$ d_wctomb="define"
-$ i_locale="define"
-$ i_langinfo="define"
-$ d_locconv="define"
-$ IF vms_ver .GES. "6.2"
-$ THEN
-$ d_nl_langinfo="define"
-$ ELSE
-$ d_nl_langinfo="undef"
-$ ENDIF
-$ d_setlocale="define"
$ vms_cc_type="decc"
-$ ELSE
-$ d_mbstowcs="undef"
-$ d_mbtowc="undef"
-$ d_stdiobase="undef"
-$ d_stdio_cnt_lval="undef"
-$ d_stdio_ptr_lval="undef"
-$ d_stdstdio="undef"
-$ d_faststdio="undef"
-$ d_wcstombs="undef"
-$ d_mblen="undef"
-$ d_mktime="undef"
-$ d_strcoll="undef"
-$ d_strxfrm="undef"
-$ d_wctomb="undef"
-$ i_locale="undef"
-$ i_langinfo="undef"
-$ d_locconv="undef"
-$ d_nl_langinfo="undef"
-$ d_setlocale="undef"
$ ENDIF
+$ d_faststdio="define"
+$ d_locconv="define"
+$ d_mblen="define"
+$ d_mbstowcs="define"
+$ d_mbtowc="define"
+$ d_mktime="define"
+$ d_nl_langinfo="define"
+$ d_setlocale="define"
+$ d_stdiobase="define"
+$ d_stdio_cnt_lval="define"
+$ d_stdio_ptr_lval="define"
+$ d_stdstdio="define"
+$ d_strcoll="define"
+$ d_strxfrm="define"
+$ i_langinfo="define"
+$ i_locale="define"
$ d_stdio_ptr_lval_sets_cnt="undef"
$ d_stdio_ptr_lval_nochange_cnt="define"
$ usefaststdio="undef"
$!
$! Sockets?
-$ if Has_Socketshr .OR. Has_Dec_C_Sockets
+$ if Has_Dec_C_Sockets
$ THEN
$ d_vms_do_sockets="define"
$ d_htonl="define"
$ d_socket="define"
$ d_sockpair = "undef"
-$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX")
+$ if (vms_ver .GES. "8.2")
$ then
$ echo "Found 64 bit OpenVMS 8.2, will build with socketpair support"
$ d_sockpair = "define"
$ d_getnetprotos="define"
$ d_getprotoprotos="define"
$ d_getservprotos="define"
-$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
-$ THEN
-$ socksizetype="unsigned int"
-$ ELSE
-$ socksizetype="int *"
-$ ENDIF
+$ socksizetype="size_t"
$ ELSE
$ d_vms_do_sockets="undef"
$ d_htonl="undef"
$ socksizetype="undef"
$ ENDIF
$! Threads
+$ d_oldpthreads="undef"
$ IF use_threads
$ THEN
$ usethreads="define"
$ d_pthreads_created_joinable="define"
-$ if (vms_ver .GES. "7.0")
-$ THEN
-$ d_oldpthreads="undef"
-$ ELSE
-$ d_oldpthreads="define"
-$ ENDIF
$ ELSE
-$ d_oldpthreads="undef"
$ usethreads="undef"
$ d_pthreads_created_joinable="undef"
$ ENDIF
$ u64size="undef"
$ ENDIF
$!
+$ doublemantbits = "52"
$ IF uselongdouble .OR. uselongdouble .EQS. "define"
$ THEN
$ nvtype="long double"
+$ nvmantbits = longdblmantbits
+$ ELSE
+$ nvmantbits = doublemantbits
$ ENDIF
$!
$ tmp = "''ivtype'"
$ d_nv_preserves_uv = "define"
$ echo "Your NVs can preserve all ''nv_preserves_uv_bits' bits of your UVs."
$ ELSE
-$ d_nv_preserves_uv = "undef""
+$ d_nv_preserves_uv = "undef"
$ echo "Your NVs can preserve only ''nv_preserves_uv_bits' bits of your UVs."
$ ENDIF
$!
$ echo4 "Nope."
$ ENDIF
$!
-$ echo4 "Checking if kill() uses SYS$FORCEX or can't be called from a signal handler..."
+$ echo4 "Checking if kill() uses SYS$FORCEX, can't be called from a signal handler,"
+$ echo4 "or fails to handle a signal value of zero..."
$ kill_by_sigprc = "undef"
$ OS
$ WS "#include <stdio.h>"
$ WS " signal(2,handler2);"
$ WS " kill(getpid(),1);"
$ WS " sleep(1);"
-$ WS " printf(""\n"");"
+$ WS " kill(getpid(),0);"
+$ WS " printf(""3\n"");"
$ WS "}"
$ CS
$ ON ERROR THEN CONTINUE
$ GOSUB compile
-$ IF tmp .NES. "012"
+$ IF tmp .NES. "0123"
$ THEN
$ echo4 "Yes, it has at least one of those limitations."
$ echo4 "Checking whether we can use SYS$SIGPRC instead..."
$ WS "#include <stdio.h>"
$ WS "#include <lib$routines.h>"
$ WS "unsigned long code = 0;"
+$ WS "#define sys$sigprc SYS$SIGPRC"
+$ WS "#ifdef __cplusplus"
+$ WS "extern ""C"" {"
+$ WS "#endif"
+$ WS " int sys$sigprc(unsigned int *,void *,unsigned int);"
+$ WS "#ifdef __cplusplus"
+$ WS "}"
+$ WS "#endif"
$ WS "int handler(unsigned long *args) {"
$ WS " code = args[1];"
$ WS " return 1;"
$ WS "}"
$ WS "main() { "
-$ WS " int iss, sys$sigprc();"
+$ WS " int iss;"
$ WS " lib$establish(handler);"
$ WS " iss = sys$sigprc(0,0,0x1234);"
$ WS " iss = ((iss&1)==1 && code == 0x1234);"
$ echo4 "Yep, we can."
$ kill_by_sigprc = "define"
$!
-$! Use the same list of signals the CRTL does for recent systems, but cook our own for very old systems.
-$! Note that the list controls what signals can be caught by name as well as what can be raised via kill().
-$!
-$ if vms_ver .LTS. "6.2"
-$ then
-$! since SIGBUS and SIGSEGV indistinguishable, make them the same here.
-$ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT"
-$ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
-$ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",0"
-$ sig_name_init = psnwc1 + psnwc2
-$ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6"
-$ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,0"
-$ sig_size="17"
-$ sig_count="15"
-$ endif
$ ELSE
$ echo4 "Nope, we can't."
$ ENDIF
$ THEN
$ ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'"
$ ENDIF
-$ i_dirent = "undef"
$ IF ccname .EQS. "CXX"
$ THEN
-$ i_dirent = "define"
$ ccflags="/Include=[]/Standard=ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'"
$ ENDIF
$ IF use_vmsdebug_perl
$ WC "_o='" + obj_ext + "'"
$ WC "alignbytes='" + alignbytes + "'"
$ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'"
+$ WC "api_revision='" + api_revision + "'"
+$ WC "api_subversion='" + api_subversion + "'"
+$ WC "api_version='" + api_version + "'"
+$ WC "api_versionstring='" + version + "'"
$ WC "ar='" + "'"
$ WC "archlib='" + archlib + "'"
$ WC "archlibexp='" + archlibexp + "'"
$ WC "baserev='" + baserev + "'"
$ WC "bin='" + bin + "'"
$ WC "binexp='" + binexp + "'"
+$ WC "bootstrap_charset='undef'"
$ WC "builddir='" + builddir + "'"
$ WC "byteorder='1234'"
$ WC "castflags='0'"
$ ELSE
$ WC "d_Gconvert='my_gconvert(x,n,t,b)'"
$ ENDIF
-$ WC "d_PRIEldbl='" + d_PRIEUldbl + "'"
-$ WC "d_PRIFldbl='" + d_PRIFUldbl + "'"
-$ WC "d_PRIGldbl='" + d_PRIGUldbl + "'"
+$ WC "d_PRIEUldbl='" + d_PRIEUldbl + "'"
+$ WC "d_PRIFUldbl='" + d_PRIFUldbl + "'"
+$ WC "d_PRIGUldbl='" + d_PRIGUldbl + "'"
$ WC "d_PRIXU64='" + d_PRIXU64 + "'"
$ WC "d_PRId64='" + d_PRId64 + "'"
$ WC "d_PRIeldbl='" + d_PRIeldbl + "'"
$ WC "d_PRIfldbl='" + d_PRIfldbl + "'"
$ WC "d_PRIgldbl='" + d_PRIgldbl + "'"
+$ WC "d_PRIi64='" + d_PRIi64 + "'"
$ WC "d_PRIo64='" + d_PRIo64 + "'"
$ WC "d_PRIu64='" + d_PRIu64 + "'"
$ WC "d_PRIx64='" + d_PRIx64 + "'"
$ WC "d__fwalk='undef'"
$ WC "d_access='" + d_access + "'"
$ WC "d_accessx='undef'"
+$ WC "d_acosh='" + d_acosh + "'"
$ WC "d_aintl='undef'"
$ WC "d_alarm='define'"
$ WC "d_archlib='define'"
$ WC "d_asctime64='undef'"
+$ WC "d_asinh='" + d_asinh + "'"
+$ WC "d_atanh='" + d_atanh + "'"
$ WC "d_atolf='" + d_atolf + "'"
$ WC "d_atoll='" + d_atoll + "'"
$ WC "d_attribute_format='" + d_attribut + "'"
$ WC "d_bcmp='" + d_bcmp + "'"
$ WC "d_bcopy='" + d_bcopy + "'"
$ WC "d_bincompat3='undef'"
-$! WC "d_bsdpgrp='undef'"
+$ WC "d_bsd='undef'"
$ WC "d_bsdgetpgrp='undef'"
$ WC "d_bsdsetpgrp='undef'"
$ WC "d_builtin_choose_expr='undef'" ! GCC only
$ WC "d_bzero='" + d_bzero + "'"
$ WC "d_casti32='define'"
$ WC "d_castneg='define'"
+$ WC "d_cbrt='" + d_cbrt + "'"
$ WC "d_charvspr='undef'"
$ WC "d_chown='define'"
$ WC "d_chroot='undef'"
$ WC "d_chsize='undef'"
$ WC "d_class='undef'"
+$ WC "d_closedir='define'"
$ WC "d_cmsghdr_s='undef'"
$ WC "d_const='define'"
+$ WC "d_copysign='" + d_copysign + "'"
$ WC "d_copysignl='define'"
$ WC "d_cplusplus='" + d_cplusplus + "'"
$ WC "d_crypt='define'"
$ WC "d_dir_dd_fd='undef'"
$ WC "d_dirfd='undef'"
$ WC "d_dirnamlen='define'"
-$ WC "d_dlerror='undef'"
+$ WC "d_dladdr='undef'"
+$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.2")
+$ THEN
+$ WC "d_dlerror='define'"
+$ WC "d_dlopen='define'"
+$ ELSE
+$ WC "d_dlerror='undef'"
+$ WC "d_dlopen='undef'"
+$ ENDIF
$ WC "d_dlsymun='undef'"
+$ WC "d_backtrace='undef'"
$ WC "d_dosuid='undef'"
$ WC "d_drand48proto='" + d_drand48proto + "'"
$ WC "d_dup2='define'"
$ WC "d_endpwent='define'"
$ WC "d_endsent='" + d_endsent + "'"
$ WC "d_eofnblk='undef'"
+$ WC "d_erf='" + d_erf + "'"
+$ WC "d_erfc='" + d_erfc + "'"
$ WC "d_eunice='undef'"
+$ WC "d_exp2='" + d_exp2 + "'"
+$ WC "d_expm1='" + d_expm1 + "'"
$ WC "d_fchmod='undef'"
$ WC "d_fchdir='undef'"
$ WC "d_fchown='undef'"
$ WC "d_fcntl='" + d_fcntl + "'"
$ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'"
$ WC "d_fd_set='" + d_fd_set + "'"
+$ WC "d_fd_macros='define'"
+$ WC "d_fdim='" + d_fdim + "'"
+$ WC "d_fds_bits='define'"
+$ WC "d_fegetround='undef'"
$ WC "d_fgetpos='define'"
-$ WC "d_finite='undef'"
-$ WC "d_finitel='undef'"
+$ IF use_ieee_math
+$ THEN
+$ WC "d_finite='define'"
+$ WC "d_finitel='define'"
+$ ELSE
+$ WC "d_finite='undef'"
+$ WC "d_finitel='undef'"
+$ ENDIF
$ WC "d_flexfnam='define'"
$ WC "d_flock='undef'"
$ WC "d_flockproto='undef'"
+$ WC "d_fma='" + d_fma + "'"
+$ WC "d_fmax='" + d_fmax + "'"
+$ WC "d_fmin='" + d_fmin + "'"
$ WC "d_fork='undef'"
$ WC "d_fp_class='undef'"
+$ WC "d_fp_classify='" + d_fp_classify + "'"
+$ WC "d_fp_classify='undef'"
+$ WC "d_fp_classl='undef'"
$ WC "d_fpathconf='" + d_fpathconf + "'"
$ WC "d_fpclass='undef'"
$ WC "d_fpclassify='undef'"
$ WC "d_fpclassl='undef'"
+$ WC "d_fpgetround='undef'"
$ WC "d_fpos64_t='" + d_fpos64_t + "'"
$ WC "d_frexpl='" + d_frexpl + "'"
$ WC "d_fs_data_s='undef'"
$ WC "d_fsetpos='define'"
$ WC "d_fstatfs='undef'"
$ WC "d_fstatvfs='" + d_fstatvfs + "'"
-$ WC "d_fsync='undef'"
+$ WC "d_fsync='define'"
$ WC "d_ftello='" + d_ftello + "'"
+$ WC "d_ftime='define'"
$ WC "d_futimes='undef'"
$ WC "d_gdbmndbm_h_uses_prototypes='undef'"
$ WC "d_gdbm_ndbm_h_uses_prototypes='undef'"
-$ WC "d_getaddrinfo='undef'"
+$ WC "d_getaddrinfo='define'"
$ WC "d_getcwd='define'"
$ WC "d_getespwnam='undef'"
$ WC "d_getfsstat='undef'"
$ WC "d_getlogin='define'"
$ WC "d_getmnt='undef'"
$ WC "d_getmntent='undef'"
-$ WC "d_getnameinfo='undef'"
+$ WC "d_getnameinfo='define'"
$ WC "d_getnbyaddr='" + d_getnbyaddr + "'"
$ WC "d_getnbyname='" + d_getnbyname + "'"
$ WC "d_getnent='" + d_getnent + "'"
$ WC "d_grpasswd='undef'"
$ WC "d_hasmntopt='undef'"
$ WC "d_htonl='" + d_htonl + "'"
+$ WC "d_hypot='" + d_hypot + "'"
+$ WC "d_ilogb='" + d_ilogb + "'"
$ WC "d_ilogbl='undef'"
$ WC "d_inc_version_list='undef'"
$ WC "d_index='" + d_index + "'"
-$ WC "d_inetaton='undef'"
-$ WC "d_inetntop='undef'"
-$ WC "d_inetpton='undef'"
+$ WC "d_inetaton='define'"
+$ WC "d_inetntop='define'"
+$ WC "d_inetpton='define'"
$ WC "d_int64_t='" + d_int64_t + "'"
+$ WC "d_ip_mreq='define'"
+$ WC "d_ip_mreq_source='undef'"
+$ WC "d_ipv6_mreq='define'"
+$ WC "d_ipv6_mreq_source='undef'"
$ WC "d_isascii='define'"
+$ WC "d_isblank='undef'"
$ WC "d_isfinite='undef'"
+$ WC "d_isfinitel='undef'"
$ WC "d_isinf='undef'"
+$ WC "d_isinfl='undef'"
+$ WC "d_isless='undef'"
$ WC "d_isnan='" + d_isnan + "'"
$ WC "d_isnanl='" + d_isnanl + "'"
+$ WC "d_isnormal='" + d_isnormal + "'"
+$ WC "d_j0='" + d_j0 + "'"
+$ WC "d_j0l='undef'"
$ WC "d_killpg='undef'"
$ WC "d_lchown='" + d_lchown + "'"
$ WC "d_ldbl_dig='define'"
+$ WC "d_ldexpl='" + d_ldexpl + "'"
+$ WC "d_lgamma='" + d_lgamma + "'"
$ WC "d_libm_lib_version='undef'"
$ WC "d_link='" + d_link + "'"
+$ WC "d_llrint='undef'"
+$ WC "d_llrintl='undef'"
+$ WC "d_llround='undef'"
+$ WC "d_llroundl='undef'"
$ WC "d_llseek='undef'"
$ WC "d_localtime64='undef'"
$ WC "d_locconv='" + d_locconv + "'"
+$ WC "d_lc_monetary_2008='undef'"
$ WC "d_lockf='undef'"
+$ WC "d_log1p='" + d_log1p + "'"
+$ WC "d_log2='" + d_log2 + "'"
+$ WC "d_logb='" + d_logb + "'"
$ WC "d_longdbl='" + d_longdbl + "'"
$ WC "d_longlong='" + d_longlong + "'"
+$ WC "d_lrint='" + d_lrint + "'"
+$ WC "d_lrintl='" + d_lrintl + "'"
+$ WC "d_lround='" + d_lround + "'"
+$ WC "d_lroundl='" + d_lroundl + "'"
$ WC "d_lseekproto='define'"
$ WC "d_lstat='" + d_lstat + "'"
$ WC "d_madvise='undef'"
$ WC "d_modfl_pow32_bug='undef'"
$ WC "d_mprotect='" + d_mprotect + "'"
$ WC "d_msg='undef'"
+$ WC "d_msgctl='undef'"
+$ WC "d_msgget='undef'"
+$ WC "d_msgrcv='undef'"
+$ WC "d_msgsnd='undef'"
$ WC "d_msg_ctrunc='undef'"
$ WC "d_msg_dontroute='undef'"
$ WC "d_msg_oob='undef'"
$ WC "d_msync='" + d_msync + "'"
$ WC "d_munmap='" + d_munmap + "'"
$ WC "d_mymalloc='" + d_mymalloc + "'"
+$ WC "d_nan='undef'"
$ WC "d_nanosleep='" + d_nanosleep + "'"
+$ WC "d_ndbm='undef'"
$ WC "d_ndbm_h_uses_prototypes='undef'"
+$ WC "d_nearbyint='undef'"
+$ WC "d_nextafter='" + d_nextafter + "'"
+$ WC "d_nexttoward='" + d_nexttoward + "'"
$ WC "d_nice='define'"
$ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
$ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
$ WC "d_old_pthread_create_joinable='" + d_old_pthread_create_joinable + "'"
$ WC "d_oldarchlib='define'"
$ WC "d_oldpthreads='" + d_oldpthreads + "'"
+$ WC "d_oldsock='undef'"
$ WC "d_open3='define'"
$ WC "d_pathconf='" + d_pathconf + "'"
$ WC "d_pause='define'"
$ WC "d_phostname='" + d_phostname + "'"
$ WC "d_pipe='define'"
$ WC "d_poll='" + d_poll + "'"
+$ WC "d_portable='define'"
$ WC "d_procselfexe='undef'"
$ WC "d_pseudofork='undef'"
$ WC "d_pthread_atfork='undef'"
$ WC "d_pthread_attr_setscope='" + d_pthread_attr_setscope + "'"
$ WC "d_pthread_yield='" + d_pthread_yield + "'"
$ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'"
+$ WC "d_ptrdiff_t='define'"
$ WC "d_pwage='undef'"
$ WC "d_pwchange='undef'"
$ WC "d_pwclass='undef'"
$ WC "d_readv='undef'"
$ WC "d_realpath='" + d_realpath + "'"
$ WC "d_recvmsg='undef'"
+$ WC "d_regcomp='undef'"
+$ WC "d_remainder='" + d_remainder + "'"
+$ WC "d_remquo='" + d_remquo + "'"
$ WC "d_rename='define'"
$ WC "d_rewinddir='define'"
+$ WC "d_rint='" + d_rint + "'"
$ WC "d_rmdir='define'"
+$ WC "d_round='undef'"
$ WC "d_safebcpy='undef'"
$ WC "d_safemcpy='define'"
$ WC "d_sanemcmp='define'"
$ WC "d_sbrkproto='define'"
+$ WC "d_scalbn='undef'"
$ WC "d_scalbnl='undef'"
$ WC "d_sched_yield='" + d_sched_yield + "'"
$ WC "d_scm_rights='undef'"
$ WC "d_seekdir='define'"
$ WC "d_select='" + d_select + "'"
-$ WC "d_sem='undef'"
-$ WC "d_semctl_semid_ds='undef'"
-$ WC "d_semctl_semun='undef'"
+$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."8.4")
+$ THEN
+$ WC "d_sem='define'"
+$ WC "d_semctl='define'"
+$ WC "d_semctl_semid_ds='define'"
+$ WC "d_semctl_semun='define'"
+$ WC "d_semget='define'"
+$ WC "d_semop='define'"
+$ ELSE
+$ WC "d_sem='undef'"
+$ WC "d_semctl='undef'"
+$ WC "d_semctl_semid_ds='undef'"
+$ WC "d_semctl_semun='undef'"
+$ WC "d_semget='undef'"
+$ WC "d_semop='undef'"
+$ ENDIF
$ WC "d_sendmsg='undef'"
$ WC "d_setegid='undef'"
$ WC "d_setenv='" + d_setenv + "'"
$ WC "d_setsent='" + d_setsent + "'"
$ WC "d_setsid='" + d_setsid + "'"
$ WC "d_setvbuf='" + d_setvbuf + "'"
-$ WC "d_sfio='undef'"
-$ WC "d_shm='undef'"
-$ WC "d_shmatprototype='undef'"
+$ WC "d_shm='" + d_shm + "'"
+$ WC "d_shmat='" + d_shmat + "'"
+$ WC "d_shmatprototype='" + d_shmatprototype + "'"
+$ WC "d_shmctl='" + d_shmctl + "'"
+$ WC "d_shmdt='" + d_shmdt + "'"
+$ WC "d_shmget='" + d_shmget + "'"
$ WC "d_sigaction='" + d_sigaction + "'"
$ WC "d_signbit='" + d_signbit + "'"
$ WC "d_sigprocmask='" + d_sigprocmask + "'"
$ WC "d_sigsetjmp='" + d_sigsetjmp + "'"
$ WC "d_sin6_scope_id='" + d_sin6_scope_id + "'"
$ WC "d_sitearch='define'"
+$ WC "d_sockaddr_in6='define'"
$ WC "d_sockaddr_sa_len='" + d_sockaddr_sa_len + "'"
$ WC "d_sockatmark='undef'"
$ WC "d_sockatmarkproto='undef'"
$ WC "d_sresgproto='undef'"
$ WC "d_sresproto='undef'"
$ WC "d_sresuproto='undef'"
+$ WC "d_stat='define'"
$ WC "d_statblks='undef'"
$ WC "d_statfs_f_flags='undef'"
$ WC "d_statfs_s='undef'"
$ WC "d_stdiobase='" + d_stdiobase + "'"
$ WC "d_stdstdio='" + d_stdstdio + "'"
$ WC "d_faststdio='" + d_faststdio + "'"
+$ WC "d_statvfs='" + d_statvfs + "'"
$ WC "d_strchr='define'"
$ WC "d_strcoll='" + d_strcoll + "'"
$ WC "d_strctcpy='define'"
$ WC "d_syscall='undef'"
$ WC "d_syscallproto='undef'"
$ WC "d_sysconf='" + d_sysconf + "'"
+$ WC "d_sysernlst='undef'"
$ WC "d_syserrlst='undef'"
$ WC "d_system='define'"
$ WC "d_tcgetpgrp='undef'"
$ WC "d_tcsetpgrp='undef'"
$ WC "d_telldir='define'"
$ WC "d_telldirproto='define'"
+$ WC "d_tgamma='" + d_tgamma + "'"
$ WC "d_time='define'"
$ WC "d_timegm='undef'"
$ WC "d_times='define'"
$ WC "d_tm_tm_zone='undef'"
$ ENDIF
$ WC "d_truncate='" + d_truncate + "'"
+$ WC "d_trunc='" + d_trunc + "'"
+$ WC "d_truncl='" + d_truncl + "'"
$ WC "d_tzname='" + d_tzname + "'"
$ WC "d_u32align='define'"
$ WC "d_ualarm='" + d_ualarm + "'"
$ WC "d_usleepproto='" + d_usleep + "'"
$ WC "d_ustat='undef'"
$ WC "d_vendorarch='undef'"
+$ WC "d_vendorbin='undef'"
$ WC "d_vendorlib='undef'"
+$ WC "d_vendorscript='undef'"
$ WC "d_vfork='define'"
$ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'" ! VMS
$ WC "d_vms_do_sockets='" + d_vms_do_sockets + "'" ! VMS
$ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS
$ WC "d_void_closedir='define'"
+$ WC "d_voidsig='undef'"
+$ WC "d_voidtty='" + "'"
$ WC "d_volatile='define'"
$ WC "d_vprintf='define'"
$ WC "d_vsnprintf='" + d_vsnprintf + "'"
$ WC "d_wait4='" + d_wait4 + "'"
$ WC "d_waitpid='define'"
-$ WC "d_wcstombs='" + d_wcstombs + "'"
-$ WC "d_wctomb='" + d_wctomb + "'"
+$ WC "d_wcscmp='define'"
+$ WC "d_wcstombs='define'"
+$ WC "d_wcsxfrm='define'"
+$ WC "d_wctomb='define'"
$ WC "d_writev='undef'"
+$ WC "d_xenix='undef'"
$ WC "db_hashtype=' '"
$ WC "db_prefixtype=' '"
$ WC "db_version_major='" + "'"
$ WC "db_version_minor='" + "'"
$ WC "db_version_patch='" + "'"
$ WC "dbgprefix='" + dbgprefix + "'"
-$ WC "defvoidused='15'"
$ WC "devtype='" + devtype + "'"
$ WC "direntrytype='struct dirent'"
$ WC "dlext='" + dlext + "'"
$ WC "dlobj='" + dlobj + "'"
-$ WC "dlsrc='dl_vms.c'"
+$ WC "dlsrc='dl_vms.xs'"
+$ WC "doublekind='3'"
+$ WC "doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'"
+$ WC "doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'"
+$ WC "doublemantbits='" + doublemantbits + "'"
$ WC "doublesize='" + doublesize + "'"
$ WC "drand01='" + drand01 + "'"
$ WC "dtrace='" + "'"
$ WC "gidsize='4'"
$ WC "gidtype='" + gidtype + "'"
$ WC "groupstype='Gid_t'"
+$ WC "h_fcntl='false'"
+$ WC "h_sysfile='false'"
$ WC "hint='none'"
$ WC "hintfile='" + "'"
$ WC "i16size='" + i16size + "'"
$ WC "i64type='" + i64type + "'"
$ WC "i8size='" + i8size + "'"
$ WC "i8type='" + i8type + "'"
-$ WC "i_arpainet='undef'"
+$ WC "i_arpainet='" + i_arpainet + "'"
$ WC "i_assert='define'"
+$ WC "i_bfd='undef'"
+$ WC "i_bsdioctl='undef'"
$ WC "i_crypt='undef'"
$ WC "i_db='undef'"
$ WC "i_dbm='undef'"
-$ WC "i_dirent='" + i_dirent + "'"
+$ WC "i_dirent='undef'" ! we roll our own
$ WC "i_dlfcn='undef'"
+$ WC "i_execinfo='undef'"
$ WC "i_fcntl='" + i_fcntl + "'"
+$ WC "i_fenv='undef'"
$ WC "i_float='define'"
$ WC "i_fp='undef'"
$ WC "i_fp_class='undef'"
$ WC "i_locale='" + i_locale + "'"
$ WC "i_machcthr='undef'"
$ WC "i_machcthreads='undef'"
+$ WC "i_malloc='undef'"
$ WC "i_mallocmalloc='undef'"
$ WC "i_math='define'"
$ WC "i_memory='undef'"
$ WC "i_prot='undef'"
$ WC "i_pthread='define'"
$ WC "i_pwd='undef'"
+$ WC "i_quadmath='undef'"
$ WC "i_rpcsvcdbm='undef'"
-$ WC "i_sfio='undef'"
$ WC "i_sgtty='undef'"
$ WC "i_shadow='" + i_shadow + "'"
$ WC "i_socks='" + i_socks + "'"
$ WC "i_stdarg='define'"
+$ IF ccname .EQS. "DEC" .AND. F$INTEGER(Dec_C_Version).GE.60400000
+$ THEN
+$ WC "i_stdbool='define'"
+$ ELSE
+$ WC "i_stdbool='undef'"
+$ ENDIF
$ WC "i_stddef='define'"
+$ WC "i_stdint='undef'"
$ WC "i_stdlib='define'"
$ WC "i_string='define'"
$ WC "i_sunmath='undef'"
$ WC "i_sysaccess='" + i_sysaccess + "'"
$ WC "i_sysdir='undef'"
$ WC "i_sysfile='" + i_sysfile + "'"
+$ WC "i_sysfilio='undef'"
+$ WC "i_sysin='undef'"
$ WC "i_sysioctl='" + i_sysioctl + "'"
$ WC "i_syslog='" + i_syslog + "'"
$ WC "i_sysmman='undef'"
$ WC "i_systimes='undef'"
$ WC "i_systypes='define'"
$ WC "i_sysuio='" + i_sysuio + "'"
-$ WC "i_sysun='undef'"
+$ WC "i_sysun='" + i_sysun + "'"
$ WC "i_sysutsname='" + i_sysutsname + "'"
$ WC "i_sysvfs='undef'"
$ WC "i_syswait='undef'"
$ WC "i_utime='" + i_utime + "'"
$ WC "i_values='undef'"
$ WC "i_varargs='undef'"
+$ WC "i_varhdr='stdarg.h'"
$ WC "i_vfork='undef'"
$ WC "inc_version_list='0'"
$ WC "inc_version_list_init='0'"
$ WC "ivsize='" + ivsize + "'"
$ WC "ivtype='" + ivtype + "'"
$!
-$! The known_extensions symbol may be quite long
+$! The xs_extensions symbol may be quite long
$!
-$ tmp = "known_extensions='" + known_extensions + "'"
-$ WC/symbol tmp
-$ DELETE/SYMBOL tmp
+$ WC/symbol "known_extensions='", xs_extensions, " ", nonxs_ext, " ", nonxs_ext2, "'"
$ WC "ld='" + ld + "'"
+$ WC "ld_can_script='undef'"
$ WC "lddlflags='/Share'"
$ WC "ldflags='" + ldflags + "'"
$ WC "ldflags_uselargefiles='" + "'"
+$ WC "ldlibpthname='" + "'"
$ WC "lib_ext='" + lib_ext + "'"
$ WC "libc='" + libc + "'"
$ WC "libpth='/sys$share /sys$library'"
$ WC "libswanted='" + "'"
$ WC "libswanted_uselargefiles='" + "'"
$ WC "longdblsize='" + longdblsize + "'"
+$ WC "longdblkind='" + longdblkind + "'"
+$ WC "longdblinfbytes='" + longdblinfbytes + "'"
+$ WC "longdblnanbytes='" + longdblnanbytes + "'"
+$ WC "longdblmantbits='" + longdblmantbits + "'"
$ WC "longlongsize='" + longlongsize + "'"
$ WC "longsize='" + longsize + "'"
$ IF uselargefiles .OR. uselargefiles .EQS. "define"
$ WC "netdb_net_type='" + netdb_net_type + "'"
$ WC/symbol "nonxs_ext='", nonxs_ext, " ", nonxs_ext2, "'"
$ WC "nveformat='" + nveformat + "'"
+$ WC "nvEUformat='" + nvEUformat + "'"
$ WC "nvfformat='" + nvfformat + "'"
+$ WC "nvFUformat='" + nvFUformat + "'"
$ WC "nvgformat='" + nvgformat + "'"
+$ WC "nvGUformat='" + nvGUformat + "'"
+$ WC "nvmantbits='" + nvmantbits + "'"
$ WC "nvsize='" + nvsize + "'"
$ WC "nvtype='" + nvtype + "'"
$ WC "o_nonblock=' '"
$ WC "sLOCALTIME_max='4294967295'"
$ WC "sLOCALTIME_min='0'"
$ WC "sPRId64='" + sPRId64 + "'"
-$ WC "sPRIEldbl='" + sPRIEUldbl + "'"
-$ WC "sPRIFldbl='" + sPRIFUldbl + "'"
-$ WC "sPRIGldbl='" + sPRIGUldbl + "'"
-$ WC "sPRIX64='" + sPRIXU64 + "'"
+$ WC "sPRIEUldbl='" + sPRIEUldbl + "'"
+$ WC "sPRIFUldbl='" + sPRIFUldbl + "'"
+$ WC "sPRIGUldbl='" + sPRIGUldbl + "'"
+$ WC "sPRIXU64='" + sPRIXU64 + "'"
$ WC "sPRIeldbl='" + sPRIeldbl + "'"
$ WC "sPRIfldbl='" + sPRIfldbl + "'"
$ WC "sPRIgldbl='" + sPRIgldbl + "'"
-$! WC "sPRIi64='" + sPRIi64 + "'"
+$ WC "sPRIi64='" + sPRIi64 + "'"
$ WC "sPRIo64='" + sPRIo64 + "'"
$ WC "sPRIu64='" + sPRIu64 + "'"
$ WC "sPRIx64='" + sPRIx64 + "'"
$ WC "selecttype='" + selecttype + "'"
$ WC "sh='MCR'"
$ WC "sharpbang='#!'"
-$ WC "shmattype='" + " '"
+$ WC "shmattype='" + shmattype + "'"
$ WC "shortsize='" + shortsize + "'"
$ IF (f$length(sig_name) .GE. 244)
$ THEN
$ WC "ssizetype='int'"
$ WC "startperl=" + startperl ! This one's special--no enclosing single quotes
$ WC "static_ext='" + static_ext + "'"
+$ WC "st_ino_size='" + st_ino_size + "'"
+$ WC "st_ino_sign='1'"
$ WC "stdchar='" + stdchar + "'"
$ WC "stdio_base='((*fp)->_base)'"
$ WC "stdio_bufsiz='((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)'"
$ WC "stdio_stream_array=' " + "'"
$ WC "subversion='" + subversion + "'"
$ WC "targetarch='" + "'"
+$ WC "targetsh='MCR'"
$ WC "timetype='" + timetype + "'"
$ WC "u16size='" + u16size + "'"
$ WC "u16type='" + u16type + "'"
$ WC "usecasesensitive='" + be_case_sensitive + "'" ! VMS-specific
$ WC "usedebugging_perl='"+use_debugging_perl+"'"
$ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific
+$ WC "usecbacktrace='undef'"
$ WC "usecrosscompile='undef'"
$ WC "usedevel='" + usedevel + "'"
$ WC "usedl='" + usedl + "'"
$ WC "useieee='" + useieee + "'" ! VMS-specific
$ WC "useithreads='" + useithreads + "'"
$ WC "usekernelthreads='" + usekernelthreads + "'" ! VMS-specific
+$ WC "usekernprocpathname='undef'"
+$ WC "usensgetexecutablepath='undef'"
$ WC "uselargefiles='" + uselargefiles + "'"
$ WC "uselongdouble='" + uselongdouble + "'"
$ WC "usemorebits='" + usemorebits + "'"
$ WC "usemultiplicity='" + usemultiplicity + "'"
$ WC "usemymalloc='" + usemymalloc + "'"
-$ WC "useperlio='" + useperlio + "'"
+$ WC "useperlio='define'"
$ WC "useposix='false'"
+$ WC "usequadmath='undef'"
$ WC "usereentrant='undef'"
$ WC "userelocatableinc='undef'"
$ WC "usesecurelog='" + usesecurelog + "'" ! VMS-specific
$ WC "usethreads='" + usethreads + "'"
$ WC "usethreadupcalls='" + usethreadupcalls + "'" ! VMS-specific
$ WC "usevendorprefix='" + "'" ! try to say no, though we'll be ignored as of MM 5.90_01
+$ WC "useversionedarchname='" + useversionedarchname + "'"
$ WC "usevfork='true'"
$ WC "usevmsdebug='" + usevmsdebug + "'" ! VMS-specific
$ WC "uvoformat='" + uvoformat + "'"
$ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific
$ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific
$ WC "vms_ver='" + vms_ver + "'" ! VMS specific
-$ WC "voidflags='15'"
$!
$! ## The UNIXy POSIXy reentrantey thingys ##
$! See "Appendix B, Version-Dependency Tables" in the C RTL
$! manual for when assorted _r functions became available.
$!
-$ IF use_threads .AND. vms_ver .GES. "7.2"
+$ IF use_threads
$ THEN
$ WC "asctime_r_proto='REENTRANT_PROTO_B_SB'"
$ WC "d_asctime_r='define'"
$ WC "d_gethostbyaddr_r='undef'"
$ WC "d_gethostbyname_r='undef'"
$ WC "d_gethostent_r='undef'"
-$ WC "d_getlogin_r='undef'"
+$ WC "d_getlogin_r='define'"
$ WC "d_getnetbyaddr_r='undef'"
$ WC "d_getnetbyname_r='undef'"
$ WC "d_getnetent_r='undef'"
$ WC "d_getservent_r='undef'"
$ WC "d_getspnam_r='undef'"
$ WC "d_gmtime_r='undef'" ! leave undef'd; we use my_gmtime
+$ WC "d_lgamma_r='undef'"
$ WC "d_localtime_r='undef'" ! leave undef'd; we use my_localtime
$ WC "d_localtime_r_needs_tzset='undef'"
$ WC "d_random_r='undef'"
$ WC "gethostbyaddr_r_proto='0'"
$ WC "gethostbyname_r_proto='0'"
$ WC "gethostent_r_proto='0'"
-$ WC "getlogin_r_proto='0'"
+$ IF use_threads
+$ THEN
+$ WC "getlogin_r_proto='REENTRANT_PROTO_I_BW'"
+$ ELSE
+$ WC "getlogin_r_proto='0'"
+$ ENDIF
$ WC "getnetbyaddr_r_proto='0'"
$ WC "getnetbyname_r_proto='0'"
$ WC "getnetent_r_proto='0'"
$ ENDIF
$ WRITE CONFIG "Sys$Share:VAXCRTL/Share"
$ CLOSE CONFIG
-$ 'ld' munchconfig.obj,munchconfig.opt/opt
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext',munchconfig.opt/opt
$ DELETE/NOLOG/NOCONFIRM munchconfig.opt;
$ ELSE
-$ 'ld' munchconfig.obj
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext'
$ ENDIF
-$ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj;
+$ IF F$SEARCH("munchconfig''obj_ext'") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig'obj_ext';
$ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c;
$ IF ccname .EQS. "CXX"
$ THEN
$ THEN
$ WC "#define VMS_DO_SOCKETS"
$ WC "#define DECCRTL_SOCKETS"
-$ ELSE
-$ IF Has_Socketshr THEN WC "#define VMS_DO_SOCKETS"
$ ENDIF
$! This is VMS-specific for now
$ WC "#''d_setenv' HAS_SETENV"
$ IF use64bitint .OR. use64bitint .EQS. "define"
$ THEN
$ WC "#define USE_64_BIT_INT"
+$ ENDIF
+$ IF uselongdouble .OR. uselongdouble .EQS. "define"
+$ THEN
$ WC "#define USE_LONG_DOUBLE"
$ ENDIF
$ IF use64bitall .OR. use64bitall .EQS. "define" THEN -
$ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO"
$ WC "#define HAS_ENVGETENV"
$ WC "#define PERL_EXTERNAL_GLOB"
-$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_VAX" .AND. -
- ccname .EQS. "DEC" .AND. -
- ccversion .LE. 50390006
-$ THEN
-$! Alas this does not help to build Fcntl
-$! WC "#define PERL_IGNORE_FPUSIG SIGFPE"
-$ ENDIF
$ IF kill_by_sigprc .EQS. "define" then WC "#define KILL_BY_SIGPRC"
$ IF unlink_all_versions .OR. unlink_all_versions .EQS. "define" THEN -
WC "#define UNLINK_ALL_VERSIONS"
$ IF d_sockaddr_sa_len .EQS. "define" then WC "#define _SOCKADDR_LEN 1"
+$ IF ccname .EQS. "CXX" then WC "#define NO_ENVIRON_ARRAY"
+$ IF ccname .EQS. "CXX" then WC "#define VMS" ! only has __VMS by default
$ CLOSE CONFIG
$!
$ echo4 "Doing variable substitutions on .SH files..."
$!
$! Now build the normal config.h
$ DEFINE/USER_MODE sys$output [-]config.main
-$ mcr []munchconfig 'config_sh' [-]config_h.sh
+$ mcr []munchconfig'exe_ext' 'config_sh' [-]config_h.sh
$ ! Concatenate them together
$ copy [-]config.local,[-]config.main [-]config.h
$! Clean up
$ THEN
$ SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1"
$ ELSE
-$ IF Has_Socketshr
-$ THEN
-$ SOCKET_REPLACE = "SOCKET=SOCKETSHR_SOCKETS=1"
-$ ELSE
-$ SOCKET_REPLACE = "SOCKET="
-$ ENDIF
+$ SOCKET_REPLACE = "SOCKET="
$ ENDIF
$ IF use_threads
$ THEN
-$ IF (vms_ver .LES. "6.2")
-$ THEN
-$ THREAD_REPLACE = "THREAD=OLDTHREADED=1"
-$ ELSE
-$ THREAD_REPLACE = "THREAD=THREADED=1"
-$ ENDIF
+$ THREAD_REPLACE = "THREAD=THREADED=1"
$ ELSE
$ THREAD_REPLACE = "THREAD="
$ ENDIF
$ ELSE
$ LARGEFILE_REPLACE = "LARGEFILE="
$ ENDIF
+$ IF use_vmsdebug_perl
+$ THEN
+$ DEBUG_REPLACE = "USEVMSDEBUG=__DEBUG__=1"
+$ ELSE
+$ DEBUG_REPLACE = "USEVMSDEBUG="
+$ ENDIF
+$ PREFIX_REPLACE = "PREFIX=PREFIX=''prefix'"
$!
$! In order not to stress the tiny command buffer on pre-7.3-2 systems,
$! we put the following substitutions in a file and pass the file to
$ WC "FLAGS=FLAGS=''extra_flags'"
$ WC "''LARGEFILE_REPLACE'"
$ WC "ARCHNAME=ARCHNAME=''archname'"
+$ WC "''DEBUG_REPLACE'"
+$ WC "''PREFIX_REPLACE'"
$ close CONFIG
$!
$ echo4 "Extracting ''defmakefile' (with variable substitutions)"
$ DEFINE/USER_MODE sys$output 'UUmakefile'
-$ mcr []munchconfig 'config_sh' 'Makefile_SH' -f extra_subs.txt
+$ mcr []munchconfig'exe_ext' 'config_sh' 'Makefile_SH' -f extra_subs.txt
$! Clean up after ourselves
-$ DELETE/NOLOG/NOCONFIRM []munchconfig.exe;
+$ DELETE/NOLOG/NOCONFIRM []munchconfig'exe_ext';
$ DELETE/NOLOG/NOCONFIRM []extra_subs.txt;
$!
$! Note that the /key qualifier to search, as in:
$! Any changes made to it directly will be lost. If you need to make any
$! changes, please edit the template in Configure.Com instead.
$! Use FORCE if you've just podified a README.* file on VMS.
+$ miniperl = f$search("sys$disk:[]miniperl.%xe;") ! could have alternate extension
$ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then -
search README.* "=head"/window=0/output=extra.pods
$ open/read/error=extra_close EXTRA extra.pods
$ if file_rdt .GTS. pod_file_rdt then do_copy := true
$ endif
$ ! wacky method to preserve case on ODS-5 even when parse style is traditional
-$ if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});"
+$ if do_copy then mcr 'miniperl' -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});"
$ endif
$ endif
$ goto extra_loop
$ WRITE CONFIG "$! This perl configured & administered by ''perladmin'"
$ ENDIF
$ WRITE CONFIG "$!"
-$! HP hack to make distributing binaries easier
-$!----------------------------------------------
-$ pcsi_producer = f$trnlnm("PCSI_PRODUCER")
-$ if pcsi_producer .eqs. ""
-$ then
-$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'"
-$ else
-$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")"
-$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")"
-$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")"
-$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000."""
-$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>"""
-$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><"""
-$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">"""
-$ WRITE CONFIG "$ if f$trnlnm(""HP_BUILD_PERL_BIN_KIT"",""LNM$PROCESS_TABLE"") .EQS. """""
-$ WRITE CONFIG "$ then"
-$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'myroot_dev'['myroot_dir'.]"
-$ WRITE CONFIG "$ endif"
-$ endif
+$ WRITE CONFIG "$ if P1 .EQS. """""
+$ WRITE CONFIG "$ then"
+$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")"
+$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")"
+$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")"
+$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000."""
+$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>"""
+$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><"""
+$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">"""
+$ WRITE CONFIG "$ root_spec = myroot_dev + ""["" + myroot_dir + "".]"""
+$ WRITE CONFIG "$ else"
+$ WRITE CONFIG "$ root_spec = P1"
+$ WRITE CONFIG "$ endif"
+$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'root_spec'"
$ WRITE CONFIG "$ ext = "".exe"""
$ IF sharedperl
$ THEN
$ WRITE CONFIG "$! Symbols for Perl-based utility programs:"
$ WRITE CONFIG "$!"
$ WRITE CONFIG "$ c2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com"""
-$ WRITE CONFIG "$ config_data== """ + perl_setup_perl + " ''vms_prefix':[utils]config_data.com"""
$ WRITE CONFIG "$ corelist == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com"""
$ WRITE CONFIG "$ cpan == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com"""
-$ WRITE CONFIG "$ cpan2dist == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan2dist.com"""
-$! FIXME: "-" is an operator and illegal in a symbol name -- cpanp-run-perl can't work
-$!$ WRITE CONFIG "$ cpanp-run-perl == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp-run-perl.com"""
-$ WRITE CONFIG "$ cpanp == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp.com"""
-$ IF F$LOCATE("Devel::DProf",dynamic_ext) .LT. F$LENGTH(dynamic_ext)
-$ THEN
-$ WRITE CONFIG "$ dprofpp == """ + perl_setup_perl + " ''vms_prefix':[utils]dprofpp.com"""
-$ ENDIF
$ WRITE CONFIG "$ enc2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com"""
-$ WRITE CONFIG "$ find2perl == """ + perl_setup_perl + " ''vms_prefix':[utils]find2perl.com"""
+$ WRITE CONFIG "$ encguess == """ + perl_setup_perl + " ''vms_prefix':[utils]encguess.com"""
$ WRITE CONFIG "$ h2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com"""
$ WRITE CONFIG "$ h2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com"""
$ WRITE CONFIG "$ instmodsh == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com"""
$ WRITE CONFIG "$ piconv == """ + perl_setup_perl + " ''vms_prefix':[utils]piconv.com"""
$ WRITE CONFIG "$ pl2pm == """ + perl_setup_perl + " ''vms_prefix':[utils]pl2pm.com"""
$ WRITE CONFIG "$ pod2html == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2html.com"""
-$ WRITE CONFIG "$ pod2latex == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2latex.com"""
$ WRITE CONFIG "$ pod2text == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2text.com"""
$ WRITE CONFIG "$!pod2man == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2man.com"""
$ WRITE CONFIG "$ pod2usage == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2usage.com"""
$ WRITE CONFIG "$ prove == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com"""
$ WRITE CONFIG "$ psed == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com"""
$ WRITE CONFIG "$ pstruct == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com"""
-$ WRITE CONFIG "$ s2p == """ + perl_setup_perl + " ''vms_prefix':[utils]s2p.com"""
$ WRITE CONFIG "$ ptar == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com"""
$ WRITE CONFIG "$ ptardiff == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com"""
$ WRITE CONFIG "$ ptargrep == """ + perl_setup_perl + " ''vms_prefix':[utils]ptargrep.com"""
$ WRITE CONFIG "$ shasum == """ + perl_setup_perl + " ''vms_prefix':[utils]shasum.com"""
$ WRITE CONFIG "$ splain == """ + perl_setup_perl + " ''vms_prefix':[utils]splain.com"""
$ WRITE CONFIG "$ xsubpp == """ + perl_setup_perl + " ''vms_prefix':[utils]xsubpp.com"""
+$ WRITE CONFIG "$ zipdetails == """ + perl_setup_perl + " ''vms_prefix':[utils]zipdetails.com"""
$ CLOSE CONFIG
$!
$ echo ""