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

  • From: "J. P. Bernstein" <astro@xxxxxxx>
  • To: overture@xxxxxxxxxxxxx
  • Date: Mon, 5 Mar 2012 11:31:24 -0600

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: