diff options
-rw-r--r-- | sci-libs/opencascade/ChangeLog | 11 | ||||
-rw-r--r-- | sci-libs/opencascade/Manifest | 10 | ||||
-rw-r--r-- | sci-libs/opencascade/files/env.ksh.template | 39 | ||||
-rw-r--r-- | sci-libs/opencascade/files/opencascade-6.2-gcc4.patch | 223 | ||||
-rw-r--r-- | sci-libs/opencascade/files/opencascade-6.2-malloc.patch | 9 | ||||
-rw-r--r-- | sci-libs/opencascade/metadata.xml | 5 | ||||
-rw-r--r-- | sci-libs/opencascade/opencascade-6.2.ebuild | 252 |
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" +} |