diff options
Diffstat (limited to 'bin/makeInternal1814README.pl')
-rwxr-xr-x | bin/makeInternal1814README.pl | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/bin/makeInternal1814README.pl b/bin/makeInternal1814README.pl new file mode 100755 index 0000000..624f9cb --- /dev/null +++ b/bin/makeInternal1814README.pl @@ -0,0 +1,190 @@ +#!/usr/bin/perl +# makeInternalREADME.pl +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 HDF5 C, C++ and Fortran example + program code and scripts to test compile scripts + h5cc, h5c++ and h5fc + +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 is included with the binaries) + bin/h5c++ - for C++ (if C++ 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: + + 1) Run ./h5redeploy in the bin directory to change site specific paths in the scripts. + + 2) Edit each script and update the paths for the external libraries + in LDFLAGS and CPPFLAGS. + +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 alternative C compiler + CLINKERBASE - Name of the alternative linker + LIBS - Libraries your application will link with + +For further details refer to the INSTALL files in the ./release_docs/ +directory of the HDF5 source code: + + ftp://ftp.hdfgroup.org/HDF5/current/src/unpacked/release_docs/ + +Source code can be found on the THG ftp server in: + + ftp://ftp.hdfgroup.org/HDF5/current/src/ + +Please send questions, comments, and suggestions to: + + http://hdfgroup.org/about/contact.html + + +"; + +my $indirectory = "."; +$indirectory = shift; +my $linktype = "shared"; +if ($indirectory =~ /static/) { + $linktype = "static"; +} + +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 on: " . $hostnamestring[0]." " . $hostnamestring[2]." " . $hostnamestring[-1] . " "; +} +elsif ($hostname =~ /freedom/) { + $platformstring = "\nthat was compiled on: " . $hostnamestring[0]." " . $hostnamestring[2]." " . $hostnamestring[-1] . " "; +} elsif ($hostname =~ /emu/) { + $platformstring = "\nthat was compiled on: " . $hostnamestring[0]." " . $hostnamestring[2] . " " . $hostnamestring[-2] . " "; +} elsif ($hostname =~ /fred/) { + $platformstring = "\nthat was compiled on: " . $hostnamestring[0]." " . $hostnamestring[2] . " " . $hostnamestring[-1] . " "; +} else { + $_ = $hostnamestring[2]; + my $pos = index $_, '-'; + my $os = substr $_, 0, $pos; + $platformstring = "\nthat was compiled 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 { +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 =~ /gnu482/) { + print OUTFILE "\tgcc, g++, and gfortran 4.8.2\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"; +} 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"; +} + +print OUTFILE $section2; + +print OUTFILE $section3; + +print OUTFILE $section4; + |