diff --git a/doc/README.occ b/doc/README.occ new file mode 100644 index 0000000000000000000000000000000000000000..f7e1dbd33cfe6a7e1d4f6c18fb61483897a7c43a --- /dev/null +++ b/doc/README.occ @@ -0,0 +1,75 @@ + +How to build OpenCascade 6.1 for Gmsh: + +- get the linux distribution of occ + +- uncompress and apply patches (see below) + +- go to the ros/ subdir and + + ./configure --prefix=/usr/local/opencascade --enable-debug=no + --enable-production=yes --enable-static=yes --enable-shared=no + + make FoundationClasses + make ModelingData + make ModelingAlgorithms + make DataExchange + + (or just go into each dr occ/ros/adm/make/XXX and type 'make') + +- then + + make install + + (or just go into each dir occ/ros/adm/make/XXX and type 'make install') + + +************************************************************************* + +MINGW: too many patches to list here: + +1) export CC="gcc -mno-cygwin -DWNT=1 -DWIN32" + export CXX="g++ -mno-cygwin -DWNT=1 -DWIN32" + +2) fix all OSD_* routines that throw MSVC-specific expcetions (__try, + __finally, etc.) using #defines + +3) fix dllimport/dllexport #defines on the fly when the compiler complains + +I will try to consolidate all these patches in a single one and submit +it to the OCC folks, but it's not easy: we must first find a way to +uniquelyidentify gcc on mingw + +************************************************************************* + +APPLE: + +1) add dummy "malloc.h" in inc/ + +2) comment out 'uname' stuff in OSD/OSD_Path.cxx + +#else +/* + struct utsname info; + uname(&info); + cout << info.sysname << endl; + cout << info.nodename << endl; + cout << info.release << endl; + cout << info.version << endl; + cout << info.machine << endl; +*/ + return OSD_Default; +} + +3) IMPORTANT (mmap crashes): add this in Standard/Standard.cxx + +#if defined(__APPLE__) + bMMap = atoi("0"); +#else + bMMap = atoi((var = getenv("MMGT_MMAP" )) ? var : "1" ); +#endif + + +************************************************************************* + +PS: to strip static libaries of debug symbols, use "strip -S *.a"