summaryrefslogtreecommitdiff
path: root/dev-embedded/sdcc
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-05 23:52:45 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-03-05 23:52:45 +0000
commit1c33e521c460dc40899ce7bc919602b842ce27e2 (patch)
tree580eefad4cce1e883e7504b93352a9029b53036d /dev-embedded/sdcc
parent65e4244e411c4f65f55f2aa91f39e228f4c0680b (diff)
gentoo auto-resync : 05:03:2023 - 23:52:45
Diffstat (limited to 'dev-embedded/sdcc')
-rw-r--r--dev-embedded/sdcc/Manifest8
-rw-r--r--dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch24
-rw-r--r--dev-embedded/sdcc/metadata.xml17
-rw-r--r--dev-embedded/sdcc/sdcc-4.2.0.ebuild158
-rw-r--r--dev-embedded/sdcc/sdcc-9999.ebuild151
5 files changed, 275 insertions, 83 deletions
diff --git a/dev-embedded/sdcc/Manifest b/dev-embedded/sdcc/Manifest
index fbab09d7eeff..672a94c903ce 100644
--- a/dev-embedded/sdcc/Manifest
+++ b/dev-embedded/sdcc/Manifest
@@ -1,12 +1,16 @@
AUX sdcc-3.8.0-override-override.patch 1078 BLAKE2B f1e1e135b9ee972e8f7f6a08af736de227c8534d181f160b00f6eecef0e7f4366e39fc5a8f6034bfffa64531423d28377c778055d6be8671527971ce183ebab5 SHA512 fbc13832bea859409f2ae525a82927424dd474db9c6077d1311b9775d0a4a8728d79db7465c928271faa54221b53982ee539537e4fe8a70209c0f453b95105aa
+AUX sdcc-4.2.0-link-tinfo.patch 916 BLAKE2B 7930cf615dbf0be6f44581e0e59d5c8ed59d5ae204153b2b08a2bfb6af8ef69b01fa1584c95dc194881d843edad8bc39dc85ca8b597e120828e49ae30b2c6c74 SHA512 b4ab00ed63be3dad5c0250ce8cd3301830ac2a65f4b8d9034151e285b93057357249a19b9d521f1cfd62173d97baa37a69c7e56d1b0423f9edc2e84b368fcad5
DIST sdcc-doc-3.8.0.tar.bz2 965465 BLAKE2B 541ed3ba4d3a23dd3fcea248de84d887fdcd8ddaf3ed0f9f810bf8cb9fcb5b10eb2cd96099d83c5a0fda240cdd3d11fd247e576a67a32047a4f7a705b8401637 SHA512 63319b7c344b320600e6a7c158d1a5e69abe595dfd6b8d32a95f15678c3bc2f6fe72c959516c4b1f812deb089854c6a51c31438ef6a6c7f9fcb4d419d8cce3cf
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-src-3.8.0.tar.bz2 18987862 BLAKE2B 7e8ddea41ae02842bb1376c53364c386a0fb47a1acdcc97cc72f002e78a2854fc43adfd0177f94dd1173dbd81052c390c5b2fef302c73f0b830ec83eea70869c SHA512 38145ea3e9560eb8894c54bd7213da67a20163739c944c3247fa8fa456dfedaaa469746169d3e114affcab48b73db4cd8c9a0a367e7368f2471de64761a3e04a
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
EBUILD sdcc-3.8.0-r1.ebuild 3186 BLAKE2B 4a0842eb50c5f77947fef50a36482e47e76c25b4994833f5c14e42018c7b5ea3ab77768df15d49886c1e9250ac19e630a95d78a6241cd87e02bbbdafb4367292 SHA512 147127a0e997cb3ce1a53b0cd0990992d6837016dcde7368bf44a2fd35b6647b43224dbcd309660e454e6bcd26921d41d642530e616e5bc2fec4a0eeef8f8d28
EBUILD sdcc-4.0.0.ebuild 3469 BLAKE2B 04dcac4dba5a07ad9cdddf14e7d313a27f4b28db7903364af17e1cfdf1ef704cb03ac0d2eba980fc97791f3c0b5ce355fa36cd60e0adae45be41d35f94de790d SHA512 65402da6ea8cbff4101109cb9ee53319f770b0603572488ff7c71e60812ca7a2c7868e19275217738fea161d0babb6c44ace3483276236671ff8d710ea580121
EBUILD sdcc-4.1.0.ebuild 3625 BLAKE2B 983887350f4251ecf1f6d327fc7630e027804439763ab94e765064356f6edf2274ac2f2de363b57fe3a1cb553bcdc55dfcb3f1c6ed49f6355a9c7bbaa4c00811 SHA512 6870daa87d27afa8f196d96e76e2a81eee2137c523389f1955b4b623750f3372c430cb24dc66adb76bf482b14219a373b9c43441230e45306e2a047243e8b2bd
-EBUILD sdcc-9999.ebuild 3625 BLAKE2B 983887350f4251ecf1f6d327fc7630e027804439763ab94e765064356f6edf2274ac2f2de363b57fe3a1cb553bcdc55dfcb3f1c6ed49f6355a9c7bbaa4c00811 SHA512 6870daa87d27afa8f196d96e76e2a81eee2137c523389f1955b4b623750f3372c430cb24dc66adb76bf482b14219a373b9c43441230e45306e2a047243e8b2bd
-MISC metadata.xml 2702 BLAKE2B 5d7eff47a0c5a01e9653d127679cfac908d07a95f720febd6ffece94e0877c43023737ab286dc5f1361a51b1c85eb4e0413757c3d76f28e70359e8469333321c SHA512 1e01dbeefb8ba8565b89807cf471e3fbc9f167d2411d87908b6813cd7aa6da39d2a6357a72fe69fb9c41f80e9c4cc37e8c42fa26ccdd02157184a82ab3d6be63
+EBUILD sdcc-4.2.0.ebuild 4003 BLAKE2B 073c89d4206df22ea4be8893d07249d742e6c217a0f1af358abd659cd0a0578af3e6bf73dc9cbc1fc7717f2ea26128004104fb0ca500dafb7b992e2afb13a617 SHA512 4b0a8e632a72ddcc64642d7f22541bddc0b41627ae78b3316365e6b0ba8e243ed308fa4559ac517f4d56600f38ba71dd08f578f966aa4421808c7996218b6dc6
+EBUILD sdcc-9999.ebuild 4003 BLAKE2B 073c89d4206df22ea4be8893d07249d742e6c217a0f1af358abd659cd0a0578af3e6bf73dc9cbc1fc7717f2ea26128004104fb0ca500dafb7b992e2afb13a617 SHA512 4b0a8e632a72ddcc64642d7f22541bddc0b41627ae78b3316365e6b0ba8e243ed308fa4559ac517f4d56600f38ba71dd08f578f966aa4421808c7996218b6dc6
+MISC metadata.xml 3045 BLAKE2B 02b5834889994a4b1426244e087a7593b29de3ac0c29004492e4f466c76980fd448c15258d0bd29cddfd691a5f78ba653fea1bc1f42ad4d5b31afb83ad403b3e SHA512 55ecbf5774eb8b58304d97db64875984d4e016e9ba0476d4a5df94dca28baed1bd4eeead7e54885a33d9b9bd1ebbcb47846ac99f62fca3f11adb03d68880da47
diff --git a/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch b/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch
new file mode 100644
index 000000000000..a8f4ae7565bc
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch
@@ -0,0 +1,24 @@
+Link -ltinfo for ucsim
+
+/usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-embedded/sdcc-4.2.0/temp/cc3R2ckl.ltrans0.ltrans.o: undefined reference to symbol 'nodelay'
+/usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /lib64/libtinfo.so.6: error adding symbols: DSO missing from command line
+
+--- sdcc-4.2.0.orig/sim/ucsim/configure.ac
++++ sdcc-4.2.0/sim/ucsim/configure.ac
+@@ -405,14 +405,14 @@
+ if test $curses_ok != yes; then
+ AC_CHECK_LIB(curses,nl,
+ curses_ok="yes"
+- CURSES_LIBS="${CURSES_LIBS} -lcurses",
++ CURSES_LIBS="${CURSES_LIBS} -lcurses -ltinfo",
+ curses_ok="no")
+ fi
+
+ if test $curses_ok != yes; then
+ AC_CHECK_LIB(ncurses,nl,
+ curses_ok="yes"
+- CURSES_LIBS="${CURSES_LIBS} -lncurses",
++ CURSES_LIBS="${CURSES_LIBS} -lncurses -ltinfo",
+ curses_ok="no")
+ fi
+ fi
diff --git a/dev-embedded/sdcc/metadata.xml b/dev-embedded/sdcc/metadata.xml
index 573753d73430..c4bc3f3380ae 100644
--- a/dev-embedded/sdcc/metadata.xml
+++ b/dev-embedded/sdcc/metadata.xml
@@ -6,12 +6,14 @@
<name>Embedded Gentoo</name>
</maintainer>
<longdescription>
-SDCC is a retargettable, optimizing ANSI - C compiler suite that targets the
-Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim
-(formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based
-(hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit
-3000A, TLCS-90) and STMicroelectronics STM8. It can be retargeted for other
-microprocessors.
+SDCC is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11)
+compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032,
+8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale
+(formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z180,
+SM83, Rabbit 2000, 2000A, 3000A, TLCS-90), Padauk (pdk14, pdk15) and
+STMicroelectronics STM8. Work is in progress on supporting the Padauk pdk13 and
+MOS 6502 targets; Microchip PIC16 and PIC18 targets are unmaintained. SDCC can
+be retargeted for other microprocessors.
</longdescription>
<upstream>
<remote-id type="sourceforge">sdcc</remote-id>
@@ -35,6 +37,7 @@ microprocessors.
<flag name="r2ka">Add support for Rabbit 2000A</flag>
<flag name="r3ka">Add support for Rabbit 3000A</flag>
<flag name="gbz80">Add support for Gameboy gbz80</flag>
+ <flag name="sm83">Add support for Gameboy SM83</flag>
<flag name="tlcs90">Add support for TLCS-90</flag>
<flag name="ez80-z80">Add support for EZ80-Z80</flag>
<flag name="z80n">Add support for Zilog Z80N</flag>
@@ -49,5 +52,7 @@ microprocessors.
<flag name="pdk14">Add support for PDK14</flag>
<flag name="pdk15">Add support for PDK15</flag>
<flag name="pdk16">Add support for PDK16</flag>
+ <flag name="mos6502">Add support for MOS 6502</flag>
+ <flag name="mos65c02">Add support for MOS 65C02</flag>
</use>
</pkgmetadata>
diff --git a/dev-embedded/sdcc/sdcc-4.2.0.ebuild b/dev-embedded/sdcc/sdcc-4.2.0.ebuild
new file mode 100644
index 000000000000..dc4655403f3d
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-4.2.0.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+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-3.8.0-override-override.patch
+ "${FILESDIR}"/sdcc-4.2.0-link-tinfo.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 . {} +
+
+ 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() {
+ 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
+}
diff --git a/dev-embedded/sdcc/sdcc-9999.ebuild b/dev-embedded/sdcc/sdcc-9999.ebuild
index 9b5bf53b05db..dc4655403f3d 100644
--- a/dev-embedded/sdcc/sdcc-9999.ebuild
+++ b/dev-embedded/sdcc/sdcc-9999.ebuild
@@ -1,25 +1,24 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools toolchain-funcs
+inherit autotools
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 )
"
- S="${WORKDIR}/sdcc"
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION="Small device C compiler (for various microprocessors)"
-HOMEPAGE="http://sdcc.sourceforge.net/"
+HOMEPAGE="https://sdcc.sourceforge.net/"
LICENSE="
GPL-2 ZLIB
@@ -29,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
@@ -43,47 +41,45 @@ 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}"/${PN}-3.8.0-override-override.patch
+ "${FILESDIR}"/sdcc-3.8.0-override-override.patch
+ "${FILESDIR}"/sdcc-4.2.0-link-tinfo.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 . {} +
@@ -98,60 +94,65 @@ src_prepare() {
}
src_configure() {
- # sdbinutils subdir doesn't pass down --docdir properly, so need to
- # expand $(datarootdir) ourselves.
- 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 \
+ 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 "${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
}