diff options
Diffstat (limited to 'c++')
-rw-r--r-- | c++/config/BlankForm | 126 | ||||
-rw-r--r-- | c++/config/commence.in | 155 | ||||
-rw-r--r-- | c++/config/conclude.in | 184 | ||||
-rw-r--r-- | c++/config/depend1.in | 50 | ||||
-rw-r--r-- | c++/config/depend2.in | 11 | ||||
-rw-r--r-- | c++/config/depend3.in | 7 | ||||
-rw-r--r-- | c++/config/depend4.in | 7 | ||||
-rw-r--r-- | c++/config/dependN.in | 4 | ||||
-rw-r--r-- | c++/config/linux-gnu | 4 | ||||
-rw-r--r-- | c++/config/linux-gnulibc1 | 16 | ||||
-rw-r--r-- | c++/config/linux-gnulibc2 | 10 | ||||
-rw-r--r-- | c++/config/solaris2.x | 29 |
12 files changed, 603 insertions, 0 deletions
diff --git a/c++/config/BlankForm b/c++/config/BlankForm new file mode 100644 index 0000000..18933e4 --- /dev/null +++ b/c++/config/BlankForm @@ -0,0 +1,126 @@ +# -*- shell-script -*- +# +# This file is part of the HDF5 build script. It is processed shortly +# after configure starts and defines, among other things, flags for +# the various compile modes. + + +#---------------------------------------------------------------------------- +# Compiler flags. The CPPFLAGS values should not include package debug +# flags like `-DH5G_DEBUG' since these are added with the +# `--enable-debug' switch of configure. +#---------------------------------------------------------------------------- + + +# Choosing a C++ Compiler +# ----------------------- +# +# The user should be able to specify the compiler by setting the CXX +# environment variable to the name of the compiler and any switches it +# requires for proper operation. If CXX is unset then this script may +# set it. If CXX is unset by time this script completes then configure +# will try `g++' and `CC' in that order (perhaps some others too). +# +# Note: Code later in this file may depend on the value of $CXX_BASENAME +# in order to distinguish between different compilers when +# deciding which compiler command-line switches to use. This +# variable is set based on the incoming value of $CC and is only +# used within this file. + +if test -z "$CXX"; then + CXX="/some/default/compiler/named/foo -ansi" + CXX_BASENAME=foo +fi + + +# C++ Compiler and Preprocessor Flags +# ----------------------------------- +# +# Flags that end with `_CXXFLAGS' are always passed to the compiler. +# Flags that end with `_CPPFLAGS' are passed to the compiler when +# compiling but not when linking. +# +# DEBUG_CXXFLAGS Flags to pass to the compiler to create a +# DEBUG_CPPFLAGS library suitable for use with debugging +# tools. Usually this list will exclude +# optimization switches (like `-O') and include +# switches that turn on symbolic debugging +# support (like `-g'). +# +# PROD_CXXFLAGS Flags to pass to the compiler to create a +# PROD_CPPFLAGS production version of the library. These +# usualy exclude symbolic debugging switches +# (like `-g') and include optimization switches +# (like `-O'). +# +# PROFILE_CXXFLAGS Flags to pass to the compiler to create a +# PROFILE_CPPFLAGS library suitable for performance testing (like +# `-pg'). This may or may not include debugging +# or production flags. +# +# CXXFLAGS Flags can be added to this variable which +# might already be partially initialized. These +# flags will always be passed to the compiler +# and should include switches to turn on full +# warnings. HDF5 attempts to be ANSI and Posix +# compliant and employ good programming +# practices resulting in few if any +# warnings. +# +# Warning flags do not have to be added to CFLAGS +# variable if the compiler is the GNU gcc +# compiler or a descendent of gcc such as EGCS or PGCC. +# +# The CFLAGS should contains *something* or else +# configure will probably add `-g'. For most +# systems this isn't a problem but some systems +# will disable optimizations in favor of the +# `-g'. +# +# +# These flags should be set according to the compiler being used. +# There are two ways to check the compiler. You can try using `-v' or +# `--version' to see if the compiler will print a version string. You +# can use the value of $CXX_BASENAME which is the base name of the +# first word in $CXX (note that the value of CXX may have changed +# above). + +case $CXX_BASENAME in + g++) + CXXFLAGS="$CXXFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CXXFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CXXFLAGS="-O3 -fomit-frame-pointer" + PROD_CPPFLAGS= + PROFILE_CXXFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CXXFLAGS="$CXXFLAGS" + DEBUG_CXXFLAGS="-g" + DEBUG_CPPFLAGS= + PROD_CXXFLAGS="-O" + PROD_CPPFLAGS= + PROFILE_CXXFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; +esac + + + +# Overriding Configure Tests +# -------------------------- +# +# Values for overriding configuration tests when cross compiling. +# This includes compiling on some machines where the serial front end +# compiles for a parallel back end. + +# Set this to `yes' or `no' depending on whether the target is big +# endian or little endian. +#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} + +# Set this to the width required by printf() to print type `long +# long'. For instance, if the format would be `%lld' then set it to +# `ll' or if the format would be `%qd' set it to `q'. +#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} diff --git a/c++/config/commence.in b/c++/config/commence.in new file mode 100644 index 0000000..659436d --- /dev/null +++ b/c++/config/commence.in @@ -0,0 +1,155 @@ +##------------------------------------------------------------ -*- makefile -*- +## The following section of this makefile comes from the +## `./config/commence' file which was generated with config.status +## from `./config/commence.in'. +##----------------------------------------------------------------------------- + +## Things that Make needs +.SUFFIXES: +.SUFFIXES: .C .o .lo +@SET_MAKE@ + +## Directories to search +@SEARCH@ + +## Programs +SHELL=/bin/sh +CXX=@CXX@ +CXXFLAGS=@CXXFLAGS@ +CFLAGS=@CFLAGS@ +CPPFLAGS=@CPPFLAGS@ +LDFLAGS=@LDFLAGS@ +ROOT=@ROOT@ +LIBS=@LIBS@ +AR=@AR@ +RANLIB=@RANLIB@ +RM=rm -f +CP=cp +INSTALL=@INSTALL@ +INSTALL_PROGRAM=@INSTALL_PROGRAM@ +INSTALL_DATA=@INSTALL_DATA@ +RUNSERIAL=@RUNSERIAL@ +RUNPARALLEL=@RUNPARALLEL@ +RUNTEST=$(RUNSERIAL) +TRACE=: + +## Installation points +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +libdir=@libdir@ +includedir=@includedir@ +docdir=@exec_prefix@/doc +PUB_LIB=$(LIB) + +## Shared libraries +LT_STATIC_EXEC=@LT_STATIC_EXEC@ +DYNAMIC_DIRS=@DYNAMIC_DIRS@ +LT=$(top_builddir)/libtool +LT_COMPILE=$(LT) --mode=compile $(CXX) +LT_LINK_LIB=$(LT) --mode=link $(CXX) -rpath $(libdir) +LT_LINK_EXE=$(LT) --mode=link $(CXX) $(LT_STATIC_EXEC) -rpath $(bindir) $(DYNAMIC_DIRS) +LT_RUN=$(LT) --mode=execute +LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM) +LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA) +LT_UNINSTALL=$(LT) --mode=uninstall $(RM) + +## Optional variables. We must declare them here because Irix pmake +## complains if it sees a reference to a variable which has never been +## defined. The main makefile is free to redefine these to something else. +DOCDIR=$(docdir) +LIB= +LIB_SRC= +LIB_OBJ= +PUB_HDR= +PUB_PROGS= +PUB_DOCS= +PROGS= +TEST_PROGS= +TEST_FLAGS= +TEST_SCRIPTS= + +## The default is to build the library and/or programs. We must build +## them sequentially. +all: + $(MAKE) lib + $(MAKE) progs + $(MAKE) tests + +## The following rules insure that the Makefile is up-to-date by rerunning +## various autoconf components (although not all versions of make assume +## that the makefile is implicitly a target). We use time stamp files to +## keep track of the most recent update of H5config.h.in and H5config.h +## because autoheader and config.status don't update the modification time +## if the contents don't change. +## Invoke it by "gmake reconfigure". +## +## Graphically, the dependencies are: +## +## configure.in +## | | +## +-----------------+ +------------+ +## | | +## stamp1 configure +## (H5config.h.in) | +## | | | +## | +---------------+ +-----------+ +## | | | +## | config.status +## | | +## | +------------------+ +## | | +## stamp2 +## (H5config.h) Makefile.in et al +## | | +## +------------------+ +-----------+ +## | | +## Makefile +## +## A side effect of updating stamp1 is to generate H5config.h.in and a +## side effect of updating stamp2 is to generate H5config.h. When using +## a version of make that doesn't treat the makefile as the initial target +## the user may want to occassionally type `make Makefile' in any source +## directory. +## The `Makefile' target has been renamed to `reconfigure' so that the +## autoconf and make depend processes do not start up automatically. +## One must do `make reconfigure' explicitedly to start the process. +## (When srcdir is used and if more than one machines are running, +## this automatic Makefile/autoconf can get things unstable.) +## +STAMP1=$(top_builddir)/config/stamp1 +STAMP2=$(top_builddir)/config/stamp2 + +MAKEFILE_PARTS=$(srcdir)/Makefile.in \ + $(top_srcdir)/config/commence.in \ + $(top_srcdir)/config/conclude.in \ + $(top_srcdir)/config/depend1.in \ + $(top_srcdir)/config/depend2.in \ + $(top_srcdir)/config/depend3.in \ + $(top_srcdir)/config/depend4.in \ + $(top_srcdir)/config/dependN.in + +$(STAMP1): $(top_srcdir)/configure.in + touch $(STAMP1) + -cd $(top_srcdir); autoheader + +$(STAMP2): $(STAMP1) $(top_builddir)/config.status + touch $(STAMP2) + -cd $(top_builddir); \ + CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status + +$(top_srcdir)/configure: $(top_srcdir)/configure.in + -cd $(top_srcdir); autoconf + +$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1) + -cd $(top_builddir); ./config.status --recheck + +# rerun the autoconf process if any configure components have changed. +reconfigure: $(MAKEFILE_PARTS) $(STAMP2) + -cd $(top_builddir); CONFIG_HEADERS= ./config.status + +##----------------------------------------------------------------------------- +## The following section of this makefile comes from the middle of +## `Makefile.in' from this directory. It was generated by running +## `config.status'. +##----------------------------------------------------------------------------- diff --git a/c++/config/conclude.in b/c++/config/conclude.in new file mode 100644 index 0000000..790da2d --- /dev/null +++ b/c++/config/conclude.in @@ -0,0 +1,184 @@ +##------------------------------------------------------------ -*- makefile -*- +## The following section of this makefile comes from the +## `./config/conclude' file which was generated with config.status +## from `./config/conclude.in'. +##----------------------------------------------------------------------------- + +## This is the target for the library described in the main body of the +## makefile. +## +lib: $(LIB) +$(LIB) __no_library__: $(LIB_OBJ) + @$(LT_LINK_LIB) -o $@ $(CXXFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS) + +progs: $(LIB) $(PROGS) + +## Build a tags file in this directory. +TAGS: $(LIB_SRC) + $(RM) $@ + -etags $(LIB_SRC) + +## Runs each test in order, passing $(TEST_FLAGS) to the program. +## Since tests are done in a shell loop, "make -i" does apply inside it. +## Set HDF5_Make_Ignore to a non-blank string to ignore errors inside the loop. +tests: $(TEST_PROGS) $(LIB) +check test _test: tests + @for test in $(TEST_PROGS) dummy; do \ + if test $$test != dummy; then \ + echo "============================"; \ + echo "Testing $$test $(TEST_FLAGS)"; \ + echo "============================"; \ + srcdir="$(srcdir)" \ + $(RUNTEST) ./$$test $(TEST_FLAGS) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + break; \ + echo ""; \ + fi; \ + done; \ + test $$test = dummy || false + @for test in $(TEST_SCRIPTS) dummy; do \ + if test $$test != dummy; then \ + echo "============================"; \ + echo "Testing $$test $(TEST_FLAGS)"; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir="$(srcdir)" \ + /bin/sh $$test $(TEST_FLAGS) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + break; \ + echo ""; \ + fi; \ + done; \ + test $$test = dummy || false + +## Make installation directories directories if they don't exist. +$(libdir): + mkdir $@ && chmod 755 $@ + +$(includedir): + mkdir $@ && chmod 755 $@ + +$(bindir): + mkdir $@ && chmod 755 $@ + +$(DOCDIR): + mkdir $@ && chmod 755 $@ + +## Install the library, the public header files, and public programs. +install: $(PUB_LIB) $(PUB_HDR) $(PUB_PROGS) $(libdir) $(includedir) $(bindir) + @for f in X $(PUB_LIB); do \ + if test $$f != X; then \ + ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \ + fi; \ + done + @if test -f libhdf5.settings; then \ + (set -x; $(INSTALL_DATA) libhdf5.settings $(libdir)/. || exit 1); \ + fi + @for f in X $(PUB_HDR); do \ + if test $$f != X; then \ + if test -f $$f; then \ + (set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \ + else \ + (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/. || \ + exit 1); \ + fi; \ + fi; \ + done + @for f in X $(PUB_PROGS); do \ + if test $$f != X; then \ + ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ + fi; \ + done + +## Install the documents. +install-doc: $(PUB_DOCS) $(DOCDIR) + @for d in X $(SUBDIRS); do \ + if test $$d != X; then \ + (set -x; cd $$d && $(MAKE) $@) || exit 1; \ + fi; \ + done + @for f in X $(PUB_DOCS); do \ + if test $$f != X; then \ + if test -f $$f; then \ + (set -x; $(INSTALL_DATA) $$f $(DOCDIR)/. || exit 1); \ + else \ + (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(DOCDIR)/. || \ + exit 1); \ + fi; \ + fi; \ + done + +## Removes those things that `make install' (would have) installed. +uninstall: + @for f in libhdf5.settings $(LIB); do \ + $(LT_UNINSTALL) $(libdir)/$$f; \ + done + @if test "X$(PUB_HDR)" != X; then \ + set -x; cd $(includedir) && $(RM) $(PUB_HDR); \ + fi + @for f in X $(PUB_PROGS); do \ + if test $$f != X; then \ + $(LT_UNINSTALL) $(bindir)/$$f; \ + fi; \ + done + +## Removes those things that `make install-doc' (would have) installed. +uninstall-doc: + @for d in X $(SUBDIRS); do \ + if test $$d != X; then \ + (set -x; cd $$d && $(MAKE) $@) || exit 1; \ + fi; \ + done + @if test "X$(PUB_DOCS)" != X; then \ + set -x; cd $(DOCDIR) && $(RM) $(PUB_DOCS); \ + fi + +## Removes temporary files without removing the final target files. That is, +## remove things like object files but not libraries or executables. +## +mostlyclean: + -$(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o) + -$(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o) + -$(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN) + +## Like `mostlyclean' except it also removes the final targets: things like +## libraries and executables. This target doesn't remove any file that +## is part of the HDF5 distribution. +## +clean: mostlyclean + -$(RM) $(LIB) $(TEST_PROGS) $(PROGS) $(CLEAN) + -$(RM) -r .libs + +## Like `clean' except it also removes files that were created by running +## configure. If you've unpacked the source and built HDF5 without creating +## any other files, then `make distclean' will leave only the files that were +## in the distribution. +## +distclean: clean + -$(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN) + @if test -f $(srcdir)/Makefile.in; then \ + (set -x; $(RM) Makefile); \ + fi + + +## Like `distclean' except it deletes all files that can be regenerated from +## the makefile, including those generated from autoheader and autoconf. +## +maintainer-clean: distclean + -$(RM) *~ core core.* *.core *.bak *.contrib gmon.out + +## Implicit rules +.C.o: + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< + +.C.lo: + @$(LT_COMPILE) $(CXXFLAGS) $(CPPFLAGS) -c $< + +##----------------------------------------------------------------------------- +## The following section of this makefile contains dependencies between the +## source files and the header files. +##----------------------------------------------------------------------------- +.PHONY: dep depend +dep depend: $(srcdir)/Dependencies + +@DEPEND@ diff --git a/c++/config/depend1.in b/c++/config/depend1.in new file mode 100644 index 0000000..e07f4bf --- /dev/null +++ b/c++/config/depend1.in @@ -0,0 +1,50 @@ +## -*- makefile -*- + +## We keep a list of dependencies in `.depend' for each of the source +## files on which it depends. When one of the source files is modified +## we remove its record from .depend and regenerate its dependencies, +## tacking them onto the end of .depend. By including the .depend file +## into the makefile, we're telling make that the makefile depends on +## the dependency list in the .depend file. +## +## This is as fast as the `.d' method described in the GNU make manual +## for automatic dependencies, but has the added advantage that all +## dependencies are stored in one place. The advantage over the +## `makedepend' program is that only those files that are out of date +## have dependency information rebuilt, and the Makefile is not +## modified. +## +## This is also where tracing information is updated. The $(TRACE) +## program is run on each source file to make sure that the H5TRACE() +## macros are up to date. If they are then the file is not modified, +## otherwise the file is changed and a backup is saved by appending a +## tilde to the file name. +## +$(srcdir)/Dependencies: .depend + @if test "$(srcdir)" != "."; then \ + echo '## This file is machine generated on GNU systems.' >$@; \ + echo '## Only temporary changes may be made here.' >>$@; \ + echo >>$@; \ + perl -p $(top_srcdir)/bin/distdep .depend >>$@; \ + else \ + echo 'Dependencies cannot be built when $$srcdir == $$builddir'; \ + fi + +.depend: $(LIB_SRC) $(TEST_SRC) $(PROG_SRC) + @touch .depend + @for dep in $? dummy; do \ + if [ $$dep != "dummy" ]; then \ + echo Building dependencies for $$dep; \ + obj=`basename $$dep .c`.lo; \ + sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \ + $(TRACE) $$dep; \ + $(CC) -M -MG $(CPPFLAGS) $$dep 2>/dev/null | \ + sed 's% $(srcdir)/% $$(srcdir)/%g' | \ + sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \ + sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \ + sed 's/\.o/.lo/' >>$@; \ + fi; \ + done; + +-include .depend + diff --git a/c++/config/depend2.in b/c++/config/depend2.in new file mode 100644 index 0000000..f67914f --- /dev/null +++ b/c++/config/depend2.in @@ -0,0 +1,11 @@ +## -*- makefile -*- + +## This platform doesn't support automatic dependencies because we're +## not using GNU gcc. GNU gcc is needed in order to generate the list +## of header files included by a source file. + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +-include $(srcdir)/Dependencies diff --git a/c++/config/depend3.in b/c++/config/depend3.in new file mode 100644 index 0000000..e856bc5 --- /dev/null +++ b/c++/config/depend3.in @@ -0,0 +1,7 @@ +## -*- makefile -*- + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +.include <$(srcdir)/Dependencies> diff --git a/c++/config/depend4.in b/c++/config/depend4.in new file mode 100644 index 0000000..b0324d9 --- /dev/null +++ b/c++/config/depend4.in @@ -0,0 +1,7 @@ +## -*- makefile -*- + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +include $(srcdir)/Dependencies diff --git a/c++/config/dependN.in b/c++/config/dependN.in new file mode 100644 index 0000000..7ece270 --- /dev/null +++ b/c++/config/dependN.in @@ -0,0 +1,4 @@ +## -*- makefile -*- + +## Automatic dependencies are not being used and we cannot include other +## files. diff --git a/c++/config/linux-gnu b/c++/config/linux-gnu new file mode 100644 index 0000000..d139966 --- /dev/null +++ b/c++/config/linux-gnu @@ -0,0 +1,4 @@ +# -*- shell-script -*- +# This is the same as linux-gnulibc1 + +. $srcdir/config/linux-gnulibc1 diff --git a/c++/config/linux-gnulibc1 b/c++/config/linux-gnulibc1 new file mode 100644 index 0000000..4b7ac40 --- /dev/null +++ b/c++/config/linux-gnulibc1 @@ -0,0 +1,16 @@ +# -*- shell-script -*- +# +# This file is part of the HDF5 build script. It is processed shortly +# after configure starts and defines, among other things, flags for +# the various compile modes. +# +# See BlankForm in this directory for details. + +# The default compiler is `g++'. +if test -z "$CXX"; then + CXX=g++ + CXX_BASENAME=g++ +fi + +# Figure out compiler flags +#. $srcdir/config/gnu-flags diff --git a/c++/config/linux-gnulibc2 b/c++/config/linux-gnulibc2 new file mode 100644 index 0000000..4551fb6 --- /dev/null +++ b/c++/config/linux-gnulibc2 @@ -0,0 +1,10 @@ +# -*- shell-script -*- +# +# This file is part of the HDF5 build script. It is processed shortly +# after configure starts and defines, among other things, flags for +# the various compile modes. +# +# See BlankForm in this directory for details. + +# Same as with gnulibc1 for now +. $srcdir/config/linux-gnulibc1 diff --git a/c++/config/solaris2.x b/c++/config/solaris2.x new file mode 100644 index 0000000..1ff0005 --- /dev/null +++ b/c++/config/solaris2.x @@ -0,0 +1,29 @@ +# -*- shell-script -*- +# +# This file is part of the HDF5 build script. It is processed shortly +# after configure starts and defines, among other things, flags for +# the various compile modes. +# +# See BlankForm in this directory for details + +# The default compiler is `sunpro cc' +if test -z "$CXX"; then + CXX=CC + CXX_BASENAME=CC +fi + +# Try gcc compiler flags +#. $srcdir/config/gnu-flags + +# Try solaris native compiler flags +if test -z "$cxx_flags_set"; then + CFLAGS="-erroff=%none" + LIBS="$LIBS -lsocket" + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O -s" + PROD_CPPFLAGS= + PROFILE_CFLAGS=-xpg + PROFILE_CPPFLAGS= + cxx_flags_set=yes +fi |