sci-biology/micro-manager: udpate'
This commit is contained in:
203
sci-biology/micro-manager/micro-manager-1.4.13.ebuild
Normal file
203
sci-biology/micro-manager/micro-manager-1.4.13.ebuild
Normal file
@@ -0,0 +1,203 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=( python{2_6,2_7,3_1,3_2,3_3} )
|
||||
PYTHON_SINGLE_TARGET="python2_7"
|
||||
|
||||
inherit eutils autotools python-single-r1 java-pkg-opt-2 flag-o-matic java-utils-2 linux-info vcs-snapshot
|
||||
|
||||
MY_PN="micromanager-upstream"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="The Open Source Microscopy Software"
|
||||
HOMEPAGE="http://www.micro-manager.org/"
|
||||
SRC_URI="http://github.com/mdcurtis/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="LGPL-2.1 BSD GPL-1 GPL-3"
|
||||
KEYWORDS="~x86 ~amd64"
|
||||
IUSE="+java python clojure_editor ieee1394 andor"
|
||||
RESTRICT="mirror"
|
||||
|
||||
RDEPEND="java? (
|
||||
>=virtual/jre-1.5
|
||||
)
|
||||
ieee1394? ( media-libs/libdc1394 )"
|
||||
|
||||
DEPEND="dev-lang/swig
|
||||
dev-libs/boost
|
||||
java? (
|
||||
>=virtual/jdk-1.5
|
||||
>=sci-biology/imagej-1.46e
|
||||
dev-java/bsh
|
||||
dev-java/commons-math:2
|
||||
dev-java/swingx:1.6
|
||||
dev-java/swing-layout:1
|
||||
dev-java/absolutelayout
|
||||
dev-java/jfreechart:1.0
|
||||
dev-lang/clojure
|
||||
clojure_editor? ( dev-util/clooj )
|
||||
sci-libs/TSFProto
|
||||
sci-libs/bioformats
|
||||
)
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
dev-python/numpy
|
||||
)
|
||||
andor? ( sci-libs/andor-camera-driver:2 )"
|
||||
|
||||
pkg_setup() {
|
||||
if linux_config_exists; then
|
||||
linux_chkconfig_string VIDEO_V4L2
|
||||
if ! linux_chkconfig_present VIDEO_V4L2; then
|
||||
einfo "Enable MEDIA_CAMERA_SUPPORT in kernel to install v4l DeviceAdapter."
|
||||
fi
|
||||
else
|
||||
ewarn "Could not confirm that v4l is compiled in kernel, so video4linux"
|
||||
ewarn "DeviceAdapter may silently fail to compile."
|
||||
fi
|
||||
|
||||
use java && java-pkg-opt-2_pkg_setup
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
einfo "Patching zlib detection"
|
||||
for file in configure.in DeviceKit/configure.in; do
|
||||
sed -i -e "s/libz.a/libz.so/g" $file
|
||||
done
|
||||
epatch ${FILESDIR}/mmcorepy_setup_add_zlib.patch
|
||||
einfo "Patching v4l detection"
|
||||
sed -i -e "s/libv4l2.h/linux\/videodev2.h/g" DeviceAdapters/configure.in
|
||||
epatch ${FILESDIR}/andor_camera_detection.patch
|
||||
epatch ${FILESDIR}/arduino_detection.patch
|
||||
|
||||
ebegin "Bootstrap started. This can take several minutes"
|
||||
sh mmUnixBuild.sh
|
||||
eend
|
||||
|
||||
einfo "Patching to prevent imagej collision"
|
||||
sed -i -e '/cp $(IJJARPATH)/d' mmstudio/Makefile.am
|
||||
einfo "Patching to prevent scripts removal"
|
||||
sed -i -e '/rm -rf $(IJPATH)\/scripts.*$/d' scripts/Makefile.am
|
||||
|
||||
if use python; then
|
||||
einfo "Patching numpy include directory"
|
||||
local numpy_sitedir
|
||||
numpy_includedir=$(python_get_sitedir)/numpy/core/include/numpy
|
||||
sed -i -e "/include_dirs/s~=.*~= \[\"${numpy_includedir}\"\]~" MMCorePy_wrap/setup.py
|
||||
|
||||
einfo "Patching Python bindings to respect DESTDIR"
|
||||
sed -i -e 's: $(DEVICEADAPTERPATH): $(DESTDIR)\/$(DEVICEADAPTERPATH):' MMCorePy_wrap/Makefile.am
|
||||
fi
|
||||
|
||||
if use java; then
|
||||
einfo "Patching to allow parallel compilations of plugins"
|
||||
# making and clearing a single `build' directory prevents
|
||||
# multiple plugins from being built simultaneously
|
||||
sed -i -e 's/build/build_$@/g' plugins/Makefile.am
|
||||
|
||||
# TODO Make ebuilds for lwm, gaussian
|
||||
# Removing plugins requiring these deps until ebuilds made
|
||||
REMOVE_MM_PLUGINS="DataBrowser Gaussian"
|
||||
if ! use clojure_editor ; then
|
||||
REMOVE_MM_PLUGINS="${REMOVE_MM_PLUGINS} ClojureEditor"
|
||||
fi
|
||||
einfo "Removing unsupported Clojure plugins: ${REMOVE_MM_PLUGINS}"
|
||||
for PLUGIN in ${REMOVE_MM_PLUGINS}; do
|
||||
einfo "Removing ${PLUGIN} plugin"
|
||||
sed -i -e "/^all:/s/$PLUGIN\.jar//g" \
|
||||
-e "/^\tcp $PLUGIN\.jar/d" \
|
||||
plugins/Makefile.am
|
||||
done
|
||||
|
||||
eautoconf
|
||||
# FIXME eautoreconf should replace eautoconf and
|
||||
# subversion_bootstrap lines, but dies because
|
||||
# ./Makefile.am searches for the non-existent
|
||||
# SecretDeviceAdapters directory
|
||||
#eautoreconf
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use java; then
|
||||
append-cppflags $(java-pkg_get-jni-cflags)
|
||||
|
||||
IMAGEJ_DIR=$(dirname `java-pkg_getjar imagej ij.jar`) \
|
||||
|
||||
ebegin 'Creating symlinks to .jar dependencies...'
|
||||
mkdir -p ../3rdpartypublic/classext/
|
||||
pushd ../3rdpartypublic/classext/
|
||||
java-pkg_jar-from bsh bsh.jar bsh-2.0b4.jar
|
||||
java-pkg_jar-from swingx-1.6 swingx.jar swingx-0.9.5.jar
|
||||
java-pkg_jar-from commons-math-2 commons-math.jar commons-math-2.0.jar
|
||||
java-pkg_jar-from swing-layout-1 swing-layout.jar swing-layout-1.0.4.jar
|
||||
java-pkg_jar-from absolutelayout absolutelayout.jar AbsoluteLayout.jar
|
||||
java-pkg_jar-from jfreechart-1.0 jfreechart.jar jfreechart-1.0.13.jar
|
||||
java-pkg_jar-from jcommon-1.0 jcommon.jar jcommon-1.0.16.jar
|
||||
java-pkg_jar-from imagej
|
||||
java-pkg_jar-from clojure-1.4
|
||||
if use clojure_editor; then
|
||||
java-pkg_jar-from clooj clooj-0.3.4-standalone.jar clooj.jar
|
||||
fi
|
||||
java-pkg_jar-from protobuf protobuf.jar gproto.jar
|
||||
java-pkg_jar-from TSFProto
|
||||
java-pkg_jar-from bioformats
|
||||
|
||||
# TODO: Make these dep ebuilds and symlinks for plugins:
|
||||
# lwm, gaussian
|
||||
popd
|
||||
eend
|
||||
else
|
||||
IMAGEJ_DIR='no'
|
||||
fi
|
||||
|
||||
econf \
|
||||
--with-imagej=${IMAGEJ_DIR} \
|
||||
$(use_enable python)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
if use java; then
|
||||
# FIXME java-pkg_dolauncher should replace this bash script.
|
||||
# Problems encountered when attempting this were:
|
||||
# 1. dolauncher uses the same name for the launcher and
|
||||
# the package (gjl_package). What we want for this
|
||||
# package is:
|
||||
# /usr/bin/micro-manager
|
||||
# to contain:
|
||||
# gjl_package=imagej
|
||||
# 2. Fixing issue #1 above by editing the output file
|
||||
# creates unusual behavior with Micro-Manager, always
|
||||
# asking to select a dataset to open on startup.
|
||||
cat <<-EOF > "${T}"/${PN}
|
||||
#!/bin/bash
|
||||
|
||||
(
|
||||
# MM plugins won't load without changing to this path
|
||||
cd /usr/share/imagej/lib
|
||||
|
||||
\$(java-config --java) \\
|
||||
-mx1024m \\
|
||||
-cp \$(java-config -p imagej,libreadline-java) \\
|
||||
ij.ImageJ -run "Micro-Manager Studio"
|
||||
) 2>&1 | tee >(logger -t micro-manager) -
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
make_desktop_entry "${PN}" "Micro-Manager Studio" imagej \
|
||||
"Graphics;Science;Biology"
|
||||
|
||||
dobin "${T}"/${PN}
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user