1 |
commit: 09a601f2701211a6ef4a6556ff12b1e3d33e7d51 |
2 |
Author: Horea Christian <horea.christ <AT> yandex <DOT> com> |
3 |
AuthorDate: Mon Aug 21 15:24:59 2017 +0000 |
4 |
Commit: Amy Liffey <amynka <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Aug 25 11:45:04 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09a601f2 |
7 |
|
8 |
dev-lang/fpc: added new revision which is usable under prefix |
9 |
|
10 |
Package-Manager: Portage-2.3.8, Repoman-2.3.3 |
11 |
|
12 |
dev-lang/fpc/fpc-3.0.2-r1.ebuild | 165 +++++++++++++++++++++++++++++++++++++++ |
13 |
dev-lang/fpc/metadata.xml | 4 +- |
14 |
2 files changed, 167 insertions(+), 2 deletions(-) |
15 |
|
16 |
diff --git a/dev-lang/fpc/fpc-3.0.2-r1.ebuild b/dev-lang/fpc/fpc-3.0.2-r1.ebuild |
17 |
new file mode 100644 |
18 |
index 00000000000..38a17395ed7 |
19 |
--- /dev/null |
20 |
+++ b/dev-lang/fpc/fpc-3.0.2-r1.ebuild |
21 |
@@ -0,0 +1,165 @@ |
22 |
+# Copyright 1999-2017 Gentoo Foundation |
23 |
+# Distributed under the terms of the GNU General Public License v2 |
24 |
+ |
25 |
+EAPI=5 |
26 |
+ |
27 |
+inherit prefix toolchain-funcs |
28 |
+ |
29 |
+HOMEPAGE="https://www.freepascal.org/" |
30 |
+DESCRIPTION="Free Pascal Compiler" |
31 |
+SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz |
32 |
+ mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz |
33 |
+ amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar ) |
34 |
+ x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar ) |
35 |
+ doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )" |
36 |
+ |
37 |
+SLOT="0" |
38 |
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception" |
39 |
+KEYWORDS="~amd64 ~x86" |
40 |
+IUSE="doc ide source" |
41 |
+ |
42 |
+RDEPEND="ide? ( !dev-lang/fpc-ide )" |
43 |
+ |
44 |
+RESTRICT="strip" #269221 |
45 |
+ |
46 |
+S=${WORKDIR}/fpcbuild-${PV}/fpcsrc |
47 |
+ |
48 |
+pkg_pretend() { |
49 |
+ if [[ ${MERGE_TYPE} != binary ]]; then |
50 |
+ # Bug 475210 |
51 |
+ if $(tc-getLD) --version | grep -q "GNU gold"; then |
52 |
+ eerror "fpc does not function correctly when built with the gold linker." |
53 |
+ eerror "Please select the bfd linker with binutils-config." |
54 |
+ die "GNU gold detected" |
55 |
+ fi |
56 |
+ fi |
57 |
+} |
58 |
+ |
59 |
+src_unpack() { |
60 |
+ case ${ARCH} in |
61 |
+ amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;; |
62 |
+ x86) FPC_ARCH="i386" PV_BIN=${PV} ;; |
63 |
+ *) die "This ebuild doesn't support ${ARCH}." ;; |
64 |
+ esac |
65 |
+ |
66 |
+ unpack ${A} |
67 |
+ |
68 |
+ tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!" |
69 |
+ tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!" |
70 |
+} |
71 |
+ |
72 |
+src_prepare() { |
73 |
+ find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die |
74 |
+ |
75 |
+ # let the pkg manager compress man files |
76 |
+ sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die |
77 |
+ |
78 |
+ # make the compiled binary check for fpc.cfg under the prefixed /etc/ path |
79 |
+ hprefixify "${WORKDIR}"/fpcbuild-${PV}/fpcsrc/compiler/options.pas |
80 |
+} |
81 |
+ |
82 |
+set_pp() { |
83 |
+ case ${ARCH} in |
84 |
+ amd64) FPC_ARCH="x64" FPC_PARCH="x86_64" ;; |
85 |
+ x86) FPC_ARCH="386" FPC_PARCH="i386" ;; |
86 |
+ *) die "This ebuild doesn't support ${ARCH}." ;; |
87 |
+ esac |
88 |
+ |
89 |
+ case ${1} in |
90 |
+ bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;; |
91 |
+ new) pp="${S}"/compiler/ppc${FPC_ARCH} ;; |
92 |
+ *) die "set_pp: unknown argument: ${1}" ;; |
93 |
+ esac |
94 |
+} |
95 |
+ |
96 |
+src_compile() { |
97 |
+ local pp |
98 |
+ |
99 |
+ # Using the bootstrap compiler. |
100 |
+ set_pp bootstrap |
101 |
+ |
102 |
+ emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)" |
103 |
+ |
104 |
+ # Save new compiler from cleaning... |
105 |
+ cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die |
106 |
+ |
107 |
+ # ...rebuild with current version... |
108 |
+ emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle |
109 |
+ |
110 |
+ # ..and clean up afterwards |
111 |
+ rm "${S}"/ppc${FPC_ARCH}.new || die |
112 |
+ |
113 |
+ # Using the new compiler. |
114 |
+ set_pp new |
115 |
+ |
116 |
+ emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean |
117 |
+ |
118 |
+ emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils |
119 |
+ |
120 |
+ if use ide ; then |
121 |
+ cd "${S}"/ide || die |
122 |
+ emake -j1 PP="${pp}" AS="$(tc-getAS)" |
123 |
+ fi |
124 |
+} |
125 |
+ |
126 |
+src_install() { |
127 |
+ local pp |
128 |
+ set_pp new |
129 |
+ |
130 |
+ #fpcbuild-3.0.0/utils/fpcm/fpcmake |
131 |
+ #${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake" |
132 |
+ #fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake |
133 |
+ set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \ |
134 |
+ INSTALL_PREFIX="${ED}"/usr \ |
135 |
+ INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \ |
136 |
+ INSTALL_MANDIR="${ED}"/usr/share/man \ |
137 |
+ INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source |
138 |
+ |
139 |
+ emake -j1 "$@" compiler_install rtl_install packages_install utils_install |
140 |
+ |
141 |
+ dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH} |
142 |
+ |
143 |
+ cd "${S}"/../install/doc || die |
144 |
+ emake -j1 "$@" installdoc |
145 |
+ |
146 |
+ cd "${S}"/../install/man || die |
147 |
+ emake -j1 "$@" installman |
148 |
+ |
149 |
+ if use doc ; then |
150 |
+ cd "${S}"/../../doc || die |
151 |
+ dodoc -r * |
152 |
+ fi |
153 |
+ |
154 |
+ if use ide ; then |
155 |
+ cd "${S}"/ide || die |
156 |
+ emake -j1 "$@" install |
157 |
+ fi |
158 |
+ |
159 |
+ if use source ; then |
160 |
+ cd "${S}" || die |
161 |
+ shift |
162 |
+ emake -j1 PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall |
163 |
+ find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \; |
164 |
+ fi |
165 |
+ |
166 |
+ "${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die |
167 |
+ |
168 |
+ # set correct (prefixed) path for e.g. unit files |
169 |
+ sed -i "s:${ED}:${EPREFIX}:g" "${ED}"/etc/fpc.cfg || die |
170 |
+ |
171 |
+ if use ide ; then |
172 |
+ sed -e "s:${ED}::g" \ |
173 |
+ -i "${ED}"/etc/fppkg.cfg \ |
174 |
+ -i "${ED}"/etc/fppkg/* \ |
175 |
+ -i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \ |
176 |
+ || die |
177 |
+ fi |
178 |
+ |
179 |
+ rm -r "${ED}"/usr/lib/fpc/lexyacc || die |
180 |
+} |
181 |
+ |
182 |
+pkg_postinst() { |
183 |
+ if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then |
184 |
+ einfo "To read the documentation in the fpc IDE, enable the doc USE flag" |
185 |
+ fi |
186 |
+} |
187 |
|
188 |
diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml |
189 |
index 515fcf55caa..f42de96b8d5 100644 |
190 |
--- a/dev-lang/fpc/metadata.xml |
191 |
+++ b/dev-lang/fpc/metadata.xml |
192 |
@@ -2,8 +2,8 @@ |
193 |
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
194 |
<pkgmetadata> |
195 |
<maintainer type="person"> |
196 |
- <email>amynka@g.o</email> |
197 |
- </maintainer> |
198 |
+ <email>amynka@g.o</email> |
199 |
+ </maintainer> |
200 |
<use> |
201 |
<flag name="ide">Build and install the Free Pascal Compiler IDE</flag> |
202 |
</use> |