description="GNU compiler collection, which includes the C, C++, fortran and objc compilers."
url="http://gcc.gnu.org"

packager="Great-OS Team"
maintainer="Great-OS Team"

name=gcc
version=15.2.0
release=1

PKGMK_IGNORE_UNPACK='yes'
source=(http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz)

_ARCH=$(uname -m)
case ${_ARCH} in
  x86_64)
    CFLAGS+=" -march=x86-64-v2"
  ;;
esac

prepare() {
  tar xf gcc-$version.tar.xz
}

build() {
  cd gcc-$version

  case $(uname -m) in
    x86_64)
      sed -e '/m64=/s/lib64/lib/' \
          -i.orig gcc/config/i386/t-linux64
    ;;
    aarch64)
      sed -e '/mabi.lp64=/s/lib64/lib/' \
          -i.orig gcc/config/aarch64/t-aarch64-linux
    ;;
  esac

  [ -L /tools ] && rm -f /usr/lib/gcc

  mkdir -v build
  cd build

  ../configure --prefix=/usr \
      --disable-multilib \
      --with-system-zlib \
      --libdir=/usr/lib \
      --disable-bootstrap \
      --enable-default-pie \
      --enable-default-ssp \
      --disable-fixincludes \
      --enable-languages=c,c++,fortran,go,objc,obj-c++,m2 \
      --disable-werror

  make

  make DESTDIR=$PKG install

  rm -rvf $PKG/usr/lib/gcc/$(gcc -dumpmachine)/$version/include-fixed/bits/

  mkdir -p $PKG/usr/lib

  ln -sv ../usr/bin/cpp $PKG/usr/lib/cpp

  ln -sv gcc $PKG/usr/bin/cc

  install -dm755 $PKG/usr/share/gdb/auto-load/usr/lib
  install -dm755 $PKG/usr/lib/bfd-plugins

  sed -i "s|-L$SRC[^ ]* ||g" \
    $PKG/usr/lib/{libstdc++.la,libsupc++.la}

  mv -v $PKG/usr/lib/*gdb.py \
    $PKG/usr/share/gdb/auto-load/usr/lib

  ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/$version/liblto_plugin.so \
    $PKG/usr/lib/bfd-plugins/

  #Exclude dir.gz from bash pkg
  rm $PKG/usr/share/info/dir
}

devel() {
  cd $PKG
  bsdtar -cf \
  $PKGMK_PACKAGE_DIR/$name.devel${PKGMK_BUILDVER}`uname -m`.$PKGMK_PACKAGE_EXT \
  usr/include usr/share/gdb usr/lib/gcc usr/bin usr/libexec usr/share/gcc-$version
  rm -r usr/include usr/share/gdb usr/lib/gcc usr/bin usr/libexec usr/share/gcc-$version
}
