blob: b74f6d8026e8eb4140e73adc657d00c0074da32d (
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
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/prc-tools/prc-tools-2.3-r2.ebuild,v 1.4 2006/12/12 10:25:29 opfer Exp $
inherit flag-o-matic eutils toolchain-funcs
BIN_V="binutils-2.14"
GDB_V="gdb-5.3"
GCC_V_ARM="gcc-3.3.1"
GCC_V_M68K="gcc-2.95.3"
MSECT_V="MsectGdb2.3-1Patch"
DESCRIPTION="GNU-Based Palm C++ Development Suite"
HOMEPAGE="http://prc-tools.sourceforge.net/"
SRC_URI="mirror://sourceforge/prc-tools/${P}.tar.gz
ftp://sources.redhat.com/pub/binutils/releases/${BIN_V}.tar.bz2
ftp://sources.redhat.com/pub/gdb/releases/${GDB_V}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/releases/${GCC_V_ARM}/${GCC_V_ARM}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/releases/${GCC_V_M68K}/${GCC_V_M68K}.tar.bz2
http://www.v-overbeek.nl/msectgdb/${MSECT_V}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="x86"
IUSE=""
DEPEND=">=app-text/texi2html-1.70
>=sys-apps/texinfo-4.8"
RDEPEND=""
src_unpack() {
unpack ${A}
cd ${P}
ln -s ../${BIN_V} binutils
ln -s ../${GDB_V} gdb
ln -s ../${GCC_V_ARM} gcc
ln -s ../${GCC_V_M68K} gcc295
cd ..
echo ">>> Patching sources..."
echo -n " "; epatch ${P}/${BIN_V}.palmos.diff || die
echo -n " "; epatch ${P}/${GCC_V_ARM}.palmos.diff || die
echo -n " "; epatch ${P}/${GCC_V_M68K}.palmos.diff || die
echo -n " "; epatch ${P}/${GDB_V}.palmos.diff || die
echo -n " "; EPATCH_OPTS="-l" epatch ${P}/../MsectGdb2.3-1.diff || die
echo -n " "; epatch ${FILESDIR}/${P}-compilefix.patch || die
echo -n " "; epatch ${FILESDIR}/${P}-gcc4.patch || die
# This last patch disables dummy headers being copied.
# a) They're not needed
# b) This causes a sandboxing error
# +) Keeps 'palmdev-prep' pointed at the
# right place while making the docs install
# script from not install them to real root /
# Fix ${GCC_V_ARM} include problem
cp ${GCC_V_ARM}/gcc/fixinc/tests/base/unistd.h ${GCC_V_ARM}/gcc
sed -i -e 's:#include <stdio.h>::' -e 's:#include <sys/types.h>::' -e 's:#include <errno.h>::' -e 's:#include <stdlib.h>::' ${GCC_V_ARM}/gcc/tsystem.h || die
}
src_config() {
echo ">>> Rebuilding configuration scripts"
cd binutils; WANT_AUTOCONF=2.1 autoconf || die "Failed to reconfigure binutils"; cd ..
cd ..
mkdir build
cd build
echo ">>> Configuring..."
echo
# Remove any flags; because the cross-compiler (2.9.x GCC)
# will not understand any of these optimizations {and will
# fail} once the cross-compiler compiles the m68k GCC suite
ALLOWED_FLAGS="-pipe -O -O1 -O2"
strip-flags
local targets
if [ "$(gcc-major-version)" -ge '4' ]
then
ewarn "Disabling ARM support as the 3.3 GCC prc-tools uses can't be"
ewarn "compiled using your GCC4+ compiler. Switch to GCC 3.x and rerun"
ewarn "the merge to get ARM support."
echo
else
targets=',arm-palmos'
fi
../${P}/configure --enable-targets=m68k-palmos"${targets}" \
--enable-languages=c,c++ \
--with-headers=${WORKDIR}/build/empty --enable-html-docs \
--with-palmdev-prefix=/opt/palmdev --prefix=/usr || die
# These have to be real; otherwise the compiler is hard-coded
# and tries to find libraries in ${D}/....
# palmdev-prefix also has to be real; otherwise 'palmdev-prep'
# defaults to virtual ${D}/..
# Make sure the newly built compiler is found; #100879.
export PATH="$PATH:${D}/usr/bin"
}
src_compile() {
src_config
make || die
}
src_install() {
cd ../build
export PATH="$PATH:${D}/usr/bin"
einstall || die
# fix file collisions
rm -rf "${D}"/usr/share/locale/
rm -f "${D}"/usr/share/info/gdb.info*
rm -f "${D}"/usr/share/info/gdbint*
rm -f "${D}"/usr/share/info/standards.info*
rm -f "${D}"/usr/share/info/stabs.info*
}
pkg_postinst() {
echo
einfo "PRC-Tools is now compiled and installed!"
einfo "<HTML docs are installed in /opt/palmdev>"
echo
einfo "For a complete Palm Development Environment you will also need..."
echo
einfo "[ ] PilRC; the Palm resource compiler; emerge pilrc"
einfo "[ ] POSE; The Palm OS Emulator; emerge pose"
echo " ->> A ROM for POSE; available from Palm"
einfo "[ ] An SDK; available from the Palm Website"
echo " ->> Decompress this to /opt/palmdev and then run"
echo " 'palmdev-prep /opt/palmdev'"
echo
}
|