perl
view release on metacpan or search on metacpan
configure.com view on Meta::CPAN
"Looking for the realpath() function to indicate symbolic link support..."
$ OS
$ WS "#include <stdlib.h>"
$ WS "char *realpath(const char *file_name, char * resolved_name, ...);"
$ WS "int main()"
$ WS "{"
$ WS "char result[255];"
$ WS "realpath(""foo"",result);"
$ WS "exit(0);"
$ WS "}"
$ CS
$ GOSUB link_ok
$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link
$ THEN
$ echo -
"Found realpath() which indicates symbolic link support is present."
$ d_lchown = "define"
$ d_lstat = "define"
$ d_readlink = "define"
$ d_symlink = "define"
$! d_realpath = "define" ! Perl will not put it in the config.h file?
$! Perl apparently does not use a built in realpath() on other platforms,
$! but there is a severe performance penatly on OpenVMS to use the Perl
$! script that implements a realpath(). The d_symlink symbol is used
$! as a replacement for the d_realpath since they are related and both
$! were activated by the CRTL at the same time.
$!
$ ELSE
$ echo4 "Your system does not support symbolic links."
$ echo4 "I am disabling symbolic link support."
$ ENDIF
$ ELSE
$ echo4 "Your system does not support symbolic links."
$ echo4 "I am disabling symbolic link support."
$ ENDIF
$ ELSE
$ 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."
$ ENDIF
$ ENDIF
$!
$!
$! Check for grp.h -- should be 7.3 and later, but test to be sure
$!
$ tmp = "grp.h"
$ GOSUB inhdr
$ i_grp = tmp
$!
$! VMS V7.3-2 powered options
$! We know that it is only available for V7.3-2 and later on 64 bit platforms.
$!
$ d_getgrgid_r = "undef"
$ getgrgid_r_proto = "0"
$ d_getgrnam_r = "undef"
$ getgrnam_r_proto = "0"
$ d_getpgid = "undef"
$ d_getpgrp = "undef"
$! N.B. We already have home-grown thread-safe versions of
$! getpwnam and getpwuid -- no need to use CRTL versions
$ d_getpwnam_r = "undef"
$ getpwnam_r_proto = "0"
$ d_getpwuid_r = "undef"
$ getpwuid_r_proto = "0"
$ 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
$! 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"
$!
$! VMS V7.3-2 powered options
$! We know that it is only available for V7.3-2 and later on 64 bit platforms.
$! Only implementing right now on 8.2 because that is what I am testing
$! These functions may require POSIX UIDs/GIDs to be active, so I am
$! not activating the features at this time, just preparing this file
$! to easily use them in the future.
$!
$ d_seteuid = "undef"
$ d_setpgid = "undef"
$ d_setpgrp = "undef"
$ d_setregid = "undef"
$ d_setreuid = "undef"
$ d_setsid = "undef"
$ ! Disable this section for now.
$!$ 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"
$ d_seteuid = "define"
$ d_setpgid = "define"
$ d_setpgrp = "define"
$ d_setregid = "define"
$ d_setreuid = "define"
$ d_setsid = "define"
$ endif
$!
$! VMS V8 powered options
$! We know that it is only available for 8.2 and later on 64 bit platforms.
$!
$ d_fstatvfs = "undef"
$ d_statvfs = "undef"
$ i_sysstatvfs = "undef"
$ 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"
$ i_sysstatvfs = "define"
$ endif
$!
$! Check rand48 and its ilk
$!
$ echo4 "Using our internal random number implementation..."
configure.com view on Meta::CPAN
$ WC "uvuformat='" + uvuformat + "'"
$ WC "uvxformat='" + uvxformat + "'"
$ WC "uvXUformat='" + uvXUformat + "'"
$ WC "vendorarch='" + "'"
$ WC "vendorarchexp='" + "'"
$ WC "vendorbin='" + "'"
$ WC "vendorbinexp='" + "'"
$ WC "vendorlib_stem='" + "'"
$ WC "vendorlib='" + "'"
$ WC "vendorlibexp='" + "'"
$ WC "vendorprefix='" + "'"
$ WC "vendorprefixexp='" + "'"
$ WC "version='" + version + "'"
$ WC "version_patchlevel_string='" + version_patchlevel_string + "'"
$ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific
$ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific
$ WC "vms_ver='" + vms_ver + "'" ! VMS specific
$!
$! ## 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
$ THEN
$ WC "asctime_r_proto='REENTRANT_PROTO_B_SB'"
$ WC "d_asctime_r='define'"
$ WC "ctime_r_proto='REENTRANT_PROTO_B_SB'"
$ WC "d_ctime_r='define'"
$ ELSE
$ WC "asctime_r_proto='0'"
$ WC "d_asctime_r='undef'"
$ WC "ctime_r_proto='0'"
$ WC "d_ctime_r='undef'"
$ ENDIF
$ WC "d_crypt_r='undef'"
$ WC "d_ctermid_r='undef'"
$ WC "d_drand48_r='undef'"
$ WC "d_endgrent_r='undef'"
$ WC "d_endhostent_r='undef'"
$ WC "d_endnetent_r='undef'"
$ WC "d_endprotoent_r='undef'"
$ WC "d_endpwent_r='undef'"
$ WC "d_endservent_r='undef'"
$ WC "d_freelocale='undef'"
$ WC "d_gai_strerror='define'"
$ WC "d_getgrent_r='undef'"
$ WC "d_getgrgid_r='" + d_getgrgid_r + "'"
$ WC "d_getgrnam_r='" + d_getgrnam_r + "'"
$ WC "d_gethostbyaddr_r='undef'"
$ WC "d_gethostbyname_r='undef'"
$ WC "d_gethostent_r='undef'"
$ WC "d_getlogin_r='define'"
$ WC "d_getnetbyaddr_r='undef'"
$ WC "d_getnetbyname_r='undef'"
$ WC "d_getnetent_r='undef'"
$ WC "d_getprotobyname_r='undef'"
$ WC "d_getprotobynumber_r='undef'"
$ WC "d_getprotoent_r='undef'"
$ WC "d_getpwent_r='undef'"
$ WC "d_getpwnam_r='" + d_getpwnam_r + "'"
$ WC "d_getpwuid_r='" + d_getpwuid_r + "'"
$ WC "d_getservbyname_r='undef'"
$ WC "d_getservbyport_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_newlocale='undef'"
$ WC "d_querylocale='undef'"
$ WC "d_random_r='undef'"
$ WC "d_readdir_r='define'" ! always defined; we roll our own
$ WC "d_readdir64_r='undef'"
$ WC "d_setgrent_r='undef'"
$ WC "d_sethostent_r='undef'"
$ WC "d_setlocale_r='undef'"
$ WC "d_setnetent_r='undef'"
$ WC "d_setprotoent_r='undef'"
$ WC "d_setpwent_r='undef'"
$ WC "d_setservent_r='undef'"
$ WC "d_snprintf='" + d_snprintf + "'"
$ WC "d_srand48_r='undef'"
$ WC "d_srandom_r='undef'"
$ WC "d_strerror_l='undef'"
$ WC "d_strerror_r='undef'"
$ WC "d_tmpnam_r='undef'"
$ WC "d_towlower='define'"
$ WC "d_towupper='define'"
$ WC "d_ttyname_r='" + d_ttyname_r + "'"
$ WC "d_uselocale='undef'"
$ WC "ctermid_r_proto='0'"
$ WC "crypt_r_proto='0'"
$ WC "drand48_r_proto='0'"
$ WC "endgrent_r_proto='0'"
$ WC "endhostent_r_proto='0'"
$ WC "endnetent_r_proto='0'"
$ WC "endprotoent_r_proto='0'"
$ WC "endpwent_r_proto='0'"
$ WC "endservent_r_proto='0'"
$ WC "getgrent_r_proto='0'"
$ WC "getgrgid_r_proto='" + getgrgid_r_proto + "'"
$ WC "getgrnam_r_proto='" + getgrnam_r_proto + "'"
$ WC "gethostbyaddr_r_proto='0'"
$ WC "gethostbyname_r_proto='0'"
$ WC "gethostent_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'"
$ WC "getprotobyname_r_proto='0'"
$ WC "getprotobynumber_r_proto='0'"
$ WC "getprotoent_r_proto='0'"
$ WC "getpwent_r_proto='0'"
$ WC "getpwnam_r_proto='0'"
$ WC "getpwuid_r_proto='0'"
$ WC "getservbyname_r_proto='0'"
$ WC "getservbyport_r_proto='0'"
$ WC "getservent_r_proto='0'"
$ WC "getspnam_r_proto='0'"
$ WC "gmtime_r_proto='0'"
$ WC "localtime_r_proto='0'"
$ WC "random_r_proto='0'"
$ WC "readdir_r_proto='REENTRANT_PROTO_I_TSR'" ! always defined; we roll our own
$ WC "readdir64_r_proto='0'"
$ WC "setgrent_r_proto='0'"
$ WC "sethostent_r_proto='0'"
$ WC "setlocale_r_proto='0'"
$ WC "setnetent_r_proto='0'"
$ WC "setprotoent_r_proto='0'"
$ WC "setpwent_r_proto='0'"
$ WC "setservent_r_proto='0'"
$ WC "srand48_r_proto='0'"
$ WC "srandom_r_proto='0'"
$ WC "strerror_r_proto='0'"
$ WC "tmpnam_r_proto='0'"
$ WC "ttyname_r_proto='" + ttyname_r_proto + "'"
$!
$! ##END WRITE NEW CONSTANTS HERE##
$!
$ CLOSE CONFIG
$!
$! Okay, we've gotten here. Build munchconfig.exe
$ COPY/NOLOG [-.vms]munchconfig.c []
$ COPY/NOLOG [-.vms]'Makefile_SH' []
$ 'Perl_CC' 'ccflags' munchconfig.c
$ 'ld'/EXE='exe_ext' munchconfig'obj_ext'
$ 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
$ CALL Cxx_demangler_cleanup
$ ENDIF
$!
$ IF alldone .EQS. ""
$ THEN
$ cat4 SYS$INPUT:
$ DECK
If you'd like to make any changes to the config.sh file before I begin
to configure things, answer yes to the following question.
$ EOD
$ bool_dflt="n"
$ rp="Do you wish to edit ''basename_config_sh'? [''bool_dflt'] "
$ GOSUB myread
$ IF ans
$ THEN
$ echo4 ""
$ echo4 "Be sure to type LOGOUT after you have edited the file,"
$ echo4 "then this procedure will resume."
$ echo4 ""
$ default = F$ENVIRONMENT("DEFAULT")
$ DIRECTORY 'config_sh'
$ SET DEFAULT [-]
$ SPAWN/WAIT
( run in 0.519 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )