# TODO:
-# - sparc/ppc version, check on x86
-# - documentation
-# - make it working ;)
+# - check why it builds all static..
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
+Release: 1
License: GPL
Group: Development/Languages
Vendor: Michael Van Canneyt <michael@tfdec1.fys.kuleuven.ac.be>
# 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
-ExclusiveArch: %{ix86} m68k amd64 ppc sparc
+BuildRequires: ncurses-devel
+BuildRequires: gpm-devel
+BuildRequires: tetex-fonts-jknappen
+BuildRequires: tetex-format-pdflatex
+BuildRequires: tetex-metafont
+Requires: binutils
+ExclusiveArch: %{ix86} amd64 ppc sparc
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%build
PP=`pwd`/bin/lib/%{name}/%{version}/ppc%{_bname}
NEWPP=`pwd`/compiler/ppc%{_bname}
+NEWFPDOC=`pwd`/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} compiler_cycle \
OPT="$OPTF -Xs -n" \
BININSTALLDIR=%{_bindir} \
PP="$PP" \
FPC="$PP" \
- compiler_cycle
+ SMARTLINK=YES
%{__make} OPT="$OPTF -Xs -n" \
RELEASE="1" \
PP="$NEWPP" \
FPC="$NEWPP" \
DATA2INC=`pwd`/utils/data2inc \
- rtl packages_base_all fcl packages_extra_all utils_all
-
-#%{__make} -C src/%{name}-%{version}/docs pdf FPDOC=${NEWFPDOC}
+ SMARTLINK=YES \
+ rtl_clean rtl_smart \
+ packages_base_smart \
+ fcl_smart \
+ fv_smart \
+ packages_extra_smart \
+ ide_all \
+ utils_all
+
+export save_size=10000
+%{__make} -C docs pdf \
+ FPDOC=$NEWFPDOC \
+ FPC="$NEWPP"
%install
rm -rf $RPM_BUILD_ROOT
NEWPP=`pwd`/compiler/ppc%{_bname}
FPCMAKE=`pwd`/utils/fpcm/fpcmake
%{__make} \
- compiler_install \
- rtl_install \
- fcl_install \
- packages_install \
- utils_install \
+ compiler_distinstall \
+ rtl_distinstall \
+ fcl_distinstall \
+ fv_distinstall \
+ packages_distinstall \
+ ide_distinstall \
+ utils_distinstall \
+ man_install \
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}
+ln -sf %{_libdir}/%{name}/%{version}/ppc%{_bname} $RPM_BUILD_ROOT%{_bindir}
-#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 ppc386 $RPM_BUILD_ROOT%{_bindir}/fpc
-
-#cp -af src/%{name}-%{version}/doc/faq.htm src/%{name}-%{version}/doc/faq.html
+sh compiler/utils/samplecfg %{_libdir}/%{name}/%{version} $RPM_BUILD_ROOT%{_sysconfdir}
-#ln -sf %{_bindir}/{as,ld} $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version}
+cp -f install/doc/faq.htm faq.html
%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
+%doc faq.html install/doc/{copying*,*.txt} ide/readme.ide
%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}/%{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 examples
%defattr(644,root,root,755)
-#%{_examplesdir}/fpc
+%{_examplesdir}/fpc
%files doc
%defattr(644,root,root,755)
-#%doc src/%{name}-%{version}/docs/*.pdf
+%doc docs/*.pdf