MAJOR="${PKGVER%%.*}"
abinfo "Removing installed files, rebuild package manually..."
rm -rv "$PKGDIR"

abinfo "Installing runtime libraries..."
cd "$BLDDIR"
make install-shared \
    -C "${ARCH_TARGET[$ARCH]}"/libgcc \
    DESTDIR="$PKGDIR"

abinfo "Removing libgcc_eh.a, which we will ship with the main GCC package ..."
rm -v `find "$PKGDIR" -name 'libgcc_eh.a'`

if ab_match_archgroup mainline; then
    RTLIBS="libatomic libgfortran libgomp libquadmath libstdc++-v3/src libitm \
            libgm2/libm2cor libgm2/libm2iso libgm2/libm2log libgm2/libm2min libgm2/libm2pim \
            libsanitizer/asan libsanitizer/lsan libsanitizer/ubsan \
            libsanitizer/tsan libgo libvtv libcilkrts \
            libphobos/libdruntime libphobos/src"
else
    RTLIBS="libatomic libgfortran libgomp libquadmath libstdc++-v3/src libitm \
            libvtv libcilkrts"
fi

for lib in ${RTLIBS[@]}; do
    if [ -e "${ARCH_TARGET[$ARCH]}"/$lib/Makefile ]; then
        abinfo "Installing $lib ..."
        make -C "${ARCH_TARGET[$ARCH]}"/$lib DESTDIR="$PKGDIR" install-toolexeclibLTLIBRARIES
    fi
done

abinfo "Installing libobjc ..."
make install-libs \
    -C "${ARCH_TARGET[$ARCH]}"/libobjc \
    DESTDIR="$PKGDIR"

abinfo "Installing libgccjit runtime ..."
for i in `find "$SRCDIR"/jitbuild -name 'libgccjit.so*'`; do
    cp -av $i \
        "$PKGDIR"/usr/lib/
done
install -Dvm644 `find "$SRCDIR"/jitbuild -name 'libgccjit.info'` \
    "$PKGDIR"/usr/share/info/libgccjit.info

abinfo "Installing l10n data for libstdc++-v3 ..."
make install \
    -C "${ARCH_TARGET[$ARCH]}"/libstdc++-v3/po \
    DESTDIR="$PKGDIR"

for lib in libgomp libitm libquadmath; do
    if [ -e "${ARCH_TARGET[$ARCH]}"/$lib/Makefile ]; then
        abinfo "Installing texinfo pages for $lib ..."
        make install-info \
            -C "${ARCH_TARGET[$ARCH]}"/$lib \
            DESTDIR="$PKGDIR"
    fi
done

if [ -d "$PKGDIR"/usr/lib64 ]; then
    abinfo "Moving /usr/lib64 => /usr/lib ..."
    cp -av "$PKGDIR"/usr/lib{64/*,/}
    rm -rv "$PKGDIR"/usr/lib64
fi

if [ -d "$PKGDIR"/usr/lib32 ]; then
    abinfo "Moving /usr/lib32 => /usr/lib ..."
    cp -av "$PKGDIR"/usr/lib{32/*,/}
    rm -rv "$PKGDIR"/usr/lib32
fi

GCC_LIBDIR="$LIBDIR"/gcc/"${ARCH_TARGET[$ABHOST]}"/"$MAJOR"

abinfo "Moving rogue libraries to the correct location ..."
for d in $(find "$PKGDIR"/"$GCC_LIBDIR"/.. -maxdepth 1 -type d -name 'lib*') ; do
    for f in $(find "$d" -maxdepth 1 -type f,l -name 'lib*') ; do
        mv -v "$f" "$PKGDIR"/"$GCC_LIBDIR"/
    done
    rm -rv "$d"
done

abinfo "Installing runtime files to GCC version-specific libdir ..."
find "$PKGDIR"/"$LIBDIR" -maxdepth 1 -name '*.so' \
    -exec cp -av {} "$PKGDIR"/"$GCC_LIBDIR"/ \;
find "$PKGDIR"/"$LIBDIR" -maxdepth 1 -name '*.so.*' \
    -exec cp -av {} "$PKGDIR"/"$GCC_LIBDIR"/ \;

abinfo "Removing libraries from libdir ..."
find "$PKGDIR"/"$LIBDIR" -maxdepth 1 -type f -exec rm -v {} \;
find "$PKGDIR"/"$LIBDIR" -maxdepth 1 -type l -exec unlink {} \;

abinfo "Setting executable bits on shared libraries ..."
chmod -v +x "$PKGDIR"/"$GCC_LIBDIR"/*.so*

abinfo "Moving documentation and locale data to versioned paths ..."
for i in "$PKGDIR"/usr/share/man/man1/*; do
    mv -v "$i" "${i/.1/-$MAJOR.1}"
done
for i in "$PKGDIR"/usr/share/man/man7/*; do
    mv -v "$i" "${i/.7/-$MAJOR.7}"
done
for i in "$PKGDIR"/usr/share/info/!(dir); do
    mv -v "$i" "${i/.info/-$MAJOR.info}"
done
for i in "$PKGDIR"/usr/share/locale/*/LC_MESSAGES/*.mo; do
    mv -v "$i" "${i/.mo/-$MAJOR.mo}"
done

# Note: No point in shipping locale data for runtime libraries if this
#       weren't the default GCC version.
if ! bool "$__DEFAULT_GCC"; then
    rm -rv "$PKGDIR"/usr/share/locale
fi
