%install
%if "%{_prefix}" != "/usr"
export PATH="%{_bindir}:${PATH}"
%endif
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
%if %build_newlib
cd build/@tool_target@/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%endif
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/@tool_target@/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/@tool_target@-c++filt%{_exeext}
%if %build_gnat
# Seemingly a VAX tool. Not meaningful, here.
rm -f $RPM_BUILD_ROOT%{_bindir}/vxaddr2line%{_exeext}
%endif
%if %build_infos
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
%else
# Conflict with a native GCC's infos
rm -rf $RPM_BUILD_ROOT%{_infodir}
# Conflict with a native GCC's man pages
rm -rf $RPM_BUILD_ROOT%{_mandir}/man7
%endif
# We don't want libffi's man-pages
rm -f $RPM_BUILD_ROOT%{_mandir}/man3/*ffi*
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/@tool_target@-@tool_target@-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/@tool_target@/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/@tool_target@/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/@tool_target@/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/@tool_target@/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
%if %build_newlib
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/@tool_target@/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
%endif
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
%if "%{_prefix}" != "/usr"
echo "%dir %{_prefix}" >> dirs
echo "%dir %{_libdir}" >> dirs
%if "%{gcc_version}" >= "3.4"
echo "%dir %{_libexecdir}" >> dirs
%endif
%endif
echo "%dir %{_gcclibdir}/gcc" >> dirs
echo "%dir %{_gcclibdir}/gcc/@tool_target@" >> dirs
TGTDIR="%{_gcclibdir}/gcc/@tool_target@/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> dirs
;;
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/@tool_target@/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/@tool_target@/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done