View Raw Ebuild
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GCC_VER=${PV}
GCC_MAJ_VER=$(ver_cut 1-3)
SUPPORT_VER='1.212'
SILLY_URL_VER='9.3.1.2'
DESCRIPTION="open source toolchain for MSP430 microcontrollers"
HOMEPAGE="https://www.ti.com/tool/MSP430-GCC-OPENSOURCE"
SRC_URI="https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-LlCjWuAbzH/${SILLY_URL_VER}/msp430-gcc-${GCC_VER}_linux64.tar.bz2
https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-LlCjWuAbzH/${SILLY_URL_VER}/msp430-gcc-support-files-${SUPPORT_VER}.zip
"
S="${WORKDIR}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64"
RESTRICT="bindist mirror strip"
BDEPEND="app-arch/unzip"
QA_PREBUILT="*"
keep_perms="
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-addr2line
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-ar
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-as
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-c++filt
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-cpp
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-elfedit
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-g++
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-c++
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcc-${GCC_MAJ_VER}
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcc-ar
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcc
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcc-nm
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcc-ranlib
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcov
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcov-dump
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gcov-tool
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gdb
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gdb-add-index
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gdb-py
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-gprof
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-ld.bfd
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-ld
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-nm
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-objcopy
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-objdump
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-ranlib
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-readelf
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-run
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-size
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-strings
opt/msp430-gcc-${GCC_VER}_linux64/bin/msp430-elf-strip
opt/msp430-gcc-${GCC_VER}_linux64/lib/gcc/msp430-elf/${GCC_MAJ_VER}/plugin/libcc1plugin.la
opt/msp430-gcc-${GCC_VER}_linux64/lib/gcc/msp430-elf/${GCC_MAJ_VER}/plugin/libcc1plugin.so.0.0.0
opt/msp430-gcc-${GCC_VER}_linux64/lib/gcc/msp430-elf/${GCC_MAJ_VER}/plugin/libcp1plugin.la
opt/msp430-gcc-${GCC_VER}_linux64/lib/gcc/msp430-elf/${GCC_MAJ_VER}/plugin/libcp1plugin.so.0.0.0
opt/msp430-gcc-${GCC_VER}_linux64/lib64/libcc1.la
opt/msp430-gcc-${GCC_VER}_linux64/lib64/libcc1.so.0.0.0
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/install-tools/fixinc.sh
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/install-tools/fixincl
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/install-tools/mkheaders
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/install-tools/mkinstalldirs
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/plugin/gengtype
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/cc1
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/cc1plus
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/collect2
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/liblto_plugin.la
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/liblto_plugin.so.0.0.0
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/lto-wrapper
opt/msp430-gcc-${GCC_VER}_linux64/libexec/gcc/msp430-elf/${GCC_MAJ_VER}/lto1
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/ar
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/as
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/ld
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/ld.bfd
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/nm
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/objcopy
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/objdump
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/ranlib
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/readelf
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/bin/strip
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/exceptions/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/exceptions/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/exceptions/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/exceptions/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/430/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/exceptions/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/exceptions/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/exceptions/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/exceptions/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/exceptions/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/exceptions/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/exceptions/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/exceptions/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/exceptions/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/exceptions/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/exceptions/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/exceptions/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/full-memory-range/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/large/libsupc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/libssp.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/libssp_nonshared.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/libstdc++.la
opt/msp430-gcc-${GCC_VER}_linux64/msp430-elf/lib/libsupc++.la
"
pkg_pretend() {
# Protect against people using autounmask overzealously
use amd64 || die "this binary package only works on amd64"
}
src_install() {
insinto "/opt/msp430-gcc-${GCC_VER}_linux64"
doins -r "msp430-gcc-${GCC_VER}_linux64"/*
insinto "/opt/msp430-gcc-${GCC_VER}_linux64/include"
doins -r msp430-gcc-support-files/include/*
doins -r msp430-gcc-support-files/Revisions_Header.txt
for f in ${keep_perms}; do
fperms +x "/${f}"
done
ln -s msp430-gcc-${GCC_VER}_linux64 "${D}/opt/msp430"
}