git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

licenses/LICENSE_SDCC

      1 What is SDCC?
      2 -------------
      3 
      4 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.
      5 
      6 SDCC suite is a collection of several components derived from different sources with different FOSS licenses. SDCC compiler suite include:
      7 
      8     sdas and sdld, a retargettable assembler and linker, based on ASXXXX, written by Alan Baldwin; (GPL).
      9     sdcpp preprocessor, based on GCC cpp; (GPL).
     10     ucsim simulators, originally written by Daniel Drotos; (GPL).
     11     sdcdb source level debugger, originally written by Sandeep Dutta; (GPL).
     12     sdbinutils library archive utilities, including sdar, sdranlib and sdnm, derived from GNU Binutils; (GPL)
     13     SDCC run-time libraries; (GPL+LE). Pic device libraries and header files are derived from Microchip header (.inc) and linker script (.lkr) files. Microchip requires that "The header files should state that they are only to be used with authentic Microchip devices" which makes them incompatible with the GPL.
     14     gcc-test regression tests, derived from gcc-testsuite; (no license explicitely specified, but since it is a part of GCC is probably GPL licensed)
     15     packihx; (public domain)
     16     makebin; (zlib/libpng License)
     17     sdcc C compiler, originally written by Sandeep Dutta; (GPL). Some of the features include:
     18         extensive MCU specific language extensions, allowing effective use of the underlying hardware.
     19         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.
     20         MCU specific optimizations, including a global register allocator.
     21         adaptable MCU specific backend that should be well suited for other 8 bit MCUs
     22         independent rule based peep hole optimizer.
     23         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), long long (64 bit, 8 bytes), float (4 byte IEEE) and _Bool/bool.
     24         the ability to add inline assembler code anywhere in a function.
     25         the ability to report on the complexity of a function to help decide what should be re-written in assembler.
     26         a good selection of automated regression tests.
     27 
     28 SDCC was originally written by Sandeep Dutta and released under a GPL license. Since its initial release there have been numerous bug fixes and improvements. As of December 1999, the code was moved to SourceForge where all the "users turned developers" can access the same source tree. SDCC is constantly being updated with all the users' and developers' input.
     29 
     30 
     31 
     32 SDCC - free open source, retargettable, optimizing ANSI-C compiler
     33 ------------------------------------------------------------------
     34 
     35 Welcome to SDCC, free open source, retargettable, optimizing ANSI C
     36 compiler suite that targets a growing list of processors including the
     37 Intel MCS-51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim
     38 (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08
     39 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z80N, Z180, SM83 (e.g. Game Boy),
     40 Rabbit 2000, Rabbit 2000A/3000, Rabbit 3000A, TLCS-90), STMicroelectronics STM8
     41 and Padauk PDK14 and PDk15.
     42 Work is in progress on supporting the Padauk PDK13 and MOS 6502 targets.
     43 There are unmaintained Microchip PIC16 and PIC18 targets.
     44 It can be retargeted for other microprocessors.
     45 
     46 See share/sdcc/doc/INSTALL.txt for the installation instructions for
     47 the binary kits.
     48 
     49 See the share/sdcc/doc directory for more documentation.
     50 
     51 See http://sdcc.sourceforge.net/ for the latest information on sdcc.
     52 
     53 
     54 Licenses:
     55 ~~~~~~~~~
     56 SDCC compiler suite is a collection of several components derived from
     57 different sources with different FOSS licenses. See the sdccman.pdf
     58 document, chapter "SDCC Suite Licenses" for details.
     59 
     60 The code or object files generated by SDCC suite are not licensed, so
     61 they can be used in FLOSS or proprietary (closed source) applications.
     62 
     63 The great majority of sdcc run-time libraries are licensed under the
     64 GPLv2+LE which allows linking of sdcc run time libraries with
     65 proprietary (closed source) applications.
     66 
     67 Exception are pic device libraries and header files which are derived
     68 from Microchip header (.inc) and linker script (.lkr) files. Microchip
     69 requires that "The header files should state that they are only to be
     70 used with authentic Microchip devices" which makes them incompatible
     71 with the GPL. Pic device libraries and header files are located at
     72 non-free/lib and non-free/include directories respectively. Sdcc should
     73 be run with the --use-non-free command line option in order to include
     74 the potentially non-free header files and libraries.
     75 
     76 However: Many think that the Microchip requirement is not legally enforceable,
     77 arguing that the header files only contain noncopyrightable facts.
     78 
     79 See:
     80 
     81  http://www.gnu.org/copyleft/gpl.html
     82 
     83  http://sourceforge.net/apps/trac/sdcc/wiki/SDCC%20Library%20Licenses
     84 
     85 
     86 Support:
     87 ~~~~~~~~
     88 SDCC compiler suite is a collaborative effort between a group of
     89 volunteers. Please feel free to report bugs via the Sourceforge bug
     90 tracker, or to ask questions on the user mailing list. See:
     91 
     92  http://sourceforge.net/tracker/?atid=100599&group_id=599&func=browse
     93 
     94  http://sourceforge.net/mail/?group_id=599
     95 
     96 Notes:
     97 * The ds400, pic14 and pic16 are currently experimental, but work is in
     98 progress. Please check http://sdcc.sourceforge.net/snap.php for snapshots.
     99 * The TININative, avr and xa51 targets are no longer maintained.
    100 
    101 
    102 Roadmap:
    103 ~~~~~~~~
    104 COPYING    - GPL v2
    105 debugger/  - sdcdb debugger
    106 device/    - Device libraries and examples
    107 doc/       - sdcc and target specific documentation
    108 sdas/      - Assemblers and linkers, derived from asxxxx
    109 sim/       - ucsim simulator
    110 src/       - Source to the C compiler and targets
    111 support/   - Libraries and apps that may not be provided by your system.
    112 
    113 
    114 Authors and interested persons:
    115 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    116 * Sandeep Dutta (sandeep AT users.sourceforge.net)
    117 
    118 * Jean Loius-VERN      <jlvern AT writeme.com>
    119 * Daniel Drotos        <drdani AT mazsola.iit.uni-miskolc.hu>
    120 * Kevin Vigor          <kevin AT vigor.nu>
    121 * Johan Knol           <johan.knol AT iduna.nl>
    122 * Scott Dattalo        <scott AT dattalo.com>
    123 * Karl Bongers         <karl AT turbobit.com>
    124 * Bernhard Held        <bernhard AT bernhardheld.de>
    125 * Frieder Ferlemann    <frieder.ferlemann AT web.de>
    126 * Jesus Calvino-Fraga  <jesusc AT ece.ubc.ca>
    127 * Borut Razem          <borut.razem AT siol.net>
    128 * Vangelis Rokas       <vrokas AT otenet.gr>
    129 * Erik Petrich         <epetrich AT ivorytower.norman.ok.us>
    130 * Paul Stoffregen      <paul AT pjrc.com>
    131 * Michael Hope         <michaelh AT juju.net.nz> <nz_michaelh AT yahoo.com>
    132 * Maarten Brock        <sourceforge.brock AT dse.nl>
    133 * Raphael Neider       <RNeider AT web.de>
    134 * Hans-Juergen Dorn    <hans.dorn AT apl-landau.de>
    135 * Klaus Flittner       <klaus_flittner AT gmx.de>
    136 * Philipp Klaus Krause <pkk AT spth.de>
    137 * Leland Morrison      <enigmalee.AT.sourceforget.net>
    138 * Molnar Karoly        <molnarkaroly AT users.sf.net>
    139 * Ben Shi              <powerstudio1st AT 163.com>
    140 
    141 SDCC includes code from:
    142 * Alan Baldwin <baldwin AT shop-pdp.kent.edu>
    143    Initial version of ASXXXX and  ASLINK. 
    144 * John Hartman <noice AT noicedebugger.com>
    145    Porting ASXXXX and ASLINK for 8051.
    146 * Dmitry S. Obukhov <dso AT usa.net>
    147    malloc and serial I/O routines.
    148 * Pascal Felber
    149    Some of the Z80 related files are borrowed from the Gameboy
    150    Development Kit (GBDK).
    151 * The GCC development team http://gcc.gnu.org/
    152    for GNU C preprocessor, the basis of sdcpp preprocessor and
    153    gcc test suite, partially included into the SDCC regression test suite
    154 * The GNU Binutils development team http://www.gnu.org/software/binutils/
    155    for GNU Binutils, the basis of sdbinutils
    156 * Boost Community http://www.boost.org/
    157    for Boost C++ libraries used in sdcc compiler
    158 * Timo Bingmann http://idlebox.net/2007/stx-btree/
    159    for TX B+ Tree C++ Template Classes used in sdcc compiler
    160 * Malini Dutta <malini AT mediaone.net>
    161    Sandeep's wife, for her patience and support.
    162 
    163 
    164 

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.