Hi Prof. Bangerth,
I checked Make.global_options (attached below) and all the compilers are
from intel.
But in Makefile I added @echo $(CXX), this gives me
/usr/global/openmpi/current/gnu/bin/mpicxx
I have no idea when the GNU mpi compiler sneaks in. Actually this path
no longer exists on the machine.
Thanks,
Huan
Here's the Make.global_options file
# $Id: Make.global_options.in 19754 2009-10-08 01:45:57Z
bangerth $
###############################################################################
## Please note:
## The ./configure script generates Make.global_options from
## Make.global_options.in, so if you want to change something,
## then do it in the latter file and re-run ./configure in the
## top level directory
##
##
## This file exports several variables. They are documented in
## the file doc/development/makefiles.html. If you add a new
## variable, make sure it is documented in
## doc/development/makefiles.1.html and listed in
## doc/development/Makefile.
###############################################################################
######################################################
# the following lines will be replaced by the output
# of ./configure
D = /gpfs/home/hus126/work/deal.II
CXX
= /usr/global/openmpi/1.4.0/intel/bin/mpiCC
GXX-VERSION = intel_icc11
GXX-VERSION-DETAILED = intel_icc11
CC
= /usr/global/openmpi/1.4.0/intel/bin/mpicc
CC-VERSION = intel_icc
SHLIBLD
= /usr/global/openmpi/1.4.0/intel/bin/mpicc
SHLIBFLAGS =
AR = /usr/bin/ar
RANLIB = /usr/bin/ranlib
LDFLAGS = -L/gpfs/home/hus126/work/deal.II/lib
-Wl,-rpath,/gpfs/home/hus126/work/deal.II/lib -lstdc++
-lpthread -lpthread -lpthread -ldl -rdynamic
-L/gpfs/home/hus126/work/download/metis-4.0 -lmetis
F77
= /usr/global/openmpi/1.4.0/intel/bin/mpif77
F77-VERSION = INTEL_F77
F77LIBS =
LIBS = -lmkl_lapack95_lp64 -lmkl_intel_lp64
-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -lz
-lmkl_blas95_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
-liomp5 -lpthread -lm
LIBDIR = $D/lib
PERL = /usr/bin/perl
enable-threads = yes
enable-shared = no
enable-parser = yes
DEAL_II_VERSION = 6.3.pre
DEAL_II_MAJOR = 6
DEAL_II_MINOR = 3
USE_CONTRIB_PETSC = yes
DEAL_II_PETSC_DIR = /usr/global/petsc/3.0.0-p8
DEAL_II_PETSC_ARCH = linux-gnu-c-debug
DEAL_II_PETSC_VERSION_MAJOR = 3
DEAL_II_PETSC_VERSION_MINOR = 0
DEAL_II_PETSC_VERSION_SUBMINOR = 0
DEAL_II_PETSC_MPIUNI_LIB =
USE_CONTRIB_SLEPC = no
DEAL_II_SLEPC_DIR =
DEAL_II_SLEPC_VERSION_MAJOR =
DEAL_II_SLEPC_VERSION_MINOR =
DEAL_II_SLEPC_VERSION_SUBMINOR =
USE_CONTRIB_TRILINOS = yes
DEAL_II_TRILINOS_INCDIR = /usr/global/trilinos/current/include
DEAL_II_TRILINOS_LIBDIR = /usr/global/trilinos/current/lib
DEAL_II_TRILINOS_SHARED =
DEAL_II_TRILINOS_STATIC = yes
USE_CONTRIB_METIS = yes
DEAL_II_METIS_LIBDIR
= /gpfs/home/hus126/work/download/metis-4.0
USE_CONTRIB_HSL =
USE_CONTRIB_UMFPACK = yes
TARGET = x86_64-unknown-linux-gnu
######################################################
# now configuration for compiler flags, paths, etc
# path for libraries
LIBPATH += $(addprefix -L,$(LIBDIR))
static-lib-suffix = .a
shared-lib-suffix = .so
ifeq ($(enable-shared),yes)
lib-suffix = $(shared-lib-suffix)
else
lib-suffix = $(static-lib-suffix)
endif
# add search path for libraries to make dependencies
vpath %.a $(LIBDIR)
vpath %.so $(LIBDIR)
OBJEXT = o
EXEEXT =
# dealing with shared libraries
ifeq ($(shared-lib-suffix),.so)
DEAL_II_SHLIB_NAME = lib
$(1)$(shared-lib-suffix).$(DEAL_II_VERSION)
else
DEAL_II_SHLIB_NAME = lib
$(1).$(DEAL_II_VERSION)$(shared-lib-suffix)
endif
ifeq (,yes)
DEAL_II_ADD_SONAME = -Wl,-soname,$(call DEAL_II_SHLIB_NAME,
$(1))
else
ifeq (,yes)
DEAL_II_ADD_SONAME = -Wl,-dynamic,-install_name -Wl,$(call
DEAL_II_SHLIB_NAME,$(1))
else
DEAL_II_ADD_SONAME =
endif
endif
# since the PETSc libs are called the same for both debug and
# optimized mode, we have to have a trick to let the executable
# know which ones are the right (since apparently
LD_LIBRARY_PATH
# can't do the trick unless you want to reset it every time
# you switch from debug to optimized mode). To avoid messing
with
# -Wl,-rpath in our linker flags, we create one convenience
library
# for all PETSc libraries in our own lib directory, and have
this one
# twiddle with whatever is necessary to link in PETSc.
#
# to make things more fun, the whole scheme was changed in petsc
2.3.0
# and then again in petsc 3.0.0
#
# also sort of annoying is the fact that on Mac OS X, the trick
with the
# one library doesn't appear to work. Instead of a single
library, we therefore
# have to list all of them, at least if we are using shared
libs.
ifeq ($(USE_CONTRIB_PETSC),yes)
ifeq ($(DEAL_II_PETSC_VERSION_MAJOR),2)
ifeq ($(DEAL_II_PETSC_VERSION_MINOR),2)
lib-contrib-petsc-path.g = $(DEAL_II_PETSC_DIR)/lib/libg_c
++/$(DEAL_II_PETSC_ARCH)
lib-contrib-petsc-path.o = $(DEAL_II_PETSC_DIR)/lib/libO_c
++/$(DEAL_II_PETSC_ARCH)
else
lib-contrib-petsc-path.g =
$(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)
lib-contrib-petsc-path.o =
$(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)
endif
ifeq ($(findstring darwin,$(TARGET)),)
lib-contrib-petsc.g = $(LIBDIR)/libpetscall.g$(lib-suffix)
lib-contrib-petsc.o = $(LIBDIR)/libpetscall$(lib-suffix)
else
ifeq ($(enable-shared),yes)
lib-contrib-petsc.g = $(shell echo
$(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)/*$(lib-suffix))
lib-contrib-petsc.o = $(shell echo
$(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)/*$(lib-suffix))
else
lib-contrib-petsc.g = $(LIBDIR)/libpetscall.g
$(lib-suffix)
lib-contrib-petsc.o = $(LIBDIR)/libpetscall$(lib-suffix)
endif
endif
else
lib-contrib-petsc-path.g =
$(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib
lib-contrib-petsc-path.o =
$(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib
ifeq ($(findstring darwin,$(TARGET)),)
lib-contrib-petsc.g = $(LIBDIR)/libpetscall.g$(lib-suffix)
lib-contrib-petsc.o = $(LIBDIR)/libpetscall$(lib-suffix)
else
ifeq ($(enable-shared),yes)
lib-contrib-petsc.g = $(shell echo
$(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib/*$(lib-suffix))
lib-contrib-petsc.o = $(shell echo
$(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib/*$(lib-suffix))
else
lib-contrib-petsc.g = $(LIBDIR)/libpetscall.g
$(lib-suffix)
lib-contrib-petsc.o = $(LIBDIR)/libpetscall$(lib-suffix)
endif
endif
endif
endif
ifeq ($(USE_CONTRIB_SLEPC),yes)
lib-contrib-slepc =
$(DEAL_II_SLEPC_DIR)/$(DEAL_II_PETSC_ARCH)/lib/libslepc
$(lib-suffix)
endif
# same for metis, except that there is only one library in that
case
ifeq ($(USE_CONTRIB_METIS),yes)
lib-contrib-metis = $(DEAL_II_METIS_LIBDIR)/libmetis.a
endif
# List all trilinos libraries that we want to link with. These
must be sorted
# in dependency order to allow for static linking where the
order on the
# command line matters. Note that we check the availability of
all these
# libraries in aclocal.m4; the two lists should therefore be
kept in
# sync.
ifeq ($(USE_CONTRIB_TRILINOS),yes)
DEAL_II_TRILINOS_LIBS = \
stratimikosamesos \
stratimikosaztecoo \
stratimikosifpack \
stratimikosml \
stratimikos \
ml \
amesos \
belos \
ifpack \
aztecoo \
rtop \
sacado \
thyra \
thyraepetra \
thyraepetraext \
epetraext \
epetra \
teuchos \
triutils
ifeq ($(enable-shared),yes)
lib-contrib-trilinos = \
$(addsuffix $(shared-lib-suffix), $(addprefix
$(DEAL_II_TRILINOS_LIBDIR)/lib, \
$(DEAL_II_TRILINOS_LIBS)))
else
lib-contrib-trilinos = \
$(addsuffix $(static-lib-suffix), $(addprefix
$(DEAL_II_TRILINOS_LIBDIR)/lib, \
$(DEAL_II_TRILINOS_LIBS)))
endif
endif
# deal with HSL; this should have been $(lib-contrib-hsl) but
for a long time we
# accidentally had $(lib-hsl) -- so we simply make both symbols
available
ifeq ($(USE_CONTRIB_HSL),yes)
lib-hsl = $(LIBDIR)/libhsl$(lib-suffix)
lib-contrib-hsl = $(lib-hsl)
endif
# need to link with libtbb if we're using threads
ifeq ($(enable-threads),yes)
lib-contrib-tbb.g = $D/lib/libtbb_debug$(shared-lib-suffix)
lib-contrib-tbb.o = $D/lib/libtbb$(shared-lib-suffix)
endif
# set paths to all the libraries we need:
lib-base.o = $(LIBDIR)/libbase$(lib-suffix) \
$(lib-contrib-trilinos) \
$(lib-contrib-tbb.o)
lib-base.g = $(LIBDIR)/libbase.g$(lib-suffix) \
$(lib-contrib-trilinos) \
$(lib-contrib-tbb.g)
lib-lac.o = $(LIBDIR)/liblac$(lib-suffix) \
$(lib-hsl) \
$(lib-contrib-petsc.o) $(lib-contrib-slepc)
$(DEAL_II_PETSC_MPIUNI_LIB) \
$(lib-contrib-metis)
lib-lac.g = $(LIBDIR)/liblac.g$(lib-suffix) \
$(lib-hsl) \
$(lib-contrib-petsc.g) $(lib-contrib-slepc)
$(DEAL_II_PETSC_MPIUNI_LIB) \
$(lib-contrib-metis)
lib-deal2-1d.o = $(LIBDIR)/libdeal_II_1d$(lib-suffix)
lib-deal2-2d.o = $(LIBDIR)/libdeal_II_2d$(lib-suffix)
lib-deal2-3d.o = $(LIBDIR)/libdeal_II_3d$(lib-suffix)
lib-deal2-1d.g = $(LIBDIR)/libdeal_II_1d.g$(lib-suffix)
lib-deal2-2d.g = $(LIBDIR)/libdeal_II_2d.g$(lib-suffix)
lib-deal2-3d.g = $(LIBDIR)/libdeal_II_3d.g$(lib-suffix)
# include paths. do not take into account a possibly existing
# environment variable, since the compiler will evaluate the
value of
# that anyway at compile time
include-path-petsc = $(DEAL_II_PETSC_DIR)/include
ifeq ($(DEAL_II_PETSC_VERSION_MAJOR),2)
include-path-petsc-bmake =
$(DEAL_II_PETSC_DIR)/bmake/$(DEAL_II_PETSC_ARCH)
else
include-path-petsc-bmake =
$(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/include
endif
include-path-slepc = $(DEAL_II_SLEPC_DIR)/include
include-path-slepc-conf =
$(DEAL_II_SLEPC_DIR)/$(DEAL_II_PETSC_ARCH)/conf
include-path-trilinos = $(DEAL_II_TRILINOS_INCDIR)
# include paths as command line flags. while compilers allow a
space between
# the '-I' and the actual path, we also send these flags to the
# make_dependencies program that doesn't support the extra
space.
INCLUDE = -I$D/base/include -I$D/lac/include -I
$D/deal.II/include \
-I/gpfs/home/hus126/work/deal.II/contrib/boost/include \
-I/gpfs/home/hus126/work/deal.II/contrib/umfpack/UMFPACK/Include
-I/gpfs/home/hus126/work/deal.II/contrib/umfpack/AMD/Include \
-I$D/contrib
# add PETSc, SLEPSc, and Trilinos include paths if necessary.
this rule
# (and the one further down below to get correct flags) should
eventually
# be replaced by something where we do not blindly include PETSc
make files
# (and thus import all of its variables), but rather set up a
scheme to
# extract these values upon configuration
#
# note also that this only works for PETSc before 2.3 :-]
ifeq ($(USE_CONTRIB_PETSC),yes)
ifeq ($(DEAL_II_PETSC_VERSION_MINOR),2)
include
$(DEAL_II_PETSC_DIR)/bmake/$(DEAL_II_PETSC_ARCH)/packages
endif
INCLUDE += -I$(include-path-petsc) -I
$(include-path-petsc-bmake)\
$(MPI_INCLUDE)
endif
ifeq ($(USE_CONTRIB_SLEPC),yes)
INCLUDE += -I$(include-path-slepc) -I
$(include-path-slepc-conf)
endif
ifeq ($(USE_CONTRIB_TRILINOS),yes)
INCLUDE += -I$(include-path-trilinos)
endif
ifeq ($(enable-threads),yes)
INCLUDE += -I$(shell echo $D/contrib/tbb/tbb*/include)
endif
# compiler flags for debug and optimized mode
CXXFLAGS.g = -DHAVE_CONFIG_H -DHAVE_ISNAN -g -DBOOST_NO_HASH
-DBOOST_NO_SLIST -DDEBUG -w1 -wd175 -wd525 -wd327 -wd424 -wd11
-wd734 -wd858 -wd1572 -Wno-unused -Wno-overloaded-virtual
-Wno-extra $(INCLUDE)
CXXFLAGS.o = -DHAVE_CONFIG_H -DHAVE_ISNAN -DBOOST_NO_HASH
-DBOOST_NO_SLIST -O2 -unroll -w0 -wd424 -wd11 -opt-report 0
-vec-report0 $(INCLUDE)
F77FLAGS.g = -DHAVE_CONFIG_H $(INCLUDE)
F77FLAGS.o = -DHAVE_CONFIG_H -O3 $(INCLUDE)
# compile flags for C compiler
CFLAGS = -O2 -unroll -ansi_alias -vec_report0 -wd1572
# if in debug mode, add TBB assertions
ifeq ($(enable-threads),yes)
CXXFLAGS.g += -DTBB_DO_ASSERT=1
endif
# PETSc wants to see a whole lot of other flags being passed...
ifeq ($(USE_CONTRIB_PETSC),yes)
# set PETSC_DIR and PETSC_ARCH to be used in variables file
PETSC_DIR = $(DEAL_II_PETSC_DIR)
PETSC_ARCH = $(DEAL_II_PETSC_ARCH)
ifeq ($(DEAL_II_PETSC_VERSION_MAJOR),2)
ifeq ($(DEAL_II_PETSC_VERSION_MINOR),2)
include
$(DEAL_II_PETSC_DIR)/bmake/$(DEAL_II_PETSC_ARCH)/variables
else
include $(DEAL_II_PETSC_DIR)/bmake/common/variables
endif
else
include $(DEAL_II_PETSC_DIR)/conf/variables
endif
CXXFLAGS.g += $(GCXX_PETSCFLAGS)
CXXFLAGS.o += $(OCXX_PETSCFLAGS)
endif
ifneq ($(enable-threads),no)
MT = MT
else
MT = ==
endif
On Sun, 2010-02-28 at 14:56 -0600, Wolfgang Bangerth wrote:
> > I set CC and CXX as the intel mpicc and mpiCC during the configuration
> > so that I have the following in the /common/Make.global_options
> >
> >
> > D = /gpfs/home/hus126/work/deal.II
> > CXX
> > = /usr/global/openmpi/1.4.0/intel/bin/mpiCC
> > GXX-VERSION = intel_icc11
> > GXX-VERSION-DETAILED = intel_icc11
> > CC
> > = /usr/global/openmpi/1.4.0/intel/bin/mpicc
> > CC-VERSION = intel_icc
> > SHLIBLD
> > = /usr/global/openmpi/1.4.0/intel/bin/mpicc
> > SHLIBFLAGS =
> > AR = /usr/bin/ar
> > RANLIB = /usr/bin/ranlib
> > LDFLAGS = -L/gpfs/home/hus126/work/deal.II/lib
> > -Wl,-rpath,/gpfs/home/hus126/work/deal.II/lib -lstdc++
> > -lpthread -lpthread -lpthread -ldl -rdynamic
> > -L/gpfs/home/hus126/work/download/metis-4.0 -lmetis
> > F77
> > = /usr/global/openmpi/1.4.0/intel/bin/mpif77
> > F77-VERSION = INTEL_F77
> > F77LIBS =
> > LIBS = -lmkl_lapack95_lp64 -lmkl_intel_lp64
> > -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -lz
> > -lmkl_blas95_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
> > -liomp5 -lpthread -lm
> > LIBDIR = $D/lib
> > PERL = /usr/bin/perl
> > enable-threads = yes
> > enable-shared = no
> > enable-parser = yes
> > DEAL_II_VERSION = 6.3.pre
> > DEAL_II_MAJOR = 6
> > DEAL_II_MINOR = 3
> >
> > However when I compiled using make all, I got complaints like
> >
> >
> > cd /gpfs/home/hus126/work/deal.II/common/scripts
> > && /usr/bin/make make_dependencies
> > make[1]: Entering directory
> > `/gpfs/work/hus126/deal.II/common/scripts'
> > ============================ Compiling make_dependencies
> > make[1]: /usr/global/openmpi/current/gnu/bin/mpicxx: Command not
> > found
> > make[1]: *** [make_dependencies] Error 127
> > make[1]: Leaving directory
> > `/gpfs/work/hus126/deal.II/common/scripts'
> > make: *** [common/scripts/make_dependencies] Error 2
> >
> > I am not sure why the makefile is still searching for GNU compiler and
> > will appreciate any suggestions.
>
> This doesn't seem to make sense indeed. The Makefile in common/scripts only
> uses $(CXX) to compile. Can you double check what CXX defaults to in
> common/Make.global_options?
>
> If that doesn't help, remove the '@' at the beginning of the compile lines
> in common/scripts/Makefile to see what the actual commands are.
>
> Best
> W.
>
> -------------------------------------------------------------------------
> Wolfgang Bangerth email: [email protected]
> www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii