]> git.pld-linux.org Git - packages/fpc.git/blame - fpc.spec
- tabs in preamble
[packages/fpc.git] / fpc.spec
CommitLineData
3c3a6271 1# TODO:
9a679a53 2# - check why it builds all static..
6d41833f 3# - doesn't build on ppc/sparc :/ hgw why
e8f622a3 4Summary: 32-bit compiler for the i386 and m68k processors
1d1a4bc8
ER
5Summary(pl.UTF-8): 32 bitowy kompilator dla procesorów i386 i m68k
6Summary(ru.UTF-8): Свободный компилятор Pascal
7Summary(uk.UTF-8): Вільний компілятор Pascal
e8f622a3 8Name: fpc
786da423 9Version: 2.0.4
3e0e177f 10Release: 2
68db2ce9 11License: GPL
e8f622a3 12Group: Development/Languages
786da423
JR
13Source0: ftp://ftp.freepascal.org/pub/fpc/dist/source-%{version}/%{name}build-%{version}.tar.gz
14# Source0-md5: 1ff8b80d1f5f564983bb4e1550b8b53a
15Source1: ftp://ftp.freepascal.org/pub/fpc/dist/i386-linux-%{version}/%{name}-%{version}.i386-linux.tar
16# Source1-md5: d826aab69c98b9efe30398ff63e4c9d9
17Source2: ftp://ftp.freepascal.org/pub/fpc/dist/x86_64-linux-%{version}/%{name}-%{version}.x86_64-linux.tar
18# Source2-md5: 3bbfe4c061ebd40502789eccef069d7c
19Source3: 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
22Source4: ftp://ftp.freepascal.org/pub/fpc/dist/sparc-linux-2.0.0/%{name}-2.0.0.sparc-linux.tar
23# Source4-md5: dd8925ce8ce93309456c3072e6e4d14d
24Patch0: %{name}-skip-dev-dot.patch
25Patch1: %{name}-makedocs.patch
fee73cf5 26Patch2: %{name}-gdb65.patch
3e0e177f 27Patch3: %{name}-avoid-RE.patch
e8f622a3 28URL: http://www.freepascal.org/
2475030b 29BuildRequires: binutils-static >= 3:2.17.50
fee73cf5 30BuildRequires: gdb-lib
f5681e7a 31BuildRequires: gpm-devel
41cff313 32BuildRequires: ncurses-devel
3f331815 33BuildRequires: rpmbuild(macros) >= 1.213
dbf741ac
JR
34BuildRequires: tetex-fonts-jknappen
35BuildRequires: tetex-format-pdflatex
786da423 36BuildRequires: tetex-makeindex
dbf741ac 37BuildRequires: tetex-metafont
7da7a711 38Requires: binutils
41cff313 39Provides: fpc-bootstrap
3f331815 40ExclusiveArch: %{ix86} %{x8664} ppc sparc
e7e4f882 41BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
e8f622a3
AM
42
43%description
5da97089 44Free Pascal is a 32-bit compiler for the i386 and m68k processors.
45Free Pascal is designed to be, as much as possible, source compatible
46with Turbo Pascal 7.0 and Delphi 4 (although this goal is not yet
47attained), but it also enhances these languages with elements like
48function overloading. And, unlike these ancestors, it supports
49multiple platforms.
e8f622a3 50
6b989699
JR
51%description -l pl.UTF-8
52Free Pascal to 32 bitowy kompilator dla procesorów i386 oraz m86k.
53Free Pascal został zaprojektowany by być (jak tylko to możliwe)
54kompatybilnym z Turbo Pascal 7.0 oraz Delphi 4. Free Pascal również
55rozszerza te języki elementami takimi jak przeciążanie funkcji.
e8f622a3 56
6b989699
JR
57%description -l ru.UTF-8
58FPC -- 32-битный компилятор Pascal, совместимый с Turbo Pascal 7.0 и
59Delphi. Поставляется с RTL (библиотекой времени исполнения), FCL
60(библиотекой свободных компонент), интерфейсами к gtk, ncurses, zlib,
3c3a6271 61mysql, postgres, ibase.
def44520 62
6b989699
JR
63%description -l uk.UTF-8
64FPC -- 32-бітний компілятор Pascal, сумісний із Turbo Pascal 7.0 та
65Delphi. Постачається із RTL (бібліотекою часу виконання), FCL
66(бібліотекою вільних компонент), інтерфейсами до gtk, ncurses, zlib,
3c3a6271 67mysql, postgres, ibase.
def44520 68
412a5ed9
KK
69%package src
70Summary: Free Pascal Compiler source files
1d1a4bc8 71Summary(pl.UTF-8): Pliki źródłowe kompilatora Free Pascal
412a5ed9 72Group: Development
412a5ed9 73Requires: %{name} = %{version}-%{release}
41cff313 74Provides: fpcsrc
412a5ed9
KK
75
76%description src
77Free Pascal Compiler source files.
78
6b989699
JR
79%description src -l pl.UTF-8
80Pliki źródłowe kompilatora Free Pascal.
412a5ed9 81
1eee4a0c
JR
82%package examples
83Summary: Free Pascal Compiler exaple programs
1d1a4bc8 84Summary(pl.UTF-8): Przykładowe programy do kompilatora Free Pascal
1eee4a0c 85Group: Documentation
3f331815 86Requires: %{name} = %{version}-%{release}
1eee4a0c
JR
87
88%description examples
89Free Pascal Compiler exaple programs.
90
6b989699
JR
91%description examples -l pl.UTF-8
92Przykładowe programy do kompilatora Free Pascal.
1eee4a0c 93
786da423
JR
94%package doc
95Summary: Free Pascal Compiler documentation
1d1a4bc8 96Summary(pl.UTF-8): Dokumentacja do kompilatora Free Pascal
786da423 97Group: Documentation
41cff313 98Requires: %{name} = %{version}-%{release}
786da423
JR
99
100%description doc
101Documentation for fpc in PDF format.
102
6b989699 103%description doc -l pl.UTF-8
786da423
JR
104Dokumentacja 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 113tar xf %{SOURCE1}
4e71325a 114%define _bver %{version}
d3e9323d 115%define _bname 386
116%endif
3f331815 117%ifarch %{x8664}
786da423 118tar xf %{SOURCE2}
4e71325a 119%define _bver %{version}
d3e9323d 120%define _bname x64
121%endif
add5738b 122%ifarch ppc
786da423 123tar xf %{SOURCE3}
4e71325a 124%define _bver %{version}
add5738b 125%define _bname ppc
126%endif
416cf660 127%ifarch sparc
786da423 128tar xf %{SOURCE4}
4e71325a 129%define _bver 2.0.0
416cf660 130%define _bname sparc
131%endif
d3e9323d 132
786da423
JR
133tar xf binary.*-linux.tar
134
135mkdir bin
136cd bin
137for i in ../*.tar.gz ; do
138 tar xzf $i
139done
4e71325a 140ln -sf `pwd`/lib/%{name}/%{_bver}/ppc* bin
786da423 141
1eee4a0c 142%build
412a5ed9
KK
143# save for fpc-src
144install -d fpc-src
145cp -af fpcsrc/* fpc-src
146
4e71325a 147PP=`pwd`/bin/lib/%{name}/%{_bver}/ppc%{_bname}
80841e72 148NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname}
149NEWFPDOC=`pwd`/fpcsrc/utils/fpdoc/fpdoc
d3e9323d 150
ca161524 151# DO NOT PUT $RPM_OPT_FLAGS IN OPT, IT DOES NOT WORK - baggins
152case "%{_build_cpu}" in
153 i386,i486)
154 OPTF="-OG2p1" ;;
155 i586)
156 OPTF="-OG2p2" ;;
157 i686,athlon)
158 OPTF="-Og2p3" ;;
159 *)
160 OPTF="-O2" ;;
161esac
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
189export save_size=10000
190%{__make} -C fpcdocs \
191 FPDOC=$NEWFPDOC \
192 FPC="$NEWPP" \
193 pdf
194
e8f622a3
AM
195%install
196rm -rf $RPM_BUILD_ROOT
412a5ed9
KK
197install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir},%{_datadir}/fpcsrc,%{_examplesdir}/fpc}
198
199cp -af fpc-src/* $RPM_BUILD_ROOT%{_datadir}/fpcsrc
e8f622a3 200
80841e72 201NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname}
202FPCMAKE=`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 227ln -sf %{_libdir}/%{name}/%{version}/ppc%{_bname} $RPM_BUILD_ROOT%{_bindir}
e8f622a3 228
80841e72 229sh fpcsrc/compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir}
e588518e 230
e8f622a3
AM
231%clean
232rm -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
This page took 0.123026 seconds and 4 git commands to generate.