In the previous revision, dsets.cpp was moved from a standalone
program into testhdf5.cpp to be consistent with the rest of the
tests. Makefiles were left out by mistake.
Platform tested:
Verified on Linux/32 2.6 (jam)
Description:
Fixed CommonFG::getComment and CommonFG::getLinkval to provide
default values for buffer size to improve usability.
Added test file tlinks.cpp, which only contains test for getLinkval
and will expand when C++ wrappers for H5L functions are implemented.
Platforms tested:
Linux/32 2.6 (jam)
FreeBSD/64 6.3 (liberty)
SunOS 5.10 (linew)
CFLAGS overhaul
Description:
Modified the way configure handles CFLAGS.
(note: all changes also apply to FCFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS).
1. The configure process will now always preserve a user's CFLAGS
environment variable setup. Any additional flags necessary for compilation
added at configure time will be passed into the Makefiles as AM_CFLAGS,
which is an automake construct to be used in addition to CFLAGS.
This will allow a user to have the final say, as CFLAGS will always appear
later in the compile line than AM_CFLAGS. Additionally, setting CFLAGS
during make will no longer completely erase all flags set by configure,
since they're maintained in AM_CFLAGS.
2. Additionally, where possible, flags previously being assigned directly
into CFLAGS (and thus propagating into h5cc) have now been redirected into
H5_CFLAGS, so they're used ONLY for compiling hdf5, and not embedded into
the h5cc wrapper script as well.
*Note that H5_CFLAGS ultimately is assigned into AM_CFLAGS for use in the
Makefiles. Complete description of changes and build process will be
included in a Configure Document that Elena and I are working on.
3. Removed unsupported config files. This includes:
config/dec-osf*
config/hpux11.00
config/irix5.x
config/powerpc-ibm-aix4.x
config/rs6000-ibm-aix5.x
config/unicos*
4. Modified configure summary to display additional values. Specifically,
appropriate AM_* variables are being shown, as well as H5_FCFLAGS and
H5_CXXFLAGS, which were for some reason not already present.
Tested:
- H5committest
- Tested on all THG / NCSA machines, using several combinations of the more
prominent configure options (c++, fortran, szip, threadsafe, parallel,
et cetera). (Thanks to Quincey for rysnc testing setup!)
- With regards to new automated testing, anything *necessary* for
compilation will be caught by the daily tests as it stands now. (i.e.,
if LDFLAGS is not properly set when szip is used, linking will fail).
Additionally, with regards to which flags get into h5cc, if any
*necessary* flags have been improperly removed, then daily tests should
fail during make installcheck. Additional machine-specific desired
behaviors and/or checks may have to be set up separately within the
daily tests, so this is something to work on.
Description:
The fortran Makefile.am used HDF_FORTRAN to indicate it is part of the
Fortran API source so that conclude.am will give fortran api prefix in the
test output. The symbox HDF_FORTRAN is also used in configure for a different
purpose (indicated --enable-fortran). They conflicted.
Similar problem for the symbol HDF_CXX.
Solution:
Changed all the involved Makefile.am to use "FORTRAN_API" instead. It is
a more appropriate name. Same for CXX_API.
Along the way, discovered that the Makefile.am of hl/fortran/test and
hl/cxx/test did not have those symbols at all. Added them in.
Platform tested:
Kagiso only. It is a trivia change.
Description: IRIX64 failed to build tools/h5import, as well as c++/test
with szip. This is because IRIX is very picky when it comes
to linking libraries, and must be done in specific order.
(other UNIXes are not as such, and thus the problem wasn't
present).
Solution: Rearrange the order in which the libraries are
linked on the compiler line by sorting the line that
assigns libraries into the LDADD variable in the Makefile.am's
of the two respective directories.
Tested: IRIX64, kagiso, smirom
Description:
- Added a brief test for DSetCreatPropList::setSzip. More through tests
will be added later.
- Moved check_values from dsets.cpp into h5cpputil.cpp for sharing
with other tests.
Platforms tested
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
Linux 2.6 (kagiso)
Description:
Added
* tests for some generic datatype operations
* tests for compound datatype operations
These tests are checked in now to make sure they're safe! They can
use some more comments and minor cleanups. Will do very soon.
Fixed few minor typos.
Platforms tested
AIX 5.1 (copper)
SunOS 5.8 64-bit (sol)
HPUX 11.00 (kelgia)
Code cleanup
Description:
Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.
Platforms tested:
None necessary, whitespace only change
Configuration feature
Description:
'make install' now tests both static and shared libraries if both are installed.
Solution:
Previously, shared libraries were only tested when static libraries were not installed.
Also cleaned up line in commence.am that was including HL library in all Makefiles.
Platforms tested:
mir (Makefile change only)
new feature
Description:
1) separated the HL library into "public" and "private" header files, with the same caracteristics as the basic library
2) added the public headers to hdf5.h (with a conditional include macro, defined in configure.in)
3) added the path to HL in all Makefile.am 's , because of the inclusion in hdf5.h
Solution:
Platforms tested:
linux 32, 64
AIX
solaris
with fortran and c++
(one packet table example fails)
Misc. update:
Bug fix
Description:
Disabled C++ shared libraries for Sun Workshop compiler.
Solution:
This bug only seems to happen when using the -xarch=v9 flag to compile in
64-bit mode, but disabling shared libraries entirely for this compiler is
an easier fix (I don't know how to detect 64 bit mode from the command line).
The framework for disabling shared libraries for other C++ compilers is
in place.
Platforms tested:
sol, mir, sleipnir, modi4
Bug fix
Description:
Building with --disable-static seems to have been broken on several platforms.
Fixed this.
Configure will now disable shared libraries automatically when using pgf90
or when building on Cygwin.
Solution:
To avoid errors when using shared libraries with pgf90 (which I had not
realized were compiler-specific), I had manually set convenience libraries
to use the -static linking flag. Apparently, this is not necessary, and
caused these libraries to be created as empty archives when --disable-static
was used.
Also, some libraries were including other libraries, which was not
necessary.
I also fixed code in configure.in to correctly detect whether shared
or static libraries are enabled, and moved code that disables shared libraries
to before libtool is created (rather than editing libtool after the fact).
Despite repeated warnings that only one shared library can be linked at a
time, I have yet to have shared libraries break the linking of tests on
any system. We'll see if the Daily Tests turn up anything.
Platforms tested:
mir (fortran, C++), sleipnir (C++), modi4 (fortran, C++, parallel),
sol (fortran, C++), cygwin
Feature: check-clean target
Description:
'make check-clean' cleans up output files from tests.
Solution:
Tests create foo.chkexe and foo.log files. Scripts create foo.chksh and
foo.logsh files. 'make check-clean' will clean these files up so that
the tests can be re-run.
Also suppressed some not-very-useful output of Makefiles when it would
echo commands.
Platforms tested:
mir, sleipnir, modi4
Misc. update:
Configuration feature
Description:
Serial test output is now stored in log files and printed when all tests
in a directory complete, or when a test fails. This should make test output
more readable and useful.
Also made changes to clean up ii_files directories that are created by some
C++ compilers/linkers.
Also fixed a few minor Makefile bugs.
Solution:
When serial tests run, their output is saved in *.log or *.logsh. While
running, tests only print when they begin and when they complete; their
more specific output (from the log file) is printed if the test fails or
when all tests have completed.
Comments welcome.
Platforms tested:
mir, modi4 (parallel and serial), copper, shanti
Output tweak
Description:
Test output in C++ and Fortran directories now puts "C++ API:" or
"Fortran API:" in front of the name of the test being run.
I had overlooked the line of code that caused this to happen.
Solution:
Added HDF_CXX and HDF_FORTRAN variables to C++ and Fortran Makefiles.am.
Platforms tested:
heping (minor change)
Bug fix
Description:
C++ tests would die with strange linking-type errors.
Solution:
C++ build needs to be static, too. Applied -static flags liberally in
c++/src and c++/test directories.
Platforms tested:
sleipnir, heping
Bug fix
Description:
c++/src directory was having trouble finding main HDF5 library.
Solution:
Replaced AM_CPPFLAGS with INCLUDES to include files in main src directory.
Platforms tested:
mir, modi4, verbena
Configuration feature
Description:
HDF5 now uses automake to generate Makefiles
Solution:
Makefile.in files are now generated from Makefile.am files.
To reconfigure (after chaning a Makefile.am or configure.in):
/bin/sh bin/reconfigure.sh
Platforms tested:
Many