$!: 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
$!
$!
$ 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
$ 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
+$ libs=" "
$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
$ THEN
$ libc="(DECCRTL)"
$!
$! 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];"
$!
$! 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
$!
$! 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 "int main() {"
$ WS "struct sockaddr sa;"
$ WS "return (sa.sa_len);"
$! 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 "int main() {"
$ WS "struct sockaddr_in6 sin6;"
$!
$! 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;"
$ 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"
+$ sig_count="17
$ uidtype="unsigned int"
$ d_pathconf="undef"
$ d_fpathconf="undef"
$ 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_nl_langinfo="define"
$ d_setlocale="define"
$ vms_cc_type="decc"
$ ELSE
$ 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"
$ 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
$ 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
$ WC "d_inetpton='undef'"
$ WC "d_int64_t='" + d_int64_t + "'"
$ WC "d_isascii='define'"
+$ WC "d_isblank='undef'"
$ WC "d_isfinite='undef'"
$ WC "d_isinf='undef'"
$ WC "d_isnan='" + d_isnan + "'"
$ 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_stdlib='define'"
$ WC "i_string='define'"
$ 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 + "'"
$ 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"
$ 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
$ 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 ""