diff options
Diffstat (limited to 'bin/pkgscrpts/makeInternalREADME.pl')
-rwxr-xr-x | bin/pkgscrpts/makeInternalREADME.pl | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/bin/pkgscrpts/makeInternalREADME.pl b/bin/pkgscrpts/makeInternalREADME.pl new file mode 100755 index 0000000..355036f --- /dev/null +++ b/bin/pkgscrpts/makeInternalREADME.pl @@ -0,0 +1,215 @@ +#!/usr/bin/perl +# makeInternalREADME.pl +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF4. The full HDF4 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF4 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF4/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. +# + +use warnings; +use strict; + +my $section2="For information on compilers and settings used to build these HDF5 +libraries, please refer to: + + ./lib/libhdf5.settings + +The contents of this directory are: + + COPYING - Copyright notice + README - This file + RELEASE.txt - Detailed information regarding this release + bin/ - Directory containing HDF5 pre-compiled utilities + include/ - Directory containing HDF5 include files + lib/ - Directory containing HDF5 libraries and settings + share/ - Directory containing example code in C, C++, and + Fortran using HDF5 and HDF5 HL library APIs. The + shell scripts provided with these examples will + compile and run them, and will also test the + h5cc, h5c++, and h5fc compile scripts found + in the installed bin directory. + +These binaries were built with the ZLIB and SZIP (version 2.1, Encoder +ENABLED) external libraries which are included in the lib directory for +convenience. + +We also provide the ZLIB and SZIP source code on our ftp server at: + + ftp://ftp.hdfgroup.org/lib-external/ + +The official ZLIB and SZIP pages are at: + + ZLIB: http://www.zlib.net/ + SZIP: http://hdfgroup.org/doc_resource/SZIP/ + +"; + +my $section3 = "If using the shared libraries, you must add the HDF5 library path +to the LD_LIBRARY_PATH variable. +"; + +my $section4 = "We provide scripts for compiling applications with the HDF5 libraries: + + bin/h5cc - for C + bin/h5fc - for F90 (if Fortran 90 library is included with the binaries) + bin/h5c++ - for C++ (if C++ library is included with the binaries) + +After you have installed the binaries to their final destination, you can use +these scripts (h5cc, h5fc, h5c++) to compile. However, you must first run +./h5redeploy in the bin directory to change site specific paths in the scripts. + +You may also need to change other variables in the scripts, depending +on how things are set up on your system. Here are some of the variables +to check: + + prefix - Path to the HDF5 top level installation directory + CCBASE - Name of the C compiler + CLINKERBASE - Name of the linker + LIBS - Libraries your application will link with + +For further details refer to the INSTALL files in + ftp://ftp.hdfgroup.org/HDF5/current/src/unpacked/release_docs/ +or in the ./release_docs/ directory of the HDF5 source code, which can be found +on the HDF Group ftp server at ftp://ftp.hdfgroup.org/HDF5/current/src/. + +Please send questions, comments, and suggestions to the appropriate +contact address from http://www.hdfgroup.org/about/contact.html + + +"; + +my $indirectory = "."; +$indirectory = shift; +my $linktype = "shared"; +if ($indirectory =~ /static/) { + $linktype = "static"; +} +my $modestring=""; +if ($indirectory =~ /32/) { + $modestring = "in 32 bit mode "; +} + +my $version; + +my $outfile = "$indirectory/README"; +open OUTFILE, ">$outfile" or die "$!Couldn't open $outfile - check permissions for $indirectory\n"; +my $hostname; +my $cmd = "grep \"HDF5 Version\" $indirectory/lib/libhdf5.settings"; +$_ = `$cmd`; +#print OUTFILE $_, "\n"; +s/HDF5 Version://; +s/^\s+//; +chomp; +$version = $_; +#print OUTFILE $_, "\n"; + +my $versionstring= "This directory contains the $linktype binary distribution of HDF5-".$version; + +$cmd = "grep \"Uname information:\" $indirectory/lib/libhdf5.settings"; +$_ = `$cmd`; +s/Uname information://; +s/^\s+//; +#print OUTFILE $_; +chomp; +#s/(^\w+)(\s)(\S+)/$1/; +#s/(^.*)(-)(.*)(200[7-8])(.*)(\s)(\S+)/$1 $5/; +#my $platformstring = "\nthat was compiled on:" . $_ . " "; +my $platformstring = ""; +my $hostnamestring = $_; +my @hostnamestring = split / /, $hostnamestring; +#print OUTFILE "Size of hostnamestring is ", scalar @hostnamestring, "\n"; +#print OUTFILE $hostnamestring[0] . "\t" . $hostnamestring[2]."\t".$hostnamestring[19]."\n"; +$hostname = $hostnamestring[1]; +#my $size = scalar @hostnamestring; +if ($hostname =~ /loyalty/) { + $platformstring = "\nthat was compiled " . $modestring . "on: " . $hostnamestring[0]." " . $hostnamestring[2]." " . $hostnamestring[-1] . " "; +} +elsif ($hostname =~ /freedom/) { + $platformstring = "\nthat was compiled " . $modestring . "on: " . $hostnamestring[0]." " . $hostnamestring[2]." " . $hostnamestring[-1] . " "; +} elsif ($hostname =~ /emu/) { + $platformstring = "\nthat was compiled " . $modestring . "on: " . $hostnamestring[0]." " . $hostnamestring[2] . " " . $hostnamestring[-2] . " "; +} elsif ($hostname =~ /fred/) { + $platformstring = "\nthat was compiled " . $modestring . "on: " . $hostnamestring[0]." " . $hostnamestring[2] . " " . $hostnamestring[-1] . " "; +} else { + $_ = $hostnamestring[2]; + my $pos = index $_, '-'; + my $os = substr $_, 0, $pos; + $platformstring = "\nthat was compiled " . $modestring . "on: " . $hostnamestring[0] . " " . $os . " " . $hostnamestring[-2] . " "; +} + + +my $mappingstring = ""; +#no mappingstring for 1.6. Put it back for 1.8. +#$cmd = "grep \"Default API Mapping:\" $indirectory/lib/libhdf5.settings"; +#$_ = `$cmd`; +#s/Default API Mapping://; +#s/^\s+//; +#chomp; +#if (/v\d+/) { +# s/v//; +# s/(\d)(\d)/$1\.$2/g; +# $mappingstring = "using the default\nAPI mapping for VERSION ".$_."."; +# +#} +print OUTFILE $versionstring; +print OUTFILE $platformstring."\n\n"; +#print OUTFILE $mappingstring; + +#if ($hostname eq "loyalty.hdfgroup.uiuc.edu" || $hostname eq "freedom.hdfgroup.uiuc.edu") { +# print OUTFILE " It includes the C APIs,\nbuilt using the following "; +# print OUTFILE "compilers:\n\n"; +#} +#else { +if ($linktype eq "shared" && !($hostname =~ /32/)) { + print OUTFILE "\n\nIt includes the C, C++, F90 and Java APIs, built using the following\n"; +} else { + print OUTFILE "\n\nIt includes the C, C++, and F90 APIs, built using the following\n"; +} +print OUTFILE "compilers:\n\n"; +#} + +# Only the gcc compiler version is in libhdf5.settings, so for now I looked +# up the versions and hardcoded them here. We will put them in libhdf5.settings +# for the next release. +if ($indirectory =~ /gnu484/) { + print OUTFILE "\tgcc, g++, and gfortran 4.8.4\n\n"; +} elsif ($hostname =~ /jam/ || $hostname =~ /koala/) { + print OUTFILE "\tgcc, g++, and gfortran 4.1.2\n\n"; +} elsif ($hostname =~ /platypus/) { + print OUTFILE "\tgcc, g++, and gfortran 4.4.7\n\n"; + if ($linktype eq "shared" && !($hostname =~ /32/)) { + print OUTFILE "\tjava 1.8.0_51\n\n"; + } +} elsif ($hostname =~ /moohan/) { + print OUTFILE "\tgcc, g++, and gfortran 4.8.5\n\n"; + if ($linktype eq "shared" && !($hostname =~ /32/)) { + print OUTFILE "\tjava 1.8.0_51\n\n"; + } +} elsif ($hostname =~ /emu/) { + print OUTFILE "\tSun C and C++ 5.12, Sun Fortran 95 8.6\n\n"; +} elsif ($hostname =~ /loyalty/ || $hostname =~ /freedom/) { + print OUTFILE "\tgcc, g++, and gfortran 4.6.1\n\n"; +} elsif ($hostname =~ /duck/) { + print OUTFILE "\tApple clang/clang++ 3.0 from Xcode 4.6.1 and gfortran 4.8.2\n\n"; +} elsif ($hostname =~ /kite/) { + print OUTFILE "\tApple clang/clang++ 5.1 from Xcode 5.0.2 and gfortran 4.8.2\n\n"; +} elsif ($hostname =~ /quail/) { + print OUTFILE "\tgcc, g++ 5.1 from Xcode 5.1 and gfortran 4.8.2\n\n"; +} elsif ($hostname =~ /osx1010test/) { + print OUTFILE "\tgcc, g++ 5.1 from Xcode 5.1 and gfortran 4.8.2\n\n"; +} + +print OUTFILE $section2; + +print OUTFILE $section3; + +print OUTFILE $section4; + |