# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit autotools eutils java-pkg-2 java-ant-2 multilib MY_P="ptII${PV}" S=${WORKDIR}/${MY_P} DESCRIPTION="A Java-based component assembly framework for modeling, simulation, and design of concurrent, real-time, embedded systems." HOMEPAGE="http://ptolemy.eecs.berkeley.edu/ptolemyII/index.htm" SRC_URI="http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII6.0/${MY_P}.src.tar.gz" LICENSE="ptolemy-II" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86" IUSE="codegen doc eclipse jython" COMMONDEP=" >=dev-java/ant-core-1.5.1 >=dev-java/antlr-2.7.5 >=dev-java/asm-3.0 dev-java/javacc jython? ( dev-java/jython ) eclipse? ( =dev-util/eclipse-sdk-3.2* ) codegen? ( dev-libs/boehm-gc )" DEPEND=">=virtual/jdk-1.4 >=app-arch/unzip-5.50 >=sys-apps/findutils-4.1.7 app-arch/zip ${COMMONDEP}" RDEPEND=">=virtual/jre-1.4 ${COMMONDEP}" pkg_setup() { java-pkg-2_pkg_setup if use x86 ; then jvmarch=i386 else jvmarch=${ARCH} fi } src_compile() { export PTII="${S}" export PTIIHOME="${S}" export JAVA_HOME="$(/usr/bin/java-config --jdk-home)" export PTJAVA_HOME="${JAVA_HOME}" # Figure out VM, set up ant classpath and native library paths setup-jvm-opts cd ${S} rm -f config.* mv ${S}/lib/saxon8-dom.jar ${S}/lib/saxon8.jar eautoconf local myconf="" if use jython; then myconf="${myconf} --with-jython=/usr/share/jython/lib" else rm -f ${S}/lib/jython.jar rm -rf ${S}/ptolemy/actor/lib/python rm -rf ${S}/ptolemy/actor/gui/python fi if use eclipse; then myconf="${myconf} --with-eclipse=/usr/lib/eclipse-3.2" fi if use codegen; then myconf="${myconf} --with-gc-include=/usr/include" else myconf="${myconf} --without-gc-include" fi ./configure --prefix=/opt/${MY_P} --with-java="${JAVA_HOME}" \ $(use_with jython) $(use_with eclipse) \ ${myconf} \ || die "configure failed" epatch "${FILESDIR}/${PN}-kruft.patch" || die "kruft patch failed" use jython || epatch "${FILESDIR}/${PN}-nopython.patch" \ || die "nopython patch failed" make clean fast || die "make failed" cd ${S}/ptolemy/data/expr rm PtParser.jj PtParser.java rm MatrixParser.jj MatrixParser.java make || die "make parser failed" cd ${S} make install || die "make jars failed" } src_install() { local dirs="bin com config diva jni lib ptolemy thales" dodir /opt/${MY_P} make DESTDIR=${D} jar_dist || die "make install failed" rm -f ${S}/bin/*.bat for i in $dirs ; do cp -pPR $i ${D}opt/${MY_P}/ done cp -p ${S}/ptII.jar ${D}/opt/${MY_P}/ptolemy-II.jar # mv ${D}opt/${MY_P}/lib/polyglotclasses-1.3.2.jar \ # ${D}opt/${MY_P}/lib/polyglotclasses.jar java-pkg_regjar ${D}opt/${MY_P}/ptolemy-II.jar java-pkg_regjar ${D}opt/${MY_P}/ptolemy/ptsupport.jar java-pkg_regjar ${D}opt/${MY_P}/diva/diva.jar java-pkg_regjar ${D}opt/${MY_P}/thales/thales.jar # java-pkg_regjar ${D}opt/${MY_P}/lib/*.jar dosed "s:var/tmp/portage/sci-misc/ptolemy-II-6.0.2/work:opt:g" \ ${D}opt/${MY_P}/bin/ptinvoke || die "dosed failed" dodir /etc/env.d echo 'PATH="$PATH":/opt/${MY_P}/bin' > ${D}etc/env.d/20ptolemy-II echo "PTII=/opt/${MY_P}" >> ${D}etc/env.d/20ptolemy-II dodoc README.txt copyright.txt if use doc; then dohtml -r doc/* fi } setup-jvm-opts() { # Figure out correct boot classpath # stolen from eclipse-sdk ebuild local bp="$(java-config --jdk-home)/jre/lib" local bootclasspath=$(java-config --runtime) if [[ ! -z "`java-config --java-version | grep IBM`" ]] ; then # IBM JDK JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin" else # Sun derived JDKs (Blackdown, Sun) JAVA_LIB_DIR="$(java-config --jdk-home)/jre/lib/${jvmarch}" fi einfo "Using bootclasspath ${bootclasspath}" einfo "Using JVM library path ${JAVA_LIB_DIR}" if [[ ! -f ${JAVA_LIB_DIR}/libawt.so ]] ; then die "Could not find libawt.so native library" fi export AWT_LIB_PATH=${JAVA_LIB_DIR} }