Open CASCADE, the 3D modelling kernel
3D modeling & numerical simulation

Search the Forums
See All Topics

OCC 6.2 on Mac OSX patches and build scripts

OCC 6.2 on Mac OSX patches and build scripts
Torsten Sadowski 2007/05/15 16:12

I updated my patches to OpenCASCADE 6.2. As usual you need a Linux install first from which you can copy.

I came across 2 special problems:

In the file Standard_ErrorHandler.cxx I had to use a C type cast:

return (Standard_Integer)pthread_self();

The return value is a pointer to a struct so casting might or might not be dangerous. So far I did not try multithreading.

MMGT_OPT is disabled for __APPLE__ in Standard.cxx. I reenabled it and it seems that mmap()ed memory management is working.

Cheers, Torsten
jacob 2007/09/15 10:06

is there a universal build for Mac OX version for opencacade.

Torsten Sadowski 2007/09/17 20:49
Hi Jacob,

why do you need a universal build for a source package?

Cheers, Torsten
Sylvain Marie 2007/09/25 23:58

I also need the universal build of OCC 6.2 :-) Some of our clients are still PPC based and other switched on I386 already.

BTW Torsten thank you for the patches ! :-) They work well if the exotic Comp build from OCC is used (but create only i386 binaries).

I tried to use "configure" on the patched src tree, with the parameters mentioned on the apple tech note ( to create universal binaries, but for some reason only the i386 architecture is created.

Any hint ?

Thank you in advance.
Torsten Sadowski 2007/09/26 20:03
Hello Sylvain,

which binary is created depends on the build machine. But, could you try to add " -arch i386 -arch ppc" to the sed lines in and try out what happens?

Cheers, Torsten

P.S. What are you doing with OCC?
Sylvain Marie 2007/10/02 14:00
Hi Torsten,

[ Sorry for the late answer. It seems that the automatic notification system didn't work :-/ ]

Thanks for the tip, I now get fat binaries ! :-)

However, I now must find a way to set their "install_name" property to something like @executable_path/../Frameworks/... instead of the current /var/tmp//cc7IslRW.out

As my last experience with sed and reg exps was a long time ago, I need to refresh my skills before sending you the updated with proper install names :-)

OCC 6.2 is used to port the HumanCAD software on Macs (

Torsten Sadowski 2007/10/09 20:47
Hello Sylvain,

do you get this strange install_name when you run my scripts? If this is the case you need to run the install_name_tool right after linking the libraries. The later libraries take the install names from the libraries they are linked against. To make this a bit more clear:

g++ -o libTKernel.dylib .....
install_name_tool -id @executable_path/../Frameworks/libTKernel.dylib
g++ -o libTKMath.dylib ... -lTKernel ...
install_name_tool -id ...

Cheers, Torsten

P.S. sed is tough but its the only tool I know to do the job
Sylvain Marie 2007/10/16 21:35
Hi Torsten,

After quite a few trials, I got sed to patch the makefile to set the install_path :-)

The modified file is
I can't find a way to attach a file on this forum, so I'm pasting the modified file here.
Please feel free to update your distribution on your webpage (if you're pleased with the touch up, of course)


mkdir -p $CASROOT/adm/`uname`/

mkdir -p $CASROOT/Darwin/lib
ln -s $CASROOT/Darwin/lib/ $CASROOT/Darwin/Frameworks

cd $CASROOT/adm/Linux/

for text_file in *
     echo "Editing file $text_file"
     sed -e 's/Linux/Darwin/g' -e 's/COMP/XCOMP/g' \
          -e 's/-DLININTEL/-gdwarf-2 -arch i386 -arch ppc/g' \
          -e 's/-DLIN//g' \
          -e 's?-I${JAVAHOME}/include/linux?-I${JAVAHOME}/Headers -I${X11_INCLUDE} ?g' \
          -e 's/-shared/-dynamiclib -Wl,-single_module -arch i386 -arch ppc/g' \
          -e 's/\.so /\.dylib /g' \
          -e 's?-L/usr/X11R6/lib?-L/usr/X11R6/lib -lX11?g' \
          -e 's/-MD//g' \
          -e 's/[a-zA-Z0-9]*\.dylib/& -install_name @executable_path\/\.\.\/Frameworks\/& -Wl,-executable_path \${CASROOT}\/Darwin\/lib/g' \
          $text_file > ../`uname`/$text_file
#     mv -f temp $text_file

cd ../Darwin

sed -e 's/-ldl/-ldl -L${X11_LIB} -lX11/g' TKDraw.lnk > temp
mv temp TKDraw.lnk
sed -e 's/-ldl/-ldl -L${X11_LIB} -lX11/g' DRAWEXE.lnk > temp
mv temp DRAWEXE.lnk

cd ../../..

Michael Rice 2007/12/08 20:26
Hi Torsten -

Could you please let me know where I can download your patches for Mac? I'd like to get OCC 6.2 built on Leopard.

Torsten Sadowski 2007/12/15 15:54
Hi Michael,

sorry for the late reply.

The patches are found here:

I have not yet had time to add the universal build changes.

Cheers, Torsten
Latest news
  • Open CASCADE Technology 6.9.0 is available for download!
  • JT Assistant for Android
  • Open CASCADE JT Assistant Sources

  • © OPEN CASCADE 2000 - 2015  |  Search  |  Contacts   |  Site map