A CTest script and platform configuration file can be used to simplify building with CMake. The script below will build HDF4 with SZIP, ZLIB, and the JPEG external libraries.
CMake MUST be installed. The configuration scripts were tested with CMake 3.1.
Blank spaces MUST NOT be used in directory path names as this will cause the build to fail.
Visual Studio Express users will not be able to package HDF into an install image executable. Turn off packaging by doing the following:
- Edit HDF4CMake.cmake.
- Uncomment the line with the LOCAL_NO_PACKAGE variable.
- Uncomment the line with -DHDF4_NO_PACKAGES:BOOL=ON.
- Comment out the line with -DHDF4_PACKAGE_EXTLIBS:BOOL=ON.
Please follow the instructions below for building.
Review the preconditions to be sure all needed software is on your machine.
Create a working directory.
Download the appropriate file for your platform to your working directory. Uncompress it. It will contain a CMake-hdf-4.2.12 directory.
Software Comments Windows Contains files to build HDF4 with CMake on Windows Unix Contains files to build HDF4 with CMake on Unix
From the command line, go into the CMake-hdf-4.2.12 directory, which contains:
build*.sh (.bat) Build Script(s) CTestScript.cmake ctest Command hdf-4.2.12/ HDF4 Source Code HDF4config.cmake Configuration file HDF4Examples-0.3.1-Source.tar.gz (.zip) HDF4 Examples JPEG8b.tar.gz External library for JPEG Compression SZip.tar.gz External library for SZIP Compression ZLib.tar.gz External library for ZLIB Compression
Execute the batch file or shell script containing the ctest command for your platform. (See Troubleshooting if you do not see your platform).
Platform Batch File / Shell Script ctest command Windows 64-bit VS 2012 build-VS2012-64.bat ctest -S HDF4config.cmake,BUILD_GENERATOR=VS201264 -C Release -V -O hdf4.log Windows 32-bit VS 2012 build-VS2012-32.bat ctest -S HDF4config.cmake,BUILD_GENERATOR=VS2012 -C Release -V -O hdf4.log Windows 64-bit VS 2013 build-VS2013-64.bat ctest -S HDF4config.cmake,BUILD_GENERATOR=VS201364 -C Release -V -O hdf4.log Windows 32-bit VS 2013 build-VS2013-32.bat ctest -S HDF4config.cmake,BUILD_GENERATOR=VS2013 -C Release -V -O hdf4.log Unix build-unix.sh ctest -S HDF4config.cmake,BUILD_GENERATOR=Unix -C Release -V -O hdf4.log
Where the ctest command is using these options:
- The -S option uses the script version of ctest.
- The -C option specifies the build configuration which matches CTEST_BUILD_CONFIGURATION in the configuration file.
- The -V option indicates verbose. -VV option indicates more verbose.
- The -O option saves the output to a log file, hdf4.log.
The built binary will be placed in the CMake-hdf-4.2.12 directory. It will have the format:
HDF-4.2.12-<platform>.<zip or tar.gz>
On Windows, a .msi or .exe file will also be created, depending on the installer. On Unix, an additional .sh file will be created.
If the built binary is not there, then see Troubleshooting for help.
My platform/compiler is not included. Can I still use the configuration files?
Yes, you can but you will have to edit the HDF4config.cmake file and update the variable:
CTEST_CMAKE_GENERATOROther variables may be updated for informational purposes but are not required (for example, SITE_OS_BITS).
The generators for your platform can be seen by typing:
What do I do if the build fails?
If the build works properly, then you will find the built and compressed binary in your CMake-hdf-4.N.N directory. If you do not find it then check the log files. You will find those in the build directory under CMake-hdf-4.N.N. For example, on Unix the log files will be in:
CMake-hdf-4.N.N/build/Testing/Temporary/There are log files for the configure, test, and build.
What if the binary does not get packaged properly?
If the binary did not get packaged properly, look at the cpack.log file in the build directory under CMake-hdf-4.N.N. For example, on Unix look here:
What do I do if I need to rebuild the software?
If you have to rebuild HDF4, remove the build directory first.
The library was built but there are no binaries. What do I do?
To install or package the binaries, run either make install or cpack in the build/ directory.
- - Last modified: 07 September 2016