[overture] Re: Installing Overture.v24 on Mac OSX Lion

  • From: Erik Wilson <wilsone@xxxxxx>
  • To: overture@xxxxxxxxxxxxx
  • Date: Mon, 05 Mar 2012 15:52:21 -0700


If I remember correctly a "make clean" removes that file, which has bit me in the past.


On 03/05/2012 03:46 PM, Kyle K. Chand wrote:
Well, that is funny, one of the last things Overture's configure script does (supposed to do!) is write configure.options... There is even a check to make sure it opened correctly. What is the output when you run Overture's configure script? You might want to do this in another build directory so it does not mess up all the dependencies.

Kyle

mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740



On Mar 5, 2012, at 2:37 PM, J. P. Bernstein wrote:

Thanks, Kyle.

That worked. After several fixes for library location issues, make concluded without errors (is there supposed to be a "success" message)? I will send an email to the list recounting each step that I had to do to build Overture on Mac OSX Lion once I am able to run the tests (see below).

When I tried to run check.p, I got:

[alcfwl150:local/ztar/Overture.v24] root# ./check.p
unable to open /usr/local/Overture.v24/configure.options. Check your Overture env variable.
1 at ./check.p line 30.

The file in question is, indeed, missing from $Overture. Has it been superseded, or something?

Best,

Joe

On Mar 5, 2012, at 12:48 PM, Kyle K. Chand wrote:

Hi Joe,

I have two fixes for this, one is nice and cryptic. I can't remember what exactly is broken about the configure (I thought it was fixed) but the configure script think you are using a build of Mesa rather than a distribution on the system or Macports (hence the relative directory references in the include file). What is your OpenGL set to?

fix 1: Change $Overture/include/OvertureDefines.h so that the OV_USE_MESA variable is set to:
#define OV_USE_MESA 2
Note you will need to manually change this every time you do a configure

fix 2: Build your own copy of the Mesa libraries somewhere and set your OpenGL environment variable accordingly. The nice thing about this fix is that you will get offscreen rendering for hardcopies (and no worries upon re-running configure).

Regards,
Kyle

mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740



On Mar 5, 2012, at 9:31 AM, J. P. Bernstein wrote:

Hello Kyle,

The command you suggested did not work (see below). I was able to work around the issue by doing "sudo tcsh" to open a root shell and making a symbolic line to the Mesa lib (again, see below).

The make ran for some time and then failed with:

--------------------
osRender.C:215:45: error: GL/../../src/mesa/main/context.h: No such file or directory
osRender.C:230: error: 'GLcontext' does not name a type
osRender.C:231: error: ISO C++ forbids declaration of 'GLvisual' with no type
osRender.C:231: error: expected ';' before '*' token
osRender.C:232: error: ISO C++ forbids declaration of 'GLframebuffer' with no type
osRender.C:232: error: expected ';' before '*' token
osRender.C:241: error: ISO C++ forbids declaration of 'GLchan' with no type
osRender.C:241: error: expected ';' before '*' token
osRender.C: In member function 'int GL_GraphicsInterface::offScreenRenderMesa(const char*, GraphicsParameters&)':
osRender.C:299: error: 'GLcontext' was not declared in this scope
osRender.C:299: error: 'CC' was not declared in this scope
osRender.C:299: error: expected primary-expression before ')' token
osRender.C:299: error: expected `;' before 'OSMesaGetCurrentContext'
osRender.C:313: error: 'oldCC' was not declared in this scope
osRender.C:313: error: expected primary-expression before ')' token
osRender.C:313: error: 'struct osmesa_context' has no member named 'gl_ctx' osRender.C:314: error: 'struct osmesa_context' has no member named 'gl_ctx'
osRender.C:314: error: expected primary-expression before ')' token
osRender.C:314: error: expected `;' before 'CC'
osRender.C:322: error: expected primary-expression before ')' token
osRender.C:322: error: 'struct osmesa_context' has no member named 'gl_ctx' osRender.C:322: error: '_mesa_copy_context' was not declared in this scope osRender.C:359: error: 'struct osmesa_context' has no member named 'gl_ctx'
osRender.C:359: error: expected primary-expression before ')' token
osRender.C:359: error: expected `)' before 'oldCC'
make[1]: *** [osRender.o] Error 1
make: *** [all] Error 2
--------------------

Any thoughts?

Best,

Joe


++++++++++sudo and source issue++++++++++
sudo "source defenv; ./configure darwin useHDF5 FC=gfortran"

resulted in:

--------------------
usage: sudo -h | -K | -k | -L | -V
usage: sudo -v [-AknS] [-g groupname|#gid] [-p prompt] [-u user name|#uid] usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U user name] [-u user
         name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
         [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
         file ...
--------------------

So I tried this:

--------------------
alcfwl150:Overture.v24 jpbernst$ sudo source defenv; sudo ./configure darwin useHDF5 FC=gfortran
Password:
sudo: source: command not found
*** configure for machine = darwin ****
*** machineType = [x86_64] ****
First checking for proper definition of Overture environmental variables:
ERROR: environmental variable APlusPlus =  DOES NOT EXIST
ERROR: environmental variable OpenGL =  DOES NOT EXIST
ERROR: environmental variable HDF =  DOES NOT EXIST
ERROR: environmental variable Overture =  DOES NOT EXIST
ERROR: environmental variable XLIBS =  DOES NOT EXIST
ERROR: Unable to find OpenGL library libGL or libMesaGL in  /lib64
Check the OpenGL environmental variable and try again
INFO: I am going to copy my version of the GLw files into Overture/static directory
Checking for the Motif header files in /include/Xm/
Unable to find the Motif or Lesstif file /include/Xm/Xm.h
Check your MOTIF environmental variable, MOTIF=[]. It seems to be incorrect.
--------------------

I then tried the following, which worked, as far as the env vars are concerned, but uncovered a Mesa location issue:

--------------------
alcfwl150:Overture.v24 jpbernst$ sudo tcsh
[alcfwl150:/usr/local/Overture.v24] root# source defenv
[alcfwl150:/usr/local/Overture.v24] root# ./configure darwin useHDF5 FC=gfortran
*** configure for machine = darwin ****
*** machineType = [x86_64] ****
First checking for proper definition of Overture environmental variables:
    APlusPlus = /usr/local/A++P++-0.8.0/A++/install
    OpenGL = /opt/local
    HDF = /opt/local
    Overture = /usr/local/Overture.v24
    XLIBS = /opt/local
ERROR: Unable to find OpenGL library libGL or libMesaGL in /opt/local/lib64
--------------------

I devised the following fix:

--------------------
[alcfwl150:/usr/local/Overture.v24] root# mkdir /opt/local/lib64
[alcfwl150:/usr/local/Overture.v24] root# ln -s /opt/local/lib/libOSMesa.7.dylib /opt/local/lib64/libMesaGL.dylib [alcfwl150:/usr/local/Overture.v24] root# ./configure darwin useHDF5 FC=gfortran *** configure for machine = darwin ****
*** machineType = [x86_64] ****
First checking for proper definition of Overture environmental variables:
    APlusPlus = /usr/local/A++P++-0.8.0/A++/install
    OpenGL = /opt/local
    HDF = /opt/local
    Overture = /usr/local/Overture.v24
    XLIBS = /opt/local
Using Mesa `OpenGL' libraries since libMesaGL found in /opt/local/lib64
Mesa has GLwDrawA.h in the include dir
INFO: I am going to copy my version of the GLw files into Overture/static directory
Checking for the Motif header files in /opt/local/include/Xm/
Using motif.
perlloc = [/opt/local/lib/perl5/5.12.3/darwin-multi-2level/CORE]
Using perl headers and lib from perllibs=[/opt/local/lib/perl5/5.12.3/darwin-multi-2level/CORE]
Will link to the libraries perllibs=[-lperl -ldl -lm -lutil -lc]
Using configuration file config/MakeDefs.darwin
Using hdf 5
Using Compilers: C++=g++, C=gcc, Fortran=gfortran (base version: C++=g++, C=gcc, Fortran=gfortran)
Using g++ version g++ (GCC) 4.3.6
gcc lib directory = /opt/local/lib64
**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.
--------------------

On Mar 2, 2012, at 5:02 PM, Kyle K. Chand wrote:

Joe,

The sudo might be breaking it as it probably starts a new shell. You can try this:
sudo "source defenv; ./configure darwin useHDF5 FC=gfortran"
Note that you will then have to do
sudo "source defenv; make"
to actually build it, assuming this works. This will not work if the default shell for root is something other than csh. For example, if it is bash then you will need to write a bash version of defenv that you can execute in the sudo command.

Or login as root and do the install if you need it to have root ownership.

regards,
Kyle

mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740



On Mar 2, 2012, at 2:28 PM, J. P. Bernstein wrote:

Thanks, Kyle. That worked with:

sudo ./configure --with-CC="/opt/local/bin/gcc -I/usr/include/malloc" --with-CXX="/opt/local/bin/g++ -I/usr/include/malloc" --prefix=`pwd`

Moving on to the next step, the enviers set in defenv are not being inherited when trying to build Overture. I have the following set:

% cat defenv
#! /bin/csh -f
#
#     Define environment variables for Overture
#
# see the install notes on the web for further explanation or Overture/doc/install.tex
#
# edit this file and change as appropriate for your system,
# then type 'source defenv'

# You will need to change the following:
setenv XLIBS /opt/local
setenv MOTIF /opt/local
setenv OpenGL /opt/local
setenv HDF /opt/local
setenv APlusPlus /usr/local/A++P++-0.8.0/A++/install
setenv Overture /usr/local/Overture.v24


but get:

% sudo ./configure darwin useHDF5 FC=gfortran
Password:
*** configure for machine = darwin ****
*** machineType = [x86_64] ****
First checking for proper definition of Overture environmental variables:
ERROR: environmental variable APlusPlus =  DOES NOT EXIST
ERROR: environmental variable OpenGL =  DOES NOT EXIST
ERROR: environmental variable HDF =  DOES NOT EXIST
ERROR: environmental variable Overture =  DOES NOT EXIST
ERROR: environmental variable XLIBS =  DOES NOT EXIST
ERROR: Unable to find OpenGL library libGL or libMesaGL in  /lib64
Check the OpenGL environmental variable and try again
INFO: I am going to copy my version of the GLw files into Overture/static directory
Checking for the Motif header files in /include/Xm/
Unable to find the Motif or Lesstif file /include/Xm/Xm.h
Check your MOTIF environmental variable, MOTIF=[]. It seems to be incorrect.

Any thoughts?

Sorry for the basic questions; while I am very experienced with linux, I am rather new to mac.

Best,

Joe


On Mar 1, 2012, at 4:52 PM, Kyle K. Chand wrote:

Joe,

Below are some more recent instructions for a parallel build of Overture on a Mac, including an A++P++ configure line which does not include -mlongcall (that was for older PowerPC macs, I believe). For a serial build, the A++ configure line I currently use (on a OS X 10.5.8 machine) is: % ./configure --with-CC="/Users/chand1/MacPorts/bin/gcc -I/usr/include/malloc" --with-CXX="/Users/chand1/MacPorts/bin/g++ -I/usr/include/malloc" --prefix="/Users/chand1/Overture/A++P++/A++P++-0.7.9d/gcc4.3.3" Note, my MacPorts is not installed in /opt/local, you will need to adjust the configure line appropriately.

For Overture, one would use
% configure darwin useHDF5 FC=gfortran
or something similar.

Regards,
Kyle


mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740



Begin forwarded message:

From: Kyle K.Chand <chand1@xxxxxxxx>
Date: September 24, 2010 3:44:20 PM PDT
To: Ramesh Balakrishnan <bramesh@xxxxxxxxxxxx>
Cc: "overture@xxxxxxxxxxxxx" <overture@xxxxxxxxxxxxx>
Subject: [overture] Parallel Overture on Mac
Reply-To: "overture@xxxxxxxxxxxxx" <overture@xxxxxxxxxxxxx>

Hi Ramesh,

I managed to build Overture on the Mac. There were a few odd things.

0) It appears that openmpi is on the mac by default in /usr, I had not
known that.
You can also use the openmpi and mpich or lam mpi from macports.

1) the configure line for A++P++ is:

./configure --prefix=`pwd` --without-PADRE --disable-shared --disable- mpirun-check --enable-PXX --with-CC="gcc -I/usr/include/malloc" --with-
CXX="g++ -I/usr/include/malloc" --with-mpi-libs="-lmpi_cxx -lmpi"

2) To build A++P++, use :
make MAKE=make install

3) make sure you have a parallel build of HDF5


4) configure Overture using something like:
./configure darwin parallel useHDF5 FC=gfortran

5) Now you need to fix the PFLAGS variable in $Overture/GridFunction/
Makefile in order to add -I/usr/include/malloc

6) In the primer directory Makefile, eliminate the -Wl-weak-
framework,VecLib option from all the make variables

7) Fix ParallelUtility.C, the bool version of broadCast should be:
void
broadCast( bool & value, const int & fromProcessor )
{
#ifdef USE_PPP
if( Communication_Manager::Number_Of_Processors==0 )
  return;

int tmpValue = value;
MPI_Bcast( &tmpValue, 1, MPI_INT, fromProcessor, MPI_COMM_WORLD);
value = tmpValue;

#endif
}

8) Now you should be able to build Overture and also build the
examples primer/pppWave and primer/pwave

I was able to build and run pppWave and pwave with two MPI tasks on my
mac laptop.  We are working the fixes
into the next release.

Let me know how this works!
Kyle





mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740




















Other related posts: