mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-09 07:32:32 +08:00
7f22651492
Description: Previously, we needed to force symbol definition "gethostname@8" for compatibility with old versions of Visual Studio. It appears that Visual Studio no longer requires this, so we remove it. This makes the build process on 64-bit much smoother. Also minor updates to main documentation, command-line documentation, and removed codewarrior and INTEL docs. Tested: VS.NET VS2005 chkmanifest
1987 lines
74 KiB
Plaintext
1987 lines
74 KiB
Plaintext
|
|
***********************************************************************
|
|
* HDF5 Build and Install Instructions for Windows XP *
|
|
* (Full Version) *
|
|
***********************************************************************
|
|
|
|
The following instructions assume that the HDF5 source code package from
|
|
HDF website (http://hdfgroup.org) is used.
|
|
|
|
Warnings:
|
|
Please read CAREFULLY about the following preconditions and notes first.
|
|
|
|
Contents:
|
|
|
|
Section : Preconditions and Notes
|
|
Section I : What do we build and install
|
|
Section II : How to build and test HDF5 libraries and tools
|
|
Section III : How to build examples (optional)
|
|
Section IV : How to build an application using the HDF5 library or DLL
|
|
Section V : How to disable Gzip(Zlib)/Szip compression
|
|
Section VI : How to build HDF5 with Fortran Support
|
|
Section VII : How to build Multi-threaded version of HDF5 library
|
|
Section VIII : How to build and test HDF5 snapshot release
|
|
Section IX : How to build HDF5 with Thread-Safe Feature
|
|
Section X : How to build HDF5 in Visual Studio 2005
|
|
Section XI : How to build HDF5 for 64-bit Windows
|
|
Section XII : How to generate H5tinit.c
|
|
Section XIII : Misc.
|
|
|
|
|
|
========================================================================
|
|
Preconditions and Notes
|
|
========================================================================
|
|
|
|
Preconditions:
|
|
|
|
1. Installed Microsoft Visual Studio .Net or Visual Studio 2005.
|
|
|
|
2. (Optional) Installed Intel Compiler 9.1 if you want to build HDF5 Fortran
|
|
libraries.
|
|
|
|
3. Install Winzip or 7-zip for extracting source tarball.
|
|
|
|
Note: 1. 7zip is an open-source alternative to WinZip. Some of the
|
|
advanced functionality is disabled in WinZip unless you buy the
|
|
software. With 7zip, most of this functionality is included for
|
|
free.
|
|
|
|
2. By default, WinZip will convert the Unix end of line format when
|
|
extracting .tar file. This conversion will cause "false" failure
|
|
in some HDF5 tools testings.
|
|
|
|
Please uncheck the "TAR file smart CR/LF conversion" option in your
|
|
WinZip to prevent the conversion when extracting .tar file. To
|
|
uncheck the "TAR file smart CR/LF conversion" option:
|
|
|
|
Invoke WinZip, go to "Options", select "Configuration..."
|
|
|
|
Click the "Miscellaneous" tab and uncheck "TAR file smart CR/LF
|
|
conversion" option, then click OK.
|
|
|
|
4. Set up a directory structure to unpack the library. For example:
|
|
|
|
c:\ (any drive)
|
|
MyHDFstuff\ (any folder name)
|
|
|
|
5. Download the hdf5-1.8.x source code package and use 7zip or WinZip to
|
|
extract the HDF5 package into c:\MyHDFstuff. This creates a directory
|
|
called 'hdf5-1.8.x' under MyHDFstuff which contains several files and
|
|
directories. Rename "hdf5-1.8.x" to "hdf5".
|
|
|
|
6. HDF5 provide options to do in-memory compression within HDF5 library.
|
|
Currently, two external compression libraries Zlib and Szip can be used
|
|
with HDF5.
|
|
|
|
6.1 HDF5 uses Zlib version 1.2.3 for compression and Zlib is NOT
|
|
distributed with HDF5 library in 1.8.x release. To use Zlib library,
|
|
you have to install your own Zlib DLL library or go to
|
|
ftp://ftp.hdfgroup.org/lib-external/zlib/1.2/bin/zlib123-windows.zip
|
|
to download the Zlib library.
|
|
|
|
|
|
6.2 HDF5 uses Szip version 2.0 for compression and Szip compression
|
|
software is provided with HDF5 products in 1.8.0 release. To use
|
|
Szip 2.0 library, you can download Szip source codes and binaries from
|
|
ftp://ftp.hdfgroup.org/lib-external/szip/2.0/bin/windows
|
|
|
|
Please note that Szip is not a totally open-source free software.
|
|
For licensing issue of Szip, please check "Licensing terms" at
|
|
http://hdfgroup.org/doc_resource/SZIP/index.html.
|
|
|
|
Szip compression feature inside HDF5 is optional.
|
|
|
|
7. Define the following environment variables:
|
|
|
|
HDF5_EXT_ZLIB
|
|
HDF5_EXT_SZIP
|
|
|
|
In this section, Zlib and Szip compression packages are assumed to be
|
|
used. Please read Section V as well as this section if you do not want
|
|
to use compression feature inside HDF5.
|
|
|
|
To define these environment variables:
|
|
|
|
Click "Start", click "Control Panel", and then double-click "System".
|
|
On the "Advanced" tab, click "Environment Variables".
|
|
|
|
If you are logged on as administrator to the local computer AND want to
|
|
let all other users use these two environment variables, click "New"
|
|
under "System Variables" box; otherwise, click "New" under "User
|
|
Variables" box.
|
|
|
|
In the New Variable window, set "Variable name" as HDF5_EXT_ZLIB and
|
|
"Variable value" as zdll.lib, then click OK.
|
|
|
|
Similarly, you can set:
|
|
|
|
HDF5_EXT_SZIP environment variable as szlibdll.lib
|
|
|
|
Notes:
|
|
|
|
a. You will have to close and reopen running programs for the new
|
|
environment variable settings to take effect.
|
|
|
|
b. c:\zlib123\zlib1.dll and c:\szip\dll\szlibdll.dll should be copied
|
|
into the location that the application can find, one suggestion is
|
|
to use the c:\WINDOWS\system.
|
|
|
|
6. Set up path for external libraries and headers
|
|
|
|
Skip this part if you don't want to use ANY compression features provided
|
|
by HDF5. Please do read Section V.
|
|
|
|
You have to read this part even if you want to only use Zlib or Szip.
|
|
You also need to read Section V.
|
|
|
|
Invoke Microsoft Visual Studio and go to "Tools" and select "Options",
|
|
find "Projects", and then "VC++ Directories".
|
|
|
|
6.1 Find the box "Show directories for", choose "Include files", if you
|
|
can not find your Zlib and Szip header path (for example,
|
|
c:\zlib123\include, c:\szip\include) from the directory list, add the
|
|
header path (c:\zlib123\include, c:\szip\include) to the included
|
|
directories.
|
|
|
|
6.2 Find the box "Show directories for", choose "Library files". If you
|
|
cannot find your Zlib and Szip library path (for example,
|
|
c:\zlib123\lib, c:\szip\dll) from the directory list, add the library
|
|
path (c:\zlib123\lib, c:\szip\dll) to the library directories.
|
|
|
|
Notes:
|
|
|
|
1. In release 1.8.0, all.zip is deprecated. Users should go to hdf5/windows
|
|
directory, run copy_hdf.bat first and then open all.dsw under
|
|
hdf5/windows/proj/all to start building process.
|
|
|
|
2. Users who prefer to use Visual Studio 6.0 can follow instructions in
|
|
INSTALL_Windows_Short_MSVS6.0.txt. Note, however, that Visual Studio
|
|
6.0 will not be supported in future versions of HDF5.
|
|
|
|
3. For users who want to quickly build HDF5 library or do not want to know
|
|
HDF5 building and installation details, please read the
|
|
INSTALL_Windows_Short_***.txt relating to your compiler.
|
|
|
|
4. For users who would like to build and test HDF5 package from the command
|
|
line, please read INSATLL_Windows_From_Command_Line.txt.
|
|
|
|
5. HDF4-related tools are not built and released with HDF5 library packages
|
|
any more. To obtain HDF4 related tools, please check
|
|
http://hdfgroup.org/h4toh5/ and ftp://ftp.hdfgroup.org/HDF5/h4toh5
|
|
|
|
6. For Fortran users, Intel fortran Compiler 9.1 is currently supported--
|
|
please see Section VI. Intel Compiler verion 7.x and 8.x are no longer
|
|
supported.
|
|
|
|
7. For users who would like to build Muti-threaded version of HDF5 library,
|
|
please read Section VII.
|
|
|
|
8. For users who would like to build, test and use HDF5 snapshot
|
|
release, please read Section VIII.
|
|
|
|
|
|
========================================================================
|
|
Section I: What do we build and install?
|
|
========================================================================
|
|
|
|
1. Build and Install
|
|
|
|
HDF5 static library:
|
|
debug and release version
|
|
|
|
HDF5 Dynamic Link Library(DLL):
|
|
debug and release version as well as export libraries for DLL
|
|
|
|
HDF5 High-Level Library (Optional):
|
|
HDF5 C++ Library
|
|
HDF5 HL-Fortran Library
|
|
|
|
HDF5 tools:
|
|
HDF5 tools
|
|
|
|
2. Build Only (Not included in the binary distribution)
|
|
|
|
HDF5 tool library:
|
|
debug and release version
|
|
|
|
HDF5 tool export library for DLL:
|
|
debug and release version
|
|
|
|
HDF5 library testing programs:
|
|
HDF5 library comprehensive tests
|
|
|
|
HDF5 related tools testing programs:
|
|
HDF5 tools comprehensive tests
|
|
|
|
3. Examples (Not included in the binary distribution)
|
|
|
|
HDF5 examples:
|
|
Simple HDF5 C/C++/Fortran and High level C/Fortran examples
|
|
|
|
========================================================================
|
|
Section II: How to build and test HDF5 libraries and tools
|
|
========================================================================
|
|
|
|
Note:
|
|
To build and test HDF5 with Fortran support, please read over Section VI.
|
|
|
|
|
|
STEP 1: Building HDF5 Libraries and Tools
|
|
|
|
|
|
1. Run batch file copy_hdf.bat
|
|
|
|
Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. This process will
|
|
copy all the necessary batch files, windows specific source codes and
|
|
text files saved under c:\MyHDFstuff\hdf5\windows directory to the
|
|
corresponding directories under hdf5.
|
|
|
|
2. Invoke Microsoft Visual Studio compiler
|
|
|
|
Invoke Microsoft Visual Studio. From the main menu, go to "File" and
|
|
select the "Open Solution" option. Then open the
|
|
c:\MyHDFstuff\hdf5\windows\proj\all\all.sln solution.
|
|
|
|
You should find Windows project files listed as "all", "big", etc. on the
|
|
left.
|
|
|
|
3. (Optional) Disable HDF5 C++ and High level C++
|
|
|
|
In HDF5 1.8, C++ and HL C++ libraries are built by default. To opt-out,
|
|
you must explicitly disable them.
|
|
|
|
3.1 Skip this step if you do want to build HDF5 High-Level C++ libraries
|
|
|
|
Go to "Project" and select "Project Dependencies". Select "all", and
|
|
disable all of the following projects:
|
|
|
|
hdf5_hl_cpp
|
|
hdf5_hl_cppdll
|
|
hl_test_table_cpp
|
|
hl_test_table_cppdll
|
|
|
|
3.2 Skip this step if you do want to build HDF5 High-Level libraries
|
|
|
|
Go to "Project" and select "Project Dependencies". Select "all", and
|
|
disable all of the project files listed in the previous step, as well
|
|
as the following projects:
|
|
|
|
hdf5_hl
|
|
hdf5_hldll
|
|
hl_test_image
|
|
hl_test_imagedll
|
|
hl_test_lite
|
|
hl_test_litedll
|
|
hl_test_table
|
|
hl_test_tabledll
|
|
hl_test_ds
|
|
hl_test_dsdll
|
|
hl_test_packet
|
|
hl_test_packetdll
|
|
|
|
|
|
4. Select "Build", then Select "Configuration Manager".
|
|
|
|
4.1 To build debug static libraries, debug multithreaded DLLs, and tests:
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build debug
|
|
version of project "all".
|
|
|
|
4.2 To build release static libraries, multithreaded DLLs and tests:
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build release
|
|
version of project "all".
|
|
|
|
Both debug and release versions must be built.
|
|
|
|
Warning messages can be ignored.
|
|
|
|
When the debug or release build is done the directories
|
|
listed below will contain the following files:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5\debug -
|
|
|
|
hdf5d.lib- the hdf5 static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5\release -
|
|
|
|
hdf5.lib- the hdf5 static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\debug -
|
|
|
|
hdf5ddll.dll- DLL
|
|
hdf5ddll.lib- the DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\release -
|
|
|
|
hdf5dll.dll- DLL
|
|
hdf5dll.lib- the DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtest\debug -
|
|
and c:\MyHDFstuff\hdf5\test\libtest\release -
|
|
|
|
libtest.lib - the internal library for test
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtestD\debug -
|
|
|
|
libtestD.dll - the internal DLL for test
|
|
libtestD.lib - the internal DLL export library for test
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtestD\release -
|
|
|
|
libtestD.dll - the internal DLL for test
|
|
libtestD.lib - the internal DLL export library for test
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslib\debug -
|
|
and c:\MyHDFstuff\hdf5\tools\toolslib\release -
|
|
|
|
toolslib.lib- the internal tools library
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslibD\debug -
|
|
and c:\MyHDFstuff\hdf5\tools\toolslibD\release -
|
|
|
|
toolslibD.dll- DLL
|
|
toolslibD.lib- the internal DLL export library for tools
|
|
|
|
c:\MyHDFstuff\hdf5\tools\"tools directory"-
|
|
where tools are located
|
|
|
|
The directories listed below will contain the following files
|
|
ONLY when you choose to build HDF5 C++ libraries:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cpp\debug -
|
|
|
|
hdf5_cppd.lib- the HDF5 C++ API static library
|
|
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_cpp\release -
|
|
|
|
hdf5_cpp.lib- the HDF5 C++ API static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\debug -
|
|
|
|
hdf5_cppdlld.dll- the HDF5 C++ API DLL
|
|
hdf5_cppdlld.lib - the C++ API export library
|
|
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\release -
|
|
|
|
hdf5_cppdll.dll- the HDF5 C++ API DLL
|
|
hdf5_cppdll.lib- the C++ API DLL export library
|
|
|
|
|
|
The directories listed below will contain the following files
|
|
ONLY when you choose to build HDF5 High Level libraries:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hl\Release -
|
|
hdf5_hl.lib - HDF5 High Level static Library
|
|
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_hl\Debug -
|
|
|
|
hdf5_hld.lib - HDF5 High Level Static Library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Release -
|
|
hdf5_hldll.dll - HDF5 High Level DLL
|
|
hdf5_hldll.lib - HDF5 High Level export Library
|
|
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Debug -
|
|
|
|
hdf5_hldlld.dll - HDF5 High Level DLL
|
|
hdf5_hldlld.lib - HDF5 High Level export Library
|
|
|
|
The directories listed below will contain the following files
|
|
ONLY when you choose to build HDF5 High Level C++ libraries:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hl_cpp\Release -
|
|
|
|
hdf5_hl_cpp.lib - HDF5 High Level C++ Static Library
|
|
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_hl_cpp\Debug -
|
|
|
|
hdf5_hl_cppd.lib - HDF5 High Level C++ Static Library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hl_cppdll\Release -
|
|
and c:\MyHDFstuff\hdf5\proj\hdf5_hl_cppdll\Debug -
|
|
|
|
hdf5_hl_cppdlld.dll - HDF5 High Level C++ DLL
|
|
hdf5_hl_cppdlld.lib - HDF5 High Level C++ export Library
|
|
|
|
|
|
STEP 2: Testing HDF5 Libraries and Tools
|
|
|
|
HDF5 libraries and tools should be tested to make sure that they were built
|
|
correctly.
|
|
|
|
We provide 2 options for users to test HDF5 libraries and tools.
|
|
|
|
Option 1: Automatic testings
|
|
|
|
HDF5 comes with various test suites, all of which can be tested with
|
|
hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory.
|
|
|
|
hdf5check batch file can be run with one of the following four options:
|
|
|
|
hdf5check Test HDF5 C library and tools only.
|
|
|
|
hdf5check enablecpp Test HDF5 C/C++ libraries and tools. To use
|
|
this option, HDF5 C++ libraries must have been
|
|
built in step I.
|
|
|
|
hdf5check enablefortran Test HDF5 C/Fortran libraries and tools. To
|
|
use this option, HDF5 Fortran libraries must
|
|
have been built in Section VI.
|
|
|
|
hdf5check enableall Test HDF5 C/C++/Fortran libraries and tools.
|
|
To use this option, HDF5 C++ and Fortran
|
|
libraries must have been built.
|
|
|
|
Invoke a command prompt window and run hdf5check with appropriate option.
|
|
|
|
Test results are saved in two files:
|
|
|
|
c:\MyHDFstuff\hdf5\check_results.txt
|
|
|
|
c:\MyHDFstuff\hdf5\tests_results.txt.
|
|
|
|
In general, you only need to check tests_results.txt. If all the tests
|
|
passed, then you do not have to check check_results.txt. If some tests
|
|
failed, check check_results.txt can help you figure out what was wrong.
|
|
|
|
Option 2: Step-by-step HDF5 libraries and tools testings
|
|
|
|
You can also test HDF5 libraries and tools one by one. There are possibly
|
|
four versions of HDF5 libraries and tools testings.
|
|
|
|
They are:
|
|
|
|
release version
|
|
release dll version
|
|
debug version
|
|
debug dll version
|
|
|
|
We strongly suggest you to redirect your testing results into an output file
|
|
so that you can easily check the testing results.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_dll.bat is included in c:\MyHDFstuff\hdf5 directory.
|
|
Run this batch file and the following HDF5 DLLs will be copied to the system
|
|
directory:
|
|
|
|
hdf5\proj\hdf5dll\release\hdf5dll.dll
|
|
hdf5\proj\hdf5dll\debug\hdf5ddll.dll
|
|
hdf5\test\libtestD\release\libtestD.dll
|
|
hdf5\test\libtestD\debug\libtestDd.dll
|
|
|
|
1. HDF5 library testing
|
|
|
|
Open a command prompt in the hdf5\test directory
|
|
|
|
(1) Basic tests
|
|
|
|
a) Release Static, type:
|
|
hdf5test release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
hdf5test release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
hdf5test debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
hdf5test debug dll >"Your output filename"
|
|
|
|
(2) Timing Tests
|
|
|
|
a) Release Static, type:
|
|
hdf5timingtest release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
hdf5timingtest release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
hdf5timingtest debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
hdf5timingtest debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
2. HDF5 tools testing
|
|
|
|
To test HDF5 tools, cd back into hdf5 directory and then to tools
|
|
directory (c:\MyHDFstuff\hdf5\tools). The HDF5 tools testing results are
|
|
saved into output files in tools directory by the testhdf5tools.bat as
|
|
described below.
|
|
|
|
a) Release Static, type:
|
|
testhdf5tools release
|
|
Output file: toolstest_release.txt
|
|
|
|
b) Release DLL, type:
|
|
testhdf5tools release dll
|
|
Output file: toolstest_releasedll.txt
|
|
|
|
c) Debug Static, type:
|
|
testhdf5tools debug
|
|
Output file: toolstest_debug.txt
|
|
|
|
d) Debug DLL, type:
|
|
testhdf5tools debug dll
|
|
Output file: toolstest_debugdll.txt
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
3. HDF5 C++ library test
|
|
|
|
Skip this step UNLESS you have built HDF5 C++ libraries and want to test
|
|
them.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_cppdll.bat is included in c:\MyHDFstuff\hdf5
|
|
directory. Run this batch file and the following HDF5 C++ DLLs will be
|
|
copied to the system directory.
|
|
|
|
hdf5\proj\hdf5_cppdll\release\hdf5_cppdll.dll
|
|
hdf5\proj\hdf5_cppdll\debug\hdf5_cppddll.dll
|
|
|
|
Run hdf5cpptest.bat in the hdf5\c++\test directory at the
|
|
command prompt as below:
|
|
|
|
a) Release Static, type:
|
|
hdf5cpptest release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
hdf5cpptest release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
hdf5cpptest debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
hdf5cpptest debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
4. HDF5 Fortran library test
|
|
|
|
Skip this step UNLESS you have built HDF5 Fortran libraries in Section
|
|
VII, and want to test them.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_f90dll.bat is included in c:\MyHDFstuff\hdf5
|
|
directory. Run this batch file and the following HDF5 Fortran DLLs will
|
|
be copied to the system directory.
|
|
|
|
hdf5\proj\hdf5_f90cstubdll\release\hdf5_f90cstubdll.dll
|
|
hdf5\proj\hdf5_f90cstubdll\debug\hdf5_f90cstubddll.dll
|
|
hdf5\proj\hdf5_fortrandll\release\hdf5_fortrandll.dll
|
|
hdf5\proj\hdf5_fortrandll\debug\hdf5_fortranddll.dll
|
|
hdf5\fortran\test\libtest_cstubdll\release\libtest_cstubdll.dll
|
|
hdf5\fortran\test\libtest_cstubdll\debug\libtest_cstubddll.dll
|
|
hdf5\fortran\test\libtest_fortrandll\release\libtest_fortrandll.dll
|
|
hdf5\fortran\test\libtest_fortrandll\debug\libtest_fortranddll.dll
|
|
|
|
Run testhdf5_fortran.bat at the command prompt as below:
|
|
|
|
a) Release Static, type:
|
|
testhdf5_fortran release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
testhdf5_fortran release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
testhdf5_fortran debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
testhdf5_fortran debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
5. HDF5 High-Level library test
|
|
|
|
Skip this step UNLESS you have built HDF5 High-Level libraries and want to
|
|
test them.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_hldll.bat is included in c:\MyHDFstuff\hdf5
|
|
directory. Run this batch file and the following HDF5 high level DLLs will
|
|
be copied to the system directory.
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Release\hdf5_hldll.dll
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hldll\Debug\hdf5_hldlld.dll
|
|
|
|
Run test_hdf5_hl.bat in the hdf5\hl\test directory at the command prompt as
|
|
below:
|
|
|
|
a) Release Static, type:
|
|
test_hdf5_hl release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
test_hdf5_hl release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
test_hdf5_hl debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
test_hdf5_hl debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
6. HDF5 High-Level C++ library test
|
|
|
|
Skip this step UNLESS you have built HDF5 High-Level C++ libraries and want
|
|
to test them.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_hlcppdll.bat is included in c:\MyHDFstuff\hdf5
|
|
directory. Run this batch file and the following HDF5 high level c++ DLLs
|
|
will be copied to the system directory.
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hlcppdll\Release\hdf5_hlcppdll.dll
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hlcppdll\Debug\hdf5_hlcppdlld.dll
|
|
|
|
Run test_hdf5_hl_cpp.bat in the hdf5\hl\c++\test directory at the command
|
|
prompt as below:
|
|
|
|
a) Release Static, type:
|
|
test_hdf5_hl_cpp release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
test_hdf5_hl_cpp release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
test_hdf5_hl_cpp debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
test_hdf5_hl_cpp debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
7. HDF5 High-Level Fortran library test
|
|
|
|
Skip this step UNLESS you have built HDF5 High-Level Fortran libraries and
|
|
want to test them.
|
|
|
|
DLLs listed below should be placed into the Windows system directory. A
|
|
batch file named install_hlf90dll.bat is included in c:\MyHDFstuff\hdf5
|
|
directory. Run this batch file and the following HDF5 High Level Fortran
|
|
DLLs will be copied to the system directory.
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hl_f90cstubdll\Release\hdf5_hl_f90cstubdll.dll
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hl_f90cstubdll\Debug\hdf5_hl_f90cstubdlld.dll
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hlfortrandll\Release\hdf5_hlfortrandll.dll
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_hlfortrandll\Debug\hdf5_hlfortrandlld.dll
|
|
|
|
Run test_hdf5_hl_fortran.bat in the hdf5\hl\fortran\test directory at the
|
|
command prompt as below:
|
|
|
|
a) Release Static, type:
|
|
test_hdf5_hl_fortran release >"Your output filename"
|
|
|
|
b) Release DLL, type:
|
|
test_hdf5_hl_fortran release dll >"Your output filename"
|
|
|
|
c) Debug Static, type:
|
|
test_hdf5_hl_fortran debug >"Your output filename"
|
|
|
|
d) Debug DLL, type:
|
|
test_hdf5_hl_fortran debug dll >"Your output filename"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
|
|
STEP 3: Installing HDF5 Libraries
|
|
|
|
We provide a batch file for users to relocate all HDF5 libraries in one folder
|
|
(C++ and Fortran libraries will also be copied into this folder if they have
|
|
been built in step I or Section VI, respectively). The file is called
|
|
installhdf5lib.bat under c:\MyHDFstuff\hdf5 directory. Run the batch file, you
|
|
may see a folder called hdf5lib under c:\MyHDFstuff\hdf5.
|
|
|
|
The <release> layout of <hdf5lib> should be:
|
|
|
|
release\include -- HDF5 header files
|
|
release\bin -- HDF5 static tool executables
|
|
release\bindll -- HDF5 DLL tool executables
|
|
release\lib -- HDF5 static libraries
|
|
release\dll -- HDF5 DLLs
|
|
|
|
You may also find the similar layout for the <debug>.
|
|
|
|
========================================================================
|
|
Section III: How To Build Examples (Optional)
|
|
========================================================================
|
|
|
|
Simple examples have been provided for users to test HDF5 C/C++/Fortran and
|
|
High level C/Fortran library and tools.
|
|
|
|
Note:
|
|
1) To build HDF5 C++ examples, HDF5 C++ library must have been built in
|
|
Step I.
|
|
|
|
2) To build HDF5 Fortran or HL Fortran examples, please see Section VI,
|
|
Step 3.
|
|
|
|
3) To build HDF5 High Level C examples, HDF5 High level library must have
|
|
been built in step I.
|
|
|
|
4) By default, the debug versions of HDF5 C/C++/HL examples are linked
|
|
with the debug versions of HDF5 C/C++/HL libraries and DLLs. The
|
|
debug versions of HDF5 C/C++/HL examples will fail if they are linked
|
|
with HDF5 binary distribution, which only includes the release
|
|
versions of HDF5 C/C++ libraries and DLLs.
|
|
|
|
To build and test HDF5 C examples:
|
|
----------------------------------
|
|
1. Invoke Microsoft Visual Studio, go to "File" and select the "Open
|
|
Solution" option.
|
|
|
|
Then open the solution
|
|
c:\MyHDFstuff\hdf5\windows\examples\allexamples\allexamples.sln.
|
|
|
|
2. Select "Build", and "Configuration Manager".
|
|
|
|
2.1 To build debug versions of C examples:
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
debug version of project "allexamples".
|
|
|
|
2.2 To build release versions of C examples.
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
release version of project "allexamples".
|
|
|
|
When the debug and release build is done, there should be the following
|
|
subdirectories in c:\MyHDFstuff\hdf5\examples\
|
|
|
|
attributetest
|
|
attributetestdll
|
|
chunkread
|
|
chunkreaddll
|
|
compoundtest
|
|
compoundtestdll
|
|
extendwritetest
|
|
extendwritetestdll
|
|
grouptest
|
|
grouptestdll
|
|
readtest
|
|
readtestdll
|
|
selectest
|
|
selectestdll
|
|
writetest
|
|
writetestdll
|
|
|
|
3. Invoke a command prompt window and run the batch file InstallExamples.bat
|
|
which resides in the top level directory (c:\MyHDFstuff\hdf5). This file
|
|
creates 4 new directories, examplesREL, examplesRELDLL, examplesDBG, and
|
|
examplesDBGDLL, in the c:\MyHDFstuff\hdf5\examples directory and places
|
|
all the executables in it. Both the release and debug versions of the
|
|
examples should be built before this step is done.
|
|
|
|
4. We provide a batch file named testExamples.bat and an expected examples
|
|
tests output file named testExamples_exp_output.txt in
|
|
c:\MyHDFstuff\hdf5\examples directory for you to test HDF5 C examples.
|
|
|
|
testExamples.bat batch file has 4 options:
|
|
|
|
testExamples release -- for release version
|
|
|
|
testExamples release dll -- for release DLL version
|
|
|
|
testExamples debug -- for debug version
|
|
|
|
testExamples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt and run testExamples.bat with appropriate options.
|
|
You should get "All HDF5 C examples tests passed." when the C examples are
|
|
built successfully. Otherwise, the difference between the expected
|
|
outputs and actual outputs will be given.
|
|
|
|
To build and test HDF5 C++ examples:
|
|
------------------------------------
|
|
|
|
1. Invoke Microsoft Visual Studio, go to "File" and select the "Open
|
|
Solution" option.
|
|
|
|
Then open the solution
|
|
c:\MyHDFstuff\hdf5\windows\examples\allexamples\allcppexamples.sln.
|
|
|
|
2. Select "Build", and "Configuration Manager".
|
|
|
|
2.1 To build debug versions of C examples:
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
debug version of project "allcppexamples".
|
|
|
|
2.2 To build release versions of C examples.
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
release version of project "allcppexamples".
|
|
|
|
When the debug build or release build is done, there should be the following
|
|
subdirectories in c:\MyHDFstuff\hdf5\c++\examples\
|
|
|
|
chunkstest
|
|
chunkstestdll
|
|
compoundtest
|
|
compoundtestdll
|
|
createtest
|
|
createtestdll
|
|
extend_dstest
|
|
extend_dstestdll
|
|
h5grouptest
|
|
h5grouptestdll
|
|
readdatatest
|
|
readdatatestdll
|
|
writedatatest
|
|
writedatatestdll
|
|
|
|
3. Invoke a command prompt window and run the batch file
|
|
InstallcppExamples.bat which resides in the top level directory
|
|
(c:\MyHDFstuff\hdf5). This file creates 4 new directories,
|
|
cppexamplesREL, cppexamplesRELDLL, cppexamplesDBG, and cppexamplesDBGDLL,
|
|
in the c:\MyHDFstuff\c++\examples directory and places all the executables
|
|
in it. Both the release and debug versions of the examples should be
|
|
built before this step is done.
|
|
|
|
4. We provide a batch file named testcppExamples.bat in
|
|
c:\MyHDFstuff\hdf5\c++\examples directory for you to test HDF5 C++
|
|
examples.
|
|
|
|
testcppExamples.bat batch file has 4 options:
|
|
|
|
testcppExamples release -- for release version
|
|
|
|
testcppExamples release dll -- for release DLL version
|
|
|
|
testcppExamples debug -- for debug version
|
|
|
|
testcppExamples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt and run testcppExamples.bat with appropriate
|
|
options. You should get "All HDF5 C++ examples tests passed." when the
|
|
C++ examples are built successfully. Otherwise, the difference between
|
|
the expected outputs and actual outputs will be given.
|
|
|
|
|
|
To build and test HDF5 High Level C examples:
|
|
---------------------------------------------
|
|
|
|
1. Invoke Microsoft Visual Studio, go to "File" and select the "Open
|
|
Solution" option.
|
|
|
|
Then open the solution
|
|
c:\MyHDFstuff\hdf5\windows\hl\examples\allhlcexamples\allhlcexamples.dsw
|
|
|
|
2. Select "Build", and "Configuration Manager".
|
|
|
|
2.1 To build debug versions of C examples:
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
debug version of project "allhlcexamples".
|
|
|
|
2.2 To build release versions of C examples.
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
release version of project "allhlcexamples".
|
|
|
|
When the debug and release build is done, there should be the following
|
|
subdirectories in c:\MyHDFstuff\hdf5\examples\
|
|
|
|
allhlcexamples
|
|
ex_images
|
|
ex_imagesdll
|
|
ex_lite
|
|
ex_litedll
|
|
ex_table
|
|
ex_tabledll
|
|
ex_ds
|
|
ex_dsdll
|
|
ex_packet
|
|
ex_packetdll
|
|
|
|
3. Invoke a command prompt and run the batch file Install_hlcexamples.bat
|
|
which resides in the top level directory (c:\MyHDFstuff\hdf5). This file
|
|
creates 4 new directories, HLCexamplesRELEASE, HLCexamplesRELEASEDLL,
|
|
HLCexamplesDEBUG, and HLCexamplesDEBUGDLL, in the
|
|
c:\MyHDFstuff\hdf5\hl\examples directory and places all the executables in
|
|
it. Both the release and debug versions of the examples should be built
|
|
before this step is done.
|
|
|
|
4. We provide a batch file named test_hl_cexamples.bat in
|
|
c:\MyHDFstuff\hdf5\hl\examples directory for you to test HDF5 high level C
|
|
examples.
|
|
|
|
test_hl_cexamples.bat batch file has 4 options:
|
|
|
|
Options purpose
|
|
|
|
test_hl_cexamples release -- for release version
|
|
|
|
test_hl_cexamples release dll -- for release DLL version
|
|
|
|
test_hl_cexamples debug -- for debug version
|
|
|
|
test_hl_cexamples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt window and run test_hl_cexamples with
|
|
appropriate options.
|
|
|
|
Invoke a command prompt and run testExamples.bat with appropriate options.
|
|
You should get "All of the HL C Examples Passed!" when the HL C examples
|
|
are built successfully. Otherwise, the difference between the expected
|
|
outputs and actual outputs will be given.
|
|
|
|
|
|
========================================================================
|
|
Section IV: Building an application using the HDF5 library or DLL
|
|
========================================================================
|
|
|
|
Waring: The instructions below will only describe how to build an application
|
|
using the release version of the HDF5 library or DLL. To use the debug
|
|
version of the HDF5 library or DLL, you need to substitute the release
|
|
version of the HDF5 library or DLL with the debug version.
|
|
|
|
|
|
To build an application that uses the HDF5 static library the following
|
|
locations will need to be specified for locating header files and linking with
|
|
the HDF static library, for example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\include
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\lib
|
|
|
|
If you have installed HDF5 library in Section II, step 3.
|
|
|
|
We assume that you will use Zlib and Szip compression with HDF5 library.
|
|
|
|
1. Specifying Include Directories
|
|
|
|
To specify the include directories in the settings for your Visual Studio
|
|
project, you may choose one of the following two methods.
|
|
|
|
Method One: Project-wide Settings
|
|
|
|
1. Open your project in Microsoft Visual Studio and make sure it is the
|
|
active project.
|
|
|
|
2. Go to the Project menu and chose the "Properties" option.
|
|
|
|
3. Choose the build configuration you would like to modify in the drop
|
|
down menu labeled "Configuration:"
|
|
|
|
4. Choose the "C/C++" tab, anc select "General".
|
|
|
|
5. In a text-area labeled with "Additional Include Directories:", add
|
|
HDF5, Zlib, and Szip header files directories. For example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\include
|
|
c:\zlib123\include
|
|
c:\szip\include
|
|
|
|
Then click OK.
|
|
|
|
6. (Optional) To use HDF5 Fortran static library, the location of
|
|
Fortran module files should be specified by following Project->
|
|
Settings->Fortran->Preprocessor, and in the text-area labeled
|
|
"Additional Include Directories", add HDF5 Fortran module files
|
|
directories. For example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\include
|
|
|
|
Method Two: Visual Studio Settings
|
|
|
|
1. In Visual STudio, go to Tools->Options->Projects->
|
|
VC++ Directories.
|
|
|
|
2. Insert the correct HDF5, Zlib, Szip paths for both headers(include)
|
|
and libraries. For example,
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\include
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\lib
|
|
c:\zlib123\include
|
|
c:\zlib123\lib
|
|
c:\szip\include
|
|
c:\szip\dll
|
|
|
|
3. Go to the Project menu and choose the "Settings" option.
|
|
|
|
2. Specifying Linking Directories
|
|
|
|
To link the HDF5 static library with your application:
|
|
|
|
1. In Visual Studio, go to the Project menu and choose "Properties".
|
|
|
|
2. Find the "Link" option and "Input" category. In the "Additional
|
|
Dependencies" field, insert "zdll.lib, szlibdll.lib, hdf5.lib".
|
|
|
|
3. (Optional) Also insert "hdf5_cpp.lib" if you want to use HDF5 C++
|
|
static library.
|
|
|
|
4. (Optional) Also insert "hdf5_fortran.lib" if you want to use HDF5
|
|
Fortran static library.
|
|
|
|
5. (Optional) Also insert "hdf5_hl.lib" if you want to use HDF5 high
|
|
level static library.
|
|
|
|
6. (Optional) Also insert "hdf5_hl_cpp.lib" if you want to use HDF5 High
|
|
Level C++ static library.
|
|
|
|
7. (Optional) Also insert "hdf5_hl_fortran.lib" if you want to use HDF5
|
|
High Level Fortran static library.
|
|
|
|
|
|
To link the HDF5 DLL library with your application:
|
|
|
|
1. Follow the steps for linking the HDF5 static library as shown above,
|
|
except now link the export library that is created with the DLL.
|
|
|
|
The export library is called hdf5dll.lib for HDF5 C libray,
|
|
hdf5_cppdll.lib for HDF5 C++ library, and hdf5_fortrandll.lib
|
|
for HDF5 Fortran library.
|
|
|
|
2. In the Project Properties dialog, go to the C/C++ > Preprocessor
|
|
subsection. In the "Preprocessor Definitions" box, add "_HDF5USEDLL_"
|
|
to the list.
|
|
|
|
3. (Optional) Also add HDF5CPP_USEDLL to use HDF5 C++ DLL.
|
|
|
|
4. (Optional) Also add _HDF5USEHLDLL_ to use HDF5 high level DLL.
|
|
|
|
5. (Optional) Also add HDF5USE_HLCPPDLL use HDF5 high level C++ DLL.
|
|
|
|
6. (Optional) Follow Project->Settings->Fortran->Category->General->
|
|
Predefined Preprocess or Symbols, and add "HDF5F90_WINDOWS" to use HDF5
|
|
Fortran DLL.
|
|
|
|
7. Place the DLLs in a location that Windows will be able to locate. The
|
|
searched path and order for DLL's is
|
|
|
|
a) The directory where the executable module for the current
|
|
process is located.
|
|
b) The current directory.
|
|
c} The Windows system directory. The GetSystemDirectory function
|
|
retrieves the path of this directory.
|
|
d) The Windows directory. The GetWindowsDirectory function
|
|
retrieves the path of this directory.
|
|
e) The directories listed in the PATH environment variable.
|
|
|
|
========================================================================
|
|
Section V: How to disable Gzip(Zlib)/Szip compression
|
|
========================================================================
|
|
|
|
Warning: When you modify the H5pubconf.h file as described below, DO NOT just
|
|
change the values of these macros from 1 to 0. Please DO remove (or
|
|
comment out) appropriate lines.
|
|
|
|
Notes:
|
|
|
|
To disable Gzip and Szip at the same time, just make the appropriate
|
|
modifications to H5pubconf.h and the environmental variables all together,
|
|
and then Run-compile.
|
|
|
|
1. Disable Gzip (Zlib) Compression
|
|
|
|
If you would like to remove Gzip compression from the HDF5 library, follow
|
|
the steps below.
|
|
|
|
1.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src directory
|
|
and remove (or comment out) the following two lines:
|
|
|
|
#define H5_HAVE_ZLIB_H 1
|
|
#define H5_HAVE_FILTER_DEFLATE 1
|
|
|
|
Then save the file.
|
|
|
|
1.2 Delete HDF5_EXT_ZLIB environment variable if you have set it in
|
|
preconditions.
|
|
|
|
1.3 Run-compile HDF5 library according to Section II.
|
|
|
|
When you disable Gzip, you may get the following message when building
|
|
HDF5 libraries: "The following environment variables were not found:
|
|
$(HDF5_EXT_ZLIB)". This message can be ignored.
|
|
|
|
2. Disable Szip Compression (both encoder and decoder)
|
|
|
|
If you would like to remove Szip compression from the HDF5 library, follow
|
|
the steps below.
|
|
|
|
2.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src directory
|
|
and remove (or comment out) the following two lines:
|
|
|
|
#define H5_HAVE_SZLIB_H 1
|
|
#define H5_HAVE_FILTER_SZIP 1
|
|
|
|
Then save the file.
|
|
|
|
2.2 Delete HDF5_EXT_SZIP environment variable if you have set it in
|
|
preconditions.
|
|
|
|
2.3 Run-compile HDF5 library according to Section II.
|
|
|
|
When you disable Szip, you may get the following message when building
|
|
HDF5 libraries: "The following environment variables were not found:
|
|
$(HDF5_EXT_SZIP)". This message can be ignored.
|
|
|
|
3. Disable Szip Encoder
|
|
|
|
If you would like to just disable Szip encoder from the HDF5
|
|
library while keeping Szip decoder enabled, follow the steps
|
|
below.
|
|
|
|
3.1 Download Szip library without encoder
|
|
|
|
Szip library is different if you want to disable Szip encoder.
|
|
Download szip_noencoder binaries from
|
|
ftp://ftp.hdfgroup.org/lib-external/szip/2.0/bin/windows. The Szip
|
|
library and header path should also be set up accordingly (refer to
|
|
precondition 6).
|
|
|
|
3.2 Run-compile HDF5 library according to Section II.
|
|
|
|
========================================================================
|
|
Section VI: How to build HDF5 with Intel Fortran 9.1
|
|
========================================================================
|
|
Notes: 1. For Intel Compiler users, Intel fortran Compiler 9.1 is currently
|
|
supported-- please see below. Intel Compiler verion 7.x and 8.x are no
|
|
longer supported.
|
|
|
|
2. The Compaq Fortran Compiler is no longer supported for HDF5 1.8.
|
|
|
|
3. Intel Fortran 9.1 works only under .Net 2003 or Visual Studio 2005
|
|
environments.
|
|
|
|
4. For Visual Studio 2005 users, parallel builds should be disabled. To
|
|
do so: Go to Tools > Options > Projects and Solutions > Build and Run.
|
|
Set "Maximum Number of Parallel Project Builds" to 1.
|
|
|
|
|
|
|
|
Preconditions:
|
|
|
|
a. Setup Szip Library for Intel Compiler.
|
|
|
|
Intel compilers use different Szip library from other compilers.
|
|
Szip source codes or binaries for Intel compiler can be downloaded
|
|
from the following address:
|
|
|
|
ftp://ftp.hdfgroup.org/lib-external/szip/2.0/bin/windows.
|
|
|
|
b. Set up path for external libraries and headers
|
|
|
|
Skip this part if you don't want to use ANY compression features
|
|
provided by HDF5. Instead, read Section V.
|
|
|
|
You have to read this part even if you want to use only Zlib
|
|
or Szip. You also need to read Section V.
|
|
|
|
1) Invoke Microsoft Visual C++ .Net 2003 or 2005.
|
|
|
|
2) From the main menu, Go to Tools > Options > Intel(R) Fortran. In the
|
|
right panel, make sure your "Selected Compiler" is Intel Fortran 9.1.
|
|
|
|
3) Select the right-most box for "Libraries", and add Zlib and Szip
|
|
library paths (c:\zlib123\lib, c:\szip\dll for example).
|
|
|
|
4) Select right-most box for "Includes", and add Zlib and Szip header
|
|
paths (c:\zlib123\include c:\szip\include, for example).
|
|
|
|
5) Then click "OK".
|
|
|
|
|
|
1. Build with Intel Fortran Compiler 9.1 under Visual Studio .Net / 2005
|
|
|
|
Note: This step will build HDF5 Static and DLL C and C++ Library using .Net
|
|
or Visual Studio 2005 Compiler as well as HDF5 Static and High Level
|
|
Fortran Library using Intel Fortran 9.1 Compiler.
|
|
|
|
1.1 Open all_fortran.sln
|
|
|
|
Invoke Microsoft Visual C++ .Net or 2005. From the main menu,
|
|
go to "File" and select "Open Solution". Choose "all_fortran.sln"
|
|
under the directory c:\MyHDFstuff\hdf5\windows\proj\all_fortran.
|
|
|
|
|
|
(.Net 2003 ONLY) Fix Runtime Libraries
|
|
|
|
Due to a incompatibilities between Visual Studio .Net, Intel Fortran 9.1,
|
|
and the Microsoft Platform SDK, the static debug run-time libraries cannot
|
|
be used for some Fortran projects. To remedy this, make the following
|
|
changes:
|
|
|
|
a) Select the "flush1_fortran" project, and go to Project->Properties.
|
|
|
|
b) Make sure "Debug" is selected in the "Configuration" drop-down.
|
|
|
|
c) From the Properties dialog, navigate to Fortran->Libraries.
|
|
|
|
d) In the field "Runtime Library", select "Single-threaded".
|
|
|
|
e) Do the same for projects "flush2_fortran", and "testhdf5_fortran".
|
|
|
|
|
|
1.2 Build as Normal
|
|
|
|
Follow steps as in Section II to build all HDF5 library files, including
|
|
Fortran and HL Fortran libraries.
|
|
|
|
|
|
2. Test HDF5 Static and High Level Fortran Library
|
|
|
|
We provide 2 options for users to test HDF5 libraries and tools.
|
|
|
|
Option 1: Automatic testings
|
|
|
|
HDF5 comes with various test suites, all of which can be tested with
|
|
hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory.
|
|
|
|
hdf5check batch file can used to test HDF libraries with Fortran with
|
|
the following options:
|
|
|
|
hdf5check enablefortran Test HDF5 C/Fortran libraries and tools
|
|
|
|
|
|
hdf5check enableall Test HDF5 C/C++/Fortran libraries and tools
|
|
To use this option, HDF5 C++ and Fortran
|
|
libraries must have been built.
|
|
|
|
Invoke a command prompt window and run hdf5check with appropriate option.
|
|
|
|
Test results are saved in two files:
|
|
|
|
c:\MyHDFstuff\hdf5\check_results.txt
|
|
|
|
c:\MyHDFstuff\hdf5\tests_results.txt.
|
|
|
|
In general, you only need to check tests_results.txt. If all the tests
|
|
passed, then you do not have to check check_results.txt. If some tests
|
|
failed, check check_results.txt can help you figure out what was wrong.
|
|
|
|
|
|
Option 2: Step-by-step HDF5 libraries and tools testings
|
|
|
|
Note: This section provides step-by-step instructions for testing the
|
|
Fortran librariy and tools only. To test the rest of the HDF5 library
|
|
and tools, please see Section II, Step 2.
|
|
|
|
|
|
a. Test HDF5 Static Fortran Library
|
|
|
|
Go to directory c:\myHDFstuff\hdf5\fortran\test, Run batch file
|
|
testhdf5_fortran.bat with the following two options to test Fortran
|
|
static library:
|
|
|
|
testhdf5_fortran release >> "Your output file name"
|
|
testhdf5_fortran debug >> "Your output file name"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
b. Test HDF5 High Level Fortran Library
|
|
|
|
Go to directory c:\myHDFstuff\hdf5\hl\fortran\test, Run batch file
|
|
testhdf5_fortran.bat with the following two options to test Fortran
|
|
static library
|
|
|
|
test_hdf5_hl_fortran release >> "Your output file name"
|
|
test_hdf5_hl_fortran debug >> "Your output file name"
|
|
|
|
Use a text editor to check results. You should not find any FAILED marks
|
|
in your output files.
|
|
|
|
|
|
3. (Optional) Build HDF5 Fortan and HL Fortran Examples
|
|
|
|
Note: This section only covers building Fortran and HL Fortran examples.
|
|
For other examples, please see Section III.
|
|
|
|
To build and test HDF5 Fortran example:
|
|
---------------------------------------
|
|
|
|
1. Open allf90examples.sln
|
|
|
|
Invoke Microsoft Visual C++ .Net or 2005. From the main menu,
|
|
go to "File" and select "Open Solution". Choose "allf90examples.sln"
|
|
under the directory
|
|
c:\MyHDFstuff\hdf5\windows\fortran\examples\allf90examples.
|
|
|
|
2. Select "Build", then Select "Configuration Manager".
|
|
|
|
2.1 To build debug versions of Fortran examples.
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
debug version of project "allf90examples".
|
|
|
|
2.2 To build release versions of Fortran examples.
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
release version of project "allf90examples".
|
|
|
|
When the debug build or release build is done, there should be the
|
|
following subdirectories in c:\MyHDFstuff\hdf5\fortran\examples\
|
|
|
|
attreexampletest
|
|
attreexampletestdll
|
|
compoundtest
|
|
compoundtestdll
|
|
dsetexampletest
|
|
dsetexampletestdll
|
|
fileexampletest
|
|
fileexampletestdll
|
|
groupexampletest
|
|
groupexampletestdll
|
|
grpdsetexampletest
|
|
grpdsetexampletestdll
|
|
grpittest
|
|
grpittestdll
|
|
grpsexampletest
|
|
grpsexampletestdll
|
|
hyperslabtest
|
|
hyperslabtestdll
|
|
mountexampletest
|
|
mountexampletest
|
|
refobjexampletest
|
|
refobjexampletestdll
|
|
refregexampletest
|
|
refregexampletestdll
|
|
rwdsetexampletest
|
|
rwdsetexampletestdll
|
|
selecteletest
|
|
selecteletestdll
|
|
|
|
3. Invoke a command prompt and run the batch file Installf90Examples.bat
|
|
which resides in the top level directory (c:\MyHDFstuff\hdf5). This
|
|
file creates 4 new directories, f90examplesREL, f90examplesRELDLL,
|
|
f90examplesDBG, and f90examplesDBGDLL, in the
|
|
c:\MyHDFstuff\fortran\examples directory and places all the
|
|
executables in it. Both the release and debug versions of the
|
|
examples should be built before this step is done.
|
|
|
|
|
|
To build and test HDF5 High Level Fortran examples:
|
|
---------------------------------------------------
|
|
|
|
1. Open allhlf90examples.sln
|
|
|
|
Invoke Microsoft Visual C++ .Net or 2005. From the main menu,
|
|
go to "File" and select "Open Solution". Choose
|
|
"allhlf90examples.sln" under the directory
|
|
c:\MyHDFstuff\hdf5\windows\hl\fortran\examples\allhlf90examples.
|
|
|
|
2. Select "Build", then Select "Configuration Manager".
|
|
|
|
2.1 To build debug versions of Fortran examples.
|
|
|
|
In "Active Solution Configuration", select "Debug". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
debug version of project "allhlf90examples".
|
|
|
|
2.2 To build release versions of Fortran examples.
|
|
|
|
In "Active Solution Configuration", select "Release". Select "Close".
|
|
Select "Build" -> "Build Solution" or "Rebuild Solution" to build
|
|
release version of project "allhlf90examples".
|
|
|
|
When the debug build or release build is done, there should be the
|
|
following subdirectories in c:\MyHDFstuff\hdf5\hl\fortran\examples
|
|
|
|
ex_lite
|
|
ex_litedll
|
|
|
|
3. Invoke a command prompt and run the batch file
|
|
Install_hlf90examples.bat which resides in the top level directory
|
|
(c:\MyHDFstuff\hdf5). This file creates 4 new directories,
|
|
HLf90examplesRELEASE, HLf90examplesRELEASEDLL, HLf90examplesDEBUG,
|
|
and HLf90examplesDEBUGDLL, in the
|
|
c:\MyHDFstuff\hdf5\hl\fortran\examples directory and places all
|
|
the executables in it. Both the release and debug versions of the
|
|
examples should be built before this step is done.
|
|
|
|
4. We provide a batch file named test_hl_f90examples.bat in
|
|
c:\MyHDFstuff\hdf5\hl\fortran\examples directory for you to test
|
|
HDF5 high level fortran examples.
|
|
|
|
test_hl_f90examples.bat batch file has 4 options:
|
|
|
|
Options purpose
|
|
|
|
test_hl_f90examples release -- for release version
|
|
|
|
test_hl_f90examples release dll -- for release DLL version
|
|
|
|
test_hl_f90examples debug -- for debug version
|
|
|
|
test_hl_f90examples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt and run test_hl_f90examples with
|
|
appropriate options.
|
|
|
|
When you run "test_hl_f90examples release", the output will look
|
|
like:
|
|
|
|
release version of High Level Fortran examples PASSED
|
|
|
|
Similar messages should be generated with another three options
|
|
If the high level Fortran examples are built successfully.
|
|
|
|
========================================================================
|
|
Section VII : How to build Multi-threaded version of HDF5 library
|
|
========================================================================
|
|
|
|
Notes: In Visual Studio 2005, the Single-threaded runtime libraries have been
|
|
depreciated, and Multi-threaded is built by default. Therefore, no extra
|
|
work needs to be done to build Multi-threaded libraries in Visual Studio
|
|
2005.
|
|
|
|
Preconditions and Section I also apply to this section. Users who
|
|
want to build Multi-threaded version of HDF5 library, please read
|
|
those two sections carefully before go to the following part.
|
|
|
|
|
|
In Visual Studio .Net, users have the option of building multi-threaded
|
|
libraries by manipulating the project settings. Otherwise, the build process
|
|
is very much the same. Therefore, follow the instructions below, and refer
|
|
to the earlier sections of this document for details on building and testing.
|
|
|
|
|
|
1. Open the solution file
|
|
|
|
Refer to previous sections to open the appropriate solution file,
|
|
depending on whether you are building with or without Fortran libraries.
|
|
|
|
2. Change Project Settings
|
|
|
|
a) In Visual Studio, go to "Projects->Properties".
|
|
|
|
b) Make sure in the "Configuration" box, "Release" is selected.
|
|
|
|
c) Select all of the static project file in the main window by holding
|
|
the "Ctrl" key while clicking the project file name.
|
|
|
|
d) In the "Properties" window, choose "C/C++", and then "Code
|
|
Generation".
|
|
|
|
e) Under "Run-time Library", "Single-Threaded" should appear. If it is
|
|
blank inside this box, check if you highlight some DLL project files.
|
|
|
|
d) Change "Single-Threaded" to "Multithreaded".
|
|
|
|
e) In the "Configuration" box, change to "Debug", keeping the static
|
|
projects selected.
|
|
|
|
f) Under "Run-time Library", change "Debug Single-Threaded" to "Debug
|
|
Multithreaded".
|
|
|
|
3. Build as Normal
|
|
|
|
Refer to previous sections to build and test the HDF5 libraries
|
|
and tools.
|
|
|
|
|
|
========================================================================
|
|
Section VIII: Building and testing HDF5 snapshot release
|
|
========================================================================
|
|
|
|
Note: This section is only for users who would like to build and test HDF5
|
|
snapshot release. These releases are development builds, and are
|
|
unstable! Use for testing only, and backup any data which will be
|
|
manipulated.
|
|
|
|
Step I: Generate H5Tinit.c using Microsoft Visual Studio
|
|
|
|
For users who would like to build and test HDF5 C and C++ library ONLY, it is
|
|
necessary to manually generate H5Tinit.c before building HDF5. Follow the steps
|
|
in Section XII to generate H5Tinit.c manually using Microsoft Visual Studio 6.0.
|
|
We don't guarantee that H5Tinit.c can be sucesessfully created by other
|
|
compilers.
|
|
|
|
|
|
Step II: Generate H5f90i_gen.h and H5fortran_types.f90 using Compaq
|
|
Visual Fortran 6.6c
|
|
|
|
Note: The users who don't want to build fortran library can skip
|
|
this step.
|
|
|
|
For users who would like to build and test HDF5 with Fortran library.
|
|
It is necessary to manually generate the following three files with
|
|
the given compiler before go to Section II:
|
|
|
|
Files to be Generated Compiler to be Used
|
|
|
|
H5f90i_gen.h Compaq Visual Fortran 6.6
|
|
H5fortran_types.f90 Compaq Visual Fortran 6.6
|
|
H5Tinit.c Visual C++ 6.0
|
|
|
|
We don't guarantee that these three files can be created successfully
|
|
by other compilers.
|
|
|
|
1) Open and build H5fortran_detect_gen.dsw with Compaq Visual Fortran
|
|
|
|
Go to the following directory
|
|
c:\myHDFstuff\hdf5\windows\misc\H5fortran_detect_gen
|
|
Open H5fortran_detect_gen.dsw with Compaq Visual Fortran and
|
|
build the project file.
|
|
|
|
2) Invoke command prompt and go to c:\myHDFstuff\hdf5\fortran\src.
|
|
Type
|
|
H5fortran_detect_gen.exe > H5fortran_detect.f90
|
|
|
|
3) Open and build fortrantypegen.dsw with Compaq Visual Fortran
|
|
|
|
Go to the following directory
|
|
c:\myHDFstuff\hdf5\windows\misc\fortrantypegen
|
|
Open fortrantypegen.dsw with Compaq Visual Fortran and
|
|
build the project file.
|
|
|
|
4) Invoke command prompt and go to c:\myHDFstuff\hdf5\fortran\src.
|
|
Type
|
|
|
|
H5fortran_detect.exe > H5fort_type_defines.h
|
|
|
|
5) Open and build matchtypegen.dsw with Compaq Visual Fortran
|
|
Go to the following directory
|
|
c:\myHDFstuff\hdf5\windows\misc\matchtypegen
|
|
Open matchtypegen.dsw and build the project file.
|
|
|
|
6) Invoke command prompt and go to c:\myHDFstuff\hdf5\fortran\src.
|
|
Type
|
|
H5match_types.exe
|
|
|
|
This step will generate H5f90i_gen.h and H5fortran_types.f90
|
|
automatically.
|
|
|
|
7) Go back to Section II, step 1(2) to build and test HDF5 Libraries
|
|
and Tools
|
|
|
|
|
|
========================================================================
|
|
Section IX: How To Build And Test HDF5 With Thread-Safe Feature
|
|
========================================================================
|
|
|
|
All of the preconditions in "Preconditions" Section at the beginning of this
|
|
document also apply to this section. There are some extra preconditions for
|
|
this section only as following.
|
|
|
|
Pre1. Pthread-Win32 Installed
|
|
|
|
Posix Threads for Windows is a open source free software. Users can download
|
|
it from http://sources.redhat.com/pthreads-win32/.
|
|
|
|
HDF5 release 1.8.0 supports Pthread-Win32 2.7.0 (2005-06-04) or later. Since
|
|
pthreadVC2.dll used by HDF5 1.8.0 is the release version dll of
|
|
pthread-win32, ONLY HDF5 1.8.0 release dll are supported and tested on
|
|
Windows XP.
|
|
|
|
Pre2. Set Path for Pthread-Win32 header and library
|
|
|
|
Invoke Microsoft Visual Studio, go to Tools->Options->Projects->VC++
|
|
Directories.
|
|
|
|
From the drop-down box under "Show directories for:",
|
|
|
|
Choose "Include files", add in the path to Pthread-Win32 header file (For
|
|
example: C:\PTHREADS_WIN32\INCLUDE).
|
|
|
|
Choose "Library files", add in the path to Pthread-Winew library (For
|
|
example: C:\PTHREADS_WIN32\LIB).
|
|
|
|
Pre3. Enable HDF5 Thread-safe Feature on Windows
|
|
|
|
Go to directory c:\MYHDFstuff\hdf5\windows\src, open H5pubconf.h and find the
|
|
following messages and remove those comment signs referred to by those two
|
|
arrows and save H5pubconf.h
|
|
|
|
|
|
/*Users want to build and test hdf5 library with thread safe enabled,
|
|
Make the following block active
|
|
*/
|
|
|
|
/* <----
|
|
#if defined _DLL
|
|
#define H5_HAVE_THREADSAFE
|
|
#define H5_HAVE_SYSTEM_SCOPE_THREADS 1
|
|
#if defined TTSAFE_H
|
|
#define sleep Sleep
|
|
#endif
|
|
#endif
|
|
*/ <----
|
|
|
|
|
|
Pre4. Define Environment Variable(HDF5_EXT_PTHREAD) for PthreadVC2.lib
|
|
|
|
To define this environment variable:
|
|
|
|
Click "Start" -> "Control Panel" -> "System" -> "Advanced" ->
|
|
"Environment Variables".
|
|
|
|
If you are logged on as administrator to the local computer AND want to
|
|
let all other users use these two environment variables, click "New" under
|
|
"System Variables" box; otherwise, click "New" under "User Variables" box.
|
|
|
|
In the New Variable window, set
|
|
"Variable name" as HDF5_EXT_PTHREAD
|
|
"Variable value" as pthreadVC2.lib
|
|
|
|
Click OK.
|
|
|
|
pre5. Copy pthreadVC2.dll to System Directory
|
|
|
|
pthreadVC2.dll should be copied into the location that applications can
|
|
find. One suggestion is to use the c:\WINDOWS\system.
|
|
|
|
|
|
1. Build HDF5 Release DLL with Thread-safe Feature
|
|
|
|
1.1 Run batch file copy_hdf.bat.
|
|
|
|
Go to c:\MyHDFstuff\hdf5\windows and run copy_hdf.bat. This process will
|
|
copy all the necessary batch files,windows specific source codes and text
|
|
files saved under c:\MyHDFstuff\hdf5\windows directory to the corresponding
|
|
directories under hdf5.
|
|
|
|
|
|
1.2 Invoke Microsoft Visual Studio
|
|
|
|
Invoke Microsoft Visual Studio. From the main menu, go to "File" and select
|
|
the "Open Solution" option. Then open the
|
|
c:\MyHDFstuff\hdf5\windows\proj\all\all.sln workspace.
|
|
|
|
1.3 Add in Thread-safe Source Code for HDF5 Library
|
|
|
|
Expand project "hdf5dll", right click on "source" and choose "Add Files to
|
|
Folder...", browse to add in file "H5TS.c" under directory
|
|
c:\MYHDFSTUFF\hdf5\src.
|
|
|
|
1.4 Link to pthreadVC2.lib
|
|
|
|
Right click on project "hdf5dll", choose "Set as Active Project".
|
|
|
|
Go to Project->Properties
|
|
|
|
On the left pane, choose "Release" to the right of "Configuration:"
|
|
|
|
Choose "Linker", choose "Input" from the left pane.
|
|
|
|
Under "Additional Dependencies", add in "$(HDF5_EXT_PTHREAD)" (No
|
|
quotation marks).
|
|
|
|
Click on "OK".
|
|
|
|
1.5 Set Project Active Configurations
|
|
|
|
Go to Build->Set Active Configuration, choose "Release" under "Project
|
|
Configurations:", Click "OK".
|
|
|
|
1.6 Build HDF5 Release DLL with Thread-safe Feature
|
|
|
|
Right-click on project hdf5dll and click "Build" to build HDF5 Release DLL
|
|
with thread-safe feature.
|
|
|
|
Warning messages can be ignored. But there should be no failures at all.
|
|
|
|
2. Test Thread-safe Feature of HDF5 Release DLL
|
|
|
|
2.1 Build Release Version of Project libtestD
|
|
|
|
Go to Build->Set Active Configuration, choose
|
|
"libtestD-Win32 Release" under "Project configurations:", Click "OK".
|
|
|
|
Go to Build->Build libtestD.dll to build release version of Project
|
|
libtestD.
|
|
|
|
2.2 Build Release Version of Project ttsafedll
|
|
|
|
Go to Build->Set Active Configuration, choose "Release" under "Project
|
|
Configurations:", Click "OK".
|
|
|
|
Right-click on project ttsafedll and click "Build" to build release version
|
|
of Project ttsafedll.exe.
|
|
|
|
2.3 Install hdf5dll.dll
|
|
|
|
Invoke a comand prompt, change directory to c:\MYHDFSTUFF\hdf5, run batch
|
|
file install_dll.bat to copy
|
|
c:\MYHDFSTUFF\hdf5\proj\hdf5dll\release\hdf5dll.dll into system directory.
|
|
|
|
2.4 Test Thread-safe Feature of HDF5 Release DLL
|
|
|
|
Set project ttsafedll as the active project file if it is not. Go to
|
|
Build->Execute ttsafedll.exe, the following is the test messages users
|
|
should get:
|
|
|
|
For help use: ttsafedll.exe -help
|
|
Linked with hdf5 version 1.8 release 0
|
|
Testing -- multi-dataset creation (dcreate)
|
|
Testing -- per-thread error stacks (error)
|
|
Testing -- thread cancellation safety test (cancel)
|
|
Testing -- multi-attribute creation (acreate)
|
|
|
|
|
|
All tests were successful.
|
|
|
|
|
|
Cleaning Up temp files...
|
|
|
|
Users who got the same messages as above have successfully built the release
|
|
version of hdf5dll.dll.
|
|
|
|
3. Build, Test and Install HDF5 Library and Tools
|
|
|
|
Go back to Section II, Step I(2) to Build, test and install HDF5 libary and
|
|
tools.
|
|
|
|
========================================================================
|
|
Section X: How to build HDF5 in Visual Studio 2005
|
|
========================================================================
|
|
|
|
The building procedure is almost the same as building HDF5 on .Net 2003.
|
|
Please refer to Section VI: How to build HDF5 in Visual Studio .Net 2003.
|
|
|
|
|
|
========================================================================
|
|
Section XI: How to build HDF5 for 64-bit Windows
|
|
========================================================================
|
|
|
|
HDF5 can be built for 64-bit Windows in Visual Studio .NET 2003 or Visual
|
|
Studio 2005. Visual Studio 2005 offers much greater support, and the build
|
|
process is much more straight-forward, so we recommend all users switch to
|
|
Visual Studio 2005 for 64-bit builds. However, we still provide instruction
|
|
for .NET.
|
|
|
|
Notes:
|
|
|
|
1. 32-bit binaries cannot be linked with 64-bit binaries, and therefore
|
|
external libraries (szip and zlib. and currently not supported. In the
|
|
future we plan to build these libraries natively and offer support.
|
|
|
|
2. Fortran libraries are currently untested and unsupported.
|
|
|
|
3. Building 64-bit HDF5 from a 32-bit machine is also unsupported. Because
|
|
we generate H5tinit.c from a generated 64-bit executable, this must be
|
|
done on a 64-bit machine.
|
|
|
|
|
|
Prerequisites:
|
|
|
|
1. A 64-bit Windows machine. Either AMD64 and Itanium is supported.
|
|
|
|
2. Either Visual Studio .NET or 2005. Visual Studio 2005 is recommended.
|
|
|
|
3. If building with .NET, the lastest version of the Windows Platform SDK
|
|
must be installed. The latest version can be found at:
|
|
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
|
If building with 2005, Visual Studio must have been installed with the
|
|
x64 compiler tools.
|
|
|
|
|
|
Building:
|
|
|
|
1. Copy Windows-related files
|
|
|
|
From the directory .\windows, run copy_hdf.bat. This will copy
|
|
Windows-related files to their neccessarily locations within the source
|
|
directory.
|
|
|
|
2. Open the IDE
|
|
|
|
For Visual Studio 2005, this simply involves opening as normal.
|
|
|
|
In .NET, you must first open a 64-bit build environment command prompt.
|
|
To do this, go to the start menu and open Microsoft Platform SDK,
|
|
Open Build Environment Window, Windows XP 64-bit Build Environment,
|
|
and Set Windows XP x64 Build Env (Retail). This sets up the neccessary
|
|
path for Visual Studio. .NET must then be launched from that command
|
|
prompt. This can be done by issuing the command:
|
|
|
|
start "" "C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\
|
|
Common7\IDE\devenv.exe" /useenv
|
|
|
|
|
|
3. Generate H5tinit.c
|
|
|
|
Follow the instructions in Section XII to generate H5tinit.c
|
|
|
|
4. Build the library
|
|
|
|
4.1 Open the workspace all.sln from the folder .\windows\proj\all. If
|
|
using Visual Studio .NET, this should be launched from the same
|
|
window, or open another window the same way you did in Step 2.
|
|
|
|
4.2 Select the Target Machine
|
|
|
|
In the same way you did in Step 3.2, set the Target Machine for
|
|
64-bit. If using .NET, this needs to be done for all projects
|
|
that produce an executable or dll. You can recognize these because
|
|
in the Property dialog, they have a "Linker" section, rather than
|
|
a "Librarian" section.
|
|
|
|
4.3 Modify Project Settings
|
|
|
|
In .NET, we need to add "bufferoverflowU.lib" as a dependency
|
|
for several projects. You can simply add it to all projects that
|
|
produce an executable or dll, or identify specific projects that
|
|
need it at build-time because they will fail with a link error
|
|
such as:
|
|
error LNK2001: unresolved external symbol __security_cookie
|
|
this library must be explicitly added for that project.
|
|
|
|
4.4 Modify H5pubconf.h
|
|
|
|
Open H5pubconf.h from the .\src directory. Because we are not using
|
|
zlib or szip libraries, we must comment out the following lines:
|
|
|
|
#define H5_HAVE_FILTER_DEFLATE 1
|
|
#define H5_HAVE_ZLIB_H 1
|
|
|
|
#define H5_HAVE_SZLIB_H 1
|
|
#define H5_HAVE_FILTER_SZIP 1
|
|
|
|
4.5 Disable projects
|
|
|
|
In Visual Studio, open the configuration manager and disable
|
|
ttsafedll. If you aren't using the C++ library, you may disable
|
|
those projects as well. For Visual Studio 2005, this must be done
|
|
for both Release and Debug versions.
|
|
|
|
4.6 Build
|
|
|
|
In Visual Studio, select Build, Build Solution. In Visual Studio
|
|
2005, you may build Debug and Release versions, but in .NET, only
|
|
release builds are supported.
|
|
|
|
|
|
Testing:
|
|
|
|
We provide a test suite to verify all libraries and tools were built
|
|
successfully. This test suite should work identically on 32- and 64- bit
|
|
builds.
|
|
|
|
Note that because 64-bit binaries were built, these tests must run on a
|
|
64-bit machine.
|
|
|
|
If built with Visual Studio 2005, simply open a command prompt, and from
|
|
the root hdf5 directory, issue the command "hdf5check". If C++ libraries
|
|
were built, you may test them at the same time with the command
|
|
"hdf5check enablecpp".
|
|
|
|
If built with Visual Studio .NET, debug versions of the library will not
|
|
be present, and the test scripts must be altered by hand to reflect this.
|
|
In a text editor, open hdf5check.bat from the root hdf5 folder, and comment
|
|
or remove test sections for "Debug" or "Debug DLL". The layout is fairly
|
|
straight-forward, but as an alternative, you may manually run each of the
|
|
other various sub- test scripts with the "release" and "release dll"
|
|
parameters.
|
|
|
|
|
|
Installing:
|
|
|
|
We provide a script that will install all headers, libraries, and tools
|
|
into one folder, hdf5lib. From the root hdf5 directory, run the script
|
|
"installhdf5lib.bat". This will create the hdf5lib folder, and create
|
|
subdirectories containing all relevent files. This should work identically
|
|
on 32- an 64-bit Windows.
|
|
|
|
|
|
========================================================================
|
|
Section XII: How to generate H5tinit.c
|
|
========================================================================
|
|
|
|
In HDF5, H5tinit.c is used to to describe the byte-order and floating point
|
|
format of the current machine. On Linux, this is automatically generated.
|
|
On Windows, we provide it pre-genearated, although users may generate their own.
|
|
|
|
It is recommended to generate H5tinit.c on your own if you are using any
|
|
advanced configuration. This might include:
|
|
|
|
- 64-bit Windows
|
|
- File systems other than NTFS
|
|
- Versions of Windows other than Windows XP
|
|
- Run-time libraries other than those distributed with Visual Studio
|
|
|
|
To generate your own H5tinit.c, follow the steps below.
|
|
|
|
1. Open the solution typegen.sln from the folder .\windows\misc\typgen.
|
|
|
|
2. Edit the code
|
|
|
|
Open the source file H5detect.c, and remove or comment the line:
|
|
|
|
siglongjmp(jbuf_g, 1);
|
|
|
|
This function is unsupported on Windows, and will cause Visual Studio
|
|
2005 to crash.
|
|
|
|
3. Build H5tinit.exe
|
|
|
|
Make sure your configuration is set to Debug, and build the project.
|
|
This will generate H5tinit.exe in the .\src folder.
|
|
|
|
4. Create H5tinit.c
|
|
|
|
From a command prompt, go to the .\src directory and issue the command:
|
|
.\H5tinit.exe > H5tinit.c
|
|
This will generate our H5tinit.c file.
|
|
|
|
|
|
Note:
|
|
|
|
If you are building on 64-bit Windows, make sure you set your build
|
|
"Machine Type" to "X64". Also, you will need to comment out any lines
|
|
referencing "siglongjmp", as this function is not present on 64-bit Windows.
|
|
|
|
========================================================================
|
|
Section XIII: Misc.
|
|
========================================================================
|
|
|
|
1. Helpful Pointers
|
|
|
|
Here are some helpful notes if you are not familiar with
|
|
using the Visual C++ Development Environment.
|
|
|
|
1.1 Project name and location issues:
|
|
|
|
It is recommended that you use the given directory structure for building
|
|
HDF5. However, it is possible to create your own structure. If you must
|
|
install all.sln and all.vcproj in another directory, relative to hdf5
|
|
directory, you will be asked to locate the sub-project files, when you open
|
|
the project all.sln.
|
|
|
|
If you want to rename "all" (the entire project), you will need to modify
|
|
two files all.sln and all.vcproj as text (contrary to the explicit warnings
|
|
in the files).
|
|
|
|
|
|
1.2 Settings... details:
|
|
|
|
If you create your own project, the necessary settings can be read
|
|
from the all.vcproj file (as text), or from the Project Settings in the
|
|
Developer Studio project settings dialog.
|
|
|
|
|
|
2. Backward compatibility with 1.6
|
|
If you are going to use 1.6 APIs with 1.8 branch, you may do the
|
|
following two things:
|
|
3.1 Uncomment out /*#define H5_WANT_H5_V1_6_COMPAT 1*/ inside
|
|
h5pubconf.h under windows\src.
|
|
3.2 Set up an environment variable H5_WANT_H5_V1_6_COMPAT to 1,
|
|
this will be used to test compatibility of error APIs.
|
|
Remember to undo 1 and 2 after you test if you are not going to use 1.6
|
|
backward compatibility option.
|
|
|
|
************************************************************************
|
|
Please send email to help@hdfgroup.org for further assistance.
|