summaryrefslogtreecommitdiff
blob: 209440646afda2f0dd33f79ee08cc44f01528971 (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/smarteiffel/smarteiffel-2.2_rc1.ebuild,v 1.2 2005/12/05 16:01:55 mr_bones_ Exp $

inherit toolchain-funcs multilib


MY_PV="${PV/./-}"
S="${WORKDIR}/SmartEiffel"

DESCRIPTION="GNU Eiffel compiler"
HOMEPAGE="http://smarteiffel.loria.fr/"
SRC_URI="http://www.loria.fr/~colnet/SmartEiffel/SmartEiffel-${MY_PV/_/-}.tar.bz2"

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~amd64 ~sparc ~ppc"
IUSE="doc tcc"

DEPEND="tcc? ( >=dev-lang/tcc-0.9.14 )"

# Destination directory to hold most of the SmartEiffel distribution.
SE_DIR="/usr/$(get_libdir)/SmartEiffel"

src_compile() {
	use tcc && CFLAGS=""
	use tcc && COMPILER=tcc || COMPILER="$(tc-getCC)"
	einfo "Using ${COMPILER} as default C-compiler for SmartEiffel!"

	export SmartEiffel="${S}/sys/system.se"
	export PATH="${S}/bin:${PATH}"
	cd ${S}
	ebegin "Compiling install-program"
		${COMPILER} ${CFLAGS} -o install.bin install.c || die
		#package authors created install directory right next to install.c
		#how nice of them!
	eend $?

	einfo "Running install-program"
	(	echo   #skipping stupid prompt
		echo 2 #compiler setup
		use tcc && (
			 echo 11; echo tcc; echo g++
		)
		echo 12 #CFLAGS setup
		echo "${CFLAGS}"
		echo "${CXXFLAGS}"
		echo 0; #main menu
		echo 1; # configure
		echo 1; echo "${S}/sys/system.se"; #set configuration file
		echo 4; echo "${S}/bin/"; # set bin dir
		echo 5; echo "${S}/sys/"; # set Sys dir
		echo 6; echo "${S}/sys/"; # set Short dir
		echo 7; # configure environment variables
		echo 1;
		echo "path_tutorial";
		echo "${S}/tutorial/"
		echo 1;
		echo "path_tools";
		echo "${S}/tools/";
		echo 1;
		echo "path_lib";
		echo "${S}/lib/";
		echo 0;
		echo 0; #exit menu
		echo 5; #save conf file
		echo 6; echo
		echo 0; echo #leave the menu

	) | ./install.bin || die
	einfo "finished running install"

	#looks like only one file with path definitions, good
	sed -i -e "s:${S}:${SE_DIR}:" ${S}/sys/system.se || die
}

src_install () {
	dodir ${SE_DIR}
	cp -a ${S}/{lib,tools,sys,bin} ${D}/${SE_DIR} || die

	# Create symlinks to the appropriate executable binaries.
	dodir /usr/bin
	rm ${S}/bin/READ_ME.txt
	#since then this became a bin file?
	for NAME in ${S}/bin/*; do
		NAME="$(basename ${NAME})"
		dosym ${SE_DIR}/bin/${NAME} /usr/bin/${NAME}
	done

	# Install documentation.
	if use doc; then
		einfo "Installing documentation"
		dodir /usr/share/doc/${PF}
		cp -a ${S}/{man,misc,tutorial,READ_ME.txt} ${D}/usr/share/doc/${PF} || die
	fi

	# Setup 'SmartEiffel' environment variable.
	dodir /etc/env.d
	echo "SmartEiffel=${SE_DIR}/sys/system.se" > ${D}/etc/env.d/20smarteiffel
	echo "SmartEiffelDirectory=${SE_DIR}" >> ${D}/etc/env.d/20smarteiffel
}