aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieltourde <danieltourde@32389bae-6d03-0410-99cf-db05cde120eb>2008-05-12 17:05:54 +0000
committerdanieltourde <danieltourde@32389bae-6d03-0410-99cf-db05cde120eb>2008-05-12 17:05:54 +0000
commitcbcb0d2aaf1c92ca102dbbf3b81bee27ea5aee9d (patch)
treecae5b2e4d61ac80640617cbcaa650a7f39fb909e /sci-libs
parentMy first contrib on the science overlay is a library for DICOM files (diff)
downloadsci-cbcb0d2aaf1c92ca102dbbf3b81bee27ea5aee9d.tar.gz
sci-cbcb0d2aaf1c92ca102dbbf3b81bee27ea5aee9d.tar.bz2
sci-cbcb0d2aaf1c92ca102dbbf3b81bee27ea5aee9d.zip
OpenCascade belongs to sci-libs, not sci-misc. OpenCascade being fundamentally a library....
git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@1050 32389bae-6d03-0410-99cf-db05cde120eb
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/opencascade/ChangeLog11
-rw-r--r--sci-libs/opencascade/Manifest10
-rw-r--r--sci-libs/opencascade/files/env.ksh.template39
-rw-r--r--sci-libs/opencascade/files/opencascade-6.2-gcc4.patch223
-rw-r--r--sci-libs/opencascade/files/opencascade-6.2-malloc.patch9
-rw-r--r--sci-libs/opencascade/metadata.xml5
-rw-r--r--sci-libs/opencascade/opencascade-6.2.ebuild252
7 files changed, 549 insertions, 0 deletions
diff --git a/sci-libs/opencascade/ChangeLog b/sci-libs/opencascade/ChangeLog
new file mode 100644
index 000000000..ae23ab708
--- /dev/null
+++ b/sci-libs/opencascade/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for sci-misc/opencascade
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+ 15 Jan 2008; Sébastien Fabbro <bicatali@gentoo.org>
+ +files/opencascade-6.2-gcc4.patch, +files/opencascade-6.2-malloc.patch,
+ +files/env.ksh.template, +metadata.xml, +opencascade-6.2.ebuild:
+ Initial import. See bug #118656 for anything relating the building process.
+ Ebuild from Daniel Tourde <daniel.tourde@caelae.se> and Alvaro Castro
+ <alvcastro@yahoo.es>.
+
diff --git a/sci-libs/opencascade/Manifest b/sci-libs/opencascade/Manifest
new file mode 100644
index 000000000..d52e55c47
--- /dev/null
+++ b/sci-libs/opencascade/Manifest
@@ -0,0 +1,10 @@
+AUX env.ksh.template 1412 RMD160 aaf7c74e1aef841d669cf44c279e747cb336fd2b SHA1 e6f3a1157fdededd671c832ebeb8b25a900ec7ab SHA256 ac13e6d2b0dddbbac1350b24ab4fb44d38963fe43dc7732362500f8870dcccb7
+AUX opencascade-6.2-gcc4.patch 9123 RMD160 1dc00703945d1e08af768b33f3af070e8a968fb0 SHA1 610e003897cc0bd08308b374fef5f01e18576902 SHA256 221f728c17139f20731941265d0fa09a95f8868eaf50120ae64822cba030ad35
+AUX opencascade-6.2-malloc.patch 325 RMD160 44d691df74c4fa197fbc67efe006db6ef22f017c SHA1 9a4b11781b3ee1e8b9c7a63de9fee1dddbae7684 SHA256 e7bf123ee9ad7a883bb24b4dd46189546145aa3e8bb46bbf2b4fca065bf11327
+DIST opencascade-6.2.tar.bz2 48068224 RMD160 750d80fec0a3c4d9c26613f93ed819a649be934a SHA1 a0135da031095e081ec739dc9c40f6826d5811f6 SHA256 bacc9c90d4d2b09b43010001669c684c9479223f7d30c9ac1152daeffed2b0b4
+DIST opencascade-samples-java-6.2.tar.bz2 538012 RMD160 2b570eee63c9eff2f370b7973e1d12bb9718332c SHA1 9bd8d7596e882a6608781d4967453cc002efdd8d SHA256 636dbda1a0584e00aca243546a3e14b8891ffebeca7d3e3dc940b4f0f6c6a30a
+DIST opencascade-samples-qt-6.2.tar.bz2 42553 RMD160 3cec392ef9973ab74c1cd404bdc35d5a4e652807 SHA1 46515926973f09dcf3e2347cecfe025ee8621735 SHA256 45b8ab70f06377196a6f3f3170cafcabb8520d091030400346006a0c2521dc1d
+DIST opencascade-tutorial-6.2.tar.bz2 40245 RMD160 638c86493a67aeea97870ca1d38a91d403eb0661 SHA1 c2cc31fafcdaecda60c51b351339de9910fe2b7e SHA256 d5d7dae21a61f0944af7ff4987b5274c48308a670e94350d2477c499720d1784
+EBUILD opencascade-6.2.ebuild 8014 RMD160 a124ebc1ed45f3a0ff4d13406667917a1904ae69 SHA1 f3a3ad72eca7a278a06e89769aee0cdcfb968878 SHA256 95c2dcc377648c22cc05b8640f3cdbe399f175f2d92e3e07add5b35102a5d66a
+MISC ChangeLog 492 RMD160 f538b2ac0bb79a483613b199136958087e54cdd5 SHA1 1b84978052daeee95190dca92408667ecbbd2b96 SHA256 ae297d798ce6018bb1ab096ee143cfe0b37b204b4e9ee1f2d863f8c8a807b4e4
+MISC metadata.xml 157 RMD160 ed43b99e7bf8bbf62cf4e46152138ab42d3a88c5 SHA1 2182a6de0b10959aad51af2990f1a6c69e34dd97 SHA256 750cb9e46ac2b77e1adf73de43c186a8c2d2234a9c6a89d9358d0969dc5cf8ac
diff --git a/sci-libs/opencascade/files/env.ksh.template b/sci-libs/opencascade/files/env.ksh.template
new file mode 100644
index 000000000..55d772a9f
--- /dev/null
+++ b/sci-libs/opencascade/files/env.ksh.template
@@ -0,0 +1,39 @@
+#!/bin/ksh -f
+
+export CASROOT=VAR_CASROOT
+
+if [ -z "PATH" ];
+then PATH=VAR_CASROOT/Linux/bin;
+else PATH=VAR_CASROOT/Linux/bin:$PATH;
+fi
+export PATH
+if [ -z "LD_LIBRARY_PATH" ];
+then LD_LIBRARY_PATH=VAR_CASROOT/Linux/lib;
+else LD_LIBRARY_PATH=VAR_CASROOT/Linux/lib:$LD_LIBRARY_PATH;
+fi
+export LD_LIBRARY_PATH
+export CSF_MDTVFontDirectory=VAR_CASROOT/src/FontMFT
+export CSF_LANGUAGE=us
+export MMGT_CLEAR=1
+export CSF_EXCEPTION_PROMPT=1
+export CSF_SHMessage=VAR_CASROOT/src/SHMessage
+export CSF_MDTVTexturesDirectory=VAR_CASROOT/src/Textures
+export CSF_XSMessage=VAR_CASROOT/src/XSMessage
+export CSF_StandardDefaults=VAR_CASROOT/src/StdResource
+export CSF_PluginDefaults=VAR_CASROOT/src/StdResource
+export CSF_XCAFDefaults=VAR_CASROOT/src/StdResource
+export CSF_StandardLiteDefaults=VAR_CASROOT/src/StdResource
+export CSF_GraphicShr=VAR_CASROOT/Linux/lib/libTKOpenGl.so
+export CSF_UnitsLexicon=VAR_CASROOT/src/UnitsAPI/Lexi_Expr.dat
+export CSF_UnitsDefinition=VAR_CASROOT/src/UnitsAPI/Units.dat
+export CSF_IGESDefaults=VAR_CASROOT/src/XSTEPResource
+export CSF_STEPDefaults=VAR_CASROOT/src/XSTEPResource
+export CSF_XmlOcafResource=VAR_CASROOT/src/XmlOcafResource
+
+export TCLHOME=VAR_SYS_BIN
+export TCLLIBPATH=VAR_SYS_LIB
+export ITK_LIBRARY=VAR_SYS_LIB/VAR_ITK
+export ITCL_LIBRARY=VAR_SYS_LIB/VAR_ITCL
+export TIX_LIBRARY=VAR_SYS_LIB/VAR_TIX
+export TK_LIBRARY=VAR_SYS_LIB/VAR_TK
+export TCL_LIBRARY=VAR_SYS_LIB/VAR_TCL
diff --git a/sci-libs/opencascade/files/opencascade-6.2-gcc4.patch b/sci-libs/opencascade/files/opencascade-6.2-gcc4.patch
new file mode 100644
index 000000000..e1fef02cb
--- /dev/null
+++ b/sci-libs/opencascade/files/opencascade-6.2-gcc4.patch
@@ -0,0 +1,223 @@
+diff -aur occ6.2/ros/configure.in mod/ros/configure.in
+--- occ6.2/ros/configure.in 2007-08-28 13:07:07.000000000 -0500
++++ mod/ros/configure.in 2007-08-29 14:54:32.207292566 -0500
+@@ -629,6 +629,24 @@
+ CXXFLAGS="$CXXFLAGS_save"
+ ],[AC_MSG_WARN(No --with-stlport-library=DIR was specified)])
+
++
++# Test for 64-bit platforms
++AC_CHECK_HEADERS( [stdlib.h inttypes.h stdint.h] )
++AC_MSG_CHECKING([if platform is 64-bit])
++AC_TRY_COMPILE(
++[#include <stdlib.h>
++ #ifdef HAVE_INTTYPES_H
++ #include <inttypes.h>
++ #endif
++ #ifdef HAVE_STDINT_H
++ #include <stdint.h>
++ #endif
++],
++[size_t j;
++ uint64_t* i = &j;
++], [AC_MSG_RESULT([yes]); CPPFLAGS="$CPPFLAGS -D_OCC64"],
++ [AC_MSG_RESULT([no])] )
++
+ AC_ENABLE_DEBUG(yes)
+ AC_DISABLE_PRODUCTION
+
+diff -aur occ6.2/ros/configure.in mod/ros/configure.in
+--- occ6.2/ros/configure.in 2007-08-28 13:07:07.000000000 -0500
++++ mod/ros/configure.in 2007-08-29 14:54:32.207292566 -0500
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT(config.h.in)
++AC_INIT([OpenCAS], [5.0DVP1])
+ AC_CONFIG_AUX_DIR(make)
+-AM_INIT_AUTOMAKE(OpenCAS,5.0DVP1)
++AM_INIT_AUTOMAKE([foreign])
+ AC_CANONICAL_HOST
+ dnl AM_CONFIG_SRCDIR(src/Standard/Standard.cxx)
+
+@@ -383,7 +383,7 @@
+
+ AC_LANG([C])
+ CFLAGS_save=$CFLAGS
+-CFLAGS="$CXXFLAGS $GL_INCLUDE"
++CFLAGS="$CFLAGS $GL_INCLUDE"
+ AC_CHECK_TYPE(_GLUfuncptr,[],[CFLAGS_save="-DNOGLUfuncptr=1 $CFLAGS_save"],[#include "GL/glu.h"])
+ CFLAGS="$CFLAGS_save"
+
+@@ -604,8 +604,8 @@
+ INCLUDE="$STLPort_INCLUDES $INCLUDE"
+ CPPFLAGS_save=$CPPFLAGS
+ CPPFLAGS="$INCLUDE $CPPFLAGS"
+-CXXFLAGS_save=$CPPFLAGS
+-CXXFLAGS="$INCLUDE $CPPFLAGS"
++CXXFLAGS_save=$CXXFLAGS
++CXXFLAGS="$INCLUDE $CXXFLAGS"
+ LDFLAGS_save=$LDFLAGS
+ if test -d "${with_stlport_library}" ; then
+ STLPort_LIB="-L`(cd ${with_stlport_library}; pwd)` -l$STLPort_LIB_CC"
+diff -aur occ6.2/ros/src/LDOM/LDOM_OSStream.hxx mod/ros/src/LDOM/LDOM_OSStream.hxx
+--- occ6.2/ros/src/LDOM/LDOM_OSStream.hxx 2007-08-28 13:06:11.000000000 -0500
++++ mod/ros/src/LDOM/LDOM_OSStream.hxx 2007-08-28 14:47:55.261582955 -0500
+@@ -29,6 +29,7 @@
+ #include <Standard_Boolean.hxx>
+
+ #include <stdlib.h>
++#include <stdio.h>
+
+ class LDOM_StringElem; // defined in cxx file
+
+diff -aur occ6.2/ros/inc/LDOM_OSStream.hxx mod/ros/inc/LDOM_OSStream.hxx
+--- occ6.2/ros/inc/LDOM_OSStream.hxx 2007-08-28 13:06:11.000000000 -0500
++++ mod/ros/inc/LDOM_OSStream.hxx 2007-08-28 14:47:55.261582955 -0500
+@@ -29,6 +29,7 @@
+ #include <Standard_Boolean.hxx>
+
+ #include <stdlib.h>
++#include <stdio.h>
+
+ class LDOM_StringElem; // defined in cxx file
+
+diff -aur occ6.2/ros/src/WOKTools/WOKTools_Options.cxx mod/ros/src/WOKTools/WOKTools_Options.cxx
+--- occ6.2/ros/src/WOKTools/WOKTools_Options.cxx 2007-08-28 13:06:39.000000000 -0500
++++ mod/ros/src/WOKTools/WOKTools_Options.cxx 2007-08-29 15:18:16.813268440 -0500
+@@ -13,6 +13,7 @@
+
+ #include <string.h>
+ #include <stdlib.h>
++#include <stdio.h>
+
+ #include <WOKTools_Options.ixx>
+
+diff -aur occ6.2/ros/src/Standard/Standard_Transient_proto.hxx mod/ros/src/Standard/Standard_Transient_proto.hxx
+--- occ6.2/ros/src/Standard/Standard_Transient_proto.hxx 2007-08-28 13:06:16.000000000 -0500
++++ mod/ros/src/Standard/Standard_Transient_proto.hxx 2007-08-29 13:45:41.614264887 -0500
+@@ -21,6 +21,9 @@
+ //! Abstract class which forms the root of the entire
+ //! Transient class hierarchy.
+
++class Handle(Standard_Transient);
++Standard_EXPORT Handle_Standard_Type& Standard_Transient_Type_();
++
+ class Standard_Transient
+ {
+ //---- uses the friend Standard_Transient class
+diff -aur occ6.2/ros/inc/Standard_Transient_proto.hxx mod/ros/inc/Standard_Transient_proto.hxx
+--- occ6.2/ros/inc/Standard_Transient_proto.hxx 2007-08-28 13:06:16.000000000 -0500
++++ mod/ros/inc/Standard_Transient_proto.hxx 2007-08-29 13:45:41.614264887 -0500
+@@ -21,6 +21,9 @@
+ //! Abstract class which forms the root of the entire
+ //! Transient class hierarchy.
+
++class Handle(Standard_Transient);
++Standard_EXPORT Handle_Standard_Type& Standard_Transient_Type_();
++
+ class Standard_Transient
+ {
+ //---- uses the friend Standard_Transient class
+diff -aur occ6.2/ros/inc/Units_Dimensions.hxx mod/ros/inc/Units_Dimensions.hxx
+--- occ6.2/ros/inc/Units_Dimensions.hxx 2007-08-28 13:06:18.000000000 -0500
++++ mod/ros/inc/Units_Dimensions.hxx 2007-08-29 14:27:08.181281640 -0500
+@@ -190,6 +190,9 @@
+
+ };
+
++Standard_EXPORT Handle(Units_Dimensions) operator *(const Handle(Units_Dimensions)&,const Handle(Units_Dimensions)&);
++Standard_EXPORT Handle(Units_Dimensions) operator /(const Handle(Units_Dimensions)&,const Handle(Units_Dimensions)&);
++Standard_EXPORT Handle(Units_Dimensions) pow(const Handle(Units_Dimensions)&,const Standard_Real);
+
+ #include <Units_Dimensions.lxx>
+
+diff -aur occ6.2/ros/inc/Units_Quantity.hxx mod/ros/inc/Units_Quantity.hxx
+--- occ6.2/ros/inc/Units_Quantity.hxx 2007-08-28 13:06:16.000000000 -0500
++++ mod/ros/inc/Units_Quantity.hxx 2007-08-29 14:30:16.485507150 -0500
+@@ -123,6 +123,7 @@
+
+ };
+
++Standard_EXPORT Standard_Boolean operator ==(const Handle(Units_Quantity)&,const Standard_CString);
+
+ #include <Units_Quantity.lxx>
+
+diff -aur occ6.2/ros/inc/Units_Token.hxx mod/ros/inc/Units_Token.hxx
+--- occ6.2/ros/inc/Units_Token.hxx 2007-08-28 13:06:15.000000000 -0500
++++ mod/ros/inc/Units_Token.hxx 2007-08-29 14:26:05.065206046 -0500
+@@ -252,6 +252,19 @@
+
+ };
+
++Standard_EXPORT Handle(Units_Token) operator +(const Handle(Units_Token)&,const Standard_Integer);
++Standard_EXPORT Handle(Units_Token) operator +(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Handle(Units_Token) operator -(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Handle(Units_Token) operator *(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Handle(Units_Token) operator /(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Handle(Units_Token) pow(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Handle(Units_Token) pow(const Handle(Units_Token)&,const Standard_Real);
++Standard_EXPORT Standard_Boolean operator ==(const Handle(Units_Token)&,const Standard_CString);
++Standard_EXPORT Standard_Boolean operator !=(const Handle(Units_Token)&,const Standard_CString);
++Standard_EXPORT Standard_Boolean operator <=(const Handle(Units_Token)&,const Standard_CString);
++Standard_EXPORT Standard_Boolean operator >(const Handle(Units_Token)&,const Standard_CString);
++Standard_EXPORT Standard_Boolean operator >(const Handle(Units_Token)&,const Handle(Units_Token)&);
++Standard_EXPORT Standard_Boolean operator >=(const Handle(Units_Token)&,const Handle(Units_Token)&);
+
+ #include <Units_Token.lxx>
+
+diff -aur occ6.2/ros/inc/Units_Unit.hxx mod/ros/inc/Units_Unit.hxx
+--- occ6.2/ros/inc/Units_Unit.hxx 2007-08-28 13:06:14.000000000 -0500
++++ mod/ros/inc/Units_Unit.hxx 2007-08-29 14:29:28.661449883 -0500
+@@ -152,6 +152,7 @@
+
+ };
+
++Standard_EXPORT Standard_Boolean operator ==(const Handle(Units_Unit)&,const Standard_CString);
+
+ #include <Units_Unit.lxx>
+
+diff -aur occ6.2/ros/src/Standard/Standard_Persistent.cxx mod/ros/src/Standard/Standard_Persistent.cxx
+--- occ6.2/ros/src/Standard/Standard_Persistent.cxx 2007-08-28 13:06:43.000000000 -0500
++++ mod/ros/src/Standard/Standard_Persistent.cxx 2007-08-29 14:19:10.056708994 -0500
+@@ -9,6 +9,7 @@
+ #include <Standard_TypeMismatch.hxx>
+ #include <Standard_NotImplemented.hxx>
+ #include <Standard_Type.hxx>
++#include <Standard_ShallowDump_proto.hxx>
+
+ //
+ // The Initialization of the Standard_Persistent variables
+diff -aur occ6.2/ros/inc/Standard_ErrorHandlerCallback.hxx mod/ros/inc/Standard_ErrorHandlerCallback.hxx
+--- occ6.2/ros/inc/Standard_ErrorHandlerCallback.hxx 2007-08-28 13:06:14.000000000 -0500
++++ mod/ros/inc/Standard_ErrorHandlerCallback.hxx 2007-08-28 13:49:59.577313381 -0500
+@@ -61,7 +61,7 @@
+ void RegisterCallback() ;
+ //! Unregisters this callback object from the error handler. <br>
+ void UnregisterCallback() ;
+-virtual Standard_EXPORT Standard_ErrorHandlerCallback::~Standard_ErrorHandlerCallback ();
++virtual Standard_EXPORT ~Standard_ErrorHandlerCallback ();
+
+ //! The callback function to perform necessary callback action. <br>
+ //! Called by the exception handler when it is being destroyed but <br>
+diff -aur occ6.2/ros/src/BOPTest/BOPTest_LowCommands.cxx mod/ros/src/BOPTest/BOPTest_LowCommands.cxx
+--- occ6.2/ros/src/BOPTest/BOPTest_LowCommands.cxx 2007-08-28 13:06:45.000000000 -0500
++++ mod/ros/src/BOPTest/BOPTest_LowCommands.cxx 2007-08-29 10:48:58.598290105 -0500
+@@ -792,7 +792,7 @@
+ //=======================================================================
+ class X_Chr {
+ public:
+- X_Chr::X_Chr() {
++ X_Chr() {
+ Reset();
+ }
+ void Reset() {
+--- occ6.2/ros/src/Standard/Standard_SStream.cxx 2007-08-28 13:06:43.000000000 -0500
++++ mod/ros/src/Standard/Standard_SStream.cxx 2007-08-29 15:43:48.839332510 -0500
+@@ -26,6 +26,6 @@
+ ostream& operator<< (ostream& anOstream, Standard_SStream& aSStream)
+ {
+ aSStream << "\0";
+- anOstream << aSStream.rdbuf()->str();
++ anOstream << GetSString(aSStream);
+ return anOstream;
+ }
diff --git a/sci-libs/opencascade/files/opencascade-6.2-malloc.patch b/sci-libs/opencascade/files/opencascade-6.2-malloc.patch
new file mode 100644
index 000000000..f7f137ccc
--- /dev/null
+++ b/sci-libs/opencascade/files/opencascade-6.2-malloc.patch
@@ -0,0 +1,9 @@
+--- src/OSD/OSD_Csharedmemory.c 2007-10-17 10:38:18.000000000 +0200
++++ src/OSD/OSD_Csharedmemory.c.new 2007-10-17 10:38:11.000000000 +0200
+@@ -1,5 +1,6 @@
+ #if !defined( WNT ) && !defined(__hpux) && !defined( HPUX)
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
diff --git a/sci-libs/opencascade/metadata.xml b/sci-libs/opencascade/metadata.xml
new file mode 100644
index 000000000..d369d068f
--- /dev/null
+++ b/sci-libs/opencascade/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+</pkgmetadata>
diff --git a/sci-libs/opencascade/opencascade-6.2.ebuild b/sci-libs/opencascade/opencascade-6.2.ebuild
new file mode 100644
index 000000000..4fc2d97a0
--- /dev/null
+++ b/sci-libs/opencascade/opencascade-6.2.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit autotools eutils flag-o-matic qt3 check-reqs
+
+DESCRIPTION="Software development platform for CAD/CAE, 3D surface/solid modeling and data exchange."
+HOMEPAGE="http://www.opencascade.org"
+SRC_URI="ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/thierry/${P}.tar.bz2
+ ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/thierry/${PN}-tutorial-${PV}.tar.bz2
+ java? (ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/thierry/${PN}-samples-java-${PV}.tar.bz2)
+ qt3? (ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/thierry/${PN}-samples-qt-${PV}.tar.bz2)"
+
+# NOTES
+# The source code here is not in the same form than the one distributed on www.opencascade.org
+# The source available on www.opencascade.org requires a Java installation procedure that does not
+# always work on Gentoo. The source code can however be extracted 'by hand' using
+# 'java -cp ./Linux/setup.jar'
+# and removing 'by hand' all the existing Linux binaries. The source code extracted using this
+# method is currently available on the FreeBSD ftp server.
+# It could be possible to download the Salome binary for linux (500Mb...) and to extract the source from there.
+
+
+LICENSE="Open CASCADE Technology Public License"
+SLOT=0
+KEYWORDS="~x86 ~amd64"
+IUSE="debug doc draw-harness java opengl qt3 stlport X wok"
+DEPEND="java? ( virtual/jdk )
+ opengl? ( virtual/opengl )
+ X? ( x11-base/xorg-x11 )
+ >=dev-lang/tcl-8.4
+ >=dev-lang/tk-8.4
+ >=dev-tcltk/itcl-3.2
+ >=dev-tcltk/itk-3.2
+ x86? ( >=dev-tcltk/tix-8.1 )
+ amd64? ( >=dev-tcltk/tix-8.4.2 )
+ qt3? ( $(qt_min_version 3) )
+ stlport? ( dev-libs/STLport )
+ sys-devel/autoconf
+ sys-devel/automake
+ sys-devel/libtool"
+
+pkg_setup() {
+ ewarn
+ ewarn " It is important to note that OpenCascade is a very large package. "
+ ewarn " Please note that building OpenCascade takes a lot of time and "
+ ewarn " hardware ressources: 3.5-4 GB free diskspace and 256 MB RAM are "
+ ewarn " the minimum requirements. "
+ ewarn
+
+ # Check if we have enough RAM and free diskspace to build this beast
+ CHECKREQS_MEMORY="256"
+ CHECKREQS_DISK_BUILD="3584"
+ check_reqs
+}
+
+
+src_unpack() {
+ unpack ${A}
+
+ # Substitute with our ready-made env.ksh script
+ cp -f "${FILESDIR}"/env.ksh.template "${S}"/ros/env.ksh
+
+ # Feed environment variables used by Opencascade compilation
+ cd "${S}"/ros
+ sed -i "s:VAR_CASROOT:${S}/ros:g" env.ksh
+ sed -i "s:VAR_SYS_BIN:/usr/bin:g" env.ksh
+ sed -i "s:VAR_SYS_LIB:/usr/lib:g" env.ksh
+
+ # Tweak itk version
+ local itk_version
+ itk_version=$(grep ITK_VER /usr/include/itk.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_ITK:itk${itk_version}:g" env.ksh
+
+ # Tweak itcl version
+ local itcl_version
+ itcl_version=$(grep ITCL_VER /usr/include/itcl.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_ITCL:itcl${itcl_version}:g" env.ksh
+
+ # Tweak tix version
+ local tix_version
+ tix_version=$(grep TIX_VER /usr/include/tix.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TIX:tix${tix_version}:g" env.ksh
+
+ # Tweak tk version
+ local tk_version
+ tk_version=$(grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TK:tk${tk_version}:g" env.ksh
+
+ # Tweak tcl version
+ local tcl_version
+ tcl_version=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TCL:tcl${tcl_version}:g" env.ksh
+
+ # Patches
+ if [ gcc-major-version > 4 ] ; then
+ elog "You have gcc4 -> GCC 4.x patch is applied"
+ epatch "${FILESDIR}"/opencascade-6.2-gcc4.patch
+ fi
+ elog "Stdlib malloc patch is applied"
+ epatch "${FILESDIR}"/opencascade-6.2-malloc.patch
+ chmod u+x configure
+}
+
+src_compile() {
+ cd "${S}"/ros
+
+ # Autotools version update
+ source env.ksh
+ eaclocal || die "eaclocal failed"
+ eautoheader || die "eautoheader failed"
+ eautomake -a -c -f
+ _elibtoolize --force --copy || die "elibtoolize failed"
+ eautoconf || die "eautoconf failed"
+
+ # Add the configure options
+ if use opengl && use !X ; then
+ ewarn "OpenGL imply X support! Add "opengl" USE flag."
+ die
+ fi
+
+ local confargs="--prefix=/opt/${P}/ros/lin --with-tcl=/usr/lib/ --with-tk=/usr/lib/"
+
+ if use X ; then
+ confargs="${confargs} --with-xmu-include=/usr/include --with-xmu-library=/usr/lib"
+ if use opengl; then
+ confargs="${confargs} --with-gl-include=/usr/include --with-gl-library=/usr/lib"
+ else
+ ewarn "Activate OpenGL if you want to be able to visualize geometry. Set opengl USE flag."
+ fi
+ else
+ ewarn "Activate X and OpenGL if you want to be able to visualize geometry. Set "X" and "opengl" USE flags."
+ fi
+
+ if use !debug ; then
+ confargs="${confargs} --disable-debug --enable-production"
+ else
+ confargs="${confargs} --enable-debug"
+ fi
+
+ if use stlport ; then
+ confargs="${confargs} --with-stlport-libname=stlport_gcc"
+ fi
+
+ if use java ; then
+ local java_path
+ java_path=`java-config -O`
+ confargs="${confargs} --with-java-include=${java_path}/include/linux"
+ else
+ confargs="${confargs} --disable-jcas"
+ elog "Java wrapping is not going to be compiled. USE flag: java"
+ fi
+
+ if use !wok ; then
+ confargs="${confargs} --disable-wok"
+ elog "WOK is not going to be compiled. USE flag: wok"
+ fi
+
+ if use !draw-harness ; then
+ confargs="${confargs} --disable-draw"
+ elog "DRAW test harness is not going to be compiled. USE flag: draw-harness"
+ fi
+
+ # Compiler and linker flags
+ if use amd64 ; then
+ append-flags -m64
+ fi
+ append-ldflags -lpthread
+
+ econf ${confargs} || die "econf failed"
+ emake || die "emake failed"
+}
+
+
+src_install() {
+ cd "${S}"/ros
+ rm *~
+ emake install DESTDIR="${D}" || die "emake install failed"
+
+ # Symlinks for keeping original OpenCascade folder structure
+ dosym /opt/${P}/ros/lin /opt/${P}/ros/Linux
+ if use amd64 ; then
+ dosym /opt/${P}/ros/lin/lib64 /opt/${P}/ros/lin/lib
+ fi
+
+ # Tweak the environment variables script
+ cp "${FILESDIR}"/env.ksh.template env.ksh
+ sed -i "s:VAR_CASROOT:/opt/${P}/ros:g" env.ksh
+
+ # Build the env.d environment variables
+ cp "${FILESDIR}"/env.ksh.template 50${PN}
+ sed -i "s:export ::g" ./50${PN}
+ sed -i "s:VAR_CASROOT:/opt/${P}/ros:g" 50${PN}
+ sed -i "1,2d" ./50${PN}
+ sed -i "2,12d" ./50${PN}
+ sed -i "2i\PATH=/opt/${P}/ros/Linux/bin/\nLDPATH=/opt/${P}/ros/Linux/lib" ./50${PN}
+
+ # Update both env.d and script with the libraries variables
+ sed -i "s:VAR_SYS_BIN:/usr/bin:g" env.ksh 50${PN}
+ sed -i "s:VAR_SYS_LIB:/usr/lib:g" env.ksh 50${PN}
+ local itk_version
+ itk_version=$(grep ITK_VER /usr/include/itk.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_ITK:itk${itk_version}:g" env.ksh 50${PN}
+ local itcl_version
+ itcl_version=$(grep ITCL_VER /usr/include/itcl.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_ITCL:itcl${itcl_version}:g" env.ksh 50${PN}
+ local tix_version
+ tix_version=$(grep TIX_VER /usr/include/tix.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TIX:tix${tix_version}:g" env.ksh 50${PN}
+ local tk_version
+ tk_version=$(grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TK:tk${tk_version}:g" env.ksh 50${PN}
+ local tcl_version
+ tcl_version=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')
+ sed -i "s:VAR_TCL:tcl${tcl_version}:g" env.ksh 50${PN}
+
+ # Install the env.d variables file
+ dodir /etc/env.d
+ insinto /etc/env.d
+ doins 50${PN}
+ rm 50${PN} env.csh
+
+ # Install binaries
+ cd "${D}"/opt/"${P}"/ros/lin/bin
+ if use draw-harness ; then
+ newbin DRAWEXE draw-harness
+ fi
+ if use wok ; then
+ dobin woksh
+ dobin wokprocess
+ fi
+
+ # Clean before copying everything
+ cd "${S}"/ros
+ emake clean || die "emake clean failed"
+
+ # Install folders
+ cd "${S}"
+ insinto /opt/${P}
+ doins -r data ros tools wok samples
+
+ # Install the documentation
+ if use doc ; then
+ cd "${S}"/doc
+ insinto /usr/share/doc/${PF}
+ doins -r * || die "doins doc failed"
+ fi
+}
+
+pkg_postinst() {
+ einfo "Open CASCADE ebuild needs further development. Please inform any problems or improvements in http://bugs.gentoo.org/show_bug.cgi?id=118656"
+}