Files
hdf5/docs/INSTALL_Cygwin.md
Scot Breitenfeld 05676d1abe Consolidate documentation under docs/ directory (#6310)
* Consolidate documentation under doc/ directory

Move user-facing guides from release_docs/ and doxygen/ into a single
doc/ root. release_docs/ now holds only release artifacts (changelogs,
history, release process, maintainer info).

- git mv release_docs/INSTALL*.md, USING_*.md, README_HPC.md,
  BuildSystemNotes.md, AutotoolsToCMakeOptions.md,
  HDF5_Library_2.0.0_Migration_Guide.md → doc/
- git mv doxygen/ → doc/doxygen/
- Update CMakeLists.txt: HDF5_DOXYGEN_DIR and add_subdirectory path
- Update CMakeInstallation.cmake: all install paths for moved files
- Update bin/make_vers: hardcoded doxygen/ path substitution
- Update doc/doxygen/CMakeLists.txt: EXAMPLES_DIRECTORY and comments
- Update README.md, CONTRIBUTING.md, SECURITY.md, config/README.md,
  release_docs/RELEASE_PROCESS.md: links to moved files
- Update doxygen .dox files: release_docs/ URLs for moved guides
- Rewrite release_docs/README.md for narrowed scope

* Add HDF5_DOCS_DIR variable for doc/ root path

Introduce HDF5_DOCS_DIR = \${HDF5_SOURCE_DIR}/doc so that
CMakeInstallation.cmake and future callers reference the doc/
directory symbolically rather than by hardcoded path.
HDF5_DOXYGEN_DIR is now derived from HDF5_DOCS_DIR.
2026-03-31 17:01:54 -06:00

123 lines
4.4 KiB
Markdown

# HDF5 Build and Install Instructions for Cygwin
This document is an instruction on how to build, test and install HDF5 library on Cygwin.
> **NOTE:** HDF5 2.0 and later requires CMake for building. See
> [INSTALL_CMake.md](./INSTALL_CMake.md)` for complete build instructions using
> CMake Presets (recommended method).
---
## Table of Contents
* [Preconditions](#preconditions)
* [Build, Test and Install HDF5 on Cygwin](#build-test-install)
---
<a id="preconditions"></a>
## Preconditions
### 1. Cygwin 3.5.1 or higher Installed
To install the Cygwin net release, go to [http://www.cygwin.com](http://www.cygwin.com) and click on `setup-x86_64.exe` under the heading "Current Cygwin DLL version". This will download a GUI installer called `setup-x86_64.exe` which can be run to download a complete Cygwin installation via the internet. Then follow the instructions on each screen to install Cygwin.
Cygwin uses packages to manage installing various software. Users can choose to install or uninstall certain packages by running `setup.exe`. [http://www.cygwin.com/packages/](http://www.cygwin.com/packages/) provides detailed information about Cygwin packages.
Most required dependencies can be satisfied by installing all packages in the **"Devel"** category. However, please verify that you have installed all packages listed below.
### 2. Compilers, Libraries and Utilities Installed
#### 2.1 Compilers Supported
The following compilers are supported by HDF5 and included in the Cygwin package system:
* `gcc`, which includes:
* `gcc-core` : C compiler
* `gcc-g++` : C++ compiler
* `gcc-fortran` : Fortran compiler
##### 2.1.1 Using Compilers Not Supported
By default, the current configuration uses vendor compilers; to use another compiler run the following commands before running configure:
```bash
setenv CC "foo -flags"
setenv FC "fffoo -flags"
```
For example, if users want to use `pgf90` as a fortran compiler, then:
```bash
setenv FC pgf90
```
> **Note:** See the configure help page (`configure --help`) for a list of environment variables that have an effect on building the library.
#### 2.2 HDF5 External Library Dependencies
* **2.2.1 zlib:** `zlib-1.2.8` or later is supported and tested.
* **2.2.2 Szip:** `libaec-1.1.2` or later is supported and tested.
#### 2.3 Additional Utilities
The following standard utilities are also required to build and test HDF5:
* `bison` : yacc implementation
* `flex` : flex utility
* `make` : make utility
#### 2.4 Alternate Build Process
Download the CMake package and follow the notes in the [INSTALL_CMake.md](./INSTALL_CMake.md) file to build HDF5 with the CMake utilities.
---
<a id="build-test-install"></a>
## Build, Test and Install HDF5 on Cygwin
### 1. Get HDF5 source code package
Users can download the HDF5 source code from the official GitHub repository:
[https://github.com/HDFGroup/hdf5](https://github.com/HDFGroup/hdf5).
### 2. Unpacking the distribution
The HDF5 source code is distributed in a variety of formats which can be unpacked with the following commands, each of which creates an `hdf5-2.0.x` directory.
**2.1 Non-compressed tar archive (*.tar)**
```bash
tar xf hdf5-2.0.x.tar
```
**2.2 Gzip'd tar archive (*.tar.gz)**
```bash
gunzip < hdf5-2.0.x.tar.gz | tar xf -
```
**2.3 Bzip'd tar archive (*.tar.bz2)**
```bash
bunzip2 < hdf5-2.0.x.tar.bz2 | tar xf -
```
### 3. Setup Environment
In Cygwin, most compilers and settings are automatically detected during the configure script. However, if you are building Fortran, we recommend that you explicitly set the `FC` variable in your environment to use the `gfortran` compiler. For example, issue the command:
```bash
export FC=gfortran
```
### 4. Follow build and test steps
Follow build and test steps in the [INSTALL_CMake.md](./INSTALL_CMake.md) file.
### 5. Check installed HDF5 library
After installation, go to your installation directory. There should be three subdirectories: `bin`, `include`, and `lib`.
### 6. Known Problems
* `cache_api` tests may fail. This is a known issue with Cygwin.
* `make check` fails when building shared lib files is enabled. The default on Cygwin has been changed to disable shared libraries. It can be enabled with the `BUILD_SHARED_LIBS` configure option but is likely to fail `make check` with GCC compilers.
---
**For further assistance:**
* **HDF Forum:** [https://forum.hdfgroup.org/](https://forum.hdfgroup.org/)
* **HDF Helpdesk:** [https://help.hdfgroup.org/](https://help.hdfgroup.org/)