Opened 15 years ago
Closed 15 years ago
#2609 closed defect (fixed)
hdf4 and hdf4-eos drivers will not build
Reported by: | arb | Owned by: | warmerdam |
---|---|---|---|
Priority: | highest | Milestone: | 1.5.4 |
Component: | GDAL_Raster | Version: | unspecified |
Severity: | blocker | Keywords: | hdf4 |
Cc: | dron |
Description
The hdf4 and hdf-eos drivers do not build. Tested against hdf4.2r3 (the latest).
Some fixes in trunk have not yet made it into 1.5.3, eg. UNKNOWN changed to H4ST_UNKNOWN
Some fixes are still required, i.e. MAX_VAR_DIMS should be H4_MAX_VAR_DIMS, MAX_NC_DIMS should be H4_MAX_NC_DIMS, MAX_NC_NAME should be H4_MAX_NC_NAME.
Attachments (1)
Change History (10)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
If we change MAX_VAR_DIMS -> H4_MAX_VAR_DIMS, etc. , it builds with a hdf4.2r3 built in both --enable-netcdf and --disable-netcdf mode. However, the H4_ macros don't exist in older hdf4 releases, for example they don't exist in 4.1r4 which is installed with my ubuntu 8.04. So there's a need for some conditionnal test on the hdf4 library version if we want to support building on both versions.
comment:3 by , 15 years ago
Or just do this after the hdf includes ?
#ifndef H4_MAX_VAR_DIMS #define H4_MAX_VAR_DIMS MAX_VAR_DIMS #endif
comment:4 by , 15 years ago
Cc: | added |
---|---|
Component: | default → GDAL_Raster |
Keywords: | hdf4 added |
Yes, indeed. I'm attaching a patch against trunk that enables to build the HDF4 driver against hdf4.1r4 and hdf4.2r3. I've added a hdf4compat.h to define the H4_xxx macros if necessary.
CC'ing Andrey to let him apply if appropriate.
by , 15 years ago
Attachment: | hdf4.patch added |
---|
comment:5 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I have applied suggested fixes, see r15522. Should it go in 1.5 too?
comment:6 by , 15 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I reopen since hdf4compat.h in frmts/hdf4 has been forgotten to be commited.
As for commiting this to 1.5, it seems that a few people on the mailing list seem to be interessed by that. But it looks like some other changes made in trunk should be applied too, like the UNKNOWN -> H4ST_UNKNOWN
comment:8 by , 15 years ago
Maybe worth backporting those changes in 1.5 branch, likely for 1.5.4 now.
comment:9 by , 15 years ago
Milestone: | → 1.5.4 |
---|---|
Resolution: | → fixed |
Status: | reopened → closed |
Needed fixes backported in branches/1.5 in r15557
In fact, it depends on how hdf4.2r3 has been built.
If hdf4.2r3 is built after a ./configure --prefix=/path/to/installation-dir, then the HDF4 driver builds fine.
But if hdf4.2r3 is built after a ./configure --disable-netcdf --prefix=/path/to/installation-dir, the above changes are necessary. Note : UNKNOWN is already renamed in H4ST_UNKNOWN in trunk