X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=fpc.spec;h=e8e283d3326f49762d44c786f02dbf1898133e1c;hb=2475030b20578cf4a5860fe389ae4bbb29c517cd;hp=4aa0156c207d9309f9ba86e9b9a7d3a22e6a7bbe;hpb=d88793f779046ce02eb4d89aa59f0158bf5e599c;p=packages%2Ffpc.git diff --git a/fpc.spec b/fpc.spec index 4aa0156..e8e283d 100644 --- a/fpc.spec +++ b/fpc.spec @@ -1,33 +1,43 @@ -# TODO: -# - sparc/ppc version, check on x86 -# - documentation -# - make it working ;) +# TODO: +# - check why it builds all static.. +# - doesn't build on ppc/sparc :/ hgw why Summary: 32-bit compiler for the i386 and m68k processors Summary(pl): 32 bitowy kompilator dla procesorów i386 i m68k Summary(ru): ó×ÏÂÏÄÎÙÊ ËÏÍÐÉÌÑÔÏÒ Pascal Summary(uk): ÷¦ÌØÎÉÊ ËÏÍЦÌÑÔÏÒ Pascal Name: fpc -Version: 2.0.0 -Release: 0.1 +Version: 2.0.4 +Release: 2 License: GPL Group: Development/Languages -Vendor: Michael Van Canneyt -Source0: http://switch.dl.sourceforge.net/sourceforge/freepascal/%{name}-%{version}.source.tar.gz -# Source0-md5: 3f9c64d0146a3631f6963fd7477776d1 -Source1: http://dl.sourceforge.net/freepascal/fpc-%{version}.i386-linux.tar -# Source1-md5: 5f0a5fba632a811dcfdafe0ff80476a3 -Source2: http://dl.sourceforge.net/freepascal/fpc-%{version}.x86_64-linux.tar -# Source2-md5: 36270de604c6b5ad3af8aaa08143e88f -Source3: http://dl.sourceforge.net/freepascal/fpc-%{version}.powerpc-linux.tar -# Source3-md5: 7019384e09411902e530dfe55d4ff145 -Source4: http://dl.sourceforge.net/freepascal/%{name}-%{version}.sparc-linux.tar +Source0: ftp://ftp.freepascal.org/pub/fpc/dist/source-%{version}/%{name}build-%{version}.tar.gz +# Source0-md5: 1ff8b80d1f5f564983bb4e1550b8b53a +Source1: ftp://ftp.freepascal.org/pub/fpc/dist/i386-linux-%{version}/%{name}-%{version}.i386-linux.tar +# Source1-md5: d826aab69c98b9efe30398ff63e4c9d9 +Source2: ftp://ftp.freepascal.org/pub/fpc/dist/x86_64-linux-%{version}/%{name}-%{version}.x86_64-linux.tar +# Source2-md5: 3bbfe4c061ebd40502789eccef069d7c +Source3: ftp://ftp.freepascal.org/pub/fpc/dist/powerpc-linux-%{version}/%{name}-%{version}.powerpc-linux.tar +# Source3-md5: 6ec5302fe446d94e5aaa1e159b0d65df +# no 2.0.4 binary for sparc, 2.0.0 only +Source4: ftp://ftp.freepascal.org/pub/fpc/dist/sparc-linux-2.0.0/%{name}-2.0.0.sparc-linux.tar # Source4-md5: dd8925ce8ce93309456c3072e6e4d14d -#Source2: %{name}-sample.cfg +Patch0: %{name}-skip-dev-dot.patch +Patch1: %{name}-makedocs.patch +Patch2: %{name}-gdb65.patch +Patch3: %{name}-avoid-RE.patch URL: http://www.freepascal.org/ -BuildRequires: bin86 -BuildRequires: zlib-devel -Requires: gcc >= 2.95.2 -ExclusiveArch: %{ix86} m68k amd64 ppc sparc +BuildRequires: binutils-static >= 3:2.17.50 +BuildRequires: gdb-lib +BuildRequires: gpm-devel +BuildRequires: ncurses-devel +BuildRequires: rpmbuild(macros) >= 1.213 +BuildRequires: tetex-fonts-jknappen +BuildRequires: tetex-format-pdflatex +BuildRequires: tetex-makeindex +BuildRequires: tetex-metafont +Requires: binutils +Provides: fpc-bootstrap +ExclusiveArch: %{ix86} %{x8664} ppc sparc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -45,20 +55,35 @@ kompatybilnym z Turbo Pascal 7.0 oraz Delphi 4. Free Pascal r rozszerza te jêzyki elementami takimi jak przeci±¿anie funkcji. %description -l ru -FPC -- 32-ÂÉÔÎÙÊ ËÏÍÐÉÌÑÔÏÒ Pascal, ÓÏ×ÍÅÓÔÉÍÙÊ Ó Turbo Pascal 7.0 É Delphi. -ðÏÓÔÁ×ÌÑÅÔÓÑ Ó RTL (ÂÉÂÌÉÏÔÅËÏÊ ×ÒÅÍÅÎÉ ÉÓÐÏÌÎÅÎÉÑ), FCL (ÂÉÂÌÉÏÔÅËÏÊ Ó×ÏÂÏÄÎÙÈ -ËÏÍÐÏÎÅÎÔ), ÉÎÔÅÒÆÅÊÓÁÍÉ Ë gtk, ncurses, zlib, mysql, postgres, ibase. +FPC -- 32-ÂÉÔÎÙÊ ËÏÍÐÉÌÑÔÏÒ Pascal, ÓÏ×ÍÅÓÔÉÍÙÊ Ó Turbo Pascal 7.0 É +Delphi. ðÏÓÔÁ×ÌÑÅÔÓÑ Ó RTL (ÂÉÂÌÉÏÔÅËÏÊ ×ÒÅÍÅÎÉ ÉÓÐÏÌÎÅÎÉÑ), FCL +(ÂÉÂÌÉÏÔÅËÏÊ Ó×ÏÂÏÄÎÙÈ ËÏÍÐÏÎÅÎÔ), ÉÎÔÅÒÆÅÊÓÁÍÉ Ë gtk, ncurses, zlib, +mysql, postgres, ibase. %description -l uk -FPC -- 32-¦ÔÎÉÊ ËÏÍЦÌÑÔÏÒ Pascal, ÓÕͦÓÎÉÊ ¦Ú Turbo Pascal 7.0 ÔÁ Delphi. -ðÏÓÔÁÞÁ¤ÔØÓÑ ¦Ú RTL (¦Â̦ÏÔÅËÏÀ ÞÁÓÕ ×ÉËÏÎÁÎÎÑ), FCL (¦Â̦ÏÔÅËÏÀ צÌØÎÉÈ -ËÏÍÐÏÎÅÎÔ), ¦ÎÔÅÒÆÅÊÓÁÍÉ ÄÏ gtk, ncurses, zlib, mysql, postgres, ibase. +FPC -- 32-¦ÔÎÉÊ ËÏÍЦÌÑÔÏÒ Pascal, ÓÕͦÓÎÉÊ ¦Ú Turbo Pascal 7.0 ÔÁ +Delphi. ðÏÓÔÁÞÁ¤ÔØÓÑ ¦Ú RTL (¦Â̦ÏÔÅËÏÀ ÞÁÓÕ ×ÉËÏÎÁÎÎÑ), FCL +(¦Â̦ÏÔÅËÏÀ צÌØÎÉÈ ËÏÍÐÏÎÅÎÔ), ¦ÎÔÅÒÆÅÊÓÁÍÉ ÄÏ gtk, ncurses, zlib, +mysql, postgres, ibase. + +%package src +Summary: Free Pascal Compiler source files +Summary(pl): Pliki ¼ród³owe kompilatora Free Pascal +Group: Development +Requires: %{name} = %{version}-%{release} +Provides: fpcsrc + +%description src +Free Pascal Compiler source files. + +%description src -l pl +Pliki ¼ród³owe kompilatora Free Pascal. %package examples Summary: Free Pascal Compiler exaple programs Summary(pl): Przyk³adowe programy do kompilatora Free Pascal Group: Documentation -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} %description examples Free Pascal Compiler exaple programs. @@ -70,7 +95,7 @@ Przyk Summary: Free Pascal Compiler documentation Summary(pl): Dokumentacja do kompilatora Free Pascal Group: Documentation -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} %description doc Documentation for fpc in PDF format. @@ -79,15 +104,31 @@ Documentation for fpc in PDF format. Dokumentacja do fpc w formacie PDF. %prep -%setup -q -c -n %{name} +%setup -q -n %{name}build_%{version}_exp +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %ifarch %{ix86} -%setup -q -D -n %{name} -a 1 +tar xf %{SOURCE1} +%define _bver %{version} %define _bname 386 %endif -%ifarch amd64 -%setup -q -D -n %{name} -a 2 +%ifarch %{x8664} +tar xf %{SOURCE2} +%define _bver %{version} %define _bname x64 %endif +%ifarch ppc +tar xf %{SOURCE3} +%define _bver %{version} +%define _bname ppc +%endif +%ifarch sparc +tar xf %{SOURCE4} +%define _bver 2.0.0 +%define _bname sparc +%endif tar xf binary.*-linux.tar @@ -96,99 +137,123 @@ cd bin for i in ../*.tar.gz ; do tar xzf $i done -ln -sf `pwd`/lib/%{name}/%{version}/ppc* bin +ln -sf `pwd`/lib/%{name}/%{_bver}/ppc* bin %build -PP=`pwd`/bin/lib/%{name}/%{version}/ppc%{_bname} -NEWPP=`pwd`/compiler/ppc%{_bname} +# save for fpc-src +install -d fpc-src +cp -af fpcsrc/* fpc-src -%{__make} compiler_cycle \ +PP=`pwd`/bin/lib/%{name}/%{_bver}/ppc%{_bname} +NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname} +NEWFPDOC=`pwd`/fpcsrc/utils/fpdoc/fpdoc + +# DO NOT PUT $RPM_OPT_FLAGS IN OPT, IT DOES NOT WORK - baggins +case "%{_build_cpu}" in + i386,i486) + OPTF="-OG2p1" ;; + i586) + OPTF="-OG2p2" ;; + i686,athlon) + OPTF="-Og2p3" ;; + *) + OPTF="-O2" ;; +esac + +%{__make} -C fpcsrc compiler_cycle \ OPT="$OPTF -Xs -n" \ RELEASE="1" \ BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ BININSTALLDIR=%{_bindir} \ PP="$PP" \ FPC="$PP" \ - compiler_cycle + SMARTLINK=YES -%{__make} OPT="$OPTF -Xs -n" \ +%{__make} -C fpcsrc OPT="$OPTF -Xs -n" \ RELEASE="1" \ BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ BININSTALLDIR=%{_bindir} \ + GDBLIBDIR=%{_libdir} \ PP="$NEWPP" \ FPC="$NEWPP" \ DATA2INC=`pwd`/utils/data2inc \ - rtl packages_base_all fcl packages_extra_all utils_all + SMARTLINK=YES \ + rtl_clean rtl_smart \ + packages_base_smart \ + fcl_smart \ + fv_smart \ + packages_extra_smart \ + ide_all \ + utils_all -#%{__make} -C src/%{name}-%{version}/docs pdf FPDOC=${NEWFPDOC} +export save_size=10000 +%{__make} -C fpcdocs \ + FPDOC=$NEWFPDOC \ + FPC="$NEWPP" \ + pdf %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir},%{_examplesdir}/fpc} - -NEWPP=`pwd`/compiler/ppc%{_bname} -FPCMAKE=`pwd`/utils/fpcm/fpcmake -%{__make} \ - compiler_install \ - rtl_install \ - fcl_install \ - packages_install \ - utils_install \ +install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir},%{_datadir}/fpcsrc,%{_examplesdir}/fpc} + +cp -af fpc-src/* $RPM_BUILD_ROOT%{_datadir}/fpcsrc + +NEWPP=`pwd`/fpcsrc/compiler/ppc%{_bname} +FPCMAKE=`pwd`/fpcsrc/utils/fpcm/fpcmake +%{__make} -C fpcsrc \ + compiler_distinstall \ + rtl_distinstall \ + fcl_distinstall \ + fv_distinstall \ + packages_distinstall \ + ide_distinstall \ + utils_distinstall \ PP="$NEWPP" \ FPCMAKE="$FPCMAKE" \ + SMARTLINK=YES \ INSTALL_PREFIX=$RPM_BUILD_ROOT%{_prefix} \ INSTALL_BINDIR=$RPM_BUILD_ROOT%{_bindir} \ INSTALL_LIBDIR=$RPM_BUILD_ROOT%{_libdir} \ INSTALL_DOCDIR=$RPM_BUILD_ROOT%{_docdir} \ INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} \ INSTALL_BASEDIR=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{version} \ + INSTALL_EXAMPLEDIR=$RPM_BUILD_ROOT%{_examplesdir}/%{name} \ + INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} \ CODPATH=$RPM_BUILD_ROOT%{_libdir}/%{name}/lexyacc -sh compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir} - -#%{__make} -C src/%{name}-%{version}/docs pdfinstall DOCINSTALLDIR=$RPM_BUILD_ROOT%{_docdir} - -#cp -af src/%{name}-%{version}/doc/examples/* $RPM_BUILD_ROOT%{_examplesdir}/fpc +%{__make} -C install/man installman \ + INSTALL_MANDIR=$RPM_BUILD_ROOT%{_mandir} -#ln -sf ../lib/%{name}/%{version}/ppc386 $RPM_BUILD_ROOT%{_bindir}/ppc386 -#ln -sf ppc386 $RPM_BUILD_ROOT%{_bindir}/fpc +ln -sf %{_libdir}/%{name}/%{version}/ppc%{_bname} $RPM_BUILD_ROOT%{_bindir} -#cp -af src/%{name}-%{version}/doc/faq.htm src/%{name}-%{version}/doc/faq.html - -#ln -sf %{_bindir}/{as,ld} $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version} +sh fpcsrc/compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir} %clean rm -rf $RPM_BUILD_ROOT -#%post -#umask 022 -#GCCSPEC=`(gcc -v 2>&1)| head -n 1| awk '{ print $4 } '` -#GCCDIR=`dirname $GCCSPEC` -#echo "Found libgcc.a in $GCCDIR" -#sed -e "s#\$GCCDIR#$GCCDIR#" %{_sysconfdir}/fpc.cfg > %{_sysconfdir}/fpc.cfg.new -#sed -e "s#\$1#%{_libdir}/%{name}/%{version}#" %{_sysconfdir}/fpc.cfg.new > %{_sysconfdir}/fpc.cfg -#rm -f %{_sysconfdir}/fpc.cfg.new - %files %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/* -#%doc src/%{name}-%{version}/doc/{copying*,*.txt} -#%doc src/%{name}-%{version}/doc/faq.html -#%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/fpc.cfg +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpc.cfg %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{version} %dir %{_libdir}/%{name}/lexyacc %{_libdir}/%{name}/%{version}/msg %{_libdir}/%{name}/%{version}/units +%{_libdir}/%{name}/%{version}/ide %{_libdir}/%{name}/lexyacc/* %attr(755,root,root) %{_libdir}/%{name}/%{version}/ppc%{_bname} %attr(755,root,root) %{_libdir}/%{name}/%{version}/samplecfg -#%{_mandir}/man*/* +%{_mandir}/man*/* + +%files src +%defattr(644,root,root,755) +%{_datadir}/fpcsrc %files examples %defattr(644,root,root,755) -#%{_examplesdir}/fpc +%{_examplesdir}/fpc %files doc %defattr(644,root,root,755) -#%doc src/%{name}-%{version}/docs/*.pdf +%doc fpcdocs/*.pdf