[svn-r2904] Purpose:

Adding some of the config stuff. Binh-Minh should go through the
	others (and these) to see if they are correct.
This commit is contained in:
Bill Wendling 2000-11-14 18:16:41 -05:00
parent 8767d3db38
commit e558d37f0f
12 changed files with 603 additions and 0 deletions

126
c++/config/BlankForm Normal file
View File

@ -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'}

155
c++/config/commence.in Normal file
View File

@ -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'.
##-----------------------------------------------------------------------------

184
c++/config/conclude.in Normal file
View File

@ -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@

50
c++/config/depend1.in Normal file
View File

@ -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

11
c++/config/depend2.in Normal file
View File

@ -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

7
c++/config/depend3.in Normal file
View File

@ -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>

7
c++/config/depend4.in Normal file
View File

@ -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

4
c++/config/dependN.in Normal file
View File

@ -0,0 +1,4 @@
## -*- makefile -*-
## Automatic dependencies are not being used and we cannot include other
## files.

4
c++/config/linux-gnu Normal file
View File

@ -0,0 +1,4 @@
# -*- shell-script -*-
# This is the same as linux-gnulibc1
. $srcdir/config/linux-gnulibc1

16
c++/config/linux-gnulibc1 Normal file
View File

@ -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

10
c++/config/linux-gnulibc2 Normal file
View File

@ -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

29
c++/config/solaris2.x Normal file
View File

@ -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