]> git.pld-linux.org Git - packages/fpc.git/blobdiff - fpc.spec
- ppc version
[packages/fpc.git] / fpc.spec
index e6840cc917ad23c60c87034a9d781fcb0d7cb0d8..5c63131b54e5d24a601b965faf3b58fcffe47f0a 100644 (file)
--- 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 <michael@tfdec1.fys.kuleuven.ac.be>
-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
This page took 0.079022 seconds and 4 git commands to generate.