blob: 19e588be6fafc69ac6df43c2ba4c6406427602c9 (
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
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/ns/ns-2.31.ebuild,v 1.2 2007/10/01 10:59:40 anant Exp $
inherit eutils toolchain-funcs flag-o-matic
DESCRIPTION="Network Simulator"
HOMEPAGE="http://www.isi.edu/nsnam/ns/"
SRC_URI="http://downloads.sourceforge.net/nsnam/${PN}-src-${PV}.tar.gz"
LICENSE="BSD as-is"
SLOT="0"
KEYWORDS="~ppc ~sparc ~x86 ~amd64"
IUSE="doc debug"
RDEPEND=">=dev-lang/tcl-8.4.5
>=dev-lang/tk-8.4.5
>=dev-tcltk/otcl-1.11
>=dev-tcltk/tclcl-1.17
virtual/libpcap
debug? ( =dev-lang/perl-5*
>=sci-visualization/xgraph-12.1
>=dev-libs/dmalloc-4.8.2
>=dev-tcltk/tcl-debug-2.0 )"
DEPEND="${RDEPEND}
doc? ( virtual/tetex
virtual/ghostscript
dev-tex/latex2html )"
src_unpack() {
unpack "${A}"
cd "${S}"
sed '/$(CC)/s!-g!$(CFLAGS)!g' "${S}/indep-utils/model-gen/Makefile"
}
src_compile() {
local myconf
local mytclver=""
local i
tc-export CC CXX
# correctness is more important than speed
replace-flags -Os -O2
replace-flags -O3 -O2
use debug \
&& myconf="${myconf} --with-tcldebug=/usr/lib/tcldbg2.0" \
|| myconf="${myconf} --with-tcldebug=no"
myconf="${myconf} $(use_with debug dmalloc)"
for i in 8.4 ; do
einfo "Testing TCL ${i}"
has_version "=dev-lang/tcl-${i}*" && mytclver=${i}
[ "${#mytclver}" -gt 2 ] && break
done
einfo "Using TCL ${mytclver}"
myconf="${myconf} --with-tcl-ver=${mytclver} --with-tk-ver=${mytclver}"
econf \
${myconf} \
--mandir=/usr/share/man \
--enable-stl \
--enable-release || die "./configure failed"
emake CCOPT="${CFLAGS}" || die
cd "${S}/indep-utils/dosdbell"
emake DFLAGS="${CFLAGS}" || die
cd "${S}/indep-utils/dosreduce"
${CC} ${CFLAGS} dosreduce.c -o dosreduce
cd "${S}/indep-utils/propagation"
${CXX} ${CXXFLAGS} threshold.cc -o threshold
cd "${S}/indep-utils/model-gen"
emake CFLAGS="${CFLAGS}" || die
if useq doc; then
einfo "Generating extra docs"
cd "${S}/doc"
yes '' | emake all
fi
}
src_install() {
dodir /usr/bin /usr/share/man/man1 /usr/share/doc/${PF} /usr/share/ns
make DESTDIR="${D}" MANDEST=/usr/share/man install \
|| die "make install failed"
dobin nse
dodoc BASE-VERSION COPYRIGHTS FILES HOWTO-CONTRIBUTE README VERSION
dohtml CHANGES.html TODO.html
cd "${S}"
insinto /usr/share/ns
doins -r tcl
cd "${S}/indep-utils/dosdbell"
dobin dosdbell dosdbellasim
newdoc README README.dosdbell
cd "${S}/indep-utils/dosreduce"
dobin dosreduce
newdoc README README.dosreduce
cd "${S}/indep-utils/cmu-scen-gen"
dobin cbrgen.tcl
newdoc README README.cbrgen
cd "${S}/indep-utils/propagation"
dobin threshold
cd "${S}/indep-utils/model-gen"
dobin http_connect http_active
if use doc; then
cd "${S}/doc"
docinto doc
dodoc everything.dvi everything.ps.gz everything.html everything.pdf
docinto model-gen
cd "${S}/indep-utils/model-gen"
dodoc *
fi
}
src_test() {
einfo "Warning, these tests will take upwards of 45 minutes."
einfo "Additionally, as shipped, a number of tests may fail."
einfo "We log to 'validate.run', which you should compare against"
einfo "the shipped 'validate.out' to evaluate success."
einfo "At the time of assembling this ebuild, these test suites failed:"
einfo "srm smac-multihop hier-routing algo-routing mcast vc"
einfo "session mixmode webcache mcache plm wireless-tdma"
./validate 2>&1 | tee "${S}/validate.run"
}
|