]>
Commit | Line | Data |
---|---|---|
3c3a6271 | 1 | # TODO: |
9a679a53 | 2 | # - check why it builds all static.. |
6d41833f | 3 | # - doesn't build on ppc/sparc :/ hgw why |
e8f622a3 | 4 | Summary: 32-bit compiler for the i386 and m68k processors |
1d1a4bc8 ER |
5 | Summary(pl.UTF-8): 32 bitowy kompilator dla procesorów i386 i m68k |
6 | Summary(ru.UTF-8): Свободный компилятор Pascal | |
7 | Summary(uk.UTF-8): Вільний компілятор Pascal | |
e8f622a3 | 8 | Name: fpc |
786da423 | 9 | Version: 2.0.4 |
3e0e177f | 10 | Release: 2 |
68db2ce9 | 11 | License: GPL |
e8f622a3 | 12 | Group: Development/Languages |
786da423 JR |
13 | Source0: ftp://ftp.freepascal.org/pub/fpc/dist/source-%{version}/%{name}build-%{version}.tar.gz |
14 | # Source0-md5: 1ff8b80d1f5f564983bb4e1550b8b53a | |
15 | Source1: ftp://ftp.freepascal.org/pub/fpc/dist/i386-linux-%{version}/%{name}-%{version}.i386-linux.tar | |
16 | # Source1-md5: d826aab69c98b9efe30398ff63e4c9d9 | |
17 | Source2: ftp://ftp.freepascal.org/pub/fpc/dist/x86_64-linux-%{version}/%{name}-%{version}.x86_64-linux.tar | |
18 | # Source2-md5: 3bbfe4c061ebd40502789eccef069d7c | |
19 | Source3: ftp://ftp.freepascal.org/pub/fpc/dist/powerpc-linux-%{version}/%{name}-%{version}.powerpc-linux.tar | |
20 | # Source3-md5: 6ec5302fe446d94e5aaa1e159b0d65df | |
21 | # no 2.0.4 binary for sparc, 2.0.0 only | |
22 | Source4: ftp://ftp.freepascal.org/pub/fpc/dist/sparc-linux-2.0.0/%{name}-2.0.0.sparc-linux.tar | |
23 | # Source4-md5: dd8925ce8ce93309456c3072e6e4d14d | |
24 | Patch0: %{name}-skip-dev-dot.patch | |
25 | Patch1: %{name}-makedocs.patch | |
fee73cf5 | 26 | Patch2: %{name}-gdb65.patch |
3e0e177f | 27 | Patch3: %{name}-avoid-RE.patch |
e8f622a3 | 28 | URL: http://www.freepascal.org/ |
2475030b | 29 | BuildRequires: binutils-static >= 3:2.17.50 |
fee73cf5 | 30 | BuildRequires: gdb-lib |
f5681e7a | 31 | BuildRequires: gpm-devel |
41cff313 | 32 | BuildRequires: ncurses-devel |
3f331815 | 33 | BuildRequires: rpmbuild(macros) >= 1.213 |
dbf741ac JR |
34 | BuildRequires: tetex-fonts-jknappen |
35 | BuildRequires: tetex-format-pdflatex | |
786da423 | 36 | BuildRequires: tetex-makeindex |
dbf741ac | 37 | BuildRequires: tetex-metafont |
7da7a711 | 38 | Requires: binutils |
41cff313 | 39 | Provides: fpc-bootstrap |
3f331815 | 40 | ExclusiveArch: %{ix86} %{x8664} ppc sparc |
e7e4f882 | 41 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
e8f622a3 AM |
42 | |
43 | %description | |
5da97089 | 44 | Free Pascal is a 32-bit compiler for the i386 and m68k processors. |
45 | Free Pascal is designed to be, as much as possible, source compatible | |
46 | with Turbo Pascal 7.0 and Delphi 4 (although this goal is not yet | |
47 | attained), but it also enhances these languages with elements like | |
48 | function overloading. And, unlike these ancestors, it supports | |
49 | multiple platforms. | |
e8f622a3 | 50 | |
6b989699 JR |
51 | %description -l pl.UTF-8 |
52 | Free Pascal to 32 bitowy kompilator dla procesorów i386 oraz m86k. | |
53 | Free Pascal został zaprojektowany by być (jak tylko to możliwe) | |
54 | kompatybilnym z Turbo Pascal 7.0 oraz Delphi 4. Free Pascal również | |
55 | rozszerza te języki elementami takimi jak przeciążanie funkcji. | |
e8f622a3 | 56 | |
6b989699 JR |
57 | %description -l ru.UTF-8 |
58 | FPC -- 32-битный компилятор Pascal, совместимый с Turbo Pascal 7.0 и | |
59 | Delphi. Поставляется с RTL (библиотекой времени исполнения), FCL | |
60 | (библиотекой свободных компонент), интерфейсами к gtk, ncurses, zlib, | |
3c3a6271 | 61 | mysql, postgres, ibase. |
def44520 | 62 | |
6b989699 JR |
63 | %description -l uk.UTF-8 |
64 | FPC -- 32-бітний компілятор Pascal, сумісний із Turbo Pascal 7.0 та | |
65 | Delphi. Постачається із RTL (бібліотекою часу виконання), FCL | |
66 | (бібліотекою вільних компонент), інтерфейсами до gtk, ncurses, zlib, | |
3c3a6271 | 67 | mysql, postgres, ibase. |
def44520 | 68 | |
412a5ed9 KK |
69 | %package src |
70 | Summary: Free Pascal Compiler source files | |
1d1a4bc8 | 71 | Summary(pl.UTF-8): Pliki źródłowe kompilatora Free Pascal |
412a5ed9 | 72 | Group: Development |
412a5ed9 | 73 | Requires: %{name} = %{version}-%{release} |
41cff313 | 74 | Provides: fpcsrc |
412a5ed9 KK |
75 | |
76 | %description src | |
77 | Free Pascal Compiler source files. | |
78 | ||
6b989699 JR |
79 | %description src -l pl.UTF-8 |
80 | Pliki źródłowe kompilatora Free Pascal. | |
412a5ed9 | 81 | |
1eee4a0c JR |
82 | %package examples |
83 | Summary: Free Pascal Compiler exaple programs | |
1d1a4bc8 | 84 | Summary(pl.UTF-8): Przykładowe programy do kompilatora Free Pascal |
1eee4a0c | 85 | Group: Documentation |
3f331815 | 86 | Requires: %{name} = %{version}-%{release} |
1eee4a0c JR |
87 | |
88 | %description examples | |
89 | Free Pascal Compiler exaple programs. | |
90 | ||
6b989699 JR |
91 | %description examples -l pl.UTF-8 |
92 | Przykładowe programy do kompilatora Free Pascal. | |
1eee4a0c | 93 | |
786da423 JR |
94 | %package doc |
95 | Summary: Free Pascal Compiler documentation | |
1d1a4bc8 | 96 | Summary(pl.UTF-8): Dokumentacja do kompilatora Free Pascal |
786da423 | 97 | Group: Documentation |
41cff313 | 98 | Requires: %{name} = %{version}-%{release} |
786da423 JR |
99 | |
100 | %description doc | |
101 | Documentation for fpc in PDF format. | |
102 | ||
6b989699 | 103 | %description doc -l pl.UTF-8 |
786da423 JR |
104 | Dokumentacja do fpc w formacie PDF. |
105 | ||
e8f622a3 | 106 | %prep |
786da423 JR |
107 | %setup -q -n %{name}build_%{version}_exp |
108 | %patch0 -p1 | |
109 | %patch1 -p1 | |
fee73cf5 | 110 | %patch2 -p1 |
3e0e177f | 111 | %patch3 -p1 |
d3e9323d | 112 | %ifarch %{ix86} |
786da423 | 113 | tar xf %{SOURCE1} |
4e71325a | 114 | %define _bver %{version} |
d3e9323d | 115 | %define _bname 386 |
116 | %endif | |
3f331815 | 117 | %ifarch %{x8664} |
786da423 | 118 | tar xf %{SOURCE2} |
4e71325a | 119 | %define _bver %{version} |
d3e9323d | 120 | %define _bname x64 |
121 | %endif | |
add5738b | 122 | %ifarch ppc |
786da423 | 123 | tar xf %{SOURCE3} |
4e71325a | 124 | %define _bver %{version} |
add5738b | 125 | %define _bname ppc |
126 | %endif | |
416cf660 | 127 | %ifarch sparc |
786da423 | 128 | tar xf %{SOURCE4} |
4e71325a | 129 | %define _bver 2.0.0 |
416cf660 | 130 | %define _bname sparc |
131 | %endif | |
d3e9323d | 132 | |
786da423 JR |
133 | tar xf binary.*-linux.tar |
134 | ||
135 | mkdir bin | |
136 | cd bin | |
137 | for i in ../*.tar.gz ; do | |
138 | tar xzf $i | |
139 | done | |
4e71325a | 140 | ln -sf `pwd`/lib/%{name}/%{_bver}/ppc* bin |
786da423 | 141 | |
1eee4a0c | 142 | %build |
412a5ed9 KK |
143 | # save for fpc-src |
144 | install -d fpc-src | |
145 | cp -af fpcsrc/* fpc-src | |
146 | ||
4e71325a | 147 | PP=`pwd`/bin/lib/%{name}/%{_bver}/ppc%{_bname} |
80841e72 | 148 | NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname} |
149 | NEWFPDOC=`pwd`/fpcsrc/utils/fpdoc/fpdoc | |
d3e9323d | 150 | |
ca161524 | 151 | # DO NOT PUT $RPM_OPT_FLAGS IN OPT, IT DOES NOT WORK - baggins |
152 | case "%{_build_cpu}" in | |
153 | i386,i486) | |
154 | OPTF="-OG2p1" ;; | |
155 | i586) | |
156 | OPTF="-OG2p2" ;; | |
157 | i686,athlon) | |
158 | OPTF="-Og2p3" ;; | |
159 | *) | |
160 | OPTF="-O2" ;; | |
161 | esac | |
162 | ||
80841e72 | 163 | %{__make} -C fpcsrc compiler_cycle \ |
a5bf4f1a | 164 | OPT="$OPTF -Xs -n" \ |
d88793f7 | 165 | RELEASE="1" \ |
e8f622a3 AM |
166 | BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ |
167 | BININSTALLDIR=%{_bindir} \ | |
1eee4a0c | 168 | PP="$PP" \ |
94c54379 | 169 | FPC="$PP" \ |
f5681e7a | 170 | SMARTLINK=YES |
94c54379 | 171 | |
80841e72 | 172 | %{__make} -C fpcsrc OPT="$OPTF -Xs -n" \ |
d88793f7 | 173 | RELEASE="1" \ |
5edb3786 SZ |
174 | BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ |
175 | BININSTALLDIR=%{_bindir} \ | |
fee73cf5 | 176 | GDBLIBDIR=%{_libdir} \ |
5edb3786 | 177 | PP="$NEWPP" \ |
94c54379 | 178 | FPC="$NEWPP" \ |
d3e9323d | 179 | DATA2INC=`pwd`/utils/data2inc \ |
f5681e7a | 180 | SMARTLINK=YES \ |
181 | rtl_clean rtl_smart \ | |
182 | packages_base_smart \ | |
183 | fcl_smart \ | |
184 | fv_smart \ | |
185 | packages_extra_smart \ | |
186 | ide_all \ | |
187 | utils_all | |
188 | ||
786da423 JR |
189 | export save_size=10000 |
190 | %{__make} -C fpcdocs \ | |
191 | FPDOC=$NEWFPDOC \ | |
192 | FPC="$NEWPP" \ | |
193 | ||
194 | ||
e8f622a3 AM |
195 | %install |
196 | rm -rf $RPM_BUILD_ROOT | |
412a5ed9 KK |
197 | install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir},%{_datadir}/fpcsrc,%{_examplesdir}/fpc} |
198 | ||
199 | cp -af fpc-src/* $RPM_BUILD_ROOT%{_datadir}/fpcsrc | |
e8f622a3 | 200 | |
80841e72 | 201 | NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname} |
202 | FPCMAKE=`pwd`/fpcsrc/utils/fpcm/fpcmake | |
203 | %{__make} -C fpcsrc \ | |
f5681e7a | 204 | compiler_distinstall \ |
205 | rtl_distinstall \ | |
206 | fcl_distinstall \ | |
207 | fv_distinstall \ | |
208 | packages_distinstall \ | |
209 | ide_distinstall \ | |
210 | utils_distinstall \ | |
d3e9323d | 211 | PP="$NEWPP" \ |
212 | FPCMAKE="$FPCMAKE" \ | |
f5681e7a | 213 | SMARTLINK=YES \ |
8bf0c9cb | 214 | INSTALL_PREFIX=$RPM_BUILD_ROOT%{_prefix} \ |
215 | INSTALL_BINDIR=$RPM_BUILD_ROOT%{_bindir} \ | |
216 | INSTALL_LIBDIR=$RPM_BUILD_ROOT%{_libdir} \ | |
217 | INSTALL_DOCDIR=$RPM_BUILD_ROOT%{_docdir} \ | |
218 | INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} \ | |
d88793f7 | 219 | INSTALL_BASEDIR=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{version} \ |
f5681e7a | 220 | INSTALL_EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name} \ |
7da7a711 | 221 | INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} \ |
d88793f7 | 222 | CODPATH=$RPM_BUILD_ROOT%{_libdir}/%{name}/lexyacc |
d3e9323d | 223 | |
80841e72 | 224 | %{__make} -C install/man installman \ |
225 | INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} | |
9a679a53 | 226 | |
80841e72 | 227 | ln -sf %{_libdir}/%{name}/%{version}/ppc%{_bname} $RPM_BUILD_ROOT%{_bindir} |
e8f622a3 | 228 | |
80841e72 | 229 | sh fpcsrc/compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir} |
e588518e | 230 | |
e8f622a3 AM |
231 | %clean |
232 | rm -rf $RPM_BUILD_ROOT | |
233 | ||
e8f622a3 AM |
234 | %files |
235 | %defattr(644,root,root,755) | |
236 | %attr(755,root,root) %{_bindir}/* | |
3c3a6271 | 237 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpc.cfg |
e8f622a3 AM |
238 | %dir %{_libdir}/%{name} |
239 | %dir %{_libdir}/%{name}/%{version} | |
d88793f7 | 240 | %dir %{_libdir}/%{name}/lexyacc |
e8f622a3 | 241 | %{_libdir}/%{name}/%{version}/msg |
1eee4a0c | 242 | %{_libdir}/%{name}/%{version}/units |
f5681e7a | 243 | %{_libdir}/%{name}/%{version}/ide |
d88793f7 | 244 | %{_libdir}/%{name}/lexyacc/* |
d3e9323d | 245 | %attr(755,root,root) %{_libdir}/%{name}/%{version}/ppc%{_bname} |
1eee4a0c | 246 | %attr(755,root,root) %{_libdir}/%{name}/%{version}/samplecfg |
7da7a711 | 247 | %{_mandir}/man*/* |
1eee4a0c | 248 | |
412a5ed9 KK |
249 | %files src |
250 | %defattr(644,root,root,755) | |
251 | %{_datadir}/fpcsrc | |
252 | ||
1eee4a0c JR |
253 | %files examples |
254 | %defattr(644,root,root,755) | |
f5681e7a | 255 | %{_examplesdir}/fpc |
786da423 JR |
256 | |
257 | %files doc | |
258 | %defattr(644,root,root,755) | |
259 | %doc fpcdocs/*.pdf |