Sophie

Sophie

distrib > Mandriva > current > i586 > by-pkgid > af0f16efc4f90ae859b6d52d442ec3f0 > files > 5

fpc-2.4.4-5mdv2010.2.src.rpm

# (cjw) to bootstrap fpc for a new architecture ARCH, run
# rpm -bb --define 'cross_target $ARCH' --target $ARCH fpc.spec

%define useprebuiltcompiler 1

%define build_cross %{?cross_target:1}%{!?cross_target:0}
%define cross_prefix %{?cross_target:cross-%{cross_target}-}
%if %{build_cross}
%define fpc_target %{cross_target}
%else
%define fpc_target %_arch
%endif
%if %{fpc_target} == ppc
%define fpc_target powerpc
%endif
%define fpc_short_target %_target_cpu
%if %{fpc_short_target} == x86_64
%define fpc_short_target x64
%endif
%if %{fpc_short_target} == i586
%define fpc_short_target 386
%endif

%define debug_package %{nil}

%define fpcversion %{version}
%define fpcdir %{_prefix}/lib/%{name}/%{fpcversion}
%define docdir %{_datadir}/doc/fpc-%{fpcversion}

%define builddocdir %{buildroot}%{docdir}
%define buildmandir %{buildroot}%{_datadir}
%define buildbindir %{buildroot}%{_bindir}
%define buildlibdir %{buildroot}%{_libdir}
%define buildexampledir %{builddocdir}/examples


Name: 		fpc
Version: 	2.4.4
Release: 	%mkrel 5
ExclusiveArch:	%{ix86} ppc x86_64
License: 	GPLv2+ and LGPLv2+ with exceptions
Group: 		Development/Other
Source0:	http://surfnet.dl.sourceforge.net/sourceforge/freepascal/%{name}-%{version}.source.tar.gz
# This is only needed when useprebuiltcompiler is defined.
# But it's not in an 'if defined' block, since the file has to be included in the srpm
# Thus you should enable this line when useprebuildcompiler is defined for any target
Source1:	http://www.cnoc.nl/fpc/%{name}-%{version}.compiler.bin.tar.gz
Patch0:		fpc-2.4.4-samplecfg_32and64bit.patch
Patch1:		fpc-2.4.4-build-id.patch
Summary: 	Free Pascal Compiler
URL: 		http://www.freepascal.org/
Requires:	gcc
Requires:	fpc-base == %{version}
Requires:	fpc-units == %{version}
%if ! %{defined useprebuiltcompiler}
BuildRequires:	fpc
%endif
BuildRequires:	tetex-latex mysql-devel postgresql-devel ncurses-devel
%if %{build_cross}
BuildRequires:	cross-%{cross_target}-binutils
%endif

%description
The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32bit
Pascal Compiler. It comes with fully TP 7.0 compatible run-time library.
Some extensions are added to the language, like function overloading. Shared
libraries can be linked. Basic Delphi support is already implemented (classes,
exceptions,ansistrings,RTTI). This package contains commandline compiler and
utils. Provided units are the runtime library (RTL), free component library
(FCL), gtk,ncurses,zlib, mysql,postgres,ibase bindings.

%package	src
# Needed for e.g. lazarus
Summary:	Source code of Free Pascal Compiler
Group:		Development/Other
BuildArch:	noarch

%description	src
The source code of Freepascal for documentation and code generation
purposes.

%package	base
Summary:	Ide and rtl units with some base unit. May be useful for education with standart Pascal CLI programm
Group:		Development/Other

%description base
This package consists FPC IDE and only RTL units for using with classical CLI Pascal programm.
Also it consists:

- X11 (Xlib, Xutil)
- NCurses
- ZLib.

%package	units
Summary:	Units not included in fpc-base
Group:		Development/Other
Requires:	fpc-base == %{version}

%description	units
This package consists units not include in fpc-base packets. Using it, if you need all units instead RTL and X11,NCurses and ZLib only.

%prep
%if %{defined useprebuiltcompiler}
%setup -a1 -q
%else
%setup -q
%endif
# patch0 seems to break things, at least Lazarus build so we don't use it
# until some investigation is done
#patch0 -p1 -b .cfg32_64~
%patch1 -p1 -b .build_id~

%build
%__install -dm 755 fpc_src
%__cp -a rtl packages fpc_src
%__rm -rf fpc_src/packages/extra/amunits
%__rm -rf fpc_src/packages/extra/winunits

%if %{build_cross}
fpcmake -T%{fpc_target}-linux
%endif

%if %{build_cross}
EXTRA_FLAGS="CPU_TARGET=%{fpc_target} BINUTILSPREFIX=%{cross_target}-linux-"
NEWPP=`pwd`/compiler/ppcross%{fpc_short_target}
%else
EXTRA_FLAGS=
NEWPP=`pwd`/compiler/ppc%{fpc_short_target}
%endif
NEWFPDOC=`pwd`/utils/fpdoc/fpdoc

%if %{defined useprebuiltcompiler}
STARTPP=`pwd`/startcompiler/ppc%{fpc_short_target}
%else
STARTPP=ppc%{fpc_short_target}
%endif

	make compiler_cycle ${EXTRA_FLAGS} FPC=${STARTPP}
#
	make rtl_clean rtl_smart FPC=${NEWPP} ${EXTRA_FLAGS}
	make packages_smart FPC=${NEWPP} ${EXTRA_FLAGS}
	make ide_all FPC=${NEWPP} ${EXTRA_FLAGS}
	make utils_all FPC=${NEWPP} ${EXTRA_FLAGS}
#%if !%{build_cross}
#	make -C docs pdf FPDOC=${NEWFPDOC} FPC=${NEWPP} ${EXTRA_FLAGS}
#%endif

%install
%__rm -rf %{buildroot}
#NEWPPUFILES=`pwd`/utils/ppufiles
%if %{build_cross}
EXTRA_FLAGS="CPU_TARGET=%{fpc_target} BINUTILSPREFIX=%{cross_target}-linux-"
NEWPP=`pwd`/compiler/ppcross%{fpc_short_target}
NEWFCPMAKE=/usr/bin/fpcmake
%else
EXTRA_FLAGS=
NEWPP=`pwd`/compiler/ppc%{fpc_short_target}
NEWFCPMAKE=`pwd`//utils/fpcm/fpcmake
%endif
INSTALLOPTS="FPC=${NEWPP} INSTALL_PREFIX=%{buildroot}/%{_prefix} INSTALL_LIBDIR=%{buildlibdir} \
                INSTALL_DOCDIR=%{builddocdir} INSTALL_BINDIR=%{buildbindir}"
	make compiler_distinstall ${INSTALLOPTS} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}
	make rtl_distinstall ${INSTALLOPTS} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}
	make packages_distinstall ${INSTALLOPTS} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}
	make ide_distinstall ${INSTALLOPTS} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}
	make utils_distinstall ${INSTALLOPTS} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}

%if %{build_cross}
	%__rm -rf %{buildexampledir}
%else
#	make demo_install ${INSTALLOPTS} INSTALL_SOURCEDIR=%{buildexampledir} FPCMAKE=${NEWFCPMAKE} ${EXTRA_FLAGS}
#	make doc_install ${INSTALLOPTS} INSTALL_DOCDIR=%{builddocdir} FPCMAKE=${NEWFCPMAKE}
#	mv %{buildroot}/%{_prefix}/doc/%{name}-%{version}/examples/* %{buildexampledir} 
#	make man_install ${INSTALLOPTS} INSTALL_PREFIX=%{buildmandir} FPCMAKE=${NEWFCPMAKE}
%endif

        # create link
	ln -sf %{fpcdir}/ppc%{fpc_short_target} %{buildroot}%{_bindir}/ppc%{fpc_short_target}
	
	#make fcl_exampleinstall ${INSTALLOPTS} DOCINSTALLDIR=%{builddocdir}
	#make api_exampleinstall ${INSTALLOPTS} DOCINSTALLDIR=%{builddocdir}
	#make packages_exampleinstall ${INSTALLOPTS} DOCINSTALLDIR=%{builddocdir}

%__install -dm 755 %{buildroot}%{_datadir}/fpcsrc
%__cp -a fpc_src/* %{buildroot}%{_datadir}/fpcsrc/

# fix permissions
find %{buildroot}%{_datadir}/fpcsrc/ -type d -exec chmod 755 {} \;
find %{buildroot}%{_datadir}/fpcsrc/ -type f -exec chmod 644 {} \;

%clean
%__rm -rf %{buildroot}

%post base
# Create config
%{fpcdir}/samplecfg %{fpcdir}

%files

%files units
%defattr(-,root,root,-)
%{_prefix}/lib/fpc/%{version}/units
# in fpc-base
%ifarch i586
%exclude %{_prefix}/lib/fpc/%{version}/units/i386-linux/rtl
%exclude %{_prefix}/lib/fpc/%{version}/units/i386-linux/x11
%exclude %{_prefix}/lib/fpc/%{version}/units/i386-linux/ncurses
%exclude %{_prefix}/lib/fpc/%{version}/units/i386-linux/zlib
%else
%exclude %{_prefix}/lib/fpc/%{version}/units/x86_64-linux/rtl
%exclude %{_prefix}/lib/fpc/%{version}/units/x86_64-linux/x11
%exclude %{_prefix}/lib/fpc/%{version}/units/x86_64-linux/ncurses
%exclude %{_prefix}/lib/fpc/%{version}/units/x86_64-linux/zlib
%endif

%files src
%defattr(-,root,root,-)
%{_datadir}/fpcsrc

%files base
%defattr(-,root,root,-)
%doc %{_defaultdocdir}/%{name}-%{version}
%{_bindir}/*
%{_prefix}/lib/fpc/lexyacc
%{_prefix}/lib/fpc/%{version}/ide
%{_prefix}/lib/fpc/%{version}/msg
%{_prefix}/lib/fpc/%{version}/samplecfg
%ifarch i586
%{_prefix}/lib/fpc/%{version}/units/i386-linux/rtl
%{_prefix}/lib/fpc/%{version}/units/i386-linux/x11
%{_prefix}/lib/fpc/%{version}/units/i386-linux/ncurses
%{_prefix}/lib/fpc/%{version}/units/i386-linux/zlib
%{_prefix}/lib/fpc/%{version}/ppc386
%else
%{_prefix}/lib/fpc/%{version}/units/x86_64-linux/rtl
%{_prefix}/lib/fpc/%{version}/units/x86_64-linux/x11
%{_prefix}/lib/fpc/%{version}/units/x86_64-linux/ncurses
%{_prefix}/lib/fpc/%{version}/units/x86_64-linux/zlib
%{_prefix}/lib/fpc/%{version}/ppcx64
%endif


%changelog
* Fri Feb 10 2012 Andrey Bondrov <abondrov@mandriva.org> 2.4.4-5
+ Revision: 772416
- Restore rpm4 junk, make src subpackage noarch, fix dir and file permission, don't use patch0

* Thu Feb 09 2012 Александр Казанцев <kazancas@mandriva.org> 2.4.4-4
+ Revision: 772366
- fix permission for fpc_src dir

  + Per Øyvind Karlsen <peroyvind@mandriva.org>
    - enabled BuildId, added it to fpc.cfg (P1, from Fedora)
    - detect 32 or 64 bit compilation in the configuration file fpc.cfg (P0 from
      Fedora)
    - clean out some legacy stuff..

* Fri Sep 23 2011 Александр Казанцев <kazancas@mandriva.org> 2.4.4-3
+ Revision: 701156
- add prebuild compiler via absent mdvfpcbootstrap
- split package fpc to fpc-base and fpc-units

* Sat Aug 13 2011 Александр Казанцев <kazancas@mandriva.org> 2.4.4-2
+ Revision: 694319
- add base subpackage due minimal instalation of fpc

* Tue May 24 2011 Александр Казанцев <kazancas@mandriva.org> 2.4.4-1
+ Revision: 678152
- new version 2.4.4

* Tue May 03 2011 Oden Eriksson <oeriksson@mandriva.com> 2.4.2-2
+ Revision: 664350
- mass rebuild

* Tue Jan 25 2011 Александр Казанцев <kazancas@mandriva.org> 2.4.2-1
+ Revision: 632512
- new release 2.4.2

* Thu Dec 02 2010 Oden Eriksson <oeriksson@mandriva.com> 2.4.0-2mdv2011.0
+ Revision: 605213
- rebuild

* Thu Jan 07 2010 Frederik Himpe <fhimpe@mandriva.org> 2.4.0-1mdv2010.1
+ Revision: 487339
- Update to new version 2.4.0

* Tue Oct 06 2009 Anssi Hannula <anssi@mandriva.org> 2.2.4-2mdv2010.0
+ Revision: 455139
- provide fpc-src package containing source code (needed for e.g.
  lazarus)

* Wed May 13 2009 Frederik Himpe <fhimpe@mandriva.org> 2.2.4-1mdv2010.0
+ Revision: 375519
- update to new version 2.2.4

* Tue Aug 12 2008 Frederik Himpe <fhimpe@mandriva.org> 2.2.2-1mdv2009.0
+ Revision: 271218
- Update to new version 2.2.2
- Fix license

* Tue Jun 17 2008 Thierry Vignaud <tv@mandriva.org> 2.2.0-2mdv2009.0
+ Revision: 220961
- rebuild

* Thu Dec 27 2007 Anssi Hannula <anssi@mandriva.org> 2.2.0-1mdv2008.1
+ Revision: 138282
- 2.2.0
- add hacks to allow bootstrap with 2.1.1

  + Olivier Blin <blino@mandriva.org>
    - restore BuildRoot

  + Thierry Vignaud <tv@mandriva.org>
    - kill re-definition of %%buildroot on Pixel's request

* Thu May 10 2007 Lenny Cartier <lenny@mandriva.org> 2.1.1-0.4mdv2008.0
+ Revision: 26180
- Requires gcc


* Mon Oct 23 2006 Christiaan Welvaart <cjw@daneel.dyndns.org>
+ 2006-10-23 21:31:45 (72131)
- fix fpcdir for x86-64 (lib64 -> lib)

* Mon Oct 23 2006 Christiaan Welvaart <cjw@daneel.dyndns.org>
+ 2006-10-23 21:28:19 (72130)
Import fpc

* Tue Jan 10 2006 Christiaan Welvaart <cjw@daneel.dyndns.org> 2.1.1-0.2mdk
- add x86_64 to supported archs
- fix bootstrapping for x86_64

* Thu Dec 29 2005 Lenny Cartier <lenny@mandriva.com> 2.1.1-0.1mdk
- 2.1.1
- docs have disappeared/moved... if someone knows

* Fri Aug 19 2005 Christiaan Welvaart <cjw@daneel.dyndns.org> 2.0.0-2mdk
- add ppc to supported archs
- add some infrastructure for cross bootstrap builds

* Tue May 17 2005 Erwan Velu <velu@seanodes.com> 2.0.0-1mdk
- 2.0.0

* Thu Feb 26 2004 Olivier Thauvin <thauvin@aerov.jussieu.fr> 1.0.10-3mdk
- own %%{_libdir}/fpc

* Tue Nov 25 2003 Götz Waschk <waschk@linux-mandrake.com> 1.0.10-2mdk
- fix man page location