# Watch: https://sdcc.sourceforge.net/ sdcc ([0-9.]+) released\.
           SPELL=sdcc
         VERSION=4.5.0
          SOURCE="${SPELL}-src-${VERSION}.tar.bz2"
   SOURCE_URL[0]=http://sourceforge.net/projects/${SPELL}/files/${SPELL}/${VERSION}/${SOURCE}
     SOURCE_HASH=sha512:46edd0456d82ebeacc6e7b2ecf5038aac38ce161dc938662c438cca9c41f73b2004589788c18a0f1dd295033c9c35c202c052b463ec7bd8c605065d440d617f4
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
        WEB_SITE="http://sdcc.sourceforge.net/"
      LICENSE[0]="GPLv2+"
         ENTERED=20140831
        KEYWORDS=""
           SHORT="Small Device C Compiler"
cat << EOF
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. Work is in progress on
supporting the Microchip PIC16 and PIC18 targets. It can be retargeted for
other microprocessors.

The package also includes simulators, debugger, and run-time libraries.

Features:
* extensive MCU specific language extensions, allowing effective use of the
  underlying hardware.
* a host of standard optimizations such as global sub expression elimination,
  loop optimizations (loop invariant, strength reduction of induction variables
  and loop reversing), constant folding and propagation, copy propagation, dead
  code elimination and jump tables for 'switch' statements.
* MCU specific optimizations, including a global register allocator.
* adaptable MCU specific backend that should be well suited for other 8 bit MCUs
* independent rule based peep hole optimizer.
* a full range of data types: char (8 bits, 1 byte), short (16 bits, 2 bytes),
  int (16 bits, 2 bytes), long (32 bit, 4 bytes), float (4 byte IEEE) and
  _Bool/bool;
* basic (no integer constants) support for long long (64 bit, 8 bytes) data
  types for the z80, z180, r2k, r3ka, gbz80, hc08 and s08 targets.
* the ability to add inline assembler code anywhere in a function.
* the ability to report on the complexity of a function to help decide what
  should be re-written in assembler.
* a good selection of automated regression tests.
EOF
