Gentoo Archives: gentoo-commits

From: Nicolas Bock <nicolasbock@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: sys-cluster/charm/
Date: Tue, 02 Jul 2013 03:32:52
Message-Id: 1372735953.ad69795e376835bb60569f8d6207c5776edefdcb.nicolasbock@gentoo
1 commit: ad69795e376835bb60569f8d6207c5776edefdcb
2 Author: Nicolas Bock <nicolasbock <AT> gmail <DOT> com>
3 AuthorDate: Tue Jul 2 03:32:33 2013 +0000
4 Commit: Nicolas Bock <nicolasbock <AT> gmail <DOT> com>
5 CommitDate: Tue Jul 2 03:32:33 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=ad69795e
7
8 Version bump to sys-cluster/charm-6.5.1
9
10 Package-Manager: portage-2.2.0_alpha186
11
12 ---
13 sys-cluster/charm/ChangeLog | 9 ++
14 sys-cluster/charm/charm-6.5.1.ebuild | 178 +++++++++++++++++++++++++++++++++++
15 sys-cluster/charm/metadata.xml | 15 +++
16 3 files changed, 202 insertions(+)
17
18 diff --git a/sys-cluster/charm/ChangeLog b/sys-cluster/charm/ChangeLog
19 new file mode 100644
20 index 0000000..3563efb
21 --- /dev/null
22 +++ b/sys-cluster/charm/ChangeLog
23 @@ -0,0 +1,9 @@
24 +# ChangeLog for sys-cluster/charm
25 +# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
26 +# $Header: $
27 +
28 +*charm-6.5.1 (02 Jul 2013)
29 +
30 + 02 Jul 2013; Nicolas Bock <nicolasbock@×××××.com> +charm-6.5.1.ebuild,
31 + +metadata.xml:
32 + Version bump to sys-cluster/charm-6.5.1
33
34 diff --git a/sys-cluster/charm/charm-6.5.1.ebuild b/sys-cluster/charm/charm-6.5.1.ebuild
35 new file mode 100644
36 index 0000000..25982f8
37 --- /dev/null
38 +++ b/sys-cluster/charm/charm-6.5.1.ebuild
39 @@ -0,0 +1,178 @@
40 +# Copyright 1999-2013 Gentoo Foundation
41 +# Distributed under the terms of the GNU General Public License v2
42 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/charm/charm-6.5.0.ebuild,v 1.1 2013/06/26 23:58:38 ottxor Exp $
43 +
44 +EAPI=5
45 +
46 +inherit eutils flag-o-matic fortran-2 multilib toolchain-funcs
47 +
48 +DESCRIPTION="Message-passing parallel language and runtime system"
49 +HOMEPAGE="http://charm.cs.uiuc.edu/"
50 +SRC_URI="http://charm.cs.uiuc.edu/distrib/${P}.tar.gz"
51 +
52 +LICENSE="charm"
53 +SLOT="0"
54 +KEYWORDS="~amd64 ~x86"
55 +IUSE="charmdebug charmtracing charmproduction cmkopt doc examples mpi smp static-libs tcp"
56 +
57 +RDEPEND="mpi? ( virtual/mpi )"
58 +DEPEND="
59 + ${RDEPEND}
60 + doc? (
61 + >=app-text/poppler-0.12.3-r3[utils]
62 + dev-tex/latex2html
63 + virtual/tex-base
64 + )"
65 +
66 +REQUIRED_USE="
67 + cmkopt? ( !charmdebug !charmtracing )
68 + charmproduction? ( !charmdebug !charmtracing )"
69 +
70 +FORTRAN_STANDARD="90"
71 +
72 +src_prepare() {
73 + # Build shared libraries by default.
74 + CHARM_OPTS="--build-shared"
75 + if use charmproduction; then
76 + CHARM_OPTS+=" --with-production"
77 + else
78 + if use charmdebug; then
79 + CHARM_OPTS+=" --with-charmdebug"
80 + fi
81 +
82 + if use charmtracing; then
83 + CHARM_OPTS+=" --with-tracing --with-tracing-commthread"
84 + fi
85 + fi
86 +
87 + # TCP instead of default UDP for socket comunication
88 + # protocol
89 + CHARM_OPTS+="$(usex tcp ' tcp' '')"
90 +
91 + # enable direct SMP support using shared memory
92 + CHARM_OPTS+="$(usex smp ' smp' '')"
93 +
94 + # CMK optimization
95 + use cmkopt && append-cppflags -DCMK_OPTIMIZE=1
96 +
97 + sed \
98 + -e "/CMK_CF90/s:f90:$(usex mpi "mpif90" "$(tc-getFC)"):g" \
99 + -e "/CMK_CXX/s:g++:$(usex mpi "mpic++" "$(tc-getCXX)"):g" \
100 + -e "/CMK_CC/s:gcc:$(usex mpi "mpicc" "$(tc-getCC)"):g" \
101 + -e '/CMK_F90_MODINC/s:-p:-I:g' \
102 + -e "/CMK_LD/s:\"$: ${LDFLAGS} \":g" \
103 + -i src/arch/$(usex mpi "mpi" "net")-linux*/*sh || die
104 +
105 + sed \
106 + -e "s:-o conv-cpm:${LDFLAGS} &:g" \
107 + -e "s:-o charmxi:${LDFLAGS} &:g" \
108 + -e "s:-o charmrun-silent:${LDFLAGS} &:g" \
109 + -e "s:-o charmrun-notify:${LDFLAGS} &:g" \
110 + -e "s:-o charmrun:${LDFLAGS} &:g" \
111 + -e "s:-o charmd_faceless:${LDFLAGS} &:g" \
112 + -e "s:-o charmd:${LDFLAGS} &:g" \
113 + -i \
114 + src/scripts/Makefile \
115 + src/arch/net/charmrun/Makefile || die
116 +
117 + einfo "charm opts: ${CHARM_OPTS}"
118 +}
119 +
120 +src_compile() {
121 + # Build charmm++ first.
122 + ./build charm++ $(usex mpi "mpi" "net")-linux$(usex amd64 "-amd64" '') \
123 + ${CHARM_OPTS} ${MAKEOPTS} ${CFLAGS} || die "Failed to build charm++"
124 +
125 + # make pdf/html docs
126 + if use doc; then
127 + cd "${S}"/doc
128 + make doc || die "failed to create pdf/html docs"
129 + fi
130 +}
131 +
132 +src_test() {
133 + make -C tests/charm++ test TESTOPTS="++local" || die
134 +}
135 +
136 +src_install() {
137 + # Make charmc play well with gentoo before we move it into /usr/bin.
138 + epatch "${FILESDIR}/charm-6.5.0-charmc-gentoo.patch"
139 +
140 + sed -e "s|gentoo-include|${P}|" \
141 + -e "s|gentoo-libdir|$(get_libdir)|g" \
142 + -e "s|VERSION|${P}/VERSION|" \
143 + -i ./src/scripts/charmc || die "failed patching charmc script"
144 +
145 + # In the following, some of the files are symlinks to ../tmp which we need
146 + # to dereference first (see bug 432834).
147 +
148 + local i
149 +
150 + # Install binaries.
151 + for i in bin/*; do
152 + if [[ -L ${i} ]]; then
153 + i=$(readlink -e "${i}") || die
154 + fi
155 + dobin "${i}"
156 + done
157 +
158 + # Install headers.
159 + insinto /usr/include/${P}
160 + for i in include/*; do
161 + if [[ -L ${i} ]]; then
162 + i=$(readlink -e "${i}") || die
163 + fi
164 + doins "${i}"
165 + done
166 +
167 + # Install static libs. Charm has a lot of .o "libs" that it requires at
168 + # runtime.
169 + if use static-libs; then
170 + for i in lib/*.{a,o}; do
171 + if [[ -L ${i} ]]; then
172 + i=$(readlink -e "${i}") || die
173 + fi
174 + dolib "${i}"
175 + done
176 + fi
177 +
178 + # Install shared libs.
179 + for i in lib_so/*; do
180 + if [[ -L ${i} ]]; then
181 + i=$(readlink -e "${i}") || die
182 + fi
183 + dolib.so "${i}"
184 + done
185 +
186 + # Basic docs.
187 + dodoc CHANGES README
188 +
189 + # Install examples.
190 + if use examples; then
191 + find examples/ -name 'Makefile' | xargs sed \
192 + -r "s:(../)+bin/charmc:/usr/bin/charmc:" -i || \
193 + die "Failed to fix examples"
194 + find examples/ -name 'Makefile' | xargs sed \
195 + -r "s:./charmrun:./charmrun ++local:" -i || \
196 + die "Failed to fix examples"
197 + insinto /usr/share/doc/${PF}/examples
198 + doins -r examples/charm++/*
199 + fi
200 +
201 + # Install pdf/html docs
202 + if use doc; then
203 + cd "${S}"/doc
204 + # Install pdfs.
205 + insinto /usr/share/doc/${PF}/pdf
206 + doins doc/pdf/*
207 + # Install html.
208 + docinto html
209 + dohtml -r doc/html/*
210 + fi
211 +}
212 +
213 +pkg_postinst() {
214 + einfo "Please test your charm installation by copying the"
215 + einfo "content of /usr/share/doc/${PF}/examples to a"
216 + einfo "temporary location and run 'make test'."
217 +}
218
219 diff --git a/sys-cluster/charm/metadata.xml b/sys-cluster/charm/metadata.xml
220 new file mode 100644
221 index 0000000..ea5896e
222 --- /dev/null
223 +++ b/sys-cluster/charm/metadata.xml
224 @@ -0,0 +1,15 @@
225 +<?xml version="1.0" encoding="UTF-8"?>
226 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
227 +<pkgmetadata>
228 + <herd>sci</herd>
229 + <maintainer>
230 + <email>nicolasbock@×××××.com</email>
231 + </maintainer>
232 + <use>
233 + <flag name="charmdebug">Enable the charm debugger</flag>
234 + <flag name="charmproduction">Optimize performance of Charm++ runtime</flag>
235 + <flag name="charmtracing">Enable tracing support in Charm++</flag>
236 + <flag name="cmkopt">Enable CMK optimisation</flag>
237 + <flag name="tcp">Use TCP (instead of UPD) for socket communication</flag>
238 + </use>
239 +</pkgmetadata>