I modified the 2.9.0 ebuild to remove patches which no longer seemed to work, and also some code for removing documentation, since the --disable-doc configure flag would seem to take care of that. I added package specific USE flags for each port supported by SDCC as well as flags for ucsim and device-lib. All ports and ucsim are disabled by default, since most users would only be compiling for one or two architectures, so building all 8 or so is wasteful, as well as building ucsim by default, which is only for the 8051 architecture. A post installation message warning users that they need to enable the ports they want is added. I have only tested it for the case of the pic and pic16 ports and doc, for which the ebuild works, although I noticed a lot of "scanelf: Invalid ar entry" lines which didn't seem to stop the final install. Reproducible: Always
Created attachment 253539 [details] dev-embedded/sdcc-3.0.0.ebuild Ebuild for sdcc-3.0.0
Created attachment 254683 [details, diff] sdcc-3.0.0-as-needed.patch I needed this patch to build with --as-needed.
Just a note that as of Nov 27th there is a newer version: 3.1.0. I would recommend moving ahead to that version as it includes many useful improvements.
I renamed the attached ebuild for 3.1.0 and added use flags for the new r2k and z180 ports present in that version. It builds in the following configuration: USE="boehm-gc device-lib pic16 avr -doc -ds390 -ds400 -gbz80 -hc08 -mcs51 -pic -r2k -ucsim -xa51 -z180 -z80" The one thing I've noticed so far is that when device-lib is enabled, a bunch of extra directories for unselected architectures are created. It looks like most are empty and I'm sure this is an upstream issue with the makefile. I will do more extensive testing later and post an ebuild when I'm done.
Comment on attachment 253539 [details] dev-embedded/sdcc-3.0.0.ebuild always post diffs, not entire files considering sdcc doesn't take that long to build all targets, it doesn't make sense to default them all off.
sdcc-3.1.0 is out : http://sourceforge.net/projects/sdcc/files/sdcc/3.1.0/sdcc-src-3.1.0.tar.bz2/download SDCC 3.1.0 Feature List: include/pic, non-free/include/pic, lib/pic, non-free/lib/pic renamed to */pic14 implemented --fomit-frame-pointer for mcs51 support for use of sdcc in z88dk (--reserve-regs-iy and --no-optsdcc-in-asm options; smallc calling convention) new register allocator in the z80 and gbz80 ports (optimal when using --opt-code-size and a sufficiently high value for --max-allocs-per-node for the z80 port) C99 designated initializers added strxfrm() and strcoll() functions; strerror() is the only string handling function still missing added support for pic18f2xk22/pic18f4xk22 family (requires gputils > 0.14.0 and --enable-new-pics configure flag) added support for enhanced core pic14 devices (requires gputils > 0.14.0 and --enable-new-pics configure flag) setjmp() / longjmp() for the z80 port _Bool / bool for the hc08, pic16 and pic14 ports sdcpp synchronized with GNU cpp 4.6.1 z180 port very basic (no integer constants, multiplication, division, shifts or use as return value) support for data types long long, unsigned long long, int_fast64_t, int_least64_t, int64_t, uint_fast64_t, uint_least64_t, uint64_t in the z80, z180, r2k and gbz80 ports r2k port for the Rabbit 2000 and Rabbit 3000
Created attachment 305313 [details] sdcc-3.1.0.ebuild Most patches unneeded here Tested on x86 hardened gentoo
Created attachment 305315 [details, diff] Patch for sdcc-3.1.0.ebuild Sorry, attached diffs instead of ebuild
Just FYI: sdcc 3.2.0 has been released on July 9th, 2012. I won't post the changes from 3.1.0 since they are on their page. I didn't test any ebuild though
see also Bug 456828
if something is missing from the latest version, please file a new bug for each specific piece *** This bug has been marked as a duplicate of bug 553754 ***