summaryrefslogtreecommitdiff
blob: c02f26ccfdc5806208e2a8e515be3923c45d5dc5 (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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-sci/tbass/tbass-20030725.3.3.ebuild,v 1.9 2004/07/01 11:55:06 eradicator Exp $

inherit eutils

IUSE=""

Name="balsa"
My_PV="3.3"
#quite custom anyway, this one has version number at the end
#to indicate it is a release

DESCRIPTION="Balsa is both a framework for synthesising asynchronous hardware systems and the language for describing such systems"
HOMEPAGE="http://www.cs.man.ac.uk/amulet/projects/balsa/"
SRC_URI="ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/${My_PV}/${Name}-${My_PV}.tar.gz
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/${My_PV}/balsa-manual-${My_PV}.pdf
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/${My_PV}/${Name}-tech-example-${My_PV}.tar.gz
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/examples/dma-example.tar.gz
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/examples/examples.tar.gz
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/snapshots/${Name}-tech-verilog-20030204.tar.gz
	ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/snapshots/${Name}-tech-xilinx-20021029.tar.gz"
	#ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/${My_PV}/${Name}-lard-${My_PV}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="x86 ~sparc"

DEPEND="virtual/libc
	sys-devel/binutils
	dev-libs/gmp
	dev-lang/perl
	x11-libs/gtk+"
	#>=app-sci/lard-2.0.15"

RDEPEND="${DEPEND}
	dev-util/guile
	media-gfx/graphviz
	app-sci/gtkwave
	app-sci/espresso-ab"

S=${WORKDIR}/${Name}-${My_PV}

if [ -f ${DISTDIR}/balsa-tech-ams-20030506.tar.gz ]; then
TECH_AMS=1
fi

src_unpack() {
	unpack ${A}
	if [ $TECH_AMS ]; then unpack balsa-tech-ams-20030506.tar.gz; fi
	cd ${WORKDIR}
	epatch ${FILESDIR}/${P}-tech-verilog-configure.patch
	epatch ${FILESDIR}/${P}-tech-xilinx-configure.patch
	epatch ${FILESDIR}/${P}-tech-example-configure.patch
	#patch -p0 < ${FILESDIR}/${P}-balsa-lard-configure.patch || die
	#echo "patching file balsa-lard-${PV}/bin/Makefile.in"
	#sed -i -e "s: \$(bindir): \$(DESTDIR)\$(bindir):g" ${WORKDIR}/balsa-lard-${PV}/bin/Makefile.in
}

src_compile() {
	# compile balsa
	econf || die "econf failed"
	sed -i -e "s: \$(bindir): \$(DESTDIR)\$(bindir):g" bin/Makefile
	emake BALSAHOME=${S} || die

	# configure tech paths
	if [ $TECH_AMS ]; then
	cd ${WORKDIR}/balsa-tech-ams-20030506
	econf || die "econf failed"
	fi

	# config generic verilog backend
	cd ${WORKDIR}/balsa-tech-verilog-20030204
	econf || die "econf failed"

	# config Xilinx FPGA backend
	cd ${WORKDIR}/balsa-tech-xilinx-20021029
	econf || die "econf failed"

	# config example tech
	cd ${WORKDIR}/balsa-tech-example-${My_PV}
	econf || die "econf failed"

	# config balsa-lard (deprecated, but may find some use for it)
	#cd ${WORKDIR}/balsa-lard-${PV}
	#econf
}

src_install() {
	# install balsa
	einstall || die "make install failed"

	# move the docs to the right directory
	dodoc ${D}/usr/doc/*
	rm -rf ${D}/usr/doc

	# install manual and examples
	dodir /usr/share/doc/${P}/examples/dma-example
	cp -R ${WORKDIR}/dma-example ${D}/usr/share/doc/${P}/examples
	cp -R ${WORKDIR}/examples/* ${D}/usr/share/doc/${P}/examples
	dodoc ${DISTDIR}/balsa-manual-${My_PV}.pdf

	# install tech
	if [ $TECH_AMS ]; then
	cd ${WORKDIR}/balsa-tech-ams-20030506
	make DESTDIR=${D} install || die "make install failed"
	fi

	cd ${WORKDIR}/balsa-tech-verilog-20030204
	make DESTDIR=${D} install || die "make install failed"

	cd ${WORKDIR}/balsa-tech-xilinx-20021029
	make DESTDIR=${D} install || die "make install failed"

	cd ${WORKDIR}/balsa-tech-example-${My_PV}
	make DESTDIR=${D} install || die "make install failed"

	cd ${S}
	dodoc AUTHORS COPYING NEWS README TODO

	# balsa-lard has been split from balsa .. requires working balsa
	# install for compile. Paths need fixing to compile in sandbox.
	# Even with paths fixed I get errors like:
	# find-filename: cannot open block with dotted path `[balsa.types.synthesis]'
	#
	# Lets just ignore the problem and hope it goes away.
	#
	#cd ${WORKDIR}/balsa-lard-${PV}
	# hack - imports come from hard coded path, we set this
	# for install,
	#echo "patching ${WORKDIR}/balsa-lard-${PV}/share/scheme/base-local.scm"
	#sed -i -e "s:/usr/share/scheme/:${D}/usr/share/scheme/:g" share/scheme/base-local.scm
	#make DESTDIR=${D} install || die "make install failed"
}

pkg_postinst() {
	if [ ! $TECH_AMS ]; then
	einfo "The AMS035 tech library was *not* installed."
	einfo "It is no longer publically distributed."
	einfo "If you have the appropriate license from AMS request"
	einfo "the ${Name}-tech-ams-20030506.tar.gz file"
	einfo "directly from the Balsa developers and add it to "
	einfo "/usr/portage/distfiles before emerging."
	else
	einfo "The AMS035 tech library was found and installed."
	fi
	einfo ""
	einfo "The Balsa-Lard interface has been deprecated and is no longer installed."
	einfo "If you need it you must manually download and install it."
	einfo ""
}