Hi Joe, It looks like CC_INCLUDES_FOR_DEPEND may be edited & different than a vanilla linux MakeDefs. Cheers, -Erik > Thanks, Bill. > > Below is the MakeDefs file that I am using that is based on the > MakeDefs.linux file that came with Overture.v24. The Include variable > setting, indeed, does not include A++. Adding a -I pointing to > $(APlusPlus/include) results in other immediate problems. Can you please > send me a MakeDefs file for vanilla linux that is known working? > > Thanks, > > Joe > > +++++MakeDefs.bgp (based on MakeDefs.linux+++++ > > # linux with dynamic libraries > > # these next values for compilers will be used unless overridden with an > argument to configure > cc = mpixlc_r > CC = mpixlcxx_r > FC = mprixlf77_r > > # On some 64-bit machines some libraries are in lib64 instead of lib > # this next line will be changed by the configure script > LIB64 = lib > > # Here is the rpath command > OV_RPATH = -Wl,-rpath, > #xlc OV_RPATH = -R > > # these next lines will be changed by the configure script > USE_DOUBLE_OR_SINGLE = -DOV_USE_FLOAT > #xlc USE_DOUBLE_OR_SINGLE = -WF,-DOV_USE_FLOAT > > A++ = $(APlusPlus) > A+++ = $(APlusPlus) > # AppLibraries = -L$(APlusPlus) -lA++ -lA++_static > AppLibraries = $(OV_RPATH)$(APlusPlus)/lib -L$(APlusPlus)/lib -lApp > -lApp_static > > Include= -I$(Overture)/include -I. > Lib= $(Overture)/lib > LibOverture= -lOverture -lOverture_static > # Make 2 dynamic libs for ibm: > #xlc LibOverture= -lOverture1 -lOverture2 -lOverture_static > LibRapsodi= -lRapsodi -lRapsodi_static > BOXLIB_DEFS = -DBL_USE_FLOAT -DBL_Solaris > > # these next flags are compiler dependent > # *** WARNING *** these next lines are changed by the configure script > cc_FLAGS = -qarch=450d -qtune=450 -qmaxmem=16384 > CC_FLAGS = -qarch=450d -qtune=450 -qmaxmem=16384 > FF_FLAGS = -qarch=450d -qtune=450 -qmaxmem=16384 > > # Turn off warnings from intel f95 compiler > #ifc FF_FLAGS = -fPIC -w > > # these next values will may be changed by the configure script > C_OPTIMIZATION_FLAG = -O > CPP_OPTIMIZATION_FLAG = -O > FORTRAN_OPTIMIZATION_FLAG = -g > > # Use this next flag to optimize files that Bill likes to by default > compile optimized > STD_OPT_FLAG = -O > > CFLAGS = $(cc_FLAGS) $(Include) $(OverturePrecision) > $(C_OPTIMIZATION_FLAG) -DSHM > # flags for c routines we always optimize (except if debug is on) > CFLAGSO = $(STD_OPT_FLAG) $(cc_FLAGS) $(Include) $(OverturePrecision) > -DSHM > > # do not include some paths, such as STL in the places searched by > makedepend (takes too long) > #*wdh* temporarily add -Wno-deprecated -- fix these later > # ** CC_INCLUDES_FOR_DEPEND = $(Include) $(OverturePrecision) > -I$(APlusPlus)/include $(BOXLIB_DEFS) -Wno-deprecated > CC_INCLUDES_FOR_DEPEND = $(Include) $(OverturePrecision) $(BOXLIB_DEFS) > > STL_INCLUDE = > # HAS_MODFL_PROTO is for a perl compile error of OvertureParser.C for gcc > 3.4.3 > # CC_INCLUDES = $(CC_FLAGS) $(CC_INCLUDES_FOR_DEPEND) $(STL_INCLUDE) > # CC_FLAGS = -fPIC -DHAS_MODFL_PROTO > # wdh 081212 -- remove HAS_MODFL_PROTO since it fails with xlc > CC_INCLUDES = $(CC_FLAGS) $(CC_INCLUDES_FOR_DEPEND) $(STL_INCLUDE) > #CC_FLAGS = -fPIC > > CCFLAGS= $(CC_INCLUDES) $(CPP_OPTIMIZATION_FLAG) > > # things that are always compiled with optimization use this flag (except > if debug is on) > CCFLAGSO= $(CC_INCLUDES) $(STD_OPT_FLAG) > > # things that are always compiled with lots of optimization use this flag > (except if debug is on) > CCFLAGSF= $(CC_INCLUDES) $(STD_OPT_FLAG) > > # things that need to be compiled with no optimization use the following > CCFLAGSG= $(CC_INCLUDES) -g > > # Notes: There seems to be problems using -O with g77 > # Some older versions of the egcs compiler also had trouble with > -fPIC, removing it seemed to work. > FFLAGS= $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) > $(FORTRAN_OPTIMIZATION_FLAG) $(Include) > # single precision always: > FFLAGSS= $(FF_FLAGS) $(OverturePrecision) $(FORTRAN_OPTIMIZATION_FLAG) > $(Include) > FFLAGSSO = ${FF_FLAGS} $(OverturePrecision) $(Include) $(STD_OPT_FLAG) > FFLAGSO = $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) > $(STD_OPT_FLAG) $(Include) > FFLAGSG = $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) -g $(Include) > FFLAGSG2 = $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) -g $(Include) > # The ifort compiler can take for-ever if we use -g so use -O instead > #ifort FFLAGSG = $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) -O > $(Include) > > # things that are always compile with optimization use these flags (except > if debug is on) > FFLAGSO= $(STD_OPT_FLAG) $(FF_FLAGS) $(OverturePrecision) $(FortranDouble) > $(FLAGS) $(Include) > FFLAGSSO= $(STD_OPT_FLAG) $(OverturePrecision) $(FF_FLAGS) $(FLAGS) > $(Include) > > # Here we add a path to the compiler lib directory (this is sometimes > needed so that we find the correct > # version of the compiler libraries if they are different from the the > ones in /usr/lib for e.g.) > OV_COMPILER_LIBS = $(OV_RPATH)$(COMPILER_LIB_DIRECTORY) > -L$(COMPILER_LIB_DIRECTORY) > > # here are the hdf libraries (the configure script will change this line > for use with hdf5) > HDF_LIBS = $(OV_RPATH)$(HDF)/lib -L$(HDF)/lib -lmfhdf -ldf -ljpeg -lz > #xlc HDF_LIBS = $(OV_RPATH)$(HDF)/lib -L$(HDF)/lib -lmfhdf -ldf -lz > > FORTRAN_LIBS = > #gcc FORTRAN_LIBS =-lnsl -lg2c > #gfortran FORTRAN_LIBS =-lgfortran > # This next line will be used with the Portland group compiler (the > configure script will set the next line) > # 080623: aio_read etc. are found in /usr/lib/librt.so > PGI_LIB = > #pgf77 FORTRAN_LIBS = $(OV_RPATH)$(PGI_LIB) -L$(PGI_LIB) -lpgftnrtl -lpgmp > -lpgc -lrt -lstd > # This next line will be used with the intel fortran compiler. (the > configure script will set the next line) > # g2c may be needed by lapack (for cg) > IFORT_LIB = > #ifc FORTRAN_LIBS = $(OV_RPATH)$(IFORT_LIB) -L$(IFORT_LIB) -lF90 -lIEPCF90 > -lg2c > # old ifc FORTRAN_LIBS = -Wl,-rpath,/opt/intel/compiler60/ia32/lib > -L/opt/intel/compiler60/ia32/lib -lF90 -lIEPCF90 > -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -lg2c > # Here are the libraries for the new intel compiler (called ifort instead > of ifc) (use "ifort -dryrun" to see libraries needed) > #ifort FORTRAN_LIBS = $(OV_RPATH)$(IFORT_LIB) -L$(IFORT_LIB) -lifcoremt > # Libraries using xlf and linux > #xlf FORTRAN_LIBS = -L/opt/ibmcmp/xlf/bg/11.1/bglib -lxlopt -lxl -lxlf90 > -lxlfmath -L/opt/ibmcmp/xlsmp/bg/1.7/bglib/ -lxlomp_ser > LIB_TARGETS= lib_date libso_date > LIB_DEPENDENCIES= ../lib/lib_date > TEMPLATES= > RAPTEMPLATES= > > # The KCC compiler should be used to build the static library (for > templates) > AR = ar > #KCC AR = KCC > ARFLAGS = ruv > #KCC ARFLAGS = -o > > LD = $(CC) > LDFLAGS = -L > RANLIB = ranlib > SOFLAGS = -shared > #xlc SOFLAGS = -qmkshrobj -qnostaticlink > # the next line is changed by the configure script > OpenGLibs= > GLIBS= $(OV_PERL_LIBRARIES) $(OV_RPATH)$(OPENGL_LIB) -L$(OPENGL_LIB) > $(OpenGLibs) $(OV_MOTIF_LIBRARIES) $(OV_X_LIBRARIES) -lm > > # On Don's machine the pgi libraries need to follow the mpi libraries : > # FLIBS= $(OV_RPATH)$(Overture)/lib $(LDFLAGS)$(Overture)/lib > $(LibOverture) $(HDF_LIBS) $(FORTRAN_LIBS) $(AppLibraries) > FLIBS= $(OV_RPATH)$(Overture)/lib $(LDFLAGS)$(Overture)/lib $(LibOverture) > $(OV_COMPILER_LIBS) $(HDF_LIBS) $(AppLibraries) $(FORTRAN_LIBS) > > > OGMGLIB = $(OV_RPATH)$(Overture)/lib $(LDFLAGS)$(Overture)/lib -lOgmg > > > On 4/23/2012 7:07 PM, Bill Henshaw wrote: >> Hi Joe: >> If you look at the compile line you will see no -I that points to >> A++.h -- this should help you track down >> the problem. ...Bill >> >> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 >> -I/home/jpbernst/Code/Overture/Test/Overture.v24/include -I. >> -DBL_USE_DOUBLE -DBL_Solaris -g -DH5_USE_16_API >> -I/soft/apps/hdf5-1.8.0/include -c GenericDataBase.C HDF_DataBase.C >> DataBaseBuffer.C >> >> >> >> On 04/23/2012 12:17 PM, J. P. Bernstein wrote: >>> Thanks, Erik. That worked. >>> >>> All, I was finally able to build Mesa7.10.3 without errors. This >>> allowed me to successfully configure Overture v24 on BG/P including >>> disabling the PERL calls in Ogshow/OvertureParser.C. However, I am >>> getting a build failure right away due to A++ no being found even >>> though $APlusPlus is correct (see below). >>> >>> As a basic test, I tried the configure and make with stock Overture >>> v24 (except for the addition of the bgp machine) without PERL >>> excluded. I get the same error. Below is the pertinent terminal >>> output (note that I do *not* get this A++ error when building >>> Overture v24 with the noPERL and noGL-functionality patches from Erik >>> applied). Is this a known problem? I have not been able to solve it >>> upon quick testing. >>> >>> Best, >>> >>> Joe >>> >>> +++++Begin configure output+++++ >>> {login2}/home/jpbernst/Code/Overture/Test/Overture.v24>./configure >>> bgp noX11 >>> Do NOT use X11. >>> *** configure for machine = bgp **** >>> *** machineType = [ppc64] **** >>> First checking for proper definition of Overture environmental >>> variables: >>> APlusPlus = /home/jpbernst/Code/Overture/Test/A++ >>> OpenGL = /home/jpbernst/Code/Mesa-7.10.3 >>> HDF = /soft/apps/hdf5-1.8.0 >>> Overture = /home/jpbernst/Code/Overture/Test/Overture.v24 >>> Using Mesa `OpenGL' libraries since libMesaGL found in >>> /home/jpbernst/Code/Mesa-7.10.3/lib >>> Mesa does not have GLwDrawA.h in the include dir >>> INFO: I am going to copy my version of the GLw files into >>> Overture/static directory >>> perlloc = [/usr/lib/perl5/5.8.8/ppc-linux-thread-multi-64int/CORE] >>> Using perl headers and lib from >>> perllibs=[/usr/lib/perl5/5.8.8/ppc-linux-thread-multi-64int/CORE] >>> Will link to the libraries perllibs=[-lperl -lnsl -ldl -lm -lcrypt >>> -lutil -lpthread -lc] >>> Detected use of hdf5 >>> Using configuration file config/MakeDefs.bgp >>> Using Compilers: C++=mpixlcxx_r, C=mpixlc_r, Fortran=mprixlf77_r >>> (base version: C++=mpixlcxx_r, C=mpixlc_r, Fortran=mprixlf77_r) >>> **Overture will be compiled in double precision >>> debugging turned on, using debugFlag=-g. >>> Checking for bool support >>> bool is supported. >>> Checking for exceptions support >>> exceptions are supported. >>> Checking for STL availability. $STLINC= >>> stl is available using std include format >>> the compiler understands namespaces >>> >>> the compiler understands default template arguments >>> >>> the compiler understands explicit >>> Create the Makefile for directory: mapUtil >>> Create the Makefile for directory: phoneyFiles >>> Create the Makefile for directory: Cad >>> Create the Makefile for directory: DataBase >>> Create the Makefile for directory: Grid >>> Create the Makefile for directory: GridFunction >>> Create the Makefile for directory: GridGenerator >>> Create the Makefile for directory: Mapping >>> Create the Makefile for directory: Oges >>> Create the Makefile for directory: Ogshow >>> Create the Makefile for directory: otherStuff >>> Create the Makefile for directory: bin >>> Create the Makefile for directory: boxlib >>> Create the Makefile for directory: lib >>> Create the Makefile for directory: primer >>> Create the Makefile for directory: sampleGrids >>> Create the Makefile for directory: static >>> Create the Makefile for directory: templates >>> Create the Makefile for directory: examples >>> Create the Makefile for directory: Ogmg >>> Create the Makefile for directory: tests >>> >>> configuration options written to file configure.options >>> >>> Make options saved to file make.options. >>> >>> Build the Makefile in the main directory >>> done configuration. >>> >>> **************************************************************************************************** >>> >>> WARNING: Environment variable LANG=en_US.UTF-8 -- Overture may not >>> work with this language. >>> European languages may reverse the meaning of `.' and ',' >>> in numbers such a 3,14 or 3.14 >>> and then Overture will not parse command files properly. >>> Type `locale' to see your language settings. You may need >>> to change to the language `en_US' >>> **************************************************************************************************** >>> >>> type `make' to build Overture (or 'make -j2' for a parallel make with >>> 2 processes). >>> type `make rapsodi' to build the Rapsodi libraries and rap. >>> >>> +++++End configure output+++++ >>> >>> +++++Begin make output+++++ >>> {login2}/home/jpbernst/Code/Overture/Test/Overture.v24>make >>> ----------------------------------------------------------------------- >>> type<make help> for help. Run the configure script before running make >>> ----------------------------------------------------------------------- >>> rm -rf A++; rm -f OpenGL; rm -f HDF; ln -s >>> /home/jpbernst/Code/Overture/Test/A++ A++; ln -s >>> /home/jpbernst/Code/Mesa-7.10.3 OpenGL; ln -s /soft/apps/hdf5-1.8.0 HDF >>> make[1]: Entering directory >>> `/gpfs/home/jpbernst/Code/Overture/Test/Overture.v24/DataBase' >>> perl ../config/makeDepend -f depend -Y -- >>> -I/home/jpbernst/Code/Overture/Test/Overture.v24/include -I. >>> -DBL_USE_DOUBLE -DBL_Solaris -- GenericDataBase.C HDF_DataBase.C >>> DataBaseBuffer.C >>> run makedepend ... >>> ...done >>> touch depend_date >>> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 >>> -I/home/jpbernst/Code/Overture/Test/Overture.v24/include -I. >>> -DBL_USE_DOUBLE -DBL_Solaris -g -DH5_USE_16_API >>> -I/soft/apps/hdf5-1.8.0/include -c GenericDataBase.C HDF_DataBase.C >>> DataBaseBuffer.C >>> GenericDataBase.C: >>> "/home/jpbernst/Code/Overture/Test/Overture.v24/include/GenericDataBase.h", >>> line 14.10: 1540-0836 (S) The #include file "A++.h" is not found. >>> HDF_DataBase.C: >>> "/home/jpbernst/Code/Overture/Test/Overture.v24/include/BoundaryConditionParameters.h", >>> line 4.10: 1540-0836 (S) The #include file "A++.h" >> >> > >