# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="1" inherit autotools eutils flag-o-matic qt3 check-reqs multilib toolchain-funcs versionator SALOMEVER="5.1.2" MY_V=$(replace_version_separator 2 's' ) MY_P="CAS-${MY_V}" DESCRIPTION="Software development platform for CAD/CAE, 3D surface/solid modeling and data exchange." HOMEPAGE="http://www.opencascade.org" SRC_URI="http://files.opencascade.com/Salome/Salome${SALOMEVER}/InstallWizard_${SALOMEVER}_Debian_4.0.tar.gz" LICENSE="Open-CASCADE-Technology-Public-License" SLOT="0" KEYWORDS="~x86 ~amd64" IUSE="debug java opengl stlport X" DEPEND="java? ( virtual/jdk ) opengl? ( virtual/opengl virtual/glu ) X? ( x11-libs/libXmu ) >=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 ) stlport? ( dev-libs/STLport )" MY_S=${WORKDIR}/${MY_P}_SRC INSTALL_DIR="/opt/${P}/" pkg_setup() { # Determine itk, itcl, tix, tk and tcl versions itk_version=$(grep ITK_VER /usr/include/itk.h | sed 's/^.*"\(.*\)".*/\1/') itcl_version=$(grep ITCL_VER /usr/include/itcl.h | sed 's/^.*"\(.*\)".*/\1/') tix_version=$(grep TIX_VER /usr/include/tix.h | sed 's/^.*"\(.*\)".*/\1/') tk_version=$(grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/') tcl_version=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/') 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} ln -s "${WORKDIR}"/InstallWizard_${SALOMEVER}_Debian_4.0/Products/SOURCES/${MY_P}.tar.gz ${MY_P}.tar.gz unpack ./${MY_P}.tar.gz # Substitute with our ready-made env_DRAW.sh script cp -f "${FILESDIR}"/env_DRAW.sh.template ${MY_S}/env_DRAW.sh # Feed environment variables used by Opencascade compilation cd ${MY_S} sed -i \ -e "s:VAR_CASROOT:${MY_S}:g" \ -e 's:VAR_SYS_BIN:/usr/bin:g' \ -e "s:VAR_SYS_LIB:/usr/$(get_libdir):g" env_DRAW.sh \ || die "Environment variables feed in env_DRAW.sh failed!" # Tweak itk, itcl, tix, tk and tcl versions sed -i \ -e "s:VAR_ITK:itk${itk_version}:g" \ -e "s:VAR_ITCL:itcl${itcl_version}:g" \ -e "s:VAR_TIX:tix${tix_version}:g" \ -e "s:VAR_TK:tk${tk_version}:g" \ -e "s:VAR_TCL:tcl${tcl_version}:g" env_DRAW.sh \ || die "itk, itcl, tix, tk and tcl version tweaking failed!" epatch "${FILESDIR}"/${P}-fixed-DESTDIR.patch chmod u+x configure # Autotools version update source env_DRAW.sh eaclocal || die "eaclocal failed" eautoheader || die "eautoheader failed" eautomake -a -c -f _elibtoolize --force --copy || die "elibtoolize failed" eautoconf || die "eautoconf failed" } src_compile() { cd ${MY_S} # Add the configure options local confargs="--prefix=${INSTALL_DIR} --exec-prefix=${INSTALL_DIR} --with-tcl=/usr/$(get_libdir) --with-tk=/usr/$(get_libdir)" if use X ; then confargs="${confargs} --with-dps-include=/usr/include --with-dps-library=/usr/$(get_libdir)" confargs="${confargs} --with-xmu-include=/usr/include --with-xmu-library=/usr/$(get_libdir)" if use !opengl; then ewarn "Activate OpenGL if you want to be able to visualize geometry. Set "opengl" USE flag." else confargs="${confargs} --with-gl-include=/usr/include --with-gl-library=/usr/$(get_libdir)" fi else if use opengl; then die "OpenGL imply X support! Add "X" USE flag." else ewarn "Activate X and OpenGL if you want to be able to visualize geometry. Set "X" and "opengl" USE flags." fi fi if use java ; then local java_path java_path=`java-config -O` confargs="${confargs} --with-java-include=${java_path}/include" else ewarn "Java wrapping is not going to be compiled. USE flag: "java"" fi # NOTES: To clearly state --with-stlport-include and --with-stlport-library cause troubles. I don't know why.... if use stlport ; then confargs="${confargs} --with-stlport-libname=stlport_gcc" #confargs="${confargs} --with-stlport-include=/usr/include --with-stlport-library=/usr/$(get_libdir)" fi econf ${confargs} \ $(use_with X x ) \ $(use_enable debug ) \ $(use_enable !debug production ) \ || die "Configuration failed" emake || die "Compilation failed" } src_install() { cd "${MY_S}" emake DESTDIR="${D}" install || die "Installation failed" if use amd64 ; then dosym ${INSTALL_DIR}/lib64 ${INSTALL_DIR}/lib fi # Tweak the environment variables script cp "${FILESDIR}"/env_DRAW.sh.template env_DRAW.sh sed -i "s:VAR_CASROOT:/opt/${P}:g" env_DRAW.sh # Build the env.d environment variables cp "${FILESDIR}"/env_DRAW.sh.template 50${PN} sed -i \ -e 's:export ::g' \ -e "s:VAR_CASROOT:/opt/${P}:g" \ -e '1,2d' \ -e '4,14d' \ -e "s:Linux/lib/:Linux/$(get_libdir)/:g" ./50${PN} \ || die "Creation of the /etc/env.d/50opencascade failed!" sed -i "2i\PATH=/opt/${P}/bin/\nLDPATH=/opt/${P}/$(get_libdir)" ./50${PN} \ || die "Creation of the /etc/env.d/50opencascade failed!" # Update both env.d and script with the libraries variables sed -i \ -e 's:VAR_SYS_BIN:/usr/bin:g' \ -e "s:VAR_SYS_LIB:/usr/$(get_libdir):g" \ -e "s:VAR_ITK:itk${itk_version}:g" \ -e "s:VAR_ITCL:itcl${itcl_version}:g" \ -e "s:VAR_TIX:tix${tix_version}:g" \ -e "s:VAR_TK:tk${tk_version}:g" \ -e "s:VAR_TCL:tcl${tcl_version}:g" env_DRAW.sh 50${PN} \ || die "Tweaking of the Tcl/Tk libraries location in env_DRAW.sh and 50opencascade failed!" # Install the env.d variables file doenvd 50${PN} rm 50${PN} } 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" }