# This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. package Config; use strict; use warnings; use vars '%Config'; sub bincompat_options { return split ' ', (Internals::V())[0]; } sub non_bincompat_options { return split ' ', (Internals::V())[1]; } sub compile_date { return (Internals::V())[2] } sub local_patches { my (undef, undef, undef, @patches) = Internals::V(); return @patches; } sub _V { my ($bincompat, $non_bincompat, $date, @patches) = Internals::V(); my $opts = join ' ', sort split ' ', "$bincompat $non_bincompat"; # wrap at 76 columns. $opts =~ s/(?=.{53})(.{1,53}) /$1\n /mg; print Config::myconfig(); if ($^O eq 'VMS') { print "\nCharacteristics of this PERLSHR image: \n"; } else { print "\nCharacteristics of this binary (from libperl): \n"; } print " Compile-time options: $opts\n"; if (@patches) { print " Locally applied patches:\n"; print "\t$_\n" foreach @patches; } print " Built under $^O\n"; print " $date\n" if defined $date; my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV; push @env, "CYGWIN=\"$ENV{CYGWIN}\"" if $^O eq 'cygwin' and $ENV{CYGWIN}; if (@env) { print " \%ENV:\n"; print " $_\n" foreach @env; } print " \@INC:\n"; print " $_\n" foreach @INC; } sub header_files { return qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h embed.h embedvar.h form.h gv.h handy.h hv.h intrpvar.h iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h pad.h parser.h patchlevel.h perl.h perlio.h perliol.h perlsdio.h perlsfio.h perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h sv.h thread.h time64.h unixish.h utf8.h util.h); } ### Configured by: tex-live@tug.org ### Target system: WIN32 our $summary = <<'!END!'; Summary of my $package (revision $revision $version_patchlevel_string) configuration: $git_commit_id_title $git_commit_id$git_ancestor_line Platform: osname=$osname, osvers=$osvers, archname=$archname uname='$myuname' config_args='$config_args' hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction useithreads=$useithreads, usemultiplicity=$usemultiplicity useperlio=$useperlio, d_sfio=$d_sfio, uselargefiles=$uselargefiles, usesocks=$usesocks use64bitint=$use64bitint, use64bitall=$use64bitall, uselongdouble=$uselongdouble usemymalloc=$usemymalloc, bincompat5005=undef Compiler: cc='$cc', ccflags ='$ccflags', optimize='$optimize', cppflags='$cppflags' ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers' intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize alignbytes=$alignbytes, prototype=$prototype Linker and Libraries: ld='$ld', ldflags ='$ldflags' libpth=$libpth libs=$libs perllibs=$perllibs libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl gnulibc_version='$gnulibc_version' Dynamic Linking: dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags' cccdlflags='$cccdlflags', lddlflags='$lddlflags' !END! my $summary_expanded; sub myconfig { return $summary_expanded if $summary_expanded; ($summary_expanded = $summary) =~ s{\$(\w+)} { my $c; if ($1 eq 'git_ancestor_line') { if ($Config::Config{git_ancestor}) { $c= "\n Ancestor: $Config::Config{git_ancestor}"; } else { $c= ""; } } else { $c = $Config::Config{$1}; } defined($c) ? $c : 'undef' }ge; $summary_expanded; } my $rootdir = __FILE__; $rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!; $rootdir =~ s!/!\\!g; my $mingdir = "x:\\mingw"; local *_ = \my $a; $_ = <<"!END!"; Author='' CONFIG='true' Date='\$Date' Header='' Id='\$Id' Locker='' Log='\$Log' PATCHLEVEL='14' PERL_API_REVISION='5' PERL_API_SUBVERSION='0' PERL_API_VERSION='14' PERL_CONFIG_SH='true' PERL_PATCHLEVEL='' PERL_REVISION='5' PERL_SUBVERSION='2' PERL_VERSION='14' RCSfile='\$RCSfile' Revision='\$Revision' SUBVERSION='2' Source='' State='' _a='.a' _exe='.exe' _o='.o' afs='false' afsroot='/afs' alignbytes='8' ansi2knr='' aphostname='' api_revision='5' api_subversion='0' api_version='14' api_versionstring='5.14.0' ar='ar' archlib='$rootdir\\lib' archlibexp='$rootdir\\lib' archname64='' archname='MSWin32-x86-multi-thread' archobjs='' asctime_r_proto='0' awk='awk' baserev='5' bash='' bin='$rootdir\\bin' binexp='$rootdir\\bin' bison='' byacc='byacc' byteorder='1234' c='' castflags='0' cat='type' cc='gcc' cccdlflags=' ' ccdlflags=' ' ccflags=' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields' ccflags_uselargefiles='' ccname='gcc' ccsymbols='' ccversion='' cf_by='siepo' cf_email='tex-live\@tug.org' cf_time='Fri May 18 10:52:25 2012' charbits='8' chgrp='' chmod='' chown='' clocktype='clock_t' comm='' compress='' contains='grep' cp='copy' cpio='' cpp='gcc -E' cpp_stuff='42' cppccsymbols='' cppflags='-DWIN32' cpplast='' cppminus='-' cpprun='gcc -E' cppstdin='gcc -E' cppsymbols='' crypt_r_proto='0' cryptlib='' csh='undef' ctermid_r_proto='0' ctime_r_proto='0' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='undef' d_PRIFUldbl='undef' d_PRIGUldbl='undef' d_PRIXU64='undef' d_PRId64='undef' d_PRIeldbl='undef' d_PRIfldbl='undef' d_PRIgldbl='undef' d_PRIi64='undef' d_PRIo64='undef' d_PRIu64='undef' d_PRIx64='undef' d_SCNfldbl='undef' d__fwalk='undef' d_access='define' d_accessx='undef' d_aintl='undef' d_alarm='define' d_archlib='define' d_asctime64='undef' d_asctime_r='undef' d_atolf='undef' d_atoll='undef' d_attribute_deprecated='undef' d_attribute_format='undef' d_attribute_malloc='undef' d_attribute_nonnull='undef' d_attribute_noreturn='undef' d_attribute_pure='undef' d_attribute_unused='undef' d_attribute_warn_unused_result='undef' d_bcmp='undef' d_bcopy='undef' d_bsd='define' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' d_builtin_choose_expr='undef' d_builtin_expect='undef' d_bzero='undef' d_c99_variadic_macros='undef' d_casti32='define' d_castneg='define' d_charvspr='undef' d_chown='undef' d_chroot='undef' d_chsize='define' d_class='undef' d_clearenv='undef' d_closedir='define' d_cmsghdr_s='undef' d_const='define' d_copysignl='undef' d_cplusplus='undef' d_crypt='define' d_crypt_r='undef' d_csh='undef' d_ctermid='undef' d_ctermid_r='undef' d_ctime64='undef' d_ctime_r='undef' d_cuserid='undef' d_dbl_dig='define' d_dbminitproto='undef' d_difftime64='undef' d_difftime='define' d_dir_dd_fd='undef' d_dirfd='undef' d_dirnamlen='define' d_dlerror='define' d_dlopen='define' d_dlsymun='undef' d_dosuid='undef' d_drand48_r='undef' d_drand48proto='undef' d_dup2='define' d_eaccess='undef' d_endgrent='undef' d_endgrent_r='undef' d_endhent='undef' d_endhostent_r='undef' d_endnent='undef' d_endnetent_r='undef' d_endpent='undef' d_endprotoent_r='undef' d_endpwent='undef' d_endpwent_r='undef' d_endsent='undef' d_endservent_r='undef' d_eofnblk='define' d_eunice='undef' d_faststdio='define' d_fchdir='undef' d_fchmod='undef' d_fchown='undef' d_fcntl='undef' d_fcntl_can_lock='undef' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_finite='undef' d_finitel='undef' d_flexfnam='define' d_flock='define' d_flockproto='define' d_fork='undef' d_fp_class='undef' d_fpathconf='undef' d_fpclass='undef' d_fpclassify='undef' d_fpclassl='undef' d_fpos64_t='undef' d_frexpl='undef' d_fs_data_s='undef' d_fseeko='undef' d_fsetpos='define' d_fstatfs='undef' d_fstatvfs='undef' d_fsync='undef' d_ftello='undef' d_ftime='define' d_futimes='undef' d_gdbm_ndbm_h_uses_prototypes='undef' d_gdbmndbm_h_uses_prototypes='undef' d_getaddrinfo='undef' d_getcwd='define' d_getespwnam='undef' d_getfsstat='undef' d_getgrent='undef' d_getgrent_r='undef' d_getgrgid_r='undef' d_getgrnam_r='undef' d_getgrps='undef' d_gethbyaddr='define' d_gethbyname='define' d_gethent='undef' d_gethname='define' d_gethostbyaddr_r='undef' d_gethostbyname_r='undef' d_gethostent_r='undef' d_gethostprotos='define' d_getitimer='undef' d_getlogin='define' d_getlogin_r='undef' d_getmnt='undef' d_getmntent='undef' d_getnameinfo='undef' d_getnbyaddr='undef' d_getnbyname='undef' d_getnent='undef' d_getnetbyaddr_r='undef' d_getnetbyname_r='undef' d_getnetent_r='undef' d_getnetprotos='undef' d_getpagsz='undef' d_getpbyname='define' d_getpbynumber='define' d_getpent='undef' d_getpgid='undef' d_getpgrp2='undef' d_getpgrp='undef' d_getppid='undef' d_getprior='undef' d_getprotobyname_r='undef' d_getprotobynumber_r='undef' d_getprotoent_r='undef' d_getprotoprotos='define' d_getprpwnam='undef' d_getpwent='undef' d_getpwent_r='undef' d_getpwnam_r='undef' d_getpwuid_r='undef' d_getsbyname='define' d_getsbyport='define' d_getsent='undef' d_getservbyname_r='undef' d_getservbyport_r='undef' d_getservent_r='undef' d_getservprotos='define' d_getspnam='undef' d_getspnam_r='undef' d_gettimeod='define' d_gmtime64='undef' d_gmtime_r='undef' d_gnulibc='undef' d_grpasswd='undef' d_hasmntopt='undef' d_htonl='define' d_ilogbl='undef' d_inc_version_list='undef' d_index='undef' d_inetaton='undef' d_inetntop='undef' d_inetpton='undef' d_int64_t='undef' d_isascii='define' d_isfinite='undef' d_isinf='undef' d_isnan='define' d_isnanl='undef' d_killpg='define' d_lchown='undef' d_ldbl_dig='define' d_libm_lib_version='undef' d_link='define' d_localtime64='undef' d_localtime_r='undef' d_localtime_r_needs_tzset='undef' d_locconv='define' d_lockf='undef' d_longdbl='define' d_longlong='undef' d_lseekproto='define' d_lstat='undef' d_madvise='undef' d_malloc_good_size='undef' d_malloc_size='undef' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' d_memchr='define' d_memcmp='define' d_memcpy='define' d_memmove='define' d_memset='define' d_mkdir='define' d_mkdtemp='undef' d_mkfifo='undef' d_mkstemp='undef' d_mkstemps='undef' d_mktime64='undef' d_mktime='define' d_mmap='undef' d_modfl='undef' d_modfl_pow32_bug='undef' d_modflproto='undef' d_mprotect='undef' d_msg='undef' d_msg_ctrunc='undef' d_msg_dontroute='undef' d_msg_oob='undef' d_msg_peek='undef' d_msg_proxy='undef' d_msgctl='undef' d_msgget='undef' d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' d_msync='undef' d_munmap='undef' d_mymalloc='undef' d_ndbm='undef' d_ndbm_h_uses_prototypes='undef' d_nice='undef' d_nl_langinfo='undef' d_nv_preserves_uv='define' d_nv_zero_is_allbits_zero='define' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='undef' d_pathconf='undef' d_pause='define' d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='undef' d_portable='define' d_prctl='undef' d_prctl_set_name='undef' d_printf_format_null='undef' d_procselfexe='undef' d_pseudofork='define' d_pthread_atfork='undef' d_pthread_attr_setscope='undef' d_pthread_yield='undef' d_pwage='undef' d_pwchange='undef' d_pwclass='undef' d_pwcomment='undef' d_pwexpire='undef' d_pwgecos='undef' d_pwpasswd='undef' d_pwquota='undef' d_qgcvt='undef' d_quad='define' d_random_r='undef' d_readdir64_r='undef' d_readdir='define' d_readdir_r='undef' d_readlink='undef' d_readv='undef' d_recvmsg='undef' d_rename='define' d_rewinddir='define' d_rmdir='define' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' d_sbrkproto='undef' d_scalbnl='undef' d_sched_yield='undef' d_scm_rights='undef' d_seekdir='define' d_select='define' d_sem='undef' d_semctl='undef' d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='undef' d_semop='undef' d_sendmsg='undef' d_setegid='undef' d_seteuid='undef' d_setgrent='undef' d_setgrent_r='undef' d_setgrps='undef' d_sethent='undef' d_sethostent_r='undef' d_setitimer='undef' d_setlinebuf='undef' d_setlocale='define' d_setlocale_r='undef' d_setnent='undef' d_setnetent_r='undef' d_setpent='undef' d_setpgid='undef' d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' d_setproctitle='undef' d_setprotoent_r='undef' d_setpwent='undef' d_setpwent_r='undef' d_setregid='undef' d_setresgid='undef' d_setresuid='undef' d_setreuid='undef' d_setrgid='undef' d_setruid='undef' d_setsent='undef' d_setservent_r='undef' d_setsid='undef' d_setvbuf='define' d_sfio='undef' d_shm='undef' d_shmat='undef' d_shmatprototype='undef' d_shmctl='undef' d_shmdt='undef' d_shmget='undef' d_sigaction='undef' d_signbit='undef' d_sigprocmask='undef' d_sigsetjmp='undef' d_sin6_scope_id='define' d_sitearch='define' d_snprintf='define' d_sockaddr_sa_len='undef' d_sockatmark='undef' d_sockatmarkproto='undef' d_socket='define' d_socklen_t='undef' d_sockpair='undef' d_socks5_init='undef' d_sprintf_returns_strlen='define' d_sqrtl='undef' d_srand48_r='undef' d_srandom_r='undef' d_sresgproto='undef' d_sresuproto='undef' d_statblks='undef' d_statfs_f_flags='undef' d_statfs_s='undef' d_static_inline='define' d_statvfs='undef' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' d_stdio_ptr_lval_nochange_cnt='define' d_stdio_ptr_lval_sets_cnt='undef' d_stdio_stream_array='undef' d_stdiobase='define' d_stdstdio='define' d_strchr='define' d_strcoll='define' d_strctcpy='define' d_strerrm='strerror(e)' d_strerror='define' d_strerror_r='undef' d_strftime='define' d_strlcat='undef' d_strlcpy='undef' d_strtod='define' d_strtol='define' d_strtold='undef' d_strtoll='undef' d_strtoq='undef' d_strtoul='define' d_strtoull='undef' d_strtouq='undef' d_strxfrm='define' d_suidsafe='undef' d_symlink='undef' d_syscall='undef' d_syscallproto='undef' d_sysconf='undef' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='undef' d_tcsetpgrp='undef' d_telldir='define' d_telldirproto='define' d_time='define' d_timegm='undef' d_times='define' d_tm_tm_gmtoff='undef' d_tm_tm_zone='undef' d_tmpnam_r='undef' d_truncate='undef' d_ttyname_r='undef' d_tzname='define' d_u32align='define' d_ualarm='undef' d_umask='define' d_uname='define' d_union_semun='define' d_unordered='undef' d_unsetenv='undef' d_usleep='undef' d_usleepproto='undef' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' d_vendorlib='undef' d_vendorscript='undef' d_vfork='undef' d_void_closedir='undef' d_voidsig='define' d_voidtty='' d_volatile='define' d_vprintf='define' d_vsnprintf='define' d_wait4='undef' d_waitpid='define' d_wcstombs='define' d_wctomb='define' d_writev='undef' d_xenix='undef' date='date' db_hashtype='int' db_prefixtype='int' db_version_major='0' db_version_minor='0' db_version_patch='0' defvoidused='15' direntrytype='struct direct' dlext='dll' dlsrc='dl_win32.xs' doublesize='8' drand01='(rand()/(double)((unsigned)1<{$key} = $value eq 'undef' ? undef : $value; # cache it } my $prevpos = 0; sub FIRSTKEY { $prevpos = 0; substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 ); } sub NEXTKEY { # Find out how the current key's quoted so we can skip to its end. my $quote = substr($Config_SH_expanded, index($Config_SH_expanded, "=", $prevpos)+1, 1); my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2; my $len = index($Config_SH_expanded, "=", $pos) - $pos; $prevpos = $pos; $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef; } sub EXISTS { return 1 if exists($_[0]->{$_[1]}); return(index($Config_SH_expanded, "\n$_[1]='") != -1 or index($Config_SH_expanded, "\n$_[1]=\"") != -1 ); } sub STORE { die "\%Config::Config is read-only\n" } *DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space sub config_sh { substr $Config_SH_expanded, 1, $config_sh_len; } sub config_re { my $re = shift; return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/, $Config_SH_expanded; } sub config_vars { # implements -V:cfgvar option (see perlrun -V:) foreach (@_) { # find optional leading, trailing colons; and query-spec my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft, # map colon-flags to print decorations my $prfx = $notag ? '': "$qry="; # tag-prefix for print my $lnend = $lncont ? ' ' : ";\n"; # line ending for print # all config-vars are by definition \w only, any \W means regex if ($qry =~ /\W/) { my @matches = config_re($qry); print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag; print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag; } else { my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry} : 'UNKNOWN'; $v = 'undef' unless defined $v; print "${prfx}'${v}'$lnend"; } } } # Called by the real AUTOLOAD sub launcher { undef &AUTOLOAD; goto \&$Config::AUTOLOAD; } 1;