mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-09 07:32:32 +08:00
98362b664c
General shared library improvements for CYGWIN / AIX Description: Shared libraries are disabled on both CYGWIN and AIX due to inability to build them correctly. Part of the problem in both of these situations is the lack of the libtool flag -no-undefined, which tells libtool that all needed symbols are defined at link time (a requirement on these systems) and that it's okay to build shared libraries. Another problem are lack of dependencies between wrapper libraries and core C HDF5 library. This patch addresses both of these by fixing configure to add in -no-undefined flag for libtool during linking and adds automake dependencies in the Makefile.am files. After testing, both CYGWIN and AIX now generate shared libraries, but there are still some test failures in each. (cache_api, dt_arith, and testerror.sh on CYGWIN, and fortran tests on AIX). Even though the shared libraries are not quite perfect, this is a general improvement to what we had before, so I'm applying the patch anyways. Note that default behavior of shared libraries on these systems being disabled has NOT been changed and requires the use of the --enable-unsupported to attempt to build them. We will need to address the test failures in each architecture prior to formally supporting shared libraries on each. Tested: h5committested & CYGWIN tested (on bangan) (AIX tested by Albert on bp-login2)
113 lines
4.8 KiB
Plaintext
113 lines
4.8 KiB
Plaintext
## config/commence.am
|
|
## (Use double hashes for copyright notice so that automake treats it as
|
|
## comments and does not pass it to Makefile.in)
|
|
## Copyright by The HDF Group.
|
|
## Copyright by the Board of Trustees of the University of Illinois.
|
|
## All rights reserved.
|
|
##
|
|
## This file is part of HDF5. The full HDF5 copyright notice, including
|
|
## terms governing use, modification, and redistribution, is contained in
|
|
## the files COPYING and Copyright.html. COPYING can be found at the root
|
|
## of the source code distribution tree; Copyright.html can be found at the
|
|
## root level of an installed copy of the electronic HDF5 document set and
|
|
## is linked from the top-level documents page. It can also be found at
|
|
## http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
|
|
## access to either file, you may request a copy from help@hdfgroup.org.
|
|
|
|
|
|
## Textually included in the beginning of every HDF5 Makefile.am
|
|
## Contains definitions, etc. used across multiple Makefiles.
|
|
|
|
# Shell commands used in Makefiles
|
|
RM=rm -f
|
|
CP=cp
|
|
|
|
# Some machines need a command to run executables; this is that command
|
|
# so that our tests will run.
|
|
# We use RUNEXEC instead of RUNSERIAL directly because it may be that
|
|
# some tests need to be run with a different command. Older versions
|
|
# of the makefiles used the command
|
|
# $(LIBTOOL) --mode=execute
|
|
# in some directories, for instance.
|
|
RUNEXEC=$(RUNSERIAL)
|
|
|
|
# Libraries to link to while building
|
|
LIBHDF5=$(top_builddir)/src/libhdf5.la
|
|
LIBH5TEST=$(top_builddir)/test/libh5test.la
|
|
LIBH5F=$(top_builddir)/fortran/src/libhdf5_fortran.la
|
|
LIBH5FTEST=$(top_builddir)/fortran/test/libh5test_fortran.la
|
|
LIBH5CPP=$(top_builddir)/c++/src/libhdf5_cpp.la
|
|
LIBH5TOOLS=$(top_builddir)/tools/lib/libh5tools.la
|
|
LIBH5_HL=$(top_builddir)/hl/src/libhdf5_hl.la
|
|
LIBH5F_HL=$(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la
|
|
LIBH5CPP_HL=$(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
|
|
|
|
# Install directories that automake doesn't know about
|
|
docdir = $(exec_prefix)/doc
|
|
|
|
# Note that in svn revision 19400 the '/' after DESTDIR in H5* variables below
|
|
# has been removed. According to the official description of DESTDIR by Gnu at
|
|
# http://www.gnu.org/prep/standards/html_node/DESTDIR.html, DESTDIR is
|
|
# prepended to the normal and complete install path that it precedes for the
|
|
# purpose of installing in a temporary directory which is useful for building
|
|
# rpms and other packages. The '/' after ${DESTDIR} will be followed by another
|
|
# '/' at the beginning of the normal install path. When DESTDIR is empty the
|
|
# path then begins with '//', which is incorrect and causes problems at least for
|
|
# Cygwin.
|
|
|
|
# Scripts used to build examples
|
|
# If only shared libraries have been installed, have h5cc build examples with
|
|
# shared libraries instead of static libraries
|
|
H5CC=${DESTDIR}$(bindir)/h5cc
|
|
H5CC_PP=${DESTDIR}$(bindir)/h5pcc
|
|
H5FC=${DESTDIR}$(bindir)/h5fc
|
|
H5FC_PP=${DESTDIR}$(bindir)/h5pfc
|
|
H5CPP=${DESTDIR}$(bindir)/h5c++
|
|
|
|
|
|
# H5_CFLAGS holds flags that should be used when building hdf5,
|
|
# but which should not be exported to h5cc for building other programs.
|
|
# AM_CFLAGS is an automake construct which should be used by Makefiles
|
|
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
|
|
# This applies to FCFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS as well.
|
|
|
|
AM_CFLAGS=@AM_CFLAGS@ @H5_CFLAGS@
|
|
AM_FCFLAGS=@AM_FCFLAGS@ @H5_FCFLAGS@
|
|
AM_CXXFLAGS=@AM_CXXFLAGS@ @H5_CXXFLAGS@
|
|
AM_CPPFLAGS=@AM_CPPFLAGS@ @H5_CPPFLAGS@
|
|
AM_LDFLAGS=@AM_LDFLAGS@ @H5_LDFLAGS@
|
|
|
|
ACLOCAL_AMFLAGS="-I m4"
|
|
|
|
# The trace script; this is used on source files from the C library to
|
|
# insert tracing macros.
|
|
TRACE=perl $(top_srcdir)/bin/trace
|
|
|
|
# Make sure that these variables are exported to the Makefiles
|
|
F9XMODEXT=@F9XMODEXT@
|
|
F9XMODFLAG=@F9XMODFLAG@
|
|
|
|
# Set the paths for AFS installs of autotools for Linux machines
|
|
# Ideally, these tools should never be needed during the build.
|
|
AUTOCONF=/home1/packages/autoconf/autoconf-2.60/bin/autoconf
|
|
AUTOMAKE=/home1/packages/automake/automake-1.9.6/bin/automake-1.9
|
|
AUTOHEADER=/home1/packages/autoconf/autoconf-2.60/bin/autoheader
|
|
ACLOCAL=/home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
|
|
|
|
# .chkexe files are used to mark tests that have run successfully.
|
|
# .chklog files are output from those tests.
|
|
# *.clog are from the MPE option.
|
|
CHECK_CLEANFILES=*.chkexe *.chklog *.clog
|
|
|
|
# List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
|
|
# This tells the Makefiles that these targets are not files to be built but
|
|
# commands that should be executed even if a file with the same name already
|
|
# exists.
|
|
.PHONY: build-check-clean build-check-p build-check-s build-lib build-progs \
|
|
build-tests check-clean check-install check-p check-s check-vfd \
|
|
install-doc lib progs tests uninstall-doc _exec_check-s _test help
|
|
|
|
help:
|
|
@$(top_srcdir)/bin/makehelp
|
|
|