X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=fpc.spec;h=5c63131b54e5d24a601b965faf3b58fcffe47f0a;hb=add5738b845a05319c10e0e3db5b06db621e5b9a;hp=e6840cc917ad23c60c87034a9d781fcb0d7cb0d8;hpb=3e3144b27b699fe35cedf52ecb130da48b17f00d;p=packages%2Ffpc.git diff --git a/fpc.spec b/fpc.spec index e6840cc..5c63131 100644 --- a/fpc.spec +++ b/fpc.spec @@ -1,19 +1,33 @@ +# TODO: +# - sparc/ppc version, check on x86 +# - documentation +# - make it working ;) 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: 1.0.4 -Release: 1 +Version: 2.0.0 +Release: 0.1 License: GPL Group: Development/Languages -Group(pl): Programowanie/Jêzyki Vendor: Michael Van Canneyt -Source0: ftp://ftp.freepascal.org/pub/fpc/dist/Linux/%{name}-%{version}.ELF.tar -Source1: fpc-sample.cfg -Patch: fpc-poptasm.patch +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 +# Source4-md5: dd8925ce8ce93309456c3072e6e4d14d +#Source2: %{name}-sample.cfg URL: http://www.freepascal.org/ +#BuildRequires: bin86 +#BuildRequires: zlib-devel Requires: gcc >= 2.95.2 -BuildRequires: bin86 -ExclusiveArch: %{ix86} m68k +ExclusiveArch: %{ix86} m68k amd64 ppc sparc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -28,148 +42,157 @@ multiple platforms. Free Pascal to 32 bitowy kompilator dla procesorów i386 oraz m86k. Free Pascal zosta³ zaprojektowany by byæ (jak tylko to mo¿liwe) kompatybilnym z Turbo Pascal 7.0 oraz Delphi 4. Free Pascal równie¿ -rozszerza te jêzyki elementami takimi jak prze³adowywanie funkcji. +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. + +%description -l uk +FPC -- 32-¦ÔÎÉÊ ËÏÍЦÌÑÔÏÒ Pascal, ÓÕͦÓÎÉÊ ¦Ú Turbo Pascal 7.0 ÔÁ Delphi. +ðÏÓÔÁÞÁ¤ÔØÓÑ ¦Ú RTL (¦Â̦ÏÔÅËÏÀ ÞÁÓÕ ×ÉËÏÎÁÎÎÑ), FCL (¦Â̦ÏÔÅËÏÀ צÌØÎÉÈ +ËÏÍÐÏÎÅÎÔ), ¦ÎÔÅÒÆÅÊÓÁÍÉ ÄÏ gtk, ncurses, zlib, mysql, postgres, ibase. %package examples Summary: Free Pascal Compiler exaple programs Summary(pl): Przyk³adowe programy do kompilatora Free Pascal Group: Documentation -Group(pl): Dokumentacja Requires: %{name} = %{version} %description examples Free Pascal Compiler exaple programs. -%description -l pl examples +%description examples -l pl Przyk³adowe programy do kompilatora Free Pascal. %package doc Summary: Free Pascal Compiler documentation Summary(pl): Dokumentacja do kompilatora Free Pascal Group: Documentation -Group(pl): Dokumentacja Requires: %{name} = %{version} %description doc Documentation for fpc in PDF format. -%description -l pl doc +%description doc -l pl Dokumentacja do fpc w formacie PDF. %prep -%setup -q -c -tar xf sources.tar -tar xf binary.tar - -for i in *.tar.gz ; do +%setup -q -n %{name} +%ifarch %{ix86} +tar xf %{SOURCE1} +%define _bname 386 +%endif +%ifarch amd64 +tar xf %{SOURCE2} +%define _bname x64 +%endif +%ifarch ppc +tar xf %{SOURCE3} +%define _bname ppc +%endif + +tar xf binary.*-linux.tar + +mkdir bin +cd bin +for i in ../*.tar.gz ; do tar xzf $i done - -mkdir -p src/%{name}-%{version}/doc -mv doc/%{name}-%{version}/* src/%{name}-%{version}/doc -mkdir -p src/%{name}-%{version}/man && echo ".PHONY: all install installman" > src/%{name}-%{version}/man/Makefile - -cd src/%{name}-%{version} -%patch0 -p0 +ln -sf `pwd`/lib/%{name}/%{version}/ppc* bin %build -if [ "%{_build_cpu}" = "m68k" ]; then - CPU=M68K -else - CPU=I386 -fi - -# DO NOT PUT $RPM_OPT_FLAGS IN OPT, IT DOES NOT WORK - baggins -case "%{_build_cpu}" in - i386) - OPTF="-OG2p1" ;; - i586) - OPTF="-OG2p2" ;; - i686) - OPTF="-Og2p3" ;; - *) - OPTF="-O2" ;; -esac - -PP=`pwd`/lib/fpc/%{version}/ppc386 -NEWPP=`pwd`/src/fpc-%{version}/compiler/ppc386 - -# -O- optimalization to workaround bug in PP compiler in 1.0.4 -%{__make} -C src/%{name}-%{version} \ - OPT="-O- -Xs -n" \ - RELEASE="" \ +PP=`pwd`/bin/lib/%{name}/%{version}/ppc%{_bname} +NEWPP=`pwd`/compiler/ppc%{_bname} + +%{__make} compiler_cycle \ + OPT="$OPTF -Xs -n" \ + RELEASE="1" \ BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ BININSTALLDIR=%{_bindir} \ PP="$PP" \ FPC="$PP" \ compiler_cycle -%{__make} -C src/%{name}-%{version} \ - OPT="$OPTF -Xs -n" \ - RELEASE="" \ +%{__make} OPT="$OPTF -Xs -n" \ + RELEASE="1" \ BASEINSTALLDIR=%{_libdir}/%{name}/%{version} \ BININSTALLDIR=%{_bindir} \ PP="$NEWPP" \ FPC="$NEWPP" \ - rtl_all api_all fcl_all packages_all utils_all + DATA2INC=`pwd`/utils/data2inc \ + rtl packages_base_all fcl packages_extra_all utils_all + +#%{__make} -C src/%{name}-%{version}/docs pdf FPDOC=${NEWFPDOC} %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir},%{_examplesdir}/fpc} -install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/ppc386.cfg +NEWPP=`pwd`/compiler/ppc%{_bname} +FPCMAKE=`pwd`/utils/fpcm/fpcmake +%{__make} \ + compiler_install \ + rtl_install \ + fcl_install \ + packages_install \ + utils_install \ + PP="$NEWPP" \ + FPCMAKE="$FPCMAKE" \ + 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} \ + CODPATH=$RPM_BUILD_ROOT%{_libdir}/%{name}/lexyacc -# workaround for 1.0.4 -(cd src/fpc-%{version}; ln -s fcl/linux linux) +sh compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir} -NEWPP=`pwd`/src/fpc-%{version}/compiler/ppc386 -%{__make} -C src/%{name}-%{version} \ - PREFIXINSTALLDIR=$RPM_BUILD_ROOT%{_prefix} \ - PP="$NEWPP" \ - compiler_install \ - rtl_install api_install fcl_install packages_install utils_install +#%{__make} -C src/%{name}-%{version}/docs pdfinstall DOCINSTALLDIR=$RPM_BUILD_ROOT%{_docdir} -cp -a man/* $RPM_BUILD_ROOT%{_mandir} -cp -a src/%{name}-%{version}/doc/examples/* $RPM_BUILD_ROOT%{_examplesdir}/fpc +#cp -af src/%{name}-%{version}/doc/examples/* $RPM_BUILD_ROOT%{_examplesdir}/fpc -ln -sf ../lib/%{name}/%{version}/ppc386 $RPM_BUILD_ROOT%{_bindir}/ppc386 +#ln -sf ../lib/%{name}/%{version}/ppc386 $RPM_BUILD_ROOT%{_bindir}/ppc386 +#ln -sf ppc386 $RPM_BUILD_ROOT%{_bindir}/fpc -gzip -9nf src/%{name}-%{version}/doc/{copying*,*.txt} +#cp -af src/%{name}-%{version}/doc/faq.htm src/%{name}-%{version}/doc/faq.html -mv -f src/%{name}-%{version}/doc/faq.htm src/%{name}-%{version}/doc/faq.html +#ln -sf %{_bindir}/{as,ld} $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version} %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}/ppc386.cfg > %{_sysconfdir}/ppc386.cfg.new -sed -e "s#\$1#%{_libdir}/%{name}/%{version}#" %{_sysconfdir}/ppc386.cfg.new > %{_sysconfdir}/ppc386.cfg -rm -f %{_sysconfdir}/ppc386.cfg.new +#%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}.gz -%doc src/%{name}-%{version}/doc/faq.html -%config %verify(not md5 size mtime) %{_sysconfdir}/ppc386.cfg +#%doc src/%{name}-%{version}/doc/{copying*,*.txt} +#%doc src/%{name}-%{version}/doc/faq.html +%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/fpc.cfg %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{version} %dir %{_libdir}/%{name}/lexyacc %{_libdir}/%{name}/%{version}/msg %{_libdir}/%{name}/%{version}/units %{_libdir}/%{name}/lexyacc/* -%attr(755,root,root) %{_libdir}/%{name}/%{version}/ppc386 +%attr(755,root,root) %{_libdir}/%{name}/%{version}/ppc%{_bname} %attr(755,root,root) %{_libdir}/%{name}/%{version}/samplecfg -%{_mandir}/man*/* +#%{_mandir}/man*/* %files examples %defattr(644,root,root,755) -%doc %{_examplesdir}/fpc +#%{_examplesdir}/fpc %files doc %defattr(644,root,root,755) -%doc src/%{name}-%{version}/doc/*.pdf +#%doc src/%{name}-%{version}/docs/*.pdf