]> git.pld-linux.org Git - packages/fpc.git/blobdiff - fpc.spec
- binutils epoch
[packages/fpc.git] / fpc.spec
index 4aa0156c207d9309f9ba86e9b9a7d3a22e6a7bbe..e8e283d3326f49762d44c786f02dbf1898133e1c 100644 (file)
--- 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 <michael@tfdec1.fys.kuleuven.ac.be>
-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
This page took 0.076016 seconds and 4 git commands to generate.