# fss-0002
# look into --with-fpmath=sse when gcc-4.5+ is used

main:
  tkis_local_get_version mpfr
  tkis_extract mpfr ${LOCAL_VERSION} .
  mv -v mpfr{-${LOCAL_VERSION},}
  tkis_local_get_version gmp
  tkis_extract gmp ${LOCAL_VERSION} .
  mv -v gmp{-${LOCAL_VERSION},}
  sed -i -e "s|CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@|CROSS_SYSTEM_HEADER_DIR = ${TC}include|g" gcc/Makefile.in
  sed -i -e "s|NATIVE_SYSTEM_HEADER_DIR = /usr/include|NATIVE_SYSTEM_HEADER_DIR = ${TC}include|g" gcc/Makefile.in
  sed -i -e "s|#define STANDARD_INCLUDE_DIR \"/usr/include\"|#define STANDARD_INCLUDE_DIR \"${TC}include\"|" gcc/cppdefault.c
  sed -i -e 's|\./fixinc\.sh|-c true|' gcc/Makefile.in
  echo -e "\n#undef STARTFILE_PREFIX_SPEC\n#define STARTFILE_PREFIX_SPEC \"/lib/\"" >> gcc/config/linux.h
  sed -e 's/install_to_$(INSTALL_DEST) //' -i libiberty/Makefile.in
  sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
  sed -i -e 's/violation_mode = viol_nop/violation_mode = viol_abort/' libmudflap/mf-runtime.c
  sed -i -e "s|@LIBICONV@|${TO}lib/libiconv.a|g" */Makefile.in
  mkdir -vp ${WO}build-gcc
  tkis_local_push work build-gcc
  ../gcc-$version/configure $TCONF $SH_N_ST $TARGET --with-local-prefix=$TC --enable-languages=c,c++ --with-dynamic-linker=$ldso --with-dynamic-linker-prefix=/lib --enable-clocale --enable-__cxa_atexit --with-system-zlib --disable-multilib --enable-threads=posix --disable-libstdcxx-pch --enable-libssp --enable-wchar_t --enable-long-long --enable-tls --without-cloog
  #make gcc_cv_libc_provides_ssp=yes
  make
  make install
  if [[ -d ${TC}lib64 ]] ; then mv -v ${TC}lib64/* ${TC}lib/ && rm -Rf ${TC}lib64 ; fi
  ln -vsf gcc ${TC}bin/cc
  if [[ -e ${TC}lib/libstdc++.la ]] ; then sed -i -e "s|$TC||" ${TC}lib/libstdc++.la && chmod ugo-x ${TC}lib/libstdc++.la ; fi
  if [[ -e ${TC}lib/libmudflap.la ]] ; then sed -i -e "s|$TC||" ${TC}lib/libmudflap.la && chmod ugo-x ${TC}lib/libmudflap.la ; fi
  if [[ -e ${TC}lib/libmudflapth.la ]] ; then sed -i -e "s|$TC||" ${TC}lib/libmudflapth.la && chmod ugo-x ${TC}lib/libmudflapth.la ; fi
  if [[ -e ${TC}lib/libgcc_s.la ]] ; then sed -i -e "s|$TC||" ${TC}lib/libgcc_s.la && chmod ugo-x ${TC}lib/libgcc_s.la ; fi
  if [[ -e ${TC}lib/libssp.la ]] ; then sed -i -e "s|$TC||" ${TC}lib/libssp.la && chmod ugo-x ${TC}lib/libssp.la ; fi
  if [[ -e ${TC}lib/libgomp.la ]] ; then chmod ugo-x ${TC}lib/libgomp.la ; fi
  if [[ -e ${TC}lib/libssp_nonshared.la ]] ; then chmod ugo-x ${TC}lib/libssp_nonshared.la ; fi
  if [[ -e ${TC}lib/libsupc++.la ]] ; then chmod ugo-x ${TC}lib/libsupc++.la ; fi
  ln -vsf libgcc_s.so /lib/libgcc.so
  rm -Rf ${TC}bin/{c++,gccbug}
  ln -vsf g++ ${TC}bin/c++
  tkis_local_push work
  for i in lib{stdc++,gcc_s,gomp,mudflap{,th},iberty,stdc++_pic,supc++,stdc++,gcc_s,gomp,mudflap{,th},ssp{,_nonshared}}.a ; do if [[ -e ${TC}lib/$i ]] ; then mv -v ${TC}lib/${i} ${TC}lib/static/ ; fi ; done
  rm -Rf ${TC}bin/${target}* ${TC}lib/lib{supc++.la,gomp.spec} ${TC}share/locale
  rm -Rf build-gcc
  chgrp -R d_toolchain $TC
  find ${TC} -type d -exec chmod g+s '{}' ';'
  if [[ -e ${TC}lib/libstdc++.so ]] ; then mv -v ${TC}lib/libstdc++.so* /lib/ && chgrp e_public /lib/libstdc++.so* && chmod o-rx /lib/libstdc++.so* ; fi 
  if [[ -e ${TC}lib/libmudflap.so ]] ; then mv -v ${TC}lib/libmudflap.so* /lib/ && chgrp e_public /lib/libmudflap.so* && chmod o-rx /lib/libmudflap.so* ; fi 
  if [[ -e ${TC}lib/libmudflapth.so ]] ; then mv -v ${TC}lib/libmudflapth.so* /lib/&& chgrp e_public /lib/libmudflapth.so* && chmod o-rx /lib/libmudflapth.so* ; fi 
  if [[ -e ${TC}lib/libgcc_s.so ]] ; then mv -v ${TC}lib/libgcc_s.so* /lib/ && chgrp e_public /lib/libgcc_s.so* && chmod o-rx /lib/libgcc_s.so* ; fi 
  if [[ -e ${TC}lib/libssp.so ]] ; then mv -v ${TC}lib/libssp.so* /lib/ && chgrp e_public /lib/libssp.so* && chmod o-rx /lib/libssp.so* ; fi 
  tkis_local_pop
  tkis_handle_documentation info core ${TC}info
