Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > 88f471486b5b5ff27da958a1ce6da3f4 > files > 5

g95-0.91-1.404_20070301.1mdv2008.1.src.rpm

%define	name			g95
%define binutils_version	2.16.91.0.2-2mdk
%define	gcc_version		4.0.4
%define gcc_major		4.0.4
%define g95_snapshot		20070301
%define snapshot		404_%{g95_snapshot}
%define	program_suffix		%{nil}
%define	program_suffix		%{nil}
%define arch			%(echo %{_target_cpu}|sed -e "s/i.86/i386/" -e "s/athlon/i386/" -e "s/amd64/x86_64/")
%define gcc_libdir		%{_prefix}/lib/g95
%define gcc_target_platform	%{_target_platform}
%define target_prefix		%{_prefix}
%define target_libdir		%{_libdir}
%define target_slibdir		/%{_lib}
%define	rel			%mkrel 1

# Use system gcc compiler?
%define use_syscomp		0
%{?_with_systemcompiler: %global use_syscomp 1}
%{?_without_systemcompiler: %global use_syscomp 0}

Summary:	Another Fortran 95 Compiler
Name:		%{name}
Version:	0.91
Release:	1.%{snapshot}.%{rel}
License:	GPL
Group:		Development/Other
Url:		http://www.g95.org
Source0:	http://www.g95.org/g95_source.tar.bz2
Source1:	gcc-%{gcc_version}.tar.bz2
Patch0:		g95-buildroot.patch
Patch1:		g95-f951-coexist.patch
Patch2:		g95-gcclibdir.patch
Patch3:		g95-g95libdir.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-root
BuildRequires:	binutils >= %{binutils_version}
BuildRequires:	bison
BuildRequires:	flex
BuildRequires:	gawk >= 3.1.4
BuildRequires:	gettext
BuildRequires:	libgmp-devel
BuildRequires:	texinfo >= 4.1
BuildRequires:	zlib-devel
Requires: gcc

%define _provides_exceptions libgcc_s.so.1

%description
This package adds support for compiling Fortran 95 programs with g95,
a compiler alternative to the official GNU compiler called gfortran.
For further differences between g95 and gfortran see
http://gcc.gnu.org/wiki/TheOtherGCCBasedFortranCompiler.

%prep
%setup -q -c -n %{name} -a 1
pwd
ln -s gcc-%{gcc_version} gcc
ln -s gcc gcc-4_0-branch
tar -zxvf g95-%{version}/libf95.a-%{version}.tar.gz -C g95-%{version}/
ln -s g95-%{version}/libf95.a-%{version} libf95.a-%{version}
%patch0 -p1 -b .buildroot
%if %use_syscomp
%patch1 -p1 -b .coexist
%patch2 -p1 -b .gcclibdir
%else
%patch3 -p1 -b .g95libdir
%endif

%build
OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-mcpu=pentiumpro//g'`
PROGRAM_SUFFIX="--program-suffix=%{program_suffix}"

(cd gcc
 mkdir g95
 cd g95
 %{?__cputoolize: %{__cputoolize} -c ..}
 CC="%{__cc}" \
 CFLAGS="$OPT_FLAGS" \
 CXXFLAGS="$OPT_FLAGS" \
 XCFLAGS="$OPT_FLAGS" \
 TCFLAGS="$OPT_FLAGS" \
 `pwd`/../configure \
	--enable-languages=c \
	--prefix=%{_prefix} \
	--libexecdir=%{_prefix}/lib \
	--with-slibdir=%{target_slibdir} \
	--mandir=%{_mandir} \
	--infodir=%{_infodir} \
	--enable-threads=posix \
	--disable-checking \
	$PROGRAM_SUFFIX \
	--host=%{_target_platform} \
	--with-system-zlib
 %make
)	

(cd g95-%{version}
 %{?__cputoolize: %{__cputoolize} -c ..}
 ./autogen.sh
 CC="%{__cc}" \
 CFLAGS="$OPT_FLAGS" \
 CXXFLAGS="$OPT_FLAGS" \
 XCFLAGS="$OPT_FLAGS" \
 TCFLAGS="$OPT_FLAGS" \
 ./configure \
	--prefix=%{_prefix} \
	--libexecdir=%{_prefix}/lib \
	--with-slibdir=%{target_slibdir} \
	--mandir=%{_mandir} \
	--infodir=%{_infodir} \
	--with-gcc-dir=`pwd`/../gcc \
	$PROGRAM_SUFFIX \
	--host=%{_target_platform} \
	--with-system-zlib
 %make
)

(cd g95-%{version}/libf95.a-%{version}
 perl -pi -e 's@\$prefix/lib/gcc-lib/\$host/\$gcc_version@%{gcc_libdir}/\$host/%{gcc_major}@g' configure.in configure
 CC="%{__cc}" \
 CFLAGS="$OPT_FLAGS" \
 CXXFLAGS="$OPT_FLAGS" \
 XCFLAGS="$OPT_FLAGS" \
 TCFLAGS="$OPT_FLAGS" \
 ./configure \
	--prefix=%{_prefix} \
	--libexecdir=%{_prefix}/lib \
	--with-slibdir=%{target_slibdir} \
	--mandir=%{_mandir} \
	--infodir=%{_infodir} \
	--with-gcc-dir=`pwd`/../../gcc \
	$PROGRAM_SUFFIX \
	--host=%{_target_platform} \
	--with-system-zlib
 make
)


%install
rm -rf %{buildroot}
mkdir -p %{buildroot}

(cd g95-%{version}
%makeinstall_std)

(cd g95-%{version}/libf95.a-%{version}
%makeinstall_std)

rm -f %{buildroot}%{_prefix}/G95Manual.pdf %{buildroot}%{_prefix}/INSTALL

%if %use_syscomp
# Fix path of libf95.a to the same one of gcc
mv %{buildroot}%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_major}/libf95.a \
	%{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{gcc_version}/libf95.a
rm -rf %{buildroot}%{_prefix}/lib/gcc-lib

# remove files which are already provided by gcc
(cd %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{gcc_version}
 rm -f cc1 crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o \
 libgcc.a libgcc_s.so libgcc_s.so.1)
%endif
ln -sf %{_bindir}/%{_target_platform}-g95 %{buildroot}%{_bindir}/g95

%clean
rm -rf %{buildroot}%

%files
%defattr(-,root,root)
%doc g95-%{version}/G95Manual.pdf g95-%{version}/COPYING
%doc g95-%{version}/AUTHORS g95-%{version}/BUGS g95-%{version}/INSTALL
%doc g95-%{version}/README
%{_bindir}/*
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/libf95.a
%if %use_syscomp
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/g951
%else
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/f951
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/cc1
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/crtbegin.o
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/crtbeginS.o
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/crtbeginT.o
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/crtend.o
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/crtendS.o
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/libgcc.a
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so.1
%{gcc_libdir}/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a
%endif




%changelog
* Wed Jan 02 2008 Olivier Blin <oblin@mandriva.com> 0.91-1.404_20070301.1mdv2008.1
+ Revision: 140731
- restore BuildRoot

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


* Sat Mar 03 2007 Giuseppe Ghibò <ghibo@mandriva.com> 0.91-1.404_20070301.1mdv2007.0
+ Revision: 131799
- Use gcc 4.0.4.

* Sat Mar 03 2007 Giuseppe Ghibò <ghibo@mandriva.com> 0.91-1.403_20070301.1mdv2007.1
+ Revision: 131750
- Added libgcc_s.so.1 to list of provides_exceptions (Pixel).
- Updated to release 0.91.
- Import g95

* Tue Mar 28 2006 Giuseppe Ghibò <ghibo@mandriva.com> 0.50-1.403_20060326.1mdk
- Release 20060327.

* Tue Mar 14 2006 Giuseppe Ghibò <ghibo@mandriva.com> 0.50-1.403_20060311.1mdk
- Release 20060311.
- Used internal's 4.0.3 as g95's gcc.
- Fixed description.

* Wed Jan 11 2006 Giuseppe Ghibò <ghibo@mandriva.com> 0.50-1.403_20060111.1mdk
- Release 20060111.
- Added --with systemcompiler to decide whether
- Used internal's 4.0_branch_20060111 as g95's gcc.

* Sat Nov 05 2005 Giuseppe Ghibò <ghibo@mandriva.com> 0.50-1.402_20051105.1mdk
- Added Patch0 to fix buildroot installation.
- Added Patch1 to allow coexisting with gfortran.
- Added Patch2 to fix gcc_libdir patch.
- initial release.