# 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 = ${TO}include|g" gcc/Makefile.in
  sed -i -e "s|NATIVE_SYSTEM_HEADER_DIR = /usr/include|NATIVE_SYSTEM_HEADER_DIR = ${TO}include|g" gcc/Makefile.in
  sed -i -e "s|#define STANDARD_INCLUDE_DIR \"/usr/include\"|#define STANDARD_INCLUDE_DIR \"${TO}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 \"${TO}lib/\"" >> gcc/config/linux.h
  for i in $(find gcc/config/ -name 'linux.h' -o 'linux64.h') ; do echo -e "\n#undef STANDARD_INCLUDE_DIR\n#define STANDARD_INCLUDE_DIR 0" >> $i ; done
  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 '/# include <ctype.h>/d' libiberty/regex.c
  if [[ ! -e ${TO}$target/sys-include ]] ; then ln -s ${TO}include ${TO}$target/sys-include ; fi
  touch $ldso
  mkdir -vp ${WO}build-gcc
  tkis_local_push work build-gcc
  ../gcc-$version/configure $CONF $ST_ONLY --with-local-prefix=$TO --enable-languages=c --with-dynamic-linker-prefix=${TO}lib --with-dynamic-linker=$ldso --disable-libssp --disable-nls --with-system-zlib --disable-threads --disable-multilib $TARGET --with-nostdinc --oldincludedir=${TO}include --enable-tls --without-cloog --without-ppl --with-build-sysroot=${TO} --disable-libgomp --disable-libmudflap --disable-decimal-float --disable-bootstrap
  #make gcc_cv_libc_provides_ssp=yes
  make
  make install
  tkis_local_push work
  rm -Rf build-gcc
  rm -Rf ${TO}bin/${target}-{gcc,g++,c++,gcc-*}
  tkis_local_pop

second_pass:
  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 = ${TO}include|g" gcc/Makefile.in
  sed -i -e "s|NATIVE_SYSTEM_HEADER_DIR = /usr/include|NATIVE_SYSTEM_HEADER_DIR = ${TO}include|g" gcc/Makefile.in
  sed -i -e 's|\./fixinc\.sh|-c true|' gcc/Makefile.in
  echo -e "\n#undef STARTFILE_PREFIX_SPEC\n#define STARTFILE_PREFIX_SPEC \"${TO}lib/\"" >> gcc/config/linux.h
  for i in $(find gcc/config/ -name 'linux.h' -o 'linux64.h') ; do echo -e "\n#undef STANDARD_INCLUDE_DIR\n#define STANDARD_INCLUDE_DIR 0" >> $i ; done
  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|^INCLUDES = -I. -I\$(@D) -I\$(srcdir) -I\$(srcdir)/\$(@D)|& -I${TO}include|" gcc/Makefile.in
  sed -i -e 's/violation_mode = viol_nop/violation_mode = viol_abort/' libmudflap/mf-runtime.c
  #sed -i -e '/# include <ctype.h>/d' libiberty/regex.c
  touch $ldso
  mkdir -vp ${WO}build-gcc
  tkis_local_push work build-gcc
  ../gcc-$version/configure $CONF $ST_ONLY --with-local-prefix=$TO --enable-languages=c,c++ --with-dynamic-linker-prefix=${TO}lib --with-dynamic-linker=$ldso  --enable-threads=posix --enable-__cxa_atexit --disable-libstdcxx-pch --disable-multilib --enable-clocale --enable-libssp --with-system-zlib --disable-nls $TARGET --disable-bootstrap --enable-tls --without-cloog --without-ppl
  #make gcc_cv_libc_provides_ssp=yes
  make
  make install
  ln -vsf gcc ${TO}bin/cc
  tkis_local_push work
  rm -Rf ${TO}lib/libiconv.so
  rm -Rf build-gcc
  rm -Rf ${TO}bin/${target}-{gcc,g++,c++,gcc-*}
  tkis_local_pop
