blob: e2048a818d4c7a5aa24bd834c964f3a308bb6694 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/tinker/tinker-4.2-r1.ebuild,v 1.1 2006/06/21 14:17:21 spyderous Exp $
inherit fortran toolchain-funcs
FORTRAN="g77 gfortran ifc"
DESCRIPTION="TINKER is a molecular modeling package that includes force fields for handing large molecules and large systems, such as AMBER and CHARMM. A Java based visualization front end is included."
HOMEPAGE="http://dasher.wustl.edu/tinker/"
SRC_URI="ftp://dasher.wustl.edu/pub/tinker.tar.gz"
IUSE="X"
LICENSE="Tinker"
SLOT="0"
KEYWORDS="~x86"
DEPEND="X? (
|| ( dev-java/blackdown-java3d-bin
dev-java/sun-java3d-bin )
)"
S="${WORKDIR}/tinker/source"
src_compile() {
if use X; then
COMPGUI="./compgui.make"
LINK="./linkgui.make"
if use ppc-macos; then
cp ../jar/macosx/sockets.c .
else
cp ../jar/linux/sockets.c .
fi
else
LINK="./link.make"
fi
COMPILE="./compile.make"
LIBRARY="./library.make"
# Need to make sure all of the appropriate config files are in place
# for the build.
# This should be easily customizable for other Fortran compilers, e.g. pg77.
if use ppc-macos; then
cp ../apple/gnu/* .
elif [ "${FORTRANC}" = "ifc" ]; then
cp ../linux/intel/* .
else
cp ../linux/gnu/* .
fi
cp ../make/* .
# Prep build scripts
if use X; then
sed -i \
-e "s:-O3:${CFLAGS}:" \
-e "s:gcc:$(tc-getCC):" \
${COMPGUI}
local JAVA_HOME=$(java-config --jdk-home)
local JAVA_LIB_PATH="${JAVA_HOME}/jre/lib/i386/client"
ln -s ${JAVA_LIB_PATH}/libjvm.so
sed -i -e "s:/local/java/j2sdk1.4.2_05:${JAVA_HOME}:g" ${COMPGUI}
sed -i -e "s:g77:${FORTRANC}:g" ${LINK}
fi
# Default to -O2 if FFLAGS is unset
sed -i -e "s:-O3 -ffast-math:${FFLAGS:- -O2}:" ${COMPILE}
sed -i -e "s:g77:${FORTRANC}:g" ${COMPILE}
# Prep executable script - the one packaged with the distro is b0rked
if use X; then
echo 'java -Djava.library.path=$(java-config -i blackdown-java3d-bin) -cp $(java-config -p blackdown-java3d-bin):/usr/lib/tinker/ffe.jar ffe.Main' > tinker
fi
einfo "Compiling ..."
if use X; then
${COMPGUI} || die "GUI compile failed"
fi
${COMPILE} || die "compile failed"
einfo "Building libraries ..."
${LIBRARY} || die "library creation failed"
einfo "Linking ..."
${LINK} || die "link failed"
}
src_install() {
exeinto /usr/bin
dodoc \
${WORKDIR}/tinker/doc/*.txt \
${WORKDIR}/tinker/doc/release-4.2 \
${WORKDIR}/tinker/doc/*.pdf
if use X; then
if use ppc-macos; then
dolib.so ${WORKDIR}/tinker/jar/macosx/libffe.jnilib
else
dolib.so ${WORKDIR}/tinker/jar/linux/libffe.so
fi
fi
dolib.a libtinker.a
insinto /usr/lib/tinker
if use X; then
doins ${WORKDIR}/tinker/jar/ffe.jar
fi
for EXE in *.x; do
newexe ${EXE} ${EXE%.x}
done
if use X; then
doexe tinker
fi
docinto example
dodoc ${WORKDIR}/tinker/example/*
docinto test
dodoc ${WORKDIR}/tinker/test/*
doexe ${WORKDIR}/tinker/perl/mdavg
insinto /usr/share/tinker/params
doins ${WORKDIR}/tinker/params/*
}
pkg_postinst() {
einfo "Tinker binaries installed to ${ROOT}usr/bin."
einfo "Parameter files installed to ${ROOT}usr/share/tinker/params."
einfo "Call the Java X front-end, Force-Field Explorer, with 'tinker.'"
einfo "It doesn't seem to detect installed Java3D yet, fixes welcome."
einfo "You must edit ${ROOT}usr/bin/tinker if you aren't using Blackdown."
}
|