[Nexus-developers] Makefiles and NeXus libraries
Mark Koennecke
Mark.Koennecke at psi.ch
Wed Jun 5 07:22:53 BST 2002
Dear Ray,
On Mon, 3 Jun 2002, Ray Osborn wrote:
> To get the new list off to a productive start, I thought I would ask for
> opinions on a couple of changes I was considering posting to the CVS server.
> I have finally produced a working Fortran 90 version of the API (only nine
> months late), so I would like to get version 2.1.0 officially released soon.
>
> The first change is to the component makefiles, e.g. makefile_hdf4, to add
>
> #Edit "makefile_options" to set compiler flags
> include makefile_options
>
> The new file, "makefile_options" includes all the standard Fortran and C
> compile and link options, as well as the locations of the HDF libraries and
> NeXus source files. This localizes all the site-specific information, while
> preserving the flexibility of what versions to compile. Of course, this
> will become redundant when we go over to an autoconf version, but it looks
> as if we should wait until we have released 2.1.0 before doing that.
>
Go ahead with the makefiles. There is only one thing about the version.
As there never was a real 2.0 version, we think the current one is it.
So if you still have files with version 2.1 in it, set it to 2.0.
> The second change is to how we treat the Fortran versions. Since the
> Fortran 77 and Fortran 90 versions put the same symbols in the library, we
> either have to choose which one we use in advance, or build two separate
> libraries. I think the latter makes sense, i.e., we build libNeXus.a and
> libNeXus90.a. The first will be the default version (and the only one that
> C programmers need), while the second will only be built if an explicit
> Makefile option is given, e.g., make f90. Since F90 compilers are not so
> universal, I think this makes more sense.
>
> The above implies that we go back to having just libNeXus.a, not
> libNeXus45.a. We could have libNeXus4.a and libNeXus5.a if it is really
> necessary to know from the name alone what has been linked, but the number
> of potential permutations starts getting rather long. I would prefer that
> libNeXus.a becomes the default again (which should have both HDF4 and HDF5
> linked).
>
OK with me.
> Finally, I would like to simplify the test files. I think we only need
> napi4_test.c, napi5_test.c, napif_test.f, and napi_test_read.c (ignoring the
> F90 one for now). Their names will tell you what version NeXus files they
> will produce, not how they were linked. I think that file names like
> hdf45_4test.c are getting too complicated for the average user (like me).
> Presumably, the tester will know what he/she has linked, and will test the
> appropriate files.
>
Well OK, but do we still need the napi_test_read? The other files
include both reading and writing. So if we are cleaning up, we can
may remove napi_test_read as well.
Regards,
Uwe Filges
Mark Koennecke
More information about the NeXus-developers
mailing list