Added sdcc-4.5.0

This commit is contained in:
Torsten Kurbad 2025-08-05 16:07:00 +02:00
parent d29d448d5c
commit 6b7b3c248d
7 changed files with 334 additions and 83 deletions

View File

@ -4,18 +4,25 @@ AUX sdcc-4.3.2-override-override.patch 2178 BLAKE2B 7c60caeb0fb948230f7397b6da6b
AUX sdcc-4.4.0-autoreconf-libiberty.patch 696 BLAKE2B 9dce6aca61d3d1f9229c1a13549a5584c48c28a19146215c24a97aebca5bb5c9f74517da2622ea3f86e19e8281fdcbe85a14f7a11fe036e877c1f6de7db5cad7 SHA512 a5408bc3913372327e3bae75cdc57e5765cd3369863fe9d92cd43f9fa6de1c2293ac647231391fda7f5ec0a3c1587a5b44dd228c25ee528da8d9c7b68f29de42
AUX sdcc-4.4.0-fix-binutils-dependency.patch 569 BLAKE2B 185f644a2c68c9eece5dc37cad9543a86688eea16e80c1ff1460020545404604c2d6870b6a6559b55e4259a3db51dd1ccfb8f2430d8dafffa56ed48bbe3248da SHA512 cd3f2a72c8e3ec5aae9e8473fc11ef8862134ebe9857fa176110918a89fbd8b6b8388533ae4877ade4746518e0d420afab5530c6cf3da6be93940a206e6befe7
AUX sdcc-4.4.0-fix-mkdir-autoconf-test.patch 395 BLAKE2B 5c509a0f7a4e201c03fd6c7fbed3c95287896acbbb733c7dbd8ae6d3dbd79bcbd795eeb020ef9c11910f01854a6b0746e82cdca6a372ed36c1dfc436562e83d5 SHA512 33184762ca7197eef5724f9c23dacc90081b5f320f773f30e844d1263d7e3b7f2e9812da5832772c56094d226617b12028ce152a1ce69d3156e06fd63af30d1a
AUX sdcc-4.5.0-autoreconf-libiberty.patch 696 BLAKE2B 9dce6aca61d3d1f9229c1a13549a5584c48c28a19146215c24a97aebca5bb5c9f74517da2622ea3f86e19e8281fdcbe85a14f7a11fe036e877c1f6de7db5cad7 SHA512 a5408bc3913372327e3bae75cdc57e5765cd3369863fe9d92cd43f9fa6de1c2293ac647231391fda7f5ec0a3c1587a5b44dd228c25ee528da8d9c7b68f29de42
AUX sdcc-4.5.0-elf-fix.patch 498 BLAKE2B c9c0027a7bddfee8bffce4c5f3451dc7d67b7770f973160c080fb093486f0af66a77f6736c3930385f1c8c7d9bea88b4e657749cd73d8d816e4c3d373b5a7b1f SHA512 679b11c40a12ebadfa2ca655a9f33438cb3a0e6e316208b087dea3c1c22cf7eedf0152fe7d0909d571831dfc44f9477abd90595484f1c440eb757d2475ff70d8
AUX sdcc-4.5.0-fix-binutils-dependency.patch 569 BLAKE2B 185f644a2c68c9eece5dc37cad9543a86688eea16e80c1ff1460020545404604c2d6870b6a6559b55e4259a3db51dd1ccfb8f2430d8dafffa56ed48bbe3248da SHA512 cd3f2a72c8e3ec5aae9e8473fc11ef8862134ebe9857fa176110918a89fbd8b6b8388533ae4877ade4746518e0d420afab5530c6cf3da6be93940a206e6befe7
AUX sdcc-4.5.0-fix-mkdir-autoconf-test.patch 395 BLAKE2B 5c509a0f7a4e201c03fd6c7fbed3c95287896acbbb733c7dbd8ae6d3dbd79bcbd795eeb020ef9c11910f01854a6b0746e82cdca6a372ed36c1dfc436562e83d5 SHA512 33184762ca7197eef5724f9c23dacc90081b5f320f773f30e844d1263d7e3b7f2e9812da5832772c56094d226617b12028ce152a1ce69d3156e06fd63af30d1a
DIST sdcc-doc-4.0.0.tar.bz2 980999 BLAKE2B 6f9478c095e6b4fec27c6ab7a10a8564ae46d754709848b3a7a26a7a2dfecd3833ce3cfe7a41f9033b5a34a1b6e962090d91c9688294dd347e1c98658761c019 SHA512 83bed77b46ad2f028725a3ffe6090d71185f73d4e99c241e7ebd1c509ba1be1911f4b9130c344fa4eb928f48122179b6b71e9d5a27d9f18ff74017c61fae77ff
DIST sdcc-doc-4.1.0.tar.bz2 991207 BLAKE2B fd1ab82c8cc65031a8231bc4aba1e0562ed4b3178612a4d915568cb5600ba9159d89f905e261e860da9e0f4aa5a24fbd7ab1364f2f9f7b3078bcf3aa01d71ba5 SHA512 01686e590d0168108099d3c6c9bdb0885a25abccc9b6c87739eafec7103054424da1a5960a8d4566462dca9bf00cdd8b103ab6026523833d9aaa4d4bcdc5b620
DIST sdcc-doc-4.2.0.tar.bz2 1244684 BLAKE2B d6ee4001ee0d2dde61dd1e8567499909fa6373eac93f3731fa1d6628f6e488742cc0798b1ebb908769d4cc52e091d4d685b3891d7c15a519294240643e528b02 SHA512 8494de35991e9a38ca138545b7c2396d353b21d67a4f321afa9187a5c117c6ce7d3c0850e95c981ccc7a3c8fa1e470f5e2351b84ccbe1634b1f8bf085cd45f76
DIST sdcc-doc-4.4.0.tar.bz2 1293792 BLAKE2B dc2f1eed479b7fc0feeee3947176d311f3f5cc71d4f5a7c5729a4789e63df8dd24b0e6b7112a972eec6540771c4d170b8ce587ceb13868b90e66f2e82759499d SHA512 ea9b0b599cff7028b3a16157dba7ff7ef7675d638a1391b3e4252e37024fd6077631afa7a475447435cc6559b058ef4b9fa4b2091191fceb236bd80329c653f0
DIST sdcc-doc-4.5.0.tar.bz2 1404904 BLAKE2B 6d48c83b698e94e721c45dc6928bc718054b6bc019f1e62104929633fb16eaad77efefd2cd827ce36a19809508d6f53c67f8f1113c7df9ab3d0ea1006d4f4fef SHA512 0591352d6ed3dd39b71ac79135da0bb37782911c400b6802ee300bc9ffd397aba7558b5d53ae0e37a0408ba686dfb548be0e2fcf9ecebb550e0f5d254789bbd8
DIST sdcc-src-4.0.0.tar.bz2 19204540 BLAKE2B 2192a7dc7418826440209dd8c7a73fd5ced491b799975b953368daeabb429327a6c518a1212a2fd49c34c6e5ab7d84f240cbf6ff8b3779e2d38f5ad81499ee71 SHA512 41a92711a9278261879caec1a01425104b7c75346b3c6ad9617cab025309c9b38f79eea2d04122f5ae6ce273fcd61fbde8a0d23756313a4593394230b51a1d4c
DIST sdcc-src-4.1.0.tar.bz2 19400609 BLAKE2B 9754d70026af595a5456f0d7c1b375df2716c6400ca59affcadbfd3588f4d51c45a3d52c235d6efc9b7512b5f94f023d8d2964cc0365cdff4586edf71fc51af1 SHA512 a9c3fee427cbc66b56a286c8d66b2922f79c9dfb42d2ed2843b2e192a6b314a04de4c82f1083d8625b49756b5f1d99f8fb706402b5f1284110760ec346303779
DIST sdcc-src-4.2.0.tar.bz2 19662367 BLAKE2B a11d6b3af2552e0508bb1d0644d3e6db385634237fc93079716a5e3aa710bac25fd888e10dce76e6891ebe524f4d81d8318492001d8ce9ade0ef16d114adf14b SHA512 7ca4037d526b5fed7bbca4433835d0299ced7315dd69c1ec66cff873ec7caa41b69927363bf5850e2ad4f27ef6286e57f9ccd40bb6792308be6c3073c5238cba
DIST sdcc-src-4.4.0.tar.bz2 20036262 BLAKE2B 891b2d29f98fedf5fd7ce5a0892c143d8cbeee1351746a633ba507dd71224ac34620530bbc278feff5d70cae20c6b53b3ea3b5efc4876efe974bbec223d8db72 SHA512 807738f852ab8df64dafa3deda1d9c5154d56fa090f126abe9368e0cb17f37589b7dac50d1e135609f0a14318f0d5d8abd444ed8303c854f2bd34cc783db4b30
DIST sdcc-src-4.5.0.tar.bz2 20298103 BLAKE2B 8f7e79224e8c0692b8bc1377dbeb9c743f959ebb83bc444a215edf20f7d8c9faece7d0898ad130d141e81256cde00a74e1263f2fd9b65df0cca379524af2f93a SHA512 46edd0456d82ebeacc6e7b2ecf5038aac38ce161dc938662c438cca9c41f73b2004589788c18a0f1dd295033c9c35c202c052b463ec7bd8c605065d440d617f4
EBUILD sdcc-4.0.0-r1.ebuild 3521 BLAKE2B 48ad40b6ffc3271110075e3ba18c468335d24eed4c15c7580f257fd6261890529a95e5291b205be3ce2480436371bcb00141a7e99bccdbecc2ef7a39d6f65d20 SHA512 4a84125b1c5193eb618b76bd7ca6c948f6204dba654c1209513214bf9a01698c49b6163f8433150b2c149529484300d157baa8adfa681f1aee801f3c514fed3e
EBUILD sdcc-4.0.0.ebuild 3467 BLAKE2B f91878482f72eb29c13fbd59ff1689254612dca9d249323e44264ef1d4b332fa7801da0207ebd7f54bf40c454023a696cf0c31720a043456d9ab5f31b81013b0 SHA512 21222a73d804a3f56c36845ae4ea0dad4319df6550c0081c82d740b8aeaeb16fe03451fbe27ce5a97b63e4854fee299b3876b9fcd08fb5872ed0a02476eade30
EBUILD sdcc-4.1.0.ebuild 3677 BLAKE2B d34aab5e78d263f0fb2f48755b40b5ef533fb64a5c3119da3c32eaa904f2a31b2dcb5e01ecaedbe98962fccc684ffd25955e1c6a6851d32251da5522b96007f4 SHA512 255c826df7458b7b834626e15a75ef4e129fd7f0516e84f551af0032395f905183e5867fab6e8b46ce4be82393cbf5d834722bae6588cadcde2412e585fae5ef
EBUILD sdcc-4.2.0.ebuild 3817 BLAKE2B e4d3cab1212cd1499ada220607e0d3cc77a6812253202ad18ee13c694be314750e3753ff7b2d6f4814e37871c877f5959aab66eec3c9c5c53796de2303094e55 SHA512 887b1968d49a38a334ffc0ae49bf6fa1d4122a2a41eb9dc9596bf620c0a938874220e65e1b6dda000fa43ff20ab7dfcc3190ba8de95bf3a353aaa3eaee4f0e88
EBUILD sdcc-4.4.0.ebuild 4685 BLAKE2B e13cd6fdb357944b4860cf98eb3813187e8bae914776a803c418e348fc8c639590ffba390fdcce716efd79aa9361fed9cec4e0ecb9abfc5a0dcdf1f74b03afe2 SHA512 e8ea8bb0a4cd3b3d9fa235acf2f9c343fe461af10a4e36312b7c4fa7a9d753bba353ac9299b0ce00f6013d6a6b45735778cbe4c488a9f6bfc244f0c980005eba
EBUILD sdcc-9999.ebuild 3663 BLAKE2B 67e9547414cac809cda9ca2a11fd1b45bb58902f2e6d13a417b2ab78e4fa60ffbd9fab02779579c4ffd56f85f187b24601450b1f79a26146c66ca41281aab708 SHA512 6690382b974b13930073042c7fddac7b04ee92b60d6453a9bfed48a369aea4fcdd8ef3108c71d60e8602245c8b09eb65f0383307d46eaad9267c4602dbf5b921
EBUILD sdcc-4.5.0.ebuild 4855 BLAKE2B c16d52bee763fddedf80831475656259bc6905d3364784df28c896e8002053d50c886aca56a7bf6dc3e02872b2dc063954ba14e5547d86b11fc59d00044e765c SHA512 a1a03285f666a5bf56be94d03bd9f3c36c6160904a7bb4ae547b175de8d6d3be5407256407ae50ce28cf4bfaf90c4b19934913568eeb1fcb9d72bff7854ec6e6
EBUILD sdcc-9999.ebuild 4153 BLAKE2B 3267304d03a8447f28f901f140b6848e42f6ed99221fa11f3b93f8323fd63534127168a1d6babb0c944d90fed61f681019e83e099892a525f76cc7167347a59f SHA512 f60e21f508ead86762bebcd184db047c8e0e95f6e46883e2ee3a936b34471dc8b4b86da52dbd14c632a23e040a6ef93e18a1bbe6fd77d143195e245b6dd3f22c
MISC metadata.xml 2888 BLAKE2B bf15f465cbe744c110b98ae15726fbd9ea1fb6544d5ff7a53d479b6003de937eeb79a1d2f620a92945c285557353a4fff4063e57f25f5dbe8cf908cc3b5885f3 SHA512 71067fd414aefa5d5cf3855b0295c97cfcfeef4d49c987af2c71c1782234fdc2f13e91322feecfff8238751c093569335c3e3e2ee6888c8bd553cbdee4482162

View File

@ -0,0 +1,15 @@
Most implicit function declarations left come from the included libiberty.
Add it to eautoreconf to regenerate its tests.
https://bugs.gentoo.org/898594
--- a/configure.ac
+++ b/configure.ac
@@ -874,7 +874,7 @@
test $OPT_DISABLE_PACKIHX = 0 && AC_CONFIG_SUBDIRS(support/packihx)
test $OPT_DISABLE_UCSIM = 0 && AC_CONFIG_SUBDIRS(sim/ucsim)
test $OPT_DISABLE_SDCDB = 0 && AC_CONFIG_SUBDIRS(debugger/mcs51)
-test $OPT_DISABLE_SDBINUTILS = 0 && AC_CONFIG_SUBDIRS(support/sdbinutils)
+test $OPT_DISABLE_SDBINUTILS = 0 && AC_CONFIG_SUBDIRS(support/sdbinutils support/sdbinutils/libiberty)
AC_CONFIG_FILES([doc/Makefile])
####test $OPT_DISABLE_AVR = 0 && AC_CONFIG_FILES([src/avr/Makefile])

View File

@ -0,0 +1,12 @@
diff '--color=auto' -uprNb sdcc-4.3.0.orig/sdas/linksrc/aslink.h sdcc-4.3.0/sdas/linksrc/aslink.h
--- sdcc-4.3.0.orig/sdas/linksrc/aslink.h 2025-05-07 15:07:20.854046196 +0300
+++ sdcc-4.3.0/sdas/linksrc/aslink.h 2025-05-07 15:08:22.095963883 +0300
@@ -1312,7 +1312,7 @@ extern VOID s19(int i);
extern VOID sflush(void);
/* EEP: lkelf.c */
-extern VOID elf();
+extern VOID elf(int i);
/* JCF: lkmem.c */
extern int summary(struct area * xp);

View File

@ -0,0 +1,22 @@
https://bugs.gentoo.org/917114
https://sourceforge.net/p/sdcc/support-requests/193/
--- sdcc/Makefile.in
+++ sdcc/Makefile.in
@@ -98,7 +98,6 @@
ifeq ($(OPT_DISABLE_SDBINUTILS), 0)
TARGETS += sdcc-sdbinutils
PKGS += $(SDCC_SDBINUTILS)
-SDBINUTILS_BINS = sdar$(EXEEXT) sdranlib$(EXEEXT) sdnm$(EXEEXT) sdobjcopy$(EXEEXT)
SDCC_BINUTILS = sdcc-sdbinutils
endif
@@ -142,7 +141,7 @@
tini: checkconf sdcc-tini
-sdcc-libs: ${SDCC_SDBINUTILS}
+sdcc-libs: ${SDCC_BINUTILS}
for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
sdcc-cc: sdcc-libs

View File

@ -0,0 +1,13 @@
Fix implicit function declaration in configure logs: mkdir
https://bugs.gentoo.org/898594
--- a/support/cpp/configure.ac
+++ b/support/cpp/configure.ac
@@ -2317,6 +2317,7 @@
################################################################################
# mkdir takes a single argument on some systems.
+AC_CHECK_HEADERS([sys/stat.h])
gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
# File extensions

View File

@ -0,0 +1,180 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic
if [[ ${PV} == "9999" ]] ; then
ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc"
inherit subversion
else
SRC_URI="
https://downloads.sourceforge.net/project/${PN}/sdcc/${PV}/${PN}-src-${PV}.tar.bz2
doc? ( https://downloads.sourceforge.net/project/${PN}/sdcc-doc/${PV}/${PN}-doc-${PV}.tar.bz2 )
"
KEYWORDS="amd64 x86"
fi
DESCRIPTION="Small device C compiler (for various microprocessors)"
HOMEPAGE="https://sdcc.sourceforge.net/"
LICENSE="
GPL-2 ZLIB
non-free? ( MicroChip-SDCC )
packihx? ( public-domain )
"
SLOT="0"
# in order of configure.ac's AC_DO_PORT stanzas
SDCC_PORTS="
mcs51
z80 z180
r2k r2ka r3ka
sm83
tlcs90
ez80-z80
z80n
ds390 ds400
pic14 pic16
hc08
s08
stm8
pdk13 pdk14 pdk15 pdk16
mos6502 mos65c02
"
IUSE="
${SDCC_PORTS}
+boehm-gc device-lib doc non-free packihx sdcdb +sdcpp ucsim
"
RDEPEND="
dev-libs/boost:=
sys-libs/zlib:=
pic14? ( >=dev-embedded/gputils-0.13.7 )
pic16? ( >=dev-embedded/gputils-0.13.7 )
boehm-gc? ( dev-libs/boehm-gc:= )
sdcdb? ( sys-libs/readline:0= )
ucsim? ( sys-libs/ncurses:= )
"
DEPEND="
${RDEPEND}
dev-util/gperf
"
PATCHES=(
"${FILESDIR}"/sdcc-4.3.2-override-override.patch
"${FILESDIR}"/${P}-fix-mkdir-autoconf-test.patch
"${FILESDIR}"/${P}-autoreconf-libiberty.patch
"${FILESDIR}"/${P}-elf-fix.patch
)
src_prepare() {
# Fix conflicting variable names between Gentoo and sdcc
find device/lib/pic{14,16} device/non-free/lib/pic{14,16} \( \
-name 'configure.ac' -o -name 'Makefile.*' \) \
-exec sed -i 's/\<ARCH\>/SDCC_&/g' {} + || die
find device -name 'Makefile.in' \
-exec sed -i 's/\<PORTDIR\>/SDCC_&/g' {} + || die
# Possible alternative: Patch the following files to not pick up the
# variables from the environment:
# - lib/Makefile.in (PORTDIR ifndef/endif)
# - device/non-free/lib/pic14/Makefile.common.in (ARCH ?= 877)
# - device/non-free/lib/pic16/configure.ac (${ARCH:-18f452})
# - device/lib/pic14/configure.ac (${ARCH:-16f877})
# - device/lib/pic16/configure.ac (${ARCH:-18f452})
# Make sure timestamps don't get messed up.
[[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} +
mkdir -p support/sdbinutils/bfd/doc || die
# add acinclude.m4 from binutils to run autoreconf for libiberty
cp "${FILESDIR}"/binutils-2.41-acinclude.m4 support/sdbinutils/libiberty/acinclude.m4 || die
# libiberty configure will check this file and fail if not found
cp install-sh support/sdbinutils/libiberty/ || die
# libiberty configure will fail if this was not set
export libiberty_topdir="${S}"/support/sdbinutils/libiberty
# this does not build: https://sourceforge.net/p/sdcc/bugs/3673/
# disable for now
sed 's:device/lib/mos65c02/Makefile::' -i configure.ac || die
use ucsim || rm -r "${S}"/sim
default
eautoreconf
# Avoid 'bfd.info' rebuild with 'makeinfo': bug #705424
# Build dependencies are: eautoreconf->Makefile.in->bfdver.texi->bfd.info
touch support/sdbinutils/bfd/doc/bfdver.texi || die
touch support/sdbinutils/bfd/doc/bfd.info || die
}
src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/924691
# https://sourceforge.net/p/sdcc/bugs/3725/
filter-lto
local myeconfargs=(
ac_cv_prog_STRIP=true
--without-ccache
--enable-sdbinutils
$(use_enable ucsim)
$(use_enable device-lib)
$(use_enable packihx)
$(use_enable sdcpp)
$(use_enable sdcdb)
$(use_enable non-free)
$(use_enable boehm-gc libgc)
$(use_enable mcs51 mcs51-port)
$(use_enable z80 z80-port)
$(use_enable z180 z180-port)
$(use_enable r2k r2k-port)
$(use_enable r2ka r2ka-port)
$(use_enable r3ka r3ka-port)
$(use_enable sm83 sm83-port)
$(use_enable tlcs90 tlcs90-port)
$(use_enable ez80-z80 ez80_z80-port)
$(use_enable z80n z80n-port)
$(use_enable ds390 ds390-port)
$(use_enable ds400 ds400-port)
$(use_enable pic14 pic14-port)
$(use_enable pic16 pic16-port)
$(use_enable hc08 hc08-port)
$(use_enable s08 s08-port)
$(use_enable stm8 stm8-port)
$(use_enable pdk13 pdk13-port)
$(use_enable pdk14 pdk14-port)
$(use_enable pdk15 pdk15-port)
$(use_enable pdk16 pdk16-port)
$(use_enable mos6502 mos6502-port)
$(use_enable mos65c02 mos65c02-port)
)
econf "${myeconfargs[@]}"
}
src_compile() {
default
# Sanity check, as gputils errors/segfaults don't cause make to stop
local libs=()
use pic14 && libs+=( device/lib/build/pic14/libsdcc.lib )
use pic16 && libs+=( device/lib/build/pic16/libsdcc.lib )
for lib in "${libs[@]}"; do
[[ -f "${lib}" ]] || die "Failed to build ${lib}"
done
}
src_install() {
default
dodoc doc/*.txt
find "${ED}" -type d -name .deps -exec rm -vr {} + || die
if use doc && [[ ${PV} != "9999" ]]; then
cd "${WORKDIR}"/doc
dodoc -r *
fi
}

View File

@ -1,27 +1,24 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit autotools toolchain-funcs
inherit autotools flag-o-matic
if [[ ${PV} == "9999" ]] ; then
ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc"
inherit subversion
else
SRC_URI="
mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )
https://downloads.sourceforge.net/project/${PN}/sdcc/${PV}/${PN}-src-${PV}.tar.bz2
doc? ( https://downloads.sourceforge.net/project/${PN}/sdcc-doc/${PV}/${PN}-doc-${PV}.tar.bz2 )
"
KEYWORDS="~amd64 ~x86"
PATCHES=(
"${FILESDIR}"/${PN}-3.8.0-override-override.patch
)
fi
DESCRIPTION="Small device C compiler (for various microprocessors)"
HOMEPAGE="http://sdcc.sourceforge.net/"
HOMEPAGE="https://sdcc.sourceforge.net/"
LICENSE="
GPL-2 ZLIB
@ -31,11 +28,10 @@ LICENSE="
SLOT="0"
# in order of configure.ac's AC_DO_PORT stanzas
SDCC_PORTS="
avr
mcs51
z80 z180
r2k r2ka r3ka
gbz80
sm83
tlcs90
ez80-z80
z80n
@ -45,50 +41,52 @@ SDCC_PORTS="
s08
stm8
pdk13 pdk14 pdk15 pdk16
mos6502 mos65c02
"
IUSE="
${SDCC_PORTS}
+boehm-gc device-lib doc non-free packihx +sdbinutils sdcdb +sdcpp ucsim
+boehm-gc device-lib doc non-free packihx sdcdb +sdcpp ucsim
"
for port in ${SDCC_PORTS}; do
REQUIRED_USE="${REQUIRED_USE}
${port}? ( sdbinutils )
"
done
REQUIRED_USE="${REQUIRED_USE}
|| ( ${SDCC_PORTS} )
"
RESTRICT="strip"
RDEPEND="
dev-libs/boost:=
sys-libs/ncurses:=
sys-libs/readline:0=
sys-libs/zlib:=
pic14? ( >=dev-embedded/gputils-0.13.7 )
pic16? ( >=dev-embedded/gputils-0.13.7 )
boehm-gc? ( dev-libs/boehm-gc:= )
!dev-embedded/sdcc-svn
sdcdb? ( sys-libs/readline:0= )
ucsim? ( sys-libs/ncurses:= )
"
DEPEND="
${RDEPEND}
dev-util/gperf
"
PATCHES=(
"${FILESDIR}"/sdcc-4.3.2-override-override.patch
)
src_prepare() {
# Fix conflicting variable names between Gentoo and sdcc
find \
'(' -name 'Makefile*.in' -o -name 'configure' ')' \
-exec sed -r -i \
-e 's:\<(PORTDIR|ARCH)\>:SDCC\1:g' \
{} + || die
find device/lib/pic{14,16} device/non-free/lib/pic{14,16} \( \
-name 'configure.ac' -o -name 'Makefile.*' \) \
-exec sed -i 's/\<ARCH\>/SDCC_&/g' {} + || die
find device -name 'Makefile.in' \
-exec sed -i 's/\<PORTDIR\>/SDCC_&/g' {} + || die
# Possible alternative: Patch the following files to not pick up the
# variables from the environment:
# - lib/Makefile.in (PORTDIR ifndef/endif)
# - device/non-free/lib/pic14/Makefile.common.in (ARCH ?= 877)
# - device/non-free/lib/pic16/configure.ac (${ARCH:-18f452})
# - device/lib/pic14/configure.ac (${ARCH:-16f877})
# - device/lib/pic16/configure.ac (${ARCH:-18f452})
# Make sure timestamps don't get messed up.
[[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} +
mkdir -p support/sdbinutils/bfd/doc || die
default
eautoreconf
#eautoreconf
# Avoid 'bfd.info' rebuild with 'makeinfo': bug #705424
# Build dependencies are: eautoreconf->Makefile.in->bfdver.texi->bfd.info
@ -97,66 +95,70 @@ src_prepare() {
}
src_configure() {
# sdbinutils subdir doesn't pass down --docdir properly, so need to
# expand $(datarootdir) ourselves.
unset ARCH
econf \
ac_cv_prog_AR="$(tc-getAR)" \
ac_cv_prog_AS="$(tc-getAS)" \
ac_cv_prog_STRIP=true \
$(use_enable boehm-gc libgc) \
$(use_enable device-lib) \
$(use_enable non-free) \
$(use_enable packihx) \
$(use_enable sdbinutils) \
$(use_enable sdcdb) \
$(use_enable sdcpp) \
$(use_enable ucsim) \
\
$(use_enable avr avr-port) \
$(use_enable mcs51 mcs51-port) \
$(use_enable z80 z80-port) \
$(use_enable z180 z180-port) \
$(use_enable r2k r2k-port) \
$(use_enable r2ka r2ka-port) \
$(use_enable r3ka r3ka-port) \
$(use_enable gbz80 gbz80-port) \
$(use_enable tlcs90 tlcs90-port) \
$(use_enable ez80-z80 ez80_z80-port) \
$(use_enable z80n z80n-port) \
$(use_enable ds390 ds390-port) \
$(use_enable ds400 ds400-port) \
$(use_enable pic14 pic14-port) \
$(use_enable pic16 pic16-port) \
$(use_enable hc08 hc08-port) \
$(use_enable s08 s08-port) \
$(use_enable stm8 stm8-port) \
$(use_enable pdk13 pdk13-port) \
$(use_enable pdk14 pdk14-port) \
$(use_enable pdk15 pdk15-port) \
$(use_enable pdk16 pdk16-port) \
\
--disable-doc \
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/924691
# https://sourceforge.net/p/sdcc/bugs/3725/
filter-lto
local myeconfargs=(
ac_cv_prog_STRIP=true
--without-ccache
--enable-sdbinutils
$(use_enable ucsim)
$(use_enable device-lib)
$(use_enable packihx)
$(use_enable sdcpp)
$(use_enable sdcdb)
$(use_enable non-free)
$(use_enable boehm-gc libgc)
$(use_enable mcs51 mcs51-port)
$(use_enable z80 z80-port)
$(use_enable z180 z180-port)
$(use_enable r2k r2k-port)
$(use_enable r2ka r2ka-port)
$(use_enable r3ka r3ka-port)
$(use_enable sm83 sm83-port)
$(use_enable tlcs90 tlcs90-port)
$(use_enable ez80-z80 ez80_z80-port)
$(use_enable z80n z80n-port)
$(use_enable ds390 ds390-port)
$(use_enable ds400 ds400-port)
$(use_enable pic14 pic14-port)
$(use_enable pic16 pic16-port)
$(use_enable hc08 hc08-port)
$(use_enable s08 s08-port)
$(use_enable stm8 stm8-port)
$(use_enable pdk13 pdk13-port)
$(use_enable pdk14 pdk14-port)
$(use_enable pdk15 pdk15-port)
$(use_enable pdk16 pdk16-port)
$(use_enable mos6502 mos6502-port)
$(use_enable mos65c02 mos65c02-port)
)
econf "${myeconfargs[@]}"
}
#src_compile() {
# unset ARCH
# default
#}
src_compile() {
default
# Sanity check, as gputils errors/segfaults don't cause make to stop
local libs=()
use pic14 && libs+=( device/lib/build/pic14/libsdcc.lib )
use pic16 && libs+=( device/lib/build/pic16/libsdcc.lib )
for lib in "${libs[@]}"; do
[[ -f "${lib}" ]] || die "Failed to build ${lib}"
done
}
src_install() {
default
dodoc doc/*.txt
find "${D}" -name .deps -exec rm -rf {} + || die
find "${ED}" -type d -name .deps -exec rm -vr {} + || die
if use doc && [[ ${PV} != "9999" ]]; then
cd "${WORKDIR}"/doc
dodoc -r *
fi
# a bunch of archives (*.a) are built & installed by gputils
# for PIC processors, but they do not work with standard `ar`
# & `scanelf` utils and they're not for the host.
dostrip -x /usr/bin
}