hypre/docs/dev_makefile.tex
1999-03-20 00:02:38 +00:00

80 lines
2.3 KiB
TeX

%==========================================================================
\chapter{Makefile Standards}
\label{Makefile Standards}
\hypre{} uses Autoconf for installation. For information on using
Autoconf in general, see
\begin{verbatim}
file:/home/casc/software_development/html/index.html.
\end{verbatim}
See the User's Manual for details on building \hypre{}.
To move new code into the Autoconf system, a \file{Makefile.in} must be
created for each subdirectory containing code, and the names of the
subdirectories must be added to the list in the
\begin{verbatim}
CASC_CONFIG_OUTPUT_LIST
\end{verbatim}
macro of the \file{linear_solvers/configure.in} file.
\begin{verbatim}
New Makefile.in's may use the following macros from configure:
General purpose header files and libraries and directories for
those libraries
INCLUDES produces a -I
LIBS produces a -l
LIBDIRS produces a -L
MPI-related header files and libraries and directories for those libraries
MPIINCLUDE produces a -I
MPILIBS produces a -l
MPILIBDIRS produces a -L
MPIFLAGS produces a -l
Macro definitions that should be included on compile line
HYPREDEFS produces a -D
TIMERDEFS produces a -D
HYPRE_PETSCDEFS produces a -D
HYPRE_PETSC_DIRS
Libraries and their directories that must be used at compile time
LDLIBS
LDLIBDIRS
Ranlib found by configure
RANLIB will assign ranlib or maybe empty
Contain compiler flags such as optimization or debugging flags
CFLAGS usually assigns -O or -g
CXXFLAGS usually assigns -O or -g
F77FLAGS usually assigns -O or -g
Needed when compiling with another command prior to the compiler command
for example: purify cc ....
PREPEND currently only used for purify
PETSC-related header files, libraries and directories for those libraries
PETSCLIBS produces a -l
PETSCLIBDIRS produces a -L
PETSCINCLUDE produces a -I
Needed for Petsc to locate hypre
HYPRE_TOP_SRC_DIR
These may be referenced in a Makefile.in as follows:
CC=@CC@
This will replace ${CC} in your Makefile.in with whatever is assigned
to CC in configure-- perhaps gcc, mpicc, etc.
\end{verbatim}
Anytime changes are made to either the \file{configure.in} or
\file{aclocal.m4} files, it is necessary to run \kbd{autoconf} to
generate a new \file{configure} script, and this new script must also
be checked into the repository.